Browse Source

核酸检测

shibei_master
jiangyy 4 years ago
parent
commit
7552765aa3
  1. 32
      src/assets/scss/modules/management/epidemic.scss
  2. 339
      src/views/modules/base/epidemic/natInfo/natForm.vue
  3. 283
      src/views/modules/base/epidemic/natInfo/natList.vue
  4. 105
      src/views/modules/base/epidemic/veroFocus/veroFocusList.vue
  5. 35
      src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue

32
src/assets/scss/modules/management/epidemic.scss

@ -1,20 +1,22 @@
.item_width_1 {
width: 560px;
}
.item_width_2 {
width: 220px;
}
.item_width_3 {
width: 180px;
}
.epidemic-form {
.item_width_1 {
width: 560px;
}
.item_width_2 {
width: 220px;
}
.item_width_3 {
width: 180px;
}
.btn-selperson {
margin-left: 20px;
}
.btn-selperson {
margin-left: 20px;
}
.form_div_btn {
margin-top: 20px;
text-align: center;
.form_div_btn {
margin-top: 20px;
text-align: center;
}
}
.main_tab {

339
src/views/modules/base/epidemic/natInfo/natForm.vue

@ -1,14 +1,15 @@
<template>
<div>
<div class="epidemic-form">
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType==='look'"
:disabled="formType==='detail'"
class="form">
<el-form-item label="录入方式"
<el-form-item v-if="formType==='add'"
label="录入方式"
label-width="150px"
style="display: block">
<el-radio-group v-model="enterType"
@ -21,7 +22,8 @@
</el-form-item>
<el-form-item label="所属网格"
<el-form-item v-if="formType==='add'"
label="所属网格"
style="display: block"
label-width="150px">
<el-select class="item_width_2"
@ -37,12 +39,13 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="居民"
prop="personId"
<el-form-item v-if="formType==='add'"
label="居民"
prop="userId"
style="display: block"
label-width="150px">
<el-select class="item_width_2"
v-model.trim="formData.personId"
v-model.trim="formData.userId"
placeholder="请选择"
filterable
:disabled="!isFromResi"
@ -70,14 +73,14 @@
</el-form-item>
<el-form-item label="手机号"
prop="phone"
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入手机号"
clearable
:disabled="isFromResi"
v-model="formData.phone">
v-model="formData.mobile">
</el-input>
</el-form-item>
<el-form-item label="身份证号"
@ -94,10 +97,10 @@
<el-form-item label="检测时间"
style="display: block"
prop="checkTime"
prop="natTime"
label-width="150px">
<el-date-picker class="item_width_2"
v-model="formData.checkTime"
v-model="formData.natTime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
type="datetime"
@ -107,13 +110,13 @@
</el-form-item>
<el-form-item label="检测地点"
prop="address"
prop="natAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入检测地点"
clearable
v-model="formData.address">
v-model="formData.natAddress">
</el-input>
</el-form-item>
@ -121,10 +124,10 @@
prop="type"
label-width="150px"
style="display: block">
<el-radio-group v-model="formData.result">
<el-radio-group v-model="formData.natResult">
<el-radio :label="'1'">阴性</el-radio>
<el-radio :label="'2'">阳性</el-radio>
<el-radio :label="'0'">阴性</el-radio>
<el-radio :label="'1'">阳性</el-radio>
</el-radio-group>
</el-form-item>
@ -132,41 +135,42 @@
<el-form-item class="block"
label-width="150px"
style="display: block"
label="添加附件"
label="添加图片"
prop="attach">
<el-upload class="upload-demo"
:action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx"
<el-upload :action="uploadUlr"
list-type="picture-card"
:limit="limitNum"
:class="{hide:hideUploadEdit}"
accept=".jpg,.png,.gif"
:on-preview="handlePictureCardPreview"
:on-success="handleFileSuccess"
:on-remove="handleFileRemove"
:on-preview="handleFileDownload"
:limit="3"
:on-remove="handleRemove"
:before-upload="beforeUpload"
:on-change="handleEditChange"
:file-list="fileList">
<el-button size="small"
:disabled="fileList.length==3"
type="primary">点击上传</el-button>
<i class="el-icon-plus"></i>
<div slot="tip"
class="el-upload__tip">最多三个附件只能上传wordexcelpdf文件</div>
class="el-upload__tip">请选择1张图片只能上传jpgpnggif格式</div>
</el-upload>
</el-form-item>
<el-form-item label="通知渠道"
prop="noticeWay"
prop="channel"
label-width="150px"
style="display: block">
<el-checkbox-group v-model="formData.noticeWay">
<el-checkbox-group v-model="formData.channel">
<el-checkbox key="0"
label="0">小程序通知</el-checkbox>
<el-checkbox key="1"
label="1">小程序通知</el-checkbox>
<el-checkbox key="2"
label="2">短信通知</el-checkbox>
label="1">短信通知</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="通知内容"
prop="noticeContent"
prop="content"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
@ -176,22 +180,31 @@
:autosize="{ minRows: 4, maxRows: 10 }"
clearable
placeholder="请输入通知内容"
v-model="formData.noticeContent"></el-input>
v-model="formData.content"></el-input>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<div class="form_div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button v-if="formType != 'look'"
<el-button v-if="formType != 'detail'"
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
<el-dialog :visible.sync="dialogVisible"
width="550px"
top="5vh"
append-to-body>
<img width="100%"
:src="dialogImageUrl"
alt="">
</el-dialog>
</div>
</template>
@ -207,6 +220,8 @@ export default {
data () {
return {
formType: 'add', // addeditdetail
hideUploadEdit: false, // ''
limitNum: 1,
enterType: '1',//1 2
isFromResi: false,//
@ -215,46 +230,54 @@ export default {
btnDisable: false,
natId: '',
icNatId: '',
formData: {
icNatId: '',
agencyId: '',//Id
userId: '',//idicResiUserId
userType: 'icresi',//resi;icresi;import;synchro
name: '',
idCard: '',
phone: '',
checkTime: '',
address: '',
result: '',
noticeWay: [],
noticeContent: '',
attachmentList: []
mobile: '',
natTime: '',
natAddress: '',
natResult: '',
channel: [],
content: '',
fileName: '',//
attachmentType: '',// - image - video - voice - doc
attachmentUrl: '',//
},
fileList: [],
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile',
dialogImageUrl: '',
dialogVisible: false,
}
},
components: {},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
this.formData.agencyId = user.agencyId
//
await this.loadGrid()
},
methods: {
async initForm (type, natId) {
async initForm (type, icNatId) {
this.startLoading()
this.$refs['ref_form'].resetFields();
this.formType = type
if (natId) {
this.natId = natId
this.formData.id = natId
if (icNatId) {
this.icNatId = icNatId
this.formData.icNatId = icNatId
this.isFromResi = false
await this.loadFormData()
}
this.endLoading()
@ -263,10 +286,10 @@ export default {
handleChangeEnterType (value) {
this.formData.name = ''
this.formData.phone = ''
this.formData.mobile = ''
this.formData.idCard = ''
this.formData.gridId = ''
this.formData.personId = ''
this.formData.userId = ''
if (value === '2') {
this.isFromResi = true
} else {
@ -312,72 +335,52 @@ export default {
},
async handleSelPerson (personItem) {
this.formData.userId = personItem.demandUserId
this.formData.name = personItem.demandUserName
this.formData.phone = personItem.demandUserMobile
this.formData.mobile = personItem.demandUserMobile
this.formData.idCard = personItem.idCard
},
handleTime () {
if (!this.formData.remindTime) return
var startAt = new Date(this.formData.remindTime) * 1000 / 1000;
if (startAt < Date.now()) {
this.formData.remindTime = dateFormats('YYYY-mm-dd HH:MM', new Date());
}
},
async loadFormData () {
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern'
const url = '/gov/project/memoConcern'
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/detail'
const url = '/epmetuser/icNat/detail'
let params = {
id: this.natId,
readFlag: '0',
icNatId: this.icNatId,
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.formData = data
if (data.attachmentList) {
data.attachmentList.forEach(element => {
element.name = element.fileName
element.type = element.attachmentType
element.size = element.attachmentSize
});
this.fileList = data.attachmentList
this.formData.icNatId = this.icNatId
this.fileList = []
if (data.fileName) {
let obj = {
name: data.fileName,
type: data.attachmentType,
url: data.attachmentUrl,
}
// data.attachmentList.forEach(element => {
// element.name = element.fileName
// element.type = element.attachmentType
// element.size = element.attachmentSize
// });
this.fileList.push(obj)
}
this.hideUploadEdit = this.fileList.length >= this.limitNum;
} else {
this.$message.error(msg)
}
},
async handleComfirm () {
async handleComfirm () {
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 5000)
this.$refs['ref_form'].validate(async (valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
this.btnDisable = false
} else {
await this.addNat()
}
})
},
async addNat () {
console.log(this.formData)
return false
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
// if (regPhone.test(this.formData.mobile) === false) {
@ -387,21 +390,26 @@ export default {
// message: ''
// })
// return false;
// }
if (this.fileList.length > 0) {
this.formData.attachmentList = this.fileList
}
// }
const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //1518151817X
// if (regCard.test(this.formData.idCard) === false) {
// this.btnDisable = false
// this.$message({
// type: 'warning',
// message: ''
// })
// return false;
// }
let url = ''
if (this.formType === 'add') {
url = '/gov/project/memoConcern/save'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/save"
this.formData.id = ''
url = '/epmetuser/icNat/add'
// url = "http://yapi.elinkservice.cn/mock/102/epmetuser/icNat/add"
this.formData.icNatId = ''
} else {
url = '/gov/project/memoConcern/update'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/update"
url = '/epmetuser/icNat/edit'
// url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/edit"
}
@ -415,8 +423,7 @@ export default {
this.resetData()
this.$emit('dialogOk')
this.btnDisable = false
this.$store.dispatch('setTipsList')
this.$store.dispatch('setTipsTime')
} else {
this.btnDisable = false
this.$message.error(msg)
@ -425,81 +432,85 @@ export default {
},
handleCancle () {
this.resetData()
this.$emit('dialogCancle')
},
handleRemove (file, fileList) {
this.hideUploadEdit = fileList.length >= this.limitNum;
this.formData.fileName = ''
this.formData.attachmentUrl = ''
this.formData.attachmentType = ''
this.fileList = []
},
handlePictureCardPreview (file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleEditChange (file, fileList) {
this.hideUploadEdit = fileList.length >= this.limitNum;
},
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'xls'
&& extension !== 'xlsx'
&& extension !== 'doc'
&& extension !== 'docx'
&& extension !== 'pdf') {
this.$message.error('只能上传word、excel、pdf文件!')
// const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'jpg'
&& extension !== 'png'
&& extension !== 'gif'
) {
this.$message.error('只能上传jpg、png、gif文件!')
return false
}
if (!isLt1M) {
this.$message.error('上传文件大小不能超过 5MB!')
}
// if (!isLt1M) {
// this.$message.error(' 5MB!')
// }
return isLt1M
},
handleFileRemove (file) {
if (file && file.status === "success") {
this.fileList.splice(this.fileList.findIndex(item => item.uid === file.uid), 1)
}
},
handleFileSuccess (res, file) {
if (res.code === 0 && res.msg === 'success') {
const array = file.name.split('.')
const fileType = array[array.length - 1]
file.fileName = file.name
file.attachmentUrl = res.data.url
file.attachmentSize = file.size
file.attachmentType = 'doc'
this.formData.fileName = file.name
this.formData.attachmentUrl = res.data.url
this.formData.attachmentType = 'image'
file.attachmentFormat = fileType
file.attachmentSize = file.size
this.fileList.push(file)
console.log(this.fileList)
} else this.$message.error(res.msg)
},
//
handleFileDownload (file) {
var a = document.createElement('a');
var event = new MouseEvent('click');
a.download = file.fileName;
console.log(a)
a.href = file.attachmentUrl;
a.dispatchEvent(event);
},
resetData () {
this.natId = ''
this.icNatId = ''
this.fileList = []
this.hideUploadEdit = false
this.formData = {
icNatId: '',
agencyId: '',//Id
userId: '',//idicResiUserId
userType: 'icresi',//resi;icresi;import;synchro
name: '',
idCard: '',
phone: '',
checkTime: '',
address: '',
result: '',
noticeWay: [],
noticeContent: '',
attachmentList: []
mobile: '',
natTime: '',
natAddress: '',
natResult: '',
channel: [],
content: '',
fileName: '',//
attachmentType: '',// - image - video - voice - doc
attachmentUrl: '',//
}
},
@ -528,26 +539,26 @@ export default {
idCard: [
{ required: true, message: '身份证号不能为空', trigger: 'blur' }
],
phone: [
mobile: [
{ required: true, message: '手机号不能为空', trigger: 'blur' },
],
checkTime: [
natTime: [
{ required: true, message: '检测时间不能为空', trigger: 'blur' },
],
address: [
natAddress: [
{ required: false },
],
result: [
natResult: [
{ required: true },
],
address: [
natAddress: [
{ required: false },
],
noticeWay: [
channel: [
{ required: false },
],
noticeContent: [
content: [
{ required: false },
],
@ -572,4 +583,16 @@ export default {
@import "@/assets/scss/modules/management/epidemic.scss";
</style>
<style lang='scss'>
//
.hide .el-upload--picture-card {
display: none;
}
// /
.el-upload-list__item {
transition: none !important;
}
</style>

283
src/views/modules/base/epidemic/natInfo/natList.vue

@ -6,10 +6,22 @@
ref="ref_searchform"
:label-width="'90px'">
<div>
<el-form-item label="信息范围">
<el-select class="list_item_width_1"
size="small"
v-model.trim="formData.orgType"
placeholder="请选择">
<el-option v-for="item in orgTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名"
prop="personInCharge">
<el-input v-model="formData.personInCharge"
prop="name">
<el-input v-model="formData.name"
size="small"
class="list_item_width_1"
clearable
@ -18,39 +30,52 @@
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="手机号"
prop="mobile">
<el-input v-model="formData.mobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入手机号">
</el-input>
</el-form-item>
<el-form-item label="接种时间"
prop="scheduledStartTime">
<el-date-picker v-model="timeRange"
size="small"
type="daterange"
value-format="yyyy-MM-dd"
@change="handleScheduledTimeChange"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
<el-form-item label="身份证"
prop="idCard">
<el-input v-model="formData.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
</el-input>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
<div>
<el-form-item label="接种时间"
prop="startTime">
<el-date-picker v-model="timeRange"
size="small"
type="datetimerange"
@change="handleTimeChange"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</div>
</el-form>
</div>
@ -97,11 +122,11 @@
type="index"
width="50"></el-table-column>
<el-table-column prop="personInCharge"
<el-table-column prop="name"
header-align="center"
align="center"
label="姓名"
width="90">
width="100">
</el-table-column>
<el-table-column prop="mobile"
header-align="center"
@ -109,31 +134,31 @@
label="手机号"
width="110">
</el-table-column>
<el-table-column prop="gridNames"
<el-table-column prop="idCard"
header-align="center"
align="center"
label="身份证"
min-width="170">
width="170">
</el-table-column>
<el-table-column prop="time"
<el-table-column prop="natTime"
header-align="center"
align="center"
label="检测时间"
width="120">
width="170">
</el-table-column>
<el-table-column prop="ninePlaceNames"
<el-table-column prop="natAddress"
header-align="center"
align="center"
show-overflow-tooltip
label="检测机构"
min-width="230">
</el-table-column>
<el-table-column prop="ninePlaceNames"
<el-table-column prop="natResultShow"
header-align="center"
align="center"
show-overflow-tooltip
label="检测结果"
min-width="80">
width="100">
</el-table-column>
<el-table-column label="操作"
@ -148,16 +173,49 @@
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
<el-button v-if="scope.row.userType==='resi'||scope.row.userType==='icresi'"
type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="scope.row.userType==='resi'||scope.row.userType==='icresi'"
type="text"
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row,'delete')">删除</el-button>
<el-button v-if="scope.row.userType==='import'&&scope.row.agencyId!==agencyId"
type="text"
class="div-table-button--edit"
size="small"
@click="handleAttention(scope.row)">关注</el-button>
<el-button v-if="scope.row.userType==='synchro'&&scope.row.agencyId===agencyId"
type="text"
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row,'attention')">取消关注</el-button>
<!-- <el-button type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
class="div-table-button--delete--noline "
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row)">删除</el-button>
@click="handleDelete(scope.row,'delete')">删除</el-button>
<el-button type="text"
class="div-table-button--edit"
size="small"
@click="handleAttention(scope.row)">关注</el-button>
<el-button type="text"
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row,'attention')">取消关注</el-button> -->
</template>
</el-table-column>
</el-table>
@ -183,7 +241,7 @@
class="dialog-h"
@closed="diaClose">
<nat-form ref="ref_form"
@dialogCancle="addFormCancle"
@dialogCancle="diaClose"
@dialogOk="addFormOk"></nat-form>
</el-dialog>
@ -204,19 +262,31 @@ export default {
return {
loading: false,
total: 0,
pageSize: 10,
pageSize: 20,
pageNo: 0,
tableLoading: false,
agencyId: '',
orgTypeList: [
{
value: 'current',
label: '本辖区居民检测记录'
},
{
value: 'all',
label: '全部检测记录'
},
],
timeRange: [],
formData: {
personInCharge: '',//
mobile: '',//
gridId: '',//Id
ninePlaceVal: '',//Value
isPage: true,//(:true :false)
orgType: 'current',//:current all
name: '',//
mobile: '',//
idCard: '',//
startTime: '',//yyyy-MM-dd HH:mm
endTime: '',//yyyy-MM-dd HH:mm
},
tableData: [],
@ -249,14 +319,11 @@ export default {
this.loadTable()
},
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/icNat/natlist"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
@ -270,10 +337,7 @@ export default {
this.tableData = data.list
this.tableData.forEach(item => {
if (item.time) {
let timeArray = item.time.split(' ')
item.time = timeArray[0]
}
item.natResultShow = item.natResult === '1' ? '阳性' : '阴性'
});
} else {
@ -282,14 +346,14 @@ export default {
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 +362,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 +377,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,22 +385,20 @@ 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()
},
async handleDelete (row) {
async handleDelete (row, type) {
let message = type === 'delete' ? '确认删除?' : '确认取消关注?'
this.$confirm("确认删除?", "提示", {
this.$confirm(message, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
@ -343,6 +406,43 @@ 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 handleAttention (row) {
this.$confirm("确认同步该条信息?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.attentionNat(row)
})
.catch(err => {
if (err == "cancel") {
@ -351,12 +451,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/icNat/synchro"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/synchro"
let params = {
natId: row.natId
icNatId: row.icNatId
}
const { data, code, msg } = await requestPost(url, params)
@ -364,7 +464,7 @@ export default {
if (code === 0) {
this.$message({
type: "success",
message: "删除成功"
message: "操作成功"
});
this.loadTable()
@ -373,18 +473,21 @@ export default {
}
},
//
resetSearch () {
this.formData = {
personInCharge: '',//
mobile: '',//
gridId: '',//Id
ninePlaceVal: '',//Value
isPage: true,//(:true :false)
orgType: '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()
},
@ -400,19 +503,13 @@ 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/icNat/export"
app.ajax.exportFilePost(
url,
params,
this.formData,
(data, rspMsg) => {
this.download(data, title + '.xls')
@ -451,10 +548,9 @@ export default {
},
handleExportModule () {
let title = ''
title = '房屋模板'
let title = '核酸检测信息导入模板'
const url = "/gov/org/house/exporttemplate"
const url = "/epmetuser/icNat/import-template-download"
let params = {}
app.ajax.exportFilePost(
@ -506,12 +602,11 @@ export default {
//
this.$refs['upload'].clearFiles()
var url = '/gov/org/house/houseimport'
var url = '/epmetuser/icNat/import'
let fileFormData = new FormData();
fileFormData.append('file', this.files);//filenamefiletest.zip
fileFormData.append('orgId', this.agencyObj.id);//filenamefiletest.zip
fileFormData.append('orgType', this.agencyObj.level);//filenamefiletest.zip
this.importRoomLoading = true
window.app.ajax.post2(url, fileFormData,
@ -559,7 +654,7 @@ export default {
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 360 + this.iframeHeight : this.clientHeight - 360
return this.$store.state.inIframe ? this.clientHeight - 420 + this.iframeHeight : this.clientHeight - 420
},

105
src/views/modules/base/epidemic/veroFocus/veroFocusList.vue

@ -18,8 +18,8 @@
</el-form-item>
<el-form-item label="手机号"
prop="phone">
<el-input v-model="formData.phone"
prop="mobile">
<el-input v-model="formData.mobile"
size="small"
class="list_item_width_1"
clearable
@ -40,9 +40,9 @@
</el-form-item>
<el-form-item label="接种针次"
prop="veroNum">
prop="vaccinationCount">
<el-select class="list_item_width_1"
v-model.trim="formData.veroNum"
v-model.trim="formData.vaccinationCount"
placeholder="请选择"
clearable>
<el-option v-for="item in veroNumList"
@ -98,6 +98,10 @@
class="diy-button--more"
size="small"
@click="handleSendNotice">发送通知</el-button>
<el-button style="margin-left:15px"
class="diy-button--more"
size="small"
@click="handleDelete">取消关注</el-button>
</div>
<el-table ref="ref_table"
@ -119,7 +123,7 @@
type="index"
width="50"></el-table-column>
<el-table-column prop="personInCharge"
<el-table-column prop="name"
header-align="center"
align="center"
label="姓名"
@ -131,31 +135,31 @@
label="手机号"
width="110">
</el-table-column>
<el-table-column prop="gridNames"
<el-table-column prop="idCard"
header-align="center"
align="center"
label="身份证"
min-width="170">
</el-table-column>
<el-table-column prop="time"
<el-table-column prop="vaccinationCount"
header-align="center"
align="center"
label="检测时间"
width="120">
label="接种针次"
width="100">
</el-table-column>
<el-table-column prop="ninePlaceNames"
<el-table-column prop="remark"
header-align="center"
align="center"
show-overflow-tooltip
label="检测机构"
label="备注"
min-width="230">
</el-table-column>
<el-table-column prop="ninePlaceNames"
<el-table-column prop="lastInformTime"
header-align="center"
align="center"
show-overflow-tooltip
label="检测结果"
min-width="80">
label="最后一次通知时间"
min-width="120">
</el-table-column>
<el-table-column label="操作"
@ -184,20 +188,14 @@
<el-button type="text"
class="div-table-button--detail--noline"
size="small"
@click="handleDelete(scope.row)">通知记录</el-button>
@click="handleNoticeList(scope.row)">通知记录</el-button>
</div>
<div class="more-btn">
<el-button type="text"
class="div-table-button--detail--noline"
size="small"
@click="handleDelete(scope.row) ">随访记录</el-button>
</div>
<div class="more-btn">
<el-button type="text"
class="div-table-button--delete--noline "
size="small"
@click="handleDelete(scope.row)">取消关注</el-button>
@click="handleVisiteList(scope.row) ">随访记录</el-button>
</div>
<el-button type="text"
@ -258,8 +256,7 @@
class="dialog-h"
@closed="diaClose">
<vf-send-notice ref="ref_sendnotice"
@dialogCancle="diaClose"
@dialogOk="addFormOk"></vf-send-notice>
@dialogCancle="diaClose"></vf-send-notice>
</el-dialog>
<!-- 随访记录弹出框 -->
<el-dialog :visible.sync="noticeListFormShow"
@ -271,8 +268,7 @@
class="dialog-h"
@closed="diaClose">
<vf-notice-list ref="ref_visitelist"
@dialogCancle="diaClose"
@dialogOk="addFormOk"></vf-notice-list>
@dialogCancle="diaClose"></vf-notice-list>
</el-dialog>
<!-- 通知记录弹出框 -->
<el-dialog :visible.sync="visiteListFormShow"
@ -308,21 +304,20 @@ export default {
return {
loading: false,
total: 0,
pageSize: 10,
pageSize: 20,
pageNo: 0,
tableLoading: false,
selAllFlag: false,
isIndeterminate: false,//
selection: [],
showDeletBtn: false,
agencyId: '',
formData: {
attentionType: 1,//21
name: '',
phone: '',
mobile: '',
idCard: '',
veroNum: '',
vaccinationCount: '',
},
veroNumList: [],
@ -365,8 +360,8 @@ export default {
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/icEpidemicSpecialAttention/list"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icEpidemicSpecialAttention/list"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
@ -463,14 +458,15 @@ export default {
},
diaClose () {
this.addFormShow = false
this.editFormShow = false
this.sendNoticeFormShow = false
this.noticeListFormShow = false
this.visiteListFormShow = false
this.formShow = false
},
handleAdd () {
this.addFormShow = true
this.$nextTick(() => {
this.$refs.ref_form_add.initForm(null, this.agencyId)
@ -478,7 +474,6 @@ export default {
},
handleEdit (row) {
this.editFormShow = true
this.$nextTick(() => {
this.$refs.ref_form_edit.initForm('edit', row.veroFocusId)
@ -492,7 +487,6 @@ export default {
})
},
handleSendNotice () {
if (this.selectionAll.length === 0) {
this.$message.info('请选择要通知的人员')
@ -505,9 +499,26 @@ export default {
},
handleNoticeList (row) {
this.noticeListFormShow = true
this.$nextTick(() => {
this.$refs.ref_visitelist.initForm(row)
})
},
handleVisiteList (row) {
this.visiteListFormShow = true
this.$nextTick(() => {
this.$refs.ref_noticelist.initForm(row)
})
},
addFormOk () {
this.formShow = false
this.addFormShow = false
this.editFormShow = false
this.loadTable()
},
@ -555,13 +566,13 @@ export default {
//
resetSearch () {
this.formData = {
personInCharge: '',//
mobile: '',//
gridId: '',//Id
ninePlaceVal: '',//Value
isPage: true,//(:true :false)
attentionType: 1,//21
name: '',
mobile: '',
idCard: '',
vaccinationCount: '',
}
this.pageSize = 10
this.pageNo = 0
this.loadTable()
},

35
src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue

@ -75,6 +75,7 @@ export default {
noticeContent: '',
},
selectionAll: []
@ -88,13 +89,11 @@ export default {
methods: {
async initForm () {
this.startLoading()
this.$refs['ref_form1'].resetFields();
async initForm (selectionAll) {
this.$refs['ref_form1'].resetFields();
this.selectionAll = selectionAll
this.endLoading()
},
@ -112,27 +111,10 @@ export default {
console.log(this.formData)
return false
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
// if (regPhone.test(this.formData.mobile) === false) {
// this.btnDisable = false
// this.$message({
// type: 'warning',
// message: ''
// })
// return false;
// }
let url = ''
if (this.formType === 'add') {
url = '/gov/project/memoConcern/save'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/save"
this.formData.id = ''
} else {
url = '/gov/project/memoConcern/update'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/update"
}
url = '/gov/project/memoConcern/update'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/update"
const { data, code, msg } = await requestPost(url, this.formData)
@ -143,10 +125,9 @@ export default {
message: '操作成功'
})
this.resetData()
this.$emit('dialogOk')
this.$emit('dialogCancle')
this.btnDisable = false
this.$store.dispatch('setTipsList')
this.$store.dispatch('setTipsTime')
} else {
this.btnDisable = false
this.$message.error(msg)

Loading…
Cancel
Save