web-retail-h5/pages/selfService/updateDomicile/updateDomicile.vue

308 lines
7.0 KiB
Vue
Raw Normal View History

2025-03-23 09:29:40 +08:00
<template>
<view class="content">
<view class="tab">
<view v-for="(item, index) in tabList" :key="index" @click="isTab = item.value" class="tab_i"
:class="[isTab===item.value?'heng':'heng1']">
{{ item.label }}
</view>
</view>
<template v-if="tableData.length>0">
<view class="thecontent" v-for='(item,index) in tableData' :key="index">
<view class="line_box">
<view class='line1'>{{'会员编号'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line2'>{{item.memberCode}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'变更前会员姓名'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line2'>{{item.memberName}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'变更前联系方式'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line2'>{{item.phone}}</view>
</view>
<view class="line_box bgrightBox" v-if="queryParams.assessType==0">
<view class="">
</view>
<view class="">
<u-button shape="circle" color="#005BAC" size="small" :text="'申请变更'"
2025-03-23 09:29:40 +08:00
@click="updateDomicile(item)"></u-button>
</view>
</view>
<template v-if="queryParams.assessType==1">
<view class="line_box">
<view class='line1'>{{'变更后会员姓名'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.changeMemberName}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'变更后联系方式'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.changePhone}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'业务扣费'}}(¥)</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.amount}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'申请时间'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.creationTime}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'审核时间'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.approveTime}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'审核状态'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.approveStatusVal}}</view>
</view>
<view class="line_box">
<view class='line1'>{{'备注'}}</view>
2025-03-23 09:29:40 +08:00
<view class='line3'>{{item.remark}}</view>
</view>
<view class="list_btn" v-if="item.approveStatus==3">
<view class="sub_btn" @click="findWhy(item)">
{{'驳回原因'}}
2025-03-23 09:29:40 +08:00
</view>
</view>
</template>
</view>
</template>
<u-empty v-else mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png">
</u-empty>
<u-popup :show="rejectShow" closeable mode="center" round='10' @close="rejectShow=false">\
<view class="popview">
<view class="email_neir " @click="clickhtml(rejectContent)" v-html="rejectContent">
</view>
</view>
</u-popup>
</view>
</template>
<script>
import * as sel from "@/config/selfService.js"
export default {
data() {
return {
tabList: [{
value: 0,
label: '可申请信息'
2025-03-23 09:29:40 +08:00
}, {
value: 1,
label: '已申请信息'
2025-03-23 09:29:40 +08:00
}],
isTab: 0,
queryParams: {
assessType: 0,
},
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,
})
}
},
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>
<style lang="scss" scoped>
::v-deep img {
max-width: 100%;
height: auto;
}
.popview {
padding: 24rpx;
width: 620rpx;
.email_neir {
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #666666;
}
}
.list_btn {
border-top: 1rpx solid #EEEEEE;
margin-top: 20rpx;
display: flex;
justify-content: flex-end;
align-items: center;
padding-top: 20rpx;
.sub_btn {
display: flex;
align-items: center;
justify-content: center;
border-radius: 30rpx;
2025-04-22 17:47:02 +08:00
background: #005BAC;
2025-03-23 09:29:40 +08:00
color: #ffffff;
padding: 15rpx 28rpx;
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
}
}
.content {
background: #F2F2F2;
padding-bottom: 20rpx;
.tab {
display: flex;
align-items: center;
justify-content: space-around;
margin-bottom: 6rpx;
background-color: #FFFFFF;
.tab_i {
text-align: center;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #333333;
white-space: nowrap;
display: flex;
flex-direction: column;
align-items: center;
padding: 24rpx 0;
// background-color: pink;
}
.heng {
2025-04-22 17:47:02 +08:00
border-bottom: 6rpx solid #005BAC;
color: #005BAC;
2025-03-23 09:29:40 +08:00
}
.heng {
color: #333333;
}
}
.thecontent {
background-color: #FFFFFF;
// margin-bottom: 21rpx;
margin-top: 20rpx;
padding: 10rpx 23rpx 30rpx 23rpx;
.line_box {
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 {
margin-top: 20rpx;
padding-top: 20rpx;
display: flex;
justify-content: flex-end;
border-top: 1rpx solid #eeeeee;
}
}
}
</style>