社区人员处置

This commit is contained in:
liuye
2022-09-26 16:40:23 +08:00
parent c529d917b4
commit 0905a684b4
3 changed files with 110 additions and 35 deletions

View File

@@ -46,7 +46,7 @@
<p class="line-text" v-if="info.trainNo">{{info.trainNo}}</p> <p class="line-text" v-if="info.trainNo">{{info.trainNo}}</p>
<div class="item-flex"> <div class="item-flex">
<div class="label">出发时间</div> <div class="label">出发时间</div>
<!-- <div class="value">{{info.startTime.substring(0, 16)}}</div> --> <div class="value" v-if="info.startTime">{{info.startTime.substring(0, 16)}}</div>
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label">出发地区</div> <div class="label">出发地区</div>
@@ -62,7 +62,7 @@
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label">抵达时间</div> <div class="label">抵达时间</div>
<!-- <div class="value">{{info.arriveTime.substring(0, 16)}}</div> --> <div class="value" v-if="info.arriveTime">{{info.arriveTime.substring(0, 16)}}</div>
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label">返乡地区</div> <div class="label">返乡地区</div>
@@ -82,7 +82,7 @@
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label" style="width:360px;">7天内是否接触新冠确诊或疑似患者</div> <div class="label" style="width:360px;">7天内是否接触新冠确诊或疑似患者</div>
<div class="value" :style="info.contactPatients == 1 ? 'color:#f46;' : ''">{{$dict.getLabel('yesOrNo', info.contactPatients)}}</div> <div class="value" :style="info.contactPatients == 1 ? 'color:#f46;' : ''">{{$dict.getLabel('epidemicTouchInFourteen', info.contactPatients)}}</div>
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label">当前健康状况</div> <div class="label">当前健康状况</div>
@@ -115,27 +115,26 @@
</div> </div>
</div> </div>
<div class="type-select"> <div class="type-select">
<div class="type-item active">原路劝返</div> <div class="type-item" :class="form.communityHandleType == item.dictValue ? 'active' : ''" v-for="(item, index) in handleTypeList" :key="index" @click="handleTypeClick(item.dictValue)">{{item.dictName}}</div>
<div class="type-item">原路劝返</div>
<div class="type-item">原路劝返</div>
</div> </div>
</div> </div>
<div class="info mar-b16"> <div class="info mar-b16" v-if="form.communityHandleType == 1">
<div class="item solid"> <div class="item solid">
<div class="label"> <div class="label">
<span class="tips">*</span>居家状态 <span class="tips">*</span>居家状态
</div> </div>
<div class="value"> <div class="value" @click="dictSelectClick('EP_homeStatus2', 'homeStatus')">
<span class="color-999">请选择</span> <span :class="form.homeStatus === '' ? 'color-999' : ''">{{ $dict.getLabel('EP_homeStatus2', form.homeStatus) || '请选择'}}</span>
<u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" /> <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
</div> </div>
</div> </div>
<div class="item solid"> <div class="item solid">
<div class="label"> <div class="label">
<span class="tips">*</span>隔离时间 <span class="tips">*</span>隔离时间
</div> </div>
<div class="value"> <div class="value" @click="showDateSelect=true">
<span class="color-999">请选择</span> <span class="color-999" v-if="!form.quarantineBeginTime">请选择</span>
<span v-else>{{form.quarantineBeginTime}}{{form.quarantineEndTime}}</span>
<u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" /> <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
</div> </div>
</div> </div>
@@ -143,29 +142,33 @@
<div class="label"> <div class="label">
<span class="tips">*</span>隔离策略 <span class="tips">*</span>隔离策略
</div> </div>
<div class="value"> <div class="value" @click="dictSelectClick('EP_quarantineStrategy', 'quarantineStrategy')">
<span class="color-999">请选择</span> <span :class="form.quarantineStrategy === '' ? 'color-999' : ''">{{ $dict.getLabel('EP_quarantineStrategy', form.quarantineStrategy) || '请选择'}}</span>
<u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" /> <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<div class="label"> <div class="label">
<span class="tips">*</span>附件上传 <span class="tips"></span>附件上传
</div> </div>
</div> </div>
<div style="padding-bottom: 24px;" class="solid"> <div style="padding-bottom: 24px;" class="solid">
<AiUploader :def.sync="files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader> <AiUploader :def.sync="form.fileList" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</div> </div>
<div class="item"> <div class="item">
<div class="label"> <div class="label">
<span class="tips">*</span>备注 <span class="tips"></span>备注
</div> </div>
</div> </div>
<textarea placeholder="请输入备注"></textarea> <div class="item-textarea">
<u-input v-model="form.remarks" type="textarea" placeholder="请输入备注" height="200" :custom-style="{'font-size': '17px'}" maxlength="500" />
</div>
</div> </div>
</div> </div>
<div class="btn-height"></div> <div class="btn-height"></div>
<div class="footer">提交</div> <div class="footer" @click="submit">提交</div>
<u-calendar v-model="showDateSelect" mode="range" min-year="2020" max-date="2050-12-31" @change="dateConfirm"></u-calendar>
<u-select v-model="showDictSelect" :list="$dict.getDict(selectDictName)" label-name="dictName" value-name="dictValue" @confirm="dictConfirm"></u-select>
</div> </div>
</template> </template>
@@ -175,26 +178,97 @@ import { mapState } from 'vuex'
export default { export default {
data() { data() {
return { return {
areaId: '', id: '',
areaName: '', info: {},
files: [], form: {
info: {} communityHandleType: '',
homeStatus: '',
quarantineBeginTime: '',
quarantineEndTime: '',
quarantineStrategy: '',
fileList: [],
remarks: ''
},
handleTypeList: [],
showDateSelect: false,
showDictSelect: false,
selectDictName: '',
selectFormName: '',
} }
}, },
computed: { computed: {
...mapState(['user']), ...mapState(['user']),
}, },
onLoad() { onLoad(option) {
this.areaId = this.user.areaId this.areaId = this.user.areaId
this.areaName = this.user.areaName this.areaName = this.user.areaName
this.$dict.load('yesOrNo', 'EP_registerPersonType', 'EP_travelType', 'EP_abnormalType', 'epidemicTouchInFourteen', 'EP_homeStatus2', 'EP_quarantineStrategy', 'EP_communityHandleType').then(() => {
// this.id = option.id
this.handleTypeList = this.$dict.getDict('EP_communityHandleType')
this.id = '5ba23169ca3f46fe86c17a7e0af366b9'
this.getDetail()
})
}, },
onShow() { onShow() {
document.title = '风险处置' document.title = '风险处置'
}, },
methods: { methods: {
areaSelect(e) { submit() {
this.areaId = e if(this.form.communityHandleType === '') {
return this.$u.toast('请选择处置意见')
}
if(this.form.communityHandleType == 1 && this.form.homeStatus === '') {
return this.$u.toast('请选择居家状态')
}
if(this.form.communityHandleType == 1 && !this.form.quarantineBeginTime) {
return this.$u.toast('请选择隔离时间')
}
if(this.form.communityHandleType == 1 && this.form.quarantineStrategy === '') {
return this.$u.toast('请选择隔离策略')
}
this.$http.post(`/app/appepidemicpreventionregisterinfo/riskDisposal`, this.form).then((res) => {
if (res.code == 0) {
this.$u.toast('提交成功')
uni.$emit('updateDetail')
uni.$emit('updateList')
uni.navigateBack()
}
})
}, },
handleTypeClick(status) {
this.form.communityHandleType = status
},
getDetail() {
this.$http.post(`/app/appepidemicpreventionregisterinfo/queryDetailById?id=${this.id}`).then((res) => {
if (res.code == 0) {
this.info = res.data
this.info.travelTypeList = this.info.travelType.split(',')
this.info.idNumberText = res.data.idNumber.replace(/(.{6}).*(.{4})/,"$1********$2")
if(res.data.riskDisposalList && res.data.riskDisposalList.length) {
this.form = {...res.data.riskDisposalList[0]}
this.form.quarantineBeginTime = res.data.riskDisposalList[0].quarantineBeginTime.substring(0, 10)
this.form.quarantineEndTime = res.data.riskDisposalList[0].quarantineEndTime.substring(0, 10)
}
}
})
},
dateConfirm(e) {
this.form.quarantineBeginTime = e.startDate
this.form.quarantineEndTime = e.endDate
},
dictSelectClick(dictName, formName) {
this.selectDictName = dictName
this.selectFormName = formName
this.showDictSelect = true
},
dictConfirm(e) {
this.form[this.selectFormName] = e[0].value
}
}, },
} }
</script> </script>
@@ -385,10 +459,13 @@ export default {
color: #333; color: #333;
} }
} }
.item-textarea {
width: calc(100% - 32px);
}
.type-select { .type-select {
display: flex;
.type-item { .type-item {
width: 218px; display: inline-block;
width: calc(50% - 16px);
height: 80px; height: 80px;
line-height: 80px; line-height: 80px;
text-align: center; text-align: center;
@@ -399,9 +476,7 @@ export default {
font-size: 28px; font-size: 28px;
color: #333; color: #333;
margin: 0 16px 16px 0; margin: 0 16px 16px 0;
} box-sizing: border-box;
.type-item:nth-of-type(3n) {
margin-right: 0;
} }
.active { .active {
background: #4181FF; background: #4181FF;

View File

@@ -81,7 +81,7 @@
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label" style="width:360px;">7天内是否接触新冠确诊或疑似患者</div> <div class="label" style="width:360px;">7天内是否接触新冠确诊或疑似患者</div>
<div class="value" :style="info.contactPatients == 1 ? 'color:#f46;' : ''">{{$dict.getLabel('yesOrNo', info.contactPatients)}}</div> <div class="value" :style="info.contactPatients == 1 ? 'color:#f46;' : ''">{{$dict.getLabel('epidemicTouchInFourteen', info.contactPatients)}}</div>
</div> </div>
<div class="item-flex"> <div class="item-flex">
<div class="label">当前健康状况</div> <div class="label">当前健康状况</div>
@@ -126,7 +126,7 @@ export default {
document.title = '卡口登记详情' document.title = '卡口登记详情'
}, },
onLoad(option) { onLoad(option) {
this.$dict.load('yesOrNo', 'EP_registerPersonType', 'EP_travelType', 'EP_abnormalType').then(() => { this.$dict.load('yesOrNo', 'EP_registerPersonType', 'EP_travelType', 'EP_abnormalType', 'epidemicTouchInFourteen').then(() => {
this.id = option.id this.id = option.id
// this.haveHomeQuarantineBtn = option.operation == 'reDisposal' ? true : false // this.haveHomeQuarantineBtn = option.operation == 'reDisposal' ? true : false
this.getDetail() this.getDetail()

View File

@@ -83,7 +83,7 @@
</div> </div>
</div> </div>
<div class="item-textarea"> <div class="item-textarea">
<u-input v-model="form.controllerContent" type="textarea" placeholder="请输入详细描述信息" height="200" :custom-style="{'font-size': '17px'}" /> <u-input v-model="form.controllerContent" type="textarea" placeholder="请输入详细描述信息" height="200" :custom-style="{'font-size': '17px'}" maxlength="500" />
</div> </div>
</div> </div>
<div class="info" style="padding-bottom: 24px;"> <div class="info" style="padding-bottom: 24px;">