Procházet zdrojové kódy

fix: 修改锁库问题

tzx před 2 dny
rodič
revize
002de685ae

+ 20 - 2
src/BIZComponents/inventoryTable.vue

@@ -8,6 +8,7 @@
       class="time-form"
       max-height="300"
       @columns-change="handleColumnChange"
+      @header-dragend="handleHeaderDragend"
       :cache-key="cacheKeyUrl"
     >
       <!-- 表头工具栏 -->
@@ -836,7 +837,8 @@
         arrivalWayList: [
           { label: '一次性到货', value: 1 },
           { label: '分批到货', value: 2 }
-        ]
+        ],
+        widthsVersion: 0
       };
     },
     computed: {
@@ -844,6 +846,15 @@
         return this.form.datasource.length;
       },
       columns() {
+        // 强制重新计算(每次进入时读取缓存宽度)
+        this.widthsVersion;
+        const cacheWidths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        const applyWidth = (col) => {
+          if (col.prop && cacheWidths[col.prop]) {
+            return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+          }
+          return col;
+        };
         return [
           {
             width: 45,
@@ -1197,7 +1208,7 @@
             fixed: 'right',
             showOverflowTooltip: true
           }
-        ];
+        ].map(applyWidth);
       }
     },
 
@@ -1690,6 +1701,13 @@
       },
       save() {
         this.$emit('save');
+      },
+      // 列头拖拽结束 - 保存列宽到本地缓存
+      handleHeaderDragend(newWidth, oldWidth, column) {
+        if (!column.property) return;
+        const widths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        widths[column.property] = newWidth;
+        this.setStorage(this.cacheKeyUrl + 'Widths', widths);
       }
     }
   };

+ 20 - 2
src/BIZComponents/inventoryTableDetails.vue

@@ -7,6 +7,7 @@
       :datasource="form.datasource"
       class="time-form"
       @columns-change="handleColumnChange"
+      @header-dragend="handleHeaderDragend"
       :cache-key="cacheKeyUrl"
     >
       <template v-slot:technicalDrawings="scope">
@@ -132,11 +133,21 @@
         form: {
           discountTotalPrice: 0,
           datasource: []
-        }
+        },
+        widthsVersion: 0
       };
     },
     computed: {
       columns() {
+        // 强制重新计算(每次进入时读取缓存宽度)
+        this.widthsVersion;
+        const cacheWidths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        const applyWidth = (col) => {
+          if (col.prop && cacheWidths[col.prop]) {
+            return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+          }
+          return col;
+        };
         return [
           {
             width: 45,
@@ -535,7 +546,7 @@
             slot: 'remark',
             align: 'center'
           }
-        ];
+        ].map(applyWidth);
       }
     },
 
@@ -635,6 +646,13 @@
           );
           this.$refs.table.reload();
         }
+      },
+      // 列头拖拽结束 - 保存列宽到本地缓存
+      handleHeaderDragend(newWidth, oldWidth, column) {
+        if (!column.property) return;
+        const widths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        widths[column.property] = newWidth;
+        this.setStorage(this.cacheKeyUrl + 'Widths', widths);
       }
     }
   };

+ 29 - 4
src/BIZComponents/selectStockLedger/item-list.vue

@@ -11,6 +11,7 @@
       full-height="calc(100vh - 116px)"
       tool-class="ele-toolbar-form"
       cache-key="systemOrgUserTable"
+      @header-dragend="handleHeaderDragend"
       @select="selectChange"
       @select-all="changeSelectAll"
     >
@@ -177,12 +178,26 @@
         searchForm: {
           dimension: '1'
         },
