Browse Source

Merge branch 'dev-fangyi' into test

shibei_master
jiangyy 3 years ago
parent
commit
9ebd4a50cd
  1. 8
      src/assets/scss/modules/management/epidemic.scss
  2. 32
      src/views/modules/base/epidemic/natInfo/natForm.vue
  3. 37
      src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue
  4. 57
      src/views/modules/base/epidemic/veroFocus/veroFocusEdit.vue
  5. 22
      src/views/modules/base/epidemic/veroFocus/veroFocusList.vue
  6. 380
      src/views/modules/base/epidemic/veroFocus/vfNoticeList.vue
  7. 474
      src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue

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

@ -101,3 +101,11 @@
.div-mult-table {
padding: 0 20px;
}
.div_dialog_table {
padding: 10px;
.table {
margin-top: 20px;
}
}

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

@ -386,23 +386,23 @@ export default {
}, 5000)
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;
// }
if (regPhone.test(this.formData.mobile) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的手机号码'
})
return false;
}
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;
// }
if (regCard.test(this.formData.idCard) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的身份证号码'
})
return false;
}
let url = ''
if (this.formType === 'add') {

37
src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue

@ -506,14 +506,23 @@ export default {
list.push(this.formData1)
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;
// }
if (regPhone.test(this.formData1.mobile) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的手机号码'
})
return false;
}
const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //1518151817X
if (regCard.test(this.formData1.idCard) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的身份证号码'
})
return false;
}
} else {
if (this.selectionAll.length === 0) {
this.$message.info('请选择批量添加的人员')
@ -534,17 +543,10 @@ export default {
}
console.log(list)
return false
let url = ''
url = '/epmetuser/icEpidemicSpecialAttention/vaccination-add'
let url = '/epmetuser/icEpidemicSpecialAttention/vaccination-add'
// url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoConcern/save"
this.formData.id = ''
const { data, code, msg } = await requestPost(url, this.formData)
@ -556,8 +558,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)

57
src/views/modules/base/epidemic/veroFocus/veroFocusEdit.vue

@ -5,7 +5,6 @@
<el-form ref="ref_form1"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType==='detail'"
class="form">
@ -13,11 +12,13 @@
prop="name"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<span>{{formData.name}}</span>
<!-- <el-input class="item_width_2"
placeholder="请输入姓名"
clearable
v-model="formData.name">
</el-input>
</el-input> -->
</el-form-item>
@ -25,21 +26,23 @@
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<span>{{formData.mobile}}</span>
<!-- <el-input class="item_width_2"
placeholder="请输入手机号"
clearable
v-model="formData.mobile">
</el-input>
</el-input> -->
</el-form-item>
<el-form-item label="身份证号"
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<span>{{formData.idCard}}</span>
<!-- <el-input class="item_width_2"
placeholder="请输入身份证号"
clearable
v-model="formData.idCard">
</el-input>
</el-input> -->
</el-form-item>
<el-form-item label="备注"
prop="remark"
@ -47,6 +50,7 @@
style="display: block">
<el-input class="item_width_1"
type="textarea"
:disabled="formType==='detail'"
maxlength="500"
show-word-limit
:autosize="{ minRows: 2, maxRows: 5 }"
@ -54,7 +58,7 @@
placeholder="请输入通知备注"
v-model="formData.remark"></el-input>
</el-form-item>
<div v-if=" formType!=='detail'">
<el-form-item label="通知渠道"
prop="channel"
label-width="150px"
@ -81,7 +85,7 @@
placeholder="请输入通知内容"
v-model="formData.content"></el-input>
</el-form-item>
</div>
</el-form>
</div>
@ -139,8 +143,10 @@ export default {
async initForm (formType, row) {
this.formType = formType
this.$refs['ref_form1'].resetFields();
row.channel = []
row.content = ''
this.formData = JSON.parse(JSON.stringify(row))
},
async handleComfirm () {
@ -155,22 +161,9 @@ export default {
},
async addVero () {
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 = ''
// url = '/epmetuser/icEpidemicSpecialAttention/vaccination-update'
url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icEpidemicSpecialAttention/vaccination-update"
let url = '/epmetuser/icEpidemicSpecialAttention/vaccination-update'
// url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icEpidemicSpecialAttention/vaccination-update"
const { data, code, msg } = await requestPost(url, this.formData)
@ -258,19 +251,9 @@ export default {
mobile: [
{ required: true, message: '手机号不能为空', trigger: 'blur' },
],
checkTime: [
{ required: true, message: '检测时间不能为空', trigger: 'blur' },
],
address: [
{ required: false },
],
result: [
{ required: true },
],
address: [
{ required: false },
],
channel: [
{ required: false },
],

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

@ -257,29 +257,29 @@
<vf-send-notice ref="ref_sendnotice"
@dialogCancle="diaClose"></vf-send-notice>
</el-dialog>
<!-- 随访记录弹出框 -->
<!-- 通知记录弹出框 -->
<el-dialog :visible.sync="noticeListFormShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="随访记录"
title="通知记录"
width="1050px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<vf-notice-list ref="ref_visitelist"
<vf-notice-list ref="ref_noticelist"
@dialogCancle="diaClose"></vf-notice-list>
</el-dialog>
<!-- 通知记录弹出框 -->
<!-- 随访记录弹出框 -->
<el-dialog :visible.sync="visiteListFormShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="通知记录"
title="随访记录"
width="1050px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<vf-notice-list ref="ref_noticelist"
@dialogCancle="diaClose"></vf-notice-list>
<vf-visite-list ref="ref_visitelist"
@dialogCancle="diaClose"></vf-visite-list>
</el-dialog>
</div>
@ -504,7 +504,7 @@ export default {
handleNoticeList (row) {
this.noticeListFormShow = true
this.$nextTick(() => {
this.$refs.ref_visitelist.initForm(row)
this.$refs.ref_noticelist.initTable(row.idCard)
})
},
@ -512,7 +512,8 @@ export default {
this.visiteListFormShow = true
this.$nextTick(() => {
this.$refs.ref_noticelist.initForm(row)
this.$refs.ref_visitelist.initTable(row.idCard)
})
},
@ -651,8 +652,7 @@ export default {
},
handleExportModule () {
let title = ''
title = '房屋模板'
let title = '疫苗接种关注名单'
const url = "/gov/org/house/exporttemplate"
let params = {}

380
src/views/modules/base/epidemic/veroFocus/vfNoticeList.vue

@ -1,6 +1,6 @@
<template>
<div class="dialog-h-content scroll-h ">
<div class="div_table">
<div class="div_dialog_table">
<el-table class="table"
:data="tableData"
@ -16,120 +16,42 @@
width="50">
</el-table-column>
<el-table-column prop="reviewTime"
<el-table-column prop="createdTime"
header-align="center"
align="center"
label="复查时间"
width="250">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-date-picker v-model="scope.row.reviewTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期">
</el-date-picker>
</div>
<span v-else>{{scope.row.reviewTime}}</span>
</template>
label="通知时间"
width="150">
</el-table-column>
<el-table-column prop="ninePlaceName"
<el-table-column prop="channel"
header-align="center"
align="center"
label="分队名称"
width="280">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-select class="item_width_1"
v-model="scope.row.placePatrolTeamId"
placeholder="请选择"
clearable>
<el-option v-for="(item,index) in teamsList"
@click.native="hancleChangeTeam(scope.row,index,scope.$index)"
:key="item.teamId"
:label="item.teamName"
:value="item.teamId">
</el-option>
</el-select>
</div>
<span v-else>{{scope.row.placePatrolTeamName}}</span>
</template>
label="渠道"
width="180">
</el-table-column>
<el-table-column prop="inspectorsNames"
<el-table-column prop="content"
header-align="center"
align="center"
label="检查人员"
label="内容"
min-width="380">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-checkbox-group style="display:flex;flex-wrap:wrap"
v-model="scope.row.inspectorArray">
<el-checkbox v-for="item in scope.row.inspectorsList"
:key="item.id"
:label="item.id">{{item.name}}</el-checkbox>
</el-checkbox-group>
</div>
<span v-else>{{scope.row.inspectorsNames}}</span>
</template>
</el-table-column>
<el-table-column prop="reviewResult"
header-align="center"
align="center"
label="复查结论"
width="120">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-select class="item_width_2"
v-model="scope.row.reviewResult"
placeholder="全部"
clearable>
<el-option v-for="item in resultList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<span v-else>{{scope.row.reviewResult==='0'?'合格':'不合格'}}</span>
</template>
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="180"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.isEdit"
type="text"
style="color:#00A7A9;text-decoration: underline;"
size="small"
@click="handleComfirm(scope.row,scope.$index)">保存</el-button>
<el-button v-if="!scope.row.isEdit"
type="text"
style="color:#1C6AFD;text-decoration: underline;"
size="small"
@click="handleEdit(scope.row,scope.$index)">修改</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
size="small"
@click="handleDelete(scope.row,scope.$index)">删除</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 class="div_btn">
<el-button @click="handleCancle"> </el-button>
</div> -->
</div>
</template>
@ -143,9 +65,11 @@ export default {
data () {
return {
tableLoading: false,
placePatrolRecordId: '',
total: 0,
idCard: '',
tableData: [],
pageSize: 20,
pageNo: 1,
}
},
@ -156,231 +80,56 @@ export default {
methods: {
async initTable (placePatrolRecordId) {
this.placePatrolRecordId = placePatrolRecordId
await this.loadTeams()
async initTable (idCard) {
this.idCard = idCard
await this.loadTable()
},
//
async loadTeams () {
const url = '/gov/org/placepatrolteam/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/getlist'
let params = {
isPage: false
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.teamsList = data.list
} else {
this.$message.error(msg)
}
},
//
async hancleChangeTeam (row, index, tableIndex) {
this.tableData[tableIndex].inspectorArray = [...[]]
let teamId = this.teamsList[index].teamId
await this.loadInspectors(teamId, tableIndex)
},
//
async loadInspectors (teamId, tableIndex) {
const url = '/gov/org/placepatrolteamstaff/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteamstaff/getlist'
let params = {
teamId: teamId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
// let obj = this.tableData[tableIndex]
this.tableData[tableIndex].inspectorsList = [...data]
// this.tableData[tableIndex]=
// obj.inspectorsList = data
// this.$set(this.tableData, tableIndex, obj)
console.log(this.tableData)
} else {
this.$message.error(msg)
}
},
//form
async loadTable () {
this.tableLoading = true
const url = '/gov/org/placepatrolreviewrecord/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolreviewrecord/getlist'
// const url = "/epmetuser/icNotice/page"
const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNotice/page"
let params = {
placePatrolRecordId: this.placePatrolRecordId
idCard: this.idCard,
pageNo: this.pageNo,
pageSize: this.pageSize,
origin: '1'
}
const { data, code, msg } = await requestPost(url, params)
this.tableLoading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
if (data.list && data.list.length > 0) {
data.list.forEach(item => {
item.isEdit = false
item.isNew = false
let arrayInspectors = item.inspectors.split(',')
item.inspectorArray = [...arrayInspectors]
let arrayReviewTime = item.reviewTime.split(' ')
item.reviewTime = arrayReviewTime[0]
});
this.tableData = [...data.list]
} else {
this.tableData = []
}
} else {
this.$message.error(msg)
}
},
handleAdd () {
let obj = {
isNew: true,//
isEdit: true,//
placePatrolRecordId: this.placePatrolRecordId,
reviewTime: '',
placePatrolTeamId: '',
inspectors: '',
inspectorArray: [],
inspectorsList: [],
reviewResult: '',
}
this.tableData.push(obj)
},
async handleEdit (row, tableIndex) {
let teamId = row.placePatrolTeamId
await this.loadInspectors(teamId, tableIndex)
let rowData = JSON.parse(JSON.stringify(row))
rowData.isEdit = true
rowData.isNew = false
rowData.inspectorArray = rowData.inspectors.split(',')
console.log(rowData)
this.$set(this.tableData, tableIndex, rowData)
},
async handleComfirm (row, tableIndex) {
let valiMsg = this.validata(row)
if (valiMsg) {
this.$message({
type: 'warning',
message: valiMsg
})
return false
}
this.addReview(row, tableIndex)
},
async addReview (row, tableIndex) {
let url = "/gov/org/placepatrolreviewrecord/add"
if (row.placePatrolReviewRecordId) {
url = "/gov/org/placepatrolreviewrecord/edit"
}
let params = JSON.parse(JSON.stringify(row))
params.inspectors = params.inspectorArray.join(',')
params.reviewTime = params.reviewTime + ' 00:00:00'
// data.list.forEach(item => {
// item.isEdit = false
// item.isNew = false
// let arrayInspectors = item.inspectors.split(',')
// item.inspectorArray = [...arrayInspectors]
const { data, code, msg } = await requestPost(url, params)
// let arrayReviewTime = item.reviewTime.split(' ')
// item.reviewTime = arrayReviewTime[0]
// });
if (code === 0) {
let array = data.reviewTime.split(' ')
data.reviewTime = array[0]
data.isEdit = false
data.isNew = false
// this.tableData = [...data.list]
this.$set(this.tableData, tableIndex, data)
} else {
this.$message.error(msg)
}
},
validata (row) {
let message = ''
if (row.reviewTime === '') {
message = message + '复查时间不能为空;'
}
if (row.placePatrolTeamId === '') {
message = message + '分队名称不能为空;'
}
if (row.inspectorArray.length === 0) {
message = message + '检查人员不能为空;'
}
if (row.reviewResult === '') {
message = message + '复查结论不能为空;'
}
return message
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
async handleDelete (row, tableIndex) {
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
if (row.placePatrolReviewRecordId) {//id
this.deleteRecord(row, tableIndex)
} else {//id
this.tableData.splice(tableIndex, 1);
}
})
.catch(err => {
if (err == "cancel") {
}
});
},
async deleteRecord (row, tableIndex) {
const url = "/gov/org/placepatrolreviewrecord/del"
let params = {
placePatrolReviewRecordId: row.placePatrolReviewRecordId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
// this.$message({
// type: "success",
// message: ""
// });
this.tableData.splice(tableIndex, 1);
} else {
this.$message.error(msg)
}
},
handleCancle () {
this.$emit('dialogCancle')
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
@ -403,7 +152,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 360)
return (this.clientHeight - 460)
},
@ -412,36 +161,11 @@ export default {
},
props: {
resultList: {
type: Array,
default: []
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.item_width_1 {
width: 250px;
}
.item_width_2 {
width: 100px;
}
.div_table {
// background: #ffffff;
// box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
// border-radius: 4px;
.table {
margin-top: 20px;
}
}
.div_btn {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
@import "@/assets/scss/modules/management/epidemic.scss";
</style>

474
src/views/modules/base/epidemic/veroFocus/vfVisiteList.vue

@ -1,9 +1,12 @@
<template>
<div class="dialog-h-content scroll-h">
<div class="div_table">
<div class="div_dialog_table">
<el-button size="small"
class="diy-button--add"
@click="handleAdd">新增</el-button>
<el-button size="small"
class="diy-button--reset"
@click="handleExport">导出</el-button>
<el-table class="table"
:data="tableData"
@ -19,120 +22,85 @@
width="50">
</el-table-column>
<el-table-column prop="reviewTime"
<el-table-column prop="visitTime"
header-align="center"
align="center"
label="复查时间"
width="250">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-date-picker v-model="scope.row.reviewTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期">
</el-date-picker>
</div>
<span v-else>{{scope.row.reviewTime}}</span>
</template>
label="随访时间"
width="150">
</el-table-column>
<el-table-column prop="ninePlaceName"
<el-table-column prop="content"
header-align="center"
align="center"
label="分队名称"
width="280">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-select class="item_width_1"
v-model="scope.row.placePatrolTeamId"
placeholder="请选择"
clearable>
<el-option v-for="(item,index) in teamsList"
@click.native="hancleChangeTeam(scope.row,index,scope.$index)"
:key="item.teamId"
:label="item.teamName"
:value="item.teamId">
</el-option>
</el-select>
</div>
<span v-else>{{scope.row.placePatrolTeamName}}</span>
</template>
</el-table-column>
label="随访内容"
min-width="280">
<el-table-column prop="inspectorsNames"
header-align="center"
align="center"
label="检查人员"
min-width="380">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-checkbox-group style="display:flex;flex-wrap:wrap"
v-model="scope.row.inspectorArray">
<el-checkbox v-for="item in scope.row.inspectorsList"
:key="item.id"
:label="item.id">{{item.name}}</el-checkbox>
</el-checkbox-group>
</div>
<span v-else>{{scope.row.inspectorsNames}}</span>
</template>
</el-table-column>
<el-table-column prop="reviewResult"
header-align="center"
align="center"
label="复查结论"
width="120">
<template slot-scope="scope">
<div v-if="scope.row.isEdit">
<el-select class="item_width_2"
v-model="scope.row.reviewResult"
placeholder="全部"
clearable>
<el-option v-for="item in resultList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<span v-else>{{scope.row.reviewResult==='0'?'合格':'不合格'}}</span>
</template>
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="180"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.isEdit"
type="text"
style="color:#00A7A9;text-decoration: underline;"
size="small"
@click="handleComfirm(scope.row,scope.$index)">保存</el-button>
<el-button v-if="!scope.row.isEdit"
type="text"
style="color:#1C6AFD;text-decoration: underline;"
size="small"
@click="handleEdit(scope.row,scope.$index)">修改</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
size="small"
@click="handleDelete(scope.row,scope.$index)">删除</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 class="div_btn">
<el-button @click="handleCancle"> </el-button>
</div> -->
</div>
<el-dialog :visible.sync="dialogVisible"
width="550px"
top="5vh"
title="新增"
append-to-body
@closed="handleCancle">
<div class="epidemic-form">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="form">
<el-form-item label="随访时间"
style="display: block"
prop="visitTime"
label-width="150px">
<el-date-picker class="item_width_2"
v-model="formData.visitTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
clearable
placeholder="选择时间">
</el-date-picker>
</el-form-item>
<el-form-item label="随访内容"
prop="content"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:autosize="{ minRows: 4, maxRows: 10 }"
clearable
placeholder="请输入通知内容"
v-model="formData.content"></el-input>
</el-form-item>
</el-form>
<div class="form_div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
type="primary"
@click="handleComfirm"> </el-button>
</div>
</div>
</el-dialog>
</div>
</template>
@ -146,9 +114,22 @@ export default {
data () {
return {
tableLoading: false,
placePatrolRecordId: '',
tableData: [],
total: 0,
pageSize: 20,
pageNo: 1,
formData: {
visitTime: '',//访
content: '',//
idCard: '',
name: '',
mobile: '',
origin: '1'
},
dialogVisible: false,
}
},
@ -159,91 +140,33 @@ export default {
methods: {
async initTable (placePatrolRecordId) {
this.placePatrolRecordId = placePatrolRecordId
await this.loadTeams()
async initTable (row) {
this.formData.idCard = row.idCard
this.formData.name = row.name
this.formData.mobile = row.mobile
await this.loadTable()
},
//
async loadTeams () {
const url = '/gov/org/placepatrolteam/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/getlist'
let params = {
isPage: false
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.teamsList = data.list
} else {
this.$message.error(msg)
}
},
//
async hancleChangeTeam (row, index, tableIndex) {
this.tableData[tableIndex].inspectorArray = [...[]]
let teamId = this.teamsList[index].teamId
await this.loadInspectors(teamId, tableIndex)
},
//
async loadInspectors (teamId, tableIndex) {
const url = '/gov/org/placepatrolteamstaff/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteamstaff/getlist'
let params = {
teamId: teamId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
// let obj = this.tableData[tableIndex]
this.tableData[tableIndex].inspectorsList = [...data]
// this.tableData[tableIndex]=
// obj.inspectorsList = data
// this.$set(this.tableData, tableIndex, obj)
console.log(this.tableData)
} else {
this.$message.error(msg)
}
},
//form
async loadTable () {
this.tableLoading = true
const url = '/gov/org/placepatrolreviewrecord/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolreviewrecord/getlist'
// const url = '/epmetuser/followup/page'
const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/followup/page'
let params = {
placePatrolRecordId: this.placePatrolRecordId
idCard: this.formData.idCard,
pageNo: this.pageNo,
pageSize: this.pageSize,
origin: '1'
}
const { data, code, msg } = await requestPost(url, params)
this.tableLoading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
if (data.list && data.list.length > 0) {
data.list.forEach(item => {
item.isEdit = false
item.isNew = false
let arrayInspectors = item.inspectors.split(',')
item.inspectorArray = [...arrayInspectors]
let arrayReviewTime = item.reviewTime.split(' ')
item.reviewTime = arrayReviewTime[0]
});
this.tableData = [...data.list]
} else {
this.tableData = []
}
} else {
this.$message.error(msg)
@ -251,139 +174,90 @@ export default {
},
handleAdd () {
let obj = {
isNew: true,//
isEdit: true,//
placePatrolRecordId: this.placePatrolRecordId,
reviewTime: '',
placePatrolTeamId: '',
inspectors: '',
inspectorArray: [],
inspectorsList: [],
reviewResult: '',
}
this.tableData.push(obj)
this.dialogVisible = true
},
async handleEdit (row, tableIndex) {
let teamId = row.placePatrolTeamId
await this.loadInspectors(teamId, tableIndex)
let rowData = JSON.parse(JSON.stringify(row))
rowData.isEdit = true
rowData.isNew = false
rowData.inspectorArray = rowData.inspectors.split(',')
console.log(rowData)
this.$set(this.tableData, tableIndex, rowData)
},
async handleComfirm () {
async handleComfirm (row, tableIndex) {
let valiMsg = this.validata(row)
if (valiMsg) {
this.$message({
type: 'warning',
message: valiMsg
})
return false
}
this.addReview(row, tableIndex)
},
async addReview (row, tableIndex) {
let url = "/gov/org/placepatrolreviewrecord/add"
if (row.placePatrolReviewRecordId) {
url = "/gov/org/placepatrolreviewrecord/edit"
}
// let url = "/epmetuser/followup/save"
let url = "http://yapi.elinkservice.cn/mock/245/epmetuser/followup/save"
let params = JSON.parse(JSON.stringify(row))
params.inspectors = params.inspectorArray.join(',')
params.reviewTime = params.reviewTime + ' 00:00:00'
const { data, code, msg } = await requestPost(url, params)
const { data, code, msg } = await requestPost(url, this.formData)
if (code === 0) {
let array = data.reviewTime.split(' ')
data.reviewTime = array[0]
data.isEdit = false
data.isNew = false
this.$set(this.tableData, tableIndex, data)
this.loadTable()
this.handleCancle()
} else {
this.$message.error(msg)
}
},
validata (row) {
let message = ''
if (row.reviewTime === '') {
message = message + '复查时间不能为空;'
}
if (row.placePatrolTeamId === '') {
message = message + '分队名称不能为空;'
}
if (row.inspectorArray.length === 0) {
message = message + '检查人员不能为空;'
}
if (row.reviewResult === '') {
message = message + '复查结论不能为空;'
}
return message
handleCancle () {
this.dialogVisible = false
},
async handleDelete (row, tableIndex) {
//
async handleExport () {
let title = this.formData.name + '—随访记录'
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
if (row.placePatrolReviewRecordId) {//id
this.deleteRecord(row, tableIndex)
} else {//id
this.tableData.splice(tableIndex, 1);
const url = "/gov/org/house/exporthouseinfo"
let params = {
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
buildingId: this.agencyObj.id
}
})
.catch(err => {
if (err == "cancel") {
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xlsx')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
});
},
async deleteRecord (row, tableIndex) {
const url = "/gov/org/placepatrolreviewrecord/del"
let params = {
placePatrolReviewRecordId: row.placePatrolReviewRecordId
//
download (data, fileName) {
if (!data) {
return
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
// this.$message({
// type: "success",
// message: ""
// });
var csvData = new Blob([data])
this.tableData.splice(tableIndex, 1);
} else {
this.$message.error(msg)
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);
}
},
handleCancle () {
this.$emit('dialogCancle')
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
@ -405,46 +279,30 @@ export default {
},
computed: {
tableHeight () {
return (this.clientHeight - 360)
},
...mapGetters(['clientHeight'])
...mapGetters(['clientHeight']),
dataRule () {
return {
visitTime: [
{ required: true, message: '随访时间不能为空', trigger: 'blur' }
],
content: [
{ required: true, message: '随访内容不能为空', trigger: 'blur' }
],
}
}
},
props: {
resultList: {
type: Array,
default: []
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.item_width_1 {
width: 250px;
}
.item_width_2 {
width: 100px;
}
.div_table {
// background: #ffffff;
// box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
// border-radius: 4px;
.table {
margin-top: 20px;
}
}
.div_btn {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
@import "@/assets/scss/modules/management/epidemic.scss";
</style>
Loading…
Cancel
Save