Browse Source

111

feature
jiangyy 3 years ago
parent
commit
d133bd5457
  1. 338
      src/views/modules/base/epidemic/unitEpid/crowdEpidList.vue
  2. 173
      src/views/modules/base/epidemic/unitEpid/staffEpidDetail.vue
  3. 155
      src/views/modules/base/epidemic/unitEpid/staffEpidList.vue

338
src/views/modules/base/epidemic/unitEpid/crowdEpidList.vue

@ -0,0 +1,338 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'110px'">
<div>
<el-form-item label="核酸检测时间"
label-width="110px"
prop="natStartDate">
<el-date-picker v-model="timeRange"
size="small"
type="daterange"
@change="handleTimeChange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="场所名称"
prop="placeOrgName">
<el-input v-model="formData.placeOrgName"
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>
</div>
<div class="div_table">
<el-table class="table"
ref="ref_table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="placeOrgName"
header-align="center"
align="center"
label="场所名称"
min-width="200">
</el-table-column>
<el-table-column prop="natTime"
header-align="center"
align="center"
label="检测时间"
width="200">
</el-table-column>
<el-table-column prop="szTotal"
header-align="center"
align="center"
label="受众人数"
min-width="150">
</el-table-column>
<el-table-column prop="hsjcTotal"
header-align="center"
align="center"
show-overflow-tooltip
label="核酸检测人数"
min-width="150">
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="160"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.agencyId===agencyId "
type="text"
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
agencyId: '',
timeRange: [],
formData: {
placeOrgName: '',//10
natStartDate: '',//eg2022-02-02
natEndDate: '',//eg2022-02-02
},
tableData: [],
//form
detailShow: false,
formTitle: '新增',
// btnAuths: {
// group_people_reg_del : false, //
// },
}
},
components: {
},
async created () {
},
async mounted () {
// this.updateBtnAuths();
const { user } = this.$store.state
this.agencyId = user.agencyId
await this.loadTable()
},
activated () {
this.$refs['ref_table'].doLayout()
},
methods: {
async handleSearch () {
await this.loadTable()
this.$nextTick(() => {
this.$refs.ref_table.doLayout() //
})
},
async loadTable () {
this.tableLoading = true
const url = "/gov/org/icGroupPeopleRegister/list"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
this.tableData.forEach(item => {
});
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
handleTimeChange (time) {
if (time) {
this.formData.natStartDate = time[0]
this.formData.natEndDate = time[1]
} else {
this.formData.natStartDate = ''
this.formData.natEndDate = ''
}
},
diaDetailClose () {
this.detailShow = false
},
async handleDelete (row) {
let message = '确认删除?'
this.$confirm(message, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteStaff(row)
})
.catch(err => {
});
},
async deleteStaff (row) {
const url = "/gov/org/icGroupPeopleRegister/delete"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/del"
let params = [...row.id]
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message({
type: "success",
message: "操作成功"
});
this.loadTable()
} else {
this.$message.error(msg)
}
},
//
resetSearch () {
this.formData = {
placeOrgName: '',//10
natStartDate: '',//eg2022-02-02
natEndDate: '',//eg2022-02-02
}
this.timeRange = []
this.pageNo = 0
// this.loadTable()
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 420 + this.iframeHeight : this.clientHeight - 420
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
</style>

173
src/views/modules/base/epidemic/unitEpid/staffEpidDetail.vue

@ -3,53 +3,66 @@
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<div v-if="initLoading" <div v-if="initLoading"
class="m-row"> class="m-row">
<div class="m-info"> <div class="div_table">
<div class="info-prop">
<span class="info-title-2">姓名</span> <el-table class="table"
<span>{{ formData.name||'--' }}</span> ref="ref_table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="name"
header-align="center"
align="center"
label="姓名"
min-width="100">
</el-table-column>
<el-table-column prop="mobile"
header-align="center"
align="center"
label="手机号"
min-width="110">
</el-table-column>
<el-table-column prop="idCard"
header-align="center"
align="center"
label="身份证号"
min-width="170">
</el-table-column>
<el-table-column prop="ymjzCount"
header-align="center"
align="center"
label="疫苗接种次数"
width="150">
</el-table-column>
<el-table-column prop="latestNatTime"
header-align="center"
align="center"
show-overflow-tooltip
label="最后一次核酸检测时间"
min-width="230">
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div> </div>
<div class="info-prop">
<span class="info-title-2">手机号</span>
<span>{{ formData.mobile||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">证件号</span>
<span>{{ formData.idCard||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">采样时间</span>
<span>{{ formData.sampleTime||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">检测时间</span>
<span>{{ formData.natTime||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">检测地点</span>
<span>{{ formData.natAddress||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">检测结果</span>
<span>{{ formData.natResult==='0'?'阴性':'阳性' }}</span>
</div>
<div class="info-prop"
v-if="fileList.length>0">
<span class="info-title-2">照片</span>
<div class="info-pics">
<img v-for="(item,index) in fileList"
style="width:80px;height:80px"
:key="index"
:src="item.url"
@click="watchImg(item)">
</div>
</div>
</div> </div>
</div> </div>
@ -72,7 +85,7 @@
import { Loading } from 'element-ui' // Loading import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request' import { requestPost } from '@/js/dai/request'
import { dateFormats } from '@/utils/index' import { mapGetters } from 'vuex'
let loading // let loading //
@ -80,11 +93,13 @@ export default {
data () { data () {
return { return {
initLoading: false, initLoading: false,
loading: false,
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
icNatId: '', registerId: '',
formData: {},
fileList: [],
} }
@ -99,56 +114,43 @@ export default {
methods: { methods: {
async initForm (icNatId) { async initForm (registerId) {
this.startLoading() this.startLoading()
this.formData.agencyId = this.agencyId this.registerId = registerId
await this.loadTable()
this.icNatId = icNatId
this.formData.icNatId = icNatId
await this.loadFormData()
this.initLoading = true this.initLoading = true
this.endLoading() this.endLoading()
}, },
async loadFormData () { async loadTable () {
this.tableLoading = true
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/detail' const url = "/gov/org/icEmployeeRegister/list"
const url = '/epmetuser/icNat/detail' // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = { let params = {
icNatId: this.icNatId, pageSize: this.pageSize,
pageNo: this.pageNo,
registerId: this.registerId
} }
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.formData = data
console.log(this.formData.isSelChannel) const { data, code, msg } = await requestPost(url, params)
this.formData.icNatId = this.icNatId if (code === 0) {
this.total = data.total
this.tableData = data.list
this.fileList = [] this.tableData.forEach(item => {
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 { } else {
this.$message.error(msg) this.$message.error(msg)
} }
this.tableLoading = false
}, },
handleCancle () { handleCancle () {
// this.resetData() // this.resetData()
@ -156,9 +158,6 @@ export default {
}, },
watchImg (src) {
window.open(src);
},
resetData () { resetData () {
@ -181,7 +180,13 @@ export default {
} }
}, },
computed: { computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 420 + this.iframeHeight : this.clientHeight - 420
},
...mapGetters(['clientHeight', 'iframeHeight'])
}, },
props: { props: {

155
src/views/modules/base/epidemic/unitEpid/staffEpidList.vue

@ -11,10 +11,10 @@
prop="natStartDate"> prop="natStartDate">
<el-date-picker v-model="timeRange" <el-date-picker v-model="timeRange"
size="small" size="small"
type="datetimerange" type="daterange"
@change="handleTimeChange" @change="handleTimeChange"
format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始时间" start-placeholder="开始时间"
end-placeholder="结束时间"> end-placeholder="结束时间">
@ -121,11 +121,11 @@
type="index" type="index"
width="50"></el-table-column> width="50"></el-table-column>
<el-table-column prop="name" <el-table-column prop="placeOrgName"
header-align="center" header-align="center"
align="center" align="center"
label="场所名称" label="场所名称"
min-width="100"> min-width="120">
</el-table-column> </el-table-column>
<el-table-column prop="name" <el-table-column prop="name"
header-align="center" header-align="center"
@ -145,14 +145,14 @@
label="证件号" label="证件号"
min-width="170"> min-width="170">
</el-table-column> </el-table-column>
<el-table-column prop="sampleTime" <el-table-column prop="ymjzCount"
header-align="center" header-align="center"
align="center" align="center"
label="疫苗接种次数" label="疫苗接种次数"
width="150"> width="150">
</el-table-column> </el-table-column>
<el-table-column prop="natAddress" <el-table-column prop="latestNatTime"
header-align="center" header-align="center"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
@ -173,7 +173,7 @@
size="small" size="small"
@click="handleDetail(scope.row)">查看</el-button> @click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="scope.row.agencyId===agencyId && btnAuths.epidemic_prevention_view" <el-button v-if="scope.row.agencyId===agencyId "
type="text" type="text"
class="div-table-button--delete " class="div-table-button--delete "
size="small" size="small"
@ -269,9 +269,8 @@ export default {
tableData: [], tableData: [],
//form //form
formShow: false,
detailShow: false, detailShow: false,
formTitle: '新增',
// btnAuths: { // btnAuths: {
// employee_register_del : false, // // employee_register_del : false, //
@ -315,7 +314,7 @@ export default {
async loadTable () { async loadTable () {
this.tableLoading = true this.tableLoading = true
const url = "/epmetuser/icNat/natlist" const url = "/gov/org/icEmployeeRegister/list"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist" // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = { let params = {
pageSize: this.pageSize, pageSize: this.pageSize,
@ -331,15 +330,6 @@ export default {
this.tableData.forEach(item => { this.tableData.forEach(item => {
item.isResiUserShow = item.isLocalResiUser === '0' ? '否' : '是'
if (item.natResult === '1') {
item.natResultShow = '阳性'
} else if (item.natResult === '0') {
item.natResultShow = '阴性'
} else {
item.natResultShow = ''
}
}); });
@ -362,25 +352,20 @@ export default {
}, },
diaClose () { async handleDetail (row) {
this.$refs.ref_form.resetData()
this.formShow = false
this.detailShow = true
this.$nextTick(() => {
this.$refs.ref_detail.initForm(row.registerId)
})
}, },
diaDetailClose () { diaDetailClose () {
this.detailShow = false this.detailShow = false
}, },
addFormOk () {
this.formShow = false
this.loadTable()
},
async handleDelete (row) { async handleDelete (row) {
let message = '确认删除?' let message = '确认删除?'
@ -390,57 +375,18 @@ export default {
type: "warning" type: "warning"
}) })
.then(() => { .then(() => {
this.deleteNat(row) this.deleteStaff(row)
}) })
.catch(err => { .catch(err => {
}); });
}, },
async deleteNat (row) { async deleteStaff (row) {
const url = "/epmetuser/icNat/del" const url = "/gov/org/icEmployeeRegister/delete"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/del" // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/del"
let params = { let params = [...row.registerId]
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/icNat/cancelsynchro"
let params = {
icNatId: row.icNatId
}
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -456,47 +402,6 @@ export default {
} }
}, },
async handleAttention (row) {
this.$confirm("确认将信息同步到本辖区核酸检测信息中心?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.attentionNat(row)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async attentionNat (row) {
const url = "/epmetuser/icNat/synchro"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/synchro"
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)
}
},
// //
resetSearch () { resetSearch () {
this.formData = { this.formData = {
@ -526,26 +431,6 @@ export default {
this.loadTable() this.loadTable()
}, },
//
async handleExport () {
let title = '核酸检测信息'
const url = "/epmetuser/icNat/export"
app.ajax.exportFilePost(
url,
this.formData,
(data, rspMsg) => {
this.download(data, title + '.xlsx')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
// //
startLoading () { startLoading () {
loading = Loading.service({ loading = Loading.service({

Loading…
Cancel
Save