-        selectedDime: '1'
+        selectedDime: '1',
+        widthsVersion: 0
       };
     },
     computed: {
       // 表格列配置
       columns() {
+        // 强制重新计算(每次进入时读取缓存宽度)
+        this.widthsVersion;
+        const cacheKey = this.$refs?.table?.cacheKey || 'systemOrgUserTable';
+        let cacheWidths = {};
+        try {
+          cacheWidths = JSON.parse(localStorage.getItem(cacheKey + 'Widths') || '{}');
+        } catch (e) {}
+        const applyWidth = (col) => {
+          if (col.prop && cacheWidths[col.prop]) {
+            return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+          }
+          return col;
+        };
         // selectedDime 1物品维度 2批次维度 3包装维度 4物料维度
         let arr = [
           this.selectedDime == 3
@@ -406,7 +421,7 @@
             fixed: 'right'
           }
         ];
-        return arr.filter((item) => item != '');
+        return arr.filter((item) => item != '').map(applyWidth);
       },
       clientEnvironmentId() {
         return this.$store.state.user.info.clientEnvironmentId;
@@ -565,8 +580,18 @@
             id: row.categoryId,
             assetId: row.assetId,
             batchNo: row.batchNo
-          }
-        });
+          }});
+        }
+      },
+      // 列头拖拽结束 - 保存列宽到本地缓存
+      handleHeaderDragend(newWidth, oldWidth, column) {
+        if (!column.property) return;
+        const cacheKey = 'systemOrgUserTable';
+        try {
+          const widths = JSON.parse(localStorage.getItem(cacheKey + 'Widths') || '{}');
+          widths[column.property] = newWidth;
+          localStorage.setItem(cacheKey + 'Widths', JSON.stringify(widths));
+        } catch (e) {}
       }
     },
 

+ 21 - 1
src/BIZComponents/selectStockLedger/item-search.vue

@@ -66,6 +66,24 @@
             ></el-input>
           </el-form-item>
         </el-col>
+        <el-col :span="6">
+          <el-form-item label="批次号:" prop="batchNo">
+            <el-input
+              clearable
+              v-model="params.batchNo"
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="颜色:" prop="color">
+            <el-input
+              clearable
+              v-model="params.color"
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col>
 <!--        <el-col :span="6">-->
 <!--          <el-form-item label="组织机构:">-->
 <!--            <auth-selection-->
@@ -135,9 +153,11 @@
         specification: '',
         code: '',
         categoryCode: '',
+        categoryModel: '',
         assetName: '',
         qualityResult: '',
-        factoryId: ''
+        factoryId: '',
+        color: ''
       };
       return {
         // 表单数据

+ 49 - 24
src/BIZComponents/selectStockLedger/selectStockLedgerDialog.vue

@@ -47,6 +47,9 @@
             class="dict-table"
             @cell-click="cellClick"
             :selection.sync="selection"
+            @columns-change="handleColumnChange"
+            @header-dragend="handleHeaderDragend"
+            :cache-key="cacheKeyUrl"
           >
             <template v-slot:action="{ row }">
               <el-radio class="radio" v-model="radio" :label="row.categoryCode"
@@ -69,9 +72,11 @@
   import { getOutindetailtwoList, getTreeByGroup } from '@/api/wms';
   import ItemSearch from './item-search.vue';
   import { contactQueryByCategoryIdsAPI } from '@/api/saleManage/contact';
+  import tabMixins from '@/mixins/tableColumnsMixin';
 
   export default {
     components: { ItemSearch },
+    mixins: [tabMixins],
     props: {
       /*已选择的产品*/
       data: {
@@ -99,12 +104,24 @@
           label: 'name'
         },
         treeList: [],
-        treeLoading: false
+        treeLoading: false,
+        cacheKeyUrl: 'select-stock-ledger-dialog-table',
+        widthsVersion: 0
       };
     },
     watch: {},
     computed: {
       columns() {
+        // 强制重新计算(打开弹窗时重新读取缓存宽度)
+        this.widthsVersion;
+        const cacheWidths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        const applyWidth = (col) => {
+          if (col.prop && cacheWidths[col.prop]) {
+            return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+          }
+          return col;
+        };
+
         let data = null;
         if (this.currentIndex != -1) {
           data = {
@@ -126,82 +143,82 @@
           };
         }
         return [
-          data,
+          applyWidth(data),
 
-          {
+          applyWidth({
             columnKey: 'index',
             type: 'index',
             width: 50,
             align: 'center',
             showOverflowTooltip: true,
             label: '序号'
-          },
-          {
+          }),
+          applyWidth({
             prop: 'categoryCode',
             label: '编码',
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 110
-          },
-          {
+          }),
+          applyWidth({
             prop: 'categoryName',
             label: '名称',
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 110
-          },
-          {
+          }),
+          applyWidth({
             prop: 'brandNum',
             align: 'center',
             label: '牌号',
             showOverflowTooltip: true
-          },
-          {
+          }),
+          applyWidth({
             prop: 'categoryModel',
             label: '型号',
             align: 'center',
             showOverflowTooltip: true
-          },
-          {
+          }),
+          applyWidth({
             prop: 'specification',
             label: '规格',
             align: 'center',
             showOverflowTooltip: true
-          },
-          {
+          }),
+          applyWidth({
             prop: 'measureQuantity',
             label: '库存',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 90
-          },
-          {
+          }),
+          applyWidth({
             prop: 'measureUnit',
             label: '单位',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 90
-          },
-          {
+          }),
+          applyWidth({
             prop: 'weight',
             label: '重量',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 90
-          },
-          {
+          }),
+          applyWidth({
             prop: 'weightUnit',
             label: '重量单位',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 90
-          },
-          {
+          }),
+          applyWidth({
             prop: 'packingUnit',
             align: 'center',
             label: '包装单位',
             showOverflowTooltip: true
-          }
+          })
         ];
       }
     },
@@ -211,6 +228,7 @@
         return this.dictList[code].find((item) => item.value == val)?.label;
       },
       open(item, currentIndex) {
+        this.widthsVersion++;
         this.currentIndex = currentIndex;
         this.visible = true;
         this.getTreeData();
@@ -277,6 +295,13 @@
         this.current = row;
         this.radio = row.id;
       },
