diff --git a/src/views/erp/purchase/supplier/SupplierForm.vue b/src/views/erp/purchase/supplier/SupplierForm.vue
index d3c433c8..7833672d 100644
--- a/src/views/erp/purchase/supplier/SupplierForm.vue
+++ b/src/views/erp/purchase/supplier/SupplierForm.vue
@@ -33,11 +33,6 @@
-
-
-
-
-
@@ -61,37 +56,6 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -127,15 +91,9 @@ const formData = ref({
mobile: undefined,
telephone: undefined,
email: undefined,
- fax: undefined,
remark: undefined,
status: undefined,
sort: undefined,
- taxNo: undefined,
- taxPercent: undefined,
- bankName: undefined,
- bankAccount: undefined,
- bankAddress: undefined
})
const formRules = reactive({
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
@@ -144,6 +102,14 @@ const formRules = reactive({
})
const formRef = ref() // 表单 Ref
+const omittedSubmitFields = ['fax', 'taxNo', 'taxPercent', 'bankName', 'bankAccount', 'bankAddress']
+
+const buildSubmitData = () => {
+ const data = { ...(formData.value as Record) }
+ omittedSubmitFields.forEach((field) => delete data[field])
+ return data as unknown as SupplierVO
+}
+
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
@@ -170,7 +136,7 @@ const submitForm = async () => {
// 提交请求
formLoading.value = true
try {
- const data = formData.value as unknown as SupplierVO
+ const data = buildSubmitData()
if (formType.value === 'create') {
await SupplierApi.createSupplier(data)
message.success(t('common.createSuccess'))
@@ -195,15 +161,9 @@ const resetForm = () => {
mobile: undefined,
telephone: undefined,
email: undefined,
- fax: undefined,
remark: undefined,
status: CommonStatusEnum.ENABLE,
sort: undefined,
- taxNo: undefined,
- taxPercent: undefined,
- bankName: undefined,
- bankAccount: undefined,
- bankAddress: undefined
}
formRef.value?.resetFields()
}
diff --git a/src/views/erp/stock/out/components/StockOutItemForm.vue b/src/views/erp/stock/out/components/StockOutItemForm.vue
index 4be62c0b..3e4d4bcd 100644
--- a/src/views/erp/stock/out/components/StockOutItemForm.vue
+++ b/src/views/erp/stock/out/components/StockOutItemForm.vue
@@ -344,7 +344,7 @@
-
@@ -630,11 +630,16 @@ const showRelatedMaintainColumn = computed(
)
function validatePallets(_: any, value: any[], callback: (error?: Error) => void) {
- if (!isProductStockOut.value || (Array.isArray(value) && value.length > 0)) {
+ if (!isProductStockOut.value) {
callback()
return
}
- callback(new Error(t('ErpStock.Item.validatorPalletRequired')))
+ if (!Array.isArray(value) || value.length === 0) {
+ callback(new Error(t('ErpStock.Item.validatorPalletRequired')))
+ return
+ }
+ const hasInvalidPackageCount = value.some((item) => !Number.isFinite(Number(item?.packageCount)) || Number(item?.packageCount) <= 0)
+ callback(hasInvalidPackageCount ? new Error(t('ErpStock.Item.validatorPackageCountRequired')) : undefined)
}
const productCascaderProps = {
@@ -1176,7 +1181,10 @@ const getPalletLockedPackageCount = (pallet: PalletVO) => {
return Number.isFinite(lockedPackageCount) ? Math.max(lockedPackageCount, 0) : 0
}
+const hasPositiveAvailablePackageCount = (pallet: PalletVO) => getPalletAvailablePackageCount(pallet) > 0
+
const isPalletSelectable = (pallet: PalletVO) => {
+ if (!hasPositiveAvailablePackageCount(pallet)) return false
if (Number(currentSelectRow.value?.outMode) !== 1) return true
return getPalletLockedPackageCount(pallet) === 0
}