返乡登记

This commit is contained in:
shijingjing
2022-05-25 10:47:02 +08:00
parent f36e184fb7
commit 44f9a8a5e8
6 changed files with 373 additions and 179 deletions

View File

@@ -35,44 +35,76 @@
</div>
</div>
</div>
<div class="form-item">
</div>
<div class="form-item__group">
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>人员类别</h2>
<!-- <span style="color:#999; fontSize:14px; font-weight: normal;">(最多9张)</span> -->
<h2>健康码截图</h2>
</div>
<div class="form-item__right">
<AiSelect v-model="form.type" dict="epidemicRecentPersonType" class="select"></AiSelect>
<div class="form-item__right" style="padding-left: 5px;">
<AiUploader v-model="form.checkPhoto" :limit="1"></AiUploader>
</div>
</div>
</div>
</div>
<div class="form-item__group">
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<!-- <span style="color:#999; fontSize:14px; font-weight: normal;">(最多9张)</span> -->
<h2>48小时核酸证明</h2>
</div>
<div class="form-item__right" style="padding-left: 5px;">
<AiUploader v-model="form.checkPhoto" :limit="1"></AiUploader>
</div>
</div>
</div>
</div>
<div class="form-item__group">
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>行方式</h2>
<h2>发地</h2>
</div>
<div class="form-item__right">
<AiAreaPicker class="ai-area" v-model="form.startAreaId" :fullName.sync="form.startAreaName" all>
<div class="ai-area__wrapper">
<span class="label" v-if="form.startAreaName">{{ form.startAreaName }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
</AiAreaPicker>
</div>
</div>
</div>
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>交通工具</h2>
</div>
<div class="form-item__right">
<AiSelect dict="epidemicRecentTravel" v-model="form.travelType" class="select"></AiSelect>
</div>
</div>
</div>
<div class="form-item">
<div class="form-item form-item__textarea">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>出发时间</h2>
<h2>火车车次/航班号/客运站</h2>
</div>
<div class="form-item__right">
<div class="ai-area" @click="isShowStartTime = true">
<div class="ai-area__wrapper">
<span class="label" v-if="form.startTime">{{ form.startTime }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
</div>
<textarea auto-height v-model="form.arriveAddress" :maxlength="100" placeholder="如车次、座位号/车牌号等信息"
placeholder-style="font-size: 16px"></textarea>
</div>
</div>
</div>
@@ -80,7 +112,7 @@
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>出发地区</h2>
<h2>目的地</h2>
</div>
<div class="form-item__right">
<AiAreaPicker class="ai-area" v-model="form.startAreaId" :fullName.sync="form.startAreaName" all>
@@ -97,19 +129,39 @@
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>出发地址</h2>
<h2>居住地点</h2>
</div>
<div class="form-item__right">
<textarea auto-height v-model="form.startAddress" :maxlength="500" placeholder="请输入详细的出发地址"
<textarea auto-height v-model="form.arriveAddress" :maxlength="100" placeholder="如住所、酒店、单位等"
placeholder-style="font-size: 16px"></textarea>
</div>
</div>
</div>
<!-- 行程安排 -->
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>预计/实际抵达时间</h2>
</div>
<div class="form-item__right">
<div class="ai-area" @click="isShowStartTime = true">
<div class="ai-area__wrapper">
<span class="label" v-if="form.startTime">{{ form.startTime }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
</div>
</div>
</div>
</div>
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>到达时间</h2>
<h2>预计离开时间</h2>
</div>
<div class="form-item__right">
<div class="ai-area" @click="isShowEndTime = true">
@@ -122,125 +174,8 @@
</div>
</div>
</div>
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>到达地区</h2>
</div>
<div class="form-item__right">
<AiAreaPicker class="ai-area" v-model="form.arriveAreaId" :fullName.sync="form.arriveAreaName" :areaId="$areaId">
<div class="ai-area__wrapper">
<span class="label" v-if="form.arriveAreaName">{{ form.arriveAreaName }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
</AiAreaPicker>
</div>
</div>
</div>
<div class="form-item form-item__textarea">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>返乡地址</h2>
</div>
<div class="form-item__right">
<textarea auto-height v-model="form.arriveAddress" :maxlength="500" placeholder="请输入详细的返乡地址"
placeholder-style="font-size: 16px"></textarea>
</div>
</div>
</div>
<div class="form-item form-item__textarea">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>行程描述</h2>
</div>
<div class="form-item__right">
<textarea auto-height style="height: 90px" v-model="form.description" :maxlength="500" placeholder="请输入行程描述"
placeholder-style="font-size: 16px"></textarea>
</div>
</div>
</div>
</div>
<div class="form-item__group">
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>核酸检测日期</h2>
</div>
<div class="form-item__right">
<div class="ai-area" @click="isShowDate = true">
<div class="ai-area__wrapper">
<span class="label" v-if="form.checkTime">{{ form.checkTime }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
</div>
</div>
</div>
</div>
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>本人健康码截图或核酸检测报告<span style="color:#999; fontSize:14px; font-weight: normal;">(最多9张)</span></h2>
</div>
<div class="form-item__right" style="padding-left: 5px;">
<AiUploader v-model="form.checkPhoto" :limit="9" multiple></AiUploader>
</div>
</div>
</div>
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>核酸检测结果</h2>
</div>
<div class="form-item__right">
<AiRadio style="width: 100%;" v-model="form.checkResult" dict="epidemicRecentTestResult"/>
</div>
</div>
</div>
</div>
<div class="form-item__group">
<div class="form-item">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>当前体温</h2>
</div>
<div class="form-item__right">
<input placeholder="请输入" v-model="form.temperature" :maxlength="20"/>
<i></i>
</div>
</div>
</div>
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>14天内是否接触新冠确诊或疑似患者</h2>
</div>
<div class="form-item__right">
<AiRadio style="width: 100%;" v-model="form.touchInFourteen" dict="epidemicTouchInFourteen"></AiRadio>
</div>
</div>
</div>
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i>*</i>
<h2>当前健康状况可多选</h2>
</div>
<div class="form-item__right">
<AiCheckbox style="width: 100%;" v-model="form.health" dict="epidemicRecentHealth"></AiCheckbox>
</div>
</div>
</div>
</div>
<u-picker mode="time" :params="dataParams" v-model="isShowDate" @confirm="onDateChange"></u-picker>
<u-picker mode="time" :params="params" v-model="isShowStartTime" @confirm="onStartChange"></u-picker>
<u-picker mode="time" :params="params" v-model="isShowEndTime" @confirm="onEndChange"></u-picker>
@@ -431,11 +366,12 @@ export default {
this.$hideLoading()
this.flag = false
if (res.code == 0) {
uni.$emit('update')
this.$toast('提交成功')
setTimeout(() => {
uni.navigateBack()
}, 400)
// uni.$emit('update')
// this.$toast('提交成功')
// setTimeout(() => {
// uni.navigateBack()
// }, 400)
this.$linkTo('./result')
}
})
}

View File

@@ -1,7 +1,11 @@
<template>
<div class="returnHomeRegister">
<div class="AppReturnHomeRegister">
<div class="tips">
<div>外地抵汉来汉人员疫情防控政策通</div>
<div @click="$linkTo('./policyDetail')">查看详情></div>
</div>
<div class="title">
<h2>全部记录</h2>
<h2>报备记录</h2>
<div class="right">
<span></span>
<i>{{ total }}</i>
@@ -34,7 +38,8 @@
<AiEmpty v-if="list.length==0"/>
</div>
<div class="btn-wrapper">
<div class="btn" @click="toReport" hover-class="text-hover">添加返乡记录</div>
<div class="share" @click="shareBtn">分享</div>
<div class="addbtn" @click="toReport" hover-class="text-hover">添加返乡报备</div>
</div>
</div>
</template>
@@ -73,6 +78,9 @@ export default {
toReport() {
this.$linkTo('./Add')
},
// policyDetail() {
// }
getList() {
this.$instance.post(`/app/appepidemicbackhomerecord/list`, null, {
params: {
@@ -93,9 +101,15 @@ export default {
}).catch(() => {
uni.hideLoading()
})
},
shareBtn() {
console.log('分享');
}
},
onReachBottom() {
this.current++
this.getList()
@@ -104,9 +118,28 @@ export default {
</script>
<style lang="scss" socped>
.returnHomeRegister {
.AppReturnHomeRegister {
padding: 0 0 150px 0;
.tips {
height: 106px;
line-height: 106px;
display: flex;
justify-content: space-between;
background: #FFF8F3;
padding: 0 32px;
div:first-child {
width: 520px;
color: #FF883C;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
div:last-child {
color: #4181FF;
}
}
.title {
display: flex;
align-items: center;
@@ -193,5 +226,30 @@ export default {
font-size: 28px;
}
}
.btn-wrapper {
display: flex;
justify-content: space-between;
padding: 20px 32px !important;
box-sizing: border-box;
.addbtn,
.share {
height: 88px;
line-height: 88px;
text-align: center;
}
.share {
width: 35%;
border-radius: 16px;
border: 1px solid #A0C0FF;
}
.addbtn {
width: 60%;
background: #4181FF;
border-radius: 16px;
color: #fff;
}
}
}
</style>

View File

@@ -1,19 +1,45 @@
<template>
<div class="detail" v-if="pageShow">
<div class="detail-header">
<h2>{{ info.name }}的返乡登记信息</h2>
<div class="item-info">
<div class="item-info__item">
<image src="/static/img/from-icon.png"/>
<span>{{ info.startAreaName }}</span>
<div class="user">
<div class="header">
<h3>张三</h3>
<div style="color: #4181FF;"><u-icon name="phone" color="#4181FF" size="28"></u-icon>拨打电话</div>
</div>
<div class="item-info__item">
<image src="/static/img/to-icon.png"/>
<span>{{ info.arriveAreaName }}</span>
<div class="idNumber">
<span>身份证号</span>
<span>220102200303078610</span>
</div>
<div class="item-info__item">
<image src="/static/img/to-date.png"/>
<span>{{ info.arriveTime && info.arriveTime.substr(0, info.arriveTime.length - 3) }} 到达</span>
<div class="phone">
<span>手机号码</span>
<span>13827263092</span>
</div>
<div class="picture">
<div class="healthPic">
<img src="./components/resultPic.png" alt="" @click="preview()">
<span>健康码</span>
</div>
<div class="nucleinPic">
<img src="./components/resultPic.png" alt="" @click="preview()">
<span>核算证明</span>
</div>
</div>
</div>
<div class="card">
<!-- <h2>{{ info.name }}的返乡登记信息</h2> -->
<div class="item-info">
<div class="item-info__item">
<image src="/static/img/from-icon.png"/>
<span>{{ info.startAreaName }}</span>
</div>
<div class="item-info__item">
<image src="/static/img/to-icon.png"/>
<span>{{ info.arriveAreaName }}</span>
</div>
<div class="item-info__item">
<image src="/static/img/to-date.png"/>
<span>{{ info.arriveTime && info.arriveTime.substr(0, info.arriveTime.length - 3) }} 到达</span>
</div>
</div>
</div>
</div>
@@ -189,7 +215,8 @@ export default {
data() {
return {
info: {},
pageShow: false
pageShow: false,
files: [],
}
},
@@ -208,6 +235,13 @@ export default {
})
},
// previewImg(images, img) {
// uni.previewImage({
// urls: images.map((v) => v.url),
// current: img,
// })
// },
getInfo(id) {
this.$instance.post(`/app/appepidemicbackhomerecord/queryDetailById?id=${id}`).then(res => {
if (res.code === 0) {
@@ -247,37 +281,105 @@ export default {
.detail-header {
padding: 32px;
background: #fff;
height: 860px;
background: linear-gradient(135deg, #6496FF 0%, #4F75FF 100%);
h2 {
margin-bottom: 32px;
color: #333333;
font-size: 40px;
font-weight: 600;
.user {
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.02);
border-radius: 16px;
padding: 32px;
box-sizing: border-box;
.header {
display: flex;
justify-content: space-between;
align-items: center;
h3 {
font-size: 40px;
color: #333333;
font-weight: 600;
}
}
.idNumber,
.phone {
color: #999999;
font-size: 26px;
margin-top: 8px;
}
.picture {
display: flex;
margin-top: 24px;
.healthPic,
.nucleinPic {
width: 192px;
height: 192px;
border-radius: 8px;
position: relative;
img {
width: 100%;
height: 100%;
}
span {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 40px;
line-height: 40px;
background: #000000;
opacity: 0.8;
color: #fff;
font-size: 22px;
text-align: center;
border-radius: 0 0 8px 8px;
}
}
.healthPic {
margin-right: 24px;
}
}
}
.item-info {
.item-info__item {
display: flex;
align-items: center;
margin-bottom: 8px;
.card {
margin-top: 32px;
background: rgba(70, 106, 233);
border-radius: 16px;
padding: 32px;
box-sizing: border-box;
// h2 {
// margin-bottom: 32px;
// color: #fff;
// font-size: 40px;
// font-weight: 600;
// }
&:last-child {
margin-bottom: 0;
}
.item-info {
.item-info__item {
display: flex;
align-items: center;
margin-bottom: 8px;
image {
width: 32px;
height: 32px;
margin-right: 16px;
}
&:last-child {
margin-bottom: 0;
}
span {
color: #333;
font-size: 28px;
image {
width: 32px;
height: 32px;
margin-right: 16px;
}
span {
color: #fff;
font-size: 28px;
}
}
}
}
}
.detail-info {

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,13 @@
<template>
<div>政策详情</div>
</template>
<script>
export default {
}
</script>
<style>
</style>

View File

@@ -0,0 +1,85 @@
<template>
<div class="service-result" >
<!-- v-if="showPage" -->
<img src="./components/resultPic.png" />
<!-- <img src="./components/resultPic.png" /> -->
<h2>提交成功</h2>
<div class="service-btn" hover-class="text-hover" @click="myAdd">报备记录</div>
<div class="service-btn" hover-class="text-hover" @click="back">返回</div>
</div>
</template>
<script>
export default {
name: 'result',
data() {
return {
showPage: false,
title: '',
}
},
onLoad(query) {
this.title = query.title
uni.setNavigationBarTitle({
title: this.title,
})
if (this.title) {
this.showPage = true
}
},
methods: {
myAdd() {
uni.reLaunch({url: './AppReturnHomeRegister'})
},
back() {
uni.reLaunch({url: './AppHelpDeclaration'})
},
},
}
</script>
<style lang="scss" scoped>
.service-result {
min-height: 100vh;
padding-top: 96px;
text-align: center;
background: #fff;
box-sizing: border-box;
.service-btn {
width: 320px;
height: 88px;
line-height: 88px;
margin: 80px auto 0;
text-align: center;
background: #4181FF;
font-size: 36px;
color: #fff;
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.02);
border-radius: 16px;
}
.service-btn:last-child {
margin-top: 30px;
background: #FFF;
color: #4181FF;
border: 1px solid #4181FF;
}
h2 {
margin-bottom: 32px;
color: #333333;
font-size: 40px;
font-weight: 600;
}
image {
width: 240px;
height: 240px;
}
}
</style>