From 140e83402814ffd2e92dfe313f5681feedd39f86 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 06 二月 2024 16:49:12 +0800 Subject: [PATCH] 修复弹窗bug --- src/views/Admin/sameLevel.vue | 234 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 164 insertions(+), 70 deletions(-) diff --git a/src/views/Admin/sameLevel.vue b/src/views/Admin/sameLevel.vue index 1aa7c5f..be1f3b5 100644 --- a/src/views/Admin/sameLevel.vue +++ b/src/views/Admin/sameLevel.vue @@ -2,27 +2,30 @@ <div class="inner"> <a-row type="flex" justify="space-between" style="margin-bottom: 20px"> <a-col :span="4"> - <a-button type="primary" @click="editData('add',{})">新增用户</a-button> + <a-button v-if="unittype && unittype !== null" type="primary" @click="editData('add',{})">新增用户</a-button> </a-col> <a-col :span="20"> - <a-row type="flex" justify="end" :gutter="12"> - <a-col :span="4"> - <a-cascader :options="areaData" v-model="areaVal" placeholder="行政规划" expandTrigger="hover" changeOnSelect @change="onChange" style="width: 100%"/> + <a-row type="flex" justify="end" :gutter="14"> + <a-col :span="6"> + <a-input v-model="search.searchParams.company" placeholder="单位名称" style="width: 100%"/> </a-col> - <a-col :span="4"> - <a-button type="primary">查询</a-button> + <a-col :span="6" v-if="unittype == null || !unittype"> + <a-cascader :options="areaData" v-model="areaVal" placeholder="所属区域" expandTrigger="hover" :fieldNames="fieldNames" changeOnSelect @change="onChange" style="width: 100%"/> + </a-col> + <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-col> </a-row> </a-col> </a-row> <div class="table-cont"> - <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.name" bordered> + <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id" bordered> <template #unittype="unittype"> <a-tag :color="unittype === 1 ? 'purple' : unittype === 2 ? 'blue' : unittype === 3 ? 'cyan' : 'green'" > - {{ unittype==1?'省级':unittype==2?'地(市、州)级':unittype==3?'区县级':'村(乡、镇)级' }} + {{ unittype==1?'省级':unittype==2?'地(市、州)级':unittype==3?'区县级':unittype==4?'村(乡、镇)级':'管理员' }} </a-tag> </template> <template #area="text,row"> @@ -33,17 +36,19 @@ </template> <template #action="action,row"> <a-button type="link" @click="editData('edit',row)">编辑</a-button> - <a-button type="link" class="delBtn">删除</a-button> + <a-button type="link" class="delBtn" @click="delData(row)">删除</a-button> </template> </a-table> </div> - <same-level-mod ref="sameLevelMod" @refrech=""></same-level-mod> + <same-level-mod ref="sameLevelMod" @refresh="getUserList"></same-level-mod> </div> </template> <script> -import {getRecipient} from '@/api/user' +import {delRecipient, delUser, getRecipient, getSameLevelGroupList, getUser} from '@/api/user' import sameLevelMod from "@/views/Admin/components/sameLevelMod" +import {getUserInfo} from "@/util/storage"; +import {getDistrictInfo} from "@/api/login"; export default { name: 'sameLevel', components: { @@ -52,10 +57,13 @@ data () { return { areaVal: [], + unittype: null, + districtId: null, search:{ pageIndex: 1, pageSize: 10, searchParams:{ + company: '', province: '', city: '', area: '', @@ -72,6 +80,11 @@ title: '接收人姓名', dataIndex: 'recipientName', key: 'recipientName' + }, + { + title: '所属分组', + dataIndex: 'peerRecipientGroupName', + key: 'peerRecipientGroupName' }, { title: '手机号码', @@ -92,70 +105,103 @@ }, { title: '操作', + width: '12%', key: 'action', scopedSlots: { customRender: 'action' } }, ], tableData: [], + groupData: [], pagination: { current: 1, defaultCurrent: 1, defaultPageSize: 10, total: 0, - onChange: ( page, pageSize ) => this.onPageChange(page,pageSize) + onChange: ( page, pageSize ) => this.onPageChange(page,pageSize), + showTotal: total => `共 ${total} 条` }, - areaData: [ - { - value: 1, - label: '江苏省', - children: [ - { - value: 11, - label: '苏州市', - children: [ - { - value: 111, - label: '工业园区', - }, - ], - }, - ], - }, - { - value: 2, - label: '新疆维吾尔自治区', - children: [ - { - value: 21, - label: '乌鲁木齐市', - children: [ - { - value: 211, - label: '国泰新华', - }, - ], - }, - ], - }, - ] + areaData: [], + fieldNames:{ + label: 'name', + value: 'id', + children: 'children' + } } }, created() { const t = this - t.getSameLevel() + t.groupData = [] + t.unittype = getUserInfo().unittype + t.districtId = getUserInfo().districtId + t.getGroupList() + t.getUserList() + t.getDistrictInfo() }, methods:{ - async getSameLevel(){ + async getUserList(){ const t = this - const res = await getRecipient(t.search) - if(res.data.code == 100){ - t.tableData = res.data.data - t.pagination.total = res.data.total + if(t.search.searchParams.province == '' && t.search.searchParams.city == '' && t.search.searchParams.area == '' && t.search.searchParams.company == ''){ + 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{ - t.$message.warning(res.data.msg); + const res = await getRecipient(t.search) + if(res.data.code == 100){ + t.tableData = res.data.data + t.pagination.total = res.data.total + }else{ + t.$message.warning(res.data.msg); + } } }, + async getDistrictInfo(){ + let res = await getDistrictInfo() + if(res.data.code == 100){ + this.areaData = res.data.data + } else { + this.$message.warning(res.data.msg); + } + }, + + async getGroupList() { + const t = this + const res = await getSameLevelGroupList(); + if(res.data.code == 100){ + if(res.data.data){ + let arr = res.data.data + t.groupData = arr.concat([{id: null, name: '未分类'}]) + }else{ + t.groupData = [{ + id: null, + name: '未分类' + }] + } + }else{ + this.$message.error(res.data.msg) + } + }, resetSearch(){ const t = this t.areaVal = [] @@ -163,6 +209,7 @@ pageIndex: 1, pageSize: 10, searchParams:{ + company: '', province: '', city: '', area: '', @@ -174,33 +221,80 @@ editData(type,data){ const t = this - t.$refs.sameLevelMod.openDialog(type,data) + t.$refs.sameLevelMod.openDialog(type,data,t.groupData) t.$refs.sameLevelMod.areaData = t.areaData + t.$refs.sameLevelMod.form.unittype = t.unittype + t.$refs.sameLevelMod.form.districtId = t.districtId + }, + + async delData(row){ + const t = this + this.$confirm({ + title: '提示', + content: h => <div>是否删除该条用户信息?</div>, + cancelText: '取消', + okText: '确认', + centered: true, + onOk() { + delRecipient(row.id).then(res=>{ + if(res.data.code == 100){ + t.$message.success('删除用户信息成功'); + t.getUserList() + }else{ + t.$message.warning(res.data.msg); + } + }) + }, + onCancel() { + console.log('Cancel'); + }, + }); + }, + + // 根据id查对象 + findCodeById(data,value) { + for (const node of data) { + if (node.id === value) { + return node; + } + if (node.children) { + const foundNode = this.findCodeById(node.children, value); + if (foundNode) { + return foundNode; + } + } + } + return null; }, onPageChange(page, pageSize) { const t= this t.pagination.current = page + t.search.pageIndex = page + t.getUserList() }, onChange(value) { const t = this - // t.search.searchParams.districtId = value[value.length - 1] - }, - - findAreaById(data,value) { - for (const node of data) { - if (node.value === value) { - return node.label; - } - if (node.children) { - const foundLabel = this.findAreaById(node.children, value); - if (foundLabel) { - return foundLabel; - } - } + t.search.searchParams = { + company: '', + province: '', + city: '', + area: '', + town: '' } - return null; - } + if(value[0]){ + t.search.searchParams.province = t.findCodeById(t.areaData,value[0]).name + } + if(value[1]){ + t.search.searchParams.city = t.findCodeById(t.areaData,value[1]).name + } + if(value[2]){ + t.search.searchParams.area = t.findCodeById(t.areaData,value[2]).name + } + if(value[3]){ + t.search.searchParams.town = t.findCodeById(t.areaData,value[3]).name + } + }, } } </script> -- Gitblit v1.9.2