From 4529cc97736ab92b30fb6351b37970bf53a22794 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 01 十一月 2024 02:47:14 +0800
Subject: [PATCH] 数据中心优化完成

---
 src/views/system/work-order/distribute/index.vue |  127 ++++++++++++++++++++++++++++++-----------
 1 files changed, 92 insertions(+), 35 deletions(-)

diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue
index dce8735..a5bf8a9 100644
--- a/src/views/system/work-order/distribute/index.vue
+++ b/src/views/system/work-order/distribute/index.vue
@@ -13,14 +13,44 @@
       </el-col>
     </el-row>
 
-    <el-row class="op-warp" type="flex" justify="left" >
-      <el-col :span="24">
-        <el-button size="small" type="info" @click="selectedDistribute" class="op">涓嬪彂閫変腑宸ュ崟</el-button>
+    <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-input
+              v-model="queryParams.keyword"
+              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-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>
+            <el-button type="primary" icon="el-icon-search" size="small" @click="page">鎼滅储</el-button>
+          </el-form-item>
+        </el-form>
+      </el-row>
+
+      <el-row>
+        <el-button size="mini" plain type="info" @click="selectedDistribute" class="op">涓嬪彂閫変腑宸ュ崟</el-button>
         <el-popconfirm
           @confirm="allDistribute"
           title="纭畾瑕佷笅鍙戞墍鏈夊伐鍗曞悧锛�"
         >
-          <el-button size="small" type="danger"  class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
+          <el-button size="mini" plain type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
         </el-popconfirm>
 
         <el-popover
@@ -31,7 +61,6 @@
           <span style="font-weight: bold;font-size: 16px">蹇嵎涓嬪彂</span>
           <el-form ref="fastDistributeForm" :model="fastDistributeForm" :rules="fastDistributeRules" label-width="80px">
             <el-form-item label="蹇嵎鏂瑰紡" prop="fastWay">
-              <el-radio v-model="fastDistributeForm.fastWay" label="LAST_HALF_HOUR">鏈�杩�30鍒嗛挓</el-radio>
               <el-radio v-model="fastDistributeForm.fastWay" label="LAST_HOUR">鏈�杩�1灏忔椂</el-radio>
               <el-radio v-model="fastDistributeForm.fastWay" label="LAST_TWO_HOUR">鏈�杩�2灏忔椂</el-radio>
               <el-radio v-model="fastDistributeForm.fastWay" label="LAST_DAY">鏈�杩�1澶�</el-radio>
@@ -49,24 +78,25 @@
               </el-date-picker>
             </el-form-item>
             <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
-              <el-select v-model="fastDistributeForm.errorType">
-                <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
-                <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
-                <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+              <el-select v-model="fastDistributeForm.errorType" multiple>
+                <el-option v-for="dict in dict.type.error_type"
+                           :value="dict.value"
+                           :key="dict.value"
+                           :label="dict.label"/>
               </el-select>
             </el-form-item>
             <el-form-item label="鏁伴噺闄愬埗" prop="fastNumLimit">
-              <el-input v-model="fastDistributeForm.fastNumLimit" size="small" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input>
+              <el-input v-model="fastDistributeForm.fastNumLimit" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input>
             </el-form-item>
             <el-form-item>
               <el-button type="primary" size="small" @click="fastDistribute">绔嬪嵆涓嬪彂</el-button>
             </el-form-item>
           </el-form>
-          <el-button slot="reference" type="primary" size="small">蹇嵎涓嬪彂</el-button>
+          <el-button slot="reference" type="primary" size="mini" plain>蹇嵎涓嬪彂</el-button>
         </el-popover>
-        <el-button size="small" type="primary" @click="page">鍒锋柊</el-button>
-        <el-button size="small" type="primary" @click="handleAdd">鏂板</el-button>
-      </el-col>
+        <el-button size="mini" plain type="success" @click="handleAdd">鎵嬪姩鏂板宸ュ崟</el-button>
+        <right-toolbar :showSearch.sync="showSearch" @queryTable="page"></right-toolbar>
+      </el-row>
     </el-row>
 
     <el-row class="content-warp" type="flex" justify="left">
@@ -74,10 +104,23 @@
         <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="unitName"/>
-          <el-table-column label="宸ュ崟鏉ユ簮" align="center" prop="source"/>
+          <el-table-column label="鍥芥爣鐮�" align="center" prop="serialNumber"/>
+          <el-table-column label="鏁呴殰鐐逛綅" align="center" prop="source">
+            <template slot-scope="scope">
+              <el-popover
+                placement="right"
+                :title="scope.row.important ? '閲嶇偣鐐逛綅': '姝e父鐐逛綅'"
+                width="200"
+                trigger="hover">
+                <span :class="{important: scope.row.important}" slot="reference">{{ scope.row.source }}</span>
+              </el-popover>
+            </template>
+          </el-table-column>
           <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType"/>
