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