linwenxin hai 1 ano
pai
achega
b81f123d37

+ 13 - 1
src/components/template/rules_verify.js

@@ -64,4 +64,16 @@ export const httpUrl = [{
     }
   },
   trigger: 'blur'
-}]
+}]
+
+export function diyRequired(cb){
+  return {
+    validator: (rule, value, callback) => {
+      if (value===undefined || value ==="" || value === null) {
+        return callback(cb(rule, value));
+      }
+      callback();
+    },
+    trigger: 'blur'
+  }
+}

+ 17 - 1
src/views/salesPurchasing/goodsPurchasedStored/index.vue

@@ -61,6 +61,7 @@ import storage_table from '../mixins/storage_table'
 import storage_goods from '../mixins/storage_goods'
 import storage_codes from '../mixins/storage_codes'
 import common from '../mixins/common_code'
+import { delayPerform, firstPerform, intervalPerform, passivePerform, queuePerform } from "js-perform-lock";
 export default {
   components: { TemplatePage },
   mixins: [import_mixin, operation_mixin, form_ty, storage_table, storage_goods, storage_codes, common],
@@ -106,7 +107,8 @@ export default {
       },
       activeName: 'goodsInfo',
       goods_material_id: '',
-      joinCode: false
+      joinCode: false,
+      logs:[]
     }
   },
   computed: {
@@ -147,6 +149,20 @@ export default {
     }
   },
   methods: {
+    tishicuowu:(new delayPerform(500)).refactor(function( /**可接收参数**/ ){
+      if(this.logs){
+        var logs = Array.from(new Set(JSON.parse(JSON.stringify(this.logs)).map(item=>{
+          return `第${item.index+1}行:${item.errMsg}`
+        })))
+        this.logs = []
+        this.$message({
+          dangerouslyUseHTMLString: true,
+          type: 'warning',
+          message: logs.join("<div/>"),
+          duration: 5000,
+        });
+      }
+    }),
     changePageType() {
       this.goods_material_id = ''
     },

+ 65 - 17
src/views/salesPurchasing/mixins/common_code.js

@@ -1,5 +1,5 @@
 import { goodsMaterialDetail } from '@/api/commercialMaterial.js'
-import { required } from '@/components/template/rules_verify.js'
+import { required, diyRequired } from '@/components/template/rules_verify.js'
 export default {
   data() {
     return {
@@ -11,7 +11,7 @@ export default {
       return [
         {
           columnAttributes: {
-            label: '品牌',
+            label: '*品牌',
             prop: 'brandId',
             propName: 'brandName',
             width: 160
@@ -23,7 +23,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -56,7 +62,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品大类',
+            label: '*商品大类',
             prop: 'mainId',
             propName: 'mainName',
             width: 160
@@ -68,7 +74,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -104,7 +116,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品小类',
+            label: '*商品小类',
             prop: 'smallId',
             propName: 'smallName',
             width: 160
@@ -116,7 +128,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -154,7 +172,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品名称',
+            label: '*商品名称',
             prop: 'goodsMaterialId',
             propName: 'goodsMaterialName',
             width: 160
@@ -166,7 +184,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -223,7 +247,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '物料类型',
+            label: '*物料类型',
             prop: 'goodsMaterialItemType',
             width: 160
           },
@@ -234,7 +258,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`codeInfoList.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -269,7 +299,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '物料名称',
+            label: '*物料名称',
             prop: 'goodsMaterialItemId',
             propName: 'goodsMaterialItemName',
             width: 160
@@ -281,7 +311,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`codeInfoList.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -353,7 +389,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '条码',
+            label: '*条码',
             prop: 'code',
             width: 160
           },
@@ -364,7 +400,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`codeInfoList.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-input
                     value={row[column.columnAttributes.prop]}
@@ -382,7 +424,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '数量',
+            label: '*数量',
             prop: 'codeQty',
             width: 160
           },
@@ -393,7 +435,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`codeInfoList.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-input
                     value={row[column.columnAttributes.prop]}

+ 2 - 2
src/views/salesPurchasing/mixins/common_form.js

@@ -50,7 +50,7 @@ export default {
                   contentStyle={{ width: '42%' }}
                   style="margin-top:-1px"
                 >
-                  <el-descriptions-item label="供应商名称">
+                  <el-descriptions-item label="*供应商名称">
                     <div class="redbordererr">
                       <el-form-item label="" lebel-width="0px" prop={`venderId`} rules={required}>
                         <el-select
@@ -83,7 +83,7 @@ export default {
                     </div>
                   </el-descriptions-item>
                   {!!~['merchandisePurchaseReturn'].indexOf(this?.$route?.name) ? (
-                    <el-descriptions-item label="采购入库单">
+                    <el-descriptions-item label="*采购入库单">
                       <div class="redbordererr">
                         <el-form-item label="" lebel-width="0px" prop={`goodsPurchaseId`} rules={required}>
                           <el-select

+ 9 - 3
src/views/salesPurchasing/mixins/out_storage_goods.js

@@ -1,4 +1,4 @@
-import { required } from '@/components/template/rules_verify.js'
+import { required, diyRequired } from '@/components/template/rules_verify.js'
 import { goodsPurchaseRetItemImportCode, goodsPurchaseRetDetail } from '@/api/merchandisePurchaseReturn.js'
 export default {
   data() {
@@ -60,7 +60,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '退货数量',
+            label: '*退货数量',
             prop: 'retQty',
             width: 160
           },
@@ -71,7 +71,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-input
                     value={row[column.columnAttributes.prop]}

+ 49 - 13
src/views/salesPurchasing/mixins/storage_goods.js

@@ -1,4 +1,4 @@
-import { required } from '@/components/template/rules_verify.js'
+import { required, diyRequired } from '@/components/template/rules_verify.js'
 import { getBrandList } from '@/api/miniapp'
 import { getClassifyList } from '@/api/goods'
 import { goodsMaterialList } from '@/api/commercialMaterial.js'
@@ -17,7 +17,7 @@ export default {
       return [
         {
           columnAttributes: {
-            label: '品牌',
+            label: '*品牌',
             prop: 'brandId',
             propName: 'brandName',
             width: 160
@@ -29,7 +29,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -59,7 +65,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品大类',
+            label: '*商品大类',
             prop: 'mainId',
             propName: 'mainName',
             width: 160
@@ -71,7 +77,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -103,7 +115,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品小类',
+            label: '*商品小类',
             prop: 'smallId',
             propName: 'smallName',
             width: 160
@@ -115,7 +127,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -149,7 +167,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '商品名称',
+            label: '*商品名称',
             prop: 'goodsMaterialId',
             propName: 'goodsMaterialName',
             width: 160
@@ -161,7 +179,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-select
                     value={row[column.columnAttributes.prop]}
@@ -256,7 +280,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '采购数量',
+            label: '*采购数量',
             prop: 'qty',
             width: 160
           },
@@ -267,7 +291,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-input
                     value={row[column.columnAttributes.prop]}
@@ -355,7 +385,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '采购价格',
+            label: '*采购价格',
             prop: 'price',
             width: 160
           },
@@ -366,7 +396,13 @@ export default {
                   label=""
                   lebel-width="0px"
                   prop={`items.${index}.${column.columnAttributes.prop}`}
-                  rules={required}
+                  rules={[diyRequired.bind(this)((rule, value)=>{
+                    if(this.logs){
+                      this.logs.push({index:index, errMsg:`${column.columnAttributes.label}不能为空`})
+                    }
+                    this?.tishicuowu?.()
+                    return new Error('必须填写')
+                  })]}
                 >
                   <el-input
                     value={row[column.columnAttributes.prop]}