From 1f6893d24ba87313d4114c68813073ead53b2e12 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期五, 30 八月 2024 09:26:22 +0800 Subject: [PATCH] 群发新通讯录懒加载 --- src/views/Admin/callRecord.vue | 368 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 211 insertions(+), 157 deletions(-) diff --git a/src/views/Admin/callRecord.vue b/src/views/Admin/callRecord.vue index 206bdeb..72ea456 100644 --- a/src/views/Admin/callRecord.vue +++ b/src/views/Admin/callRecord.vue @@ -1,200 +1,254 @@ <template> <div class="inner"> + <a-row type="flex" justify="space-between" style="margin-bottom: 20px"> + <a-col :span="8"> + <a-radio-group v-model="search.searchParams.emergType" @change="getData"> + <a-radio-button :value="null"> + 全部 + </a-radio-button> + <a-radio-button :value="1"> + 紧临 + </a-radio-button> + <a-radio-button :value="2"> + 常规 + </a-radio-button> + </a-radio-group> + </a-col> + <a-col :span="16"> + <a-row type="flex" justify="end" :gutter="12"> + <a-col :span="8"> + <a-range-picker + v-model="timeRange" + format="YYYY-MM-DD" + :placeholder="['开始时间', '结束时间']" + @change="timeChange" + @ok="timeOk" + style="width: 100%" + /> + </a-col> + <a-col :span="6"> + <a-button type="primary" @click="searchData">查询</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.id" bordered> - <template #level="level"> - <a-tag - :key="level" - :color="level === 1 ? 'pink' : level === 2 ? 'blue' : 'green'" - > - {{ level==1?'省级':level==2?'地(市、州)级':level==3?'区县级':'村(乡、镇)级' }} + <a-table :columns="columns" :data-source="data" bordered :pagination="pagination" :rowKey="record=>record.id"> + <template #index="text,record,index"> + {{ index + 1 }} + </template> + <template #warningLevel="text"> + <a-tag :color="text === 3 ? 'yellow' :text === 2? 'orange':text === 1?'red':'blue'"> + {{ getLevelName(text) }} </a-tag> </template> - <template #actions="actions,row"> - <a-button type="link" @click="viewData()">查看</a-button> + <template #unittype="unittype"> + <a-tag + :color="unittype === 1 ? 'purple' : unittype === 2 ? 'blue' : unittype === 3 ? 'cyan' : 'green'" + > + {{ unittype==1?'省级':unittype==2?'地(市、州)级':unittype==3?'区县级':unittype==4?'村(乡、镇)级':'管理员' }} + </a-tag> + </template > + <template #operation="text, record, index"> + <a-button type="link" @click="openDetails(record.warnInfoId)">查看详情</a-button> </template> </a-table> + <msg-detail-mod ref="msgDetail"></msg-detail-mod> </div> - <a-modal - title="信息详情" - :visible="visible" - @ok="handleOk" - @cancel="handleCancel" - cancelText="取消" okText="确认" - width="50%" - > - <a-row class="tit"> - <a-col :span="4" style="text-align: right;padding-right: 8px">标题</a-col> - <a-col :span="14">信息详情标题</a-col> - </a-row> - <a-form-model :model="form" :label-col="labelCol" :wrapper-col="wrapperCol" :colon="false"> - <a-form-model-item label="类别"> - <a-input readonly v-model="form.type"/> - </a-form-model-item> - <a-form-model-item label="级别"> - <a-tag color="yellow">黄色</a-tag> - </a-form-model-item> - <a-form-model-item label="发布单位"> - <a-input readonly v-model="form.dep"/> - </a-form-model-item> - <a-form-model-item label="短信内容"> - <a-input readonly type="textarea" v-model="form.content"/> - </a-form-model-item> - <a-form-model-item label="附件内容"> - <a><b><a-icon type="paper-clip"/>附件</b></a> - </a-form-model-item> - </a-form-model> - </a-modal> </div> </template> - <script> -import {getUser} from '@/api/user' +import {getHistoryRecord, getMsgRecord, getPublishRecord, getResponseRecord} from "@/api/list"; +import msgDetailMod from "@/views/Admin/components/msgDetailMod"; +import {getUserInfo} from "@/util/storage"; +const columns = [{ + title: '序号', + dataIndex: 'index', + width: '8%', + scopedSlots: { + customRender: 'index' + } +}, + { + title: '叫应时间', + dataIndex: 'responseTime', + width: '15%', + scopedSlots: { + customRender: 'responseTime' + } //设置定制化表格数据 + }, + { + title: '预警级别', + dataIndex: 'warningLevel', + scopedSlots: { + customRender: 'warningLevel' + }, //设置定制化表格数据 + width: '8%', + }, + { + title: '发布单位', + dataIndex: 'publishingUnit', + width: '20%', + }, + { + title: '接收人单位', + dataIndex: 'receiveUnit', + width: '20%', + scopedSlots: { + customRender: 'receiveUnit' + } + }, + { + title: '接收人', + dataIndex: 'responseRealName', + width: '20%', + scopedSlots: { + customRender: 'responseRealName' + } + }, + { + title: '级别', + dataIndex: 'unittype', + width: '12%', + scopedSlots: { + customRender: 'unittype' + }, + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { + customRender: 'operation' + }, + }, +]; export default { - name: 'callRecord', - components: {}, - data () { + name: 'release', + components: { msgDetailMod }, + data() { return { - visible: false, - form: {}, - labelCol: { span: 4 }, - wrapperCol: { span: 14 }, - columns:[ - { - title: '叫应时间', - dataIndex: 'callTime', - key: 'callTime' - }, - { - title: '预警信息', - dataIndex: 'warnings', - key: 'warnings' - }, - { - title: '接收人单位', - dataIndex: 'depName', - key: 'depName' - }, - { - title: '接收人', - dataIndex: 'name', - key: 'name' - }, - { - title: '级别', - dataIndex: 'level', - key: 'level', - scopedSlots: { customRender: 'level' } - }, - { - title: '操作', - dataIndex: 'actions', - key: 'actions', - scopedSlots: { customRender: 'actions' } + search:{ + pageIndex: 1, + pageSize: 10, + searchParams:{ + emergType: null, + startTime: '', + endTime: '' } - ], - tableData: [ - { - id: 1, - callTime: '2023-06-02', - warnings: '666666', - name: '黄公子', - level: 1 - }, - { - id: 2, - callTime: '2023-06-02', - warnings: '666666', - name: '黄公子', - level: 2 - }, - { - id: 3, - callTime: '2023-06-02', - warnings: '666666', - name: '黄公子', - level: 4 - }, - ], + }, + timeRange: [], + category: 'default', + data:[], + columns, + visible: false, + confirmLoading: false, pagination: { current: 1, defaultCurrent: 1, defaultPageSize: 10, - total: 11, - onChange: ( page, pageSize ) => this.onPageChange(page,pageSize) + total: 0, + 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: '国泰新华', - }, - ], - }, - ], - }, + riskOptions: [ + {name: '地震',value: 1}, + {name: '气象',value: 3}, + {name: '地质灾害',value: 4}, + {name: '水旱',value: 5}, + {name: '森林草原火灾',value: 6} + ], + levelOptions: [ + {name: '红色预警',value: 1}, + {name: '橙色预警',value: 2}, + {name: '黄色预警',value: 3}, + {name: '蓝色预警',value: 4} ] + } + }, + mounted() { + if(getUserInfo().role.id == 1){ + this.columns = this.columns.filter(i=>i.dataIndex !== 'operation') } }, created() { const t = this + t.getData() }, - methods:{ - async getUserList(){ + methods: { + async getData(){ const t = this - const res = await getUser(t.search) + const res = await getResponseRecord(this.search) + if(res.data.code == 100){ + t.data = res.data.data + t.pagination.total = res.data.total + }else{ + this.$message.error(res.data.msg) + } }, - - viewData(){ + openDetails(id){ const t = this - t.visible = true + t.$refs.msgDetail.getDetails(id) + t.$refs.msgDetail.visible = true }, onPageChange(page, pageSize) { const t= this t.pagination.current = page + t.search.pageIndex = page + t.getData() + }, + + timeChange(value, dateString) { + const t = this + if(dateString){ + t.search.searchParams.startTime = value[0].format('YYYY-MM-DD 00:00:00') + t.search.searchParams.endTime = value[1].format('YYYY-MM-DD 23:59:59') + } + }, + + timeOk(value) { + console.log('onOk: ', value); + }, + + searchData(){ + this.search.pageIndex = 1 + this.getData() + }, + + resetSearch(){ + const t = this + t.search = { + pageIndex: 1, + pageSize: 10, + searchParams:{ + emergType: null, + startTime: '', + endTime: '' + } + } + t.timeRange = [] + t.getData() + }, + + //弹出层 + showModal() { + this.visible = true; }, handleOk(e) { - this.visible = false - }, - handleCancel(e) { this.visible = false; }, + + getLevelName(warningLevel){ + return this.levelOptions.find(i => i.value === warningLevel)?.name; + } + } } -</script> -<style lang="less" scoped> - .tit{ - font-size: 18px; - font-weight: bolder; - color: @blackText; - margin-bottom: 24px; - } -</style> +</script> \ No newline at end of file -- Gitblit v1.9.2