3
0
Fork 0

feat(domicle): 户籍变更页面去除审核相关字段,移除变更费用,情况说明非必填

This commit is contained in:
woody 2025-05-26 16:27:53 +08:00
parent e388b3a10f
commit 1f11f6ba79
2 changed files with 307 additions and 300 deletions

View File

@ -52,13 +52,13 @@
<uploadImg :ifsfz='true' @imageUploaded='imageUploaded3' prop="idFront" <uploadImg :ifsfz='true' @imageUploaded='imageUploaded3' prop="idFront"
style="margin-right: 30rpx;" :bgimg="`../../../static/images/idCard1.png`" style="margin-right: 30rpx;" :bgimg="`../../../static/images/idCard1.png`"
v-model="dataForm.idFront"></uploadImg> v-model="dataForm.idFront"></uploadImg>
</u-form-item> </u-form-item>
<u-form-item labelPosition='top' required label-width="200rpx" label="原证件(反面)"> <u-form-item labelPosition='top' required label-width="200rpx" label="原证件(反面)">
<uploadImg :ifsfz='true' @imageUploaded='imageUploaded4' prop="idBack" <uploadImg :ifsfz='true' @imageUploaded='imageUploaded4' prop="idBack"
style="margin-right: 30rpx;" :bgimg="`../../../static/images/idCard2.png`" style="margin-right: 30rpx;" :bgimg="`../../../static/images/idCard2.png`"
v-model="dataForm.idBack"></uploadImg> v-model="dataForm.idBack"></uploadImg>
</u-form-item> </u-form-item>
<!-- <u-form-item labelPosition='top' label="原会员证件照片" prop="remark"> <!-- <u-form-item labelPosition='top' label="原会员证件照片" prop="remark">
<image class="idImages" style="margin-right: 20rpx;" :src="dataForm.idFront" mode=""></image> <image class="idImages" style="margin-right: 20rpx;" :src="dataForm.idFront" mode=""></image>
@ -86,13 +86,12 @@
</u-form-item> </u-form-item>
</view> </view>
<view class="view-class"> <!-- <view class="view-class">
<u-form-item label="业务扣费(¥)" label-width="200rpx" prop="amount"> <u-form-item label="业务扣费(¥)" label-width="200rpx" prop="amount">
<u-input v-model="dataForm.amount" disabled placeholder-class="place-class" class="border-color" <u-input v-model="dataForm.amount" disabled placeholder-class="place-class" class="border-color"
placeholder="请输入" /> placeholder="请输入" />
</u-form-item> </u-form-item>
</view> </view> -->
<view class="view-class"> <view class="view-class">
<u-form-item :label="'备注'" label-width="200rpx" prop="remark"> <u-form-item :label="'备注'" label-width="200rpx" prop="remark">
<u-input v-model="dataForm.remark" placeholder-class="place-class" class="border-color" <u-input v-model="dataForm.remark" placeholder-class="place-class" class="border-color"
@ -171,7 +170,7 @@
// u-form-item // u-form-item
message: "姓名不能为空", message: "姓名不能为空",
}], }],
changeIdFront: [{ changeIdFront: [{
// //
required: true, required: true,
@ -184,14 +183,14 @@
// u-form-item // u-form-item
message: "证件照片不能为空", message: "证件照片不能为空",
}], }],
description: [{ // description: [{
// // //
required: true, // required: true,
// u-form-item // // u-form-item
message: "情况说明不能为空", // message: "",
trigger: ["change"], // trigger: ["change"],
}], // }],
changePhone: [{ changePhone: [{
required: true, required: true,
message: "请输入手机号", message: "请输入手机号",
@ -499,4 +498,4 @@
border-radius: 38rpx; border-radius: 38rpx;
color: #fff; color: #fff;
} }
</style> </style>

View File

@ -1,308 +1,316 @@
<template> <template>
<view class="content"> <view class="content">
<view class="tab"> <view class="tab">
<view v-for="(item, index) in tabList" :key="index" @click="isTab = item.value" class="tab_i" <view
:class="[isTab===item.value?'heng':'heng1']"> v-for="(item, index) in tabList"
{{ item.label }} :key="index"
</view> @click="isTab = item.value"
</view> class="tab_i"
:class="[isTab === item.value ? 'heng' : 'heng1']"
>
{{ item.label }}
</view>
</view>
<template v-if="tableData.length > 0">
<template v-if="tableData.length>0"> <view class="thecontent" v-for="(item, index) in tableData" :key="index">
<view class="thecontent" v-for='(item,index) in tableData' :key="index"> <view class="line_box">
<view class="line_box"> <view class="line1">{{ '会员编号' }}</view>
<view class='line1'>{{'会员编号'}}</view> <view class="line2">{{ item.memberCode }}</view>
<view class='line2'>{{item.memberCode}}</view> </view>
</view> <view class="line_box">
<view class="line_box"> <view class="line1">{{ '变更前会员姓名' }}</view>
<view class='line1'>{{'变更前会员姓名'}}</view> <view class="line2">{{ item.memberName }}</view>
<view class='line2'>{{item.memberName}}</view> </view>
</view> <view class="line_box">
<view class="line_box"> <view class="line1">{{ '变更前联系方式' }}</view>
<view class='line1'>{{'变更前联系方式'}}</view> <view class="line2">{{ item.phone }}</view>
<view class='line2'>{{item.phone}}</view> </view>
</view> <view class="line_box bgrightBox" v-if="queryParams.assessType == 0">
<view class="line_box bgrightBox" v-if="queryParams.assessType==0"> <view class=""> </view>
<view class=""> <view class="">
<u-button
</view> shape="circle"
<view class=""> color="#005BAC"
<u-button shape="circle" color="#005BAC" size="small" :text="'申请变更'" size="small"
@click="updateDomicile(item)"></u-button> :text="'申请变更'"
</view> @click="updateDomicile(item)"
</view> ></u-button>
<template v-if="queryParams.assessType==1"> </view>
<view class="line_box"> </view>
<view class='line1'>{{'变更后会员姓名'}}</view> <template v-if="queryParams.assessType == 1">
<view class='line3'>{{item.changeMemberName}}</view> <view class="line_box">
</view> <view class="line1">{{ '变更后会员姓名' }}</view>
<view class="line_box"> <view class="line3">{{ item.changeMemberName }}</view>
<view class='line1'>{{'变更后联系方式'}}</view> </view>
<view class='line3'>{{item.changePhone}}</view> <view class="line_box">
</view> <view class="line1">{{ '变更后联系方式' }}</view>
<view class="line_box"> <view class="line3">{{ item.changePhone }}</view>
</view>
<!-- <view class="line_box">
<view class='line1'>{{'业务扣费'}}(¥)</view> <view class='line1'>{{'业务扣费'}}(¥)</view>
<view class='line3'>{{item.amount}}</view> <view class='line3'>{{item.amount}}</view>
</view> </view> -->
<view class="line_box"> <view class="line_box">
<view class='line1'>{{'申请时间'}}</view> <view class="line1">{{ '申请时间' }}</view>
<view class='line3'>{{item.creationTime}}</view> <view class="line3">{{ item.creationTime }}</view>
</view> </view>
<view class="line_box"> <!-- <view class="line_box">
<view class='line1'>{{'审核时间'}}</view> <view class="line1">{{ '审核时间' }}</view>
<view class='line3'>{{item.approveTime}}</view> <view class="line3">{{ item.approveTime }}</view>
</view> </view>
<view class="line_box"> <view class="line_box">
<view class='line1'>{{'审核状态'}}</view> <view class="line1">{{ '审核状态' }}</view>
<view class='line3'>{{item.approveStatusVal}}</view> <view class="line3">{{ item.approveStatusVal }}</view>
</view> </view> -->
<view class="line_box"> <view class="line_box">
<view class='line1'>{{'备注'}}</view> <view class="line1">{{ '备注' }}</view>
<view class='line3'>{{item.remark}}</view> <view class="line3">{{ item.remark }}</view>
</view> </view>
<view class="list_btn" v-if="item.approveStatus==3"> <!-- <view class="list_btn" v-if="item.approveStatus == 3">
<view class="sub_btn" @click="findWhy(item)"> <view class="sub_btn" @click="findWhy(item)">
{{'驳回原因'}} {{ '驳回原因' }}
</view> </view>
</view> </view> -->
</template> </template>
</view> </view>
</template> </template>
<u-empty v-else mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png"> <u-empty
</u-empty> v-else
<u-popup :show="rejectShow" closeable mode="center" round='10' @close="rejectShow=false">\ mode="list"
<view class="popview"> icon="http://cdn.uviewui.com/uview/empty/list.png"
<view class="email_neir " @click="clickhtml(rejectContent)" v-html="rejectContent"> >
</u-empty>
</view> <u-popup
</view> :show="rejectShow"
closeable
</u-popup> mode="center"
round="10"
</view> @close="rejectShow = false"
>\
<view class="popview">
<view
class="email_neir"
@click="clickhtml(rejectContent)"
v-html="rejectContent"
>
</view>
</view>
</u-popup>
</view>
</template> </template>
<script> <script>
import * as sel from "@/config/selfService.js" import * as sel from '@/config/selfService.js'
export default { export default {
data() { data() {
return { return {
tabList: [{ tabList: [
value: 0, {
label: '可申请信息' value: 0,
}, { label: '可变更信息',
value: 1, },
label: '已申请信息' {
}], value: 1,
isTab: 0, label: '变更记录',
queryParams: { },
assessType: 0, ],
}, isTab: 0,
tableData: [], queryParams: {
rejectShow: false, assessType: 0,
rejectContent: "" },
tableData: [],
rejectShow: false,
rejectContent: '',
}
},
watch: {
isTab(n, o) {
this.queryParams.assessType = n
this.getDataList()
},
},
onLoad() {
this.getDataList()
},
methods: {
findWhy(item) {
this.rejectContent = item.rejectMsg
this.rejectShow = true
},
clickhtml(content) {
this.rejectShow = false
// handleImageClick
const parser = new DOMParser()
const doc = parser.parseFromString(content, 'text/html')
const imgElements = doc.getElementsByTagName('img')
if (imgElements.length > 0) {
const firstImageUrl = imgElements[0].src
this.handleImageClick(firstImageUrl, content)
}
},
handleImageClick(url, content) {
uni.previewImage({
urls: this.getUrls(content),
current: url,
})
},
getUrls(content) {
const parser = new DOMParser()
const doc = parser.parseFromString(content, 'text/html')
const imgElements = doc.getElementsByTagName('img')
const urls = []
for (let i = 0; i < imgElements.length; i++) {
urls.push(imgElements[i].src)
}
return urls
},
updateDomicile(item) {
if (this.queryParams.assessType == 0) {
item.assessType = this.queryParams.assessType
let params = item
let queryString = Object.keys(params)
.map(
key =>
`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`
)
.join('&')
// let paramsString = encodeURIComponent(JSON.stringify(params))
} uni.navigateTo({
}, url: '/pages/selfService/updateDomicile/addDomicile?' + queryString,
watch: { })
isTab(n, o) { }
this.queryParams.assessType = n },
this.getDataList()
},
},
onLoad() {
this.getDataList() getDataList() {
if (this.queryParams.assessType == 0) {
}, //
methods: { sel.getApplicationInfoList(this.queryParams).then(res => {
findWhy(item) { this.tableData = [res.data]
this.rejectContent = item.rejectMsg })
this.rejectShow = true } else if (this.queryParams.assessType == 1) {
}, //
clickhtml(content) { sel.getAppliedInfoList(this.queryParams).then(res => {
this.rejectShow = false this.tableData = res.data
// handleImageClick })
const parser = new DOMParser(); }
const doc = parser.parseFromString(content, "text/html"); },
const imgElements = doc.getElementsByTagName("img"); },
if (imgElements.length > 0) { }
const firstImageUrl = imgElements[0].src;
this.handleImageClick(firstImageUrl, content);
}
},
handleImageClick(url, content) {
uni.previewImage({
urls: this.getUrls(content),
current: url
});
},
getUrls(content) {
const parser = new DOMParser();
const doc = parser.parseFromString(content, "text/html");
const imgElements = doc.getElementsByTagName("img");
const urls = [];
for (let i = 0; i < imgElements.length; i++) {
urls.push(imgElements[i].src);
}
return urls;
},
updateDomicile(item) {
if (this.queryParams.assessType == 0) {
item.assessType = this.queryParams.assessType
let params = item
let queryString = Object.keys(params).map(key =>
`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join('&')
// let paramsString = encodeURIComponent(JSON.stringify(params))
uni.navigateTo({
url: '/pages/selfService/updateDomicile/addDomicile?' + queryString,
})
}
},
getDataList() {
if (this.queryParams.assessType == 0) {
//
sel.getApplicationInfoList(this.queryParams).then(res => {
this.tableData = [res.data]
})
} else if (this.queryParams.assessType == 1) {
//
sel.getAppliedInfoList(this.queryParams).then(res => {
this.tableData = res.data
})
}
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep img { ::v-deep img {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
} }
.popview { .popview {
padding: 24rpx; padding: 24rpx;
width: 620rpx; width: 620rpx;
.email_neir { .email_neir {
font-size: 24rpx; font-size: 24rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
} }
} }
.list_btn { .list_btn {
border-top: 1rpx solid #EEEEEE; border-top: 1rpx solid #eeeeee;
margin-top: 20rpx; margin-top: 20rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
padding-top: 20rpx; padding-top: 20rpx;
.sub_btn { .sub_btn {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 30rpx; border-radius: 30rpx;
background: #005BAC; background: #005bac;
color: #ffffff; color: #ffffff;
padding: 15rpx 28rpx; padding: 15rpx 28rpx;
font-size: 24rpx; font-size: 24rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
} }
} }
.content { .content {
background: #F2F2F2; background: #f2f2f2;
padding-bottom: 20rpx; padding-bottom: 20rpx;
.tab { .tab {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-around; justify-content: space-around;
margin-bottom: 6rpx; margin-bottom: 6rpx;
background-color: #FFFFFF; background-color: #ffffff;
.tab_i { .tab_i {
text-align: center; text-align: center;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 400; font-weight: 400;
color: #333333; color: #333333;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding: 24rpx 0; padding: 24rpx 0;
// background-color: pink; // background-color: pink;
}
} .heng {
border-bottom: 6rpx solid #005bac;
color: #005bac;
}
.heng { .heng {
border-bottom: 6rpx solid #005BAC; color: #333333;
color: #005BAC; }
}
} .thecontent {
background-color: #ffffff;
// margin-bottom: 21rpx;
margin-top: 20rpx;
padding: 10rpx 23rpx 30rpx 23rpx;
.heng { .line_box {
color: #333333; display: flex;
} align-items: center;
justify-content: space-between;
margin-top: 20rpx;
} .line1 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
}
.line2 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
}
.line3 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: rgba(251, 48, 36, 1);
}
}
.bgrightBox {
.thecontent { margin-top: 20rpx;
background-color: #FFFFFF; padding-top: 20rpx;
// margin-bottom: 21rpx; display: flex;
margin-top: 20rpx; justify-content: flex-end;
padding: 10rpx 23rpx 30rpx 23rpx; border-top: 1rpx solid #eeeeee;
}
.line_box { }
display: flex; }
align-items: center; </style>
justify-content: space-between;
margin-top: 20rpx;
.line1 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
}
.line2 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
}
.line3 {
font-size: 26rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: rgba(251, 48, 36, 1);
}
}
.bgrightBox {
margin-top: 20rpx;
padding-top: 20rpx;
display: flex;
justify-content: flex-end;
border-top: 1rpx solid #eeeeee;
}
}
}
</style>