Преглед на файлове

feat:采销订单补录添加必填字段验证

snow преди 2 години
родител
ревизия
10999f8a76

+ 65 - 3
src/views/netOrderEntry/netOrderEnter/importTemplateModal.vue

@@ -28,7 +28,7 @@
 import { columns, getTableProperty, createErrorMessage, createFieldVerification, requsetFields } from './template'
 import companyHelper from '@/mixins/companyHelper'
 import { MessageBox } from 'element-ui'
-import { isnumber } from '@/utils/validate'
+import { isnumber, isMobile, isPhone } from '@/utils/validate'
 export default {
   mixins: [companyHelper],
   props: ['visible'],
@@ -97,6 +97,17 @@ export default {
       })
       return verification
     },
+    /* 校验导入的联系电话是否合法 **/
+    validateMobile(mobiles = []) {
+      const verification = createFieldVerification('联系电话不能为空且必须为手机号或电话号码')
+      mobiles.forEach((mobile, index) => {
+        if (!mobile || isMobile(mobile) && isPhone(mobile)) {
+          verification.isValid = false
+          verification.notValidRows.push(index + 1)
+        }
+      })
+      return verification
+    },
     /* 校验导入的购买方列表编码(开头必须为QS) **/
     validateSupplierNo(suppliers = []) {
       const verification = createFieldVerification("供应商公司编码不能为空且必须以'QS'开头")
@@ -109,7 +120,7 @@ export default {
       })
       return verification
     },
-    /* 校验导入的税率、数量、单价、采购毛利率是否为数 **/
+    /* 校验导入的税率、数量、单价、采购毛利率是否为数 **/
     validateNumberField(numberFields) {
       const verification = createFieldVerification('税率、数量、单价、采购毛利率不能为空且必须是数字')
       const { tax, goodNum, goodPrice, cgd_tax } = numberFields
@@ -123,6 +134,40 @@ export default {
       })
       return verification
     },
+    /* 校验导入的税率、数量、单价、采购毛利率是否为数组 **/
+    validateRequiredField(requiredFields) {
+      const verification = createFieldVerification('所属平台、商品分类、商品名称、单位、收货人、收货地址、PO编号不能为空')
+      const {
+        platform_id,
+        cat_id,
+        goodName,
+        goodUnit,
+        contactor,
+        addr,
+        sendtime,
+        poCode
+      } = requiredFields
+
+      platform_id.forEach((_, index) => {
+        const values = [
+          platform_id[index],
+          contactor[index],
+          goodName[index],
+          goodUnit[index],
+          sendtime[index],
+          cat_id[index],
+          poCode[index],
+          addr[index]
+        ]
+
+        const valuesIsNotNull = values.every(value => value && String(value).trim() !== '')
+        if (!valuesIsNotNull) {
+          verification.isValid = false
+          verification.notValidRows.push(index + 1)
+        }
+      })
+      return verification
+    },
     /* 处理不合法的值,提示错误信息,并返回最终的验证状态 **/
     handleNotValidFields(...validStates) {
       const messages = {}
@@ -167,6 +212,17 @@ export default {
         this.validateKhNo(mapTableFieldToTableData.khNo),
         this.validateCompanyNo(mapTableFieldToTableData.companyNo),
         this.validateSupplierNo(mapTableFieldToTableData.supplierNo),
+        this.validateMobile(mapTableFieldToTableData.mobile),
+        this.validateRequiredField({
+          platform_id: mapTableFieldToTableData.platform_id,
+          cat_id: mapTableFieldToTableData.cat_id,
+          goodName: mapTableFieldToTableData.goodName,
+          goodUnit: mapTableFieldToTableData.goodUnit,
+          contactor: mapTableFieldToTableData.contactor,
+          addr: mapTableFieldToTableData.addr,
+          sendtime: mapTableFieldToTableData.sendtime,
+          poCode: mapTableFieldToTableData.poCode
+        }),
         this.validateNumberField({
           tax: mapTableFieldToTableData.tax,
           cgd_tax: mapTableFieldToTableData.cgd_tax,
@@ -205,8 +261,14 @@ export default {
     },
     onSubmit() {
       const { message, isFinalValid } = this.validateFields(this.tableData)
-      console.log(requsetFields)
       if (!isFinalValid) return message()
+
+      const data = this.tableData.map(tableItem => requsetFields.reduce((prev, currentKey) => ({
+        ...prev,
+        [currentKey]: tableItem[currentKey]
+      }), {}))
+
+      console.log(data, 'TODO:requset api....')
     }
   }
 }

+ 1 - 1
src/views/netOrderEntry/netOrderEnter/index.vue

@@ -237,7 +237,7 @@ export default {
     };
 
     return {
-      templateModalVisible: false,
+      templateModalVisible: true,
       xs_order_type_options,
       xs_order_source_options,
       statusList: statusList,

+ 17 - 17
src/views/netOrderEntry/netOrderEnter/template.js

@@ -1,25 +1,25 @@
 
 const mapTemplateToTable = {
-  '销售方公司编码': 'companyNo',
+  '销售方公司编码': 'companyNo', // *
   '销售方公司名称': 'value0',
-  '购买方公司编码': 'khNo',
+  '购买方公司编码': 'khNo', // *
   '购买方公司名称': 'value1',
-  '供应商公司编码': 'supplierNo',
+  '供应商公司编码': 'supplierNo', // *
   '供应商公司名称': 'value2',
-  '所属平台': 'platform_id',
-  '商品分类': 'cat_id',
-  '商品名称': 'goodName',
-  '单位': 'goodUnit',
-  '税率': 'tax',
-  '数量': 'goodNum',
-  '单价': 'goodPrice',
-  '采购毛利率': 'cgd_tax',
-  '货款总额': 'good_total',
-  '收货人': 'contactor',
-  '联系电话': 'mobile',
-  '收货地址': 'addr',
-  '发货时间': 'sendtime',
-  'PO编号': 'poCode',
+  '所属平台': 'platform_id', //
+  '商品分类': 'cat_id', //
+  '商品名称': 'goodName', //
+  '单位': 'goodUnit', //
+  '税率': 'tax', // *
+  '数量': 'goodNum', // *
+  '单价': 'goodPrice', // *
+  '采购毛利率': 'cgd_tax', // *
+  '货款总额': 'good_total', // *
+  '收货人': 'contactor', //
+  '联系电话': 'mobile', //*
+  '收货地址': 'addr', //
+  '发货时间': 'sendtime', //
+  'PO编号': 'poCode', //
   '单据号': 'workCode'
 }