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

个人中心-我的修改样式
个人中心-个人资料修改样式
添加设置功能
添加支付密码的新增和修改相关页面逻辑

lkg 11 месяцев назад
Родитель
Сommit
c7be8b03a6

+ 8 - 1
common/api/common.js

@@ -157,7 +157,14 @@ export const getMyInviteFriend = data => {
 export const getConfig = data => {
 	return request.post('/wechat/data/config', data)
 }
+export const checkPayPswd = data => {
+	return request.post('/wechat/auth.center/checkPayPswd', data)
+}
+export const setPayPswd = data => {
+	return request.post('/wechat/auth.center/setPayPswd', data)
+}
 // 获取微信手机号
 export const getUserPhone = data => {
 	return request.post('/wechat/wxapp/userPhone', data)
-}
+}
+

+ 30 - 7
common/styles/common.scss

@@ -15,7 +15,12 @@ ol, ul {
 .mb5 {
   margin-bottom: 10rpx;
 }
-
+.mbr11{
+	margin-bottom: 11rpx;
+}
+.mb8 {
+	margin-bottom: 16rpx;
+}
 .mb10 {
   margin-bottom: 20rpx;
 }
@@ -34,6 +39,9 @@ ol, ul {
 .mr10 {
   margin-right: 10px;
 }
+.mr12 {
+	margin-right: 12px;
+}
 .mr20 {
   margin-right: 40rpx;
 }
@@ -43,6 +51,9 @@ ol, ul {
 .mt15 {
   margin-top: 15px;
 }
+.mt8 {
+	margin-top: 16rpx;
+}
 .mtr20 {
 	margin-top: 20rpx;
 }
@@ -55,6 +66,12 @@ ol, ul {
 .ml5{
 	margin-left: 10rpx;
 }
+.ml8{
+	margin-left: 16rpx;
+}
+.ml15{
+	margin-left: 30rpx;
+}
 .ml28{
 	margin-left: 56rpx;
 }
@@ -62,6 +79,9 @@ ol, ul {
 .pd10 {
 	padding: 0 20rpx;
 }
+.pdt0 {
+	padding-top: 0 !important;
+}
 
 .display-flex {
   display: flex;
@@ -256,7 +276,9 @@ ol, ul {
 .color-777 {
 	color: #777777;
 }
-
+.color-888 {
+	color: #888888;
+}
 
 .color-ca{
 	color: #CACACA;
@@ -278,7 +300,7 @@ ol, ul {
 
 .common-card{
 	background: #FFFFFF;
-	border-radius: 15rpx;
+	border-radius: 24rpx;
 	padding: 24rpx;
 	margin-bottom: 20rpx;
 }
@@ -375,14 +397,14 @@ ol, ul {
 	background: #F6F6F6;
 	border-radius: 4rpx;
 	padding: 0 22rpx;
-	color: #232323;
-	font-size: 22rpx;
+	color: #888888;
+	font-size: 24rpx;
 }
 
 .common-card-box {
 	width: 710rpx;
 	background: #FFFFFF;
-	border-radius: 15rpx 15rpx 15rpx 15rpx;
+	border-radius: 24rpx 24rpx 24rpx 24rpx;
 	margin: 0 auto 20rpx auto;
 	display: flex;
 	flex-direction: column;
@@ -392,13 +414,14 @@ ol, ul {
 	position: fixed;
 	bottom: 0;
 	width: 100%;
-	height: 158rpx;
+	height: 170rpx;
 	left: 0;
 	right: 0;
 	box-sizing: border-box;
 	padding: 27rpx 20rpx;
 	background-color: #fff;
 	z-index: 1000;
+	border-radius: 24rpx 24rpx 0rpx 0rpx;
 }
 
 

+ 1 - 2
components/tabbar/tabbar.vue

@@ -1,14 +1,13 @@
 <template>
   <view>
 
-    <u-tabbar :border="true" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true"
+    <u-tabbar :border="true" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true" zIndex="9999"
               :value="current?current:0" activeColor="#C29556" inactiveColor="#AAAFC4" @change="changeTab">
       <u-tabbar-item v-for="(item,index) in list" :key="index" :name="item.id" :text="item.text" style="width: 20%">
         <image slot="active-icon" :src="item.selectedIconPath" class="u-page__item__slot-icon"></image>
         <image slot="inactive-icon" :src="item.iconPath" class="u-page__item__slot-icon-index"></image>
       </u-tabbar-item>
     </u-tabbar>
-
   </view>
 </template>
 

+ 24 - 1
pages.json

@@ -215,7 +215,7 @@
 			{
 				"path": "personalDataManagement/index",
 				"style": {
-					"navigationBarTitleText": "个人中心",
+					"navigationBarTitleText": "个人信息",
 					"enablePullDownRefresh": false,
 					"app-plus": {
 						// 将回弹属性关掉
@@ -223,6 +223,29 @@
 					}
 				}
 			},
+			{
+				"path": "setting/index",
+				"style": {
+					"navigationBarTitleText": "设置",
+					"enablePullDownRefresh": false,
+					"app-plus": {
+						// 将回弹属性关掉
+						"bounce": "none"
+					}
+				}
+			},
+			{
+				"path": "setting/setPwd",
+				"style": {
+					"navigationBarTitleText": "设置安全密码",
+					"enablePullDownRefresh": false,
+					"navigationStyle": "custom",
+					"app-plus": {
+						// 将回弹属性关掉
+						"bounce": "none"
+					}
+				}
+			},
 			{
 				"path": "register/index",
 				"style": {

+ 1164 - 1092
pages/mine/index.vue

@@ -1,12 +1,12 @@
 <template>
-	<view class="app-page">
-		<view class="top-bar-view">
-			<view class="top-bg" :style="{background: bgImg ? null : 'linear-gradient(138deg, #ffecaf 0%, #fbf5e3 59%, #f5f6f8 100%)',
+  <view class="app-page">
+    <view class="top-bar-view">
+      <view class="top-bg" :style="{background: bgImg ? null : 'linear-gradient(138deg, #ffecaf 0%, #fbf5e3 59%, #f5f6f8 100%)',
 		opacity: '0.8'}">
-				<image v-if="bgImg" style="width: 100%;display: block;" mode="widthFix" :src="bgImg"></image>
-			</view>
-			<view class="top-box">
-				<view class="top-bar" :style="
+        <image v-if="bgImg" style="width: 100%;display: block;" mode="widthFix" :src="bgImg"></image>
+      </view>
+      <view class="top-box">
+        <view class="top-bar" :style="
             'height:' +
             topData.height +
             'px;' +
@@ -14,1101 +14,1173 @@
             topData.top +
             'px;padding-bottom:20rpx'
           ">
-					<u--text customStyle="font-weight: 800;" color="#282B39" align="center" size="34rpx" text="个人中心" />
-				</view>
-				<view class="login-box" @click="checkShowUserRegister()">
-					<view class="avatar-wrap">
-						<u--image width="126rpx" height="126rpx" radius="100%" shape="circle" bgColor="#d3c6b5"
-							customStyle="border-radius:100%;" :src="
+        </view>
+        <view class="display-flex-between">
+          <view class="login-box" @click="checkShowUserRegister()">
+            <view class="avatar-wrap">
+              <u--image width="126rpx" height="126rpx" radius="100%" shape="circle" bgColor="#d3c6b5"
+                        customStyle="border-radius:100%;" :src="
                 avatarUrl != defaultAvatarUrl
                   ? avatarUrl
                   : `/static/defaultAvatar.png`
               " :fade="true" duration="450"></u--image>
-						<view class="vip-tag"
-							:style="{background: `url(${user_grade_bg}) no-repeat center left`, backgroundSize: '154rpx 40rpx',}">
-							<!-- <u--image width="38rpx" height="38rpx" radius="100%" shape="circle"
-								customStyle="border-radius:100%;margin-right: -12rpx;" src="/static/vip_tag.png"
-								:fade="true" duration="450"></u--image> -->
-							<view class="vip-text">{{userInfo.vip_name}}</view>
-						</view>
-					</view>
-					<view class="user-info-wrap">
-						<view class="userName-wrap">
-							<text class="userName">{{
-                userName ? userName : "登录/注册"
-              }}</text>
-							<u--image width="30rpx" height="30rpx" customStyle="margin-left: 12rpx;"
-								src="/static/ic-editor-org.png" :fade="true" duration="450"></u--image>
-						</view>
-						<view class="info-list">
-							<text class="info-list-item">{{userInfo.phone}}</text>
-							<text class="info-list-item">余额: {{userInfo.rebate_total - userInfo.rebate_used}}</text>
-						</view>
-						<view class="info-list">积分:{{userInfo.integral_total - userInfo.integral_used}}</view>
-						<view class="info-list" style="color: #999"
-							v-if="userInfo.pid &&userInfo.agent && userInfo.agent.username ">
-							推荐人:{{userInfo.agent.username}}
-						</view>
-					</view>
-				</view>
-				<view class="jion-vip-wrap" @click="checkShowUserRegister()"
-					:style="{backgroundImage: `url(${jion_vip_bg})`}">
-					<!-- <view class="left"> -->
-					<!-- <view class="title">加入VIP会员</view> -->
-					<!-- <view class="docs">获取更多福利内容</view> -->
-					<!-- </view> -->
-					<!-- <view class="right-btn">立即加入</view> -->
-				</view>
-				<view class="orders-info-card">
-					<view class="orders-card">
-						<view class="card-title">
-							<text>我的订单</text>
-							<view class="right" @click="toOrderList(0)">查看全部<u-icon name="arrow-right" size="13"
-									color="#858585"></u-icon>
-							</view>
-						</view>
-						<u-line color="#F4F4F4"></u-line>
-						<view class="menu-box">
-							<view class="menu-item" @click="toOrderList(item.index)" v-for="(item, index) in shopList">
-								<view style="position: relative;">
-									<image :src="item.url" mode="heightFix"></image>
-									<u-badge :absolute="true" :offset="[-5,-10]" :value="orderNumber[item.numKey]">
-									</u-badge>
-								</view>
-								<text>{{ item.name }}</text>
-							</view>
-						</view>
-					</view>
-				</view>
-				<view class="member-info-card">
-					<view class="member-card">
-						<text class="card-title">分销商</text>
-						<u-line color="#F4F4F4"></u-line>
-						<view class="menu-box">
-							<view class="menu-item" @click="goToPath(item)" v-for="(item, index) in menuList">
-								<image :src="item.url" mode="heightFix"></image>
-								<text>{{ item.name }}</text>
-							</view>
-						</view>
-					</view>
-				</view>
-				<view class="member-other-card">
-					<text class="card-title">其他功能</text>
-					<u-line color="#F4F4F4"></u-line>
-					<view class="menu-other-box">
-						<view class="menu-other-item" v-for="(item, index) in otherList" :key="index"
-							@click="goToPath(item)">
-							<image :src="item.url" mode="heightFix"></image>
-							<text>{{ item.name }}</text>
-							<button style="position: absolute;width: 100%;height: 100%;z-index: 999;opacity: 0;"
-								v-if="item.value == 'concat'" open-type="contact" @contact="contact"></button>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<u-popup :show="showUserRegister" @close="showUserRegister = false" round="18rpx">
-			<form v-if="!isUserRegister" @submit="saveUserData">
-				<view class="m-content-view">
-					<text class="top-view"> {{shopName}} </text>
-					<text class="tips">请您授权头像昵称信息,您授权的信息将受到严格保护,请放心使用。</text>
-					<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
-						style="border: 0">
-						<u--image v-if="avatarUrl !== defaultAvatarUrl" width="149rpx" height="149rpx" radius="100%"
-							shape="circle" :src="avatarUrl" :fade="true" duration="450" mode="heightFix"></u--image>
-						<view class="v1" v-else>
-							<u--image width="80rpx" height="80rpx" radius="100%" shape="circle" :src="avatarUrl"
-								:fade="true" duration="450" mode="heightFix"></u--image>
-							<text v-if="avatarUrl === defaultAvatarUrl">获取头像</text>
-						</view>
-					</button>
-					<input name="nickname" v-model="userName" type="nickname" class="m-input" placeholder="请输入昵称" />
-					<button class="red-btn" form-type="submit">确认授权</button>
-				</view>
-			</form>
-		</u-popup>
-
-		<tabbarCom current="4"></tabbarCom>
-	</view>
+
+            </view>
+            <view class="user-info-wrap">
+              <view class="userName-wrap">
+                <text class="userName display-flex-content-center">{{
+                    userName ? userName : "登录/注册"
+                  }}
+                </text>
+                <u-icon
+                    name="edit-pen"
+                    size="20"
+                ></u-icon>
+              </view>
+              <view class="vip-tag"
+                    :style="{background: `url(${user_grade_bg}) no-repeat center left`,marginTop:'8rpx',width:'96rpx',height:'32rpx', backgroundSize: '96rpx 32rpx',}">
+                <!--                <view class="vip-text">{{userInfo.vip_name}}</view>-->
+              </view>
+              <text class="user-phone">{{ userInfo.phone }}</text>
+            </view>
+          </view>
+          <view class="login-box pdt0">
+            <view  @click="JumpSetting()">
+              <view class="mb5 display-flex-end">
+                <u-icon
+                    name="setting"
+                    size="26"
+                ></u-icon>
+              </view>
+              <view class="info-list" style="color: #999"
+                    v-if="userInfo.pid &&userInfo.agent && userInfo.agent.username ">
+                <text>推荐人:{{ userInfo.agent.username }}</text>
+              </view>
+              <view class="info-list">
+                <text>积分:
+                  <text class="info-list-rebate_total">{{ userInfo.integral_total - userInfo.integral_used }}</text>
+                </text>
+              </view>
+              <view class="info-list">
+                <text>余额:
+                  <text class="info-list-rebate_total">{{ userInfo.rebate_total - userInfo.rebate_used }}</text>
+                </text>
+              </view>
+            </view>
+          </view>
+        </view>
+        <view class="jion-vip-wrap" @click="checkShowUserRegister()"
+              :style="{backgroundImage: `url(${jion_vip_bg})`}">
+          <view class="title">
+            开通服务专享产品权益
+          </view>
+          <view class="title">
+            开通会员
+          </view>
+        </view>
+        <view class="orders-info-card">
+          <view class="orders-card">
+            <view class="card-title">
+              <text>商城订单</text>
+              <view class="right" @click="toOrderList(0)">查看全部订单
+                <view class="ml5">
+                  <u-icon name="arrow-right" size="13"
+                          color="#858585"></u-icon>
+                </view>
+              </view>
+            </view>
+            <u-line color="#F4F4F4"></u-line>
+            <view class="menu-box">
+              <view class="menu-item" @click="toOrderList(item.index)" v-for="(item, index) in shopList">
+                <view style="position: relative;">
+                  <image :src="item.url" mode="heightFix"></image>
+                  <u-badge :absolute="true" :offset="[-5,-10]" :value="orderNumber[item.numKey]">
+                  </u-badge>
+                </view>
+                <text>{{ item.name }}</text>
+              </view>
+            </view>
+          </view>
+        </view>
+        <view class="member-other-card">
+          <view v-for="(item, index) in otherList" :key="index"
+                @click="goToPath(item)">
+            <u-line color="#E8E8E8"></u-line>
+            <view class="display-flex-between">
+              <view class="mt15 mb15 display-flex-content-center" :style="[getKefuStyle(item)]">
+                <image :src="item.url" class="mr12" mode="heightFix" style="width: 36rpx;height: 36rpx"></image>
+                <text class="member-other-card-name">{{ item.name }}</text>
+                <button style="position: absolute;width: 690rpx;height:108rpx;z-index: 999;opacity: 0;;left: 10px"
+                        v-if="item.value == 'concat'" open-type="contact" @contact="contact"></button>
+              </view>
+              <view>
+                <u-icon name="arrow-right" bold color="#333333" size="14"></u-icon>
+              </view>
+            </view>
+
+          </view>
+        </view>
+        <view class="member-info-card">
+          <view class="member-card">
+            <text class="card-title">分销商</text>
+            <u-line color="#F4F4F4"></u-line>
+            <view class="menu-box">
+              <view class="menu-item" @click="goToPath(item)" v-for="(item, index) in menuList">
+                <view class="menu-item-bgColor">
+                  <image :src="item.url" mode="heightFix"></image>
+                  <text>{{ item.name }}</text>
+                </view>
+              </view>
+            </view>
+          </view>
+        </view>
+
+      </view>
+    </view>
+    <u-popup :show="showUserRegister" @close="showUserRegister = false" round="18rpx">
+      <form v-if="!isUserRegister" @submit="saveUserData">
+        <view class="m-content-view">
+          <text class="top-view"> {{ shopName }}</text>
+          <text class="tips">请您授权头像昵称信息,您授权的信息将受到严格保护,请放心使用。</text>
+          <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
+                  style="border: 0">
+            <u--image v-if="avatarUrl !== defaultAvatarUrl" width="149rpx" height="149rpx" radius="100%"
+                      shape="circle" :src="avatarUrl" :fade="true" duration="450" mode="heightFix"></u--image>
+            <view class="v1" v-else>
+              <u--image width="80rpx" height="80rpx" radius="100%" shape="circle" :src="avatarUrl"
+                        :fade="true" duration="450" mode="heightFix"></u--image>
+              <text v-if="avatarUrl === defaultAvatarUrl">获取头像</text>
+            </view>
+          </button>
+          <input name="nickname" v-model="userName" type="nickname" class="m-input" placeholder="请输入昵称"/>
+          <button class="red-btn" form-type="submit">确认授权</button>
+        </view>
+      </form>
+    </u-popup>
+
+    <tabbarCom current="4"></tabbarCom>
+  </view>
 </template>
 
 <script>
-	import tabbarCom from "@/components/tabbar/tabbar.vue"
-	import {
-		uploadBase64File,
-		getNewRemindCnt,
-		addAddress,
-	} from "@/common/api/common.js";
-
-	import {
-		getOrderList
-	} from "@/common/api/order.js";
-	import {
-		updateUserInfo,
-		getUserInfo,
-		userBindNickname
-	} from "@/common/api/user.js";
-
-	const defaultAvatarUrl =
-		"https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0";
-	import $C from "@/common/utils/config.js";
-	export default {
-		components: {
-			tabbarCom
-		},
-		data() {
-			return {
-				topData: {
-					top: 0,
-					height: 0,
-				},
-				shopName: "六感熟眠商城",
-				bgImg: null,
-				jion_vip_bg: 'https://work.hkmop.com/static/imgs/jion_vip_bg.png',
-				user_grade_bg: '', //#f4c530
-				tips: "登录/注册",
-				defaultAvatarUrl,
-				avatarUrl: defaultAvatarUrl,
-				isUserRegister: false,
-				showUserRegister: false,
-				userName: "",
-				userInfo: undefined,
-				badgeValue: 0,
-				userData: {},
-				newRemindCnt: 0,
-				orderNumber: {},
-				menuList: [{
-						name: "推广海报",
-						url: require("@/static/ic-menu-a.png"),
-						path: "/subPages/poster/poster",
-						isVip: true
-					},
-					{
-						name: "我的团队",
-						url: require("@/static/ic-menu-b.png"),
-						path: "/subPages/myTeam/myTeam",
-						isVip: true
-					},
-					{
-						name: "分销订单",
-						url: require("@/static/ic-menu-c.png"),
-						path: "/subPages/distribution/distribution",
-						isVip: true
-					},
-					{
-						name: "提现记录",
-						url: require("@/static/ic-menu-d.png"),
-						path: "/subPages/withdrawalManagement/withdrawalManagement",
-						isVip: true
-					},
-					{
-						name: "提现",
-						url: require("@/static/ic-menu-e.png"),
-						path: "/subPages/applyWithdrawal/applyWithdrawal",
-						isVip: true
-					},
-				],
-				shopList: [{
-						name: "待付款",
-						url: require("@/static/ic-shop-a.png"),
-						value: '1,2',
-						index: 1,
-						numKey: 'toPay'
-					},
-					{
-						name: "待发货",
-						url: require("@/static/ic-shop-b.png"),
-						value: '3',
-						index: 2,
-						numKey: 'toSend'
-					},
-					{
-						name: "待收货",
-						url: require("@/static/ic-shop-c.png"),
-						value: '4',
-						index: 3,
-						numKey: 'toConfirm'
-					},
-					{
-						name: "已完成",
-						url: require("@/static/ic-shop-d.png"),
-						value: '6,9',
-						index: 4,
-						numKey: 'complate'
-					},
-					{
-						name: "退款/售后",
-						url: require("@/static/ic-shop-e.png"),
-						index: 5,
-						numKey: 'afterSales'
-					},
-				],
-				otherList: [{
-						name: "优惠券",
-						url: require("@/static/ic-other-a.png"),
-						path: "/subPages/coupon/coupon",
-						isVip: true
-					},
-					{
-						name: "地址管理",
-						url: require("@/static/ic-other-b.png"),
-						path: "/subPages/addressMg/addressMg",
-						isVip: true
-					},
-					{
-						name: "我的收藏",
-						url: require("@/static/ic-other-cooprule.png"),
-						path: "/subPages/collectList/collectList",
-						isVip: true
-					},
-					{
-						name: "帮助中心",
-						url: require("@/static/ic-other-c.png"),
-						path: "/subPages/helpCenter/helpCenter",
-					},
-					{
-						name: "关于我们",
-						url: require("@/static/ic-other-d.png"),
-						path: "/pages/singlePage/index?name=3",
-					},
-					{
-						name: "在线客服",
-						url: require("@/static/ic-other-e.png"),
-						value: 'concat'
-					},
-				],
-			};
-		},
-		computed: {
-			displayBalance() {
-				const {
-					balance_total,
-					balance_used
-				} = this.userInfo || {};
-				return balance_total - balance_used;
-			},
-		},
-		created() {
-			const configs = uni.getStorageSync("configs");
-			if (configs) {
-				this.shopName = configs.shop_name
-				this.bgImg = configs.ucenter_bg
-				this.jion_vip_bg = configs.user_in_bg
-				this.user_grade_bg = configs.user_grade_bg
-			}
-
-
-		},
-		mounted() {},
-
-		//发送给朋友
-		onShareAppMessage(res) {
-			let configs = uni.getStorageSync('configs') || {}
-			return {
-				title: configs.shop_share_title,
-				imageUrl: configs.shop_share_img,
-				path: `/pages/home/dashboard/index?id=${
-        JSON.parse(uni.getStorageSync("userInfo")).id
+import tabbarCom from "@/components/tabbar/tabbar.vue"
+import {
+  uploadBase64File,
+  getNewRemindCnt,
+  addAddress,
+} from "@/common/api/common.js";
+
+import {
+  getOrderList
+} from "@/common/api/order.js";
+import {
+  updateUserInfo,
+  getUserInfo,
+  userBindNickname
+} from "@/common/api/user.js";
+
+const defaultAvatarUrl =
+    "https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0";
+import $C from "@/common/utils/config.js";
+
+export default {
+  components: {
+    tabbarCom
+  },
+  data() {
+    return {
+      topData: {
+        top: 0,
+        height: 0,
+      },
+      shopName: "六感熟眠商城",
+      bgImg: null,
+      jion_vip_bg: 'https://work.hkmop.com/static/imgs/jion_vip_bg.png',
+      user_grade_bg: '', //#f4c530
+      tips: "登录/注册",
+      defaultAvatarUrl,
+      avatarUrl: defaultAvatarUrl,
+      isUserRegister: false,
+      showUserRegister: false,
+      userName: "",
+      userInfo: undefined,
+      badgeValue: 0,
+      userData: {},
+      newRemindCnt: 0,
+      orderNumber: {},
+      menuList: [{
+        name: "推广海报",
+        url: require("@/static/ic-menu-a.png"),
+        path: "/subPages/poster/poster",
+        isVip: true
+      },
+        {
+          name: "我的团队",
+          url: require("@/static/ic-menu-b.png"),
+          path: "/subPages/myTeam/myTeam",
+          isVip: true
+        },
+        {
+          name: "分销订单",
+          url: require("@/static/ic-menu-c.png"),
+          path: "/subPages/distribution/distribution",
+          isVip: true
+        },
+        {
+          name: "提现记录",
+          url: require("@/static/ic-menu-d.png"),
+          path: "/subPages/withdrawalManagement/withdrawalManagement",
+          isVip: true
+        },
+        {
+          name: "提现",
+          url: require("@/static/ic-menu-e.png"),
+          path: "/subPages/applyWithdrawal/applyWithdrawal",
+          isVip: true
+        },
+      ],
+      shopList: [{
+        name: "待付款",
+        url: require("@/static/ic-shop-a.png"),
+        value: '1,2',
+        index: 1,
+        numKey: 'toPay'
+      },
+        {
+          name: "待发货",
+          url: require("@/static/ic-shop-b.png"),
+          value: '3',
+          index: 2,
+          numKey: 'toSend'
+        },
+        {
+          name: "待收货",
+          url: require("@/static/ic-shop-c.png"),
+          value: '4',
+          index: 3,
+          numKey: 'toConfirm'
+        },
+        {
+          name: "已完成",
+          url: require("@/static/ic-shop-d.png"),
+          value: '6,9',
+          index: 4,
+          numKey: 'complate'
+        },
+        {
+          name: "退款/售后",
+          url: require("@/static/ic-shop-e.png"),
+          index: 5,
+          numKey: 'afterSales'
+        },
+      ],
+      otherList: [
+        {
+          name: "课程订单",
+          url: require("@/static/ic-other-f.png"),
+          path: "/subPages/myOrder/myOrder",
+          isVip: true
+        },
+        {
+          name: "服务预约",
+          url: require("@/static/ic-other-g.png"),
+          path: "/subPages/myOrder/myOrder",
+          isVip: true
+        },
+
+          {
+        name: "优惠券",
+        url: require("@/static/ic-other-a.png"),
+        path: "/subPages/coupon/coupon",
+        isVip: true
+      },
+        {
+          name: "地址管理",
+          url: require("@/static/ic-other-b.png"),
+          path: "/subPages/addressMg/addressMg",
+          isVip: true
+        },
+        {
+          name: "我的收藏",
+          url: require("@/static/ic-other-cooprule.png"),
+          path: "/subPages/collectList/collectList",
+          isVip: true
+        },
+        {
+          name: "帮助中心",
+          url: require("@/static/ic-other-c.png"),
+          path: "/subPages/helpCenter/helpCenter",
+        },
+        {
+          name: "关于我们",
+          url: require("@/static/ic-other-d.png"),
+          path: "/pages/singlePage/index?name=3",
+        },
+        {
+          name: "在线客服",
+          url: require("@/static/ic-other-e.png"),
+          value: 'concat'
+        },
+      ],
+    };
+  },
+  computed: {
+    displayBalance() {
+      const {
+        balance_total,
+        balance_used
+      } = this.userInfo || {};
+      return balance_total - balance_used;
+    },
+  },
+  created() {
+    const configs = uni.getStorageSync("configs");
+    if (configs) {
+      this.shopName = configs.shop_name
+      this.bgImg = configs.ucenter_bg
+      this.jion_vip_bg = configs.user_in_bg
+      this.user_grade_bg = configs.user_grade_bg
+    }
+
+
+  },
+  mounted() {
+  },
+
+  //发送给朋友
+  onShareAppMessage(res) {
+    let configs = uni.getStorageSync('configs') || {}
+    return {
+      title: configs.shop_share_title,
+      imageUrl: configs.shop_share_img,
+      path: `/pages/home/dashboard/index?id=${
+          JSON.parse(uni.getStorageSync("userInfo")).id
       }`,
-			};
-		},
-		// 分享到朋友圈
-		onShareTimeline() {
-			let configs = uni.getStorageSync('configs') || {}
-			return {
-				title: configs.shop_share_title,
-				imageUrl: configs.shop_share_img,
-				path: `/pages/home/dashboard/index?id=${
-        JSON.parse(uni.getStorageSync("userInfo")).id
+    };
+  },
+  // 分享到朋友圈
+  onShareTimeline() {
+    let configs = uni.getStorageSync('configs') || {}
+    return {
+      title: configs.shop_share_title,
+      imageUrl: configs.shop_share_img,
+      path: `/pages/home/dashboard/index?id=${
+          JSON.parse(uni.getStorageSync("userInfo")).id
       }`
-			};
-		},
-		onShow() {
-			const topData = uni.getMenuButtonBoundingClientRect();
-			this.topData.top = topData.top;
-			this.topData.height = topData.height;
-			this.reUserInfo();
-			this.getUserInfo();
-
-			// this.getOrderListCount()
-		},
-		methods: {
-			contact(res) {
-				console.log(345555, res)
-			},
-			getOrderStatics() {
-				this.$api.getOrderStatics().then(res => {
-					const {
-						t1 = 0, t2 = 0, t3 = 0, t4 = 0, t6 = 0, t9 = 0
-					} = res.data
-					this.orderNumber = {
-						toPay: t1 + t2,
-						toSend: t3,
-						toConfirm: t4,
-						complate: t6 + t9,
-						afterSales: res.data.t - 1 + res.data.t - 2,
-					}
-				})
-			},
-			checkShowUserRegister() {
-				if (!this.isUserRegister) {
-					this.showUserRegister = true;
-					return true;
-				} else {
-					// if (this.userInfo.vip_code && this.userInfo.vip_code != "0") {
-					// 	this.toSubPages("personalDataManagement");
-					// } else {
-					// 	this.toSubPages("register");
-					// }
-					this.toSubPages("personalDataManagement");
-					return false;
-				}
-			},
-			reUserInfo() {
-				const userInfo = uni.getStorageSync("userInfo");
-				if (
-					userInfo &&
-					JSON.parse(userInfo).nickname != "" &&
-					JSON.parse(userInfo).headimg != ""
-				) {
-					this.userInfo = JSON.parse(userInfo);
-					const {
-						headimg,
-						nickname,
-						base_sex,
-						realname,
-						region_area,
-						region_city,
-						region_province,
-						phone
-					} =
-					this.userInfo
-					this.avatarUrl = this.userInfo.headimg;
-					this.userName = this.userInfo.nickname;
-					this.isUserRegister = true;
-					this.getOrderStatics()
-				} else {
-					this.isUserRegister = false;
-				}
-				console.log("reUserInfo==>", this.userInfo);
-			},
-			toOrderList(str = 0) {
-				if (!this.isUserRegister) {
-					this.showUserRegister = true;
-					return true;
-				}
-				uni.setStorageSync("orderIndex", str);
-				uni.navigateTo({
-					url: "/subPages/myOrder/myOrder",
-				});
-			},
-			goToPath(item) {
-				if (item.isVip) {
-					if (!this.isUserRegister) {
-						this.showUserRegister = true;
-						return true;
-					}
-				}
-				if (!item.path) {
-					return;
-				}
-				uni.navigateTo({
-					url: item.path,
-				});
-			},
-			toSubPages(index) {
-				uni.navigateTo({
-					url: `/subPages/${index}/index`,
-				});
-			},
-			// 获取未支付数量
-			getOrderListCount() {
-				uni.showLoading();
-				const data = {
-					status: 2,
-					page: this.page,
-					limit: this.limit,
-				};
-				getOrderList(data)
-					.then((res) => {
-						uni.hideLoading();
-						console.log("getOrderList==>", res.data.list);
-						if (res.data) {
-							this.badgeValue = res.data.page.total;
-						}
-					})
-					.catch(() => {
-						uni.hideLoading();
-					});
-			},
-			bindNickname(url) {
-				this.isUserRegister = true;
-				this.showUserRegister = false;
-				const data = {
-					nickname: this.userName,
-					username: this.userName,
-					headimg: url,
-				};
-				userBindNickname(data).then((res) => {
-					console.log("绑定昵称等==>", res.data);
-					if (res.data) {
-						uni.setStorageSync("token", res.data.token.token);
-						if (!res.data.headimg) {
-							res.data.headimg = url;
-						}
-						uni.setStorageSync("userInfo", JSON.stringify(res.data));
-						this.isUserRegister = true;
-						this.showUserRegister = false;
-						this.toSubPages("register");
-					}
-				});
-			},
-			addAddress(addressData) {
-				this.isUserRegister = true;
-				this.showUserRegister = false;
-				const data = {
-					type: 1,
-					name: addressData.userName,
-					phone: addressData.telNumber,
-					province: addressData.provinceName,
-					city: addressData.cityName,
-					area: addressData.countyName,
-					address: addressData.detailInfo,
-				};
-				addAddress(data).then((res) => {
-					console.log("addAddress==>", res.data);
-					if (res.data) {
-						uni.showToast({
-							title: "添加成功",
-							success: (res) => {},
-						});
-					}
-				});
-			},
-			async getUserInfo() {
-				const data = {};
-				await getUserInfo(data)
-					.then((res) => {
-						if (res.data) {
-							// uni.clearStorageSync()
-							uni.setStorageSync("token", res.data.token.token);
-							uni.setStorageSync("userInfo", JSON.stringify(res.data));
-							this.userInfo = res.data;
-							console.log("getUserInfo==>", this.userInfo);
-						}
-					})
-					.catch(() => {
-						uni.hideLoading();
-					});
-				await this.reUserInfo();
-			},
-			getNewRemindCnt() {
-				const data = {};
-				getNewRemindCnt(data)
-					.then((res) => {
-						console.log("getNewRemindCnt==>", res.data);
-						// if (res.data) {
-						this.newRemindCnt = res.data || 0;
-						// }
-					})
-					.catch(() => {
-						uni.hideLoading();
-					});
-			},
-			onChooseAvatar(e) {
-				const {
-					avatarUrl
-				} = e.detail;
-				console.log("成功授权", avatarUrl);
-				this.avatarUrl = avatarUrl;
-			},
-			saveUserData(e) {
-				console.log(e.detail.value.nickname);
-				if (
-					this.avatarUrl === this.defaultAvatarUrl ||
-					!e.detail.value.nickname
-				) {
-					uni.showToast({
-						icon: "none",
-						title: "请先授权完善信息",
-					});
-					return;
-				}
-				this.userName = e.detail.value.nickname;
-				this.showUserRegister = false;
-				this.getImageInfo();
-			},
-			getImageInfo() {
-				// 获取当前图片信息
-				uni.getImageInfo({
-					src: this.avatarUrl,
-					success: (image) => {
-						// 做png/jpeg的类型判断————对不同类型的图像添加不同的转换头信息
-						if (image.type == "png" || image.type == "jpeg") {
-							// 对符合类型的图片转换为base64类型
-							uni.getFileSystemManager().readFile({
-								// 【重点来啦】人家自提供的转码API
-								filePath: image.path, // 所需转码图像路径
-								encoding: "base64", // 转码类型
-								success: (res) => {
-									// 生成base64
-									let imageBase64 =
-										"data:image/" + image.type + ";base64," + res.data;
-									console.log("转base64后:", imageBase64);
-									this.uploadBase64File(imageBase64);
-								},
-							});
-						} else {
-							// 友好一点,不是以上类型做出提醒
-							uni.showToast({
-								title: "当前只支持png/jpeg格式",
-								duration: 2500,
-								icon: "none",
-							});
-						}
-					},
-				});
-			},
-			uploadBase64File(imageBase64) {
-				uploadBase64File({
-						base64: imageBase64,
-					}, {
-						"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
-					})
-					.then((res) => {
-						console.log("uploadFile==>", res.data.url);
-						this.avatarUrl = res.data.url;
-						this.bindNickname(res.data.url);
-					})
-					.catch(() => {
-						uni.hideLoading();
-					});
-			},
-		},
-	};
+    };
+  },
+  onShow() {
+    const topData = uni.getMenuButtonBoundingClientRect();
+    this.topData.top = topData.top;
+    this.topData.height = topData.height;
+    this.reUserInfo();
+    this.getUserInfo();
+
+    // this.getOrderListCount()
+  },
+  methods: {
+    contact(res) {
+      console.log(345555, res)
+    },
+    getOrderStatics() {
+      this.$api.getOrderStatics().then(res => {
+        const {
+          t1 = 0, t2 = 0, t3 = 0, t4 = 0, t6 = 0, t9 = 0
+        } = res.data
+        this.orderNumber = {
+          toPay: t1 + t2,
+          toSend: t3,
+          toConfirm: t4,
+          complate: t6 + t9,
+          afterSales: res.data.t - 1 + res.data.t - 2,
+        }
+      })
+    },
+    getKefuStyle(item){
+      if(item.value == 'concat'){
+        return {
+          display: "relative",
+        }
+      }
+    },
+    checkShowUserRegister() {
+      if (!this.isUserRegister) {
+        this.showUserRegister = true;
+        return true;
+      } else {
+        // if (this.userInfo.vip_code && this.userInfo.vip_code != "0") {
+        //   this.toSubPages("personalDataManagement");
+        // } else {
+        //   this.toSubPages("register");
+        //
+        // }
+        this.toSubPages("personalDataManagement");
+        return false;
+      }
+    },
+    JumpSetting() {
+      this.toSubPages("setting");
+    },
+    reUserInfo() {
+      const userInfo = uni.getStorageSync("userInfo");
+      if (
+          userInfo &&
+          JSON.parse(userInfo).nickname != "" &&
+          JSON.parse(userInfo).headimg != ""
+      ) {
+        this.userInfo = JSON.parse(userInfo);
+        const {
+          headimg,
+          nickname,
+          base_sex,
+          realname,
+          region_area,
+          region_city,
+          region_province,
+          phone
+        } =
+            this.userInfo
+        this.avatarUrl = this.userInfo.headimg;
+        this.userName = this.userInfo.nickname;
+        this.isUserRegister = true;
+        this.getOrderStatics()
+      } else {
+        this.isUserRegister = false;
+      }
+    },
+    toOrderList(str = 0) {
+      if (!this.isUserRegister) {
+        this.showUserRegister = true;
+        return true;
+      }
+      uni.setStorageSync("orderIndex", str);
+      uni.navigateTo({
+        url: "/subPages/myOrder/myOrder",
+      });
+    },
+    goToPath(item) {
+      if (item.isVip) {
+        if (!this.isUserRegister) {
+          this.showUserRegister = true;
+          return true;
+        }
+      }
+      if (!item.path) {
+        return;
+      }
+      uni.navigateTo({
+        url: item.path,
+      });
+    },
+    toSubPages(index) {
+      uni.navigateTo({
+        url: `/subPages/${index}/index`,
+      });
+    },
+    // 获取未支付数量
+    getOrderListCount() {
+      uni.showLoading();
+      const data = {
+        status: 2,
+        page: this.page,
+        limit: this.limit,
+      };
+      getOrderList(data)
+          .then((res) => {
+            uni.hideLoading();
+            console.log("getOrderList==>", res.data.list);
+            if (res.data) {
+              this.badgeValue = res.data.page.total;
+            }
+          })
+          .catch(() => {
+            uni.hideLoading();
+          });
+    },
+    bindNickname(url) {
+      this.isUserRegister = true;
+      this.showUserRegister = false;
+      const data = {
+        nickname: this.userName,
+        username: this.userName,
+        headimg: url,
+      };
+      userBindNickname(data).then((res) => {
+        console.log("绑定昵称等==>", res.data);
+        if (res.data) {
+          uni.setStorageSync("token", res.data.token.token);
+          if (!res.data.headimg) {
+            res.data.headimg = url;
+          }
+          uni.setStorageSync("userInfo", JSON.stringify(res.data));
+          this.isUserRegister = true;
+          this.showUserRegister = false;
+          this.toSubPages("register");
+        }
+      });
+    },
+    addAddress(addressData) {
+      this.isUserRegister = true;
+      this.showUserRegister = false;
+      const data = {
+        type: 1,
+        name: addressData.userName,
+        phone: addressData.telNumber,
+        province: addressData.provinceName,
+        city: addressData.cityName,
+        area: addressData.countyName,
+        address: addressData.detailInfo,
+      };
+      addAddress(data).then((res) => {
+        console.log("addAddress==>", res.data);
+        if (res.data) {
+          uni.showToast({
+            title: "添加成功",
+            success: (res) => {
+            },
+          });
+        }
+      });
+    },
+    async getUserInfo() {
+      const data = {};
+      await getUserInfo(data)
+          .then((res) => {
+            if (res.data) {
+              // uni.clearStorageSync()
+              uni.setStorageSync("token", res.data.token.token);
+              uni.setStorageSync("userInfo", JSON.stringify(res.data));
+              this.userInfo = res.data;
+              console.log("getUserInfo==>", this.userInfo);
+            }
+          })
+          .catch(() => {
+            uni.hideLoading();
+          });
+      await this.reUserInfo();
+    },
+    getNewRemindCnt() {
+      const data = {};
+      getNewRemindCnt(data)
+          .then((res) => {
+            console.log("getNewRemindCnt==>", res.data);
+            // if (res.data) {
+            this.newRemindCnt = res.data || 0;
+            // }
+          })
+          .catch(() => {
+            uni.hideLoading();
+          });
+    },
+    onChooseAvatar(e) {
+      const {
+        avatarUrl
+      } = e.detail;
+      console.log("成功授权", avatarUrl);
+      this.avatarUrl = avatarUrl;
+    },
+    saveUserData(e) {
+      console.log(e.detail.value.nickname);
+      if (
+          this.avatarUrl === this.defaultAvatarUrl ||
+          !e.detail.value.nickname
+      ) {
+        uni.showToast({
+          icon: "none",
+          title: "请先授权完善信息",
+        });
+        return;
+      }
+      this.userName = e.detail.value.nickname;
+      this.showUserRegister = false;
+      this.getImageInfo();
+    },
+    getImageInfo() {
+      // 获取当前图片信息
+      uni.getImageInfo({
+        src: this.avatarUrl,
+        success: (image) => {
+          // 做png/jpeg的类型判断————对不同类型的图像添加不同的转换头信息
+          if (image.type == "png" || image.type == "jpeg") {
+            // 对符合类型的图片转换为base64类型
+            uni.getFileSystemManager().readFile({
+              // 【重点来啦】人家自提供的转码API
+              filePath: image.path, // 所需转码图像路径
+              encoding: "base64", // 转码类型
+              success: (res) => {
+                // 生成base64
+                let imageBase64 =
+                    "data:image/" + image.type + ";base64," + res.data;
+                console.log("转base64后:", imageBase64);
+                this.uploadBase64File(imageBase64);
+              },
+            });
+          } else {
+            // 友好一点,不是以上类型做出提醒
+            uni.showToast({
+              title: "当前只支持png/jpeg格式",
+              duration: 2500,
+              icon: "none",
+            });
+          }
+        },
+      });
+    },
+    uploadBase64File(imageBase64) {
+      uploadBase64File({
+        base64: imageBase64,
+      }, {
+        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
+      })
+          .then((res) => {
+            console.log("uploadFile==>", res.data.url);
+            this.avatarUrl = res.data.url;
+            this.bindNickname(res.data.url);
+          })
+          .catch(() => {
+            uni.hideLoading();
+          });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-	.app-page {
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.top-bg {
-		width: 750rpx;
-		height: 634rpx;
-		overflow: hidden;
-	}
-
-	.not-regis-box,
-	.regis-box {
-		margin-left: 20rpx;
-		margin-top: 7rpx;
-		height: 36rpx;
-		line-height: 36rpx;
-		padding: 0 10rpx;
-		font-size: 22rpx;
-		font-weight: bold;
-		color: #9a9a9a;
-		background: #e3e3e3;
-		border-radius: 7rpx;
-		display: inline-flex;
-		align-items: center;
-
-		.user-name-text {
-			margin-left: 6rpx;
-		}
-	}
-
-	.regis-box {
-		background: rgba(231, 224, 255, 0.85);
-		color: #815bff;
-	}
-
-	.top-bar-view {
-		width: 100%;
-		position: relative;
-		display: flex;
-		align-items: center;
-		flex-direction: column;
-	}
-
-	.top-box {
-		position: absolute;
-		left: 0;
-		top: 0;
-		right: 0;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.top-bar {
-		width: 100%;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		flex-direction: row;
-	}
-
-	.m-content-view {
-		width: 100%;
-		display: flex;
-		align-items: center;
-		flex-direction: column;
-		background-color: #f7f7f7;
-		border-radius: 24rpx 24rpx 0 0;
-	}
-
-	.top-view {
-		font-size: 32rpx;
-		font-family: PingFangSC-Medium, PingFang SC;
-		font-weight: 500;
-		color: #1d161f;
-		line-height: 34rpx;
-		text-align: left;
-		margin: 55rpx 49rpx 0;
-		width: calc(100% - 98rpx);
-	}
-
-	.tips {
-		font-size: 26rpx;
-		font-weight: 400;
-		color: #858585;
-		line-height: 34rpx;
-		margin: 21rpx 49rpx 0;
-	}
-
-	.red-btn {
-		color: white;
-		background: #f39800;
-		width: calc(100% - 98rpx);
-		margin-top: 52rpx;
-		margin-bottom: 52rpx;
-		font-size: 32rpx;
-		line-height: 84rpx;
-		border-radius: 40rpx;
-		text-align: center;
-	}
-
-	.red-btn:active {
-		opacity: 0.7;
-	}
-
-	.v1 {
-		height: 149rpx;
-		width: 149rpx;
-		display: flex;
-		flex-direction: column;
-		background: rgba(244, 244, 246, 1);
-		border-radius: 100%;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.avatar-wrapper {
-		margin-top: 26rpx;
-	}
-
-	.avatar-wrapper button::before {
-		padding: 0;
-		border-radius: 20rpx;
-		border: 0;
-	}
-
-	.avatar {
-		height: 100rpx;
-		width: 100rpx;
-	}
-
-	.v1 text {
-		font-size: 22rpx;
-		margin-top: -16rpx;
-	}
-
-	// 去掉烦人的边框
-	button::after {
-		border: 0; // 或者 border: none;
-	}
-
-	.m-input {
-		width: calc(100% - 138rpx);
-		line-height: 117rpx;
-		padding: 0 20rpx;
-		margin-top: 44rpx;
-		background: #ffffff;
-		border-radius: 15rpx;
-		height: 117rpx;
-	}
-
-	.mine-box {
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-		position: relative;
-	}
-
-	.mine-bg {
-		width: 100%;
-		display: block;
-		height: 1334rpx;
-	}
-
-	.mine-view {
-		left: 0;
-		top: 0;
-		right: 0;
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-		position: absolute;
-	}
-
-	.top-title-view {
-		display: flex;
-		width: 100%;
-		flex-direction: row;
-		align-items: center;
-	}
-
-	.login-box {
-		display: flex;
-		flex-direction: row;
-		align-items: center;
-		padding: 10px 30rpx 0;
-	}
-
-	.avatar-wrap {
-		position: relative;
-
-		.vip-tag {
-			position: absolute;
-			bottom: -22rpx;
-			left: -10rpx;
-			display: flex;
-			align-items: center;
-
-			.vip-text {
-				font-size: 20rpx;
-				font-weight: 500;
-				margin-left: 34rpx;
-				color: #632400;
-				width: 122rpx;
-				line-height: 38rpx;
-				text-align: center;
-				border-radius: 0rpx 20rpx 20rpx 0rpx;
-			}
-		}
-	}
-
-	.user-info-wrap {
-		flex: 1;
-		margin-left: 28rpx;
-
-		.userName-wrap {
-			display: flex;
-			align-items: center;
-		}
-
-		.info-list {
-			margin-top: 10rpx;
-			height: 34rpx;
-			font-size: 24rpx;
-			font-weight: 400;
-			color: #1d161f;
-			line-height: 34rpx;
-
-			.info-list-item {
-				&:nth-child(n + 2) {
-					&::before {
-						content: "|";
-						color: #b6b6b6;
-						margin: 0 12rpx;
-					}
-				}
-			}
-		}
-	}
-
-	.userName-box {
-		display: flex;
-		flex-direction: row;
-		align-items: center;
-		justify-content: flex-start;
-	}
-
-	.userName {
-		font-size: 32rpx;
-		// margin-left: 26rpx;
-		font-family: PingFang;
-		font-weight: 600;
-		color: #000000;
-	}
-
-	.right-box {
-		padding-right: 56rpx;
-		position: relative;
-	}
-
-	.jion-vip-wrap {
-		background-size: 100% 100%;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		height: 128rpx;
-		margin: 60rpx 20rpx 25rpx;
-		padding: 0 45rpx 0 42rpx;
-
-		.title {
-			font-size: 36rpx;
-			font-family: YouSheBiaoTiHei;
-			font-weight: 500;
-			color: #ffffff;
-			line-height: 38rpx;
-		}
-
-		.docs {
-			margin-top: 8px;
-			font-size: 24rpx;
-			font-weight: 400;
-			color: #ffffff;
-			line-height: 34rpx;
-		}
-
-		.right-btn {
-			width: 141rpx;
-			height: 54rpx;
-			background: #ffffff;
-			border-radius: 27rpx;
-			font-size: 24rpx;
-			font-weight: 500;
-			color: #632400;
-			line-height: 54rpx;
-			text-align: center;
-		}
-	}
-
-	.kthy {
-		flex: 1;
-		font-size: 26rpx;
-		font-family: PingFang;
-		font-weight: 400;
-		color: #000000;
-	}
-
-	.kthy-btn {
-		width: 106rpx;
-		height: 40rpx;
-		border: 1rpx solid #000000;
-		border-radius: 4rpx;
-		font-size: 22rpx;
-		font-family: PingFang;
-		font-weight: 400;
-		color: #010101;
-		text-align: center;
-		margin-right: 20rpx;
-		line-height: 40rpx;
-	}
-
-	.card-box {
-		width: 690rpx;
-		margin: 20rpx auto 0 auto;
-		background: #ffffff;
-		border-radius: 21rpx;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.bottom-item {
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-		position: relative;
-
-		.bottom-item-h {
-			width: 100%;
-			display: flex;
-			flex-direction: row;
-
-			text {
-				flex: 1;
-				font-size: 26rpx;
-				margin: 30rpx 40rpx;
-				font-family: PingFang;
-				font-weight: 400;
-				color: #333333;
-				line-height: 28rpx;
-			}
-		}
-	}
-
-	.orders-info-card {
-		width: 710rpx;
-		margin: 25rpx auto 0;
-		background: linear-gradient(45deg, #cfcff5 0%, #efebff 61%, #cac9ec 100%);
-		border-radius: 18rpx;
-		overflow: hidden;
-		display: flex;
-		flex-direction: column;
-
-		.orders-card {
-			width: 710rpx;
-			height: 273rpx;
-			background: #ffffff;
-			display: flex;
-			flex-direction: column;
-			border-radius: 18rpx 18rpx 18rpx 18rpx;
-
-			.card-title {
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				padding-right: 34rpx;
-
-				.right {
-					display: flex;
-					align-items: center;
-					font-size: 24rpx;
-					font-weight: 400;
-					color: #858585;
-					line-height: 1;
-				}
-			}
-
-			.menu-box {
-				flex: 1;
-				width: 100%;
-				display: flex;
-				flex-direction: row;
-				align-items: center;
-
-				.menu-item {
-					flex: 1;
-					height: 100%;
-					display: flex;
-					flex-direction: column;
-					align-items: center;
-					justify-content: center;
-					position: relative;
-
-					image {
-						width: 46rpx;
-						margin-bottom: 14rpx;
-						height: 46rpx;
-					}
-
-					text {
-						font-size: 26rpx;
-						font-family: PingFang SC-Medium, PingFang SC;
-						font-weight: 500;
-						color: #1d161f;
-					}
-				}
-			}
-		}
-	}
-
-	.member-info-card {
-		width: 710rpx;
-		margin: 20rpx auto;
-		// height: 349rpx;
-		background: linear-gradient(45deg, #cfcff5 0%, #efebff 61%, #cac9ec 100%);
-		border-radius: 18rpx 18rpx 18rpx 18rpx;
-		overflow: hidden;
-		display: flex;
-		flex-direction: column;
-
-		.member-card {
-			width: 710rpx;
-			height: 273rpx;
-			background: #ffffff;
-			display: flex;
-			flex-direction: column;
-			border-radius: 18rpx 18rpx 18rpx 18rpx;
-
-			.menu-box {
-				flex: 1;
-				width: 100%;
-				display: flex;
-				flex-direction: row;
-				align-items: center;
-
-				.menu-item {
-					flex: 1;
-					height: 100%;
-					display: flex;
-					flex-direction: column;
-					align-items: center;
-					justify-content: center;
-					position: relative;
-
-					image {
-						width: 46rpx;
-						margin-bottom: 14rpx;
-						height: 46rpx;
-					}
-
-					text {
-						font-size: 26rpx;
-						font-family: PingFang SC-Medium, PingFang SC;
-						font-weight: 500;
-						color: #1d161f;
-					}
-				}
-			}
-		}
-	}
-
-	.card-title {
-		font-size: 28rpx;
-		font-family: PingFang SC-Bold, PingFang SC;
-		font-weight: bold;
-		color: #1d161f;
-		padding-left: 34rpx;
-		line-height: 91rpx;
-	}
-
-	.member-other-card {
-		width: 710rpx;
-		// height: 273rpx;
-		margin: 0 auto 20rpx auto;
-		background: #ffffff;
-		display: flex;
-		flex-direction: column;
-		border-radius: 18rpx 18rpx 18rpx 18rpx;
-
-		.menu-other-box {
-			width: 100%;
-			display: flex;
-			flex-direction: row;
-			align-items: center;
-			flex-wrap: wrap;
-			padding: 50rpx 0 0;
-
-			.menu-other-item {
-				// flex: auto;
-				position: relative;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				justify-content: center;
-				width: 25%;
-				flex-shrink: 0;
-				margin-bottom: 40rpx;
-
-				image {
-					width: 46rpx;
-					margin-bottom: 14rpx;
-					height: 46rpx;
-				}
-
-				text {
-					font-size: 26rpx;
-					font-family: PingFang SC-Medium, PingFang SC;
-					font-weight: 500;
-					color: #1d161f;
-				}
-			}
-		}
-	}
+.app-page {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+}
+
+.top-bg {
+  width: 750rpx;
+  height: 634rpx;
+  overflow: hidden;
+}
+
+.not-regis-box,
+.regis-box {
+  margin-left: 20rpx;
+  margin-top: 7rpx;
+  height: 36rpx;
+  line-height: 36rpx;
+  padding: 0 10rpx;
+  font-size: 22rpx;
+  font-weight: bold;
+  color: #9a9a9a;
+  background: #e3e3e3;
+  border-radius: 7rpx;
+  display: inline-flex;
+  align-items: center;
+
+  .user-name-text {
+    margin-left: 6rpx;
+  }
+}
+
+.regis-box {
+  background: rgba(231, 224, 255, 0.85);
+  color: #815bff;
+}
+
+.top-bar-view {
+  width: 100%;
+  position: relative;
+  display: flex;
+  align-items: center;
+  flex-direction: column;
+}
+
+.top-box {
+  position: absolute;
+  left: 0;
+  top: 0;
+  right: 0;
+  display: flex;
+  flex-direction: column;
+}
+
+.top-bar {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-direction: row;
+}
+
+.m-content-view {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  flex-direction: column;
+  background-color: #f7f7f7;
+  border-radius: 24rpx 24rpx 0 0;
+}
+
+.top-view {
+  font-size: 32rpx;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #1d161f;
+  line-height: 34rpx;
+  text-align: left;
+  margin: 55rpx 49rpx 0;
+  width: calc(100% - 98rpx);
+}
+
+.tips {
+  font-size: 26rpx;
+  font-weight: 400;
+  color: #858585;
+  line-height: 34rpx;
+  margin: 21rpx 49rpx 0;
+}
+
+.red-btn {
+  color: white;
+  background: #f39800;
+  width: calc(100% - 98rpx);
+  margin-top: 52rpx;
+  margin-bottom: 52rpx;
+  font-size: 32rpx;
+  line-height: 84rpx;
+  border-radius: 40rpx;
+  text-align: center;
+}
+
+.red-btn:active {
+  opacity: 0.7;
+}
+
+.v1 {
+  height: 149rpx;
+  width: 149rpx;
+  display: flex;
+  flex-direction: column;
+  background: rgba(244, 244, 246, 1);
+  border-radius: 100%;
+  align-items: center;
+  justify-content: center;
+}
+
+.avatar-wrapper {
+  margin-top: 26rpx;
+}
+
+.avatar-wrapper button::before {
+  padding: 0;
+  border-radius: 20rpx;
+  border: 0;
+}
+
+.avatar {
+  height: 100rpx;
+  width: 100rpx;
+}
+
+.v1 text {
+  font-size: 22rpx;
+  margin-top: -16rpx;
+}
+
+// 去掉烦人的边框
+button::after {
+  border: 0; // 或者 border: none;
+}
+
+.m-input {
+  width: calc(100% - 138rpx);
+  line-height: 117rpx;
+  padding: 0 20rpx;
+  margin-top: 44rpx;
+  background: #ffffff;
+  border-radius: 15rpx;
+  height: 117rpx;
+}
+
+.mine-box {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  position: relative;
+}
+
+.mine-bg {
+  width: 100%;
+  display: block;
+  height: 1334rpx;
+}
+
+.mine-view {
+  left: 0;
+  top: 0;
+  right: 0;
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  position: absolute;
+}
+
+.top-title-view {
+  display: flex;
+  width: 100%;
+  flex-direction: row;
+  align-items: center;
+}
+
+.login-box {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  padding: 10px 30rpx 0;
+}
+
+.avatar-wrap {
+  position: relative;
+
+  .vip-tag {
+    display: flex;
+    align-items: center;
+    margin-top: 8rpx;
+
+    .vip-text {
+      font-size: 20rpx;
+      font-weight: 500;
+      margin-left: 34rpx;
+      color: #632400;
+      width: 122rpx;
+      line-height: 38rpx;
+      text-align: center;
+      border-radius: 0rpx 20rpx 20rpx 0rpx;
+    }
+  }
+}
+
+.user-info-wrap {
+  flex: 1;
+  margin-left: 28rpx;
+
+  .userName-wrap {
+    display: flex;
+    align-items: center;
+    font-weight: 400;
+    font-size: 28rpx;
+    color: #333333;
+    line-height: 44rpx;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+  }
+
+
+}
+
+.userName-box {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: flex-start;
+}
+
+.userName {
+  font-size: 28rpx;
+  // margin-left: 26rpx;
+  font-family: PingFang;
+  font-weight: 600;
+  color: #333333;
+  line-height: 44rpx;
+  text-align: left;
+  font-style: normal;
+  text-transform: none;
+}
+
+.info-list text {
+  margin-top: 10rpx;
+  font-size: 22rpx;
+  // margin-left: 26rpx;
+  font-family: PingFang;
+  font-weight: 400;
+  color: #333333;
+  line-height: 40rpx;
+  text-align: left;
+  font-style: normal;
+  text-transform: none;
+}
+
+.info-list-rebate_total {
+  //font-family: Aoboshi One, Aoboshi One!important;
+  //color: #512C19!important;
+  //line-height: 40rpx!important;
+  //text-align: left!important;
+  //font-style: normal!important;
+  //text-transform: none!important;
+  //font-weight: 700!important;
+  //font-size: 40rpx!important;
+}
+
+.user-phone {
+  margin-top: 8rpx;
+  font-size: 22rpx;
+  // margin-left: 26rpx;
+  font-family: PingFang;
+  font-weight: 400;
+  color: #333333;
+  line-height: 28rpx;
+  text-align: left;
+  font-style: normal;
+  text-transform: none;
+}
+
+.right-box {
+  padding-right: 56rpx;
+  position: relative;
+}
+
+.jion-vip-wrap {
+  background-size: 100% 100%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  height: 128rpx;
+  margin: 40rpx 30rpx 0rpx;
+  padding: 0 96rpx 0 84rpx;
+  .title {
+    font-family: 苹方-Regular, 苹方;
+    font-weight: 700;
+    font-size: 28rpx;
+    color: #512C19;
+    line-height: 40rpx;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+  }
+
+  .docs {
+    font-family: PingFang SC-Medium, PingFang SC;
+    font-weight: 400;
+    font-size: 24rpx;
+    color: #512C19;
+    line-height: 36rpx;
+    text-align: right;
+    font-style: normal;
+    text-transform: none;
+  }
+
+}
+
+.kthy {
+  flex: 1;
+  font-size: 26rpx;
+  font-family: PingFang;
+  font-weight: 400;
+  color: #000000;
+}
+
+.kthy-btn {
+  width: 106rpx;
+  height: 40rpx;
+  border: 1rpx solid #000000;
+  border-radius: 4rpx;
+  font-size: 22rpx;
+  font-family: PingFang;
+  font-weight: 400;
+  color: #010101;
+  text-align: center;
+  margin-right: 20rpx;
+  line-height: 40rpx;
+}
+
+.card-box {
+  width: 690rpx;
+  margin: 20rpx auto 0 auto;
+  background: #ffffff;
+  border-radius: 21rpx;
+  display: flex;
+  flex-direction: column;
+}
+
+.bottom-item {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  position: relative;
+
+  .bottom-item-h {
+    width: 100%;
+    display: flex;
+    flex-direction: row;
+
+    text {
+      flex: 1;
+      font-size: 26rpx;
+      margin: 30rpx 40rpx;
+      font-family: PingFang;
+      font-weight: 400;
+      color: #333333;
+      line-height: 28rpx;
+    }
+  }
+}
+
+.orders-info-card {
+  width: 650rpx;
+  padding:  0 20rpx;
+  margin: 25rpx auto 0;
+  border-radius: 18rpx;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+  background-color: #FFFFFF;
+  .orders-card {
+    width: 650rpx;
+    height: 273rpx;
+    background: #ffffff;
+    display: flex;
+    flex-direction: column;
+    border-radius: 18rpx 18rpx 18rpx 18rpx;
+
+    .card-title {
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+
+      .right {
+        display: flex;
+        align-items: center;
+        font-size: 24rpx;
+        font-weight: 400;
+        color: #858585;
+        line-height: 1;
+      }
+    }
+
+    .menu-box {
+      flex: 1;
+      width: 100%;
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+
+      .menu-item {
+        flex: 1;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+        position: relative;
+
+        image {
+          width: 46rpx;
+          margin-bottom: 14rpx;
+          height: 46rpx;
+        }
+
+        text {
+          font-size: 26rpx;
+          font-family: PingFang SC-Medium, PingFang SC;
+          font-weight: 500;
+          color: #1d161f;
+        }
+      }
+    }
+  }
+}
+
+.member-info-card {
+  width: 650rpx;
+  padding:  0 20rpx;
+  margin: 0rpx auto 180rpx;
+  // height: 349rpx;
+  border-radius: 18rpx 18rpx 18rpx 18rpx;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+  background-color: #FFFFFF;
+
+  .member-card {
+    width: 650rpx;
+    height: 273rpx;
+    background: #ffffff;
+    display: flex;
+    flex-direction: column;
+    border-radius: 18rpx 18rpx 18rpx 18rpx;
+
+    .menu-box {
+      flex: 1;
+      width: 100%;
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+
+      .menu-item {
+        flex: 1;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+        position: relative;
+
+        &-bgColor{
+          height: 65%;
+          width: 85%;
+          background: #F6F7F9;
+          border-radius: 4rpx 4rpx 4rpx 4rpx;
+          display: flex;
+          flex-direction: column;
+          align-items: center;
+          justify-content: center;
+          image {
+            width: 36rpx;
+            margin-bottom: 14rpx;
+            height: 36rpx;
+          }
+
+          text {
+            font-family: PingFang SC, PingFang SC;
+            font-weight: 400;
+            font-size: 22rpx;
+            color: #333333;
+            line-height: 32rpx;
+            text-align: right;
+            font-style: normal;
+            text-transform: none;
+          }
+        }
+      }
+    }
+  }
+}
+
+.card-title {
+  font-size: 28rpx;
+  font-family: PingFang SC-Bold, PingFang SC;
+  font-weight: bold;
+  color: #1d161f;
+  padding-left: 10rpx;
+  line-height: 91rpx;
+}
+
+.member-other-card {
+  width: 650rpx;
+  // height: 273rpx;
+  margin: 20rpx auto 20rpx auto;
+  padding: 0 20rpx;
+  background: #ffffff;
+  display: flex;
+  flex-direction: column;
+  border-radius: 18rpx 18rpx 18rpx 18rpx;
+  &-name{
+    font-family: PingFang SC, PingFang SC;
+    font-weight: 400;
+    font-size: 28rpx;
+    color: #333333;
+    line-height: 48rpx;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+  }
+
+}
 </style>

+ 117 - 38
pages/shoppingCart/shoppingCart.vue

@@ -1,40 +1,69 @@
 <template>
 	<view class="shopping-wrapper">
 		<view class="goods-box">
-			<view class="goods-list display-flex-center" v-for="(item, index) in list" :key="index">
-				<u-checkbox-group @change="checkedDataChange" v-model="item.checkedData" size="20"
-					activeColor="#F39800">
-					<u-checkbox :name="item.id" shape="circle" label=" "></u-checkbox>
-				</u-checkbox-group>
-				<image class="ml10 mr10" style="width: 183rpx; height: 183rpx; border-radius: 12rpx;flex-shrink: 0;"
-					:src="item.goods_cover" mode="aspectFill">
-				</image>
-				<view class="list-info">
-					<view class="fs14 fw600">{{item.goods_name}}</view>
-					<view class="gray-tag mt5 mb10">{{item.sku.goods_spec}}</view>
-					<view class="display-flex-between">
-						<text class="fw600 color-o range fs16">¥{{item.sku.price_selling}}</text>
-						<u-number-box min="1" :name="item.id"
-							:max=" item.goods_type == 'goods' ? item.sku.stock_total : 1" v-model="item.num"
-							@change="numChange">
-						</u-number-box>
-					</view>
-				</view>
+			<view class="goods-list" >
+        <view class=" display-flex-center mb20" v-for="(item, index) in list" :key="index">
+          <u-checkbox-group @change="checkedDataChange" v-model="item.checkedData" size="20"
+          >
+            <u-checkbox :name="item.id" shape="circle" label=" " activeColor="#C29556"></u-checkbox>
+          </u-checkbox-group>
+          <image class="ml10 mr20" style="width: 176rpx; height: 176rpx; border-radius: 12rpx;flex-shrink: 0;"
+                 :src="item.goods_cover" mode="aspectFill">
+          </image>
+          <view class="list-info">
+            <view class="fs14 fw400 color-333">{{item.goods_name}}</view>
+            <view class="fw400 color-888 fs12 mt8 mb8">{{item.sku.goods_spec}}</view>
+            <view class="display-flex-between">
+              <text class="fw400 color-888  fs12 mb8">¥<text class="fw700 color-333  fs16 mb8">{{item.sku.price_selling}}</text></text>
+              <u-number-box min="1" :name="item.id"
+                            :max=" item.goods_type == 'goods' ? item.sku.stock_total : 1" v-model="item.num"
+                            @change="numChange" button-size="24">
+                <view
+                    slot="minus"
+                    class="minus"
+                >
+                  <u-icon
+                      name="minus"
+                      size="12"
+                  ></u-icon>
+                </view>
+                <text
+                    slot="input"
+                    style="width: 48rpx;text-align: center;line-height: 48rpx;font-size: 24rpx"
+                    class="input"
+                >{{item.num}}</text>
+                <view
+                    slot="plus"
+                    class="plus"
+                >
+                  <u-icon
+                      name="plus"
+                      size="12"
+                  ></u-icon>
+                </view>
+              </u-number-box>
+            </view>
+          </view>
+        </view>
+        <u-divider ></u-divider>
+        <view style="width: 100%" class="display-flex-end">
+          <view class="color-333 fs12 fw400">共{{ num }}件商品&nbsp;&nbsp;总计:<text class=" fs12 fw400">¥</text><text class="fw700 fs20">{{totalPrice2}}</text></view>
+        </view>
+
 			</view>
 		</view>
 		<view class="bottom-box display-flex-between">
-			<view class="display-flex-center">
-				<u-checkbox-group @change="allCheckedChange" v-model="allChecked" size="20" activeColor="#F39800">
-					<u-checkbox name="all" shape="circle" label=" "></u-checkbox>
+			<view class="display-flex-center ">
+				<u-checkbox-group @change="allCheckedChange" v-model="allChecked" size="20" >
+					<u-checkbox activeColor="#C29556" name="all" shape="circle" label=" "></u-checkbox>
 				</u-checkbox-group>
-				<view class="color-red" @click="delData">删除</view>
+				<view class="color-333" @click="delData">删除</view>
 			</view>
-			<view class="display-flex">
-				<view>总计(不含运费):¥<text class="fw600 fs16">{{totalPrice}}</text></view>
+			<view class="display-flex-content-center mb5 ">
+				<view class="color-333 fs14 fw400 ">总计:<text class="color-556 fs12 fw400">¥</text><text class="fw700 fs20 color-556">{{totalPrice}}</text></view>
 				<view class="common-btn" :class="[settleDisabled ? 'common-btn-disabled' : '']" @click="toSettle">结算
 				</view>
 			</view>
-
 		</view>
 		<tabbarCom :zIndex="100" current="3"></tabbarCom>
 	</view>
@@ -53,6 +82,7 @@
 				checkValue: [],
 				radiovalue1: [],
 				isGift: '0',
+        num:0,
 				options: [{
 					text: '取消',
 					style: {
@@ -71,12 +101,23 @@
 				const checkedData = this.list.filter(item => item.checkedData.length != 0)
 				let result = 0
 				checkedData.forEach(item => {
-					const num = item.num
+          const num = item.num
 					const price = item.sku.price_selling
 					result = result + (num * price)
 				})
 				return result.toFixed(2)
 			},
+      totalPrice2() {
+        let result = 0
+        this.num =0;
+        this.list.forEach(item => {
+          let num = item.num
+          const price = item.sku.price_selling
+          result = result + (num * price)
+          this.num = this.num+num
+        })
+        return result.toFixed(2)
+      },
 			settleDisabled() {
 				const checkedData = this.list.filter(item => item.checkedData.length != 0)
 				const giftData = this.list.find(item => item.checkedData.length != 0 && item.goods_type == 'gift')
@@ -198,39 +239,77 @@
 <style lang="scss" scoped>
 	.shopping-wrapper {
 		padding-bottom: 178rpx;
-
 		.goods-box {
 			margin-top: 20rpx;
-
+      padding: 0 20rpx;
 			.goods-list {
 				padding: 45rpx 34rpx;
 				background-color: #fff;
 				margin-bottom: 20rpx;
-				border-radius: 15rpx;
-			}
-
-			.list-info {
-				width: 100%;
+				border-radius: 24rpx;
+        .list-info {
+          width: 100%;
+        }
 			}
 		}
 
 		.bottom-box {
 			background-color: #fff;
-			height: calc(160rpx - env(safe-area-inset-bottom));
+			height: calc(169rpx - env(safe-area-inset-bottom));
 			position: fixed;
 			bottom: calc(env(safe-area-inset-bottom) + 120rpx);
 			left: 0;
 			right: 0;
-			z-index: 1;
+			z-index: 9999;
 			padding: 10rpx 35rpx;
-
 			.common-btn {
 				flex-shrink: 0;
 				height: 60rpx;
 				line-height: 60rpx;
-				// width: 218rpx;
+				width: 150rpx;
 				margin-left: 30rpx;
+        background-color:#C29556;
+        border-color: #C29556;
 			}
+      .common-btn-disabled {
+        background: #EEEFF1;
+        color: #1D161F;
+        border-color: #EEEFF1;
+      }
 		}
 	}
+  .minus {
+    width: 48rpx;
+    height: 48rpx;
+    background: #FFFFFF;
+    margin-top: 16rpx;
+    border-radius: 8rpx 0rpx 0rpx 8rpx;
+    border: 1rpx solid #CCCCCC;
+    @include flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .input {
+    height: 48rpx;
+    width: 48rpx;
+    background: #FFFFFF;
+    border-radius: 0rpx 0rpx 0rpx 0rpx;
+    border: 1rpx solid #CCCCCC;
+    margin-top: 16rpx;
+  }
+
+  .plus {
+    width: 48rpx;
+    height: 48rpx;
+    background-color: #FFFFFF;
+    border-radius:  0rpx 8rpx 8rpx 0rpx;
+    border: 1rpx solid #CCCCCC;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin-top: 16rpx;
+  }
+
+
 </style>

BIN
static/ic-editor-org.png


BIN
static/ic-other-a.png


BIN
static/ic-other-b.png


BIN
static/ic-other-c.png


BIN
static/ic-other-d.png


BIN
static/ic-other-e.png


BIN
static/ic-other-f.png


BIN
static/ic-other-g.png


BIN
static/ic-shop-a.png


BIN
static/ic-shop-b.png


BIN
static/ic-shop-c.png


BIN
static/ic-shop-d.png


BIN
static/ic-shop-e.png


BIN
static/setting-a.png


BIN
static/setting-b.png


BIN
static/setting-c.png


+ 35 - 26
subPages/coupon/couponItem.vue

@@ -1,6 +1,9 @@
 <template>
-	<view class="coupon-item" @click="onClick">
-		<view class="left">
+	<view class="coupon-item" @click="onClick" :style="{
+        background: `url(${youhuiquan_bgimg}) no-repeat center top`,
+        backgroundSize: '100% 100%',
+      }">
+		<view class="left"  >
 			<view :class="['img-wrap', { disabled: config.disabled }]">
 				<text class="unit">¥</text>
 				<text class="number">{{ getNumber(data.coupon_price) }}</text>
@@ -39,6 +42,18 @@
 				default: () => ({}),
 			},
 		},
+    data() {
+      return {
+        youhuiquan_bgimg: '',
+      }
+    },
+    mounted() {
+      const configs = uni.getStorageSync("configs");
+      console.log(configs)
+      if (configs) {
+        this.youhuiquan_bgimg = configs.cs_youhuiquan_bgimg
+      }
+    },
 		methods: {
 			getNumber(data) {
 				return Number(data);
@@ -61,38 +76,34 @@
 		display: flex;
 		justify-content: space-between;
 		align-items: center;
-		height: 161rpx;
+		height: 184rpx;
 		background-color: #fff;
-		border-radius: 10rpx;
+    border: none;
 		padding-right: 30rpx;
-		box-shadow: -2rpx 5rpx 15rpx 2rpx rgba(190, 190, 190, 0.25);
+		//box-shadow: -2rpx 5rpx 15rpx 2rpx rgba(190, 190, 190, 0.25);
 		margin-bottom: 20rpx;
 
 		.left {
 			display: flex;
 			align-items: center;
-
+      border: none;
 			.img-wrap {
 				display: flex;
 				justify-content: center;
 				align-items: center;
-				width: 205rpx;
-				height: 161rpx;
-				background: linear-gradient(90deg, #fd6a01 0%, #f3b115 100%);
-				border-radius: 10rpx;
-				color: #fff;
-
-				&.disabled {
-					background: #bbbbbb;
-				}
+				width: 185rpx;
+				height: 184rpx;
+        color: #AC7B43 ;
+        border: none;
+        font-weight: 700;
 
 				.unit {
-					font-size: 28rpx;
+					font-size: 36rpx;
 					margin-top: 22rpx;
 				}
 
 				.number {
-					font-size: 80rpx;
+					font-size: 72rpx;
 				}
 			}
 
@@ -123,21 +134,19 @@
 			display: flex;
 			justify-content: center;
 			align-items: center;
-			width: 122rpx;
-			height: 44rpx;
+			width: 144rpx;
+			height: 56rpx;
 			font-size: 24rpx;
 			line-height: 1;
 			font-weight: 500;
 			color: #ffffff;
-			background: #f39800;
-			border-radius: 22rpx 22rpx 22rpx 22rpx;
-
+			background: linear-gradient( 315deg, #CA9359 0%, #E2B98E 100%);
+			border-radius: 292rpx  292rpx   292rpx   292rpx ;
 			&.btnPlain {
-				border: 1rpx solid #f39800;
-				background: #ffffff;
-				color: #f39800;
+				//background: #ffffff;
+        background: linear-gradient( 315deg, #CA9359 0%, #E2B98E 100%);
+				color: #ffffff;
 			}
-
 			&.disabled {
 				background: #f2f2f2;
 				color: #767676;

+ 10 - 8
subPages/goodsDetail/goodsDetail.vue

@@ -216,18 +216,20 @@
     <!-- 选套装 -->
     <u-popup :show="show" mode="bottom" :safeAreaInsetTop="true" round="10" closeable @close="close" @open="open">
       <view class="suit-content">
-        <view class="display-flex-center mr20 mb30 mt15">
-          <u--image :src="detailData.cover" width="130rpx" height="130rpx" mode="widthFix"></u--image>
-          <view class="ml10">
+        <view class="display-flex-center mr20 mb30 ">
+          <u--image :src="detailData.cover" width="176rpx" height="176rpx" mode="widthFix"></u--image>
+          <view class="ml15">
             <view v-if="pageOptions.type == 'msGoods'">
-              售价
-              <text class="fs16 color-orange fw600 mr20">¥{{ (goodSuitPriceData.price || 0) * suitNum }}</text>
+              <text class="fs12 color-556 fw400">¥</text>
+              <text class="fs20 color-556 fw700 mr20">{{ (goodSuitPriceData.price || 0) * suitNum }}</text>
             </view>
             <view v-else>
-              售价
-              <text class="fs16 color-orange fw600 mr20">¥{{ (goodSuitPriceData.price || 0) * suitNum }}</text>
+              <text class="fs12 color-556 fw400">¥</text>
+              <text class="fs20 color-556 fw700 mr20">{{ (goodSuitPriceData.price || 0) * suitNum }}</text>
+            </view>
+            <view class="color-777 mt5">
+              <text>已选择  {{ selectSuitDisplay }}</text>
             </view>
-            <view class="color-7a mt5">已选 {{ selectSuitDisplay }}</view>
           </view>
         </view>
         <!-- 普通商品规格 -->

+ 102 - 80
subPages/personalDataManagement/index.vue

@@ -1,85 +1,81 @@
 <template>
 	<view class="app-page">
 		<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
-			style="border: none;background: transparent;margin: 0;padding: 0;">
-			<view class="card-box" style="margin-top: 20rpx;">
-				<text class="left-title">头像</text>
+			style="border: none;background: transparent;margin: 0;padding: 72rpx 0;">
 				<view class="h-view">
-					<u--image v-if="form.headimg" width='50rpx' height='50rpx' radius="100%" shape='circle'
+					<u--image v-if="form.headimg" width='144rpx' height='144rpx' radius="100%" shape='circle'
 						customStyle="margin: 0" :src="form.headimg" :fade="true" duration="450" mode='heightFix'>
 					</u--image>
 					<view class="v1" v-else>
-						<u--image width='50rpx' height='50rpx' radius="100%" shape='circle'
+						<u--image width='144rpx' height='144rpx' radius="100%" shape='circle'
 							:src="`${$getImgBaseUrl()}nologin.png`" :fade="true" duration="450" mode='heightFix'>
 						</u--image>
 					</view>
-					<u-icon name="arrow-right" color="#AEAEAE" size="15rpx"
-						customStyle="padding: 12rpx;margin-right:8rpx">
-					</u-icon>
-				</view>
 			</view>
 		</button>
-		<view class="card-box">
-			<text class="left-title">昵称</text>
-			<view class="h-view">
-				<u-input v-model="form.nickname" placeholder="请输入" type="nickname" border="none" :auto-height="true"
-					clearable customStyle="margin:0 20rpx;text-align: right;" />
-			</view>
-		</view>
-		<view class="card-box">
-			<text class="left-title">姓名</text>
-			<view class="h-view">
-				<u-input v-model="form.realname" placeholder="请输入" border="none" :auto-height="true" clearable
-					customStyle="margin:0 20rpx;text-align: right;" />
-			</view>
-		</view>
-		<view class="card-box">
-			<text class="left-title">性别</text>
-			<view class="h-view">
-				<u-radio-group v-model="form.base_sex" placement="row">
-					<u-radio activeColor="#F39800" label="男" name="男" :customStyle="{marginRight: '8px'}"></u-radio>
-					<u-radio activeColor="#F39800" label="女" name="女"></u-radio>
-				</u-radio-group>
-			</view>
-		</view>
-		<view class="card-box">
-			<text class="left-title">所在地区</text>
-			<view class="h-view">
-				<picker mode="region" :value="form.region_area" @change="bindAreaChange">
-					<view v-if="!form.region_province" class="color-9">省市区县、乡镇等</view>
-					<view v-else class="color-23">{{areaDisplay}}</view>
-				</picker>
-			</view>
-		</view>
-		<view class="card-box">
-			<text class="left-title">手机号</text>
-			<view class="h-view">
-				<u-input v-model="form.phone" placeholder="请输入" type="number" border="none" :auto-height="true"
-					clearable :maxlength="11" customStyle="margin:0 20rpx;text-align: right;" />
-				<button type="primary" class="mini-btn" open-type="getRealtimePhoneNumber"
-					@getrealtimephonenumber="getrealtimephonenumber" size="mini">获取手机号</button>
-			</view>
-		</view>
-		<view class="bottom-view">
-		</view>
+    <view class="card-box">
+      <view class="display-flex-between" >
+        <text class="left-title">昵称</text>
+        <view class="h-view">
+          <u-input v-model="form.nickname" placeholder="请输入" type="nickname" border="none" :auto-height="true"
+                   clearable customStyle="margin:0;text-align: right;" />
+        </view>
+      </view>
+      <u-divider  ></u-divider>
+      <view class="display-flex-between" >
+        <text class="left-title">姓名</text>
+        <view class="h-view">
+          <u-input v-model="form.realname" placeholder="请输入" border="none" :auto-height="true" clearable
+                   customStyle="margin:0;text-align: right;" />
+        </view>
+      </view>
+      <u-divider  ></u-divider>
+      <view class="display-flex-between"  @click="show2 = true">
+        <text class="left-title">性别</text>
+        <view class="h-view" >
+              {{form.base_sex}}  <view class="ml8"><u-icon name="arrow-right" bold color="#333333" size="14"></u-icon></view>
+        </view>
+      </view>
+      <u-divider  ></u-divider>
+      <view class="display-flex-between" >
+        <text class="left-title">所在地区</text>
+        <view class="h-view">
+          <picker mode="region" :value="form.region_area" @change="bindAreaChange">
+            <view v-if="!form.region_province" class="color-9 display-flex-content-center">省市区县、乡镇等  <view class="ml8"><u-icon name="arrow-right" bold color="#333333" size="14"></u-icon></view></view>
+            <view v-else class="color-23 display-flex-content-center">{{areaDisplay}}  <view class="ml8"><u-icon name="arrow-right" bold color="#333333" size="14"></u-icon></view></view>
+          </picker>
+        </view>
+      </view>
+      <u-divider  ></u-divider>
+      <view class="display-flex-between" >
+        <text class="left-title">手机号</text>
+        <view class="h-view">
+          <u-input v-model="form.phone" placeholder="请输入" type="number" border="none" :auto-height="true"
+                   clearable :maxlength="11" customStyle="margin:0 20rpx;text-align: right;" />
+          <button class="btn-c" open-type="getRealtimePhoneNumber"
+                  @getrealtimephonenumber="getrealtimephonenumber" size="mini">获取手机号</button>
+        </view>
+      </view>
+    </view>
+
 		<view class="bottom-menu-box">
+      <view class="agree-box">
+        <view class="unchecked-tips" v-show="showUnchecked">请先阅读并同意协议</view>
+        <u-checkbox-group @change="termsChange" v-model="termsChecked" style="margin-left: 30rpx;">
+          <u-checkbox activeColor="#C29556" name="term" shape="circle" size="40rpx"></u-checkbox>
+        </u-checkbox-group>
+        <text class="item-text">
+          已阅读并同意
+          <text class="text-primary fs14 fw600" @click="checkPrimary('2')">《隐私保护协议》</text>
+          与
+          <text class="text-primary fs14 fw600" @click="checkPrimary('1')">《用户协议》</text>
+        </text>
+      </view>
 			<view class="common-btn" @click="commit">提交</view>
-			<!-- <button class="primary-btn" @click="commit">提交</button> -->
-			<view class="agree-box">
-				<view class="unchecked-tips" v-show="showUnchecked">请先阅读并同意协议</view>
-				<u-checkbox-group @change="termsChange" v-model="termsChecked" style="margin-left: 30rpx;">
-					<u-checkbox name="term" shape="circle" size="40rpx"></u-checkbox>
-				</u-checkbox-group>
-				<text class="item-text">
-					已阅读并同意
-					<text class="text-primary fs14 fw600" @click="checkPrimary('2')">《隐私保护协议》</text>
-					与
-					<text class="text-primary fs14 fw600" @click="checkPrimary('1')">《用户协议》</text>
-				</text>
-			</view>
 		</view>
 		<u-picker :show="show" keyName="label" confirmColor="#815BFF" :columns="[list]" @confirm="confirm"
 			@cancel="show = false"></u-picker>
+    <u-picker  :show="show2"  :columns="columns"  ref="uPicker" @confirm="sexConfirm" @cancel="sexCancel" ></u-picker>
 	</view>
 </template>
 
@@ -111,9 +107,13 @@
 					phone: undefined,
 					base_sex: undefined,
 				},
+        columns: [
+          ['男', '女']
+        ],
 				showUnchecked: false,
 				termsChecked: false,
 				show: false,
+        show2: false,
 				isNeedUpLoad: false,
 				userInfo: {},
 				selectItem: {},
@@ -124,7 +124,7 @@
 				const {
 					region_province = '', region_city = '', region_area = ''
 				} = this.form
-				return region_province + region_city + region_area
+				return region_province +' '+ region_city +' ' + region_area
 			},
 		},
 		onLoad(options) {},
@@ -139,7 +139,6 @@
 				if (e.detail?.code) {
 					this.getUserPhone(e.detail?.code)
 				}
-
 			},
 			async getUserPhone(code) {
 				const data = {
@@ -166,6 +165,23 @@
 				// this.areaDisplay = value.join('.')
 				console.log(8999, data, this.form)
 			},
+
+      // 回调参数为包含columnIndex、value、values
+      sexConfirm(e) {
+
+        const {
+          value,
+        } = e
+
+        console.log(e)
+        this.form.base_sex = value[0]
+        this.show2 = false
+      },
+      sexCancel(e) {
+        this.show2 = false
+      },
+
+
 			checkPrimary(name) {
 				uni.navigateTo({
 					url: '/pages/singlePage/index?name=' + name
@@ -336,15 +352,11 @@
 	}
 
 	.card-box {
-		width: 710rpx;
+		width: 650rpx;
 		background: #FFFFFF;
-		border-radius: 15rpx 15rpx 15rpx 15rpx;
+    border-radius: 20rpx 20rpx 20rpx 20rpx;
 		margin: 0 auto 20rpx auto;
-		display: flex;
-		padding: 20rpx 0;
-		flex-direction: row;
-		align-items: center;
-		justify-content: space-between;
+		padding: 30rpx;
 	}
 
 	.h-view {
@@ -356,7 +368,6 @@
 	}
 
 	.left-title {
-		margin-left: 20rpx;
 		font-size: 28rpx;
 	}
 
@@ -388,7 +399,7 @@
 		color: $gray-1;
 		position: relative;
 		align-items: center;
-		margin: 20rpx 30rpx;
+		margin: 0 auto;
 
 		.unchecked-tips {
 			position: absolute;
@@ -448,7 +459,7 @@
 
 		.primary-btn {
 			width: 713rpx;
-			margin-top: 14rpx;
+			margin-top: 50rpx;
 			height: 78rpx;
 			line-height: 78rpx;
 			background: #815BFF;
@@ -461,10 +472,13 @@
 
 		.common-btn {
 			// width: 713rpx;
-			width: calc(100% - 40rpx);
-			margin-top: 14rpx;
+			width: calc(100% - 80rpx);
 			box-sizing: border-box;
-			margin: 14rpx 20rpx 0;
+      margin: 0 auto;
+      margin-top: 50rpx;
+      background: linear-gradient( 315deg, #CA9359 0%, #E2B98E 100%);
+      border-radius: 292rpx 292rpx 292rpx 292rpx;
+      border:0;
 		}
 
 		button::after {
@@ -476,4 +490,12 @@
 			opacity: 0.7;
 		}
 	}
+  .btn-c{
+    width: 180rpx;
+    height: 56rpx;
+    border-radius: 8rpx 8rpx 8rpx 8rpx;
+    border: 2rpx solid #C29556;
+    padding: 0 10px;
+  }
+
 </style>

+ 0 - 1
subPages/register/index.vue

@@ -278,7 +278,6 @@
 	}
 
 	.left-title {
-		margin-left: 20rpx;
 		font-size: 28rpx;
 	}
 

+ 73 - 0
subPages/setting/index.vue

@@ -0,0 +1,73 @@
+<template>
+  <view class="shopping-wrapper">
+    <view class="common-card" v-for="(item, index) in list" :key="index" @click="toSubPages(item.index)">
+      <view class="display-flex-between">
+        <view class="mt15 mb15 display-flex-content-center">
+          <image :src="item.url" class="mr12" mode="heightFix" style="width: 36rpx;height: 36rpx"></image>
+          <text class="member-other-card-name">{{ item.name }}</text>
+        </view>
+        <view>
+          <u-icon name="arrow-right" bold color="#333333" size="14"></u-icon>
+        </view>
+      </view>
+    </view>
+  </view>
+</template>
+<script>
+import tabbarCom from "@/components/tabbar/tabbar.vue";
+export default {
+  components: {tabbarCom},
+  data() {
+    return {
+      list: [
+        {
+          url: "/static/setting-a.png",
+          index: "/subPages/personalDataManagement/index",
+          name: "个人资料"
+        },
+        {
+          url: "/static/setting-b.png",
+          index: "/subPages/setting/setPwd?type=add",
+          name: "安全密码"
+        },
+        {
+          url: "/static/setting-c.png",
+          index: "/subPages/setting/setPwd?type=set-2",
+          name: "忘记安全密码"
+        }
+      ],
+    };
+  },
+  methods: {
+    toSubPages(index) {
+      uni.navigateTo({
+        url: index,
+      });
+    },
+  }
+
+}
+</script>
+
+<style lang="scss" scoped>
+.shopping-wrapper {
+  padding: 30rpx 30rpx 178rpx;
+
+  .common-card {
+    background: #FFFFFF;
+    border-radius: 16rpx 16rpx 16rpx 16rpx;
+    padding: 0 20rpx;
+
+    member-other-card -name {
+      font-family: PingFang SC, PingFang SC;
+      font-weight: 400;
+      font-size: 28rpx;
+      color: #333333;
+      line-height: 48rpx;
+      text-align: left;
+      font-style: normal;
+      text-transform: none;
+    }
+  }
+}
+</style>

+ 232 - 0
subPages/setting/setPwd.vue

@@ -0,0 +1,232 @@
+<template>
+  <view style="background-color: #FFFFFF;height: 100%;width: 100%;padding-top:80rpx">
+    <view class="shopping-wrapper">
+      <view>
+        <u-icon name="close" bold color="#333333" size="20" @click="goBack()"></u-icon>
+      </view>
+      <view class="title">
+        <view class="title-text mb8" v-if="type=='add'">请设置安全密码</view>
+        <view class="title-text mb8" v-else-if="type=='set-2'">请输入原密码</view>
+        <view class="title-text mb8" v-else>请输入新密码</view>
+        <view class="title-prompt">6位数字</view>
+      </view>
+      <view>
+        <u-input
+            :type="isPasswordVisible ? 'password' : 'text'"
+            placeholder="请输入内容"
+            v-model="password"
+            maxlength="6"
+            :disabled="isSetPassword"
+            shape="circle"
+            placeholderStyle="color:#888888;"
+            color="#333333"
+            border="none"
+            custom-style="background-color: #F3F6FC;padding-right: 20rpx;padding-left: 20rpx;opacity: 0.6;height: 94rpx;"
+        >
+          <template slot="suffix">
+            <u-icon
+                v-if="password.length>0&&!this.isSetPassword"
+                :name="isPasswordVisible ? 'eye' : 'eye-off'"
+                size="20"
+                @click="togglePasswordVisibility"
+            />
+          </template>
+        </u-input>
+      </view>
+      <view style="height: 108rpx; " class="btn-commnt" @click="setPassword()">
+        <view class="btn-commnt-text" v-if="type=='add'||type=='set-3'">完成</view>
+        <view class="btn-commnt-text" v-else>下一步</view>
+      </view>
+    </view>
+  </view>
+</template>
+<script>
+import {checkPayPswd, setPayPswd} from "@/common/api";
+import {getUserInfo} from "@/common/api/user";
+
+export default {
+  data() {
+    return {
+      password: '',
+      userInfo: {},
+      isSetPassword: false,
+      isPasswordVisible: true,
+      type: "add",
+      verifyCode:"",
+    };
+  },
+  onLoad(options) {
+    // 保存查询参数到页面的数据对象中
+    if (options.type) {
+      this.type = options.type;
+    }
+    console.log("type", this.type)
+  },
+  onShow() {
+    this.initUserInfo()
+  },
+  methods: {
+    async getUserInfo() {
+      const data = {}
+      await getUserInfo(data)
+          .then(res => {
+            if (res.data) {
+              uni.setStorageSync('token', res.data.token.token)
+              uni.setStorageSync('userInfo', JSON.stringify(res.data))
+              this.userInfo = res.data;
+            }
+          })
+          .catch(() => {
+            uni.hideLoading();
+          });
+    },
+    async initUserInfo() {
+      await this.getUserInfo();
+      if (this.userInfo.pay_pswd && this.userInfo.pay_pswd.length > 0&& this.type == 'add' ) {
+        this.isSetPassword = true;
+        this.password = this.userInfo.pay_pswd;
+      }
+    },
+    goBack() {
+      uni.navigateBack({
+        delta: 1 // 返回上一级页面
+      });
+    },
+    change(e) {
+    },
+    togglePasswordVisibility() {
+      this.isPasswordVisible = !this.isPasswordVisible;
+    },
+    savePad() {
+      if (this.password.length < 6) {
+        uni.showToast({
+          title: '请输入6位数字',
+          icon: 'none',
+          duration: 2000
+        });
+        return
+      }
+      if (this.isSetPassword) {
+        uni.showToast({
+          title: '您已设置支付密码,无需重复设置',
+          icon: 'none',
+          duration: 2000
+        });
+        return
+      }
+      setPayPswd({pay_pswd: this.password}).then((res) => {
+        if (this.type!="set-3"){
+          uni.showToast({
+            title: '保存成功'
+          })
+        }else{
+          uni.showToast({
+            title: '修改成功'
+          })
+        }
+        this.isSetPassword = true
+        setTimeout(() => {
+          uni.navigateTo({
+            url: '/subPages/setting/index',
+          });
+        }, 500);
+      })
+    },
+    verifyPad() {
+      if (this.password.length < 6) {
+        uni.showToast({
+          title: '请输入6位数字',
+          icon: 'none',
+          duration: 2000
+        });
+        return
+      }
+
+      checkPayPswd({pay_pswd: this.password}).then((res) => {
+        uni.navigateTo({
+          url:  "/subPages/setting/setPwd?type=set-3",
+      });
+      })
+    },
+    setPassword() {
+      switch (this.type) {
+        case "add":
+          this.savePad();
+          break;
+        case "set-1":
+          break;
+        case "set-2":
+          this.verifyPad()
+          break;
+        case "set-3":
+          this.savePad();
+          break;
+        default:
+          break;
+      }
+    },
+  }
+
+}
+</script>
+
+<style lang="scss" scoped>
+.shopping-wrapper {
+  width: 630rpx;
+  margin: 0rpx auto 0rpx;
+  padding: 30rpx 30rpx 178rpx;
+
+  .title {
+    display: flex;
+    flex-direction: column;
+    align-items: flex-start; /* 左对齐 */
+    justify-content: flex-start; /* 左对齐 */
+    margin-top: 112rpx;
+    margin-bottom: 124rpx;
+
+    .title-text {
+      font-family: PingFang SC, PingFang SC;
+      font-weight: 600;
+      font-size: 48rpx;
+      color: #262424;
+      line-height: 68rpx;
+      text-align: left;
+      font-style: normal;
+      text-transform: none;
+    }
+
+    .title-prompt {
+      font-family: PingFang SC, PingFang SC;
+      font-weight: 400;
+      font-size: 24rpx;
+      color: #888888;
+      line-height: 36rpx;
+      text-align: center;
+      font-style: normal;
+      text-transform: none;;
+    }
+  }
+
+  .btn-commnt {
+    margin-top: 40rpx;
+    background: linear-gradient(315deg, #CA9359 0%, #E2B98E 100%);
+    border-radius: 292rpx 292rpx 292rpx 292rpx;
+    opacity: 0.6;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+
+    .btn-commnt-text {
+      font-family: PingFang SC, PingFang SC;
+      font-weight: 400;
+      font-size: 32rpx;
+      color: #FFFFFF;
+      line-height: 42rpx;
+      text-align: center;
+      font-style: normal;
+      text-transform: none;
+    }
+  }
+}
+
+</style>

+ 30 - 18
subPages/settleCenter/courseSettleCenter.vue

@@ -15,9 +15,22 @@
             </view>
           </view>
           <view v-if="mAddress && mAddress.code" class="address-view">
-            <text class="t1" space="ensp">
-              {{mAddress.province}} {{mAddress.city}}{{mAddress.area}}{{mAddress.address}}</text>
-            <text class="t2" space="emsp">{{mAddress.name}} {{mAddress.phone}}</text>
+            <view style="display: flex; align-items: center;">
+              <van-image
+                  height="36rpx"
+                  src="/static/hd-if-b.png"
+                  width="36rpx"
+              />
+              <view   style="margin-top: 0; margin-left: 34rpx ;font-family: PingFang SC-Medium;">
+                <view class="t1" space="ensp">
+                  {{ mAddress.name }} {{ mAddress.phone }}
+                </view>
+                <br />
+                <view class="t2" space="emsp">
+                  {{ mAddress.province }} {{ mAddress.city }}{{ mAddress.area }}{{ mAddress.address }}
+                </view>
+              </view>
+            </view>
           </view>
           <u-icon name="arrow-right" color="#AEAEAE" size="34rpx"></u-icon>
         </view>
@@ -182,7 +195,6 @@
 					}
 					this.$api.createOrderByCart(sendData).then(res => {
 						const { appId, nonceStr, paySign, signType, timeStamp } = res.data.param
-						console.log(333333555, res.data)
 						uni.requestPayment({
 							provider: 'wxpay',
 							nonceStr,
@@ -350,21 +362,21 @@
 			display: flex;
 			flex-direction: column;
 
-			.t1 {
-				font-size: 28rpx;
-				margin-top: 10rpx;
-				font-family: PingFang SC-Medium, PingFang SC;
-				font-weight: 500;
-				color: #141414;
-			}
+      .t1 {
+        font-size: 28rpx;
+        margin-top: 10rpx;
+        font-family: PingFang SC-Medium, PingFang SC;
+        font-weight: 400;
+        color: #333333;
+      }
 
-			.t2 {
-				font-size: 28rpx;
-				font-family: PingFang SC-Medium, PingFang SC;
-				font-weight: 500;
-				color: #606060;
-				margin-top: 20rpx;
-			}
+      .t2 {
+        font-size: 28rpx;
+        font-family: PingFang SC-Heavy, PingFang SC;
+        font-weight: 600;
+        color: #333333;
+        margin-top: 20rpx;
+      }
 		}
 	}
   .bottom-navigation{

+ 80 - 42
subPages/settleCenter/settleCenter.vue

@@ -5,14 +5,33 @@
       <view class="address-box" @click="selectAddress">
         <!-- 未选择地址时显示的提示 -->
         <view v-if="!mAddress || !mAddress.code" class="address-view">
-          <text class="t1" style="margin-top: 0;">请选择收货地址</text>
+          <view style="display: flex; align-items: center;">
+            <van-image
+                height="36rpx"
+                src="/static/hd-if-b.png"
+                width="36rpx"
+            />
+            <text class="t1" style="margin-top: 0; margin-left: 20rpx ;font-family: PingFang SC-Medium;">请选择收货地址</text>
+          </view>
         </view>
         <!-- 已选择地址时显示具体地址信息 -->
         <view v-if="mAddress && mAddress.code" class="address-view">
-          <text class="t1" space="ensp">
-            {{ mAddress.province }} {{ mAddress.city }}{{ mAddress.area }}{{ mAddress.address }}
-          </text>
-          <text class="t2" space="emsp">{{ mAddress.name }} {{ mAddress.phone }}</text>
+          <view style="display: flex; align-items: center;">
+            <van-image
+                height="36rpx"
+                src="/static/hd-if-b.png"
+                width="36rpx"
+            />
+            <view   style="margin-top: 0; margin-left: 34rpx ;font-family: PingFang SC-Medium;">
+              <view class="t1" space="ensp">
+                {{ mAddress.name }} {{ mAddress.phone }}
+              </view>
+              <br />
+              <view class="t2" space="emsp">
+                {{ mAddress.province }} {{ mAddress.city }}{{ mAddress.area }}{{ mAddress.address }}
+              </view>
+            </view>
+          </view>
         </view>
         <!-- 右侧箭头图标,表示可以点击展开地址选择 -->
         <u-icon name="arrow-right" color="#AEAEAE" size="34rpx"></u-icon>
@@ -22,27 +41,23 @@
     <view class="common-card-box">
       <view class="goods-list display-flex-center" v-for="(item, index) in goodsList" :key="index">
         <!-- 商品图片 -->
-        <image style="width: 155rpx; height: 155rpx; border-radius: 10rpx;margin-right: 10rpx;flex-shrink: 0;"
+        <image class="mr20" style="width: 176rpx; height: 176rpx; border-radius: 12rpx;flex-shrink: 0;"
                :src="item.goods_cover" mode="aspectFill">
         </image>
         <!-- 商品名称、规格和数量 -->
-        <view style="width: 100%;">
-          <view class="display-flex-between goods-name">
-            <text>{{ item.goods_name }}</text>
-            <text>¥{{ item.price_selling }}</text>
-          </view>
-          <view class="display-flex-between goods-number">
-            <text class="gray-tag">{{ item.goods_spec }}</text>
+        <view class="list-info">
+          <view class="fs14 fw400 color-333">{{item.goods_name}}</view>
+          <view class="fw400 color-888 fs12 mt8 mb8">{{item.sku.goods_spec}}</view>
+          <view class="display-flex-between">
+            <text class="fw400 color-888  fs12 mb8">¥<text class="fw700 color-333  fs16 mb8">{{item.price_selling}}</text></text>
             <text>×{{ item.stock_sales }}</text>
           </view>
         </view>
       </view>
       <!-- 商品总价区域 -->
       <view class="goods-total display-flex-center">
-        <text class="fs13 color-4a mr10">共{{ orderData.number_goods }}件商品</text>
-        <view class="fs14 color-23 fw500">
-          商品总价:
-          <text class="fs16 fw600 color-red">¥{{ orderData.amount_goods }}</text>
+        <view class="fs12 color-333 fw400">
+          共{{ orderData.number_goods }}件商品&nbsp;&nbsp; 总计:<text class=" fs12 fw400">¥</text><text class="fw700 fs20">{{orderData.amount_goods }}</text>
         </view>
       </view>
     </view>
@@ -53,19 +68,26 @@
     </view>
     <!-- 优惠券和积分使用区域 -->
     <template v-if="pageOptions.isGift != '1' && pageOptions.type != 'msGoods'">
-      <!-- 优惠券选择 -->
-      <view class="common-card good-card display-flex-between" @click="choseCoupon">
-        <view>优惠券</view>
-        <text v-if="checkedCoupon.coupon_id">{{ checkedCoupon.coupon_price }}</text>
-        <u-icon v-else name="arrow-right" color="#AEAEAE" size="34rpx"></u-icon>
-      </view>
-      <!-- 使用积分抵扣 -->
-      <view class="common-card good-card display-flex-between" v-if="usePointsFlag">
-        <view>使用{{ pointsShowData.points }}积分抵扣{{ pointsShowData.price }}元</view>
-        <u-checkbox-group v-model="usePoints" size="20" activeColor="#F39800">
-          <u-checkbox :disabled="pointsDisabled" name="points" shape="circle" label=" "></u-checkbox>
-        </u-checkbox-group>
+      <view class="common-card good-card ">
+        <!-- 优惠券选择 -->
+        <view class="display-flex-between" @click="choseCoupon">
+          <view>优惠券</view>
+          <view class="display-flex">
+            <view v-if="checkedCoupon.coupon_id" > 已选:{{ checkedCoupon.coupon_price }}元优惠券</view>
+            <view class=" ml10">
+              <u-icon name="arrow-right"  color="#AEAEAE" size="34rpx"></u-icon>
+            </view>
+          </view>
+        </view>
+        <!-- 使用积分抵扣 -->
+        <view class="display-flex-between  mt15"  v-if="usePointsFlag" >
+          <view class="display-flex">使用 {{ pointsShowData.points }} 积分抵扣 <view class="color-556 ml5 mr5"> {{ pointsShowData.price }}</view>元</view>
+          <u-checkbox-group v-model="usePoints" size="20" >
+            <u-checkbox :disabled="pointsDisabled" activeColor="#C29556" name="points" shape="circle" label=" "></u-checkbox>
+          </u-checkbox-group>
+        </view>
       </view>
+
     </template>
     <!-- 留言区域 -->
     <view class="common-card good-card">
@@ -73,9 +95,9 @@
       <u--textarea height="110" v-model="order_remark" placeholder="100字以内" maxlength="100" count></u--textarea>
     </view>
     <!-- 底部支付区域 -->
-    <view class="bottom-box display-flex-between">
-      <view>应付:¥{{ payTotal }}</view>
-      <view class="common-btn" @click="toPay">去支付</view>
+    <view class="bottom-box display-flex-end">
+      <view>应付:<text class="color-556 fs12 fw400">¥</text><text class="fw700 fs20 color-556">{{payTotal}}</text></view>
+      <view class="settle-center-btn" @click="toPay">去支付</view>
     </view>
     <!-- 优惠券选择弹窗 -->
     <u-popup :show="showCoupon" :round="10" mode="bottom" @close="showCoupon = false">
@@ -83,7 +105,7 @@
         <view class="popop-title text-center mb30">
           <text class="color-3 fw700 fs18">选择优惠券</text>
           <view class="float-right" @click="showCoupon = false">
-            <u-icon name="close-circle" color="#8E8E8E" size="28"></u-icon>
+            <u-icon name="close" bold="true" color="#8E8E8E" size="18"></u-icon>
           </view>
         </view>
         <!-- 优惠券列表 -->
@@ -211,7 +233,7 @@ export default {
      */
     getItemConfig(item) {
       let itemConfig = {
-        btnText: '选择使用',
+        btnText: '使用',
         disabled: false,
         btnPlain: true
       }
@@ -444,7 +466,18 @@ export default {
   padding-bottom: 188rpx;
   box-sizing: border-box;
 }
-
+.settle-center-btn {
+  height: 76rpx;
+  line-height: 78rpx;
+  width: 170rpx;
+  padding: 0 29rpx;
+  color: #fff;
+  background: linear-gradient( 315deg, #CA9359 0%, #E2B98E 100%);
+  border-radius: 292rpx 292rpx 292rpx 292rpx;
+  font-size: 32rpx;
+  text-align: center;
+  margin-left: 30rpx;
+}
 .good-card {
   padding: 38rpx 22rpx;
   color: #7A7A7A;
@@ -460,6 +493,9 @@ export default {
         background-color: transparent !important;
       }
     }
+    .u-checkbox__icon-wrap{
+      margin-right: 0!important;
+    }
   }
 }
 
@@ -467,6 +503,9 @@ export default {
   margin: 0 30rpx;
   padding: 30rpx 0;
   border-bottom: 1rpx solid #F5F5F5;
+  .list-info {
+    width: 100%;
+  }
 }
 
 .goods-total {
@@ -480,27 +519,26 @@ export default {
   display: flex;
   flex-direction: row;
   align-items: center;
-  padding: 56rpx 22rpx;
+  padding: 30rpx 22rpx;
 
 
   .address-view {
     flex: 1;
     display: flex;
     flex-direction: column;
-
     .t1 {
       font-size: 28rpx;
       margin-top: 10rpx;
       font-family: PingFang SC-Medium, PingFang SC;
-      font-weight: 500;
-      color: #141414;
+      font-weight: 400;
+      color: #333333;
     }
 
     .t2 {
       font-size: 28rpx;
-      font-family: PingFang SC-Medium, PingFang SC;
-      font-weight: 500;
-      color: #606060;
+      font-family: PingFang SC-Heavy, PingFang SC;
+      font-weight: 600;
+      color: #333333;
       margin-top: 20rpx;
     }
   }