Эх сурвалжийг харах

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

lucw 8 сар өмнө
parent
commit
dad1655911

+ 1 - 1
src/views/produce/components/new_produceOrder.vue

@@ -404,7 +404,7 @@
         // } else {
         return workorderPage2({
           pageNum: page,
-          size: 1000,
+          size: 5000,
           workOrderId: this.$route.query.workOrderId
             ? this.$route.query.workOrderId
             : null,

+ 19 - 12
src/views/produceOrder/components/print.vue

@@ -5,56 +5,63 @@
 
 
             <div v-for="(item, index) in codeList" :key="index"
-                style=" display: flex; padding-left: 20px; align-items: center; justify-content: center; margin: auto;">
+                style=" display: flex; padding-left: 20px; align-items: center; justify-content: center; margin: auto; margin-bottom: 30px;">
                 <div style="width: 250px; height: 240px; ">
-                    <img :src="item.qrcode" alt="QR Code" style=" width: 240px; height: 240px;">
+                    <img :src="item.qrcode" alt="QR Code" style=" width: 200px; height: 200px;">
                 </div>
                 <div
-                    style="width: 440px; height: 240px; display: flex;  flex-direction: column;  flex-wrap: wrap; justify-content: space-between; align-items:flex-start;">
-                    <div style="text-align: left;   font-size: 20px; ">
+                    style="width: 440px; display: flex;  flex-direction: column;  flex-wrap: wrap; justify-content: space-between; align-items:flex-start;">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">产品编码:</span>
                         <span style="color: #000;">{{ item.productCode }}</span>
                     </div>
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">名称:</span>
                         <span style="color: #000;">{{ item.productName }}</span>
                     </div>
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">牌号:</span>
                         <span style="color: #000;">{{ item.brandNo }}</span>
                     </div>
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">型号:</span>
                         <span style="color: #000;">{{ item.model }}</span>
                     </div>
 
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">生产数量:</span>
                         <span style="color: #000;">{{ item.formingNum }} {{ item.unit }}</span>
                     </div>
 
 
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">生产重量:</span>
                         <span style="color: #000;">{{ item.formingWeight }} {{ item.weightUnit }}</span>
                     </div>
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">状态:</span>
                         <span style="color: #000;">{{ statusList[item.status] }}</span>
                     </div>
 
 
-                    <div style="text-align: left;   font-size: 20px; ">
+                    <div style="text-align: left;   font-size: 16px; ">
                         <span style="display: inline-block;  width: 100px;">工艺路线:</span>
                         <span style="color: #000;">{{ item.produceRoutingName }} </span>
                     </div>
-
+                    <div style="text-align: left;   font-size: 16px; ">
+                        <span style="display: inline-block;  width: 100px;">颜色:</span>
+                        <span style="color: #000;">{{ item.colorKey }} </span>
+                    </div>
+                    <div style="text-align: left;   font-size: 16px; ">
+                        <span style="display: inline-block;  width: 100px;">机型:</span>
+                        <span style="color: #000;">{{ item.modelKey }} </span>
+                    </div>
 
                 </div>
 

+ 19 - 9
src/views/produceOrder/components/printSr.vue

@@ -16,6 +16,7 @@
           display: flex;
           align-items: center;
           justify-content: center;
+          margin-bottom: 30px;
         "
       >
         <div
@@ -42,54 +43,63 @@
             align-items: flex-start;
           "
         >
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">产品编码:</span>
             <span style="color: #000">{{ item.productCode }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">名称:</span>
             <span style="color: #000">{{ item.productName }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">牌号:</span>
             <span style="color: #000">{{ item.brandNo }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">型号:</span>
             <span style="color: #000">{{ item.model }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">规格:</span>
             <span style="color: #000">{{ item.specification }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">生产数量:</span>
             <span style="color: #000"
               >{{ item.formingNum }} {{ item.unit }}</span
             >
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">生产重量:</span>
             <span style="color: #000"
               >{{ item.formingWeight }} {{ item.weightUnit }}</span
             >
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">状态:</span>
             <span style="color: #000">{{ statusList[item.status] }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">工艺路线:</span>
             <span style="color: #000">{{ item.produceRoutingName }} </span>
           </div>
+
+          <div style="text-align: left;   font-size: 16px; ">
+              <span style="display: inline-block;  width: 100px;">颜色:</span>
+              <span style="color: #000;">{{ item.colorKey }} </span>
+          </div>
+          <div style="text-align: left;   font-size: 16px; ">
+              <span style="display: inline-block;  width: 100px;">机型:</span>
+              <span style="color: #000;">{{ item.modelKey }} </span>
+          </div>
         </div>
       </div>
     </div>

+ 18 - 9
src/views/produceOrder/components/printTg.vue

@@ -17,6 +17,7 @@
           align-items: center;
           justify-content: center;
           margin: auto;
+          margin-bottom: 30px;
         "
       >
         <div style="width: 200px; height: 200px; margin-right: 18px">
@@ -36,54 +37,62 @@
             align-items: flex-start;
           "
         >
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">产品编码:</span>
             <span style="color: #000">{{ item.productCode }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">名称:</span>
             <span style="color: #000">{{ item.productName }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">牌号:</span>
             <span style="color: #000">{{ item.brandNo }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">型号:</span>
             <span style="color: #000">{{ item.model }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">规格:</span>
             <span style="color: #000">{{ item.specification }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">生产数量:</span>
             <span style="color: #000"
               >{{ item.formingNum }} {{ item.unit }}</span
             >
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">生产重量:</span>
             <span style="color: #000"
               >{{ item.formingWeight }} {{ item.weightUnit }}</span
             >
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">状态:</span>
             <span style="color: #000">{{ statusList[item.status] }}</span>
           </div>
 
-          <div style="text-align: left; font-size: 20px">
+          <div style="text-align: left; font-size: 16px">
             <span style="display: inline-block">工艺路线:</span>
             <span style="color: #000">{{ item.produceRoutingName }} </span>
           </div>
+          <div style="text-align: left;   font-size: 16px; ">
+              <span style="display: inline-block;  width: 100px;">颜色:</span>
+              <span style="color: #000;">{{ item.colorKey }} </span>
+          </div>
+          <div style="text-align: left;   font-size: 16px; ">
+              <span style="display: inline-block;  width: 100px;">机型:</span>
+              <span style="color: #000;">{{ item.modelKey }} </span>
+          </div>
         </div>
       </div>
     </div>

+ 61 - 20
src/views/produceOrder/components/releaseDialog/index.vue

@@ -255,7 +255,7 @@
               <template v-slot:quantity="{ row }">
                 <el-input
                   v-model="row.quantity"
-                  :disabled="permissions(row, item)"
+                  :disabled="row.disposalStatus == 1"
                   placeholder="请输入数量"
                   type="number"
                   @input="(e) => handleQuantityInput(e, row, item)"
@@ -264,7 +264,7 @@
               <template v-slot:weight="{ row }">
                 <el-input
                   v-model="row.weight"
-                  :disabled="permissions(row, item)"
+                  :disabled="row.disposalStatus == 1"
                   placeholder="请输入重量"
                   type="number"
                   @input="(e) => handleWeightInput(e, row, item)"
@@ -275,7 +275,7 @@
                   v-model="row.teamTimeIds"
                   multiple
                   placeholder="班次"
-                  :disabled="permissions(row, item)"
+                  :disabled="row.disposalStatus == 1"
                   @change="(e) => shiftSelection(e, row, item)"
                 >
                   <el-option
@@ -290,7 +290,7 @@
               <template v-slot:startTime="{ row }">
                 <el-date-picker
                   v-model="row.startTime"
-                  :disabled="permissions(row, item)"
+                  :disabled="row.disposalStatus == 1"
                   @change="handleStartTimeChange(row, item)"
                   class="w100"
                   placeholder="开始时间"
@@ -301,7 +301,7 @@
               <template v-slot:endTime="{ row }">
                 <el-date-picker
                   v-model="row.endTime"
-                  :disabled="permissions(row, item)"
+                  :disabled="row.disposalStatus == 1"
                   class="w100"
                   placeholder="完成时间"
                   type="datetime"
@@ -476,7 +476,10 @@
             type: 'selection',
             columnKey: 'selection',
             align: 'center',
-            fixed: 'left'
+            fixed: 'left',
+            selectable: (row, index) => {
+              return row.disposalStatus != 1;
+            }
           },
           {
             prop: 'name',
@@ -503,6 +506,22 @@
               return row.status.desc || '';
             }
           },
+          {
+            prop: 'disposalStatus',
+            label: '接收状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            width: 150,
+            formatter: (row) => {
+              console.log('row', row);
+              return row.disposalStatus == 1
+                ? '已接收'
+                : row.disposalStatus == 2
+                ? '已拒绝'
+                : '未接收';
+            }
+          },
+
           {
             slot: 'quantity',
             prop: 'quantity',
@@ -654,7 +673,8 @@
               selection: [], // 当前工序下面的指派 选中的数据
               code: item.code, // 工序 编码
               index: index, // 当前工序数据的下标
-              isSpecialField: item.isSpecialField,
+              // isSpecialField: item.isSpecialField,
+              isSpecialField: false, //需求不清晰 为了满足江南需求 先默认false
               radioBun: {
                 // 指派按钮的操作状态 绑定 默认false(可操作)
                 stationDis: false, // 工位按钮
@@ -797,33 +817,51 @@
             this.$message.warning(err.message);
           });
       },
-      // 撤回的逻辑
+      // 派单/撤回 判断
       getWithdrawT(row, type) {
-        if (type != 2) {
-          return true;
-        }
-        let isFlag = true;
+        // if (type != 2) {
+        //   return true;
+        // }
+        let isWithdraw = [];
         row.selection.forEach((item) => {
-          if (!item.status) {
-            isFlag = false;
-            return;
+          //撤回逻辑
+          if (type == 2) {
+            if (!item.status || !item.status.code) {
+              isWithdraw.push(item.name);
+            }
           }
-          if (!item.status.code) {
-            isFlag = false;
+          if (type == 1) {
+            if (item?.status?.code == 1) {
+              isWithdraw.push(item.name);
+            }
           }
+          // if (!item.status.code) {
+          //   isFlag = false;
+          // }
         });
-        return isFlag;
+        return isWithdraw;
       },
       // 派单
       dispatch(row, type) {
         if (row.selection.length == 0) {
           return this.$message.warning('请最少选择一条数据');
         }
+
         let isWithdraw = this.getWithdrawT(row, type);
-        if (!isWithdraw) {
-          this.$message.warning('只有状态为派单的数据才能进行撤回');
+        if (isWithdraw.length) {
+          if (type == 1) {
+            this.$message.warning(
+              isWithdraw.toString() + ',状态为已派单,如需重新派单请先撤回!'
+            );
+          }
+          if (type == 2) {
+            this.$message.warning(
+              isWithdraw.toString() + '还未派单,无需撤回!'
+            );
+          }
           return;
         }
+
         let assignees = [];
         let changeIds = [];
         let flag = true; // 是否填写 校验
@@ -1024,6 +1062,7 @@
         arrList.map((item) => {
           if (item.assigneeType.code == dataRow.assignType) {
             let idx = listMap[item.assigneeId];
+            listArr[idx].disposalStatus = item.disposalStatus;
             listArr[idx].status = item.status;
             listArr[idx].startTime = item.startTime;
             listArr[idx].endTime = item.endTime;
@@ -1035,6 +1074,8 @@
             this.compareEndSetTime(listArr[idx], dataRow);
           }
         });
+        // console.log(listArr,'listArr')
+        // console.log(listArr,'listArr')
         this.$set(dataRow, 'list', listArr);
         this.$set(dataRow, 'radioBun', radioBun);
       },

+ 20 - 1
src/views/produceOrder/index.vue

@@ -572,6 +572,18 @@
             align: 'center',
             showOverflowTooltip: true
           },
+          {
+            prop: 'colorKey',
+            label: '颜色',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'modelKey',
+            label: '机型',
+            align: 'center',
+            showOverflowTooltip: true
+          },
           {
             prop: 'productionCodes',
             label: '生产编号',
@@ -619,6 +631,13 @@
             showOverflowTooltip: true,
             minWidth: 110
           },
+          {
+            prop: 'unit',
+            label: '单位',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
           {
             prop: 'formingWeight',
             label: '要求生产重量',
@@ -1090,6 +1109,7 @@
       },
 
       handleQRcode(row) {
+        console.log('clientEnvironmentId', this.clientEnvironmentId)
         if (this.clientEnvironmentId == 2) {
           this.$refs.printSrRef.open([row.id]);
         } else if (this.clientEnvironmentId == 3) {
@@ -1101,7 +1121,6 @@
 
       allPrinting() {
         let ids = this.findAllIds(this.selection);
-
         if (this.clientEnvironmentId == 2) {
           this.$refs.printSrRef.open(ids);
         } else if (this.clientEnvironmentId == 3) {

+ 8 - 2
src/views/produceOrder/print.vue

@@ -10,14 +10,14 @@
         <div style="text-align: center; font-size: 16px; font-weight: bold; margin: 5px 0;">工艺流程卡</div>
         <table style="width: 100%; border-collapse: collapse; margin-bottom: 6px;">
           <tr>
-            <td rowspan="5" style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle; text-align: center; width: 100px; height: 120px;">
+            <td rowspan="6" style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle; text-align: center; width: 100px; height: 120px;">
               <img :src="card.qrLeft" alt="二维码" style="width: 90px; height: 90px;" />
             </td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">单号</td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.code }}</td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">单据日期</td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.createDate }}</td>
-            <td rowspan="5" style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle; text-align: center; width: 100px; height: 120px;">
+            <td rowspan="6" style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle; text-align: center; width: 100px; height: 120px;">
               <img :src="card.qrRight" alt="二维码" style="width: 90px; height: 90px;" />
             </td>
           </tr>
@@ -39,6 +39,12 @@
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">规格</td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.specification }}</td>
           </tr>
+          <tr>
+            <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">颜色</td>
+            <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.colorKey }}</td>
+            <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">机型</td>
+            <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.modelKey }}</td>
+          </tr>
           <tr>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">计划开始时间</td>
             <td style="border: 1px solid #000; padding: 3px 5px; vertical-align: middle;">{{ card.planStartTime }}</td>