From 0ae3687eb84e0e8138b4e79ee3248b0898de833e Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期五, 31 五月 2024 14:22:44 +0800
Subject: [PATCH] 1.生产工单 按工艺路线走模式功能新增

---
 src/views/workOrder/workOrderList.vue |  143 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 132 insertions(+), 11 deletions(-)

diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index dc528c5..7d4fab9 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -243,6 +243,21 @@
               <div v-else>/</div>
             </template>
           </el-table-column>
+
+          <el-table-column
+            v-if="mesSetting.route"
+            prop="route_name"
+            label="宸ヨ壓璺嚎"
+            sortable="custom"
+            show-tooltip-when-overflow
+            width="120"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.route_name">{{ row.route_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
           <el-table-column
             prop="plan_qty"
             label="宸ュ崟鏁�"
@@ -604,6 +619,26 @@
           />
           <!--          oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
         </el-form-item>
+
+        <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode">
+          <el-select
+            v-model="dialogForm.wkshopcode"
+            filterable
+            :popper-append-to-body="false"
+            style="width: 200px;"
+            placeholder="璇烽�夋嫨杞﹂棿"
+            @change="getMesOrderNewStepContent"
+          >
+
+            <el-option
+              v-for="item in wkshopArr"
+              :key="item.torg_code"
+              :label="item.torg_name"
+              :value="item.torg_code"
+            />
+          </el-select>
+        </el-form-item>
+
         <el-form-item
           label="浜у搧鍚嶇О/缂栫爜"
           prop="partcode"
@@ -635,23 +670,25 @@
           <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
         </el-form-item>
         <!--        :disabled="dialogForm.partcode===''"-->
-        <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode">
+
+        <el-form-item label="宸ヨ壓璺嚎" prop="wkshopcode">
           <el-select
-            v-model="dialogForm.wkshopcode"
+            v-model="dialogForm.routecode"
             filterable
             :popper-append-to-body="false"
             style="width: 200px;"
-            placeholder="璇烽�夋嫨杞﹂棿"
-            @change="getMesOrderNewStepContent"
+            placeholder="璇烽�夋嫨宸ヨ壓璺嚎"
+            @change="sourceType? getMesOrderNewStepContent():routecodeChange()"
           >
             <el-option
-              v-for="item in wkshopArr"
-              :key="item.torg_code"
-              :label="item.torg_name"
-              :value="item.torg_code"
+              v-for="item in routecodeArr"
+              :key="item.route_code"
+              :label="item.route_name"
+              :value="item.route_code"
             />
           </el-select>
         </el-form-item>
+
         <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate">
           <el-date-picker
             v-model="dialogForm.deliverydate"
@@ -665,6 +702,16 @@
             placeholder="閫夋嫨鏃ユ湡"
           />
           <!--          :disabled="dialogForm.deliverydate"-->
+        </el-form-item>
+        <el-form-item label="宸ュ簭鏉ユ簮" required>
+          <el-switch
+            v-model="sourceType"
+            style="width: 200px;"
+            inactive-text="鍩虹璁剧疆"
+            active-text="鍘嗗彶鏈�鏂�"
+            :disabled="!dialogForm.wkshopcode"
+            @change="sourceTypeChange"
+          />
         </el-form-item>
 
         <el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
@@ -2001,6 +2048,7 @@
 import ElDragSelect from '@/components/DragSelect'
 import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
 import DateType from '@/components/DateType'