+          <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>
 
         <pagination
@@ -92,7 +135,7 @@
     </el-row>
 
     <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 -->
-    <el-dialog :title="detailName" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog title="鎵嬪姩鏂板宸ュ崟" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="杩愮淮鍗曚綅" prop="unitId">
           <el-select v-model="form.unitId" placeholder="璇烽�夋嫨">
@@ -104,13 +147,13 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="宸ュ崟鏉ユ簮" prop="source">
+        <el-form-item label="鏁呴殰鐐逛綅" prop="source">
           <el-select
             v-model="form.source"
             filterable
             remote
             reserve-keyword
-            placeholder="璇烽�夋嫨鏉ユ簮"
+            placeholder="鍥芥爣鐮�/鐐逛綅鍚嶇О鎼滅储"
             :remote-method="remoteGetPoints"
             @change="setPointId"
             :loading="selectLoading">
@@ -123,16 +166,17 @@
           </el-select>
         </el-form-item>
         <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
-          <el-select v-model="form.errorType">
-            <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
-            <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
-            <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+          <el-select v-model="form.errorType" multiple>
+            <el-option v-for="dict in dict.type.error_type"
+                       :value="dict.value"
+                       :key="dict.value"
+                       :label="dict.label"/>
           </el-select>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
       </div>
     </el-dialog>
 
@@ -144,9 +188,11 @@
 import {workList} from "@/api/platform/unit";
 import { pointSelectData } from "@/api/platform/point";
 export default {
+  dicts: ['error_type'],
   name: 'index',
   data() {
     return {
+      showSearch: true,
       selectedIdsDistributeForm: {
         ids: [],
         unitId: null
@@ -201,6 +247,8 @@
       },
       queryParams: {
         unitId: null,
+        keyword: '',
+        status: 'WAIT_DISTRIBUTE',
         pageNum: 1,
         pageSize: 10,
       },
@@ -250,7 +298,7 @@
   methods: {
     setPointId(selectedValue) {
       const selectedItem = this.pointList.find(item => item.value === selectedValue);
-      this.form.pointId = selectedItem.id
+      this.form.serialNumber = selectedItem.id
     },
     submitSetting() {
       this.$refs['settingForm'].validate((valid) => {
@@ -264,11 +312,13 @@
     },
     page() {
       this.loading = true;
-      this.selectUnit();
-      distributeWorkOrder(this.queryParams).then(res => {
-        this.workOrderList = res.data.records;
-        this.total = res.total;
-        this.loading = false;
+      distributeWorkOrder(this.queryParams).then(data => {
+        workList(this.queryParams).then(res => {
+          this.unitList = res.data;
+          this.workOrderList = data.data.records;
+          this.total = data.total;
+          this.loading = false;
+        })
       })
     },
     changeUnit(unitId, unitName) {
@@ -306,14 +356,14 @@
             this.page();
           })
         }
-      })  
+      })
     },
     // 閫変腑宸ュ崟涓嬪彂
     selectedDistribute() {
       if (this.multipleSelection.length < 1) {
         this.$message.warning("璇峰厛閫夋嫨瑕佷笅鍙戠殑宸ュ崟")
         return
-      } 
+      }
       this.selectedIdsDistributeForm.unitId = this.unitId;
       this.selectedIdsDistributeForm.ids = this.multipleSelection;
       selectedIdsDistribute(this.selectedIdsDistributeForm).then(res => {
@@ -326,11 +376,11 @@
       console.log(key, keyPath);
     },
     getList() {
-
+      this.page()
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.multipleSelection = selection.map(item => item.id)
+      this.multipleSelection = selection.map(item => item.workOrderNo)
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
@@ -356,6 +406,7 @@
           } else {
             addWorkOrder(this.form).then(response => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.pointList = [];
               this.open = false;
               this.page();
             });
@@ -370,7 +421,7 @@
     },
     // 杩愮淮鍏徃涓嬫媺鏁版嵁
     selectUnit() {
-      workList().then(res => {
+      workList(this.queryParams).then(res => {
         this.unitList = res.data;
       })
     },
@@ -394,6 +445,12 @@
 </script>
 
 <style scoped>
+.important {
+  color: red;
+}
+/deep/ .el-popover__title {
+  margin-bottom: 0px;
+}
 .row {
   padding: 0 20px;
 }

--
Gitblit v1.8.0