From f40c4519fd3922ca8c9b3e08f6e8632954e6017d Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 19 九月 2025 11:59:01 +0800
Subject: [PATCH] 新需求

---
 src/views/system/work-order/distribute/index.vue |   97 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 86 insertions(+), 11 deletions(-)

diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue
index fc32a22..803a7f9 100644
--- a/src/views/system/work-order/distribute/index.vue
+++ b/src/views/system/work-order/distribute/index.vue
@@ -16,27 +16,44 @@
     <el-row class="op-warp">
       <el-row v-show="showSearch">
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
-          <el-form-item label="鍏抽敭璇�" prop="keyword">
+          <el-form-item label="鍏抽敭瀛�" prop="keyword">
             <el-input
               v-model="queryParams.keyword"
-              placeholder="鍏抽敭璇嶆悳绱�"
+              placeholder="宸ュ崟鍙�/璁惧鍚�/璁惧缂栧彿鎼滅储"
               clearable
               @keyup.enter.native="page"
               @clear="page"
             />
           </el-form-item>
           <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList">
-            <el-select v-model="queryParams.errorTypeList" multiple placeholder="鏁呴殰绫诲瀷" clearable @change="page" @clear="page">
-              <el-option v-for="dict in dict.type.error_type"
-                         :value="dict.value"
-                         :label="dict.label"/>
-            </el-select>
+            <el-cascader
+              v-model="queryParams.errorType"
+              :options="errorTypeList"
+              :props="{ expandTrigger: 'hover',emitPath: false }"
+              :show-all-levels="false"
+              @change="page"
+              placeholder="鏁呴殰绫诲瀷"
+              clearable
+            ></el-cascader>
           </el-form-item>
           <el-form-item label="涓嬪彂鐘舵��" prop="status">
             <el-select v-model="queryParams.status" @change="page" placeholder="涓嬪彂鐘舵��" clearable>
               <el-option label="鏈笅鍙�" value="WAIT_DISTRIBUTE"/>
               <el-option label="宸蹭笅鍙�" value="DISTRIBUTED"/>
             </el-select>
+          </el-form-item>
+          <el-form-item label="鏃堕棿鑼冨洿" prop="timeRange" >
+            <el-date-picker
+              v-model="timeRange"
+              type="daterange"
+              range-separator="鑷�"
+              value-format="yyyy-MM-dd"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              @change="page"
+              clearable
+            >
+            </el-date-picker>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="small" @click="page">鎼滅储</el-button>
@@ -95,6 +112,18 @@
           <el-button slot="reference" type="primary" size="mini" plain>蹇嵎涓嬪彂</el-button>
         </el-popover>
         <el-button size="mini" plain type="success" @click="handleAdd">鎵嬪姩鏂板宸ュ崟</el-button>
+        <el-popconfirm
+          @confirm="delDistribute"
+          title="纭畾瑕佸垹闄ゆ墍閫夊伐鍗曞悧锛�"
+          >
+          <el-button size="mini" plain type="danger" class="op" slot="reference">鎵归噺鍒犻櫎</el-button>
+        </el-popconfirm>
+        <el-popconfirm
+          @confirm="allDistribute"
+          title="纭畾瑕佷笅鍙戞墍鏈夊伐鍗曞悧锛�"
+        >
+          <el-button size="mini" plain type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
+        </el-popconfirm>
         <right-toolbar :showSearch.sync="showSearch" @queryTable="page"></right-toolbar>
       </el-row>
     </el-row>
@@ -104,6 +133,7 @@
         <el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
           <el-table-column label="宸ュ崟鍙�" align="center" prop="workOrderNo"/>
+          <el-table-column label="鍥芥爣鐮�" align="center" prop="serialNumber"/>
           <el-table-column label="鏁呴殰鐐逛綅" align="center" prop="source">
             <template slot-scope="scope">
               <el-popover
@@ -119,7 +149,14 @@
           <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName"/>
           <el-table-column label="浜х敓鏃堕棿" align="center" prop="createTime"/>
           <el-table-column v-if="queryParams.status === 'DISTRIBUTED'" label="涓嬪彂浜�" align="center" prop="realName"/>
