From 743a085df156140f4a3f4ae2d03e910790181945 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 四月 2024 15:05:12 +0800
Subject: [PATCH] 新增查询条件

---
 src/layout/menuSider.vue              |   15 ++-
 src/views/Admin/addressBook.vue       |   10 +-
 src/api/user.js                       |    7 +
 src/views/Admin/components/pwdMod.vue |    1 
 src/views/Admin/sameLevel.vue         |   86 ++++++++++++++------
 src/views/Home.vue                    |   55 +++++++++++++
 src/views/Login.vue                   |   55 -------------
 7 files changed, 137 insertions(+), 92 deletions(-)

diff --git a/src/api/user.js b/src/api/user.js
index c2fedaf..e50b681 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -94,6 +94,13 @@
     })
 }
 
+export function delRecipientBatch(ids){
+    return request({
+        url:'/mesmanager/recipient/deletebatch/' + ids,
+        method: 'delete'
+    })
+}
+
 // 获取同级领导
 export function getLeaders(){
     return request({
diff --git a/src/layout/menuSider.vue b/src/layout/menuSider.vue
index 90502c4..8ef0b30 100644
--- a/src/layout/menuSider.vue
+++ b/src/layout/menuSider.vue
@@ -29,7 +29,7 @@
     return {
       userInfo: {},
       navData: [],
-      openKeys: ['1','2','3','4']
+      openKeys: ['1']
     };
   },
   created() {
@@ -60,10 +60,17 @@
   },
   methods: {
     onOpenChange(openKeys) {
-      if (openKeys.length !== 0) {
-        this.openKeys = [openKeys[1]]
+      // if (openKeys.length !== 0) {
+      //   this.openKeys = [openKeys[1]]
+      // } else {
+      //   this.openKeys = ['']
+      // }
+      const rootSubmenuKeys = this.navData.map(i=>i.MenuID)
+      const latestOpenKey = openKeys.find(key => this.openKeys.indexOf(key) === -1);
+      if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
+        this.openKeys = openKeys;
       } else {
-        this.openKeys = ['']
+        this.openKeys = latestOpenKey ? [latestOpenKey] : [];
       }
     },
   }
diff --git a/src/views/Admin/addressBook.vue b/src/views/Admin/addressBook.vue
index 6cb435d..92bd22b 100644
--- a/src/views/Admin/addressBook.vue
+++ b/src/views/Admin/addressBook.vue
@@ -1,13 +1,13 @@
 <template>
   <div class="inner">
     <a-row type="flex" justify="space-between" style="margin-bottom: 20px">
-      <a-col :span="6">
-        <a-button v-if="unittype && unittype !== null" type="primary" @click="editData('add',{})">新增</a-button>
-        <a-button v-if="unittype && unittype !== null" type="primary" @click="visible = true" style="margin: 0 12px">导入通讯录表</a-button>
-        <a-button v-if="unittype && unittype !== null" type="primary" @click="openGroup()">分组管理</a-button>
+      <a-col :span="6" v-if="unittype && unittype !== null">
+        <a-button type="primary" @click="editData('add',{})">新增</a-button>
+        <a-button type="primary" @click="visible = true" style="margin: 0 12px">导入通讯录表</a-button>
+        <a-button type="primary" @click="openGroup()">分组管理</a-button>
       </a-col>
       <a-col :span="18">
-        <a-row type="flex" justify="end" :gutter="14">
+        <a-row type="flex" :gutter="14">
           <a-col :span="6">
             <a-input v-model="search.searchParams.company" placeholder="单位名称" style="width: 100%"/>
           </a-col>
diff --git a/src/views/Admin/components/pwdMod.vue b/src/views/Admin/components/pwdMod.vue
index 1309cad..afd2ca7 100644
--- a/src/views/Admin/components/pwdMod.vue
+++ b/src/views/Admin/components/pwdMod.vue
@@ -80,7 +80,6 @@
   },
   created() {
     const t = this
-    console.log(t.id,t.form.uid,'id')
   },
   methods:{
     clearMod(){
diff --git a/src/views/Admin/sameLevel.vue b/src/views/Admin/sameLevel.vue
index be1f3b5..d407693 100644
--- a/src/views/Admin/sameLevel.vue
+++ b/src/views/Admin/sameLevel.vue
@@ -1,11 +1,16 @@
 <template>
   <div class="inner">
     <a-row type="flex" justify="space-between" style="margin-bottom: 20px">
-      <a-col :span="4">
-        <a-button v-if="unittype && unittype !== null" type="primary" @click="editData('add',{})">新增用户</a-button>
+      <a-col :span="4" v-if="unittype && unittype !== null">
+        <a-button type="primary" @click="editData('add',{})">新增用户</a-button>
       </a-col>
       <a-col :span="20">
-        <a-row type="flex" justify="end" :gutter="14">
+        <a-row type="flex" :gutter="14">
+          <a-col :span="6">
+            <a-select v-model="search.searchParams.peerRecipientGroupId" placeholder="选择分组" style="width: 100%" @change="handleChange" allowClear show-search :filter-option="filterOption">
+              <a-select-option v-for="item in groupData" :value="item.id" :key="item.id">{{item.name}}</a-select-option>
+            </a-select>
+          </a-col>
           <a-col :span="6">
             <a-input v-model="search.searchParams.company" placeholder="单位名称" style="width: 100%"/>
           </a-col>
@@ -15,12 +20,13 @@
           <a-col :span="6">
             <a-button type="primary" @click="getUserList" v-preventReClick="1500">查询</a-button>
             <a-button style="margin-left: 12px" @click="resetSearch">重置</a-button>
+            <a-button type="danger" style="margin-left: 12px" @click="delBySet">批量删除</a-button>
           </a-col>
         </a-row>
       </a-col>
     </a-row>
     <div class="table-cont">
-      <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id" bordered>
+      <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id" bordered :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
         <template #unittype="unittype">
           <a-tag
               :color="unittype === 1 ? 'purple' : unittype === 2 ? 'blue' : unittype === 3 ? 'cyan' : 'green'"
@@ -45,7 +51,7 @@
 </template>
 
 <script>
-import {delRecipient, delUser, getRecipient, getSameLevelGroupList, getUser} from '@/api/user'
+import {delRecipient, delRecipientBatch, delUser, getRecipient, getSameLevelGroupList, getUser} from '@/api/user'
 import sameLevelMod from "@/views/Admin/components/sameLevelMod"
 import {getUserInfo} from "@/util/storage";
 import {getDistrictInfo} from "@/api/login";
@@ -67,9 +73,11 @@
           province: '',
           city: '',
           area: '',
-          town: ''
+          town: '',
+          peerRecipientGroupId: undefined
         }
       },
+      selectedRowKeys: [],
       columns:[
         {
           title: '单位名称',
@@ -140,31 +148,15 @@
   methods:{
     async getUserList(){
       const t = this
-      if(t.search.searchParams.province == '' && t.search.searchParams.city == '' && t.search.searchParams.area == '' && t.search.searchParams.company == ''){
+      if(t.search.searchParams.province == '' && t.search.searchParams.city == '' && t.search.searchParams.area == '' && t.search.searchParams.company == '' && t.search.searchParams.peerRecipientGroupId == undefined){
         const {searchParams,...data} = t.search
         const res = await getRecipient(data)
         if(res.data.code == 100){
           t.tableData = res.data.data
           t.pagination.total = res.data.total
-          // for(let i of t.tableData){
-          //   if(i.peerRecipientGroupId == null){
-          //     i['peerRecipientGroup'] = '未分类'
-          //   }else{
-          //     getSameLevelGroupList().then((re)=>{
-          //       if(re.data.data && re.data.data.length>0){
-          //         for(let j of re.data.data){
-          //           if(j.id == i.peerRecipientGroupId){
-          //             i['peerRecipientGroup'] = j.name
-          //           }
-          //         }
-          //       }
-          //     })
-          //   }
-          // }
         }else{
           t.$message.warning(res.data.msg);
         }
-        console.log(t.tableData,'table')
       }else{
         const res = await getRecipient(t.search)
         if(res.data.code == 100){
@@ -191,10 +183,10 @@
       if(res.data.code == 100){
         if(res.data.data){
           let arr = res.data.data
-          t.groupData = arr.concat([{id: null, name: '未分类'}])
+          t.groupData = arr.concat([{id: -1, name: '未分类'}])
         }else{
           t.groupData = [{
-            id: null,
+            id: -1,
             name: '未分类'
           }]
         }
@@ -213,7 +205,8 @@
           province: '',
           city: '',
           area: '',
-          town: ''
+          town: '',
+          peerRecipientGroupId: undefined
         }
       }
       t.getUserList()
@@ -225,6 +218,12 @@
       t.$refs.sameLevelMod.areaData = t.areaData
       t.$refs.sameLevelMod.form.unittype = t.unittype
       t.$refs.sameLevelMod.form.districtId = t.districtId
+    },
+
+    filterOption(input, option) {
+      return (
+          option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      );
     },
 
     async delData(row){
@@ -267,6 +266,31 @@
       return null;
     },
 
+    async delBySet(){
+      const t = this
+      this.$confirm({
+        title: '提示',
+        content: h => <div>是否删除所选用户信息?</div>,
+        cancelText: '取消',
+        okText: '确认',
+        centered: true,
+        onOk() {
+          delRecipientBatch(t.selectedRowKeys.join(',')).then(res=>{
+            if(res.data.code == 100){
+              t.$message.success('删除用户信息成功');
+              t.getUserList()
+              t.selectedRowKeys = []
+            }else{
+              t.$message.warning(res.data.msg);
+            }
+          })
+        },
+        onCancel() {
+          console.log('Cancel');
+        },
+      });
+    },
+
     onPageChange(page, pageSize) {
       const t= this
       t.pagination.current = page
@@ -280,7 +304,8 @@
         province: '',
         city: '',
         area: '',
-        town: ''
+        town: '',
+        peerRecipientGroupId: undefined
       }
       if(value[0]){
         t.search.searchParams.province = t.findCodeById(t.areaData,value[0]).name
@@ -295,6 +320,13 @@
         t.search.searchParams.town = t.findCodeById(t.areaData,value[3]).name
       }
     },
+    handleChange(value) {
+      console.log(`selected ${value}`);
+      this.getUserList()
+    },
+    onSelectChange(selectedRowKeys) {
+      this.selectedRowKeys = selectedRowKeys;
+    },
   }
 }
 </script>
diff --git a/src/views/Home.vue b/src/views/Home.vue
index 145fe60..f2cc6f3 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -56,6 +56,7 @@
   import { loginOut, getDistrictInfo } from "@/api/login";
   import { Session, getUserInfo} from '@/util/storage';
   import Cookies from "js-cookie";
+  import {getAreaWithUserIfo} from "@/api/user";
 	export default {
 		name: "Home",
 		data() {
@@ -84,6 +85,7 @@
 				})
 				this.addListener()
 			}
+      this.getAreaUsers(getUserInfo().districtId)
 		},
 		watch: {
 			'$route': function(newRoute) {
@@ -217,6 +219,59 @@
 				const path = closePath && closePath.split('?')[0]
 				this.remove(path, nextRoute)
 			},
+      async getAreaUsers(districtId) {
+        let t = this
+        let res = await getAreaWithUserIfo()
+        if (res.data.code == 100) {
+          if (res.data.data) {
+            t.userTitTree(res.data.data)
+            const areaUsers = t.findNodeById(res.data.data, districtId).children
+            localStorage.removeItem('areaUsers')
+            localStorage.setItem('areaUsers',JSON.stringify(areaUsers))
+          } else {
+            console.log('暂无数据')
+          }
+        } else {
+          this.$message.warning(res.data.msg);
+        }
+      },
+
+      // 根据id查对象
+      findNodeById(data, value) {
+        for (const node of data) {
+          if (node.id === value) {
+            return node;
+          }
+          if (node.children) {
+            const foundNode = this.findNodeById(node.children, value);
+            if (foundNode) {
+              return foundNode;
+            }
+          }
+        }
+        return null;
+      },
+
+      // 将树状数据name字段放入users的姓名电话
+      userTitTree(treeData) {
+        for (const node of treeData) {
+          if (node.users) {
+            node.users = node.users.filter(i => i.roleId == 3)
+            node.users = node.users.map((i) => {
+              return {
+                ...i,
+                unittype: node.type,
+                districtId: node.id
+              }
+            })
+            node.name = node.name + '(' + node.users.map(i => i.realName + ' ' + i.phone).join(',') + ')'
+          }
+          if (node.children) {
+            this.userTitTree(node.children)
+          }
+        }
+        return treeData
+      }
 		}
 	};
 </script>
