Browse Source

Merge branch 'dev-行程上报1031' into dev

dev-用户反馈
jiangyy 3 years ago
parent
commit
ebea2c7cf6
  1. 3
      src/assets/scss/modules/management/epidemic.scss
  2. 28
      src/views/modules/base/epidemic/travel.vue
  3. 18
      src/views/modules/base/epidemic/travelDetail.vue
  4. 247
      src/views/modules/base/epidemic/travelForm.vue

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

@ -16,6 +16,9 @@
.item_width_3 {
width: 180px;
}
.item_width_4 {
width: 350px;
}
.btn-selperson {
margin-left: 20px;

28
src/views/modules/base/epidemic/travel.vue

@ -182,6 +182,34 @@
show-overflow-tooltip
min-width="180">
</el-table-column>
<el-table-column prop="trafficTypeName"
header-align="center"
align="center"
label="返回方式"
show-overflow-tooltip
min-width="180">
</el-table-column>
<el-table-column prop="sourceDetailAddress"
header-align="center"
align="center"
label="详细地址"
show-overflow-tooltip
min-width="180">
</el-table-column>
<el-table-column prop="vaccineNumName"
header-align="center"
align="center"
label="疫苗针次"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column prop="isNatRecordName"
header-align="center"
align="center"
label="48小时核酸"
show-overflow-tooltip
min-width="110">
</el-table-column>
<el-table-column prop="arriveDate"
header-align="center"
align="center"

18
src/views/modules/base/epidemic/travelDetail.vue

@ -34,10 +34,26 @@
<span class="info-title-4">详细地址</span>
<span>{{ formData.detailAddress||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">返回方式</span>
<span>{{ formData.trafficTypeName||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">来自地区</span>
<span>{{ formData.sourceAddress||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">详细地址</span>
<span>{{ formData.sourceDetailAddress||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">疫苗接种针次</span>
<span>{{ formData.vaccineNumName||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">48小时核酸</span>
<span>{{ formData.isNatRecordName||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-4">来到本地时间</span>
<span>{{ formData.arriveDate||'--' }}</span>
@ -130,7 +146,7 @@ export default {
await this.loadFormData(row.id)
this.initLoading = true
console.log('formtype', type)
},

247
src/views/modules/base/epidemic/travelForm.vue

@ -26,7 +26,7 @@
label="所属网格"
style="display: block"
label-width="150px">
<el-select class="item_width_2"
<el-select class="item_width_4"
v-model.trim="formData.gridId"
placeholder="请选择"
:disabled="!isFromResi"
@ -44,7 +44,7 @@
prop="userId"
style="display: block"
label-width="150px">
<el-select class="item_width_2"
<el-select class="item_width_4"
v-model.trim="formData.userId"
placeholder="请选择"
filterable
@ -63,11 +63,12 @@
prop="name"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<el-input class="item_width_4"
placeholder="请输入姓名"
clearable
:disabled="isFromResi"
v-model="formData.name" style="margin-right:10px;">
v-model="formData.name"
style="margin-right:10px;">
</el-input>
<el-checkbox v-model="formData.heSuanCheck">添加到核酸检测关注名单</el-checkbox>
</el-form-item>
@ -76,7 +77,7 @@
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<el-input class="item_width_4"
placeholder="请输入手机号"
clearable
:disabled="isFromResi"
@ -87,62 +88,146 @@
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<el-input class="item_width_4"
placeholder="请输入身份证号或证件号"
clearable
:disabled="isFromResi"
v-model="formData.idCard">
</el-input>
</el-form-item>
<el-form-item
label="现居地"
<el-form-item label="现居地"
prop="presentAddress"
style="display: block"
label-width="150px">
<el-input v-if="formType == 'detail'" class="item_width_2"
<el-input v-if="formType == 'detail'"
class="item_width_4"
placeholder="请输入现居地"
clearable
:disabled="isFromResi"
:style="'width: ' + computedWd(formData.presentAddress)"
v-model="formData.presentAddress" />
<template v-else>
<el-input v-if="isFromResi" class="item_width_2 mw180"
<el-input v-if="isFromResi"
class="item_width_4 mw180"
placeholder="请输入现居地"
clearable
:disabled="isFromResi"
v-model="formData.presentAddress" />
<el-cascader v-else ref="nowArea" class="item_width_2" :props="areaProps"
v-model="nowAllCode" clearable @change="handleNowArea"></el-cascader>
<el-cascader v-else
ref="nowArea"
class="item_width_4"
:props="areaProps"
v-model="nowAllCode"
clearable
@change="handleNowArea"></el-cascader>
</template>
</el-form-item>
<el-form-item label="详细地址"
prop="detailAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
<el-input class="item_width_4"
placeholder="请输入详细地址"
clearable
:disabled="isFromResi"
v-model="formData.detailAddress">
</el-input>
</el-form-item>
<el-form-item label="来自地区" prop="sourceAddress" style="display: block" label-width="150px">
<el-input v-if="formType == 'detail'" class="item_width_2"
<el-form-item label="返回交通方式"
prop="trafficType"
style="display: block"
label-width="150px">
<el-select class="item_width_4"
v-model.trim="formData.trafficType"
placeholder="请选择"
clearable>
<el-option v-for="item in trafficTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="formData.trafficType==='4'"
label="其他"
prop="trafficTypeExplain"
style="display: block"
label-width="150px">
<el-input class="item_width_4"
placeholder="请输入交通方式"
clearable
v-model="formData.trafficTypeExplain">
</el-input>
</el-form-item>
<el-form-item label="来自地区"
prop="sourceAddress"
style="display: block"
label-width="150px">
<el-input v-if="formType == 'detail'"
class="item_width_4"
placeholder=""
clearable
:disabled="isFromResi"
v-model="formData.sourceAddress"
:style="'width: ' + computedWd(formData.sourceAddress)">
</el-input>
<el-cascader v-else ref="sourceArea" v-model="sourceAllCode" class="item_width_2" :props="areaProps"
@change="handleSourceArea" clearable></el-cascader>
<el-cascader v-else
ref="sourceArea"
v-model="sourceAllCode"
class="item_width_4"
:props="areaProps"
@change="handleSourceArea"
clearable></el-cascader>
</el-form-item>
<el-form-item label="详细地址"
prop="sourceDetailAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_4"
placeholder="请输入详细地址"
clearable
v-model="formData.sourceDetailAddress">
</el-input>
</el-form-item>
<el-form-item label="疫苗接种针次"
prop="vaccineNum"
style="display: block"
label-width="150px">
<el-select class="item_width_4"
v-model.trim="formData.vaccineNum"
placeholder="请选择"
clearable>
<el-option v-for="item in ymList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="48小时核酸记录"
style="display: block"
prop="isNatRecord"
label-width="150px">
<el-select class="item_width_4"
v-model.trim="formData.isNatRecord"
placeholder="请选择"
clearable>
<el-option v-for="item in hsList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="来到本地时间"
style="display: block"
prop="arriveDate"
label-width="150px">
<el-date-picker class="item_width_2"
<el-date-picker class="item_width_4"
v-model="formData.arriveDate"
:picker-options="pickerOptions"
format="yyyy-MM-dd HH:mm"
@ -156,7 +241,7 @@
style="display: block"
prop="leaveDate"
label-width="150px">
<el-date-picker class="item_width_2"
<el-date-picker class="item_width_4"
v-model="formData.leaveDate"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
@ -193,7 +278,8 @@
</el-checkbox-group>
</el-form-item>
<el-form-item v-show="formData.channel.length > 0" label="通知内容"
<el-form-item v-show="formData.channel.length > 0"
label="通知内容"
prop="content"
label-width="150px"
style="display: block">
@ -263,7 +349,7 @@ export default {
gridList: [],
personList: [],
pickerOptions: {
disabledDate(time) {
disabledDate (time) {
return time.getTime() > Date.now();
}
},
@ -287,42 +373,114 @@ export default {
presentAddressPathCode: '',
sourceAddress: '',
sourceAddressPathCode: '',
sourceDetailAddress: '',
arriveDate: '',
remark: '',
leaveDate: '',
userType: 'input',
content: '',
channel: []
channel: [],
trafficType: '',
trafficTypeExplain: '',
isNatRecord: '',
vaccineNum: '',
},
dataRule: {
name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' }
{ required: true, message: '姓名不能为空', trigger: 'change' }
],
idCard: [
{ required: true, validator: checkIdCard, trigger: 'blur' }
{ required: true, validator: checkIdCard, trigger: 'change' }
],
mobile: [
{ required: true, validator: checkMObile, trigger: 'blur' },
{ required: true, validator: checkMObile, trigger: 'change' },
],
presentAddress: [
{ required: true, message: '现居地不能为空', trigger: 'blur' },
{ required: true, message: '现居地不能为空', trigger: 'change' },
],
detailAddress: [
{ required: true, message: '详细地址不能为空', trigger: 'blur' },
{ required: true, message: '详细地址不能为空', trigger: 'change' },
],
sourceAddress: [
{ required: true, message: '来自地区不能为空', trigger: 'blur' },
{ required: true, message: '来自地区不能为空', trigger: 'change' },
],
sourceDetailAddress: [
{ required: true, message: '来自地区详细地址不能为空', trigger: 'change' },
],
arriveDate: [
{ required: true, message: '来到本地时间不能为空', trigger: 'blur' },
{ required: true, message: '来到本地时间不能为空', trigger: 'change' },
],
trafficType: [
{ required: true, message: '交通方式不能为空', trigger: 'change' },
],
trafficTypeExplain: [
{ required: true, message: '其他交通方式不能为空', trigger: 'change' },
],
isNatRecord: [
{ required: true, message: '48小时核酸记录不能为空', trigger: 'change' },
],
vaccineNum: [
{ required: true, message: '疫苗接种针刺不能为空', trigger: 'change' },
]
},
areaProps: {
// checkStrictly: true,
lazy: true,
lazyLoad: this.lzayLoadArea
},
trafficTypeList: [
{
value: '0',
label: '飞机'
},
{
value: '1',
label: '动车'
},
{
value: '2',
label: '火车'
},
{
value: '3',
label: '自驾'
},
{
value: '4',
label: '其他'
},
],
ymList: [
{
value: '0',
label: '0针'
},
{
value: '1',
label: '1针'
},
{
value: '2',
label: '2针'
},
{
value: '3',
label: '3针'
}
],
hsList: [
{
value: '1',
label: '是'
},
{
value: '2',
label: '否'
}
]
}
},
@ -332,12 +490,13 @@ export default {
this.agencyId = user.agencyId
//
await this.loadGrid()
this.getTrafficType()
},
destroyed() {
destroyed () {
this.nowAllCode = []
},
methods: {
computedWd(val) {
computedWd (val) {
const len = val.length
const wd = len * 18
let w = ''
@ -345,7 +504,7 @@ export default {
else w = 220
return w + 'px'
},
lzayLoadArea(node, resolve) {
lzayLoadArea (node, resolve) {
// this.getArea(node, resolve)
setTimeout(() => {
this.getArea(node, resolve)
@ -389,7 +548,7 @@ export default {
},
handleSourceArea(val) {
handleSourceArea (val) {
console.log('val-----', val)
console.log('label-----', this.$refs.sourceArea.getCheckedNodes())
if (val.length > 0) {
@ -405,7 +564,7 @@ export default {
}
},
handleNowArea(val) {
handleNowArea (val) {
console.log('val-----', val)
console.log('label-----', this.$refs.nowArea.getCheckedNodes())
if (val.length > 0) {
@ -437,6 +596,23 @@ export default {
this.$message.error(msg)
}
},
async getTrafficType () {
const url = "/sys/dict/data/dictlist"
let params = {
dictType: "traffic_type",
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.trafficTypeList = data
} else {
this.$message.error(msg)
}
},
async handleSelGrid (value) {
@ -482,7 +658,7 @@ export default {
}
},
async handleSelAddress(value) {
async handleSelAddress (value) {
const url = "/gov/org/house/gethouseinfo/" + value
@ -613,7 +789,6 @@ export default {
min-width: 260px;
}
}
</style>
<style lang='scss'>

Loading…
Cancel
Save