3
0
Fork 0
web-store-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'>{{$t('MN_T_1')}}</view>
<view class='line2'>{{item.memberCode}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_CK_2')}}</view>
<view class='line2'>{{item.memberName}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_CK_4')}}</view>
<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="#f93025" size="small" :text="$t('PER_DA_35')"
@click="updateDomicile(item)"></u-button>
</view>
</view>
<template v-if="queryParams.assessType==1">
<view class="line_box">
<view class='line1'>{{$t('MY_CK_3')}}</view>
<view class='line3'>{{item.changeMemberName}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_CK_5')}}</view>
<view class='line3'>{{item.changePhone}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_CK_6')}}(¥)</view>
<view class='line3'>{{item.amount}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('CK_KS_51')}}</view>
<view class='line3'>{{item.creationTime}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('CK_KS_52')}}</view>
<view class='line3'>{{item.approveTime}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_CK_7')}}</view>
<view class='line3'>{{item.approveStatusVal}}</view>
</view>
<view class="line_box">
<view class='line1'>{{$t('MY_WAL_22')}}</view>
<view class='line3'>{{item.remark}}</view>
</view>
<view class="list_btn" v-if="item.approveStatus==3">
<view class="sub_btn" @click="findWhy(item)">
{{$t('CK_KS_19')}}
</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: this.$t('MY_CK_14')
}, {
value: 1,
label: this.$t('MY_CK_15')
}],
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;
background: #FB3024;
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 {
border-bottom: 6rpx solid #FB3024;
color: #FB3024;
}
.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>