-          <el-table-column v-if="queryParams.status === 'DISTRIBUTED'" label="涓嬪彂鏃堕棿" align="center" prop="distributeTime"/>
+          <el-table-column v-if="queryParams.status === 'DISTRIBUTED'" label="涓嬪彂鏃堕棿" align="center" prop="distributeTime"/>0
+          <el-table-column label="鎿嶄綔" align="center" v-if="queryParams.status === 'WAIT_DISTRIBUTE'">
+              <template slot-scope="scope">
+                <el-button size="mini" type="text" @click="delWorkOrderClick(scope.row)" v-show="scope.row.status === 'WAIT_DISTRIBUTE'">
+                  鍒犻櫎
+                </el-button>
+              </template>
+          </el-table-column>
         </el-table>
 
         <pagination
@@ -183,14 +220,17 @@
 </template>
 
 <script>
-import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute} from '@/api/platform/work-order'
+import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute, errorTypeAll} from '@/api/platform/work-order'
 import {workList} from "@/api/platform/unit";
 import { pointSelectData } from "@/api/platform/point";
+import {delWorkOrder,delWorkOrderByIds} from "../../../../api/platform/work-order";
 export default {
   dicts: ['error_type'],
-  name: 'index',
+  name: 'Work-order-distribute',
   data() {
     return {
+      showDel:false,
+      errorTypeList: [],  // 鐢ㄤ簬瀛樺偍閫変腑鐨勯」鐩甀D
       showSearch: true,
       selectedIdsDistributeForm: {
         ids: [],
@@ -212,6 +252,7 @@
       multipleSelection: [],
       // 涓嬪彂鏃堕棿鑼冨洿
       fastTimeRange: [],
+      timeRange : null,
       // 涓嬪彂
       fastDistributeForm: {
         fastWay: null,
@@ -287,6 +328,11 @@
     }
   },
   mounted() {
+    const today = new Date();
+    const start = today.toISOString().split('T')[0]; // 鑾峰彇鏃ユ湡閮ㄥ垎锛屾牸寮忎负 yyyy-MM-dd
+    const end = start; // 缁撴潫鏃ユ湡涔熸槸褰撳ぉ
+    this.timeRange = [start, end];
+    this.getErrorList()
     this.page();
   },
   computed: {
@@ -295,6 +341,27 @@
     },
   },
   methods: {
+    delDistribute(){
+      console.log(this.multipleSelection)
+      this.multipleSelection.forEach(item =>{
+        console.log(item)
+      })
+      delWorkOrderByIds(this.multipleSelection).then(res =>{
+        if (res.code === 200){
+          this.$message.success("鍒犻櫎鎴愬姛!")
+        }
+        this.page();
+      })
+    },
+    delWorkOrderClick(row){
+      delWorkOrder(row.id)
+      this.page()
+    },
+    getErrorList() {
+      errorTypeAll().then(errorRes => {
+        this.errorTypeList = errorRes.data;
+      })
+    },
     setPointId(selectedValue) {
       const selectedItem = this.pointList.find(item => item.value === selectedValue);
       this.form.serialNumber = selectedItem.id
@@ -311,6 +378,13 @@
     },
     page() {
       this.loading = true;
+      if (this.timeRange && this.timeRange.length > 0) {
+        this.queryParams.start = this.timeRange[0]
+        this.queryParams.end = this.timeRange[1]
+      }else {
+        this.queryParams.start = null
+        this.queryParams.end = null
+      }
       distributeWorkOrder(this.queryParams).then(data => {
         workList(this.queryParams).then(res => {
           this.unitList = res.data;
@@ -379,7 +453,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.multipleSelection = selection.map(item => item.id)
+      this.multipleSelection = selection.map(item => item.workOrderNo)
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
@@ -405,6 +479,7 @@
           } else {
             addWorkOrder(this.form).then(response => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.pointList = [];
               this.open = false;
               this.page();
             });

--
Gitblit v1.8.0