Browse Source

库存管理-增加必填校验/增行顺序调整

jingbb 3 months ago
parent
commit
a15a5db928

+ 25 - 11
src/views/inventiry/inventoryCheck/components/inventoryCheckForm.vue

@@ -219,17 +219,25 @@
       }
 
       async function submitForm() {
-        const mainData = await getFormData();
-        const subData = await getSubFormAndTableData();
-        if (!subData.storeCheckDetailsList || subData.storeCheckDetailsList.lenght == 0) {
+        var xTable = stockDetailsTableRef.value!.getXTable()
+        if (xTable.data.length==0) {
           message.error('请添加库存明细!');
         } else {
-          const values = Object.assign({}, dbData, mainData, subData);
-          console.log('表单提交数据', values);
-          const isUpdate = values.id ? true : false;
-          await saveOrUpdate(values, isUpdate);
-          //关闭弹窗
-          emit('success');
+          stockDetailsTableRef.value!.validateTable().then(async (errMap) =>  {
+            if (errMap) {
+              console.log('表单验证未通过:', { errMap });
+            } else {
+              const mainData = await getFormData();
+              const subData = await getSubFormAndTableData();
+              const values = Object.assign({}, dbData, mainData, subData);
+              console.log('表单提交数据', values);
+              const isUpdate = values.id ? true : false;
+              await saveOrUpdate(values, isUpdate);
+              //关闭弹窗
+              emit('success');
+            }
+          })
+          
         }
       }
 
@@ -243,7 +251,8 @@
 
       //产品明细-删除行
       function handleDelete(prop) {
-        var newArray = [...stockDetailsTable.dataSource];
+        var xTable = stockDetailsTableRef.value!.getXTable()
+        var newArray = [...xTable.data];
         newArray.splice(prop.rowIndex, 1);
         stockDetailsTable.dataSource = newArray;
         if (stockDetailsTable.dataSource.length == 0) {
@@ -287,7 +296,8 @@
           item.countedQuantity = 0;
           item.inventory = Number(item.countedQuantity) - Number(item.inventoryQuantity);
         });
-        var arr = data.concat(stockDetailsTable.dataSource);
+        var xTable = stockDetailsTableRef.value!.getXTable()
+        var arr = xTable.data.concat(data);
         stockDetailsTable.dataSource = arr;
       }
       function changeValues(prop) {
@@ -350,4 +360,8 @@
   /deep/.ant-form-item {
     margin-bottom: 8px !important;
   }
+  /deep/.vxe-cell--valid-error-msg{
+    color: white !important;
+    background-color: white !important;
+  }
 </style>

+ 3 - 1
src/views/inventiry/inventoryCheck/inventoryCheckForm.data.ts

@@ -139,6 +139,7 @@ export const stockDetailColumns: JVxeColumn[] = [
       title: '盘点数量(counted quantity)',
       key: 'countedQuantity',
       type: JVxeTypes.inputNumber,
+      validateRules: [{ required: true, message: '' }],
       placeholder: '请输入${title}',
       defaultValue:'',  
       width:"200px",
@@ -149,7 +150,8 @@ export const stockDetailColumns: JVxeColumn[] = [
       width:"200px",
       placeholder: '请输入${title}',
       defaultValue:'',
-      type: JVxeTypes.inputNumber,      
+      type: JVxeTypes.inputNumber,    
+      validateRules: [{ required: true, message: '' }],
     },
     {
       title: '备注(notes)',

+ 34 - 25
src/views/inventiry/otherIn/components/otherInForm.vue

@@ -20,7 +20,7 @@
 							</a-form-item>
 						</a-col>
 						<a-col :span="12">
-							<a-form-item label="供应商(supplier)" v-bind="validateInfos.supplierName"  id="SaleOrderForm-supplierName" name="supplierName">
+							<a-form-item label="供应商(supplier)" v-bind="validateInfos.supplier"  id="SaleOrderForm-supplier" name="supplier">
                 <ApiSelect
                     :api="supplierOption"
                     showSearch
@@ -220,6 +220,12 @@
       });
       //表单验证
       const validatorRules = reactive({
+        projectName: [
+          { required: true, message: '请选择项目(select project)' }
+        ],
+        supplier: [
+          { required: true, message: '请选择供应商(select supplier)' }
+        ],
       });
       const {resetFields, validate, validateInfos} = useForm(formData, validatorRules, {immediate: false});
       const dbData = {};
@@ -295,17 +301,25 @@
       }
 
       async function submitForm() {
-        if( formData.sourceCode==''){
+        var xTable = stockInTableRef.value!.getXTable()
+        if( xTable.data.length==0){
           message.error('请添加入库明细!');
         }else{
-          const mainData = await getFormData();
-          const subData = await getSubFormAndTableData();
-          const values = Object.assign({}, dbData, mainData, subData);
-          console.log('表单提交数据', values)
-          const isUpdate = values.id ? true : false
-          await saveOrUpdate(values, isUpdate);
-          //关闭弹窗
-          emit('success');
+          stockInTableRef.value!.validateTable().then(async (errMap) =>  {
+            if (errMap) {
+              console.log('表单验证未通过:', { errMap });
+            } else {
+              const mainData = await getFormData();
+              const subData = await getSubFormAndTableData();
+              const values = Object.assign({}, dbData, mainData, subData);
+              console.log('表单提交数据', values)
+              const isUpdate = values.id ? true : false
+              await saveOrUpdate(values, isUpdate);
+              //关闭弹窗
+              emit('success');
+            }
+          })
+          
         }
       }
       
@@ -316,23 +330,14 @@
           });
         }
       }
