| | |
| | | label="产品大类" |
| | | prop="productCategory" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.productCategory" |
| | | > |
| | | <up-input |
| | | v-model="product.productCategory" |
| | |
| | | label="规格型号" |
| | | prop="specificationModel" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.specificationModel" |
| | | > |
| | | <up-input |
| | | v-model="product.specificationModel" |
| | |
| | | label="单位" |
| | | prop="unit" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.unit" |
| | | > |
| | | <up-input |
| | | v-model="product.unit" |
| | |
| | | label="税率(%)" |
| | | prop="taxRate" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.taxRate" |
| | | > |
| | | <up-input |
| | | v-model="product.taxRate" |
| | |
| | | label="含税单价(元)" |
| | | prop="taxInclusiveUnitPrice" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.taxInclusiveUnitPrice" |
| | | > |
| | | <up-input |
| | | v-model="product.taxInclusiveUnitPrice" |
| | |
| | | label="数量" |
| | | prop="quantity" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.quantity" |
| | | > |
| | | <up-input |
| | | v-model="product.quantity" |
| | |
| | | label="含税总价(元)" |
| | | prop="taxInclusiveTotalPrice" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.taxInclusiveTotalPrice" |
| | | > |
| | | <up-input |
| | | v-model="product.taxInclusiveTotalPrice" |
| | |
| | | label="不含税总价(元)" |
| | | prop="taxExclusiveTotalPrice" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.taxExclusiveTotalPrice" |
| | | > |
| | | <up-input |
| | | v-model="product.taxExclusiveTotalPrice" |
| | |
| | | label="发票类型" |
| | | prop="invoiceType" |
| | | required |
| | | :rules="productRules" |
| | | :rules="productRules.invoiceType" |
| | | > |
| | | <up-input |
| | | v-model="product.invoiceType" |
| | |
| | | import { formatDateToYMD } from '@/utils/ruoyi' |
| | | import { |
| | | addOrUpdateSalesLedger, |
| | | addOrUpdateSalesLedgerProduct, |
| | | customerList, |
| | | getSalesLedgerWithProducts, |
| | | modelList, |
| | |
| | | // 表单校验规则 |
| | | const rules = { |
| | | salesman: [ |
| | | { required: true, message: '请选择业务员', trigger: 'blur' } |
| | | { required: true, message: '请选择业务员', trigger: 'change' } |
| | | ], |
| | | customerContractNo: [ |
| | | { required: true, message: '请输入客户合同号', trigger: 'blur' } |
| | | ], |
| | | customerName: [ |
| | | { required: true, message: '请选择客户名称', trigger: 'blur' } |
| | | { required: true, message: '请选择客户名称', trigger: 'change' } |
| | | ], |
| | | projectName: [ |
| | | { required: true, message: '请输入项目名称', trigger: 'blur' } |
| | | ], |
| | | executionDate: [ |
| | | { required: true, message: '请选择签订日期', trigger: 'blur' } |
| | | { required: true, message: '请选择签订日期', trigger: 'change' } |
| | | ] |
| | | }; |
| | | |
| | | // 产品信息校验规则 |
| | | const productRules = { |
| | | productCategory: [ |
| | | { required: true, message: '请选择产品大类', trigger: 'blur' } |
| | | { required: true, message: '请选择产品大类', trigger: 'change' } |
| | | ], |
| | | specificationModel: [ |
| | | { required: true, message: '请选择规格型号', trigger: 'blur' } |
| | | { required: true, message: '请选择规格型号', trigger: 'change' } |
| | | ], |
| | | unit: [ |
| | | { required: true, message: '请输入单位', trigger: 'blur' } |
| | | ], |
| | | taxRate: [ |
| | | { required: true, message: '请选择税率', trigger: 'blur' } |
| | | { required: true, message: '请选择税率', trigger: 'change' } |
| | | ], |
| | | taxInclusiveUnitPrice: [ |
| | | { required: true, message: '请输入含税单价', trigger: 'blur' }, |
| | |
| | | { type: 'number', min: 0, message: '不含税总价必须大于0', trigger: 'blur' } |
| | | ], |
| | | invoiceType: [ |
| | | { required: true, message: '请选择发票类型', trigger: 'blur' } |
| | | { required: true, message: '请选择发票类型', trigger: 'change' } |
| | | ] |
| | | }; |
| | | |
| | |
| | | // 日期确认事件 |
| | | const onDateConfirm = (e) => { |
| | | form.value.executionDate = formatDateToYMD(e.value) |
| | | pickerDateValue.value = formatDateToYMD(e.value) |
| | | // 保持pickerDateValue为时间戳格式,而不是格式化的字符串 |
| | | pickerDateValue.value = e.value |
| | | showDatePicker.value = false; |
| | | } |
| | | |