style:供应商信息-新增/编辑字段调整

main
黄伟杰 3 weeks ago
parent 4ba131c4a3
commit 1a3e648dbc

@ -33,11 +33,6 @@
<el-input v-model="formData.email" placeholder="请输入电子邮箱" /> <el-input v-model="formData.email" placeholder="请输入电子邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="传真" prop="fax">
<el-input v-model="formData.fax" placeholder="请输入传真" />
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="开启状态" prop="status"> <el-form-item label="开启状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">
@ -61,37 +56,6 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="纳税人识别号" prop="taxNo">
<el-input v-model="formData.taxNo" placeholder="请输入纳税人识别号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税率(%)" prop="taxPercent">
<el-input-number
v-model="formData.taxPercent"
:min="0"
:precision="2"
placeholder="请输入税率"
class="!w-1/1"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户行" prop="bankName">
<el-input v-model="formData.bankName" placeholder="请输入开户行" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户账号" prop="bankAccount">
<el-input v-model="formData.bankAccount" placeholder="请输入开户账号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户地址" prop="bankAddress">
<el-input v-model="formData.bankAddress" placeholder="请输入开户地址" />
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注" /> <el-input type="textarea" v-model="formData.remark" placeholder="请输入备注" />
@ -127,15 +91,9 @@ const formData = ref({
mobile: undefined, mobile: undefined,
telephone: undefined, telephone: undefined,
email: undefined, email: undefined,
fax: undefined,
remark: undefined, remark: undefined,
status: undefined, status: undefined,
sort: undefined, sort: undefined,
taxNo: undefined,
taxPercent: undefined,
bankName: undefined,
bankAccount: undefined,
bankAddress: undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
@ -144,6 +102,14 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const omittedSubmitFields = ['fax', 'taxNo', 'taxPercent', 'bankName', 'bankAccount', 'bankAddress']
const buildSubmitData = () => {
const data = { ...(formData.value as Record<string, unknown>) }
omittedSubmitFields.forEach((field) => delete data[field])
return data as unknown as SupplierVO
}
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (type: string, id?: number) => { const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
@ -170,7 +136,7 @@ const submitForm = async () => {
// //
formLoading.value = true formLoading.value = true
try { try {
const data = formData.value as unknown as SupplierVO const data = buildSubmitData()
if (formType.value === 'create') { if (formType.value === 'create') {
await SupplierApi.createSupplier(data) await SupplierApi.createSupplier(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
@ -195,15 +161,9 @@ const resetForm = () => {
mobile: undefined, mobile: undefined,
telephone: undefined, telephone: undefined,
email: undefined, email: undefined,
fax: undefined,
remark: undefined, remark: undefined,
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
sort: undefined, sort: undefined,
taxNo: undefined,
taxPercent: undefined,
bankName: undefined,
bankAccount: undefined,
bankAddress: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

@ -344,7 +344,7 @@
<el-table-column v-if="currentSelectRow?.outMode === 2" :label="t('ErpStock.Item.outPackageCount')" <el-table-column v-if="currentSelectRow?.outMode === 2" :label="t('ErpStock.Item.outPackageCount')"
min-width="130"> min-width="130">
<template #default="{ row }"> <template #default="{ row }">
<el-input-number v-model="row.packageCount" controls-position="right" :min="0" :precision="0" class="!w-100%" <el-input-number v-model="row.packageCount" controls-position="right" :min="1" :precision="0" class="!w-100%"
@change="handlePalletPackageCountChange($event, row)" @click.stop /> @change="handlePalletPackageCountChange($event, row)" @click.stop />
</template> </template>
</el-table-column> </el-table-column>
@ -630,11 +630,16 @@ const showRelatedMaintainColumn = computed(
) )
function validatePallets(_: any, value: any[], callback: (error?: Error) => void) { function validatePallets(_: any, value: any[], callback: (error?: Error) => void) {
if (!isProductStockOut.value || (Array.isArray(value) && value.length > 0)) { if (!isProductStockOut.value) {
callback() callback()
return 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 = { const productCascaderProps = {
@ -1176,7 +1181,10 @@ const getPalletLockedPackageCount = (pallet: PalletVO) => {
return Number.isFinite(lockedPackageCount) ? Math.max(lockedPackageCount, 0) : 0 return Number.isFinite(lockedPackageCount) ? Math.max(lockedPackageCount, 0) : 0
} }
const hasPositiveAvailablePackageCount = (pallet: PalletVO) => getPalletAvailablePackageCount(pallet) > 0
const isPalletSelectable = (pallet: PalletVO) => { const isPalletSelectable = (pallet: PalletVO) => {
if (!hasPositiveAvailablePackageCount(pallet)) return false
if (Number(currentSelectRow.value?.outMode) !== 1) return true if (Number(currentSelectRow.value?.outMode) !== 1) return true
return getPalletLockedPackageCount(pallet) === 0 return getPalletLockedPackageCount(pallet) === 0
} }

Loading…
Cancel
Save