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 { .item_width_3 {
width: 180px; width: 180px;
} }
.item_width_4 {
width: 350px;
}
.btn-selperson { .btn-selperson {
margin-left: 20px; margin-left: 20px;

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

@ -182,6 +182,34 @@
show-overflow-tooltip show-overflow-tooltip
min-width="180"> min-width="180">
</el-table-column> </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" <el-table-column prop="arriveDate"
header-align="center" header-align="center"
align="center" align="center"

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

@ -34,10 +34,26 @@
<span class="info-title-4">详细地址</span> <span class="info-title-4">详细地址</span>
<span>{{ formData.detailAddress||'--' }}</span> <span>{{ formData.detailAddress||'--' }}</span>
</div> </div>
<div class="info-prop">
<span class="info-title-4">返回方式</span>
<span>{{ formData.trafficTypeName||'--' }}</span>
</div>
<div class="info-prop"> <div class="info-prop">
<span class="info-title-4">来自地区</span> <span class="info-title-4">来自地区</span>
<span>{{ formData.sourceAddress||'--' }}</span> <span>{{ formData.sourceAddress||'--' }}</span>
</div> </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"> <div class="info-prop">
<span class="info-title-4">来到本地时间</span> <span class="info-title-4">来到本地时间</span>
<span>{{ formData.arriveDate||'--' }}</span> <span>{{ formData.arriveDate||'--' }}</span>
@ -130,7 +146,7 @@ export default {
await this.loadFormData(row.id) await this.loadFormData(row.id)
this.initLoading = true this.initLoading = true
console.log('formtype', type)
}, },

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

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

Loading…
Cancel
Save