Просмотр исходного кода

只是写了虚拟地址的接口文件;

郭鹏飞 8 месяцев назад
Родитель
Сommit
447886525b

+ 27 - 0
src/api/address.js

@@ -55,4 +55,31 @@ export function getAddrById(data) {
         url: '/tAddress/getById',
         data
     });
+}
+
+// 查询技师的虚拟地址
+export function getVirtualAddrByPhone(data) {
+    return request({
+        method: 'get',
+        url: '/tAddress/getVirtualAddressByPhone',
+        data
+    });
+}
+
+// 新增虚拟地址
+export function netVirtualAddrAdd(data) {
+    return request({
+        method: 'post',
+        url: '/tAddress/saveVirtualAddress',
+        data
+    });
+}
+
+// 删除虚拟地址
+export function netVirtualAddrDel(data) {
+    return request({
+        method: 'delete',
+        url: '/tAddress/deleteVirtualAddress',
+        data
+    });
 }

+ 7 - 0
src/pages.json

@@ -247,6 +247,13 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/address/virtual",
+			"style": {
+				"navigationBarTitleText": "虚拟地址",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/moments/index",
 			"style": {

+ 50 - 2
src/pages/address/virtual.vue

@@ -46,9 +46,17 @@
 </template>
 
 <script>
+import {
+	getInfo
+} from '@/api/index';
+import {
+	netVirtualAddrAdd,
+	getVirtualAddrByPhone
+} from '@/api/address';
 export default {
 	data() {
 		return {
+			query: {},
 			// 选中的值
 			selectedValue: 1,
 			// 模拟数据列表
@@ -58,15 +66,55 @@ export default {
 			]
 		};
 	},
+	onLoad(query) {
+		this.query = query;
+	},
+	onShow() {
+		// this.getData();
+		this.getUData();
+	},
 	methods: {
+		getData() {
+			getVirtualAddrByPhone({ phone: '19834500372' }).then(res => {
+				// console.log(1, res)
+			});
+		},
+		getUData() {
+			getInfo().then(res => {
+				if (res.data.code == 200) {
+					this.userInfo = res.data.data;
+				}
+			});
+		},
 		// 点击文字也能选中
 		selectItem(id) {
 			this.selectedValue = id;
 		},
 		// 添加地址
 		addAddress() {
-			uni.showToast({ title: '点击了添加', icon: 'none' });
-			// 逻辑:跳转添加页面或弹窗
+			uni.chooseLocation({
+				success: res => {
+					console.log(res)
+					return;
+					let params = {
+						name: res.name,
+						address: res.address,
+						atlasAdd: res.atlasAdd,
+						latitude: res.latitude,
+						longitude: res.longitude,
+						type: 2,
+						userType: 2,
+						// user
+						openid: uni.getStorageSync('wx_copenid'),
+						phone: this.query.phone,
+						userName: this.query.name,
+					}
+					// 更新数据
+					netVirtualAddrAdd(params).then(res => {
+						this.getData();
+					});
+				}
+			});
 		},
 		// 删除条目
 		deleteItem(index) {

+ 32 - 8
src/pages/demo/coupon.vue

@@ -1,6 +1,6 @@
 <template>
     <view class="page-container">
-        <u-navbar title="我的卡券" :autoBack="true" placeholder border></u-navbar>
+        <!-- <u-navbar title="我的卡券" :autoBack="true" placeholder border></u-navbar> -->
         <view class="tabs-box">
             <u-tabs :list="tabList" @click="tabChange" lineColor="#03C8BE"
                 activeStyle="color: #03C8BE; font-weight: bold;"
@@ -13,7 +13,11 @@
                 :class="['coupon-card', { 'is-disabled': item.status !== 'unused' }]">
                 <view class="left-content">
                     <view class="coupon-title">{{ item.title }}</view>
-                    <view class="coupon-time">有效期至{{ item.expiryDate }}</view>
+                    <view class="coupon-time">
+                        <view v-if="item.discountType == 3">满{{ item.thresholdAmount }}减{{ item.discountValue }}</view>
+                        <view v-else>满{{ item.thresholdAmount }}可用</view>
+                        <view>有效期至{{ item.expirationTimeString }}</view>
+                    </view>
                     <view class="coupon-type">
                         <text>现金券*1</text>
                         <view class="detail-link" @click.stop="toggleDetail(index)">
@@ -23,9 +27,13 @@
                 </view>
 
                 <view class="right-action">
-                    <view class="amount-box">
+                    <view class="amount-box" v-if="item.discountType == 3">
                         <text class="unit">¥</text>
-                        <text class="val">{{ item.amount }}</text>
+                        <text class="val">{{ item.discountValue }}</text>
+                    </view>
+                    <view class="amount-box" v-else>
+                        <text class="val">{{ item.rebValue }}</text>
+                        <text class="unit">折</text>
                     </view>
 
                     <view v-if="item.status === 'unused'" class="action-btn active">立即使用</view>
@@ -45,6 +53,9 @@
 </template>
 
 <script>
+import {
+    getCoupon
+} from '@/api/index';
 export default {
     data() {
         return {
@@ -57,10 +68,10 @@ export default {
             ],
             // 模拟卡券数据
             couponList: [
-                { id: 1, title: '仅项目费用满498可使用', amount: '40', expiryDate: '2026-01-24 23:59:59', status: 'unused', phone: '180****9382', showDetail: false },
-                { id: 2, title: '仅项目费用满398可使用', amount: '30', expiryDate: '2026-01-24 23:59:59', status: 'used', phone: '180****9382', showDetail: false },
-                { id: 3, title: '仅项目费用满298可使用', amount: '20', expiryDate: '2026-01-24 23:59:59', status: 'expired', phone: '180****9382', showDetail: false },
-                { id: 4, title: '仅项目费用满198可使用', amount: '10', expiryDate: '2026-01-24 23:59:59', status: 'unused', phone: '180****9382', showDetail: false }
+                { id: 1, title: '仅项目费用满498可使用', rebValue: '40', expirationTimeString: '2026-01-24 23:59:59', status: 'unused', phone: '180****9382', showDetail: false },
+                { id: 2, title: '仅项目费用满398可使用', rebValue: '30', expirationTimeString: '2026-01-24 23:59:59', status: 'used', phone: '180****9382', showDetail: false },
+                { id: 3, title: '仅项目费用满298可使用', rebValue: '20', expirationTimeString: '2026-01-24 23:59:59', status: 'expired', phone: '180****9382', showDetail: false },
+                { id: 4, title: '仅项目费用满198可使用', rebValue: '10', expirationTimeString: '2026-01-24 23:59:59', status: 'unused', phone: '180****9382', showDetail: false }
             ]
         };
     },
@@ -72,7 +83,20 @@ export default {
             return this.couponList.filter(item => item.status === tabValue);
         }
     },
+    onShow() {
+        // this.getData();
+    },
     methods: {
+        getData() {
+            let params = {
+                openid: uni.getStorageSync('wx_copenid')
+            }
+            getCoupon(params).then(res => {
+                if (res.data.code == 200) {
+                    this.couponList = res.data.data;
+                }
+            });
+        },
         tabChange(item) {
             this.currentTab = item.index;
         },

+ 6 - 6
src/pages/identify/approve_data.vue

@@ -2,7 +2,7 @@
 	<view class="approve_box">
 		<view class="data">
 			<view class="left">
-				<image src="../../static/other/approve.png" mode=""></image>
+				<image src="/static/other/approve.png" mode=""></image>
 			</view>
 			<view class="right">
 				<view class="top">
@@ -15,7 +15,7 @@
 		</view>
 		<view class="data">
 			<view class="left">
-				<image src="../../static/other/approve.png" mode=""></image>
+				<image src="/static/other/approve.png" mode=""></image>
 			</view>
 			<view class="right">
 				<view class="top">
@@ -28,7 +28,7 @@
 		</view>
 		<view class="data">
 			<view class="left">
-				<image src="../../static/other/approve.png" mode=""></image>
+				<image src="/static/other/approve.png" mode=""></image>
 			</view>
 			<view class="right">
 				<view class="top">
@@ -41,7 +41,7 @@
 		</view>
 		<view class="data">
 			<view class="left">
-				<image src="../../static/other/approve.png" mode=""></image>
+				<image src="/static/other/approve.png" mode=""></image>
 			</view>
 			<view class="right">
 				<view class="top">
@@ -58,7 +58,7 @@
 			</view>
 			<view class="img">
 				<image :src="$globalData.publicUrl + businessLicense" mode=""></image>
-				<image src="../../static/other/mask.png" mode="" class="mask"></image>
+				<image src="/static/other/mask.png" mode="" class="mask"></image>
 			</view>
 		</view>
 		<view class="credential">
@@ -67,7 +67,7 @@
 			</view>
 			<view class="img">
 				<image :src="$globalData.publicUrl + certification" mode=""></image>
-					<image src="../../static/other/mask.png" mode="" class="mask"></image>
+					<image src="/static/other/mask.png" mode="" class="mask"></image>
 			</view>
 		</view>
 	</view>

+ 16 - 35
src/pages/identify/identify.vue

@@ -24,22 +24,22 @@
 			</view>
 			<view class="search_box" style="background: #F7FFFF;">
 				<!-- <view class="address" v-if="city == ''" @click="show = true">
-					选择市<image src="../../static/identify/down.png" mode=""></image>
+					选择市<image src="/static/identify/down.png" mode=""></image>
 				</view>
 				<view class="address" v-else @click="show = true">
 					<text>{{city}}</text>
-					<image src="../../static/identify/down.png" mode=""></image>
+					<image src="/static/identify/down.png" mode=""></image>
 				</view> -->
 				<view class="weui-cells weui-cells_after-title">
 					<!-- <u-picker :show="show" :columns="[cityList]" keyName="label" 
 						@cancel="show = false" @confirm="onSelect"
 					></u-picker> -->
 					<view class="address" @click="show = true" v-if="city == ''">
-						<!-- 选择市<image src="../../static/identify/down.png" mode=""></image> -->
+						<!-- 选择市<image src="/static/identify/down.png" mode=""></image> -->
 					</view>
 					<view class="address" @click="show = true" v-else>
 						{{city}}
-						<!-- <image src="../../static/identify/down.png" mode=""></image> -->
+						<!-- <image src="/static/identify/down.png" mode=""></image> -->
 					</view>
 				</view>
 				<view class="search">
@@ -60,13 +60,11 @@
 		<mescroll-uni class="list" :fixed="false" ref="mescrollRef" @up="getList" @init="mescrollInit">
 			<view class="item" v-for="(item,index) in list" :key="index" @click.stop="godetails(item.id)">
 				<view class="hot">
-					<image src="../../static/identify/hot.png" mode="" />
+					<image src="/static/identify/hot.png" mode="" />
 				</view>
 				<view class="itemL">
-					<!-- <view class="hot" v-if="item.nB3 == 1"> -->
-
 					<view class="img">
-						<image :src="$globalData.publicUrl + item.cPortrait" />
+						<u-image :src="$globalData.publicUrl + item.cPortrait" width="160rpx" height="160rpx" radius="2rpx" mode="aspectFill"></u-image>
 					</view>
 					<!-- <view class="new" v-if="item.nB2 == 1">
 						new
@@ -86,22 +84,22 @@
 							</view>
 						</view>
 						<!-- <view class="address">
-							<image src="../../static/identify/address.png" mode="" />{{item.distance}}km
+							<image src="/static/identify/address.png" mode="" />{{item.distance}}km
 						</view> -->
 					</view>
 					<view class="mark">
 						<!-- 评分,默认5星 -->
 						<view class="center">
-							<image src="../../static/identify/star.png" mode="" />{{item.nStar}}分
+							<image src="/static/identify/star.png" mode="" />{{item.nStar}}分
 						</view>
 						<!-- 收藏数量 -->
 						<view class=" center right">
-							<image src="../../static/identify/my1.png" mode="" />
+							<image src="/static/identify/my1.png" mode="" />
 							<text>{{item.nZan}}</text> 人
 						</view>
 						<!-- 服务数量 -->
 						<view class="right">
-							<!-- <image src="../../static/identify/serve.png" mode="" /> -->
+							<!-- <image src="/static/identify/serve.png" mode="" /> -->
 							已服务: <text>{{item.nNum}}</text> 人
 						</view>
 					
@@ -116,7 +114,7 @@
 							</view>
 						</view> -->
 						<view class="free_box">
-							<image src="../../static/identify/length.png" mode="" />
+							<image src="/static/identify/length.png" mode="" />
 							{{item.distance}}km
 						</view>
 
@@ -159,11 +157,11 @@
 								<view class="counter">
 									<!-- <view @click="decrease(item,index)">-</view> -->
 									<view class="minus" @click="decrease(item,index)">
-										<image src="../../static/identify/minus.png" mode="" />
+										<image src="/static/identify/minus.png" mode="" />
 									</view>
 									<text>{{item.number}}</text>
 									<view class="minus" @click="increase(index)">
-										<image src="../../static/identify/add.png" mode="" />
+										<image src="/static/identify/add.png" mode="" />
 									</view>
 									<!-- <view @click="increase(index)">+</view> -->
 								</view>
@@ -172,12 +170,9 @@
 					</view>
 				</view>
 				<view class="now" @click="nowYuyue"><text>立即预约</text></view>
-
 			</view>
-
 		</view>
 	</view>
-
 </template>
 
 <script>
@@ -209,17 +204,17 @@
 				searchList: [{
 						name: '全部',
 						value: '',
-						src: '../../static/identify/spa.png'
+						src: '/static/identify/spa.png'
 					},
 					{
 						name: '金牌',
 						value: '1',
-						src: '../../static/identify/gold.png'
+						src: '/static/identify/gold.png'
 					},
 					{
 						name: '银牌',
 						value: '0',
-						src: '../../static/identify/silver.png'
+						src: '/static/identify/silver.png'
 					},
 				],
 				selectIndex: 0,
@@ -771,23 +766,9 @@
 					height: 100%;
 					margin-right: 30rpx;
 					display: flex;
-					// flex-direction: column;
 					align-items: center;
 					justify-content: center;
 
-
-					.img {
-						width: 160rpx;
-						height: 160rpx;
-						// border-radius: 50%;
-						// overflow: hidden;
-
-						image {
-							width: 100%;
-							height: 100%;
-						}
-					}
-
 					.status {
 						font-size: 24rpx;
 						position: absolute;

+ 7 - 7
src/pages/index/details.vue

@@ -11,7 +11,7 @@
 				<view class="name">
 					<view class="names"> <text></text> {{detail.cTitle}}</view>
 					<view class="price">
-						<!-- <image src="../../static/identify/time.png" />{{detail.nMinute}}分钟 -->
+						<!-- <image src="/static/identify/time.png" />{{detail.nMinute}}分钟 -->
 						¥<text>{{price}}</text> 
 					</view>
 				</view>
@@ -31,14 +31,14 @@
 				</view>
 				<view class="three">
 					<view>
-						<image src="../../static/identify/approve.png" mode=""></image>实名认证
+						<image src="/static/identify/approve.png" mode=""></image>实名认证
 					</view>
 					<view>
-						<image src="../../static/identify/approve.png" mode="">爽约包赔
+						<image src="/static/identify/approve.png" mode="">爽约包赔
 					</view>
 					<view @click="goApprove(details.id)">
-						<image src="../../static/identify/approve.png" mode="">商户认证
-							<!-- <image src="../../static/identify/more.png" mode=""></image> -->
+						<image src="/static/identify/approve.png" mode="">商户认证
+							<!-- <image src="/static/identify/more.png" mode=""></image> -->
 					</view>
 				</view>
 			</view>
@@ -73,12 +73,12 @@
 							<view class="title">
 								<view class="name">{{item.cName}}</view>
 								<view class="address">
-									<image src="../../static/identify/address.png" mode="" />{{item.distance}}km
+									<image src="/static/identify/address.png" mode="" />{{item.distance}}km
 								</view>
 							</view>
 							<view class="mark">
 								<view class="center">
-									<image src="../../static/identify/star.png" mode="" />{{item.nStar}}
+									<image src="/static/identify/star.png" mode="" />{{item.nStar}}
 								</view>
 								<view class="right">
 									已服务 <text>{{item.nNum}}</text> 单

+ 2 - 2
src/pages/index/index.vue

@@ -196,8 +196,8 @@ export default {
 			}
 			this.rankList = [];
 			getRecommendList(params).then(res => {
-				if (res.data) {
-					this.rankList = res.data.slice(0, 4);
+				if (res.data.data) {
+					this.rankList = res.data.data.slice(0, 4);
 				}
 			});
 		},

+ 3 - 3
src/pages/login/wxLogin.vue

@@ -3,15 +3,15 @@
 		<view class="title">
 		</view>
 		<view class="logo">
-			<image src="../../static/identify/logo.png" mode=""></image>
+			<image src="/static/identify/logo.png" mode=""></image>
 		</view>
 		<view class="btn" @click="login">
 			微信登录
 		</view>
 		<view class="agree">
 			<view class="round" @click="isLook">
-				<image src="../../static/other/select_round.png" mode="" v-if="look"></image>
-				<image src="../../static/other/round.png" mode="" v-else></image>
+				<image src="/static/other/select_round.png" mode="" v-if="look"></image>
+				<image src="/static/other/round.png" mode="" v-else></image>
 			</view>
 			<view class="choice">
 				我已阅读并同意 <text @click="goAgreement">《用户协议》</text> 和 <text @click="goPrivacy">《隐私政策》</text>

+ 2 - 2
src/pages/my/add_blank.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="success" v-if="isSuccess">
 		<view class="success_img">
-			<image src="../../static/other/select_round.png" mode=""></image>
+			<image src="/static/other/select_round.png" mode=""></image>
 		</view>
 		<text>添加成功</text><br />
 		<text class="success_blank">中国工商银行( 0882)</text>
@@ -21,7 +21,7 @@
 				</view>
 				<view class="inp" @click="show = true">
 					{{blankName}}
-					<image src="../../static/identify/down.png" mode=""></image>
+					<image src="/static/identify/down.png" mode=""></image>
 				</view>
 			</view>
 			<view class="item">

+ 9 - 9
src/pages/my/collect.vue

@@ -6,7 +6,7 @@
 		<view class="list" v-else>
 			<view class="item" v-for="(item,index) in list" :key="index">
 				<view class="hot">
-					<image src="../../static/identify/hot.png" mode="" />
+					<image src="/static/identify/hot.png" mode="" />
 				</view>
 				<view class="itemL">
 					<!-- <view class="hot" v-if="item.nB3 == 1"> -->
@@ -31,22 +31,22 @@
 							</view>
 						</view>
 						<!-- <view class="address">
-									<image src="../../static/identify/address.png" mode="" />{{item.distance}}km
+									<image src="/static/identify/address.png" mode="" />{{item.distance}}km
 								</view> -->
 					</view>
 					<view class="mark">
 						<!-- 评分,默认5星 -->
 						<view class="center">
-							<image src="../../static/identify/star.png" mode="" />{{item.js.nStar}}人
+							<image src="/static/identify/star.png" mode="" />{{item.js.nStar}}人
 						</view>
 						<!-- 收藏数量 -->
 						<view class=" center right">
-							<image src="../../static/identify/my1.png" mode="" />
+							<image src="/static/identify/my1.png" mode="" />
 							<text>{{item.js.number}}</text> 人
 						</view>
 						<!-- 服务数量 -->
 						<view class="right">
-							<!-- <image src="../../static/identify/serve.png" mode="" /> -->
+							<!-- <image src="/static/identify/serve.png" mode="" /> -->
 							已服务: <text>{{item.js.nNum}}</text> 人
 						</view>
 
@@ -61,7 +61,7 @@
 									</view>
 								</view> -->
 						<view class="free_box">
-							<image src="../../static/identify/length.png" mode="" />
+							<image src="/static/identify/length.png" mode="" />
 							{{item.js.distance}}km
 						</view>
 
@@ -82,13 +82,13 @@
 							</view>
 							<view class="items" @click="godetails(item.js.id)">
 								<view class="">
-									<image src="../../static/identify/star.png" mode="" />{{item.js.nStar}}
+									<image src="/static/identify/star.png" mode="" />{{item.js.nStar}}
 								</view>
 								<view class="">
-									<image src="../../static/identify/serve.png" mode="" />{{item.js.nNum}}
+									<image src="/static/identify/serve.png" mode="" />{{item.js.nNum}}
 								</view>
 								<view class="">
-									<image src="../../static/identify/collect.png" mode="" />{{item.js.number || '0'}}
+									<image src="/static/identify/collect.png" mode="" />{{item.js.number || '0'}}
 								</view>
 							</view>
 							<view class="btn" @click="bookNow(item.js.id,item.js.nStatus)">

+ 104 - 186
src/pages/my/coupon.vue

@@ -1,56 +1,33 @@
 <template>
-	<view class="coupon_page">
-		<view class="coupon_box">
-			<view class="none" v-if="couponList.length == 0">
-				暂无优惠券
-			</view>
-			<view class="coupon" v-if="couponList.length === 0">
-				<view class="item" v-for="(item, index) in 10" :key="item.id">
-					<view class="left">
-						<!-- <text v-if="item.discountType==2">折扣</text> 
-						<text v-else> 满减</text> --> 
-						<!-- ¥{{item.discountValue}} <br /> -->
-						<text v-if="item.discountType == 3">¥{{item.discountValue}}<br/></text>
-						<text v-else>{{item.rebValue}}折</text>
-					</view>
-					<view class="right" v-if="item.discountType == 3">
-						满{{item.thresholdAmount}}减{{item.discountValue}} <br/>
-						有效期至{{item.expirationTimeString}}
+	<view class="coupon-page">
+		<view class="list-container">
+			<view v-for="(item, index) in couponList" :key="index"
+				:class="['coupon-card']">
+				<view class="left-content">
+					<view class="coupon-title">
+						<view v-if="item.discountType == 3">满{{ item.thresholdAmount }}减{{ item.discountValue }}</view>
+						<view v-else>满{{ item.thresholdAmount }}可用</view>
 					</view>
-					<view class="right" v-else>
-						满{{item.thresholdAmount}}可用 <br/>
-						有效期至{{item.expirationTimeString}}
-					</view>
-					<view class="one_btn" @click.stop="goIdentify(item)">
-						<!-- <image src="/static/index/one.png" mode=""></image> -->
-						立即使用
+					<view class="coupon-time">
+						<view>有效期至{{ item.expirationTimeString }}</view>
 					</view>
 				</view>
-			</view>
 
-			<!-- <view class="coupon" v-for="(item,index) in couponList" :key="index" v-else>
-				<view class="top">
-					<view class="left">
-						¥<text>{{item.discountValue}}</text>
-					</view>
-
-					<view class="center" v-if="item.discountType === 1">
-						无门槛
-					</view>
-					<view class="center" v-if="item.discountType ===2">
-						折扣
+				<view class="right-action">
+					<view class="amount-box" v-if="item.discountType == 3">
+						<text class="unit">¥</text>
+						<text class="val">{{ item.discountValue }}</text>
 					</view>
-					<view class="center" v-if="item.discountType === 3">
-						满减
-					</view>
-					<view class="right">
-						<view class="btn" @click="goIdentify(item)">
-							使用
-						</view>
-						有效期至{{item.expirationTimeString}}
+					<view class="amount-box" v-else>
+						<text class="val">{{ item.rebValue }}</text>
+						<text class="unit">折</text>
 					</view>
+
+					<view class="action-btn active" @click.stop="goIdentify(item)">立即使用</view>
 				</view>
-			</view> -->
+			</view>
+
+			<u-empty v-if="couponList.length === 0" mode="coupon" marginTop="100"></u-empty>
 		</view>
 	</view>
 </template>
@@ -62,41 +39,35 @@
 	export default {
 		data() {
 			return {
+				query: {},
 				couponList: [],
-				expirationTime: 0,
-				title: ''
 			}
 		},
-		onLoad(options) {
-			if (options) {
-				this.title = options.title
-			}
+		onLoad(query) {
+			this.query = query;
 		},
 		onShow() {
-			this.getCouponList()
+			this.getData();
 		},
 		methods: {
-			getCouponList() {
-				var openid = {
+			getData() {
+				let params = {
 					openid: uni.getStorageSync('wx_copenid')
 				}
-				getCoupon(openid).then(res => {
+				getCoupon(params).then(res => {
 					if (res.data.code == 200) {
-						this.couponList = res.data.data
+						this.couponList = res.data.data;
 					}
-				})
+				});
 			},
 			goIdentify(item) {
-				if (this.title == 'select') {
+				if (this.query.title == 'select') {
                     uni.setStorageSync('couponData', item);
 					uni.navigateBack();
 					// uni.navigateTo({
 					// 	url: `/pages/identify/pay_order?couponId=${item.id}&couponMoney=${item.discountValue}`
 					// })
 					// uni.$emit('returnData', item)
-					// uni.navigateBack({
-					// 	delta: 1
-					// })
 				} else {
 					uni.switchTab({
 						url: '/pages/identify/identify'
@@ -108,141 +79,88 @@
 </script>
 
 <style lang="scss" scoped>
-	.coupon_page {
-		width: 100vw;
-		height: 100vh;
-		background: linear-gradient(to bottom, #d7f3f9, #f3f3f3);
-
-		.coupon_box {
-			width: 100%;
-			height: 100%;
-			// overflow-y: auto;
-			padding: 20rpx;
-			box-sizing: border-box;
-			.none {
-				// width: 100%;
-				// height: 100%;
-				text-align: center;
-				padding-top: 300rpx;
+.coupon-page {
+	min-height: 100vh;
+	background: linear-gradient(to bottom, #d7f3f9, #f3f3f3);
+
+	.list-container {
+		padding: 20rpx 24rpx;
+
+		.coupon-card {
+			margin-bottom: 24rpx;
+			position: relative;
+			border-radius: 16rpx;
+			background-color: #fff;
+			display: flex;
+			flex-wrap: wrap;
+			overflow: hidden;
+			transition: opacity 0.3s;
+
+			.left-content {
+				flex: 1;
+				padding: 30rpx;
+				border-right: 2rpx dashed #eee;
+
+				.coupon-title {
+					font-size: 30rpx;
+					font-weight: bold;
+					color: #333;
+					margin-bottom: 10rpx;
+				}
+
+				.coupon-time {
+					font-size: 22rpx;
+					color: #999;
+					margin-bottom: 20rpx;
+				}
 			}
 
-			.coupon {
-				width: 100%;
-				height: 100%;
-				// position: absolute;
-				padding: 10rpx;
-				// top: 50%;
-				// left: 50%;
-				// transform: translate(-50%, -50%);
-				overflow-y: auto;
-				box-sizing: border-box;
-
-				.item {
-					width: 92%;
-					height: 120px;
-					background-image: url(../../static/index/item.png);
-					// background-repeat: no-repeat;
-					background-size: cover;
-					/* 背景图宽度自适应 */
-					background-position: center;
-					/* 背景图居中 */
-					padding: 10rpx 25rpx;
-					display: flex;
-					// justify-content: space-around;
-					align-items: center;
-					position: relative;
-					margin-bottom: 10rpx;
+			.right-action {
+				width: 220rpx;
+				padding: 20rpx;
+				display: flex;
+				align-items: center;
+				flex-direction: column;
+				justify-content: center;
+				background-color: #E8FBFA; 
+
+				.amount-box {
+					color: #03C8BE;
+					margin-bottom: 16rpx;
+
+					.unit {
+						font-size: 24rpx;
+						margin-right: 4rpx;
+					}
 
-					.left {
-						color: #ff0000;
-						margin-left: 20px;
-						font-size: 35rpx;
+					.val {
+						font-size: 50rpx;
+						font-weight: bold;
 					}
+				}
+
+				.action-btn {
+					width: 140rpx;
+					height: 54rpx;
+					border-radius: 40rpx;
+					font-size: 24rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
 
-					.right {
-						height: 100%;
-						margin-left: 100rpx;
-						padding-top: 120rpx;
-						font-size: 28rpx;
-						box-sizing: border-box;
+					&.active {
+						background-color: #03C8BE;
+						color: #fff;
 					}
 
-					.one_btn {
-						position: absolute;
-						top: 10%;
-						right: 2%;
-						width: 100rpx;
-						height: 210rpx;
-						border-radius: 20rpx;
-						background-color: #fff9cb;
-						font-size: 46rpx;
-						display: flex;
-						justify-content: center;
-						align-items: center;
-						 writing-mode: vertical-rl; /* 文字从上到下竖排,从右到左 */
-						image {
-							width: 100%;
-							height: 100%;
-						}
+					&.disabled {
+						background-color: transparent;
+						border: 2rpx solid #03C8BE;
+						color: #03C8BE;
 					}
 				}
 			}
-
-			// .coupon {
-			// 	width: 95%;
-			// 	height: 200rpx;
-			// 	box-sizing: border-box;
-			// 	background-color: #2cb8d4;
-			// 	border-radius: 10rpx;
-			// 	padding: 20rpx;
-
-			// 	.top {
-			// 		display: flex;
-			// 		width: 100%;
-			// 		height: 100%;
-			// 		align-items: center;
-
-			// 		.left {
-			// 			width: 20%;
-			// 			height: 100rpx;
-			// 			font-size: 40rpx;
-			// 			color: #ffffff;
-			// 			margin-right: 30rpx;
-			// 			display: flex;
-			// 			align-items: center;
-
-			// 			text {
-			// 				font-size: 80rpx;
-			// 			}
-			// 		}
-
-			// 		.center {
-			// 			width: 30%;
-			// 			height: 100rpx;
-			// 			font-size: 50rpx;
-			// 			color: #ffffff;
-			// 			display: flex;
-			// 			align-items: center;
-			// 		}
-
-			// 		.right {
-			// 			height: 100%;
-			// 			color: #666;
-			// 			padding-top: 120rpx;
-
-			// 			.btn {
-			// 				width: 100px;
-			// 				height: 30px;
-			// 				text-align: center;
-			// 				align-items: center;
-			// 				border-radius: 10px;
-			// 				background: linear-gradient(to bottom, #ead3ba, #ddbe96);
-			// 				line-height: 30px;
-			// 				margin: 0px auto 10px;
-			// 			}
-			// 		}
-			// 	}
-			// }
 		}
 	}
+}
 </style>

+ 2 - 2
src/pages/my/feedback.vue

@@ -6,8 +6,8 @@
 			</view>
 			<view class="select" v-for="(item,index) in list" :key="index" @click="selectType(item,index)">
 				{{item.info}}
-				<image src="../../static/other/select.png" mode="" v-if="currentIndex === index"></image>
-				<image src="../../static/other/no_select.png" mode="" v-else></image>
+				<image src="/static/other/select.png" mode="" v-if="currentIndex === index"></image>
+				<image src="/static/other/no_select.png" mode="" v-else></image>
 			</view>
 		</view>
 		<view class="content">

+ 17 - 26
src/pages/my/pay.vue

@@ -27,7 +27,7 @@
 					<view class="right" >
 						<!-- <image :src="$globalData.publicUrl+jsHead" mode="" v-if="jsHead !== ''"></image> -->
 						{{jsName}}
-						<image src="../../static/identify/more.png" mode=""></image>
+						<image src="/static/identify/more.png" mode=""></image>
 					</view>
 				</view>
 			</view>
@@ -46,10 +46,10 @@
 				<span>充值对象</span>
 				<view class="technician" @click="popup_show = true">
 					<view class="right" >
-						<image src="../../static/identify/add1.png" mode="" v-if="jsHead == ''"></image>
+						<image src="/static/identify/add1.png" mode="" v-if="jsHead == ''"></image>
 						<image :src="$globalData.publicUrl+jsHead" mode="" v-else></image>
 						{{jsName}}
-						<image src="../../static/identify/more.png" mode=""></image>
+						<image src="/static/identify/more.png" mode=""></image>
 					</view>
 				</view>
 			</view>
@@ -66,7 +66,7 @@
 		<view class="select_technician" v-if="popup_show" @click="cut" > 
 			<view class="select_technician_content"  @click.stop>
 				<view class="head">
-					<image src="../../static/identify/head.png" mode=""></image>
+					<image src="/static/identify/head.png" mode=""></image>
 				</view>
 				<view class="title">
 					请选择一位商户充值
@@ -74,7 +74,7 @@
 				<view class="technician_select">
 					<view class="address">
 						<view class="left" @click="show = true">
-							<image src="../../static/identify/my3.png" mode=""></image>
+							<image src="/static/identify/my3.png" mode=""></image>
 							{{city}}
 						</view>
 						<view class="right">
@@ -82,9 +82,11 @@
 						</view>
 					</view>
 				</view>
-				<view class="technician_box" v-if="jsList.length  > 0">
-					<view class="technician" :class="nowIndex == index?'option_technician':''" v-for="(item,index) in jsList"
-						:key="index" @click="selectJs(item,index)">
+				<view class="technician_box">
+					<view class="technician" :class="nowIndex == index?'option_technician':''" 
+						v-for="(item,index) in jsList" :key="index" 
+						v-if="jsList.length > 0"
+						@click="selectJs(item,index)">
 						<view class="technician_left">
 							<image :src="$globalData.publicUrl + item.cPortrait" mode=""></image>
 						</view>
@@ -94,7 +96,7 @@
 							</view>
 							<view class="technician_data">
 								<!-- <view class="technician_mark">
-									<image src="../../static/identify/star.png" mode=""></image>
+									<image src="/static/identify/star.png" mode=""></image>
 									{{item.nStar}}
 								</view> -->
 								<view class="technician_num">
@@ -103,18 +105,12 @@
 							</view>
 						</view>
 						<view class="round">
-							<!-- <span class="real" v-if="nowIndex == index"></span> -->
-							<!-- <span class="empty" v-else></span> -->
-							<!-- <image src="../../static/identify/head.png" mode=""></image> -->
-							<image src="../../static/identify/round.png" mode="" v-if="nowIndex !== index"></image>
-							<image src="../../static/other/select_round.png" mode="" v-else></image>
+							<!-- <image src="/static/identify/head.png" mode=""></image> -->
+							<image src="/static/identify/round.png" mode="" v-if="nowIndex !== index"></image>
+							<image src="/static/other/select_round.png" mode="" v-else></image>
 						</view>
 					</view>
-				</view>
-				<view class="technician_box" v-else>
-					<view class="null">
-						<image src="https://www.mescroll.com/img/mescroll-empty.png" mode=""></image>
-					</view>
+					<u-empty :show="jsList.length === 0" icon="https://www.mescroll.com/img/mescroll-empty.png" />
 				</view>
 				<view class="btn_box">
 					<!-- <view class="btn" @click="popup_show = false">
@@ -557,13 +553,8 @@
 					overflow-y: auto;
 
 					.null {
-						width: 100%;
-						height: 100%;
-
-						image {
-							width: 100%;
-							// margin-top: 50px;
-						}
+						width: 200rpx;
+						height: 200rpx;
 					}
 
 					.technician {

+ 4 - 4
src/pages/my/withdraw.vue

@@ -9,14 +9,14 @@
 				</view>
 				<view class="select_bank" @click="isSelect = true">
 					<view class="blank_logo">
-						<image src="../../static/identify/rest.png" alt="" />
+						<image src="/static/identify/rest.png" alt="" />
 					</view>
 					<view class="blank_num">
 						{{blank}}<br />
 						<text>注:仅支持整数,72小时内到账</text>
 					</view>
 					<view class="toggle">
-						<image src="../../static/identify/more.png" alt="" />
+						<image src="/static/identify/more.png" alt="" />
 					</view>
 				</view>
 			</view>
@@ -65,11 +65,11 @@
 						</view>
 						<view class="add_btn" @click="addBlank">
 							<view class="add_left">
-								<image src="../../static/other/add_blank.png" mode=""></image>
+								<image src="/static/other/add_blank.png" mode=""></image>
 								添加银行卡提现
 							</view>
 							<view class="add_right">
-								<image src="../../static/identify/more.png" mode=""></image>
+								<image src="/static/identify/more.png" mode=""></image>
 							</view>
 						</view>
 					</view>

+ 3 - 3
src/pages/order/order_detail.vue

@@ -59,7 +59,7 @@
 			</view>
 			<!-- 			<view class="box1">
 				<view class="imgs">
-					<image src="../../static/order/deimg.jpg" mode="widthFix" />
+					<image src="/static/order/deimg.jpg" mode="widthFix" />
 				</view>
 				<view class="box1cont">
 					<view class="title">订单{{details.statusName}}</view>
@@ -167,10 +167,10 @@
 				<view class="content">
 					<view class="time">{{recordTime}}</view>
 					<view class="Playparse" @click="pauseRecord" v-if="isRecording">
-						<image src="../../static/identify/rec1.png" mode="" />
+						<image src="/static/identify/rec1.png" mode="" />
 					</view>
 					<view class="Playparse" @click="startRecord" v-else>
-						<image src="../../static/identify/rec2.png" mode="" />
+						<image src="/static/identify/rec2.png" mode="" />
 					</view>
 				</view>
 			</view>

+ 10 - 2
src/pages/staff/index.vue

@@ -12,7 +12,7 @@
 					{{address}}
 				</view>
 			</view>
-			<view class="right" @click="getAddress">
+			<view class="right" @click="goAddress">
 				更换位置
 			</view>
 		</view>
@@ -269,7 +269,15 @@
 				this.isAddBlank = false
 			},
 			// 更换位置
-			getAddress() {
+			goAddress() {
+				let str = uni.$u.queryParams({
+					name: this.infoData.cNickName,
+					phone: this.infoData.cPhone
+				});
+				uni.navigateTo({
+					url: `/pages/address/virtual${str}`
+				});
+				return;
 				uni.chooseLocation({
 					success: res => {
 						this.address = res.address;