From 99c9a7408e83db9bb4f463a452c4cb793a80dbf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Cyiyousong=E2=80=9D?= <鈥測ousong_yi@foxmail.com鈥�>
Date: Mon, 19 Jun 2023 11:37:47 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E4=BA=8B=E9=A1=B9=E7=AE=A1=E7=90=86?=
 =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=A8=E9=97=A8=E6=90=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../business/components/businessTabs2.vue     | 70 +++++++++++++++++--
 .../business/components/businessTabs3.vue     | 69 ++++++++++++++----
 2 files changed, 120 insertions(+), 19 deletions(-)

diff --git a/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs2.vue b/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs2.vue
index b4699e21..7d231e36 100644
--- a/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs2.vue
+++ b/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs2.vue
@@ -11,14 +11,34 @@
             <a-space>
               <a-select
                 style="width: 120px"
-                allowClear
                 v-model="leftSource"
                 class="select-department"
                 placeholder="浜嬮」鏉ユ簮"
               >
+                <a-select-option value=""> 鍏ㄩ儴鏉ユ簮 </a-select-option>
                 <a-select-option :value="0"> 涓€浣撳寲娣诲姞 </a-select-option>
                 <a-select-option :value="1"> 鎵嬪姩娣诲姞 </a-select-option>
               </a-select>
+              <a-select
+                showSearch
+                style="min-width: 120px"
+                v-model="leftDept"
+                class="select-department"
+                placeholder="閮ㄩ棬鎼滅储"
+                optionFilterProp="label"
+              >
+                <a-select-option value="" label="鍏ㄩ儴閮ㄩ棬">
+                  鍏ㄩ儴閮ㄩ棬
+                </a-select-option>
+                <a-select-option
+                  v-for="v in deptList"
+                  :key="v.id"
+                  :value="v.deptNumber"
+                  :label="v.name"
+                >
+                  {{ v.name }}
+                </a-select-option>
+              </a-select>
               <a-input-search
                 v-model="searchLeftVal"
                 placeholder="璇疯緭鍏ヤ簨椤瑰悕绉版悳绱�"
@@ -122,14 +142,34 @@
             <a-space>
               <a-select
                 style="width: 120px"
-                allowClear
                 v-model="rightSource"
                 class="select-department"
                 placeholder="浜嬮」鏉ユ簮"
               >
+                <a-select-option value=""> 鍏ㄩ儴鏉ユ簮 </a-select-option>
                 <a-select-option :value="0"> 涓€浣撳寲浜嬮」 </a-select-option>
                 <a-select-option :value="1"> 鑷缓浜嬮」 </a-select-option>
               </a-select>
+              <a-select
+                showSearch
+                style="min-width: 120px"
+                v-model="rightDept"
+                class="select-department"
+                placeholder="閮ㄩ棬鎼滅储"
+                optionFilterProp="label"
+              >
+                <a-select-option value="" label="鍏ㄩ儴閮ㄩ棬">
+                  鍏ㄩ儴閮ㄩ棬
+                </a-select-option>
+                <a-select-option
+                  v-for="v in deptList"
+                  :key="v.id"
+                  :value="v.deptNumber"
+                  :label="v.name"
+                >
+                  {{ v.name }}
+                </a-select-option>
+              </a-select>
               <a-input-search
                 v-model="searchRightVal"
                 placeholder="璇疯緭鍏ヤ簨椤瑰悕绉版悳绱�"
@@ -229,9 +269,9 @@ import {
   delMatter,
 } from "@/services/matter";
 import { getBusinessMatterList, delBusinessMatter } from "@/services/business";
+import { getDeptList } from "@/services/dept";
 import EditSiteMatter from "../group/EditSiteMatter.vue";
 import { pageSizeOptions } from "@/config/pageConfig.js";
