From 00c703b89dfa507f55de3677a24fb8006092a043 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期五, 11 十月 2024 12:28:14 +0800
Subject: [PATCH] 1.工单列表排序2.工单列表导出

---
 src/views/workOrder/workOrderList.vue |  290 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 189 insertions(+), 101 deletions(-)

diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index db62842..cc08537 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -8,6 +8,8 @@
           <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>
         </div>
 
+        <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+
         <!--        <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>-->
       </div>
 
@@ -168,6 +170,92 @@
             fixed
           />
           <el-table-column
+            prop="injectnumber"
+            label="娉ㄥ鏈哄彿"
+            show-tooltip-when-overflow
+            width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">{{ row.injectnumber?row.injectnumber:'/' }}</template>
+          </el-table-column>
+          <el-table-column
+            prop="customername"
+            label="瀹㈡埛鍚嶇О"
+            show-tooltip-when-overflow
+            width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">{{ row.customername?row.customername:'/' }}</template>
+          </el-table-column>
+          <el-table-column
+            prop="partcode"
+            label="浜у搧缂栫爜"
+            show-tooltip-when-overflow
+            sortable="custom"
+            min-width="120"
+          />
+          <el-table-column
+            prop="partname"
+            min-width="150"
+            label="浜у搧鍚嶇О"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+
+          <el-table-column
+            prop="partspec"
+            label="浜у搧瑙勬牸"
+            sortable="custom"
+            width="110"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="colour"
+            label="棰滆壊"
+            show-tooltip-when-overflow
+            width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">{{ row.colour?row.colour:'/' }}</template>
+          </el-table-column>
+          <el-table-column
+            prop="plan_qty"
+            label="宸ュ崟鏁�"
+            sortable="custom"
+            show-tooltip-when-overflow
+            width="100"
+          />
+          <el-table-column
+            prop="saleOrderCode"
+            label="閿�鍞鍗�"
+            sortable="custom"
+            show-tooltip-when-overflow
+            min-width="160"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="clerkuser"
+            label="閿�鍞笟鍔″憳"
+            sortable="custom"
+            show-tooltip-when-overflow
+            width="150"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
             prop="status"
             label="宸ュ崟鐘舵��"
             sortable="custom"
@@ -185,6 +273,21 @@
               <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
             </template>
           </el-table-column>
+
+          <el-table-column
+            prop="wotype"
+            label="鍗曟嵁绫诲瀷"
+            sortable="custom"
+            show-tooltip-when-overflow
+            min-width="120"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
+              <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
           <el-table-column
             prop="wo_code"
             label="宸ュ崟缂栧彿"
@@ -204,103 +307,7 @@
               <div v-else>/</div>
             </template>
           </el-table-column>
-          <el-table-column
-            prop="saleOrderCode"
-            label="閿�鍞鍗�"
-            sortable="custom"
-            show-tooltip-when-overflow
-            min-width="160"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="wotype"
-            label="鍗曟嵁绫诲瀷"
-            sortable="custom"
-            show-tooltip-when-overflow
-            min-width="120"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
-              <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="partcode"
-            label="浜у搧缂栫爜"
-            show-tooltip-when-overflow
-            sortable="custom"
-            min-width="120"
-          />
-          <el-table-column
-            prop="partname"
-            min-width="150"
-            label="浜у搧鍚嶇О"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="partspec"
-            label="浜у搧瑙勬牸"
-            sortable="custom"
-            width="110"
-            show-tooltip-when-overflow
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.partspec">{{ row.partspec }}</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="plan_qty"
-            label="宸ュ崟鏁�"
-            sortable="custom"
-            show-tooltip-when-overflow
-            width="100"
-          />
-          <el-table-column
-            prop="injectnumber"
-            label="娉ㄥ鏈哄彿"
-            show-tooltip-when-overflow
-            width="110"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">{{ row.injectnumber?row.injectnumber:'/' }}</template>
-          </el-table-column>
-          <el-table-column
-            prop="customername"
-            label="瀹㈡埛鍚嶇О"
-            show-tooltip-when-overflow
-            width="110"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">{{ row.customername?row.customername:'/' }}</template>
-          </el-table-column>
-          <el-table-column
-            prop="colour"
-            label="棰滆壊"
-            show-tooltip-when-overflow
-            width="110"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">{{ row.colour?row.colour:'/' }}</template>
-          </el-table-column>
-          <el-table-column
-            prop="clerkuser"
-            label="閿�鍞笟鍔″憳"
-            sortable="custom"
-            show-tooltip-when-overflow
-            width="150"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
+
           <el-table-column
             prop="wkshp_name"
             label="鐢熶骇杞﹂棿"
@@ -682,6 +689,29 @@
             placeholder="閫夋嫨鏃ユ湡"
           />
           <!--          :disabled="dialogForm.deliverydate"-->
+        </el-form-item>
+
+        <el-form-item label="娉ㄥ鏈哄彿">
+          <el-input v-model="dialogForm.injectnumber" style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="瀹㈡埛鍚嶇О">
+          <el-select
+            v-model="dialogForm.customercode"
+            filterable
+            :popper-append-to-body="false"
+            style="width: 200px;"
+            placeholder="璇烽�夋嫨瀹㈡埛"
+          >
+            <el-option
+              v-for="item in customerArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="棰滆壊">
+          <el-input v-model="dialogForm.colour" style="width: 200px" />
         </el-form-item>
 
         <el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
