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 }