-// import { getDeptList } from "@/services/dept";
 import local from "@/utils/local";
 import { mapMutations } from "vuex";
 const leftColumns = [
@@ -310,8 +350,10 @@ export default {
       rightColumns,
       leftLoading: false,
       rightLoading: false,
-      leftSource: undefined, // 宸﹁竟鏉ユ簮
-      rightSource: undefined, // 鍙宠竟鏉ユ簮
+      leftSource: "", // 宸﹁竟鏉ユ簮
+      leftDept: "", // 宸﹁竟閮ㄩ棬鎼滅储
+      rightDept: "", // 鍙宠竟閮ㄩ棬鎼滅储
+      rightSource: "", // 鍙宠竟鏉ユ簮
       selectedRowKeys: [],
       matterSiteData: [], // 绔欑偣浜嬮」
       matterDataList: [], //浜嬮」鍒楄〃鏁版嵁
@@ -336,12 +378,28 @@ export default {
     };
   },
   created() {
+    this.getDeptListData();
     this.getMatterSiteData();
     this.getMatterListData();
   },
 
   methods: {
     ...mapMutations("site", ["SET_matterDict"]),
+    // 鑾峰彇閮ㄩ棬鍒楄〃
+    async getDeptListData(obj = {}) {
+      this.deptLoading = true;
+      let res = await getDeptList({
+        siteId: this.siteId,
+        page: 1,
+        size: -1,
+        ...obj,
+      });
+      this.deptLoading = false;
+      let { code, data } = res.data;
+      if (code === 1) {
+        this.deptList = data.data;
+      }
+    },
     // 鑾峰彇绔欑偣浜嬮」
     async getMatterSiteData(search = {}) {
       this.leftLoading = true;
@@ -351,6 +409,7 @@ export default {
         siteId: this.siteId,
         source: this.leftSource,
         matterName: `%${this.searchLeftVal}%`,
+        deptCode: this.leftDept,
         ...search,
       });
       let { pageInfo, data } = res.data.data;
@@ -371,6 +430,7 @@ export default {
         size: this.rightSize,
         matterName: this.searchRightVal,
         source: this.rightSource,
+        deptCode: this.rightDept,
         ...search,
       });
       if (res.data.code === 1) {
diff --git a/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue b/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue
index 62f356fb..2fe1a007 100644
--- a/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue
+++ b/base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue
@@ -49,11 +49,11 @@
           <template slot="action" slot-scope="text">
             <a-tooltip>
               <template slot="title"> 瑙i櫎鏌ョ湅 </template>
-              <soan
+              <span
                 href="javascript:;"
                 class="delete pointer"
                 @click="handleisUnbound(text)"
-                >瑙i櫎</soan
+                >瑙i櫎</span
               >
             </a-tooltip>
           </template>
@@ -69,13 +69,35 @@
             <a-button type="primary" @click="handleAddAll"> 鎵归噺鍏宠仈 </a-button>
           </div>
           <div>
-            <a-input-search
-              v-model="rightSearchVal"
-              placeholder="璇疯緭鍏ヤ簨椤瑰悕绉版悳绱�"
-              enter-button="鎼滅储"
-              @search="onSearchRight"
-              allowClear
-            />
+            <a-space>
+              <a-select
+                showSearch
+                style="min-width: 120px"
+                v-model="deptSearch"
+                class="select-department"
+                placeholder="閮ㄩ棬鎼滅储"
+                optionFilterProp="label"
+              >
+                <a-select-option value="" label="鍏ㄩ儴閮ㄩ棬">
+                  鍏ㄩ儴閮ㄩ棬
+                </a-select-option>
+                <a-select-option
+                  v-for="v in deptList"
+                  :key="v.id"
+                  :value="v.deptNumber"
+                  :label="v.name"
+                >
+                  {{ v.name }}
+                </a-select-option>
+              </a-select>
+              <a-input-search
+                v-model="rightSearchVal"
+                placeholder="璇疯緭鍏ヤ簨椤瑰悕绉版悳绱�"
+                enter-button="鎼滅储"
+                @search="onSearchRight"
+                allowClear
+              />
+            </a-space>
           </div>
         </div>
       </div>
@@ -159,7 +181,7 @@
             <a-select
               style="width: 85%"
               show-search
-              :filter-option="filterOption"
+              optionFilterProp="label"
               allowClear
               placeholder="璇烽€夋嫨涓氬姟"
               :showArrow="false"
@@ -170,6 +192,7 @@
                 v-for="v in SiteBusinessData"
                 :key="v.id"
                 :value="v.businessId"
+                :label="v.businessName"
               >
                 {{ v.businessName }}
               </a-select-option>
@@ -257,6 +280,7 @@
 <script>
 import { getSiteMatterList } from "@/services/matter";
 import { pageSizeOptions } from "@/config/pageConfig.js";
+import { getDeptList } from "@/services/dept";
 import {
   getSiteBusinessList,
   // addBusinessMatter,
@@ -266,7 +290,6 @@ import {
   addBatchSave,
   // getMatterlistData,
 } from "@/services/business";
-// import { getDeptList } from "@/services/dept";
 import local from "@/utils/local";
 const leftColumns = [
   {
@@ -329,6 +352,7 @@ export default {
       Leftloading: false,
       rightloading: false,
       leftSearchVal: "", // 宸﹁竟鎼滅储
+      deptSearch: "", // 鍙宠竟
       rightSearchVal: "", // 鍙宠竟鎼滅储
       SiteBusinessData: [], // 绔欑偣涓氬姟
       SiteMatterData: [], //绔欑偣浜嬮」
@@ -347,7 +371,7 @@ export default {
       pageSizeOptions,
       siteId: local.getLocal("siteId"), // 绔欑偣id
       matterIds: "", // 涓氬姟id
-      // deptList: [], // 绔欑偣閮ㄩ棬
+      deptList: [], // 绔欑偣閮ㄩ棬
       rightSearch: "", // 浜嬮」鎼滅储
       businessMatterData: [], // 涓氬姟鍏宠仈浜嬮」鍒楄〃鏁版嵁
       unboundBusinessData: {}, // 瑙i櫎-涓氬姟鏁版嵁
@@ -369,6 +393,7 @@ export default {
     };
   },
   created() {
+    this.getDeptListData();
     this.getBusinessMatterData();
     this.getMatterlistData();
     this.getSiteBusinessData();
@@ -376,6 +401,21 @@ export default {
   },
 
   methods: {
+    // 鑾峰彇閮ㄩ棬鍒楄〃
+    async getDeptListData(obj = {}) {
+      this.deptLoading = true;
+      let res = await getDeptList({
+        siteId: this.siteId,
+        page: 1,
+        size: -1,
+        ...obj,
+      });
+      this.deptLoading = false;
+      let { code, data } = res.data;
+      if (code === 1) {
+        this.deptList = data.data;
+      }
+    },
     // 鑾峰彇绔欑偣涓氬姟鍏宠仈鍒楄〃
     async getBusinessMatterData(search = {}) {
       this.Leftloading = true;
@@ -438,6 +478,7 @@ export default {
         size: this.rightSize,
         matterName: `%${this.rightSearchVal}%`,
         siteId: this.siteId,
+        deptCode: this.leftDept,
         ...search,
       });
       let { pageInfo, data } = res.data.data;
@@ -659,8 +700,8 @@ export default {
     },
     // 鍏抽棴鍏宠仈瀵硅瘽妗�
     handleclose() {
-      this.selectedRowKeys = [];
-      this.allCorrelationData = [];
+      // this.selectedRowKeys = [];
+      // this.allCorrelationData = [];
       this.$refs.formData.resetFields();
       this.isCorrelation = false;
     },
-- 
2.24.3