diff --git a/src/views/Login.vue b/src/views/Login.vue
index 9eb9abe..b901080 100644
--- a/src/views/Login.vue
+++ b/src/views/Login.vue
@@ -107,7 +107,6 @@
 import { login, getMenuAdmin } from "@/api/login";
 import Cookies from 'js-cookie';
 import {Base64} from "js-base64";
-import {getAreaWithUserIfo} from "@/api/user";
 
 
 export default {
@@ -158,7 +157,6 @@
             Cookies.set('resTk', res.data.data.tk);
             Cookies.set('resUid', res.data.data.uid);
             Cookies.set('userInfo',JSON.stringify(res.data.data),{expires: 7})
-            await this.getAreaUsers(res.data.data.districtId)
             if (this.saveAccount) {
               localStorage.setItem('userName', this.form.name)
               localStorage.setItem('userPassword', Base64.encode(this.form.pwd))
@@ -178,59 +176,6 @@
       });
     },
 
-    async getAreaUsers(districtId) {
-      let t = this
-      let res = await getAreaWithUserIfo()
-      if (res.data.code == 100) {
-        if (res.data.data) {
-          t.userTitTree(res.data.data)
-          const areaUsers = t.findNodeById(res.data.data, districtId).children
-          localStorage.removeItem('areaUsers')
-          localStorage.setItem('areaUsers',JSON.stringify(areaUsers))
-        } else {
-          console.log('暂无数据')
-        }
-      } else {
-        this.$message.warning(res.data.msg);
-      }
-    },
-
-    // 根据id查对象
-    findNodeById(data, value) {
-      for (const node of data) {
-        if (node.id === value) {
-          return node;
-        }
-        if (node.children) {
-          const foundNode = this.findNodeById(node.children, value);
-          if (foundNode) {
-            return foundNode;
-          }
-        }
-      }
-      return null;
-    },
-
-    // 将树状数据name字段放入users的姓名电话
-    userTitTree(treeData) {
-      for (const node of treeData) {
-        if (node.users) {
-          node.users = node.users.filter(i => i.roleId == 3)
-          node.users = node.users.map((i) => {
-            return {
-              ...i,
-              unittype: node.type,
-              districtId: node.id
-            }
-          })
-          node.name = node.name + '(' + node.users.map(i => i.realName + ' ' + i.phone).join(',') + ')'
-        }
-        if (node.children) {
-          this.userTitTree(node.children)
-        }
-      }
-      return treeData
-    }
   },
 };
 </script>

--
Gitblit v1.9.2