From b5cc5315b0b2136b2a94a71084355eef7cc2b103 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期六, 25 四月 2026 15:15:59 +0800
Subject: [PATCH] 门店修改面面

---
 small-program/pages/details-entry/details-entry.vue |  418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 411 insertions(+), 7 deletions(-)

diff --git a/small-program/pages/details-entry/details-entry.vue b/small-program/pages/details-entry/details-entry.vue
index 73b7ceb..b8fe52a 100644
--- a/small-program/pages/details-entry/details-entry.vue
+++ b/small-program/pages/details-entry/details-entry.vue
@@ -1,13 +1,147 @@
 <template>
 	<view class="container">
-		<view class="head">
+		<view class="head" :class="'head-' + shopAuditStatus">
 			<view class="head-top">
-				<image src="/static/images/ic_renzhengzhong@2x.png" mode="widthFix"></image>
-				<text>骞冲彴瀹℃牳涓�</text>
+				<image :src="statusIcon" mode="widthFix"></image>
+				<text>{{ statusText }}</text>
 			</view>
 			<view class="head-bottom">
-				瀹℃牳缁撴灉灏嗛�氳繃鐭俊/璁㈤槄娑堟伅閫氱煡鎮�
+				{{ statusBottomText }}
 			</view>
+		</view>
+		<view class="list">
+			<view class="list-item">
+				<view class="list-item-label">娉ㄥ唽鎵嬫満鍙�</view>
+				<view class="list-item-value">{{ form.telephone }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">闂ㄥ簵鍚嶇О</view>
+				<view class="list-item-value">{{ form.name }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">闂ㄥ簵绫诲瀷</view>
+				<view class="list-item-value">{{ form.companyType === 0 ? '涓汉' : '浼佷笟' }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鎵�鍦ㄥ煄甯�</view>
+				<view class="list-item-value">{{ fullAreaName }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">闂ㄥ簵鍦板潃</view>
+				<view class="list-item-value">{{ form.address }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鑱旂郴浜�</view>
+				<view class="list-item-value">{{ form.linkName }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鑱旂郴浜虹數璇�</view>
+				<view class="list-item-value">{{ form.linkPhone }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鑱旂郴浜鸿韩浠借瘉</view>
+				<view class="list-item-value">{{ form.idcard }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鏀粯瀹濊处鍙�</view>
+				<view class="list-item-value">{{ form.aliAccount }}</view>
+			</view>
+			<view class="list-item">
+				<view class="list-item-label">鏀粯瀹濆鍚�</view>
+				<view class="list-item-value">{{ form.aliName }}</view>
+			</view>
+			<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+				<view class="list-item-label" style="margin-bottom: 30rpx;">韬唤璇佹鍙嶉潰</view>
+				<view class="idcard">
+					<view class="idcard-image" v-if="form.idcardImg" @click="previewImage(form.idcardImg)">
+						<image :src="getFullPath(form.idcardImg)" mode="aspectFill"></image>
+					</view>
+					<view class="idcard-image" v-if="form.idcardImgBack" @click="previewImage(form.idcardImgBack)">
+						<image :src="getFullPath(form.idcardImgBack)" mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+			<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+				<view class="list-item-label" style="margin-bottom: 30rpx;">闂ㄥ簵闂ㄥご鐓х墖</view>
+				<view class="imgList">
+					<view class="imgItem" v-for="(img, index) in form.storeFrontImgs" :key="index" @click="previewImage(img)">
+						<image :src="getFullPath(img)" mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+			<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+				<view class="list-item-label" style="margin-bottom: 30rpx;">闂ㄥ簵鍐呴儴鐓х墖</view>
+				<view class="imgList">
+					<view class="imgItem" v-for="(img, index) in form.storeInteriorImgs" :key="index" @click="previewImage(img)">
+						<image :src="getFullPath(img)" mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+			<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+				<view class="list-item-label" style="margin-bottom: 30rpx;">鍏朵粬鏉愭枡</view>
+				<view class="imgList">
+					<view class="imgItem" v-for="(img, index) in form.otherMaterialImgs" :key="index" @click="previewImage(img)">
+						<image :src="getFullPath(img)" mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+			<template v-if="form.companyType === 0">
+				<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+					<view class="list-item-label" style="margin-bottom: 30rpx;">鏈夋晥鍔冲伐鍚堝悓</view>
+					<view class="imgList">
+						<view class="imgItem" v-for="(img, index) in form.laborContractImgs" :key="index" @click="previewImage(img)">
+							<image :src="getFullPath(img)" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+				<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+					<view class="list-item-label" style="margin-bottom: 30rpx;">鏈夋晥绀句繚缂寸撼璇佹槑</view>
+					<view class="imgList">
+						<view class="imgItem" v-for="(img, index) in form.socialSecurityImgs" :key="index" @click="previewImage(img)">
+							<image :src="getFullPath(img)" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+			</template>
+			<template v-else>
+				<view class="list-item">
+					<view class="list-item-label">娉曚汉濮撳悕</view>
+					<view class="list-item-value">{{ form.legalPersonName }}</view>
+				</view>
+				<view class="list-item">
+					<view class="list-item-label">浼佷笟鏀粯瀹濊处鍙�</view>
+					<view class="list-item-value">{{ form.aliAccount }}</view>
+				</view>
+				<view class="list-item">
+					<view class="list-item-label">娉曚汉韬唤璇佸彿</view>
+					<view class="list-item-value">{{ form.legalPersonCardNo }}</view>
+				</view>
+				<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+					<view class="list-item-label" style="margin-bottom: 30rpx;">娉曚汉韬唤璇佹鍙嶉潰</view>
+					<view class="idcard">
+						<view class="idcard-image" v-if="form.legalPersonCard" @click="previewImage(form.legalPersonCard)">
+							<image :src="getFullPath(form.legalPersonCard)" mode="aspectFill"></image>
+						</view>
+						<view class="idcard-image" v-if="form.legalPersonCardBack" @click="previewImage(form.legalPersonCardBack)">
+							<image :src="getFullPath(form.legalPersonCardBack)" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+				<view class="list-item" style="flex-direction: column; align-items: flex-start;">
+					<view class="list-item-label" style="margin-bottom: 30rpx;">钀ヤ笟鎵х収</view>
+					<view class="imgList">
+						<view class="imgItem" v-if="form.businessImg" @click="previewImage(form.businessImg)">
+							<image :src="getFullPath(form.businessImg)" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+			</template>
+		</view>
+		<view class="footer-btn" v-if="shopAuditStatus === 1">
+			<view class="pay-btn" @click="goToPay">鏀粯鎶奸噾 锟{ form.depositAmount }}</view>
+		</view>
+		<view class="footer-btn" v-if="shopAuditStatus === 2">
+			<view class="reapply-btn" @click="goToReapply">閲嶆柊璁よ瘉</view>
 		</view>
 	</view>
 </template>
@@ -16,8 +150,171 @@
 	export default {
 		data() {
 			return {
-				
+				form: {
+					telephone: '',
+					name: '',
+					companyType: 0,
+					provinceName: '',
+					cityName: '',
+					areaName: '',
+					address: '',
+					linkName: '',
+					linkPhone: '',
+					idcard: '',
+					aliAccount: '',
+					storeFrontImgs: [],
+					storeInteriorImgs: [],
+					otherMaterialImgs: [],
+					idcardImg: '',
+					idcardImgBack: '',
+					laborContractImgs: [],
+					socialSecurityImgs: [],
+					legalPersonName: '',
+					legalPersonCard: '',
+					legalPersonCardBack: '',
+					legalPersonCardNo: '',
+					businessImg: '',
+					depositAmount: '',
+					aliName: ''
+				},
+				imgPrefix: '',
+				statusText: '骞冲彴瀹℃牳涓�',
+				shopAuditStatus: 0,
+				statusBottomText: ''
 			};
+		},
+		computed: {
+			statusIcon() {
+				const iconMap = {
+					0: '/static/icon/ic_renzhengzhong@2x.png',
+					1: '/static/icon/ic_pass@2x.png',
+					2: '/static/icon/ic_fail@2x.png',
+					3: '/static/icon/ic_pass@2x.png'
+				}
+				return iconMap[this.shopAuditStatus] || iconMap[0]
+			},
+			fullAreaName() {
+				const arr = [this.form.provinceName, this.form.cityName, this.form.areaName].filter(Boolean)
+				return arr.join('/')
+			}
+		},
+		onLoad() {
+			this.getMyShopData()
+		},
+		methods: {
+			getFullPath(url) {
+				if (!url) return ''
+				if (url.startsWith('http')) {
+					return url
+				}
+				return this.imgPrefix + url
+			},
+			previewImage(url) {
+				uni.previewImage({
+					urls: [this.getFullPath(url)],
+					current: 0
+				})
+			},
+			goToPay() {
+				uni.showLoading({ title: '鍙戣捣鏀粯涓�...', mask: true })
+				this.$u.api.payDeposit({}).then(res => {
+					uni.hideLoading()
+					if (res.code === 200 && res.data) {
+						let paymentData = res.data.response
+						uni.requestPayment({
+							provider: 'wxpay',
+							timeStamp: paymentData.timeStamp || '',
+							nonceStr: paymentData.nonceStr || '',
+							package: paymentData.package || '',
+							signType: paymentData.signType || 'MD5',
+							paySign: paymentData.paySign || '',
+							success: (res) => {
+								this.getMyShopData()
+							},
+							fail: (err) => {
+								if (err.errMsg.includes('cancel')) {
+									uni.showToast({ title: '宸插彇娑堟敮浠�', icon: 'none' })
+								} else {
+									uni.showToast({ title: '鏀粯澶辫触', icon: 'none' })
+								}
+							}
+						})
+					} else {
+						uni.showToast({ title: res.msg || '鏀粯澶辫触', icon: 'none' })
+					}
+				}).catch(err => {
+					uni.hideLoading()
+					uni.showToast({ title: '鏀粯澶辫触', icon: 'none' })
+				})
+			},
+			goToReapply() {
+				uni.navigateTo({
+					url: '/pages/store-apply/store-apply'
+				})
+			},
+			async getMyShopData() {
+				try {
+					const res = await this.$u.api.getMyShop()
+					if (res.code === 200 && res.data) {
+						const data = res.data
+						this.imgPrefix = data.imgPrefix || ''
+						this.form.telephone = data.telephone || ''
+						this.form.name = data.name || ''
+						this.form.companyType = data.companyType || 0
+						this.form.provinceName = data.provinceName || ''
+						this.form.cityName = data.cityName || ''
+						this.form.areaName = data.areaName || ''
+						this.form.address = data.address || ''
+						this.form.linkName = data.linkName || ''
+						this.form.linkPhone = data.linkPhone || ''
+						this.form.idcard = data.idcard || ''
+						this.form.aliAccount = data.aliAccount || ''
+						this.form.legalPersonName = data.legalPersonName || ''
+						this.form.legalPersonCardNo = data.legalPersonCard || ''
+						this.form.aliName = data.aliName || ''
+						if (data.storeFrontImgs) {
+							this.form.storeFrontImgs = typeof data.storeFrontImgs === 'string' ? data.storeFrontImgs.split(',') : data.storeFrontImgs
+						}
+						if (data.storeInteriorImgs) {
+							this.form.storeInteriorImgs = typeof data.storeInteriorImgs === 'string' ? data.storeInteriorImgs.split(',') : data.storeInteriorImgs
+						}
+						if (data.otherMaterialImgs) {
+							this.form.otherMaterialImgs = typeof data.otherMaterialImgs === 'string' ? data.otherMaterialImgs.split(',') : data.otherMaterialImgs
+						}
+						this.form.idcardImg = data.idcardImg || ''
+						this.form.idcardImgBack = data.idcardImgBack || ''
+						if (data.laborContractImgs) {
+							this.form.laborContractImgs = typeof data.laborContractImgs === 'string' ? data.laborContractImgs.split(',') : data.laborContractImgs
+						}
+						if (data.socialSecurityImgs) {
+							this.form.socialSecurityImgs = typeof data.socialSecurityImgs === 'string' ? data.socialSecurityImgs.split(',') : data.socialSecurityImgs
+						}
+						this.form.legalPersonCard = data.legalPersonCard || ''
+						this.form.legalPersonCardBack = data.legalPersonCardBack || ''
+						if (data.auditStatus === 1) {
+							this.form.depositAmount = data.depositAmount / 100 || ''
+						}
+						this.form.businessImg = data.businessImg || ''
+						const statusMap = {
+							0: '骞冲彴瀹℃牳涓�',
+							1: '闂ㄥ簵鍏ラ┗宸查�氳繃',
+							2: '闂ㄥ簵鍏ラ┗宸叉嫆缁�',
+							3: '闂ㄥ簵宸插叆椹�'
+						}
+						this.shopAuditStatus = data.auditStatus || 0
+						this.statusText = statusMap[this.shopAuditStatus] || '骞冲彴瀹℃牳涓�'
+						const bottomTextMap = {
+							0: '瀹℃牳缁撴灉灏嗛�氳繃鐭俊/璁㈤槄娑堟伅閫氱煡鎮�',
+							1: '璇锋敮浠橀棬搴楀叆椹绘娂閲�',
+							2: '钀ヤ笟鎵х収杩囨湡锛岃閲嶆柊鎻愪氦瀹℃牳',
+							3: ' '
+						}
+						this.statusBottomText = bottomTextMap[this.shopAuditStatus] || bottomTextMap[0]
+					}
+				} catch (error) {
+					console.log('鑾峰彇搴楅摵淇℃伅澶辫触', error)
+				}
+			}
 		}
 	}
 </script>
@@ -25,6 +322,70 @@
 <style lang="scss" scoped>
 	.container {
 		width: 100%;
+		padding-bottom: 140rpx;
+		.list {
+			width: 100%;
+			padding: 0 30rpx;
+			box-sizing: border-box;
+			.list-item {
+				width: 100%;
+				padding: 30rpx 0;
+				box-sizing: border-box;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				border-bottom: 1rpx solid #E5E5E5;
+				.list-item-label {
+					width: 245rpx;
+					flex-shrink: 0;
+					font-weight: 400;
+					font-size: 30rpx;
+					color: #777777;
+				}
+				.imgList {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					flex-wrap: wrap;
+					.imgItem {
+						width: 144rpx;
+						height: 144rpx;
+						border-radius: 8rpx;
+						gap: 20rpx;
+						overflow: hidden;
+						image {
+							width: 100%;
+						}
+					}
+				}
+				.idcard {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					.idcard-image {
+						flex: 1;
+						height: 216rpx;
+						overflow: hidden;
+						border-radius: 8rpx;
+						border: 1rpx solid #E5E5E5;
+						&:first-child {
+							margin-right: 22rpx;
+						}
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+				}
+				.list-item-value {
+					flex: 1;
+					text-align: right;
+					font-weight: 400;
+					font-size: 30rpx;
+					color: #222222;
+				}
+			}
+		}
 		.head {
 			width: 100%;
 			height: 248rpx;
@@ -32,7 +393,6 @@
 			flex-direction: column;
 			align-items: center;
 			justify-content: center;
-			background: rgba(255,114,0,0.08);
 			.head-top {
 				display: flex;
 				align-items: center;
@@ -45,7 +405,6 @@
 				text {
 					font-weight: 600;
 					font-size: 40rpx;
-					color: #FA8010;
 				}
 			}
 			.head-bottom {
@@ -54,6 +413,51 @@
 				color: #333333;
 				margin-top: 34rpx;
 			}
+			&.head-0 {
+				background: rgba(255,114,0,0.08);
+				.head-top text {
+					color: #FA8010;
+				}
+			}
+			&.head-1 {
+				background: rgba(0,211,113,0.1);
+				.head-top text {
+					color: #00D371;
+				}
+			}
+			&.head-3 {
+				background: rgba(0,211,113,0.1);
+				.head-top text {
+					color: #00D371;
+				}
+			}
+			&.head-2 {
+				background: rgba(255,0,0,0.08);
+				.head-top text {
+					color: #FF0000;
+				}
+			}
+		}
+		.footer-btn {
+			width: 100%;
+			padding: 20rpx 30rpx;
+			box-sizing: border-box;
+			background: #fff;
+			position: fixed;
+			bottom: 0;
+			left: 0;
+			.pay-btn, .reapply-btn {
+				width: 100%;
+				height: 88rpx;
+				background: #10B2FA;
+				border-radius: 44rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #fff;
+			}
 		}
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3