-      function getShipList(id){
-        let params = {id:id}
-        let url = '/purCode/purDeliveryNote/queryPurDeliveryNodeShipByMainId'
-          defHttp.get({url:url,params}, { isTransformResponse: false }).then(res=>{
-            if(res){
-              otherInShipTable.dataSource = res.result
-            }
-          })
-      }
-
        //查看配件信息
        function viewAccessory(prop){
         BaseShipArchiveAccessoriesModalRef.value.getTable(prop.row)
       }
       //入库明细-删除行
       function handleDelete(prop) {
-        var newArray = [...stockInTable.dataSource]
+        var xTable = stockInTableRef.value!.getXTable()
+        var newArray = [...xTable.data]
         newArray.splice(prop.rowIndex, 1)
         stockInTable.dataSource = newArray      
       }
@@ -354,7 +359,8 @@
           item.productCode = item.code
           item.productId = item.id
         })
-        var arrProduct = data.concat(stockInTable.dataSource)
+        var xTable = stockInTableRef.value!.getXTable()
+        var arrProduct = xTable.data.concat(data)
         stockInTable.dataSource=arrProduct  
       }
       function selectProductList(){
@@ -365,9 +371,9 @@
       }
       function addShip(data){
         data.map(item=>item.shipowner = item.relateCustomer)
-        var arr = data.concat(otherInShipTable.dataSource)
+        var xTable = otherInShipTableRef.value!.getXTable()
+        var arr = xTable.data.concat(data)
         otherInShipTable.dataSource=arr        
-        
       }
       async function changeSupplier(prop){
         if(prop){
@@ -444,5 +450,8 @@
   /deep/.ant-form-item{
     margin-bottom: 8px !important;
   }
-      
+  /deep/.vxe-cell--valid-error-msg{
+    color: white !important;
+    background-color: white !important;
+  }
 </style>

+ 1 - 0
src/views/inventiry/otherIn/otherInForm.data.ts

@@ -188,6 +188,7 @@ export const stockInColumns: JVxeColumn[] = [
       title: '入库数量(stock in quantity)',
       key: 'stockInQuantity',
       type: JVxeTypes.inputNumber,
+      validateRules: [{ required: true, message: '' }],
       placeholder: '请输入${title}',
       defaultValue:'',  
       width:"200px",

+ 24 - 11
src/views/inventiry/otherOut/components/otherOutForm.vue

@@ -214,17 +214,24 @@
       }
 
       async function submitForm() {
-        const mainData = await getFormData();
-        const subData = await getSubFormAndTableData();
-        if (!subData.storeOtherOutDetailsList || subData.storeOtherOutDetailsList.lenght == 0) {
+        var xTable = otherOutTableRef.value!.getXTable()
+        if (xTable.data.length==0) {
           message.error('请添加出库明细!');
         } else {
-          const values = Object.assign({}, dbData, mainData, subData);
-          console.log('表单提交数据', values);
-          const isUpdate = values.id ? true : false;
-          await saveOrUpdate(values, isUpdate);
-          //关闭弹窗
-          emit('success');
+          otherOutTableRef.value!.validateTable().then(async (errMap) =>  {
+            if (errMap) {
+              console.log('表单验证未通过:', { errMap });
+            } else {
+              const mainData = await getFormData();
+              const subData = await getSubFormAndTableData();
+              const values = Object.assign({}, dbData, mainData, subData);
+              console.log('表单提交数据', values);
+              const isUpdate = values.id ? true : false;
+              await saveOrUpdate(values, isUpdate);
+              //关闭弹窗
+              emit('success');
+            }
+          })
         }
       }
 
@@ -238,7 +245,8 @@
 
       //产品明细-删除行
       function handleDelete(prop) {
-        var newArray = [...otherOutTable.dataSource];
+        var xTable = otherOutTableRef.value!.getXTable()
+        var newArray = [...xTable.data];
         newArray.splice(prop.rowIndex, 1);
         otherOutTable.dataSource = newArray;
         if (otherOutTable.dataSource.length == 0) {
@@ -260,7 +268,8 @@
           item.stockOutQuantity = item.quantity;
           item.inventorySelection = item.batchCode;
         });
-        var arr = data.concat(otherOutTable.dataSource);
+        var xTable = otherOutTableRef.value!.getXTable()
+        var arr = xTable.data.concat(data);
         otherOutTable.dataSource = arr;
       }
       /**
@@ -319,4 +328,8 @@
   /deep/.ant-form-item {
     margin-bottom: 8px !important;
   }
+  /deep/.vxe-cell--valid-error-msg{
+    color: white !important;
+    background-color: white !important;
+  }
 </style>

+ 1 - 0
src/views/inventiry/otherOut/otherOutForm.data.ts

@@ -133,6 +133,7 @@ export const otherOutDetailColumns: JVxeColumn[] = [
       title: '出库数量(stock out quantity)',
       key: 'stockOutQuantity',
       type: JVxeTypes.inputNumber,
+      validateRules: [{ required: true, message: '' }],
       placeholder: '请输入${title}',
       defaultValue:'',  
       width:"200px",

+ 22 - 10
src/views/inventiry/purchaseIn/components/purchaseInForm.vue

@@ -335,14 +335,20 @@
         if (formData.sourceCode == '') {
           message.error('请添加入库明细!');
         } else {
-          const mainData = await getFormData();
-          const subData = await getSubFormAndTableData();
-          const values = Object.assign({}, dbData, mainData, subData);
-          console.log('表单提交数据', values);
-          const isUpdate = values.id ? true : false;
-          await saveOrUpdate(values, isUpdate);
-          //关闭弹窗
-          emit('success');
+          stockInTableRef.value!.validateTable().then(async (errMap) =>  {
+            if (errMap) {
+              console.log('表单验证未通过:', { errMap });
+            } else {
+              const mainData = await getFormData();
+              const subData = await getSubFormAndTableData();
+              const values = Object.assign({}, dbData, mainData, subData);
+              console.log('表单提交数据', values);
+              const isUpdate = values.id ? true : false;
+              await saveOrUpdate(values, isUpdate);
+              //关闭弹窗
+              emit('success');
+            }
+          })
         }
       }
 
@@ -369,7 +375,8 @@
       }
       //产品明细-删除行
       function handleDelete(prop) {
-        var newArray = [...stockInTable.dataSource];
+        var xTable = stockInTableRef.value!.getXTable()
+        var newArray = [...xTable.data];
         newArray.splice(prop.rowIndex, 1);
         stockInTable.dataSource = newArray;
         if (stockInTable.dataSource.length == 0) {
@@ -398,7 +405,8 @@
           item.arrivalQuantity = item.quantity;
           item.stockInQuantity = item.quantity;
         });
-        var arr = data.concat(stockInTable.dataSource);
+        var xTable = stockInTableRef.value!.getXTable()
+        var arr = xTable.data.concat(data);
         stockInTable.dataSource = arr;
       }
       /**
@@ -459,4 +467,8 @@
   /deep/.ant-form-item {
     margin-bottom: 8px !important;
   }
+  /deep/.vxe-cell--valid-error-msg{
+    color: white !important;
+    background-color: white !important;
+  }
 </style>

+ 1 - 0
src/views/inventiry/purchaseIn/puechaseInForm.data.ts

@@ -216,6 +216,7 @@ export const stockInColumns: JVxeColumn[] = [
       title: '入库数量(stock in quantity)',
       key: 'stockInQuantity',
       type: JVxeTypes.inputNumber,
+      validateRules: [{ required: true, message: '' }],
       placeholder: '请输入${title}',
       defaultValue:'',  
       width:"200px",

+ 26 - 12
src/views/inventiry/salesOutbound/components/salesOutForm.vue

@@ -290,14 +290,21 @@
         if (formData.sourceCode == '') {
           message.error('请添加出库明细!');
         } else {
-          const mainData = await getFormData();
-          const subData = await getSubFormAndTableData();
-          const values = Object.assign({}, dbData, mainData, subData);
-          console.log('表单提交数据', values);
-          const isUpdate = values.id ? true : false;
-          await saveOrUpdate(values, isUpdate);
-          //关闭弹窗
-          emit('success');
+          stockOutTableRef.value!.validateTable().then(async (errMap) =>  {
+            if (errMap) {
+              console.log('表单验证未通过:', { errMap });
+            } else {
+              const mainData = await getFormData();
+              const subData = await getSubFormAndTableData();
+              const values = Object.assign({}, dbData, mainData, subData);
+              console.log('表单提交数据', values);
+              const isUpdate = values.id ? true : false;
+              await saveOrUpdate(values, isUpdate);
+              //关闭弹窗
+              emit('success');
+            }
+          })
+        
         }
       }
 
@@ -324,7 +331,8 @@
       }
       //产品明细-删除行
       function handleDelete(prop) {
-        var newArray = [...stockOutTable.dataSource];
+        var xTable = stockOutTableRef.value!.getXTable()
+        var newArray = [...xTable.data];
         newArray.splice(prop.rowIndex, 1);
         stockOutTable.dataSource = newArray;
         if (stockOutTable.dataSource.length == 0) {
@@ -348,8 +356,10 @@
           item.model = item.childModel;
           item.sourceId = item.childId;
           item.deliveryQuantity = item.quantity;
+          item.stockOutQuantity = item.quantity;
         });
-        var arrProduct = data.concat(stockOutTable.dataSource);
+        var xTable = stockOutTableRef.value!.getXTable()
+        var arrProduct = xTable.data.concat(data);
         stockOutTable.dataSource = arrProduct;
         formData.sourceCode = data[0].billCode;
         formData.project = data[0].project;
@@ -381,11 +391,11 @@
         }
       }
       function editDetailRow(data, rowId) {
-        var arr = [...stockOutTable.dataSource];
+        var xTable = stockOutTableRef.value!.getXTable()
+        var arr = [...xTable.data];
         arr.map((item) => {
           var id = item.childId ? item.childId : item.sourceId;
           if (id == rowId) {
-            item.stockOutQuantity = item.deliveryQuantity;
             item.inventorySelection = data[0].batchCode;
             item.batchId = data[0].id;
           }
@@ -443,4 +453,8 @@
   /deep/.ant-form-item {
     margin-bottom: 8px !important;
   }
+  /deep/.vxe-cell--valid-error-msg{
+    color: white !important;
+    background-color: white !important;
+  }
 </style>

+ 1 - 0
src/views/inventiry/salesOutbound/salesOutboundForm.data.ts

@@ -224,6 +224,7 @@ export const stockOutColumns: JVxeColumn[] = [
       title: '出库数量(stock out quantity)',
       key: 'stockOutQuantity',
       type: JVxeTypes.inputNumber,
+      validateRules: [{ required: true, message: '' }],
       placeholder: '请输入${title}',
       defaultValue:'',  
       width:"200px",