@@ -2018,15 +2048,16 @@
 import {
   AddMesOrderCodeSearch,
   AddUpdateMesOrder, DeleteMesOrder,
-  MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent,
+  MesBadOrderSearch, MesOrderDistribution, MesOrderExcelSearch, MesOrderNewStepContent,
   MesOrderSearch,
   UpdateMesOrderStepSearch
 } from '@/api/WorkOrder'
 import { PartSelect } from '@/api/ProductModel'
-import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
+import { CustomerPermissions, PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
 import Sortable from 'sortablejs'
 import ElDragSelect from '@/components/DragSelect'
-import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
+import { MesOrderPrintSearch } from '@/api/GridReport'
+import { GroupSalaryReportExcelSearch } from '@/api/ReportManager' // base on element-ui
 
 export default {
   name: 'WorkOrderList',
@@ -2092,8 +2123,14 @@
         deliverydate: '', // 浜や粯鏃堕棿
         data_sources: '', // 鏁版嵁鏉ユ簮
 
+        injectnumber: '', // 娉ㄥ鏈哄彿
+        customercode: '', // 瀹㈡埛缂栫爜
+        customername: '', // 瀹㈡埛鍚嶇О
+        colour: '', // 棰滆壊
+
         mesmaxqty: 0// 宸ュ崟鐨勬渶澶у��
       },
+      customerArr: [],
       ordertypeArr: [// 宸ュ崟绫诲瀷
         { code: 'PO', name: '鏍囧噯宸ュ崟' },
         { code: 'FO', name: '鎶ュ簾琛ュ崟' }
@@ -2140,6 +2177,15 @@
         ],
         bomId: [
           { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] }
+        ],
+        injectnumber: [
+          { required: true, message: '璇疯緭鍏ユ敞濉戞満鍙�', trigger: ['blur', 'change'] }
+        ],
+        customercode: [
+          { required: true, message: '璇烽�夋嫨瀹㈡埛', trigger: ['blur', 'change'] }
+        ],
+        colour: [
+          { required: true, message: '璇疯緭鍏ラ鑹�', trigger: ['blur', 'change'] }
         ]
 
       },
@@ -2313,6 +2359,32 @@
     // })
   },
   methods: {
+    async download() {
+      // let tempDate = this.form.operdate
+      // if (tempDate.length > 0) {
+      //   tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+      // }
+      const data = {
+        wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜
+        mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
+        mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
+        partcode: this.form.partcode, // 浜у搧缂栫爜
+        ordertype: this.form.ordertype, // ordertype
+        sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
+        saleordercode: this.form.saleordercode, // 閿�鍞鍗�
+        partname: this.form.partname, // 浜у搧鍚嶇О
+        partspec: this.form.partspec, // 浜у搧瑙勬牸
+        creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+        createdate: this.form.createdate ? handleDatetime(this.form.createdate) : '' // 鍒涘缓鏃堕棿
+      }
+
+      const { data: res } = await MesOrderExcelSearch(data)
+      window.location.href = res
+    },
+    async getCustomerPermissions() {
+      const { data: res } = await CustomerPermissions()
+      this.customerArr = res
+    },
     setSort() {
       const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
       this.sortable = Sortable.create(el, {
@@ -2341,6 +2413,7 @@
         if (res.code === '200') {
           this.getSelect()
           this.getPrentOrganizationNoCompany()
+          this.getCustomerPermissions()
         }
       })
     },
@@ -2438,6 +2511,7 @@
       this.form.sourceorder = ''
       this.form.ordertype = ''
       this.form.createdate = ''
+      this.form.saleordercode = ''
       this.getMesOrderSearch()
     },
     // 鏂板鎸夐挳
@@ -2541,6 +2615,10 @@
       this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
       this.dialogForm.mesqty = row.plan_qty
 
+      this.dialogForm.injectnumber = row.injectnumber
+      this.dialogForm.customercode = row.customercode
+      this.dialogForm.colour = row.colour
+
       const data = {
         sourceid: this.dialogForm.sourceorderid,
         sourcewo: this.dialogForm.sourceorder,
@@ -2638,7 +2716,11 @@
         wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
 
         deliverydate: '', // 浜や粯鏃堕棿
-        data_sources: '' // 鏁版嵁鏉ユ簮
+        data_sources: '', // 鏁版嵁鏉ユ簮
+
+        injectnumber: '',
+        customercode: '',
+        colour: ''
       }
       this.stepSelectedValue = []
       this.stepTableData = []
@@ -2687,6 +2769,12 @@
             wkshopcode: this.dialogForm.wkshopcode,
             woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
             deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿
+
+            injectnumber: this.dialogForm.injectnumber,
+            customercode: this.dialogForm.customercode,
+            customername: this.customerArr.find(i => i.code === this.dialogForm.customercode).name,
+            colour: this.dialogForm.colour,
+
             data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
             isstep: workListSub.length > 0 ? 'Y' : 'N', //
             workListSub

--
Gitblit v1.9.3