diff --git a/src/assets/scss/modules/management/epidemic.scss b/src/assets/scss/modules/management/epidemic.scss index 46189c05..644e30ac 100644 --- a/src/assets/scss/modules/management/epidemic.scss +++ b/src/assets/scss/modules/management/epidemic.scss @@ -102,7 +102,14 @@ } } .div-mult-table { + position: relative; padding: 0 20px; + + .div_selcount{ + position: absolute; + bottom:10px; + left:30px; + } } .div_dialog_table { diff --git a/src/views/modules/base/epidemic/antiInfo.vue b/src/views/modules/base/epidemic/antiInfo.vue index 365c6ecf..524f139d 100644 --- a/src/views/modules/base/epidemic/antiInfo.vue +++ b/src/views/modules/base/epidemic/antiInfo.vue @@ -271,7 +271,7 @@ width="50%" top="5vh" class="dialog-h" - @closed="diaClose"> + @closed="handleCnalceForm">
- + - 小程序通知 - @@ -216,7 +216,11 @@ :total="total">
+
+ 已选择人数: + {{selectionAll.length}} +
@@ -239,11 +243,7 @@ :model="formData2" ref="ref_form2" :label-width="'90px'"> - - {{selectionAll.length}} - + - 小程序通知 -
- 小程序通知 - 导出 - 发送通知 @@ -188,7 +187,7 @@ placement="bottom" style="margin-left:10px" width="20" - trigger="click"> + trigger="hover">
@@ -364,6 +364,7 @@ export default { methods: { handleSearch () { + this.selectionAll = [] this.loadTable() }, @@ -531,6 +532,14 @@ export default { addFormOk () { this.addFormShow = false this.editFormShow = false + + this.loadTable() + + }, + sendNoticeOk () { + + this.sendNoticeFormShow = false + this.selectionAll = [] this.loadTable() }, @@ -610,7 +619,7 @@ export default { //导出表格 async handleExport () { - let title = '疫苗接种关注名单' + let title = '核酸检测关注名单' const url = "/epmetuser/icEpidemicSpecialAttention/vaccination-export" @@ -655,10 +664,12 @@ export default { }, handleExportModule () { - let title = '疫苗接种关注名单模板' + let title = '核酸检测关注名单模板' - const url = "/gov/org/house/exporttemplate" - let params = {} + const url = "/epmetuser/icEpidemicSpecialAttention/export-template" + let params = { + attentionType: '2' + } app.ajax.exportFilePost( url, @@ -714,7 +725,7 @@ export default { let fileFormData = new FormData(); fileFormData.append('file', this.files);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 - fileFormData.append('attentionType', '1');//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 + fileFormData.append('attentionType', '2');//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 window.app.ajax.post2(url, fileFormData, (data, rspMsg) => { diff --git a/src/views/modules/base/epidemic/natFocus/nfSendNotice.vue b/src/views/modules/base/epidemic/natFocus/nfSendNotice.vue index 0626a739..aad7ca0b 100644 --- a/src/views/modules/base/epidemic/natFocus/nfSendNotice.vue +++ b/src/views/modules/base/epidemic/natFocus/nfSendNotice.vue @@ -8,14 +8,14 @@ :rules="dataRule" class="form"> - - 小程序通知 + - - - - - 小程序通知 - +
+ + + 小程序通知 + + + + + + +
@@ -230,9 +230,6 @@ let loading // 加载动画 export default { data () { return { - - - formType: 'add', //表单操作类型 add新增,edit编辑,detail详情 hideUploadEdit: false, // 隐藏'上传按钮' limitNum: 1, @@ -287,6 +284,9 @@ export default { }, methods: { + handleChannelChange (val) { + this.formData.content = '' + }, async initForm (type, icNatId) { this.startLoading() @@ -380,6 +380,17 @@ export default { this.formData = data this.formData.channel = [] this.formData.content = '' + // if (data.channel && data.channel.length > 0) { + // this.$set(this.formData, 'isSelChannel', true) + // // this.formData.isSelChannel = true + // } else { + // this.$set(this.formData, 'isSelChannel', false) + // // this.formData.isSelChannel = false + // this.formData.channel = [] + // this.formData.content = '' + // } + console.log(this.formData.isSelChannel) + this.formData.icNatId = this.icNatId if (this.formData.userId) { this.isFromResi = true @@ -461,6 +472,7 @@ export default { } else { this.formData.channel = [] + this.formData.content = '' } this.btnDisable = true @@ -627,6 +639,9 @@ export default { { required: true, message: '检测结果不能为空', trigger: 'blur' }, ], + isSelChannel: [ + { required: false }, + ], channel: [ { required: false }, ], diff --git a/src/views/modules/base/epidemic/natInfo/natList.vue b/src/views/modules/base/epidemic/natInfo/natList.vue index fae09056..f269abef 100644 --- a/src/views/modules/base/epidemic/natInfo/natList.vue +++ b/src/views/modules/base/epidemic/natInfo/natList.vue @@ -33,7 +33,8 @@
- - - + placeholder="请输入地区"> + + 查看 - + 修改 - 更多 - + --> + + + 更多 + + + + 通知记录 + + + 随访记录 + + + 删除 + + + @@ -353,6 +382,7 @@ export default { name: '',//负责人 mobile: '',//联系电话 idCard: '', + sourceAddress: '', sourceAddressCode: '', startDate: '', endDate: '' @@ -620,7 +650,7 @@ export default { }, handleDetail (row) { - this.formTitle = '详情' + this.formTitle = '行程详情' this.formShow = true this.$nextTick(() => { this.$refs.ref_form.initForm('detail', row) @@ -628,7 +658,7 @@ export default { }, handleAdd () { - this.formTitle = '新增' + this.formTitle = '新增行程' this.formShow = true this.$nextTick(() => { this.$refs.ref_form.initForm('add', '') diff --git a/src/views/modules/base/epidemic/travelForm.vue b/src/views/modules/base/epidemic/travelForm.vue index c04495f0..ed662cab 100644 --- a/src/views/modules/base/epidemic/travelForm.vue +++ b/src/views/modules/base/epidemic/travelForm.vue @@ -144,6 +144,7 @@ label-width="150px"> - + - - 小程序通知 - - - - - - - - + style="display: block"> + + 小程序通知 + + + + + + + + +
@@ -259,7 +262,11 @@ export default { gridList: [], personList: [], - + pickerOptions: { + disabledDate(time) { + return time.getTime() > Date.now(); + } + }, btnDisable: false, sourceAllCode: [], // 来源地全 code nowAllCode: [], // 现居地全 code @@ -371,6 +378,7 @@ export default { this.isFromResi = false this.formData.userType = 'input' } + this.resetData() }, handleSourceArea(val) { @@ -381,6 +389,7 @@ export default { this.formData.sourceAddressCode = val[val.length - 1] this.formData.sourceAddress = labels.join('-') this.formData.sourceAddressPathCode = val.join(',') + this.$refs.ref_form.clearValidate('sourceAddress') } else { this.formData.sourceAddressCode = '' this.formData.sourceAddress = '' @@ -396,6 +405,8 @@ export default { this.formData.presentAddressCode = val[val.length - 1] this.formData.presentAddress = labels.join('-') this.formData.presentAddressPathCode = val.join(',') + console.log('presentAddress', this.formData.presentAddress) + this.$refs.ref_form.clearValidate('presentAddress') } else { this.formData.presentAddressCode = '' this.formData.presentAddress = '' diff --git a/src/views/modules/base/epidemic/vaccin.vue b/src/views/modules/base/epidemic/vaccin.vue index 452751e3..133c2a54 100644 --- a/src/views/modules/base/epidemic/vaccin.vue +++ b/src/views/modules/base/epidemic/vaccin.vue @@ -1,41 +1,47 @@ @@ -183,7 +235,7 @@ class="dialog-h" @closed="diaClose"> @@ -196,6 +248,7 @@ import natForm from './natInfo/natForm' import { requestPost } from "@/js/dai/request"; import { mapGetters } from 'vuex' +import { Loading } from 'element-ui' // 引入Loading服务 let loading // 加载动画 export default { @@ -203,19 +256,43 @@ export default { return { loading: false, total: 0, - pageSize: 10, + pageSize: 20, pageNo: 0, tableLoading: false, - sHeight: 0, + isResiUser: true, + agencyId: '', + orgTypeList: [ + { + value: 'current', + label: '本辖区居民检测记录' + }, + { + value: 'all', + label: '全部检测记录' + }, + ], + isResiUserList: [ + { + value: '0', + label: '否' + }, + { + value: '1', + label: '是' + }, + ], timeRange: [], formData: { - personInCharge: '',//负责人 - mobile: '',//联系电话 - gridId: '',//负责区域【网格Id】 - ninePlaceVal: '',//场所类型【九小场所Value值】 - isPage: true,//是否分页(是:true 否:false) 有这个参数是给新增巡查记录时用的,默认是 + searchType: 'current',//当前组织:current 根组织:all + name: '',//姓名 + mobile: '',//手机号 + idCard: '',//身份证号码 + startTime: '',//检测开始时间yyyy-MM-dd HH:mm + endTime: '',//检测结束时间yyyy-MM-dd HH:mm + isResiUser: ''//0:否 1:是 + }, tableData: [], @@ -241,22 +318,26 @@ export default { await this.loadTable() - this.sHeight = this.$refs.div_search.offsetHeight + 270 }, methods: { - handleSearch () { - this.loadTable() - }, + async handleSearch () { + this.isResiUser = this.formData.searchType === 'current' + await this.loadTable() + this.$nextTick(() => { + this.$refs.ref_table.doLayout() // 解决表格错位 + }) + + }, async loadTable () { this.tableLoading = true - const url = "/gov/org/placepatrolteam/getlist" - // const url = "http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/getlist" + const url = "/epmetuser/icVaccine/vaccine-list" + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist" let params = { pageSize: this.pageSize, pageNo: this.pageNo, @@ -270,26 +351,35 @@ export default { this.tableData = data.list this.tableData.forEach(item => { - if (item.time) { - let timeArray = item.time.split(' ') - item.time = timeArray[0] + + item.isResiUserShow = item.isResiUser === '0' ? '否' : '是' + if (item.natResult === '1') { + item.natResultShow = '阳性' + } else if (item.natResult === '0') { + item.natResultShow = '阴性' + } else { + item.natResultShow = '' } }); + + + + } else { this.$message.error(msg) } this.tableLoading = false }, - handleScheduledTimeChange (time) { + handleTimeChange (time) { if (time) { - this.formData.scheduledStartTime = time[0] - this.formData.scheduledEndTime = time[1] + this.formData.startTime = time[0] + this.formData.endTime = time[1] } else { - this.formData.scheduledStartTime = '' - this.formData.scheduledEndTime = '' + this.formData.startTime = '' + this.formData.endTime = '' } @@ -298,13 +388,14 @@ export default { diaClose () { this.$refs.ref_form.resetData() this.formShow = false + }, handleDetail (row) { this.formTitle = '详情' this.formShow = true this.$nextTick(() => { - this.$refs.ref_form.initForm('detail', row.natId, this.agencyId) + this.$refs.ref_form.initForm('detail', row.icNatId) }) }, @@ -312,7 +403,7 @@ export default { this.formTitle = '新增' this.formShow = true this.$nextTick(() => { - this.$refs.ref_form.initForm('add', null, this.agencyId) + this.$refs.ref_form.initForm('add', null) }) }, @@ -320,13 +411,10 @@ export default { this.formTitle = '修改' this.formShow = true this.$nextTick(() => { - this.$refs.ref_form.initForm('edit', row.natId, this.agencyId) + this.$refs.ref_form.initForm('edit', row.icNatId) }) }, - addFormCancle () { - this.formShow = false - }, addFormOk () { this.formShow = false this.loadTable() @@ -334,8 +422,9 @@ export default { }, async handleDelete (row) { + let message = '确认删除?' - this.$confirm("确认删除?", "提示", { + this.$confirm(message, "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning" @@ -343,6 +432,80 @@ export default { .then(() => { this.deleteNat(row) }) + .catch(err => { + + }); + }, + + async deleteNat (row) { + const url = "/epmetuser/icNat/del" + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/del" + + let params = { + icNatId: row.icNatId + } + + const { data, code, msg } = await requestPost(url, params) + + if (code === 0) { + this.$message({ + type: "success", + message: "操作成功" + }); + + this.loadTable() + } else { + this.$message.error(msg) + } + }, + + async handleCancelAttention (row) { + let message = '取消同步后将不能在本辖区居民检测记录中查看,确认取消同步?' + + this.$confirm(message, "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.cancelAttention(row) + }) + .catch(err => { + + }); + }, + + async cancelAttention (row) { + const url = "/epmetuser/icVaccine/cancelsynchro" + + let params = { + icVaccineId: row.vaccineId + } + + const { data, code, msg } = await requestPost(url, params) + + if (code === 0) { + this.$message({ + type: "success", + message: "操作成功" + }); + + this.loadTable() + } else { + this.$message.error(msg) + } + }, + + async handleAttention (row) { + + this.$confirm("确认将信息同步到本辖区核酸检测信息中心?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.attentionNat(row) + }) .catch(err => { if (err == "cancel") { @@ -351,12 +514,12 @@ export default { }); }, - async deleteNat (row) { - const url = "/gov/org/placepatrolteam/del" - // const url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/del" + async attentionNat (row) { + const url = "/epmetuser/icVaccine/synchro" + // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/synchro" let params = { - natId: row.natId + icVaccineId: row.vaccineId } const { data, code, msg } = await requestPost(url, params) @@ -364,7 +527,7 @@ export default { if (code === 0) { this.$message({ type: "success", - message: "删除成功" + message: "操作成功" }); this.loadTable() @@ -373,21 +536,23 @@ export default { } }, + //重置搜索条件 resetSearch () { this.formData = { - personInCharge: '',//负责人 - mobile: '',//联系电话 - gridId: '',//负责区域【网格Id】 - ninePlaceVal: '',//场所类型【九小场所Value值】 - isPage: true,//是否分页(是:true 否:false) 有这个参数是给新增巡查记录时用的,默认是 + searchType: 'current',//当前组织:current 根组织:all + name: '',//姓名 + mobile: '',//手机号 + idCard: '',//身份证号码 + startTime: '',//检测开始时间yyyy-MM-dd HH:mm + endTime: '',//检测结束时间yyyy-MM-dd HH:mm } - this.pageSize = 10 + this.timeRange = [] + this.pageNo = 0 - this.loadTable() + // this.loadTable() }, - handleSizeChange (val) { this.pageSize = val this.pageNo = 1 @@ -400,27 +565,37 @@ export default { //导出表格 async handleExport () { - let title = this.agencyObj.label - title = title + '—房屋列表' + let title = '核酸检测信息' - const url = "/gov/org/house/exporthouseinfo" - let params = { - ownerName: this.ownerName, - ownerPhone: this.ownerPhone, - buildingId: this.agencyObj.id - } + const url = "/epmetuser/icVaccine/export" - app.ajax.exportFilePost( + await this.$http({ + method: 'POST', url, - params, - (data, rspMsg) => { - - this.download(data, title + '.xls') - }, - (rspMsg, data) => { - this.$message.error(rspMsg); - } - ); + responseType: 'blob' + }) + .then(res => { + console.log('res----dddd', res) + // this.download(res.data, title + '.xls') + if (res.headers["content-disposition"]) { + let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) + console.log('filename', fileName) + let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) + var url = window.URL.createObjectURL(blob) + var aLink = document.createElement('a') + aLink.style.display = 'none' + aLink.href = url + aLink.setAttribute('download', fileName) + document.body.appendChild(aLink) + aLink.click() + document.body.removeChild(aLink) //下载完成移除元素 + window.URL.revokeObjectURL(url) //释放掉blob对象 + } else this.$message.error('下载失败') + }) + .catch(err => { + console.log('err', err) + return this.$message.error('网络错误') + }) }, @@ -450,37 +625,53 @@ export default { }, - handleExportModule () { - let title = '' - title = '房屋模板' + async handleExportModule () { + let title = '核酸检测信息导入模板' - const url = "/gov/org/house/exporttemplate" + const url = "/epmetuser/icVaccine/import-template-download" let params = {} - - app.ajax.exportFilePost( + await this.$http({ + method: 'POST', url, - params, - (data, rspMsg) => { - - this.download(data, title + '.xls') - }, - (rspMsg, data) => { - this.$message.error(rspMsg); - } - ); + responseType: 'blob', + data: params + }) + .then(res => { + console.log('res----dddd', res) + // this.download(res.data, title + '.xls') + if (res.headers["content-disposition"]) { + let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) + console.log('filename', fileName) + let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) + var url = window.URL.createObjectURL(blob) + var aLink = document.createElement('a') + aLink.style.display = 'none' + aLink.href = url + aLink.setAttribute('download', fileName) + document.body.appendChild(aLink) + aLink.click() + document.body.removeChild(aLink) //下载完成移除元素 + window.URL.revokeObjectURL(url) //释放掉blob对象 + } else this.$message.error('下载失败') + }) + .catch(err => { + console.log('err', err) + return this.$message.error('网络错误') + }) + this.$refs.upload.clearFiles() }, // 上传文件之前的钩子 beforeUpload (file) { - this.files = file; - const isText = file.type === 'application/vnd.ms-excel' - const isTextComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - - if (!isText && !isTextComputer) { - this.$message.error('请选择正确格式的文件') + const array = file.name.split('.') + const extension = array[array.length - 1] + // const isLt1M = (file.size / 1024 / 1024) < 5 + if (extension !== 'xlsx') { + this.$message.error('只能上传xlsx文件!') return false } else { + this.files = file; this.fileName = file.name; return true } @@ -506,19 +697,17 @@ export default { //清空上传列表 this.$refs['upload'].clearFiles() - var url = '/gov/org/house/houseimport' + var url = '/epmetuser/icVaccine/import' let fileFormData = new FormData(); fileFormData.append('file', this.files);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 - fileFormData.append('orgId', this.agencyObj.id);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 - fileFormData.append('orgType', this.agencyObj.level);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 - this.importRoomLoading = true window.app.ajax.post2(url, fileFormData, (data, rspMsg) => { if (data.code === 0 && data.msg == 'success') { // this.$message.success('导入成功') + this.loadTable() } else { // this.$message({ // showClose: true, @@ -526,24 +715,40 @@ export default { // duration: 0, // type: "error" // }) - // this.$message.error(rspMsg) + this.$message.error(rspMsg) } - this.$emit('refreshTree') - this.loadTable() - this.importRoomLoading = false + + + }, (rspMsg, data) => { - this.importRoomLoading = false + }, { headers: { 'Content-Type': 'multipart/form-data' } }) + }, + + // 开启加载动画 + startLoading () { + loading = Loading.service({ + lock: true, // 是否锁定 + text: '正在加载……', // 加载中需要显示的文字 + background: 'rgba(0,0,0,.7)' // 背景颜色 + }) + }, + // 结束加载动画 + endLoading () { + // clearTimeout(timer); + if (loading) { + loading.close() + } } }, computed: { tableHeight () { - const h = this.clientHeight - this.sHeight + this.iframeHeigh - const _h = this.clientHeight - this.sHeight - return this.$store.state.inIframe ? h : _h + + return this.$store.state.inIframe ? this.clientHeight - 420 + this.iframeHeight : this.clientHeight - 420 + }, diff --git a/src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue b/src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue index 06678cb9..1543274a 100644 --- a/src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue +++ b/src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue @@ -60,12 +60,12 @@ v-model="formData1.remark"> - 小程序通知 -
+
+ 已选择人数: + {{selectionAll.length}} + +
+
@@ -213,11 +219,7 @@ :model="formData2" ref="ref_form2" :label-width="'90px'"> - - {{selectionAll.length}} - + - 小程序通知 -
- 小程序通知 - 导出 - 发送通知 @@ -183,7 +182,7 @@ placement="bottom" style="margin-left:10px" width="20" - trigger="click"> + trigger="hover">
+ @dialogCancle="diaClose" + @dialogOk="sendNoticeOk"> { this.tableData.forEach(tableItem => { - for (let j = 0; j < this.selectionAll.length; j++) { let selectionItem = this.selectionAll[j] @@ -524,8 +523,13 @@ export default { addFormOk () { - this.addFormShow = false - this.editFormShow = false + this.sendNoticeFormShow = false + this.loadTable() + + }, + sendNoticeOk () { + this.sendNoticeFormShow = false + this.selectionAll = [] this.loadTable() }, diff --git a/src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue b/src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue index cfccb926..de9747ac 100644 --- a/src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue +++ b/src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue @@ -8,14 +8,14 @@ :rules="dataRule" class="form"> - - 小程序通知 + - { this.btnDisable = false @@ -126,8 +120,7 @@ export default { let url = '' - url = '/epmetuser/icNotice/batchnotice' - // url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNotice/batchnotice" + url = '/epmetuser/icNotice/sendNotice' const { data, code, msg } = await requestPost(url, this.formData) @@ -138,7 +131,7 @@ export default { message: '操作成功' }) this.resetData() - this.$emit('dialogCancle') + this.$emit('dialogOk') this.btnDisable = false } else { @@ -161,13 +154,11 @@ export default { this.formData = { - name: '', - idCard: '', - phone: '', - remark: '', + origin: '1', isSelChannel: false, channel: [], content: '', + userList: [], } }, diff --git a/src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue b/src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue index cfabc4cb..fdef145e 100644 --- a/src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue +++ b/src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue @@ -210,6 +210,7 @@ export default { }, handleCancle () { + this.$refs.ref_form.resetFields() this.dialogVisible = false }, diff --git a/src/views/modules/base/resi.vue b/src/views/modules/base/resi.vue index 95b645a5..a1c5cf27 100644 --- a/src/views/modules/base/resi.vue +++ b/src/views/modules/base/resi.vue @@ -34,6 +34,10 @@ class="diy-button--reset" :loading="exportBtn" @click="handleExport">{{exportBtnTitle}} + 批量删除
@@ -111,7 +115,7 @@
- 全选 @@ -119,7 +123,7 @@ style="margin-left:15px" type="danger" size="small" - @click="deleteBatch">删除 + @click="deleteBatch">删除 -->