+      // 列头拖拽结束 - 保存列宽到本地缓存
+      handleHeaderDragend(newWidth, oldWidth, column) {
+        if (!column.property) return;
+        const widths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        widths[column.property] = newWidth;
+        this.setStorage(this.cacheKeyUrl + 'Widths', widths);
+      },
       handleClose() {
         this.visible = false;
         this.current = null;

+ 11 - 0
src/styles/index.scss

@@ -22,3 +22,14 @@ table th .is-required::before{
   .switch {
     padding-bottom: 20px;
   }
+
+/* 表格内数字输入框(数量、单价等字段)隐藏上下箭头 */
+.el-table .el-input__inner[type='number']::-webkit-outer-spin-button,
+.el-table .el-input__inner[type='number']::-webkit-inner-spin-button {
+  -webkit-appearance: none;
+  margin: 0;
+}
+.el-table .el-input__inner[type='number'] {
+  -moz-appearance: textfield;
+  appearance: textfield;
+}

+ 25 - 4
src/views/saleManage/saleOrder/customerReturnOrder/inventoryTable.vue

@@ -7,6 +7,7 @@
       :toolkit="[]"
       :datasource="form.datasource"
       cache-key="systemRoleTable17"
+      @header-dragend="handleHeaderDragend"
       class="time-form"
     >
       <template v-slot:technicalDrawings="{ row, $index }">
@@ -275,8 +276,8 @@ export default {
         datasource: []
       },
       rules: {},
-
-    };
+        widthsVersion: 0,
+      };
   },
   created() {
     getWarehouseList().then((res) => {
@@ -291,6 +292,18 @@ export default {
       return this.$store.state.order.contractId;
     },
     columns() {
+      // 强制重新计算(每次进入时读取缓存宽度)
+      this.widthsVersion;
+      let cacheWidths = {};
+      try {
+        cacheWidths = JSON.parse(localStorage.getItem('systemRoleTable17' + 'Widths') || '{}');
+      } catch (e) {}
+      const applyWidth = (col) => {
+        if (col.prop && cacheWidths[col.prop]) {
+          return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+        }
+        return col;
+      };
       return [
         {
           width: 45,
@@ -528,9 +541,8 @@ export default {
         //   fixed: 'right',
         //   showOverflowTooltip: true
         // }
-      ]
+      ].map(applyWidth);
     }
-
   },
   methods: {
     downloadFile(file) {
@@ -784,6 +796,15 @@ export default {
       this.$refs.form.validate((valid) => {
         callback(valid);
       });
+    },
+    // 列头拖拽结束 - 保存列宽到本地缓存
+    handleHeaderDragend(newWidth, oldWidth, column) {
+      if (!column.property) return;
+      try {
+        const widths = JSON.parse(localStorage.getItem('systemRoleTable17' + 'Widths') || '{}');
+        widths[column.property] = newWidth;
+        localStorage.setItem('systemRoleTable17' + 'Widths', JSON.stringify(widths));
+      } catch (e) {}
     }
   }
 };

+ 54 - 1
src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue

@@ -6,7 +6,9 @@
       :columns="columns"
       :datasource="form.datasource"
       class="time-form"
+      :selection.sync="selection"
       @columns-change="handleColumnChange"
+      @header-dragend="handleHeaderDragend"
       :cache-key="cacheKeyUrl"
     >
       <!-- 表头工具栏 -->
@@ -32,6 +34,16 @@
           >
             新增
           </el-button>
+          <el-button
+            size="small"
+            type="danger"
+            icon="el-icon-delete"
+            class="ele-btn-icon"
+            :disabled="!selection.length"
+            @click="batchRemove"
+          >
+            批量删除
+          </el-button>
         </div>
       </template>
       <template v-slot:technicalDrawings="{ row, $index }">
@@ -398,6 +410,7 @@
       };
       return {
         cacheKeyUrl: 'eos-saleManage-invoice-inventoryTable',
+        widthsVersion: 0,
         current: {},
         childrenColumns: [
           {
@@ -471,7 +484,23 @@
         return this.$store.state.user.info.clientEnvironmentId;
       },
       columns() {
+        // 强制重新计算(每次进入时读取缓存宽度)
+        this.widthsVersion;
+        const cacheWidths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        const applyWidth = (col) => {
+          if (col.prop && cacheWidths[col.prop]) {
+            return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+          }
+          return col;
+        };
         return [
+          {
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center',
+            fixed: 'left'
+          },
           {
             width: 45,
             type: 'index',
@@ -796,7 +825,7 @@
             fixed: 'right',
             showOverflowTooltip: true
           }
-        ];
+        ].map(applyWidth);
       }
     },
     methods: {
@@ -1148,6 +1177,23 @@
         this.form.datasource.splice(i, 1);
         this.setSort();
       },
+      batchRemove() {
+        if (!this.selection.length) return;
+        this.$confirm('确定要批量删除选中的物品吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          const ids = this.selection.map(item => item.tempId ?? item.id);
+          this.form.datasource = this.form.datasource.filter(
+            item => !ids.includes(item.tempId ?? item.id)
+          );
+          this.selection = [];
+          this.setSort();
+          this.$refs.table.reload();
+          this.$message.success('删除成功');
+        }).catch(() => {});
+      },
       // 清空表格
       restTable() {
         this.form.datasource = [];
@@ -1197,6 +1243,13 @@
 
           callback(valid);
         });
