Procházet zdrojové kódy

feat: 在搜索表单中添加销售订单号输入框,并在表格中格式化显示销售订单号

xieyong před 2 dny
rodič
revize
f0fcb83bc9

+ 11 - 0
src/views/productionPlan/components/productionPlan-search.vue

@@ -242,6 +242,16 @@
                     />
                   </el-form-item>
                 </el-row>
+                <el-row>
+                  <el-form-item label="销售订单号:" label-width="80px">
+                    <el-input
+                      size="mini"
+                      clearable
+                      v-model="where.salesCode"
+                      placeholder="请输入"
+                    />
+                  </el-form-item>
+                </el-row>
                 <el-row>
                   <el-form-item label="产品编码:" label-width="80px">
                     <el-input
@@ -346,6 +356,7 @@
       // 默认表单数据
       const defaultWhere = {
         code: '',
+        salesCode: '',
         productCode: '',
         status: '',
         model: '',

+ 9 - 1
src/views/productionPlan/index.vue

@@ -260,7 +260,7 @@
         </template>
 
         <template v-slot:salesCode="{ row }">
-          {{ row.salesCode }}
+          {{ salesCodeFormatter(row) }}
         </template>
 
         <template v-slot:priority="{ row }">
@@ -1313,6 +1313,14 @@
 
         return obj && obj.label;
       },
+      // 销售订单号:salesCode 是数组,salesOrderCode 是字符串,统一成逗号分隔的文本
+      salesCodeFormatter(row) {
+        const salesCode = row.salesCode || row.salesOrderCode;
+        if (Array.isArray(salesCode)) {
+          return salesCode.filter((item) => item).join(',');
+        }
+        return salesCode || '';
+      },
       approvalStatusFormatter(status) {
         return reviewStatus[status];
       },

+ 14 - 0
src/views/workOrder/components/order-search.vue

@@ -183,6 +183,17 @@
                   </el-form-item>
                 </el-row>
 
+                <el-row>
+                  <el-form-item label="销售订单号:">
+                    <el-input
+                      size="mini"
+                      clearable
+                      v-model="where.salesCode"
+                      placeholder="请输入"
+                    />
+                  </el-form-item>
+                </el-row>
+
                 <el-row>
                   <el-form-item label="计划编号:">
                     <el-input
@@ -266,6 +277,7 @@
       const defaultWhere = {
         keyWord: '',
         code: '',
+        salesCode: '',
         productionPlanCode: '',
         produceRoutingName: '',
         productCode: '',
@@ -338,6 +350,8 @@
           where.createTimeEnd = where.createTime[1];
         }
         delete where.createTime;
+        // 生产订单的销售订单号在列表里可能是 salesCode 或 salesOrderCode,两个查询参数都带上
+        where.salesOrderCode = where.salesCode;
         console.log(where);
         this.$emit('search', where);
       },

+ 20 - 0
src/views/workOrder/index.vue

@@ -101,6 +101,9 @@
             {{ row.code }}
           </el-link>
         </template>
+        <template v-slot:salesCode="{ row }">
+          {{ salesCodeFormatter(row) }}
+        </template>
         <template v-slot:formingWeight="{ row }">
           {{ row.formingWeight }} {{ row.newWeightUnit }}
         </template>
@@ -447,6 +450,15 @@
             sortable: true,
             showOverflowTooltip: true
           },
+          {
+            slot: 'salesCode',
+            prop: 'salesCode',
+            action: 'salesCode',
+            label: '销售订单号',
+            align: 'center',
+            minWidth: 160,
+            showOverflowTooltip: true
+          },
           {
             prop: 'lineNumber',
             label: '行号',
@@ -1041,6 +1053,14 @@
         const obj = this.statusOpt.find((i) => i.value == status);
         return obj && obj.label;
       },
+      // 销售订单号:salesCode 是数组,salesOrderCode 是字符串,统一成逗号分隔的文本
+      salesCodeFormatter(row) {
+        const salesCode = row.salesCode || row.salesOrderCode;
+        if (Array.isArray(salesCode)) {
+          return salesCode.filter((item) => item).join(',');
+        }
+        return salesCode || '';
+      },
       /* 表格数据源 */
       datasource({ page, limit, where }) {
         this.selectionMap = {};