+import { PartSelectRpute, RouteSelectStep } from '@/api/basicSettings'
 export default {
   name: 'WorkOrderList',
   components: {
@@ -2066,6 +2114,8 @@
 
         deliverydate: '', // 浜や粯鏃堕棿
         data_sources: '', // 鏁版嵁鏉ユ簮
+
+        routecode: '', // 宸ヨ壓璺嚎
 
         mesmaxqty: 0, // 宸ュ崟鐨勬渶澶у��
         mesqtyinit: 0// 宸ュ崟鏁伴噺鍒濆鍊�
@@ -2260,7 +2310,14 @@
         { code: 'PE', name: '棰勮瀹屽伐鏃ユ湡' },
         { code: 'ED', name: '棰勮浜や粯鏃ユ湡' },
         { code: 'CT', name: '宸ュ崟鍒涘缓鏃ユ湡' }
-      ]
+      ],
+
+      routecodeArr: [], //
+
+      sourceType: false, // 宸ュ簭鐨勬暟鎹潵婧�
+
+      mesSetting: JSON.parse(localStorage.getItem('mesSetting'))
+
     }
   },
   watch: {
@@ -2296,6 +2353,15 @@
     // })
   },
   methods: {
+    // 宸ュ簭鏉ユ簮鍒囨崲
+    sourceTypeChange(val) {
+      if (val) {
+        this.getMesOrderNewStepContent()
+      } else {
+        this.routecodeChange()
+      }
+    },
+
     DateTypeChange(value) {
       this.form.datatype = value
     },
@@ -2534,10 +2600,21 @@
       this.dialogForm.partname = row.partname
       this.dialogForm.partspec = row.partspec
       this.dialogForm.wkshopcode = row.wkshp_code
+      this.dialogForm.routecode = row.route_code
       this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
       this.dialogForm.mesqty = row.plan_qty
 
       this.dialogForm.mesqtyinit = row.plan_qty
+
+      // this.sourceTypeChange(false)
+
+      if (!this.dialogForm.routecode) {
+        await this.getPartcodeChangeDialog()
+      }
+
+      // if (row.status === 'NEW') {
+      //
+      // }
 
       const data = {
         sourceid: this.dialogForm.sourceorderid,
@@ -2594,12 +2671,52 @@
       this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname
       this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode
       this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec
-      if (this.dialogForm.wkshopcode) {
-        this.getMesOrderNewStepContent()
+      // if (this.dialogForm.wkshopcode) {
+      //   // this.getMesOrderNewStepContent()
+      // }
+      this.dialogForm.routecode = ''
+      this.getPartcodeChangeDialog()
+    },
+
+    async  getPartcodeChangeDialog() {
+      const { data: res } = await PartSelectRpute({ partcode: this.dialogForm.partcode })
+      this.routecodeArr = res
+
+      this.dialogForm.routecode = this.partArr.find(item => item.partcode === this.dialogForm.partcode).default_route
+
+      if (this.dialogForm.routecode && !this.sourceType) {
+        await this.routecodeChange()
+      } else {
+        await this.getMesOrderNewStepContent()
+      }
+    },
+
+    async routecodeChange() {
+      const data = {
+        partcode: this.dialogForm.partcode,
+        routecode: this.dialogForm.routecode
+      }
+      const { data: res } = await RouteSelectStep(data)
+
+      this.stepSelectedValue = []
+      this.stepTableData = []
+      if (res.length > 0) {
+        res.sort((a, b) => a.step_seq - b.step_seq)
+        res.forEach(i => {
+          this.stepTableData.push(
+            {
+              stepcode: i.step_code,
+              // stepname: i.stepname,
+              stepprice: i.unprice
+            }
+          )
+        })
+        this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
       }
     },
     async  getMesOrderNewStepContent() {
       const data = {
+        routecode: this.dialogForm.routecode,
         wkshopcode: this.dialogForm.wkshopcode,
         partcode: this.dialogForm.partcode
       }
@@ -2641,6 +2758,9 @@
         deliverydate: '', // 浜や粯鏃堕棿
         data_sources: '' // 鏁版嵁鏉ユ簮
       }
+
+      this.sourceType = false
+
       this.stepSelectedValue = []
       this.stepTableData = []
       this.$refs.dialogForm.clearValidate()
@@ -2695,6 +2815,7 @@
             data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
             isstep: workListSub.length > 0 ? 'Y' : 'N', //
             difference: this.dialogForm.mesqty - this.dialogForm.mesqtyinit, // 鏁版嵁宸��
+            routecode: this.dialogForm.routecode,
             workListSub
           }
 

--
Gitblit v1.9.3