Browse Source

111

dev-用户反馈
jiangyy 3 years ago
parent
commit
4858a51f75
  1. 489
      src/views/modules/base/epidemic/unitEpid/staffEpidList.vue

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

@ -6,142 +6,106 @@
ref="ref_searchform" ref="ref_searchform"
:label-width="'110px'"> :label-width="'110px'">
<div> <div>
<el-form-item label="信息范围"> <el-form-item label="核酸检测时间"
label-width="110px"
prop="natStartDate">
<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-form-item label="检测状态">
<el-select class="list_item_width_1" <el-select class="list_item_width_1"
size="small" size="small"
v-model.trim="formData.orgType" v-model.trim="formData.checkStatus"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in orgTypeList" <el-option v-for="item in statusList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </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 label="本辖区居民"> </el-form-item>
<el-select class="list_item_width_1"
<el-form-item label="场所类型"
prop="placeCategory">
<el-select class="item_width_1"
size="small" size="small"
v-model.trim="formData.isResiUser" v-model="formData.placeCategory"
placeholder="请选择"> placeholder="请选择"
<el-option v-for="item in isResiUserList" clearable>
<el-option v-for="item in placeCategoryList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="采样时间"
label-width="110px" <el-form-item label="姓名"
prop="sampleStartTime"> prop="name">
<el-date-picker v-model="sampleTimeRange" <el-input v-model="formData.name"
size="small" size="small"
type="datetimerange" class="list_item_width_1"
@change="handleSampleTimeChange" clearable
format="yyyy-MM-dd HH:mm" placeholder="请输入姓名">
value-format="yyyy-MM-dd HH:mm" </el-input>
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="核酸检测时间"
label-width="110px" <el-form-item label="手机号"
prop="startTime"> prop="mobile">
<el-date-picker v-model="timeRange" <el-input v-model="formData.mobile"
size="small" size="small"
type="datetimerange" class="list_item_width_1"
@change="handleTimeChange" clearable
format="yyyy-MM-dd HH:mm" placeholder="请输入手机号">
value-format="yyyy-MM-dd HH:mm" </el-input>
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="证件号"
prop="idCard">
<el-input v-model="formData.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证号或护照号">
</el-input>
<div> </el-form-item>
<el-form-item label="姓名"
prop="name"> <el-button style="margin-left:30px"
<el-input v-model="formData.name" size="small"
size="small" class="diy-button--search"
class="list_item_width_1" @click="handleSearch">查询</el-button>
clearable <el-button style="margin-left:10px"
placeholder="请输入姓名"> size="small"
</el-input> class="diy-button--reset"
@click="resetSearch">重置</el-button>
</el-form-item>
<el-form-item label="手机号"
prop="mobile">
<el-input v-model="formData.mobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机号">
</el-input>
</el-form-item>
<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>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="div_table"> <div class="div_table">
<div class="div_btn">
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
<el-button style="float:left"
class="diy-button--export"
size="small"
@click="handleExportModule">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()"
ref="upload"
:multiple='false'
:show-file-list='false'
:before-upload="beforeUpload"
action=""
accept=".xlsx"
:limit="1"
:on-exceed="handleExceed"
:http-request="uploadFile">
<el-button style="margin-left:10px"
size="small"
class="diy-button--delete">导入</el-button>
</el-upload>
<el-button style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
<el-button style="float:left;margin-left:10px"
class="diy-button--export"
size="small"
@click="handleTiming()">定时</el-button>
</div>
<el-table class="table" <el-table class="table"
ref="ref_table" ref="ref_table"
@ -157,6 +121,12 @@
type="index" type="index"
width="50"></el-table-column> 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="name" <el-table-column prop="name"
header-align="center" header-align="center"
align="center" align="center"
@ -178,40 +148,18 @@
<el-table-column prop="sampleTime" <el-table-column prop="sampleTime"
header-align="center" header-align="center"
align="center" align="center"
label="采样时间" label="疫苗接种次数"
width="150">
</el-table-column>
<el-table-column prop="natTime"
header-align="center"
align="center"
label="检测时间"
width="150"> width="150">
</el-table-column> </el-table-column>
<el-table-column prop="natAddress" <el-table-column prop="natAddress"
header-align="center" header-align="center"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
label="检测地点" label="最后一次核酸检测时间"
min-width="230"> min-width="230">
</el-table-column> </el-table-column>
<el-table-column prop="natResultShow"
header-align="center"
align="center"
show-overflow-tooltip
label="检测结果"
width="100">
</el-table-column>
<el-table-column v-if="isResiUser"
prop="isResiUserShow"
header-align="center"
align="center"
show-overflow-tooltip
label="本辖区居民"
width="120">
</el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
fixed="right" fixed="right"
width="160" width="160"
@ -225,30 +173,12 @@
size="small" size="small"
@click="handleDetail(scope.row)">查看</el-button> @click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="!isResiUser" <el-button v-if="scope.row.agencyId===agencyId"
type="text"
class="div-table-button--edit"
size="small"
@click="handleAttention(scope.row)">同步</el-button>
<el-button v-if="isResiUser&&(scope.row.userType==='resi'||scope.row.userType==='icresi') &&scope.row.agencyId===agencyId"
type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="isResiUser&&(scope.row.userType==='resi'||scope.row.userType==='icresi') &&scope.row.agencyId===agencyId"
type="text" type="text"
class="div-table-button--delete " class="div-table-button--delete "
size="small" size="small"
@click="handleDelete(scope.row)">删除</el-button> @click="handleDelete(scope.row)">删除</el-button>
<el-button v-if="isResiUser&&scope.row.userType==='synchro'&&scope.row.agencyId===agencyId"
type="text"
class="div-table-button--delete "
size="small"
@click="handleCancelAttention(scope.row)">取消同步</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -298,42 +228,41 @@ export default {
pageSize: 20, pageSize: 20,
pageNo: 0, pageNo: 0,
tableLoading: false, tableLoading: false,
isResiUser: true,
agencyId: '', agencyId: '',
orgTypeList: [ placeCategoryList: [
{
value: 'current',
label: '本辖区居民检测记录'
},
{
value: 'all',
label: '全部检测记录'
},
],
isResiUserList: [
{ {
value: '0', value: '0',
label: '' label: '九小场所'
}, },
{ {
value: '1', value: '1',
label: '是' label: '企事业单位'
}
],//list
statusList: [
{
value: '1',
label: '已检测'
}, },
{
value: '0',
label: '未检测'
}
], ],
timeRange: [], timeRange: [],
sampleTimeRange: [],
formData: { formData: {
orgType: 'current',//:current all checkStatus: '',//10
name: '',// name: '',//
mobile: '',// mobile: '',//
idCard: '',// idCard: '',//
startTime: '',//yyyy-MM-dd HH:mm natStartDate: '',//eg2022-02-02
endTime: '',//yyyy-MM-dd HH:mm natEndDate: '',//eg2022-02-02
sampleStartTime: '',//yyyy-MM-dd HH:mm placeOrgName: '',//
sampleEndTime: '',//yyyy-MM-dd HH:mm placeCategory: '',//01
isResiUser: ''//0: 1:
}, },
@ -353,8 +282,6 @@ export default {
}, },
async mounted () { async mounted () {
//
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
@ -370,7 +297,6 @@ export default {
methods: { methods: {
async handleSearch () { async handleSearch () {
this.isResiUser = this.formData.orgType === 'current'
await this.loadTable() await this.loadTable()
@ -411,8 +337,6 @@ export default {
}); });
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -421,24 +345,12 @@ export default {
handleTimeChange (time) { handleTimeChange (time) {
if (time) { if (time) {
this.formData.startTime = time[0] this.formData.natStartDate = time[0]
this.formData.endTime = time[1] this.formData.natEndDate = time[1]
} else { } else {
this.formData.startTime = '' this.formData.natStartDate = ''
this.formData.endTime = '' this.formData.natEndDate = ''
}
},
handleSampleTimeChange (time) {
if (time) {
this.formData.sampleStartTime = time[0]
this.formData.sampleEndTime = time[1]
} else {
this.formData.sampleStartTime = ''
this.formData.sampleEndTime = ''
} }
@ -455,29 +367,7 @@ export default {
}, },
handleDetail (row) {
this.formTitle = '详情'
this.detailShow = true
this.$nextTick(() => {
this.$refs.ref_detail.initForm(row.icNatId)
})
},
handleAdd () {
this.formTitle = '新增'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('add', null)
})
},
handleEdit (row) {
this.formTitle = '修改'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('edit', row.icNatId)
})
},
addFormOk () { addFormOk () {
this.formShow = false this.formShow = false
@ -560,47 +450,6 @@ export default {
} }
}, },
async handleTiming (row) {
this.$confirm("确认执行定时任务?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.timingNat(row)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async timingNat (row) {
const url = "/epmetuser/dataSyncConfig/natInfoScanTask"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/synchro"
let params = {
isSync: '1',
dataCode: 'hesuan',
agencyId: this.agencyId
}
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) { async handleAttention (row) {
this.$confirm("确认将信息同步到本辖区核酸检测信息中心?", "提示", { this.$confirm("确认将信息同步到本辖区核酸检测信息中心?", "提示", {
@ -645,17 +494,17 @@ export default {
// //
resetSearch () { resetSearch () {
this.formData = { this.formData = {
orgType: 'current',//:current all checkStatus: '',//10
name: '',// name: '',//
mobile: '',// mobile: '',//
idCard: '',// idCard: '',//
startTime: '',//yyyy-MM-dd HH:mm natStartDate: '',//eg2022-02-02
endTime: '',//yyyy-MM-dd HH:mm natEndDate: '',//eg2022-02-02
sampleStartTime: '',//yyyy-MM-dd HH:mm placeOrgName: '',//
sampleEndTime: '',//yyyy-MM-dd HH:mm placeCategory: '',//01
} }
this.timeRange = [] this.timeRange = []
this.sampleTimeRange = []
this.pageNo = 0 this.pageNo = 0
// this.loadTable() // this.loadTable()
@ -690,116 +539,6 @@ export default {
}, },
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
handleExportModule () {
let title = '核酸检测信息导入模板'
const url = "/epmetuser/icNat/import-template-download"
let params = {}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xlsx')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
beforeUpload (file) {
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
}
},
//
handleExceed (files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`)
},
async uploadFile () {
if (this.fileName == "") {
this.$message.warning('请选择要上传的文件!')
return false
}
this.$message({
showClose: true,
message: '导入中,请到系统管理-导入记录中查看进度',
duration: 0
})
//
this.$refs['upload'].clearFiles()
var url = '/epmetuser/icNat/import'
let fileFormData = new FormData();
fileFormData.append('file', this.files);//filenamefiletest.zip
window.app.ajax.post2(url, fileFormData,
(data, rspMsg) => {
if (data.code === 0 && data.msg == 'success') {
// this.$message.success('')
} else {
// this.$message({
// showClose: true,
// message: rspMsg,
// duration: 0,
// type: "error"
// })
// this.$message.error(rspMsg)
}
// this.loadTable()
},
(rspMsg, data) => {
}, { headers: { 'Content-Type': 'multipart/form-data' } })
},
// //
startLoading () { startLoading () {

Loading…
Cancel
Save