+      },
+      // 列头拖拽结束 - 保存列宽到本地缓存
+      handleHeaderDragend(newWidth, oldWidth, column) {
+        if (!column.property) return;
+        const widths = this.getStorage(this.cacheKeyUrl + 'Widths') || {};
+        widths[column.property] = newWidth;
+        this.setStorage(this.cacheKeyUrl + 'Widths', widths);
       }
     }
   };

+ 7 - 0
src/views/saleManage/saleOrder/invoice/components/inventoryTableDetails.vue

@@ -114,6 +114,13 @@
             slot: 'specification',
             align: 'center'
           },
+          {
+            width: 100,
+            prop: 'color',
+            label: '颜色',
+            align: 'center',
+            showOverflowTooltip: true
+          },
           {
             width: 120,
             prop: 'imgCode',

+ 122 - 2
src/views/saleManage/saleOrder/invoice/components/product-list.vue

@@ -10,12 +10,79 @@
     width="70%"
   >
     <el-card shadow="never">
+      <!-- 搜索条件 -->
+      <el-form
+        :model="searchForm"
+        label-width="80px"
+        class="ele-form-search"
+        @keyup.enter.native="doSearch"
+        @submit.native.prevent
+      >
+        <el-row :gutter="15">
+          <el-col :span="6">
+            <el-form-item label="型号:" prop="modelType">
+              <el-input
+                clearable
+                v-model="searchForm.modelType"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="规格:" prop="specification">
+              <el-input
+                clearable
+                v-model="searchForm.specification"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="批次号:" prop="batchNo">
+              <el-input
+                clearable
+                v-model="searchForm.batchNo"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="颜色:" prop="color">
+              <el-input
+                clearable
+                v-model="searchForm.color"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6" style="float: right">
+            <div class="ele-form-actions">
+              <el-button
+                type="primary"
+                icon="el-icon-search"
+                class="ele-btn-icon"
+                @click="doSearch"
+                size="small"
+              >
+                查询
+              </el-button>
+              <el-button
+                @click="resetSearch"
+                icon="el-icon-refresh-left"
+                size="small"
+                type="primary"
+              >重置</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </el-form>
+
       <ele-pro-table
         ref="table"
         :columns="columns"
         :datasource="datasource"
         row-key="id"
-        height="calc(100vh - 350px)"
+        height="calc(100vh - 420px)"
         class="dict-table"
         @cell-click="cellClick"
       >
@@ -54,6 +121,13 @@ export default {
       currentIndex: null,
       currentData: [], //已经存在的产品
       datasource: [],
+      originalData: [], // 完整的原始数据
+      searchForm: {
+        modelType: '',
+        specification: '',
+        batchNo: '',
+        color: ''
+      },
       columns: [
         {
           action: 'action',
@@ -112,6 +186,18 @@ export default {
           slot: 'specification',
           align: "center"
         },
+        {
+          minWidth: 100,
+          prop: 'batchNo',
+          label: '批次号',
+          align: "center"
+        },
+        {
+          minWidth: 100,
+          prop: 'color',
+          label: '颜色',
+          align: "center"
+        },
         {
           width: 80,
           prop: 'totalCount',
@@ -207,10 +293,41 @@ export default {
       if (data) {
         this.$nextTick(() => {
           let {productList} = data;
+          this.originalData = productList;
           this.datasource = productList;
         });
       }
     },
+    // 搜索过滤
+    doSearch() {
+      const { modelType, specification, batchNo, color } = this.searchForm;
+      this.datasource = this.originalData.filter(item => {
+        let match = true;
+        if (modelType) {
+          match = match && item.modelType && item.modelType.indexOf(modelType) !== -1;
+        }
+        if (specification) {
+          match = match && item.specification && item.specification.indexOf(specification) !== -1;
+        }
+        if (batchNo) {
+          match = match && item.batchNo && item.batchNo.indexOf(batchNo) !== -1;
+        }
+        if (color) {
+          match = match && item.color && item.color.indexOf(color) !== -1;
+        }
+        return match;
+      });
+    },
+    // 重置搜索
+    resetSearch() {
+      this.searchForm = {
+        modelType: '',
+        specification: '',
+        batchNo: '',
+        color: ''
+      };
+      this.datasource = this.originalData;
+    },
 
     /* 刷新表格 */
     reload(where) {
@@ -285,4 +402,7 @@ export default {
 .topsearch {
   margin-bottom: 15px;
 }
-</style>
+::v-deep .ele-form-actions {
+  float: right;
+}
+</style>

+ 26 - 3
src/views/saleManage/saleOrder/invoice/components/stockLedger/components/item-list.vue

@@ -17,6 +17,7 @@
       :toolkit="[]"
       tool-class="ele-toolbar-form"
       cache-key="item-listTable"
+      @header-dragend="handleHeaderDragend"
       :selection.sync="selection"
       @done="onDone"
     >
@@ -139,12 +140,25 @@ export default {
       selectedDime: '3',
       selection: [],
       where: {},
-      index: 0
+      index: 0,
+      widthsVersion: 0
     };
   },
   computed: {
     // 表格列配置
     columns() {
+      // 强制重新计算(每次进入时读取缓存宽度)
+      this.widthsVersion;
+      let cacheWidths = {};
+      try {
+        cacheWidths = JSON.parse(localStorage.getItem('item-listTable' + 'Widths') || '{}');
+      } catch (e) {}
+      const applyWidth = (col) => {
+        if (col.prop && cacheWidths[col.prop]) {
+          return { ...col, width: cacheWidths[col.prop], minWidth: undefined };
+        }
+        return col;
+      };
       // selectedDime 1物品维度 2批次维度 3包装维度 4物料维度
       switch (this.selectedDime) {
         // 包装维度
@@ -322,7 +336,7 @@ export default {
               slot: 'action',
               fixed: 'right'
             }
-          ];
+          ].map(applyWidth);
         // 物料维度
         default:
           return [
@@ -473,7 +487,7 @@ export default {
               slot: 'action',
               fixed: 'right'
             }
-          ];
+          ].map(applyWidth);
       }
     }
   },
@@ -588,6 +602,15 @@ export default {
       this.selection.forEach(item => item.dimension = this.selectedDime)
       return this.selection
     },
+    // 列头拖拽结束 - 保存列宽到本地缓存
+    handleHeaderDragend(newWidth, oldWidth, column) {
+      if (!column.property) return;
+      try {
+        const widths = JSON.parse(localStorage.getItem('item-listTable' + 'Widths') || '{}');
+        widths[column.property] = newWidth;
+        localStorage.setItem('item-listTable' + 'Widths', JSON.stringify(widths));
+      } catch (e) {}
+    },
   },
 
   watch: {

+ 20 - 1
src/views/saleManage/saleOrder/invoice/components/stockLedger/components/item-search.vue

@@ -89,6 +89,24 @@
             ></el-input>
           </el-form-item>
         </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="批次号:" prop="batchNo">
+            <el-input
+              clearable
+              v-model="params.batchNo"
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="颜色:" prop="color">
+            <el-input
+              clearable
+              v-model="params.color"
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col>
         <el-col
           v-if="dimension == 3 || dimension == 4"
           v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }"
@@ -151,7 +169,8 @@ export default {
       modelType: '',
       pageNum: '',
       specification: '',
-      barcodes: ''
+      barcodes: '',
+      color: ''
     };
     return {
       // 表单数据

+ 21 - 0
src/views/saleManage/saleOrder/returnGoods/components/customerReturnOrderDetail.vue

@@ -115,6 +115,27 @@
             showOverflowTooltip: true,
             align: 'center'
           },
+          {
+            minWidth: 120,
+            prop: 'modelType',
+            label: '型号',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 120,
+            prop: 'specification',
+            label: '规格',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 100,
+            prop: 'color',
+            label: '颜色',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
           {
             minWidth: 120,
             prop: 'engrave',

+ 21 - 0
src/views/saleManage/saleOrder/returnGoods/components/detailDialog.vue

@@ -279,6 +279,27 @@
             showOverflowTooltip: true,
             align: 'center'
           },
+          {
+            minWidth: 120,
+            prop: 'modelType',
+            label: '型号',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 120,
+            prop: 'specification',
+            label: '规格',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 100,
+            prop: 'color',
+            label: '颜色',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
           {
             minWidth: 120,
             prop: 'clientCode',

+ 17 - 0
src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturn.vue

@@ -238,6 +238,16 @@
           ></el-input>
         </el-form-item>
       </template>
+      <template v-slot:color="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.color'"
+        >
+          <el-input v-model="scope.row.color" 
+          :disabled="!!scope.row.productCode"
+          ></el-input>
+        </el-form-item>
+      </template>
       <template v-slot:deliveryDays="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -827,6 +837,13 @@ export default {
           slot: 'specification',
           align: 'center'
         },
+        {
+          width: 100,
+          prop: 'color',
+          label: '颜色',
+          slot: 'color',
+          align: 'center'
+        },
         {
           width: 120,
           prop: 'imgCode',

+ 1 - 1
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
         // target: 'http://192.168.1.139:18086', // 粟
         // target: 'http://192.168.1.132:18086', // 徐1
         // target: 'http://192.168.1.134:18086', //徐2
-        target: 'http://192.168.1.105:18086',
+        target: 'http://192.168.1.125:18086',
         // target: 'http://192.168.1.103:18086',
         // target: 'http://192.168.1.251:18186',
         // target: 'http://192.168.1.105:18086',