监测对象
This commit is contained in:
539
src/apps/AppMonitoringObject/Add.vue
Normal file
539
src/apps/AppMonitoringObject/Add.vue
Normal file
@@ -0,0 +1,539 @@
|
|||||||
|
<template>
|
||||||
|
<div class="add">
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>监测对象类型</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>户主姓名</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="text" v-model="form.phone" :maxlength="8"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>身份证号</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="idcard" v-model="form.phone" :maxlength="18"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>性别</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="自动识别" type="idcard" v-model="form.phone" disabled
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>联系方式</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="number" v-model="form.phone" :maxlength="11"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>现住址</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiAreaPicker ref="address" class="aiArea" :fullName.sync="form.addressArea" :value="form.addressAreaId" :areaId="$areaId" mode="custom" all @select="onAreaChange">
|
||||||
|
<div class="aiArea">
|
||||||
|
<span class="label" v-if="form.addressArea">{{ form.addressArea }}</span>
|
||||||
|
<i v-else>请选择</i>
|
||||||
|
<u-icon name="arrow-right" color="#ddd"/>
|
||||||
|
</div>
|
||||||
|
</AiAreaPicker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>民族</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>政治面貌</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>文化程度</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>详细地址</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper border-b0">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>个人照片</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="upload">
|
||||||
|
<AiUploader :def.sync="form.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>在校情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>劳动技能</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>务工区域</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>务工时间/月</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" type="number" placeholder-style="color: #999; font-size: 30rpx;" maxlength="2"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加医保</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加大病保险</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加养老保险</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>最低生活保障</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">享受<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">未享受<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否特困供养</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="btn" hover-class="text" @click="submit"> {{ isEdit ? '保存' : '申请纳入监测' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
addressAreaId: '',
|
||||||
|
address: '',
|
||||||
|
addressArea: '',
|
||||||
|
move: '02',
|
||||||
|
place: '',
|
||||||
|
placeAreaId: '',
|
||||||
|
placeArea: '',
|
||||||
|
type: '',
|
||||||
|
files: []
|
||||||
|
},
|
||||||
|
$areaId: '',
|
||||||
|
isEdit: false,
|
||||||
|
id: '',
|
||||||
|
areaName: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.areaName = this.$store.state.user.areaFullName
|
||||||
|
this.$dict.load(['fpType', 'fpYesOrNo'])
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(query) {
|
||||||
|
if (query.id) {
|
||||||
|
this.isEdit = true
|
||||||
|
this.id = query.id
|
||||||
|
|
||||||
|
this.getInfo(this.id)
|
||||||
|
}
|
||||||
|
document.title = query.id ? '编辑监测对象' : '添加监测对象'
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
if (!this.form.type) {
|
||||||
|
return this.$u.toast('请选择监测类型')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.phone) {
|
||||||
|
return this.$u.toast('请输入联系方式')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.addressAreaId) {
|
||||||
|
return this.$u.toast('请选择住址')
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.showLoading()
|
||||||
|
this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
|
||||||
|
...this.form,
|
||||||
|
id: this.isEdit ? this.id : ''
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
|
||||||
|
uni.$emit('reload')
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onAreaChange(e) {
|
||||||
|
this.form.addressAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
onChange(e) {
|
||||||
|
this.form.placeAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
getInfo(id) {
|
||||||
|
this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.form = {
|
||||||
|
...this.form,
|
||||||
|
...res.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.add {
|
||||||
|
padding-bottom: 120px;
|
||||||
|
|
||||||
|
.aiArea {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
max-width: 480px;
|
||||||
|
height: 112px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #303133 !important;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-left: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #999999;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-radio {
|
||||||
|
&:last-child {
|
||||||
|
.u-radio__label {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
.form-item {
|
||||||
|
padding-left: 32px;
|
||||||
|
|
||||||
|
.form-item__wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
border-bottom: 1px solid #E4E5E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
padding-right: 32px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 30px;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.check-item{
|
||||||
|
display: inline-block;
|
||||||
|
width: 160px;
|
||||||
|
height: 64px;
|
||||||
|
line-height: 64px;
|
||||||
|
text-align: center;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
position: relative;
|
||||||
|
img{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.check-item:nth-of-type(1) {
|
||||||
|
margin-right: 36px;
|
||||||
|
}
|
||||||
|
.check-active{
|
||||||
|
background: #E7F1FE;
|
||||||
|
color: #1174FE;
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
height: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #FF4466;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
.form-item__wrapper {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item__imgs {
|
||||||
|
padding: 32px;
|
||||||
|
|
||||||
|
.form-item__title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 34px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #333333;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-type {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
padding: 0 32px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 11;
|
||||||
|
width: 100%;
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 32px;
|
||||||
|
background: #3192F4;
|
||||||
|
}
|
||||||
|
.upload {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 32px 32px 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.border-b0{
|
||||||
|
border-bottom: 0!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
539
src/apps/AppMonitoringObject/AddFamily.vue
Normal file
539
src/apps/AppMonitoringObject/AddFamily.vue
Normal file
@@ -0,0 +1,539 @@
|
|||||||
|
<template>
|
||||||
|
<div class="add">
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>与户主关系</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>姓名</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="text" v-model="form.phone" :maxlength="8"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>身份证号</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="idcard" v-model="form.phone" :maxlength="18"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>性别</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="自动识别" type="idcard" v-model="form.phone" disabled
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>联系方式</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" type="number" v-model="form.phone" :maxlength="11"
|
||||||
|
placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>现住址</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiAreaPicker ref="address" class="aiArea" :fullName.sync="form.addressArea" :value="form.addressAreaId" :areaId="$areaId" mode="custom" all @select="onAreaChange">
|
||||||
|
<div class="aiArea">
|
||||||
|
<span class="label" v-if="form.addressArea">{{ form.addressArea }}</span>
|
||||||
|
<i v-else>请选择</i>
|
||||||
|
<u-icon name="arrow-right" color="#ddd"/>
|
||||||
|
</div>
|
||||||
|
</AiAreaPicker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>民族</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>政治面貌</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>文化程度</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>详细地址</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper border-b0">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>个人照片</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="upload">
|
||||||
|
<AiUploader :def.sync="form.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>在校情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>劳动技能</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>务工区域</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i style="opacity: 0;">*</i>
|
||||||
|
<span>务工时间/月</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<input placeholder="请输入" v-model="form.address" type="number" placeholder-style="color: #999; font-size: 30rpx;" maxlength="2"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加医保</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加大病保险</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否参加养老保险</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>最低生活保障</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">享受<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">未享受<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否特困供养</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="btn" hover-class="text" @click="submit"> {{ isEdit ? '保存' : '申请纳入监测' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
addressAreaId: '',
|
||||||
|
address: '',
|
||||||
|
addressArea: '',
|
||||||
|
move: '02',
|
||||||
|
place: '',
|
||||||
|
placeAreaId: '',
|
||||||
|
placeArea: '',
|
||||||
|
type: '',
|
||||||
|
files: []
|
||||||
|
},
|
||||||
|
$areaId: '',
|
||||||
|
isEdit: false,
|
||||||
|
id: '',
|
||||||
|
areaName: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.areaName = this.$store.state.user.areaFullName
|
||||||
|
this.$dict.load(['fpType', 'fpYesOrNo'])
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(query) {
|
||||||
|
if (query.id) {
|
||||||
|
this.isEdit = true
|
||||||
|
this.id = query.id
|
||||||
|
|
||||||
|
this.getInfo(this.id)
|
||||||
|
}
|
||||||
|
document.title = query.id ? '编辑监测对象' : '添加监测对象'
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
if (!this.form.type) {
|
||||||
|
return this.$u.toast('请选择监测类型')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.phone) {
|
||||||
|
return this.$u.toast('请输入联系方式')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.addressAreaId) {
|
||||||
|
return this.$u.toast('请选择住址')
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.showLoading()
|
||||||
|
this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
|
||||||
|
...this.form,
|
||||||
|
id: this.isEdit ? this.id : ''
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
|
||||||
|
uni.$emit('reload')
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onAreaChange(e) {
|
||||||
|
this.form.addressAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
onChange(e) {
|
||||||
|
this.form.placeAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
getInfo(id) {
|
||||||
|
this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.form = {
|
||||||
|
...this.form,
|
||||||
|
...res.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.add {
|
||||||
|
padding-bottom: 120px;
|
||||||
|
|
||||||
|
.aiArea {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
max-width: 480px;
|
||||||
|
height: 112px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #303133 !important;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-left: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #999999;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-radio {
|
||||||
|
&:last-child {
|
||||||
|
.u-radio__label {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
.form-item {
|
||||||
|
padding-left: 32px;
|
||||||
|
|
||||||
|
.form-item__wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
border-bottom: 1px solid #E4E5E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
padding-right: 32px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 30px;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.check-item{
|
||||||
|
display: inline-block;
|
||||||
|
width: 160px;
|
||||||
|
height: 64px;
|
||||||
|
line-height: 64px;
|
||||||
|
text-align: center;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
position: relative;
|
||||||
|
img{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.check-item:nth-of-type(1) {
|
||||||
|
margin-right: 36px;
|
||||||
|
}
|
||||||
|
.check-active{
|
||||||
|
background: #E7F1FE;
|
||||||
|
color: #1174FE;
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
height: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #FF4466;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
.form-item__wrapper {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item__imgs {
|
||||||
|
padding: 32px;
|
||||||
|
|
||||||
|
.form-item__title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 34px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #333333;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-type {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
padding: 0 32px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 11;
|
||||||
|
width: 100%;
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 32px;
|
||||||
|
background: #3192F4;
|
||||||
|
}
|
||||||
|
.upload {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 32px 32px 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.border-b0{
|
||||||
|
border-bottom: 0!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
34
src/apps/AppMonitoringObject/AppMonitoringObject.vue
Normal file
34
src/apps/AppMonitoringObject/AppMonitoringObject.vue
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<template>
|
||||||
|
<div class="AppMonitoringObject">
|
||||||
|
<List />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import List from "./List";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'AppMonitoringObject',
|
||||||
|
components: {List},
|
||||||
|
appName: '监测对象',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
show: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
document.title = "监测对象"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
uni-page-body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AppMonitoringObject {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
0
src/apps/AppMonitoringObject/Detail.vue
Normal file
0
src/apps/AppMonitoringObject/Detail.vue
Normal file
340
src/apps/AppMonitoringObject/EditFamily.vue
Normal file
340
src/apps/AppMonitoringObject/EditFamily.vue
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
<template>
|
||||||
|
<div class="add">
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>监测对象类型</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<AiSelect dict="fpType" v-model="form.type"></AiSelect>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否危房</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否饮水安全问题</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<div class="form-item__wrapper">
|
||||||
|
<div class="left">
|
||||||
|
<i>*</i>
|
||||||
|
<span>是否搬迁</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="check-item">是<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
<div class="check-item check-active">否<img src="./components/img/check-icon.png" alt=""></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="btn" hover-class="text" @click="submit">保存</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
addressAreaId: '',
|
||||||
|
address: '',
|
||||||
|
addressArea: '',
|
||||||
|
move: '02',
|
||||||
|
place: '',
|
||||||
|
placeAreaId: '',
|
||||||
|
placeArea: '',
|
||||||
|
type: '',
|
||||||
|
files: []
|
||||||
|
},
|
||||||
|
$areaId: '',
|
||||||
|
isEdit: false,
|
||||||
|
id: '',
|
||||||
|
areaName: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.areaName = this.$store.state.user.areaFullName
|
||||||
|
this.$dict.load(['fpType', 'fpYesOrNo'])
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(query) {
|
||||||
|
if (query.id) {
|
||||||
|
this.isEdit = true
|
||||||
|
this.id = query.id
|
||||||
|
|
||||||
|
this.getInfo(this.id)
|
||||||
|
}
|
||||||
|
document.title = query.id ? '编辑监测对象' : '添加监测对象'
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
if (!this.form.type) {
|
||||||
|
return this.$u.toast('请选择监测类型')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.phone) {
|
||||||
|
return this.$u.toast('请输入联系方式')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.form.addressAreaId) {
|
||||||
|
return this.$u.toast('请选择住址')
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.showLoading()
|
||||||
|
this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
|
||||||
|
...this.form,
|
||||||
|
id: this.isEdit ? this.id : ''
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
|
||||||
|
uni.$emit('reload')
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onAreaChange(e) {
|
||||||
|
this.form.addressAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
onChange(e) {
|
||||||
|
this.form.placeAreaId = e
|
||||||
|
},
|
||||||
|
|
||||||
|
getInfo(id) {
|
||||||
|
this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.form = {
|
||||||
|
...this.form,
|
||||||
|
...res.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.add {
|
||||||
|
padding-bottom: 120px;
|
||||||
|
|
||||||
|
.aiArea {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
max-width: 480px;
|
||||||
|
height: 112px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #303133 !important;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-left: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #999999;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-radio {
|
||||||
|
&:last-child {
|
||||||
|
.u-radio__label {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
.form-item {
|
||||||
|
padding-left: 32px;
|
||||||
|
|
||||||
|
.form-item__wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
border-bottom: 1px solid #E4E5E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
padding-right: 32px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 30px;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.check-item{
|
||||||
|
display: inline-block;
|
||||||
|
width: 160px;
|
||||||
|
height: 64px;
|
||||||
|
line-height: 64px;
|
||||||
|
text-align: center;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
position: relative;
|
||||||
|
img{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.check-item:nth-of-type(1) {
|
||||||
|
margin-right: 36px;
|
||||||
|
}
|
||||||
|
.check-active{
|
||||||
|
background: #E7F1FE;
|
||||||
|
color: #1174FE;
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
height: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #FF4466;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
.form-item__wrapper {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item__imgs {
|
||||||
|
padding: 32px;
|
||||||
|
|
||||||
|
.form-item__title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 34px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #333333;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-type {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 112px;
|
||||||
|
padding: 0 32px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 11;
|
||||||
|
width: 100%;
|
||||||
|
height: 112px;
|
||||||
|
line-height: 112px;
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 32px;
|
||||||
|
background: #3192F4;
|
||||||
|
}
|
||||||
|
.upload {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 32px 32px 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.border-b0{
|
||||||
|
border-bottom: 0!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
0
src/apps/AppMonitoringObject/FamilyList.vue
Normal file
0
src/apps/AppMonitoringObject/FamilyList.vue
Normal file
339
src/apps/AppMonitoringObject/List.vue
Normal file
339
src/apps/AppMonitoringObject/List.vue
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
<template>
|
||||||
|
<div class="List">
|
||||||
|
<AiTopFixed>
|
||||||
|
<div class="area">
|
||||||
|
<i>可选范围</i>
|
||||||
|
<span class="separat">/</span>
|
||||||
|
<AiAreaPicker ref="area" class="aiArea" :value="areaId" :areaId="user.areaId" :name.sync="areaName" mode="custom"
|
||||||
|
@select="seachObj">
|
||||||
|
<span class="label" v-if="areaName">{{ areaName }}</span>
|
||||||
|
<i v-else>请选择</i>
|
||||||
|
</AiAreaPicker>
|
||||||
|
</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bar-width="150" @change="change"></u-tabs>
|
||||||
|
<div class="seach-obj">
|
||||||
|
<u-search v-model="keyword" :clearabled="true" placeholder="请输入姓名/身份证号" :show-action="false" bg-color="#F5F5F5"
|
||||||
|
search-icon-color="#E2E8F1" color="#666" height="58" @search="handerSearch" @clear="handerClear">
|
||||||
|
</u-search>
|
||||||
|
</div>
|
||||||
|
</AiTopFixed>
|
||||||
|
<div class="list-data" v-if="list.length > 0">
|
||||||
|
<div class="item" v-for="(item, iindex) in list" :key="iindex" @click="toDetailCard(item)">
|
||||||
|
<div class="left">
|
||||||
|
<img :src="item.photo" alt="" v-if="item.photo"/>
|
||||||
|
<img src="./components/img/user-img.png" alt="" v-else/>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="right-top">
|
||||||
|
<span class="name">{{ item.name }}</span>
|
||||||
|
<span class="status status0">待纳入</span>
|
||||||
|
</div>
|
||||||
|
<div class="right-bottom">
|
||||||
|
<p>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1********$2') }}</p>
|
||||||
|
<p>{{ item.currentAreaName }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="empty" v-else>
|
||||||
|
<img src="https://cdn.cunwuyun.cn/dvcp/h5/no-data.png" alt="">
|
||||||
|
<p>暂无居民信息<br/>点击<span @click="edit('')">新增按钮</span>新增居民信息,也可在管理系统批量导入</p>
|
||||||
|
</div> -->
|
||||||
|
<AiEmpty class="emptyWrap" v-else></AiEmpty>
|
||||||
|
<AiFixedBtn>
|
||||||
|
<div class="addBtn iconfont iconfont-iconfangda" @tap="toAdd"></div>
|
||||||
|
</AiFixedBtn>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapState} from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'List',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
keyword: '',
|
||||||
|
list: [],
|
||||||
|
current: 1,
|
||||||
|
size: 10,
|
||||||
|
tabList: [
|
||||||
|
{
|
||||||
|
name: '已登记监测对象',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '已消除风险对象',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
currentTabs: 0,
|
||||||
|
areaId: '',
|
||||||
|
areaName: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['user']),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.areaId = this.$store.state.user.areaId
|
||||||
|
this.areaName = this.$store.state.user.areaId
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
document.title = '查看居民档案'
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getList() {
|
||||||
|
var residentType = ['', 0, 1][this.currentTabs]
|
||||||
|
this.$http
|
||||||
|
.post('/app/appresident/list', null, {
|
||||||
|
params: {
|
||||||
|
size: 20,
|
||||||
|
current: this.current,
|
||||||
|
con: this.keyword,
|
||||||
|
areaId: this.areaId,
|
||||||
|
residentType: residentType,
|
||||||
|
auditStatus: 1
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
|
||||||
|
|
||||||
|
this.pages = res.data.pages
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
change(index) {
|
||||||
|
this.currentTabs = index
|
||||||
|
this.current = 1
|
||||||
|
this.list = []
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
toDetailCard(item) {
|
||||||
|
uni.navigateTo({url: `./DetailCard?id=${item.id}`})
|
||||||
|
},
|
||||||
|
|
||||||
|
seachObj(e) {
|
||||||
|
this.areaId = e
|
||||||
|
this.current = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
handerSearch(e) {
|
||||||
|
this.keyword = e
|
||||||
|
this.current = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
handerClear() {
|
||||||
|
this.keyword = ''
|
||||||
|
this.current = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
toAdd() {
|
||||||
|
uni.navigateTo({url: './Add'})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.current = this.current + 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.List {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.area {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 32px;
|
||||||
|
height: 112px;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 30px;
|
||||||
|
background: #fff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.separat {
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #3F8DF5;
|
||||||
|
font-size: 30px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
height: 16px;
|
||||||
|
background: #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.seach-obj {
|
||||||
|
border-bottom: 2px solid #f5f5f5;
|
||||||
|
border-top: 2px solid #f5f5f5;
|
||||||
|
padding: 20px 32px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .u-form {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.areaIds {
|
||||||
|
.u-form-item__body {
|
||||||
|
.u-form-item--right {
|
||||||
|
.u-form-item--right__content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.u-form-item--right__content__slot {
|
||||||
|
.AiAreaPicker {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
.areaSelector {
|
||||||
|
.location {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-form-item--right__content__icon {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-data {
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
padding: 24px 0 0 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.left {
|
||||||
|
img {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-left: 32px;
|
||||||
|
width: 100%;
|
||||||
|
border-bottom: 2px solid #E4E5E6;
|
||||||
|
padding-right: 32px;
|
||||||
|
|
||||||
|
.right-top {
|
||||||
|
font-size: 36px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
line-height: 44px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
|
||||||
|
.status {
|
||||||
|
font-size: 26px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
line-height: 36px;
|
||||||
|
}
|
||||||
|
.status0{
|
||||||
|
color: #F82;
|
||||||
|
}
|
||||||
|
.status1{
|
||||||
|
color: #3975C6;
|
||||||
|
}
|
||||||
|
.status2, .status4{
|
||||||
|
color: #F46;
|
||||||
|
}
|
||||||
|
.status3{
|
||||||
|
color: #2EA222;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-bottom {
|
||||||
|
p{
|
||||||
|
height: 36px;
|
||||||
|
font-size: 26px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
color: #999;
|
||||||
|
line-height: 36px;
|
||||||
|
word-break: break-all;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
p:nth-of-type(1){
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.emptyWrap {
|
||||||
|
background: #f5f5f5;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 282px;
|
||||||
|
height: 306px;
|
||||||
|
margin: 168px 0 0 234px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 28px;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
color: #999;
|
||||||
|
line-height: 44px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #467DFE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .AiTopFixed .content{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
::v-deep .u-tab-bar{
|
||||||
|
bottom: -6px!important;
|
||||||
|
}
|
||||||
|
.addBtn {
|
||||||
|
width: 96px;
|
||||||
|
height: 96px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
background: $uni-color-primary;
|
||||||
|
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||||
|
font-size: 48px;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 50%;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
src/apps/AppMonitoringObject/components/img/check-icon.png
Normal file
BIN
src/apps/AppMonitoringObject/components/img/check-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/apps/AppMonitoringObject/components/img/right-icon.png
Normal file
BIN
src/apps/AppMonitoringObject/components/img/right-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 258 B |
BIN
src/apps/AppMonitoringObject/components/img/top-icon-blue.png
Normal file
BIN
src/apps/AppMonitoringObject/components/img/top-icon-blue.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 272 B |
BIN
src/apps/AppMonitoringObject/components/img/user-img.png
Normal file
BIN
src/apps/AppMonitoringObject/components/img/user-img.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Reference in New Issue
Block a user