Procházet zdrojové kódy

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-aps into dev

lucw před 9 měsíci
rodič
revize
b44fc7d6ef

+ 10 - 0
src/api/saleOrder/index.js

@@ -345,3 +345,13 @@ export async function getUpdateInfoByCode(code) {
   return Promise.reject(new Error(res.data.message));
 }
 
+/**
+ * 企业信息
+ */
+export async function enterprisePage(params) {
+  const res = await request.get(`/main/enterprise/page`, { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 13 - 8
src/api/workOrder/index.js

@@ -15,37 +15,33 @@ export async function getList(params) {
 
 // 下达
 export async function releaseWorkOrder(data) {
-  const res = await request.post(
-    `/aps/workorder/releaseWorkOrder`, data
-  );
+  const res = await request.post(`/aps/workorder/releaseWorkOrder`, data);
   if (res.data.code == 0) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
 }
 
-
 // 修改优先级
 export async function updatePriority(data) {
-  const res = await request.post(`/aps/workorder/updatePriority`,  data);
+  const res = await request.post(`/aps/workorder/updatePriority`, data);
   if (res.data.code == 0) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
 }
 
-
 // 订单拆单
 
 export async function splitBatch(data) {
-  const res = await request.post(`/aps/workorder/splitBatch`,  data);
+  const res = await request.post(`/aps/workorder/splitBatch`, data);
   if (res.data.code == 0) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
 }
 
-// 删除拆单数据 
+// 删除拆单数据
 export async function unpackDel(id) {
   const res = await request.delete(`/aps/workorder/delById/${id}`);
   if (res.data.code == 0) {
@@ -53,3 +49,12 @@ export async function unpackDel(id) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+//获取用户的工厂,所属工作中中心,班组等信息
+export async function getUserInfo(id) {
+  const res = await request.get(`/main/user/getUserWindow/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 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',

+ 43 - 5
src/views/productionPlan/components/factoryAdd/index.vue

@@ -118,6 +118,7 @@
                 style="width: 100%"
                 size="mini"
                 v-model="form.reqMoldTime"
+                @change="handleCompleteChange(form)"
                 type="datetime"
                 placeholder="选择日期"
                 value-format="yyyy-MM-dd HH:mm:ss"
@@ -1634,15 +1635,52 @@
         // 校验 是否 大于结束时间  wda
         this.checkEndTimeValid(row);
       },
+
+      handleCompleteChange(row) {
+        const { reqMoldTime } = row;
+
+        if (!row.startTime) {
+          row.reqMoldTime = '';
+          return this.$message.warning('请选择计划开始时间');
+        }
+
+        this.handleComplete(reqMoldTime, row);
+      },
+
+      handleComplete(reqMoldTime, row) {
+        const startTime = new Date(row.startTime).getTime();
+        const completeTime = new Date(reqMoldTime).getTime();
+
+        if (completeTime < startTime) {
+          row.reqMoldTime = ''; // 修正为开始时间
+          return this.$message.warning(
+            '要求完成时间不能早于计划开始时间, 请重新选择要求完成时间'
+          );
+        }
+      },
+
       // 时间校验
       checkEndTimeValid(row) {
         const { startTime: start, endTime: end } = row;
-        // if (!start || !end) return; // 开始/结束时间未填,跳过
-        const startTime = new Date(start); // 开始时间
-        const endTime = new Date(end); // 结束时间
+        this.handleChange(start, end, row);
+        // // if (!start || !end) return; // 开始/结束时间未填,跳过
+        // const startTime = new Date(start); // 开始时间
+        // const endTime = new Date(end); // 结束时间
+        // if (endTime < startTime) {
+        //   row.endTime = new Date(startTime); // 修正为开始时间
+        //   this.$message.info('结束时间不能早于开始时间,已自动设为开始时间');
+        // }
+      },
+
+      handleChange(start, end, row) {
+        const startTime = new Date(start).getTime();
+        const endTime = new Date(end).getTime();
+
         if (endTime < startTime) {
-          row.endTime = new Date(startTime); // 修正为开始时间
-          this.$message.info('结束时间不能早于开始时间,已自动设为开始时间');
+          row.endTime = ''; // 修正为开始时间
+          return this.$message.warning(
+            '计划结束时间不能早于计划开始时间,请重新选择计划结束时间'
+          );
         }
       }
     }

+ 19 - 1
src/views/saleOrder/components/order-search.vue

@@ -416,6 +416,14 @@
               v-if="activeName == 'first' && clientEnvironmentId == 2"
               >同步数据</el-button
             >
+            <el-button
+              v-if="$hasPermission('aps:salesorder:export')"
+              :disabled="selection.length < 1"
+              type="primary"
+              size="mini"
+              @click="handlePrint"
+              >打印</el-button
+            >
           </div>
         </el-form-item>
       </el-col>
@@ -427,6 +435,8 @@
     <create-order ref="createDialog" @refresh="search"> </create-order>
     <!-- 订单组合 -->
     <group-order ref="groupDialog"> </group-order>
+
+    <printTemplateSaleOrder :groupName="groupName" ref="printTemplateSaleOrderRef"></printTemplateSaleOrder>
   </el-form>
 </template>
 
@@ -445,6 +455,7 @@
     deleteOrder,
     synchronousDataByJDY
   } from '@/api/saleOrder';
+  import printTemplateSaleOrder from './printTemplateSaleOrder.vue';
   export default {
     props: {
       selection: Array,
@@ -453,7 +464,8 @@
     components: {
       ImportException,
       CreateOrder,
-      GroupOrder
+      GroupOrder,
+      printTemplateSaleOrder
     },
     data() {
       // 默认表单数据
@@ -796,6 +808,12 @@
       homogeneityInspect(val) {
         console.log(val, 'val');
         this.$emit('check', val);
+      },
+      handlePrint() {
+        console.log(this.selection[0]);
+        if (this.selection.length > 1)
+          return this.$message.warning('请选择一条');
+        this.$refs.printTemplateSaleOrderRef.open(this.selection[0]);
       }
     }
   };

+ 195 - 0
src/views/saleOrder/components/printTemplateSaleOrder.vue

@@ -0,0 +1,195 @@
+<template>
+  <ele-modal
+    title="销售订单"
+    :visible.sync="QRvisible"
+    v-if="QRvisible"
+    width="90%"
+  >
+    <div
+      id="printSection"
+      style="
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        flex-direction: column;
+      "
+    >
+      <div>
+        <div
+          style="
+            font-size: 20px;
+            font-weight: 800;
+            padding-right: 20px;
+            width: 400px;
+            margin: 0 auto;
+          "
+          >{{ groupName }}销售订单</div
+        >
+      </div>
+      <div
+        style="
+          width: 100%;
+          font-size: 12px;
+          display: flex;
+          justify-content: space-between;
+          margin-bottom: 10px;
+        "
+      >
+        <span style="width: 25%">单据日期:{{ row.createTime }}</span>
+        <span style="width: 50%">客户简称:{{ formData.customerName }}</span>
+        <span style="width: 50%">客户经理:{{ formData.salesman }}</span>
+      </div>
+      <div
+        style="
+          width: 100%;
+          font-size: 12px;
+          display: flex;
+          justify-content: space-between;
+          margin-bottom: 10px;
+        "
+      >
+        <span style="width: 45%">交货日期:{{ formData.deliveryTime }}</span>
+        <span style="width: 45%">单据编码:{{ formData.code }}</span>
+      </div>
+      <table
+        cellspacing="0"
+        border
+        style="
+          width: 100%;
+          table-layout: fixed;
+          word-break: break-all;
+          word-wrap: break-word;
+          font-size: 12px;
+        "
+      >
+        <tbody>
+          <tr align="center">
+            <td style="padding: 5px"> 存货名称 </td>
+            <td style="padding: 5px"> 规格型号 </td>
+            <td style="padding: 5px"> 型号 </td>
+            <td style="padding: 5px"> 颜色 </td>
+            <td style="padding: 5px; width: 60px"> 单位</td>
+            <td style="padding: 5px; width: 110px"> 数量</td>
+            <!-- <td style="padding: 5px; width: 110px"> 盘具</td>
+            <td style="padding: 5px; width: 110px"> 分段</td> -->
+            <td style="padding: 5px"> 备注</td>
+          </tr>
+
+          <tr align="center" v-for="(item, index) in formData.productInfoList">
+            <td style="padding: 5px"> {{ item.productName }} </td>
+            <td style="padding: 5px">
+              {{ item.specification }}
+            </td>
+            <td style="padding: 5px"> {{ item.model }}</td>
+            <td style="padding: 5px"> {{ item.colorKey.join(',') }}</td>
+            <td style="padding: 5px"> {{ item.measuringUnit }}</td>
+            <td style="padding: 5px"> {{ item.contractNum }}</td>
+            <!-- <td style="padding: 5px"> {{ item.totalCount }}</td>
+            <td style="padding: 5px"> {{ item.totalCount }}</td> -->
+            <td style="padding: 5px"> {{ item.remark }}</td>
+          </tr>
+        </tbody>
+      </table>
+      <div
+        style="
+          width: 100%;
+          font-size: 12px;
+          display: flex;
+          justify-content: space-between;
+          margin-top: 10px;
+        "
+      >
+        <div style="flex: 1">
+          <div>制单人:{{ detail.salesOrderBasicInfo.createUserName }}</div>
+        </div>
+        <div style="flex: 1">
+          <div>审核人:{{ formData.createUserName }}</div>
+        </div>
+      </div>
+    </div>
+
+    <div slot="footer">
+      <el-button @click="print">打印预览</el-button>
+      <el-button @click="close">关闭</el-button>
+    </div>
+  </ele-modal>
+</template>
+
+<script>
+  import { getOrderDetail, getSalesDetail, enterprisePage } from '@/api/saleOrder';
+  import { mapGetters } from 'vuex';
+  export default {
+    name: 'print',
+    computed: {
+      ...mapGetters(['user'])
+    },
+    props: {
+      
+    },
+    data() {
+      return {
+        checked: '',
+        QRvisible: false,
+        isPrintPrice: false,
+        formData: {},
+        row: {},
+        detail: {},
+        groupName: ''
+      };
+    },
+    methods: {
+      async open(row) {
+        this.row = row;
+        enterprisePage({
+        pageNum: 1,
+        size: 200
+      }).then((res) => {
+        if (res.list?.length > 0) {
+          this.groupName = res.list[0].name;
+        }
+      });
+        this.formData = await getOrderDetail(row.code);
+        this.detail = await getSalesDetail(row.id);
+        console.log('formData~~~', this.formData, this.detail);
+        this.QRvisible = true;
+
+        //包装维度
+      },
+      close() {
+        this.QRvisible = false;
+      },
+      getTotalValue(key, num) {
+        let val = this.formData?.productList?.reduce((total, item) => {
+          return (total += Number(item[key]));
+        }, 0);
+
+        return (
+          (val &&
+            parseFloat(val)
+              .toFixed(num)
+              .replace(/\.?0+$/, '')) ||
+          0
+        );
+      },
+      print() {
+        const printSection = document.getElementById('printSection');
+        // 创建打印任务
+        const printWindow = window.open('', '_blank');
+        printWindow.document.open();
+        printWindow.document.write('<html><head><title>打印预览</title>');
+        printWindow.document.write(
+          '<link rel="stylesheet" href="your-stylesheet-url.css" type="text/css" />'
+        );
+        printWindow.document.write('</head><body>');
+        printWindow.document.write(printSection.innerHTML);
+        printWindow.document.write('</body></html>');
+        printWindow.document.close();
+        printWindow.onload = function () {
+          printWindow.print();
+        };
+      }
+    }
+  };
+</script>
+
+<style lang="scss"></style>

+ 43 - 29
src/views/saleOrder/index.vue

@@ -20,7 +20,7 @@
       <!-- 数据表格 -->
       <ele-pro-table
         ref="table"
-        :columns="newColumns"
+        :columns="columns"
         :initLoad="false"
         :datasource="datasource"
         :selection.sync="selection"
@@ -29,7 +29,7 @@
         row-key="id"
         @sort-change="onSortChange"
         @columns-change="handleColumnChange"
-        :cacheKeyUrl="cacheKeyUrl"
+        :cacheKey="cacheKeyUrl"
       >
         <!--   :cache-key="cacheKeyUrl" -->
         <template v-slot:code="{ row }">
@@ -152,8 +152,8 @@
         activeName: 'first',
         selection: [],
 
-        newColumns: [],
-        cacheKeyUrl: 'c32a9c7d-aps-saleOrder',
+        columns: [],
+        cacheKeyUrl: 'c32a9c7d-aps-saleOrder-index',
         columnsVersion: 1,
         // 订单类型
         orderTypeList: [
@@ -179,12 +179,26 @@
 
     computed: {
       // 表格列配置
-      clientEnvironmentId() {
-        return this.$store.state.user.info.clientEnvironmentId;
-      },
-      columns() {
-        const version = this.columnsVersion;
-        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',
@@ -240,7 +254,13 @@
             showOverflowTooltip: true,
             formatter: (row) => {
               if (row.bomType) {
-                return row.bomType == 1 ? 'PBOM' : row.bomType == 2 ? 'MBOM' :  row.bomType == 3 ? 'ABOM' : 'EBOM';
+                return row.bomType == 1
+                  ? 'PBOM'
+                  : row.bomType == 2
+                  ? 'MBOM'
+                  : row.bomType == 3
+                  ? 'ABOM'
+                  : 'EBOM';
               }
               return '';
             }
@@ -352,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'
           },
 
           {
@@ -380,7 +405,7 @@
             prop: 'blockCount',
             label: '块数',
             align: 'center',
-            show: this.clientEnvironmentId == '4'
+            show: clientEnvironmentId == '4'
           },
           {
             prop: 'orderLibraryType',
@@ -487,18 +512,7 @@
             showOverflowTooltip: true
           }
         ];
-      }
-    },
-    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('请至少选择一条计划!');
@@ -607,11 +621,11 @@
               showOverflowTooltip: true
             };
           });
-
-          this.newColumns = [...this.columns, ...newRes, ...privateColumn];
+          // console.log(this._newColumns, 'newRes');
+          this.columns = [...this.columns, ...newRes, ...privateColumn];
           // console.log(this.newColumns, 'productCode')
           this.getTabColumns();
-          this.$forceUpdate();
+          // this.$forceUpdate();
         });
       },
 

+ 118 - 84
src/views/workOrder/components/releaseDialog.vue

@@ -192,7 +192,7 @@
             <ele-pro-table
               class="table"
               :ref="`tableRef${index}`"
-              :columns="columns"
+              :columns="columns(item)"
               :datasource="item.list"
               cache-key="systemRoleTable"
               :pageSize="20"
@@ -465,90 +465,124 @@
         };
       },
       columns() {
-        return [
-          {
-            columnKey: 'index',
-            label: '序号',
-            type: 'index',
-            width: 55,
-            align: 'center',
-            fixed: 'left'
-          },
-          {
-            width: 45,
-            type: 'selection',
-            columnKey: 'selection',
-            align: 'center',
-            fixed: 'left',
-            reserveSelection: true
-          },
-          {
-            prop: 'name',
-            label: this.dynamicName,
-            align: 'center',
-            width: 200
-          },
-          {
-            prop: 'code',
-            label: '编码',
-            align: 'center',
-            width: 200
-          },
-          {
-            prop: 'status',
-            label: '状态',
-            align: 'center',
-            width: 150,
-            formatter: (row) => {
-              if (!row.status) return '';
-              return row.status.desc || '';
+        return (val) => {
+          let data =
+            val.assignType == 1
+              ? [
+                  {
+                    prop: 'assetCode',
+                    label: '设备编码',
+                    align: 'center',
+                    width: 150
+                  },
+                  {
+                    prop: 'assetName',
+                    label: '设备名称',
+                    align: 'center',
+                    width: 150
+                  },
+                  {
+                    prop: 'assetModelType',
+                    label: '设备型号',
+                    align: 'center',
+                    width: 150
+                  },
+                  {
+                    prop: 'assetCategoryLevelPath',
+                    label: '设备类型',
+                    align: 'center',
+                    width: 150
+                  }
+                ]
+              : [];
+
+          return [
+            {
+              columnKey: 'index',
+              label: '序号',
+              type: 'index',
+              width: 55,
+              align: 'center',
+              fixed: 'left'
+            },
+            {
+              width: 45,
+              type: 'selection',
+              columnKey: 'selection',
+              align: 'center',
+              fixed: 'left',
+              reserveSelection: true
+            },
+            {
+              prop: 'name',
+              label: this.dynamicName,
+              align: 'center',
+              width: 200
+            },
+            {
+              prop: 'code',
+              label: '编码',
+              align: 'center',
+              width: 200
+            },
+            ...data,
+
+            {
+              prop: 'status',
+              label: '状态',
+              align: 'center',
+              width: 150,
+              formatter: (row) => {
+                if (!row.status) return '';
+                return row.status.desc || '';
+              }
+            },
+            {
+              slot: 'quantity',
+              prop: 'quantity',
+              label: '数量',
+              align: 'center',
+              width: 140
+            },
+            {
+              slot: 'weight',
+              prop: 'weight',
+              label: `重量(${this.current.newWeightUnit})`,
+              align: 'center',
+              width: 140
+            },
+            {
+              slot: 'teamTimeIds',
+              prop: 'teamTimeIds',
+              label: '班次',
+              align: 'center',
+              minWidth: 220
+            },
+            {
+              slot: 'startTime',
+              prop: 'startTime',
+              label: '计划开始时间',
+              align: 'center',
+              minWidth: 240
+            },
+            {
+              slot: 'endTime',
+              prop: 'endTime',
+              label: '计划完成时间',
+              align: 'center',
+              minWidth: 240
+            },
+            {
+              columnKey: 'action',
+              label: '操作',
+              width: 120,
+              align: 'center',
+              resizable: false,
+              fixed: 'right',
+              slot: 'action'
             }
-          },
-          {
-            slot: 'quantity',
-            prop: 'quantity',
-            label: '数量',
-            align: 'center',
-            width: 140
-          },
-          {
-            slot: 'weight',
-            prop: 'weight',
-            label: `重量(${this.current.newWeightUnit})`,
-            align: 'center',
-            width: 140
-          },
-          {
-            slot: 'teamTimeIds',
-            prop: 'teamTimeIds',
-            label: '班次',
-            align: 'center',
-            minWidth: 220
-          },
-          {
-            slot: 'startTime',
-            prop: 'startTime',
-            label: '计划开始时间',
-            align: 'center',
-            minWidth: 240
-          },
-          {
-            slot: 'endTime',
-            prop: 'endTime',
-            label: '计划完成时间',
-            align: 'center',
-            minWidth: 240
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 120,
-            align: 'center',
-            resizable: false,
-            fixed: 'right',
-            slot: 'action'
-          }
-        ];
+          ];
+        };
       }
     },
     watch: {},

+ 76 - 3
src/views/workOrder/components/unpackDialog.vue

@@ -431,13 +431,86 @@
 
       checkEndTimeValid(row) {
         const { planStartTime: start, planCompleteTime: end } = row;
+        // console.log(start, end, '时间1111');
         if (!start || !end) return; // 开始/结束时间未填,跳过
-        const startTime = new Date(start);
-        const endTime = new Date(end);
+        this.handleChange(start, end, row);
+        // const startTime = new Date(start);
+        // const endTime = new Date(end);
+        // if (endTime < startTime) {
+        //   row.planCompleteTime = new Date(startTime); // 修正为开始时间
+        //   this.$message.info('结束时间不能早于开始时间,已自动设为开始时间');
+        // }
+      },
+
+      handleChange(start, end, row) {
+        const startTime = new Date(start).getTime();
+        const endTime = new Date(end).getTime();
+        const planStartTime = new Date(this.formData.planStartTime).getTime();
+        const planEndTime = new Date(this.formData.planCompleteTime).getTime();
+
+        console.log(startTime, endTime, '1231');
+
         if (endTime < startTime) {
           row.planCompleteTime = new Date(startTime); // 修正为开始时间
-          this.$message.info('结束时间不能早于开始时间,已自动设为开始时间');
+          return this.$message.info(
+            '结束时间不能早于开始时间,已自动设为开始时间'
+          );
         }
+
+        if (planStartTime > startTime) {
+          this.$confirm('所选的开始时间小于计划开始时间, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+            .then(() => {
+              // this.$message({
+              //   type: 'success',
+              //   message: '删除成功!'
+              // });
+            })
+            .catch(() => {
+              row.planStartTime = this.formData.planStartTime;
+              // this.form.unpackList[index].reqMoldTime =
+              //   this.formData.reqMoldTime;
+              // this.$message({
+              //   type: 'info',
+              //   message: '已取消删除'
+              // });
+            });
+        }
+
+        if (endTime > planEndTime) {
+          this.$confirm('所选的结束时间大于计划完成时间, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+            .then(() => {
+              // this.$message({
+              //   type: 'success',
+              //   message: '删除成功!'
+              // });
+            })
+            .catch(() => {
+              row.planCompleteTime = this.formData.planCompleteTime;
+              // row.planStartTime = this.formData.planStartTime;
+              // this.form.unpackList[index].reqMoldTime =
+              //   this.formData.reqMoldTime;
+              // this.$message({
+              //   type: 'info',
+              //   message: '已取消删除'
+              // });
+            });
+        }
+
+        // if (startTime > base) {
+        //   this.compareResult = '选择的时间比默认值晚';
+        // } else if (startTime < base) {
+        //   this.compareResult = '选择的时间比默认值早';
+        // } else {
+        //   this.compareResult = '选择的时间等于默认值';
+        // }
       },
 
       // 【开始时间变化时】触发

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

@@ -24,7 +24,7 @@
       <ele-pro-table
         ref="table"
         :cache-key="cacheKeyUrl"
-        :columns="newColumns"
+        :columns="columns"
         :datasource="datasource"
         :parse-data="parseData"
         autoAmendPage
@@ -118,7 +118,7 @@
             派单
           </el-link>
           <el-link
-            v-if="unpackShow(row)&&row.splitResidue!==0"
+            v-if="unpackShow(row) && row.splitResidue !== 0"
             :underline="false"
             type="primary"
             @click="toUnpack(row)"
@@ -229,12 +229,12 @@
           { label: '生产中', value: 5 },
           { label: '待下达', value: 8 }
         ],
-        newColumns: [],
+        columns: [],
         stationList: [],
         teamsList: [],
         crewList: [],
         current: null,
-        cacheKeyUrl: '3cbbdff9-aps-workOrder',
+        cacheKeyUrl: '3cbbdff9-aps-workOrder-index',
         columnsVersion: 1,
         dispatchRow: {},
         dispatchVisible: false,
@@ -283,10 +283,20 @@
       clientEnvironmentId() {
         return this.$store.state.user.info.clientEnvironmentId;
       },
-      // 表格列配置
-      columns() {
-        // const num = this.columnsVersion;
-        return [
+
+      checkRowData() {
+        return (row) => {
+          return row.checkedata ? true : false;
+        };
+      }
+    },
+    created() {
+      this.setColumns()
+      this.getFieldModel();
+    },
+    methods: {
+      setColumns() {
+        this.columns = [
           {
             width: 45,
             type: 'selection',
@@ -553,16 +563,6 @@
           }
         ];
       },
-      checkRowData() {
-        return (row) => {
-          return row.checkedata ? true : false;
-        };
-      }
-    },
-    created() {
-      this.getFieldModel();
-    },
-    methods: {
       // 进入详情
       openDetails(row) {
         let dispatchRow = { ...row };
@@ -728,9 +728,10 @@
             };
           });
 
-          this.newColumns = [...this.columns, ...newRes, ...privateColumn];
+          this.columns = [...this.columns, ...newRes, ...privateColumn];
+          this.getTabColumns();
 
-          this.$forceUpdate();
+          // this.$forceUpdate();
         });
       },
 

+ 19 - 0
src/views/workOrder/mixins/release.js

@@ -182,6 +182,7 @@ export default {
         };
         let processMap = {};
         this.processList.map((el, index) => (processMap[el.id] = index));
+        console.log(this.processList, 'processMap');
         const res = await listAssign(params);
         let isFirstData = false; // 判断默认第一道工序是否操作过
         if (res && res.length > 0) {
@@ -278,6 +279,24 @@ export default {
       listByFirstTaskId(id)
         .then((res) => {
           this.stationList = res;
+
+          this.stationList.forEach((item, index) => {
+            let substance = item.workstationSubstanceList[0]?.substance;
+            if (substance) {
+              this.$set(this.stationList[index], 'assetName', substance.name);
+              this.$set(this.stationList[index], 'assetCode', substance.code);
+              this.$set(
+                this.stationList[index],
+                'assetModelType',
+                substance.category?.category?.modelType
+              );
+              this.$set(
+                this.stationList[index],
+                'assetCategoryLevelPath',
+                substance.category?.category?.categoryLevelPath?.split('-')[0]
+              );
+            }
+          });
           this.changeDispatch();
         })
         .catch((err) => {

+ 2 - 2
vue.config.js

@@ -35,12 +35,12 @@ module.exports = {
         // target: 'http://192.168.1.103:18086',
         // target: 'http://192.168.1.158:18086',
         // target: 'http://192.168.158:18086',
-        target: 'http://192.168.1.251:18086',
+        // target: 'http://192.168.1.251:18086',
         // target: 'http://192.168.1.144:18086',
         // target: 'http://192.168.1.211:18086',
         // target: 'http://192.168.1.251:18186',
 
-        // target: 'http://192.168.1.125:18086',
+        target: 'http://192.168.1.125:18086',
 
         // target: 'http://192.168.1.116:18086',