Просмотр исходного кода

禅道bug 修复:销售订单表格列配置逻辑重构,新增计量单位列及缓存键优化

yusheng 9 месяцев назад
Родитель
Сommit
03d1a23961
2 измененных файлов с 51 добавлено и 34 удалено
  1. 15 2
      src/mixins/tableColumnsMixin.js
  2. 36 32
      src/views/saleOrder/index.vue

+ 15 - 2
src/mixins/tableColumnsMixin.js

@@ -55,6 +55,13 @@ export default {
         }
       }
     },
+    getColumns() {
+      if (typeof this.columns == 'function') {
+        return this.columns();
+      } else {
+        return this.columns;
+      }
+    },
     //服务器和本地配置columns对比
     columnsContrast(list) {
       const key = 'label';
@@ -62,8 +69,10 @@ export default {
       let sList = list.filter((d, i, r) => {
         return d[key];
       });
-      let devColumns =
-        this.newColumns?.length > 0 ? this.newColumns : this.columns;
+      let devColumns = this.newColumns?.length
+        ? this.newColumns
+        : this.getColumns();
+
       let dList = devColumns.filter((d, i, r) => {
         return d[key] && d[key] !== '序号';
       });
@@ -114,6 +123,7 @@ export default {
       });
 
       // 合并保留的对象和新增的对象
+      console.log(updated, 'dsds');
       return { nlist: [...updated, ...added], type: updateType };
     },
 
@@ -192,6 +202,9 @@ export default {
 
     // 添加column记录接口
     async saveTableConfig(data) {
+      if (!data.columnConfig.length) {
+        return;
+      }
       try {
         const res = await request({
           url: '/sys/table-config/save',

+ 36 - 32
src/views/saleOrder/index.vue

@@ -152,8 +152,8 @@
         activeName: 'first',
         selection: [],
 
-        _newColumns: [],
-        cacheKeyUrl: 'aps-saleOrder-index',
+        columns: [],
+        cacheKeyUrl: 'c32a9c7d-aps-saleOrder-index',
         columnsVersion: 1,
         // 订单类型
         orderTypeList: [
@@ -179,15 +179,26 @@
 
     computed: {
       // 表格列配置
-      clientEnvironmentId() {
-        return this.$store.state.user.info.clientEnvironmentId;
-      },
-      columns() {
-        const version = this.columnsVersion;
-        if (!this._newColumns) {
-          this._newColumns = [];
-        }
-        return [
+      // clientEnvironmentId() {
+      //   return
+      // },
+    },
+    created() {
+      this.setColumns();
+      this.getFieldModel();
+
+      this.requestDict('按单按库');
+      this.requestDict('交付要求');
+      this.requestDict('订单类型');
+      this.requestDict('订单来源');
+      this.requestDict('生产状态');
+    },
+    methods: {
+      setColumns() {
+        let clientEnvironmentId =
+          this.$store.state.user.info.clientEnvironmentId;
+
+        this.columns = [
           {
             width: 45,
             type: 'selection',
@@ -361,19 +372,24 @@
           {
             prop: 'contractNum',
             slot: 'contractNum',
-            label: this.clientEnvironmentId == '4' ? '交付数量' : '订单数量',
+            label: clientEnvironmentId == '4' ? '交付数量' : '订单数量',
             align: 'center'
           },
           {
             prop: 'lackNum',
             label: '欠交数量',
             align: 'center'
+          },
+                 {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            align: 'center'
           },
           {
             prop: 'moCount',
             label: '模数',
             align: 'center',
-            show: this.clientEnvironmentId == '4'
+            show: clientEnvironmentId == '4'
           },
 
           {
@@ -389,7 +405,7 @@
             prop: 'blockCount',
             label: '块数',
             align: 'center',
-            show: this.clientEnvironmentId == '4'
+            show: clientEnvironmentId == '4'
           },
           {
             prop: 'orderLibraryType',
@@ -494,21 +510,9 @@
             prop: 'hostDescription',
             label: '主机描述',
             showOverflowTooltip: true
-          },
-          ...this._newColumns
+          }
         ];
-      }
-    },
-    created() {
-      this.getFieldModel();
-
-      this.requestDict('按单按库');
-      this.requestDict('交付要求');
-      this.requestDict('订单类型');
-      this.requestDict('订单来源');
-      this.requestDict('生产状态');
-    },
-    methods: {
+      },
       async check(val) {
         if (this.selection.length == 0) {
           return this.$message.warning('请至少选择一条计划!');
@@ -617,11 +621,11 @@
               showOverflowTooltip: true
             };
           });
-
-          this._newColumns = [...newRes, ...privateColumn];
+          // console.log(this._newColumns, 'newRes');
+          this.columns = [...this.columns, ...newRes, ...privateColumn];
           // console.log(this.newColumns, 'productCode')
-          // this.getTabColumns();
-          this.$forceUpdate();
+          this.getTabColumns();
+          // this.$forceUpdate();
         });
       },