Zory 6 일 전
부모
커밋
bc21c2ccd1
100개의 변경된 파일1591개의 추가작업 그리고 1307개의 파일을 삭제
  1. 90 90
      pages.json
  2. 2 2
      pages/index/index.vue
  3. 347 307
      pages/order/confirm.vue
  4. 23 15
      pages/order/detail.vue
  5. 264 267
      pages/order/info.vue
  6. 132 132
      pages/order/order.vue
  7. 115 115
      pages/order/store.vue
  8. 107 93
      pages/user/address.vue
  9. 45 45
      pages/user/license.vue
  10. 109 109
      pages/user/user.vue
  11. BIN
      static/.DS_Store
  12. BIN
      static/image/.DS_Store
  13. BIN
      static/image/coupon-fill.png
  14. BIN
      static/image/order-fill.png
  15. BIN
      static/image/time.png
  16. BIN
      static/image/user-fill.png
  17. 1 1
      unpackage/dist/build/mp-toutiao/app.json
  18. 0 0
      unpackage/dist/build/mp-toutiao/common/vendor.js
  19. 0 0
      unpackage/dist/build/mp-toutiao/pages/index/index.js
  20. 1 1
      unpackage/dist/build/mp-toutiao/pages/index/index.ttml
  21. 1 1
      unpackage/dist/build/mp-toutiao/pages/index/index.ttss
  22. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/confirm.js
  23. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/confirm.ttml
  24. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/confirm.ttss
  25. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/detail.js
  26. 2 1
      unpackage/dist/build/mp-toutiao/pages/order/detail.json
  27. 0 1
      unpackage/dist/build/mp-toutiao/pages/order/detail.ttml
  28. 1 1
      unpackage/dist/build/mp-toutiao/pages/order/detail.ttss
  29. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/info.js
  30. 3 1
      unpackage/dist/build/mp-toutiao/pages/order/info.json
  31. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/info.ttml
  32. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/info.ttss
  33. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/order.js
  34. 2 1
      unpackage/dist/build/mp-toutiao/pages/order/order.json
  35. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/order.ttml
  36. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/order.ttss
  37. 0 0
      unpackage/dist/build/mp-toutiao/pages/order/store.js
  38. 1 1
      unpackage/dist/build/mp-toutiao/pages/order/store.ttss
  39. 0 0
      unpackage/dist/build/mp-toutiao/pages/user/address.js
  40. 0 0
      unpackage/dist/build/mp-toutiao/pages/user/address.ttml
  41. 0 0
      unpackage/dist/build/mp-toutiao/pages/user/address.ttss
  42. 0 0
      unpackage/dist/build/mp-toutiao/pages/user/license.js
  43. 1 1
      unpackage/dist/build/mp-toutiao/pages/user/license.ttss
  44. 0 0
      unpackage/dist/build/mp-toutiao/pages/user/user.js
  45. 1 1
      unpackage/dist/build/mp-toutiao/pages/user/user.ttml
  46. 1 1
      unpackage/dist/build/mp-toutiao/pages/user/user.ttss
  47. BIN
      unpackage/dist/build/mp-toutiao/static/.DS_Store
  48. 5 0
      unpackage/dist/build/mp-toutiao/static/api/home.js
  49. 6 1
      unpackage/dist/build/mp-toutiao/static/api/order.js
  50. 5 1
      unpackage/dist/build/mp-toutiao/static/api/user.js
  51. BIN
      unpackage/dist/build/mp-toutiao/static/image/.DS_Store
  52. BIN
      unpackage/dist/build/mp-toutiao/static/image/coupon-fill.png
  53. BIN
      unpackage/dist/build/mp-toutiao/static/image/end.png
  54. BIN
      unpackage/dist/build/mp-toutiao/static/image/ex.png
  55. BIN
      unpackage/dist/build/mp-toutiao/static/image/fwz.png
  56. BIN
      unpackage/dist/build/mp-toutiao/static/image/kefu.png
  57. BIN
      unpackage/dist/build/mp-toutiao/static/image/order-dot.png
  58. BIN
      unpackage/dist/build/mp-toutiao/static/image/order-fill.png
  59. BIN
      unpackage/dist/build/mp-toutiao/static/image/refrsh.png
  60. BIN
      unpackage/dist/build/mp-toutiao/static/image/time.png
  61. BIN
      unpackage/dist/build/mp-toutiao/static/image/type_tag.png
  62. BIN
      unpackage/dist/build/mp-toutiao/static/image/user-fill.png
  63. 2 2
      unpackage/dist/build/mp-toutiao/uni_modules/uview-ui/components/u-icon/u-icon.json
  64. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/common/main.js.map
  65. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/common/vendor.js.map
  66. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/index/index.js.map
  67. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/confirm.js.map
  68. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/detail.js.map
  69. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/info.js.map
  70. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/order.js.map
  71. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/store.js.map
  72. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/address.js.map
  73. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/license.js.map
  74. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/user.js.map
  75. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  76. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-empty/u-empty.js.map
  77. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-icon/u-icon.js.map
  78. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-skeleton/u-skeleton.js.map
  79. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js.map
  80. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js.map
  81. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js.map
  82. 0 0
      unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/z-paging.js.map
  83. 1 1
      unpackage/dist/dev/mp-toutiao/app.json
  84. 16 2
      unpackage/dist/dev/mp-toutiao/common/vendor.js
  85. 0 3
      unpackage/dist/dev/mp-toutiao/package.json
  86. 53 30
      unpackage/dist/dev/mp-toutiao/pages/index/index.js
  87. 1 1
      unpackage/dist/dev/mp-toutiao/pages/index/index.ttml
  88. 19 2
      unpackage/dist/dev/mp-toutiao/pages/index/index.ttss
  89. 36 4
      unpackage/dist/dev/mp-toutiao/pages/order/confirm.js
  90. 0 0
      unpackage/dist/dev/mp-toutiao/pages/order/confirm.ttml
  91. 53 25
      unpackage/dist/dev/mp-toutiao/pages/order/confirm.ttss
  92. 39 18
      unpackage/dist/dev/mp-toutiao/pages/order/detail.js
  93. 0 1
      unpackage/dist/dev/mp-toutiao/pages/order/detail.ttml
  94. 20 2
      unpackage/dist/dev/mp-toutiao/pages/order/detail.ttss
  95. 63 14
      unpackage/dist/dev/mp-toutiao/pages/order/info.js
  96. 0 0
      unpackage/dist/dev/mp-toutiao/pages/order/info.ttml
  97. 9 5
      unpackage/dist/dev/mp-toutiao/pages/order/info.ttss
  98. 2 0
      unpackage/dist/dev/mp-toutiao/pages/order/order.js
  99. 0 0
      unpackage/dist/dev/mp-toutiao/pages/order/order.ttml
  100. 12 8
      unpackage/dist/dev/mp-toutiao/pages/order/order.ttss

+ 90 - 90
pages.json

@@ -1,100 +1,100 @@
-{
-	"pages": [
-		{
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "团购自助兑换"
-			}
-		},
-		{
-			"path": "pages/order/order",
-			"style": {
+{
+	"pages": [
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "团购自助兑换"
+			}
+		},
+		{
+			"path": "pages/order/order",
+			"style": {
 				"navigationBarTitleText": "订单",
 				"usingComponents": {
 					"pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
-				}
-			}
-		},
-		{
-			"path": "pages/user/user",
-			"style": {
-				"navigationBarTitleText": "我的"
-			}
-		},
-		{
-			"path": "pages/order/confirm",
-			"style": {
-				"navigationBarTitleText": "确认订单"
-			}
-		},
-		{
-			"path": "pages/order/detail",
-			"style": {
+				}
+			}
+		},
+		{
+			"path": "pages/user/user",
+			"style": {
+				"navigationBarTitleText": "我的"
+			}
+		},
+		{
+			"path": "pages/order/confirm",
+			"style": {
+				"navigationBarTitleText": "确认订单"
+			}
+		},
+		{
+			"path": "pages/order/detail",
+			"style": {
 				"navigationBarTitleText": "团购券",
 				"usingComponents": {
 					"pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
-				}
-			}
-		},
-		{
-			"path": "pages/user/license",
-			"style": {
-				"navigationBarTitleText": "资质亮照"
-			}
-		},
-		{
-			"path": "pages/order/store",
-			"style": {
-				"navigationBarTitleText": "选择门店"
-			}
-		},
-		{
-			"path": "pages/user/address",
-			"style": {
-				"navigationBarTitleText": "会员地址"
-			}
-		},
-		{
-			"path": "pages/order/info",
-			"style": {
+				}
+			}
+		},
+		{
+			"path": "pages/user/license",
+			"style": {
+				"navigationBarTitleText": "资质亮照"
+			}
+		},
+		{
+			"path": "pages/order/store",
+			"style": {
+				"navigationBarTitleText": "选择门店"
+			}
+		},
+		{
+			"path": "pages/user/address",
+			"style": {
+				"navigationBarTitleText": "会员地址"
+			}
+		},
+		{
+			"path": "pages/order/info",
+			"style": {
 				"navigationBarTitleText": "预约详情",
 				"usingComponents": {
 					"pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
-				}
-			}
-		}
-	],
-	"globalStyle": {
-		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "团购自助兑换",
-		"navigationBarBackgroundColor": "#ffffff",
-		"backgroundColor": "#F8F8F8"
-	},
-	"tabBar": {
-		"backgroundColor": "#ffffff",
-		"borderStyle": "white",
-		"color": "#666666",
-		"selectedColor": "#224d7a",
-		"list": [
-			{
-				"iconPath": "/static/image/coupon.png",
-				"selectedIconPath": "/static/image/coupon-fill.png",
-				"pagePath": "pages/index/index",
-				"text": "首页"
-			},
-			{
-				"iconPath": "/static/image/order.png",
-				"selectedIconPath": "/static/image/order-fill.png",
-				"pagePath": "pages/order/order",
-				"text": "订单"
-			},
-			{
-				"iconPath": "/static/image/user.png",
-				"selectedIconPath": "/static/image/user-fill.png",
-				"pagePath": "pages/user/user",
-				"text": "我的"
-			}
-		]
-	},
-	"uniIdRouter": {}
+				}
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "团购自助兑换",
+		"navigationBarBackgroundColor": "#ffffff",
+		"backgroundColor": "#F8F8F8"
+	},
+	"tabBar": {
+		"backgroundColor": "#ffffff",
+		"borderStyle": "white",
+		"color": "#666666",
+		"selectedColor": "#fe2c56",
+		"list": [
+			{
+				"iconPath": "/static/image/coupon.png",
+				"selectedIconPath": "/static/image/coupon-fill.png",
+				"pagePath": "pages/index/index",
+				"text": "首页"
+			},
+			{
+				"iconPath": "/static/image/order.png",
+				"selectedIconPath": "/static/image/order-fill.png",
+				"pagePath": "pages/order/order",
+				"text": "订单"
+			},
+			{
+				"iconPath": "/static/image/user.png",
+				"selectedIconPath": "/static/image/user-fill.png",
+				"pagePath": "pages/user/user",
+				"text": "我的"
+			}
+		]
+	},
+	"uniIdRouter": {}
 }

+ 2 - 2
pages/index/index.vue

@@ -5,7 +5,7 @@
 		</view>
 		<view class="coupon-list" v-else>
 			<view class="coupon-item" v-for="(item,indx) in coupon" :key="indx">
-				<view class="header">订单编号 {{item.order_id}}</view>
+				<view class="header">{{item.certificate_id}}</view>
 				<view class="body">
 					<view class="info">
 						<view class="name">{{item.product_name}}</view>
@@ -13,7 +13,7 @@
 						<view class="desc">有效期至{{item.expire_at}}</view>
 					</view>
 					<view class="right">
-						<button class="btn" type="primary" @click="toDetail(item.order_id)" v-if="item.status==1">去使用</button>
+						<button class="btn" type="primary" @click="toDetail(item.certificate_id)" v-if="item.status==1">去使用</button>
 					</view>
 				</view>
 				<!-- <view class="footer">

+ 347 - 307
pages/order/confirm.vue

@@ -1,184 +1,201 @@
 <template>
-	<view>
-		<view class="order-type">
-			<view :class="service_type==2?'type-item active':'type-item'" @click="service_type=2">代提</view>
-			<view :class="service_type==1?'type-item active':'type-item'" @click="service_type=1">自提</view>
-		</view>
-		<view class="address" v-if="storeInfo && service_type==2">
-			<view class="addressInfo" v-if="addressInfo" @click="toAddress">
-				<view class="empty-data">
-					<view class="left">
-						<view class="contact-name">{{addressInfo.username}} <view class="mobile">{{addressInfo.mobile}}</view></view>
-						<view class="desc">{{addressInfo.region}}{{addressInfo.address}}</view>
-					</view>
-					<view class="right"><image src="/static/image/right.png"></image></view>
+	<view>
+		<view class="order-type">
+			<view :class="service_type==2?'type-item active':'type-item'" @click="service_type=2">代提</view>
+			<view :class="service_type==1?'type-item active':'type-item'" @click="service_type=1">自提</view>
+		</view>
+		<view class="order-content" v-if="goodsInfo">
+			<view class="address" v-if="storeInfo && service_type==2">
+				<view class="addressInfo" v-if="addressInfo" @click="toAddress">
+					<view class="empty-data">
+						<view class="icon"><image src="/static/image/location.png"></image></view>
+						<view class="left">
+							<view class="region">{{addressInfo.region}}</view>
+							<view class="address">{{addressInfo.address}}</view>
+							<view class="contact-name">{{addressInfo.username}} <view class="mobile">{{addressInfo.mobile}}</view></view>
+						</view>
+						<view class="right"><image src="/static/image/right.png"></image></view>
+					</view>
+				</view>
+				<view class="empty-address" @click="toAddress" v-else>
+					<view class="name">完善会员信息</view>
+					<view class="desc">请先完善会员信息后再进行确认兑换</view>
+					<view class="btn-group"><button class="btn">去完善</button></view>
 				</view>
-			</view>
-			<view class="addressInfo" @click="toAddress" v-else>
-				<view class="empty-data">
-					<view class="left"><image src="/static/image/location.png"></image></view>
-					<view class="name">完善收货地址</view>
+			</view>
+			
+			<view class="order-time" v-if="storeInfo && service_type==1" @click="selectTime(1)">
+				<view class="time-icon"><image src="/static/image/time.png"></image></view>
+				<view class="title">
+					<view class="p">预约到店时间</view>
+					<view class="desc" v-if="!timeStr">请选择预计到店服务的时间</view>
+				</view>
+				<view class="msg">
+					{{timeStr?timeStr:'请选择'}}
 					<view class="right"><image src="/static/image/right.png"></image></view>
 				</view>
-			</view>
+			</view>
+			
+			<view class="goods">
+				<view class="goods-info">
+					<view class="image"><image :src="goodsInfo.goods.product_img"></image></view>
+					<view class="info">
+						<view class="name">{{ goodsInfo.product_name }}</view>
+						<view class="desc">x {{goodsInfo.count}}</view>
+						<view class="desc">有效期至{{goodsInfo.expire_at}}</view>
+					</view>
+					<view class="price">¥{{goodsInfo.order_amount}}</view>
+				</view>
+				<!-- <view class="goods-item">
+					<view class="left">商品总额</view>
+					<view class="right">¥{{goodsInfo.order_amount}}</view>
+				</view>
+				<view class="goods-item">
+					<view class="left">商品优惠</view>
+					<view class="right red">¥{{goodsInfo.order_amount}}</view>
+				</view> -->
+			</view>
+			<view class="goods_skus" v-if="goodsSku.length > 0">
+				<view class="sku_box" v-for="(item,indx) in goodsSku" :key="indx">
+					<view class="sku_name">
+						{{item.name}}({{item.list.length}}选{{item.num}})<text>点击图片可放大查看</text>
+						<view class="right" @click="clearSku(indx)">清除</view> 
+					</view>
+					<view class="sku_list">
+						<view :class="itm.check?'sku_item':'sku_item active'" v-for="(itm,iddx) in item.list" :key="iddx">
+							<view class="img" v-if="itm.img" @click="viewImg(itm.img)"><image :src="itm.img"></image></view>
+							<view class="name" @click="skuCheck(item.name,item.num,indx,iddx)" >{{itm.name}}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="location" @click="toDetail">
+				<view class="left">
+					<view class="name">{{poi_name}}</view>
+					<view class="desc"><image src="/static/image/location.png"></image>距您{{juli}}公里</view>
+				</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</view>
+			
+			<view class="order-msg">
+				<view class="title">订单备注</view>
+				<view class="msg"><textarea class="textarea" placeholder="请输入" v-model="msg" :rows="5"></textarea></view>
+			</view>
+		</view>
+		
+		<view class="goods-info" v-else>
+			<u-skeleton
+				rows="3"
+				title
+				loading
+			></u-skeleton>
 		</view>
-		<view class="location" @click="toDetail">
-			<view class="left">
-				<view class="name">{{poi_name}}</view>
-				<view class="desc"><image src="/static/image/location.png"></image>距您{{juli}}公里</view>
-			</view>
-			<view class="right"><image src="/static/image/right.png"></image></view>
-		</view>
-		
-		<view class="goods" v-if="goodsInfo">
-			<view class="goods-info">
-				<view class="image"><image :src="goodsInfo.goods.product_img"></image></view>
-				<view class="info">
-					<view class="name">{{ goodsInfo.product_name }}</view>
-					<view class="desc">x {{goodsInfo.count}}</view>
-					<view class="desc">有效期至{{goodsInfo.expire_at}}</view>
-				</view>
-			</view>
-			<view class="goods-item">
-				<view class="left">商品总额</view>
-				<view class="right">¥{{goodsInfo.order_amount}}</view>
-			</view>
-			<view class="goods-item">
-				<view class="left">商品优惠</view>
-				<view class="right red">¥{{goodsInfo.order_amount}}</view>
-			</view>
-		</view>
-		<view class="empty-data" v-else>
-			<u-skeleton
-				rows="3"
-				title
-				loading
-			></u-skeleton>
+		
+		<view class="line"></view>
+		<view class="flx-footer">
+			<view class="footer-btn" v-if="goodsInfo">
+				<view class="price"><text class="desc">已优惠:¥{{goodsInfo.order_amount}},</text>合计<text class="money">¥0.00</text></view>
+				<view class="btn-group"><button :disabled="disabled" @click="submitOrder" class="btn">{{disabled?'处理中...':'确认兑换'}}</button></view>
+			</view>
+			<view class="footer-safe"></view>
 		</view>
-		
-		<view class="goods_skus" v-if="goodsSku.length > 0">
-			<view class="sku_box" v-for="(item,indx) in goodsSku" :key="indx">
-				<view class="sku_name">
-					{{item.name}}({{item.list.length}}选{{item.num}})
-					<view class="right" @click="clearSku(indx)">清除</view> 
-				</view>
-				<view class="sku_list">
-					<view :class="itm.check?'sku_item':'sku_item active'" @click="skuCheck(item.name,item.num,indx,iddx)" v-for="(itm,iddx) in item.list" :key="iddx">{{itm.name}}</view>
-				</view>
-			</view>
-		</view>
-		
-		<view class="order-time" v-if="storeInfo && service_type==1">
-			<view class="title">预约到店时间</view>
-			<view class="msg" @click="selectTime(1)">
-				{{timeStr?timeStr:'请选择'}}
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</view>
-		</view>
-		
-		<view class="order-msg">
-			<view class="title">订单备注</view>
-			<view class="msg"><textarea class="textarea" placeholder="请输入" v-model="msg" :rows="5"></textarea></view>
-		</view>
-		
-		<view class="flx-footer">
-			<view class="footer-btn">
-				<view class="price"><text class="desc">已优惠:¥{{goodsInfo.order_amount}},</text>合计<text class="money">¥0</text></view>
-				<view class="btn-group"><button :disabled="disabled" @click="submitOrder" class="btn">{{disabled?'处理中...':'确认兑换'}}</button></view>
-			</view>
-			<view class="footer-safe"></view>
-		</view>
-		
-		<uni-popup ref="timepopup" type="bottom" borderRadius="10px 10px 0 0" backgroundColor="#F8F8F8">
-			<view class="time-select">
-				<view class="title">选择时间<view class="close" @click="selectTime(2)"><image src="/static/image/round_close.png"></image></view> </view>
-			</view>
-			<view class="time-body">
+		
+		<uni-popup ref="timepopup" type="bottom" borderRadius="10px 10px 0 0" backgroundColor="#F8F8F8">
+			<view class="time-select">
+				<view class="title">选择时间<view class="close" @click="selectTime(2)"><image src="/static/image/round_close.png"></image></view> </view>
+			</view>
+			<view class="time-body">
 				<view class="time-left">
 					<view :class="timeIndex==index?'time-left-item active':'time-left-item'" @click="timeCheck(index)" v-for="(item,index) in timeData">
 						<view class="name">{{item.day}}</view>
 						<view class="desc">{{item.week}}</view>
 					</view>
-				</view>
+				</view>
 				<view class="time-right">
 					<view  :class="childIndex==index?'time-right-item active':'time-right-item'" @click="childCheck(index)" v-for="(item,index) in timeChildren">
 						<view class="name">{{item.display}}</view>
 					</view>
-				</view>
-			</view>
-			<view class="time-btn">
-				<button class="btn" @click="checkTimeEnd">确认选择</button>
-			</view>
+				</view>
+			</view>
+			<view class="time-btn">
+				<button class="btn" @click="checkTimeEnd">确认选择</button>
+			</view>
 		</uni-popup>
 	</view>
 </template>
 
-<script>
-var app;
+<script>
+var app;
 import * as Api from "@/static/api/order.js";
 export default {
 	data() {
-		return {
+		return {
 			disabled:false,
 			timeIndex:0,
 			childIndex:0,
 			order:"",
 			poi_name:"",
 			poi_id:"",
-			juli:"",
-			goodsInfo:null,
-			storeInfo:null,
-			timeStr:null,
-			timeState:false,
+			juli:"",
+			goodsInfo:null,
+			storeInfo:null,
+			timeStr:null,
+			timeState:false,
 			timeData:[],
 			timeChildren:[],
 			addressInfo:null,
 			msg:"",
 			totalData:[],
-			goodsSku:[],
+			goodsSku:[],
 			service_type:2
 		}
-	},
-	onLoad({order,poi_id,poi_name,juli}) {
-		app = this;
-		app.order = order;
-		app.poi_id = poi_id;
-		app.poi_name = poi_name;
-		app.juli = juli;
-		app.getOrder();
+	},
+	onLoad({order,poi_id,poi_name,juli}) {
+		app = this;
+		app.order = order;
+		app.poi_id = poi_id;
+		app.poi_name = poi_name;
+		app.juli = juli;
+		app.getOrder();
 	},
 	methods: {
+		viewImg(img){
+			uni.previewImage({
+				urls:[img]
+			})
+		},
 		submitOrder(){
 			var formData = {};
 			formData.order = app.order;
 			formData.poi_id = app.poi_id;
 			if (app.service_type==2 && app.addressInfo == null) {
-				return app.$dialog.showSuccess("请选择会员地址");
+				return app.$dialog.showSuccess("请先完善会员信息");
 			}
 			if (app.service_type==1 && app.timeStr == null) {
 				return app.$dialog.showSuccess("请选择预约时间");
 			}
-			formData.service_type = app.service_type;
+			formData.service_type = app.service_type;
 			var skuInfo = "",skuState = true;
-			if (app.goodsSku.length > 0) {
-				app.goodsSku.forEach((item,index)=>{
-					var skuCheck = [],skuI = 0;
-					skuInfo += item.name+":";
-					item.list.forEach((itm,idx)=>{
-						if (itm.check==false){
-							skuInfo += itm.name+',';
-							skuCheck[skuI] = itm.name;
-							skuI ++;
-						}
-					});
-					skuInfo = skuInfo.slice(0, -1);
-					skuInfo += ";";
-					if (item.num > skuCheck.length) {
-						app.$dialog.showSuccess("请完善【"+item.name+"】选项");
-						skuState = false;
-						return false;
-					}
-				});
+			if (app.goodsSku.length > 0) {
+				app.goodsSku.forEach((item,index)=>{
+					var skuCheck = [],skuI = 0;
+					skuInfo += item.name+":";
+					item.list.forEach((itm,idx)=>{
+						if (itm.check==false){
+							skuInfo += itm.name+',';
+							skuCheck[skuI] = itm.name;
+							skuI ++;
+						}
+					});
+					skuInfo = skuInfo.slice(0, -1);
+					skuInfo += ";";
+					if (item.num > skuCheck.length) {
+						app.$dialog.showSuccess("请完善【"+item.name+"】选项");
+						skuState = false;
+						return false;
+					}
+				});
 				if (!skuState) return ;
 			}
 			formData.sku = skuInfo;
@@ -197,58 +214,58 @@ export default {
 					})
 				});
 			})
-		},
-		clearSku(parent){
-			app.totalData = [];
-			var goodsSku = app.goodsSku;
-			goodsSku[parent].list.forEach((item,index) => {
-				if (!item.check) {
-					item.check = true;
-				}
-			})
-		},
-		skuCheck(name,length,parent,select){
-			var goodsSku = app.goodsSku;
-			if (length == '1') { // 单选
-				goodsSku[parent].list.forEach((item,index) => {
-					item.check = true;
-					if (index == select) {
-						item.check = false;
-						app.skuInfo = goodsSku[parent].name+":"+item.name;
-					}
-				})
-			} else { // 多选
-				var data = [];
-				var checkData = app.skuDataCheck(parent,length);
-				goodsSku[parent].list.forEach((item,index) => {
-					if (checkData >= length) {
-						app.$dialog.showSuccess("清除后可重选~");
-						return ;
-					}
-					if (index == select) {
-						if (item.check) {
-							data[parent+'_'+index] = item;
-						}
-						item.check = item.check?false:true;
-						app.totalData.push(data)
-					}
-				});
-			}
-			app.goodsSku = goodsSku;
-		},
-		skuDataCheck(parent,length){
-			var dataLen = 0;
-			for (let key in app.totalData) {
-				if (typeof app.totalData[key] == 'object' || typeof app.totalData[key] == 'array')
-				{
-					for (let indx in app.totalData[key]) {
-						if (indx.includes(parent+"_")) {
-							dataLen ++;
-						}
-					}
-				}
-			}
-			return dataLen;
+		},
+		clearSku(parent){
+			app.totalData = [];
+			var goodsSku = app.goodsSku;
+			goodsSku[parent].list.forEach((item,index) => {
+				if (!item.check) {
+					item.check = true;
+				}
+			})
+		},
+		skuCheck(name,length,parent,select){
+			var goodsSku = app.goodsSku;
+			if (length == '1') { // 单选
+				goodsSku[parent].list.forEach((item,index) => {
+					item.check = true;
+					if (index == select) {
+						item.check = false;
+						app.skuInfo = goodsSku[parent].name+":"+item.name;
+					}
+				})
+			} else { // 多选
+				var data = [];
+				var checkData = app.skuDataCheck(parent,length);
+				goodsSku[parent].list.forEach((item,index) => {
+					if (checkData >= length) {
+						app.$dialog.showSuccess("清除后可重选~");
+						return ;
+					}
+					if (index == select) {
+						if (item.check) {
+							data[parent+'_'+index] = item;
+						}
+						item.check = item.check?false:true;
+						app.totalData.push(data)
+					}
+				});
+			}
+			app.goodsSku = goodsSku;
+		},
+		skuDataCheck(parent,length){
+			var dataLen = 0;
+			for (let key in app.totalData) {
+				if (typeof app.totalData[key] == 'object' || typeof app.totalData[key] == 'array')
+				{
+					for (let indx in app.totalData[key]) {
+						if (indx.includes(parent+"_")) {
+							dataLen ++;
+						}
+					}
+				}
+			}
+			return dataLen;
 		},
 		checkTimeEnd(){
 			app.$refs.timepopup.close()
@@ -271,141 +288,164 @@ export default {
 			uni.navigateTo({
 				url:"/pages/user/address?type=2"
 			})
-		},
-		selectTime(type){
-			if (type == 1) {
-				app.$refs.timepopup.open()
-			}
-			if (type == 2) {
-				app.$refs.timepopup.close()
-			}
-		},
-		getOrder(){
-			Api.detail({"order":app.order}).then((res)=>{
-				if (res.code == 0) {
-					return app.$dialog.showSuccess(res.msg,"none",function(){
-						uni.navigateBack()
-					});
-				}
-				app.goodsInfo = res.data.order;
-				app.storeInfo = res.data.store;
+		},
+		selectTime(type){
+			if (type == 1) {
+				app.$refs.timepopup.open()
+			}
+			if (type == 2) {
+				app.$refs.timepopup.close()
+			}
+		},
+		getOrder(){
+			Api.detail({"order":app.order}).then((res)=>{
+				if (res.code == 0) {
+					return app.$dialog.showSuccess(res.msg,"none",function(){
+						uni.navigateBack()
+					});
+				}
+				app.goodsInfo = res.data.order;
+				app.storeInfo = res.data.store;
 				app.timeData = res.data.time
 				app.timeChildren = app.timeData[0].children
-				app.goodsSku = res.data.specs;
-			});
-		},
-		toDetail(){
-			uni.navigateTo({
-				url:"/pages/order/store?type=1&order="+app.order
-			})
+				app.goodsSku = res.data.specs;
+			});
+		},
+		toDetail(){
+			uni.navigateTo({
+				url:"/pages/order/store?type=1&order="+app.order
+			})
 		},
 	}
 }
 </script>
 
-<style>
-page{height: 100vh;overflow: auto;}
-.order-type{height: 80upx;display: flex;align-items: center;line-height: 80upx;background-color: #fff;gap: 20upx;}
-.order-type .type-item{text-align: center;width: 50%;font-size: 32upx;color: #333;position: relative;border-left: 2upx solid #f8f8f8;}
-.order-type .type-item.active{color: #224d7a;font-weight: bold;}
-.order-type .type-item.active::after{content: "";position: absolute;left: 40%;width: 20%;bottom: -5upx;height: 10upx;background-color: #224d7a;}
-.addressInfo{border-top: 8upx solid #224d7a;}
-.addressInfo .empty-data{display: flex;align-items: center;font-size: 28upx;width: 100%;}
-.addressInfo .empty-data .contact-name{display: flex;align-items: center;font-size: 30upx;color: #333;margin-bottom: 20upx;}
-.addressInfo .empty-data .contact-name .mobile{margin-left: 20upx;}
-.addressInfo .empty-data .desc{font-size: 26upx;color: #666;}
-.addressInfo .empty-data .left image{width: 40upx;height: 40upx;margin-right: 20upx;vertical-align: middle;}
-.addressInfo .empty-data .right image{width: 40upx;height: 40upx;vertical-align: middle;}
-.addressInfo .empty-data .right{margin-left: auto;margin-right: 0;}
-.time-body{height: 30vh;display: flex;align-items: center;}
+<style>
+page{background-color: #f2f2f2;}
+.empty-address{text-align: center;box-shadow: 8px 8px 20px 0 rgba(55, 99, 170, .1);background-color: #fff;width: calc(95% - 40upx);margin: 20upx auto;padding: 20upx;border-radius: 20upx;}
+.empty-address .name{font-size: 36upx;font-weight: bold;color: #333;}
+.empty-address .desc{font-size: 26upx;color: #666;margin: 20upx 0;}
+.empty-address .btn-group{text-align: center;display: flex;align-items: center;justify-content: center;}
+.empty-address .btn-group .btn{font-size: 28upx;color: #fff;background-color: #fe2c56;width: 50%;}
+.order-content{overflow: auto;}
+.line{height: 200upx;width: 100%;}
+.order-type{height: 80upx;display: flex;align-items: center;line-height: 80upx;background-color: #fff;gap: 20upx;border-bottom: 2upx solid #f8f8f8;}
+.order-type .type-item{text-align: center;width: 50%;font-size: 32upx;color: #333;position: relative;border-left: 2upx solid #f8f8f8;}
+.order-type .type-item.active{color: #fe2c56;font-weight: bold;}
+.order-type .type-item.active::after{content: "";position: absolute;left: 40%;width: 20%;bottom: -5upx;height: 10upx;background-color: #fe2c56;}
+.addressInfo{}
+.addressInfo .empty-data{display: flex;align-items: center;font-size: 28upx;width: 100%;}
+.addressInfo .empty-data .icon{margin-right: 20upx;}
+.addressInfo .empty-data .icon image{width: 40upx;height: 40upx;}
+.addressInfo .empty-data .region{color: #666;font-size: 28upx;}
+.addressInfo .empty-data .address{color: #333;font-size: 32upx;margin: 10upx 0;}
+.addressInfo .empty-data .contact-name{display: flex;align-items: center;font-size: 28upx;color: #666;margin-bottom: 20upx;}
+.addressInfo .empty-data .contact-name .mobile{margin-left: 20upx;}
+.addressInfo .empty-data .desc{font-size: 26upx;color: #666;}
+.addressInfo .empty-data .left image{width: 40upx;height: 40upx;margin-right: 20upx;vertical-align: middle;}
+.addressInfo .empty-data .right image{width: 40upx;height: 40upx;vertical-align: middle;}
+.addressInfo .empty-data .right{margin-left: auto;margin-right: 0;}
+.time-body{height: 30vh;display: flex;align-items: center;}
 .time-body .time-left{width: 30%;background-color: #F5FAFD;height: 100%;overflow-y: auto;}
-
-.time-body .time-left .time-left-item{padding: 10upx;text-align: center;}
-.time-body .time-left .time-left-item.active{background-color: #fff;color: #224d7a;}
-.time-body .time-left .time-left-item.active .name{color: #224d7a;}
-.time-body .time-left .time-left-item.active .desc{color: #224d7a;}
+
+.time-body .time-left .time-left-item{padding: 10upx;text-align: center;}
+.time-body .time-left .time-left-item.active{background-color: #fff;color: #fe2c56;}
+.time-body .time-left .time-left-item.active .name{color: #fe2c56;}
+.time-body .time-left .time-left-item.active .desc{color: #fe2c56;}
 .time-body .time-left .time-left-item .name{font-size: 28upx;color: #333;}
 .time-body .time-left .time-left-item .desc{font-size: 24upx;color: #666;}
-
-.time-body .time-right{width: calc(70% - 80upx);padding:0 40upx;background-color: #fff;height: 100%;overflow-y: auto;}
+
+.time-body .time-right{width: calc(70% - 80upx);padding:0 40upx;background-color: #fff;height: 100%;overflow-y: auto;}
 .time-body .time-right .time-right-item{background-color: #F6FAFD;border: 2upx solid #ccc;height: 66upx;line-height: 66upx;text-align: center;font-size: 28upx;color: #333;margin-top: 20upx;border-radius: 10upx;}
-.time-body .time-right .time-right-item.active{color: #224d7a;border: 2upx solid #224d7a;}
-
-.time-select .title{height: 100upx;line-height: 100upx;display: flex;align-items: center;justify-content: space-between;font-size: 28upx;padding: 0 20upx;font-weight: bold;}
-.time-select image{width: 40upx;height: 40upx;vertical-align: middle;}
-.time-btn{padding: 20upx;}	
+.time-body .time-right .time-right-item.active{color: #fe2c56;border: 2upx solid #fe2c56;}
+
+.time-select .title{height: 100upx;line-height: 100upx;display: flex;align-items: center;justify-content: space-between;font-size: 28upx;padding: 0 20upx;font-weight: bold;}
+.time-select image{width: 40upx;height: 40upx;vertical-align: middle;}
+.time-btn{padding: 20upx;}	
+
+.location{background-color: #fff;padding: 20upx;width: calc(95% - 40upx);margin: 20upx auto;display: flex;align-items: center;justify-content: space-between;border-radius: 20upx;}
+.location .right image{width: 40upx;height: 40upx;vertical-align: middle;}
+.location .name{font-size: 32upx;color: #333;font-weight: bold;margin-bottom: 20upx;}
+.location .desc{color: #666;font-size: 28upx;display: flex;align-items: center;}
+.location .desc image{width: 40upx;height: 40upx;margin-right: 20upx;}
+.goods,.order-msg,.addressInfo{background-color: #fff;padding: 20upx;width: calc(95% - 40upx);margin: 20upx auto;border-radius: 20upx;}
+.goods .goods-info{display: flex;align-items: center;position: relative;}
+.goods .goods-info .price{color: #fe2c56;font-size: 32upx;font-weight: bold;position: absolute;bottom: 20upx;right: 20upx;}
+.goods .goods-info .info{flex: 1;margin-left: 20upx;}
+.goods .goods-info .image image{width: 160upx;height: 160upx;border-radius: 10upx;}
+.goods .goods-info .name{font-size: 32upx;color: #333;line-height: 46upx;margin-bottom: 15upx;}
+.goods .goods-info .desc{color: #666;font-size: 28upx;line-height: 48upx;}
+.goods .goods-item{display: flex;align-items: center;line-height: 80upx;justify-content: space-between;font-size: 28upx;color: #333;}
+.goods .goods-item .right.red{color: #fe2c56;}
 
-.location,.order-time{background-color: #fff;border-radius: 20upx;padding: 20upx;width: calc(95% - 40upx);margin: 20upx auto;display: flex;align-items: center;justify-content: space-between;}
-.location .right image{width: 40upx;height: 40upx;vertical-align: middle;}
-.location .name{font-size: 32upx;color: #333;font-weight: bold;margin-bottom: 20upx;}
-.location .desc{color: #666;font-size: 28upx;display: flex;align-items: center;}
-.location .desc image{width: 40upx;height: 40upx;margin-right: 20upx;}
-.goods,.order-msg,.addressInfo{background-color: #fff;border-radius: 20upx;padding: 20upx;width: calc(95% - 40upx);margin: 20upx auto;}
-.goods .goods-info{display: flex;align-items: center;}
-.goods .goods-info .info{flex: 1;margin-left: 20upx;}
-.goods .goods-info .image image{width: 160upx;height: 160upx;}
-.goods .goods-info .name{font-size: 32upx;color: #333;line-height: 46upx;font-weight: bold;margin-bottom: 20upx;}
-.goods .goods-info .desc{color: #666;font-size: 28upx;line-height: 48upx;}
-.goods .goods-item{display: flex;align-items: center;line-height: 80upx;justify-content: space-between;font-size: 28upx;color: #333;}
-.goods .goods-item .right.red{color: #f00;}
-
-.order-time .title{font-size: 28upx;}
-.order-time image{width: 40upx;height: 40upx;vertical-align: middle;}
-.order-time .msg{display: flex;align-items: center;font-size: 28upx;color: #333;}
-
-.order-msg .title{color: #333;font-size: 28upx;border-bottom: 2upx solid #f8f8f8;margin-bottom: 20upx;padding-bottom: 20upx;}
-.order-msg .textarea{width: 100%;height: 100upx;font-size: 28upx;}
-
-.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
-.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
-.flx-footer .btn,.time-btn .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #224d7a;color: #fff;border:2upx solid #224d7a;}
-.flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color: rgba(34, 77, 122, 0.3);}
-.flx-footer .footer-btn{display: flex;align-items: center;justify-content: space-between;}
-.flx-footer .footer-btn text.desc{color: #666;font-size: 24upx;}
-.flx-footer .footer-btn text.money{color: #f00;font-size: 28upx;font-weight: bold;}
+.order-time{background-color: #fff;padding: 20upx;width: calc(95% - 40upx);margin: 20upx auto;display: flex;align-items: center;border-radius: 20upx;}
+.order-time .title{font-size: 28upx;margin-left: 20upx;}
+.order-time .title .p{font-size: 28upx;color: #333;font-weight: bold;}
+.order-time .title .desc{font-size: 24upx;color: #666;margin-top: 10upx;}
+.order-time .time-icon image{width: 40upx;height: 40upx;}
+.order-time .right image{width: 40upx;height: 40upx;vertical-align: middle;}
+.order-time .msg{display: flex;align-items: center;font-size: 28upx;color: #333;margin-left: auto;margin-right: 0;}
+
+.order-msg .title{color: #333;font-size: 32upx;border-bottom: 2upx solid #f8f8f8;margin-bottom: 20upx;padding-bottom: 20upx;font-weight: bold;}
+.order-msg .textarea{width: 100%;height: 100upx;font-size: 28upx;}
+
+.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;z-index: 99;}
+.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
+.flx-footer .btn,.time-btn .btn{font-size: 32rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #fe2c56;color: #fff;border:2upx solid #fe2c56;}
+.flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color: rgba(34, 77, 122, 0.3);}
+.flx-footer .footer-btn{display: flex;align-items: center;justify-content: space-between;}
+.flx-footer .footer-btn text.desc{color: #666;font-size: 28upx;}
+.flx-footer .footer-btn text.money{color: #fe2c56;font-size: 32upx;font-weight: bold;}
 .flx-footer .footer-btn .price{color: #333;font-size: 28upx;}
-
-.goods_skus{
+
+.goods_skus{
 	padding: 20upx 20upx 0 20upx;
-	background-color: #fff;border-radius: 20upx;width: calc(95% - 40upx);margin: 0 auto;
-}
-.goods_skus .sku_name{
-	font-size: 32upx;
-	color: #000;
-	font-weight: bold;
-	line-height: 60upx;
-	display: flex;
-	align-items: center;
-}
-.goods_skus .sku_name .right{
-	margin-left: auto;
-	margin-right: 0;
-	font-size: 26upx;
-	color: #666;
-	display: flex;
-	align-items: center;
-}
-.goods_skus .sku_name .right image{
-	width: 30upx;
-	height: 30upx;
-	margin-right: 10upx;
-}
-.goods_skus .sku_list{
-	display: flex;
-	align-items: center;
-	margin: 10upx 0;
-	flex-wrap: wrap;
-}
-.goods_skus .sku_list .sku_item.active{
-	background: linear-gradient(90deg, rgba(34, 77, 122, 1) 0%, rgba(25, 97, 173, 1) 100%);
-	color: #fff;
-}
-.goods_skus .sku_list .sku_item{
-	background-color: #f8f8f8;
-	padding: 10upx 20upx;
-	margin-right: 20upx;
-	margin-bottom: 20upx;
+	background-color: #fff;width: calc(95% - 40upx);margin: 0 auto;
+	border-radius: 20upx;
+}
+.goods_skus .sku_name{
+	font-size: 32upx;
+	color: #000;
+	line-height: 60upx;
+	display: flex;
+	align-items: center;
+}
+.goods_skus .sku_name text{margin-left: 20upx;color: #666;font-size: 24upx;}
+.goods_skus .sku_name .right{
+	margin-left: auto;
+	margin-right: 0;
+	font-size: 26upx;
+	color: #666;
+	display: flex;
+	align-items: center;
+}
+.goods_skus .sku_name .right image{
+	width: 30upx;
+	height: 30upx;
+	margin-right: 10upx;
+}
+.goods_skus .sku_list{
+	display: flex;
+	align-items: center;
+	margin: 10upx 0;
+	flex-wrap: wrap;
+}
+.goods_skus .sku_list .sku_item.active{
+	/* background: linear-gradient(90deg, rgba(254, 44, 86, 1) 0%, rgba(228, 100, 126, 1) 100%); */
+	color: #fe2c56;
+	border: 2upx solid #fe2c56;
+	background-color: #fff;
+}
+.goods_skus .sku_list .sku_item{
+	background-color: #f8f8f8;
+	border: 2upx solid #f8f8f8;
+	padding: 10upx 20upx;
+	margin-right: 20upx;
+	margin-bottom: 20upx;
 	border-radius: 5upx;
-	font-size: 28upx;
+	font-size: 28upx;
+	display: flex;
+	align-items: center;
 }
+.goods_skus .sku_list .sku_item image{width: 50upx;height: 50upx;vertical-align: middle;margin-right: 10upx;}
 </style>

+ 23 - 15
pages/order/detail.vue

@@ -1,23 +1,23 @@
 <template>
 	<view>
 		<view class="coupon-list" v-if="orderData">
-			<view class="coupon-item">
-				<view class="header">订单编号 {{orderData.order_id}}</view>
+			<view class="coupon-item" v-for="(item,index) in orderData" :key="index">
+				<view class="header">{{item.certificate_id}}</view>
 				<view class="body">
 					<view class="info">
-						<view class="name">{{orderData.product_name}}</view>
-						<view class="desc">x {{orderData.count}}张</view>
-						<view class="desc">有效期至{{orderData.expire_at}}</view>
+						<view class="name">{{item.product_name}}</view>
+						<view class="desc">x {{item.count}}张</view>
+						<view class="desc">有效期至{{item.expire_at}}</view>
 					</view>
 					<view class="right">
-						<button class="btn" type="primary" @click="toDetail(orderData.order_id)" v-if="orderData.status==1">去使用</button>
-						<button class="btn" type="default" @click="toView(orderData.order.order_sn)" v-if="orderData.status==2 && orderData.order">查看预约</button>
+						<button class="btn" type="primary" @click="toDetail(item.certificate_id)" v-if="item.status==1">去使用</button>
+						<button class="btn" type="default" @click="toView(item.order.order_sn)" v-if="item.status==2 && item.order">查看预约</button>
 					</view>
 				</view>
-				<view class="state-img" v-if="orderData.status==1"><image src="/static/image/order-dot.png" mode="widthFix"></image></view>
-				<view class="state-img" v-if="orderData.status==2"><image src="/static/image/fwz.png" mode="widthFix"></image></view>
-				<view class="state-img" v-if="orderData.status==3"><image src="/static/image/end.png" mode="widthFix"></image></view>
-				<view class="state-img" v-if="orderData.status==4"><image src="/static/image/ex.png" mode="widthFix"></image></view>
+				<view class="state-img" v-if="item.status==1"><image src="/static/image/order-dot.png" mode="widthFix"></image></view>
+				<view class="state-img" v-if="item.status==2"><image src="/static/image/fwz.png" mode="widthFix"></image></view>
+				<view class="state-img" v-if="item.status==3"><image src="/static/image/end.png" mode="widthFix"></image></view>
+				<view class="state-img" v-if="item.status==4"><image src="/static/image/ex.png" mode="widthFix"></image></view>
 			</view>
 			<navigator hover-class="none" url="/pages/user/license" class="tips">小程序资质亮照</navigator>
 		</view>
@@ -50,11 +50,19 @@ export default {
 			orderData:null,
 			option:{}
 		}
+	},
+	onShow() {
+		const pages = getCurrentPages();
+		const currentPage = pages[pages.length - 1];
+		const options = currentPage.options;
+		this.option = options;
+		this.getData();
+		console.log('页面参数:', options);
 	},
 	onLoad(option) {
 		app = this;
-		app.option = option;
-		app.getData();
+		// app.option = option;
+		// app.getData();
 	},
 	methods: {
 		toView(orderSn){
@@ -64,9 +72,9 @@ export default {
 			})
 		},
 		toService(){
-			if (!app.orderData.store.service_mobile) return false;
+			if (!app.orderData[0].store.service_mobile) return false;
 			uni.makePhoneCall({
-				phoneNumber:app.orderData.store.service_mobile,
+				phoneNumber:app.orderData[0].store.service_mobile,
 				fail() {
 					app.$dialog.showSuccess("联系失败")
 				}

+ 264 - 267
pages/order/info.vue

@@ -1,183 +1,180 @@
-<template>
-	<view>
-		<block v-if="loading">
-			<view class="skeleton">
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-				<view class="skeleton-line animate"></view>
-				<view class="skeleton-line min animate"></view>
-				<view class="skeleton-line min animate"></view>
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-			</view>
-		</block>
-		<block v-else>
-			<view class="order-status">
-				<view class="status-name" v-if="orderData.status == 1">预约中</view>
-				<view class="status-name success" v-if="orderData.status == 2">服务中</view>
-				<view class="status-name" v-if="orderData.status == 3">已撤销</view>
-				<view class="status-name" v-if="orderData.status == 4">已完成</view>
-				
-				<view class="status-desc" v-if="orderData.status == 1">预约中,如有问题可以联系客服</view>
-				<view class="status-desc success" v-if="orderData.status == 2">服务中,如有问题可以联系客服</view>
-				<view class="status-desc" v-if="orderData.status == 3">已撤销,可在团购订单中申请退款</view>
-				<view class="status-desc" v-if="orderData.status == 4">服务已完成,欢迎您再次使用</view>
-				
-			</view>
-			<view class="order-goods">
-				<view class="goods-img"><image :src="orderData.goods.product_img"></image></view>
-				<view class="goods-info">
-					<view class="name">{{ orderData.goods.product_name }}</view>
-					<view class="desc">
-						<view class="time" v-if="orderData.parent.expire_at">有效期至:{{ orderData.parent.expire_at }} </view>
-					</view>
-					<view class="desc">x {{ orderData.number?orderData.number:1 }} <text>{{ orderData.sku }}</text></view>
-					<!-- <view class="total">合计:¥ {{orderData.goods.product_price}}</view> -->
-				</view>
-			</view>
-			<view class="goods-item">
-				<view class="left">商品总额</view>
-				<view class="right">¥{{orderData.parent.order_amount}}</view>
-			</view>
-			<view class="goods-item">
-				<view class="left">商品优惠</view>
-				<view class="right red">¥{{orderData.parent.order_amount}}</view>
-			</view>
-			<view class="goods-store" v-if="poiData">
-				<view class="title">预约门店</view>
-				<view class="store-info">
-					<view class="store-left">
-						<view class="name">{{poiData.poi_name}}</view>
-						<view class="address">{{poiData.poi_address}}</view>
-					</view>
-					<view class="store-right">
-						<view class="right-item" @click="openLocation">
-							<image src="/static/image/map.png"></image>
-							<view class="desc">导航</view>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="order-info">
-				<view class="title">订单信息</view>
-				<view class="info-item">
-					<view class="name">订单编号</view>
-					<view class="right">{{ orderData.order_id }} <text @click="copyOrder(orderData.order_id)">复制</text></view>
-				</view>
-				<view class="info-item">
-					<view class="name">下单时间</view>
-					<view class="right">{{ orderData.create_at }}</view>
-				</view>
-			</view>
-			<view class="order-info" v-if="orderData.service_type==1">
-				<view class="title">预约信息</view>
-				<view class="info-item">
-					<view class="name">到店时间</view>
-					<view class="right">{{ orderData.time }}</view>
-				</view>
-			</view>
-			<view class="order-info" v-if="orderData.service_type==2">
-				<view class="title">会员资料</view>
-				<view class="info-item">
-					<view class="name"></view>
-					<view class="right">{{ orderData.username }}<text>{{ orderData.mobile }}</text></view>
-				</view>
+<template>
+	<view>
+		<block v-if="loading">
+			<view class="skeleton">
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+				<view class="skeleton-line animate"></view>
+				<view class="skeleton-line min animate"></view>
+				<view class="skeleton-line min animate"></view>
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+			</view>
+		</block>
+		<block v-else>
+			<view class="order-status">
+				<view class="status-name" v-if="orderData.status == 1">预约中</view>
+				<view class="status-name success" v-if="orderData.status == 2">服务中</view>
+				<view class="status-name" v-if="orderData.status == 3">已撤销</view>
+				<view class="status-name" v-if="orderData.status == 4">已完成</view>
+				
+				<view class="status-desc" v-if="orderData.status == 1">预约中,如有问题可以联系客服</view>
+				<view class="status-desc success" v-if="orderData.status == 2">服务中,如有问题可以联系客服</view>
+				<view class="status-desc" v-if="orderData.status == 3">已撤销,可在团购订单中申请退款</view>
+				<view class="status-desc" v-if="orderData.status == 4">服务已完成,欢迎您再次使用</view>
+				
+			</view>
+			<view class="order-goods">
+				<view class="goods-img"><image :src="orderData.goods.product_img"></image></view>
+				<view class="goods-info">
+					<view class="name">{{ orderData.goods.product_name }}</view>
+					<view class="desc">
+						<view class="time" v-if="orderData.parent.expire_at">有效期至:{{ orderData.parent.expire_at }} </view>
+					</view>
+					<view class="desc">x {{ orderData.number?orderData.number:1 }} <text>{{ orderData.sku }}</text></view>
+					<!-- <view class="total">合计:¥ {{orderData.goods.product_price}}</view> -->
+				</view>
+			</view>
+			<view class="goods-item">
+				<view class="left">商品总额</view>
+				<view class="right">¥{{orderData.parent.order_amount}}</view>
+			</view>
+			<view class="goods-item">
+				<view class="left">商品优惠</view>
+				<view class="right red">¥{{orderData.parent.order_amount}}</view>
+			</view>
+			<view class="goods-store" v-if="poiData">
+				<view class="title">预约门店</view>
+				<view class="store-info">
+					<view class="store-left">
+						<view class="name">{{poiData.poi_name}}</view>
+						<view class="address">{{poiData.poi_address}}</view>
+					</view>
+					<view class="store-right">
+						<view class="right-item" @click="openLocation">
+							<image src="/static/image/map.png"></image>
+							<view class="desc">导航</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="order-info">
+				<view class="title">订单信息</view>
+				<view class="info-item">
+					<view class="name">订单编号</view>
+					<view class="right">{{ orderData.order_id }} <text @click="copyOrder(orderData.order_id)">复制</text></view>
+				</view>
+				<view class="info-item">
+					<view class="name">下单时间</view>
+					<view class="right">{{ orderData.create_at }}</view>
+				</view>
+			</view>
+			<view class="order-info" v-if="orderData.service_type==1">
+				<view class="title">预约信息</view>
+				<view class="info-item">
+					<view class="name">到店时间</view>
+					<view class="right">{{ orderData.time }}</view>
+				</view>
+			</view>
+			<view class="order-info" v-if="orderData.service_type==2">
+				<view class="title">会员资料</view>
+				<view class="info-item">
+					<view class="name"></view>
+					<view class="right">{{ orderData.username }}<text>{{ orderData.mobile }}</text></view>
+				</view>
 				<view class="address-info">
-					{{ orderData.region }}{{ orderData.address }}
-				</view>
+					{{ orderData.region }}{{ orderData.address }}
+				</view>
+			</view>
+			
+			<view class="line-footer"></view>
+			<view class="footer">
+				<view class="footer-op" v-if="orderData.status == 1">
+					<view class="footer-right">
+						<view class="btn" @click="cancelOrder(1)">取消预约</view>
+						<view class="btn full" @click="callMobile">联系商家</view>
+					</view>
+				</view>
+				<view class="footer-op" v-if="orderData.status == 2">
+					<view class="footer-right">
+						<view class="btn" @click="cancelOrder(2)">取消服务</view>
+						<view class="btn full" @click="callMobile">联系商家</view>
+					</view>
+				</view>
+				<view class="footer-op" v-if="orderData.status == 3">
+					<view class="footer-right" @click="delOrder()">
+						<view class="btn full">删除订单?</view>
+					</view>
+				</view>
+				<view class="footer-op" v-if="orderData.status == 4">
+					<view class="footer-right">
+						<view class="btn">已完成</view>
+					</view>
+				</view>
+				<view class="footer-safe"></view>
 			</view>
-			
-			<view class="line-footer"></view>
-			<view class="footer">
-				<view class="footer-op" v-if="orderData.status == 1">
-					<view class="footer-left" @click="cancelOrder(1)"><text class="red">取消预约</text></view>
-					<view class="footer-right">
-						<view class="btn">预约中</view>
-						<view class="btn full" @click="callMobile">联系商家</view>
-					</view>
-				</view>
-				<view class="footer-op" v-if="orderData.status == 2">
-					<view class="footer-left" @click="cancelOrder(2)"><text class="red">取消服务</text></view>
-					<view class="footer-right">
-						<view class="btn">服务中</view>
-						<view class="btn full" @click="callMobile">联系商家</view>
-					</view>
-				</view>
-				<view class="footer-op" v-if="orderData.status == 3">
-					<view class="footer-left" @click="delOrder()"><text class="red">删除订单?</text></view>
-					<view class="footer-right">
-						<view class="btn">已撤销</view>
-					</view>
-				</view>
-				<view class="footer-op" v-if="orderData.status == 4">
-					<view class="footer-right">
-						<view class="btn">已完成</view>
-					</view>
-				</view>
-				<view class="footer-safe"></view>
-			</view>
-		</block>
-	</view>
-</template>
-
-<script>
-var app;
-import * as Api from "@/static/api/order.js";
-export default {
-	data() {
-		return {
-			loading:true,
-			order:"",
-			poiData:null,
-			goodsData:null,
-			orderData:null,
-			goodsPrice:0,
+		</block>
+	</view>
+</template>
+
+<script>
+var app;
+import * as Api from "@/static/api/order.js";
+export default {
+	data() {
+		return {
+			loading:true,
+			order:"",
+			poiData:null,
+			goodsData:null,
+			orderData:null,
+			goodsPrice:0,
 			storeData:null,
 			orderIdForRefundAmount:"",
 			applyRefundParams:{
 				orderId:""
 			}
-			
-		}
-	},
-	onLoad({order}) {
-		app = this;
-		app.order = order;
-		app.getOrder()
-	},
-	methods: {
-		copyOrder(order){
-			setTimeout(function(){
-				uni.setClipboardData({
-					data:order,
-					success() {
-						app.$dialog.showSuccess("复制成功")
-					},
-					fail() {
-						app.$dialog.showSuccess("复制失败")
-					}
-				})
-			},300)
-		},
-		openLocation(){
-			uni.openLocation({
-				latitude:app.poiData.latitude,
-				longitude:app.poiData.longitude,
-				name:app.poiData.poi_name,
-				address:app.poiData.poi_address,
-				fail() {
-					app.$dialog.showSuccess("打开地图失败");
-				}
-			})
-		},
-		callMobile(){
-			if (!app.storeData.service_mobile) return ;
-			uni.makePhoneCall({
-				phoneNumber:app.storeData.service_mobile,
-				fail() {
-					app.$dialog.showSuccess("联系失败")
-				}
-			})
-		},
+			
+		}
+	},
+	onLoad({order}) {
+		app = this;
+		app.order = order;
+		app.getOrder()
+	},
+	methods: {
+		copyOrder(order){
+			setTimeout(function(){
+				uni.setClipboardData({
+					data:order,
+					success() {
+						app.$dialog.showSuccess("复制成功")
+					},
+					fail() {
+						app.$dialog.showSuccess("复制失败")
+					}
+				})
+			},300)
+		},
+		openLocation(){
+			uni.openLocation({
+				latitude:app.poiData.latitude,
+				longitude:app.poiData.longitude,
+				name:app.poiData.poi_name,
+				address:app.poiData.poi_address,
+				fail() {
+					app.$dialog.showSuccess("打开地图失败");
+				}
+			})
+		},
+		callMobile(){
+			if (!app.storeData.service_mobile) return ;
+			uni.makePhoneCall({
+				phoneNumber:app.storeData.service_mobile,
+				fail() {
+					app.$dialog.showSuccess("联系失败")
+				}
+			})
+		},
 		delOrder(){
 			app.$dialog.showError("确定要删除该笔预约订单吗",function(res){
 				if (res.confirm) {
@@ -186,19 +183,19 @@ export default {
 							return app.$dialog.showSuccess(res.msg)
 						}
 						app.$dialog.showSuccess(res.msg,"none",function(){
-							uni.switchTab({
-								url:"/pages/order/order"
+							uni.switchTab({
+								url:"/pages/order/order"
 							})
 						})
 					})
 				}
-			},"删除提示")
+			},"删除提示")
 		},
-		cancelOrder(type){
-			if (type == 1) {
-				var msg = "确定要取消该预约或服务吗?";
-			} else {
-				var msg = "该订单已在服务中,如需取消服务需联系商家审核,审核通过后即可申请退款!";
+		cancelOrder(type){
+			if (type == 1) {
+				var msg = "确定要取消该预约吗?";
+			} else {
+				var msg = "该订单已在服务中,取消服务需商家审核,如需加急审核,请点击确定后,尽快致电商家!";
 			}
 			app.$dialog.showError(msg,function(res){
 				if (res.confirm) {
@@ -212,93 +209,93 @@ export default {
 					})
 				}
 			},"取消预约/服务")
-		},
-		getOrder(){
-			Api.orderDetail({"order":app.order}).then((res)=>{
-				app.loading = false;
-				if (res.code !== 1) {
-					app.$dialog.showSuccess(res.msg,function(){
-						uni.navigateBack()
-					});
-					return ;
-				}
+		},
+		getOrder(){
+			Api.orderDetail({"order":app.order}).then((res)=>{
+				app.loading = false;
+				if (res.code !== 1) {
+					app.$dialog.showSuccess(res.msg,function(){
+						uni.navigateBack()
+					});
+					return ;
+				}
 				app.goodsPrice = res.data.parent.pay_amount * 100;
-				app.applyRefundParams.orderId = res.data.order_id;
+				app.applyRefundParams.orderId = res.data.order_id;
 				app.orderData = res.data
-				app.poiData = res.data.poi;
-				app.storeData = res.data.store;
-			})
-		}
-	}
-}
-</script>
-
-<style>
-
-page{background-color: #f8f8f8;}
-.skeleton{width: 90%;margin: 20upx auto;}
-.line-footer{height: 200upx;}
+				app.poiData = res.data.poi;
+				app.storeData = res.data.store;
+			})
+		}
+	}
+}
+</script>
+
+<style>
+
+page{background-color: #f8f8f8;}
+.skeleton{width: 90%;margin: 20upx auto;}
+.line-footer{height: 200upx;}
+
+.address-info{font-size: 28upx;color: #333;}
+.footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx 20upx 0 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
+.footer .footer-op{display: flex;align-items: center;}
+.footer .footer-op .footer-left{display: flex;align-items: center;gap: 10upx;justify-content: center;font-size: 32upx;color: #fe2c56;font-weight: bold;}
+.footer .footer-op .footer-left text{color: #333;font-size: 28upx;font-weight: normal;}
+.footer .footer-op .footer-left text.red{color: #f56c6c;font-weight: bold;}
+.footer .footer-op .footer-left .item{flex-direction: column;display: flex;font-size: 24rpx;color: #333;align-items: center;}
+.footer .footer-op .footer-left image{width: 40upx;height: 40upx;}
 
-.address-info{font-size: 28upx;color: #333;}
-.footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx 20upx 0 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
-.footer .footer-op{display: flex;align-items: center;}
-.footer .footer-op .footer-left{display: flex;align-items: center;gap: 10upx;justify-content: center;font-size: 32upx;color: #f00;font-weight: bold;}
-.footer .footer-op .footer-left text{color: #333;font-size: 28upx;font-weight: normal;}
-.footer .footer-op .footer-left text.red{color: #f56c6c;font-weight: bold;}
-.footer .footer-op .footer-left .item{flex-direction: column;display: flex;font-size: 24rpx;color: #333;align-items: center;}
-.footer .footer-op .footer-left image{width: 40upx;height: 40upx;}
-
-.footer .footer-op .footer-right{margin-left: auto;margin-right: 0;display: flex;align-items: center;gap: 20upx;}
+.footer .footer-op .footer-right{margin-left: auto;margin-right: 0;display: flex;align-items: center;gap: 20upx;}
 .footer .footer-op .footer-right .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 200upx;color: #333;border: 2upx solid #ccc;}
-.footer .footer-op .footer-right .btn.danger{border:2upx solid #f00;color: #f00;}
-.footer .footer-op .footer-right .btn.full{background-color: #224d7a;color: #fff;border:2upx solid #224d7a;}
-.footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
-
-.order-status{padding: 40upx 20upx;text-align: center;}
-.order-status .status-name{text-align: center;font-size: 32upx;color: #333;font-weight: bold;display: flex;align-items: center;justify-content: center;}
-.order-status .status-desc{font-size: 24upx;color: #666;margin-top: 20upx;}
-
-.order-info{background-color: #fff;padding: 20upx;margin-top: 20upx;}
-.order-info .title{font-size: 32upx;color: #333;font-weight: bold;margin-bottom: 20upx;}
-.order-info .info-item{height: 80upx;line-height: 80upx;font-size: 28upx;display: flex;align-items: center;}
-.order-info .info-item .right{color: #666;margin-left: auto;margin-right: 0;}
-.order-info .info-item .right text{border: 2upx solid #ccc;color: #333;font-size: 24upx;padding: 0 15upx;margin-left: 20upx;border-radius: 5upx;}
-
-.goods-safe{display: flex;align-items: center;font-size: 24rpx;color: #999;gap: 40upx;background: #fff;border-top: 2upx solid #f8f8f8;padding: 20upx;}
-.goods-safe .safe-item{display: flex;align-items: center;}
-.goods-safe image{width: 30upx;height: 30upx;margin-right: 10upx;}
-
-.order-goods{display: flex;align-items: center;background-color: #fff;padding: 0 20upx;}
-.order-goods image{width: 140upx;height: 140upx;}
-.goods-info{margin-left: 20upx;font-size: 28upx;flex: 1;padding: 20upx 0;}
-.goods-info .name{font-size: 30upx;color: #333;}
-.goods-info .desc{font-size: 24upx;color: #999;margin: 20upx 0;}
-.goods-info .desc text{margin-left: 20upx;}
-.goods-info .total{font-size: 30upx;color: #333;text-align: right;font-weight: bold;}
-.goods-item{display: flex;align-items: center;line-height: 80upx;justify-content: space-between;font-size: 28upx;color: #333;background-color: #fff;padding: 0 20upx;border-top: 2upx solid #f8f8f8;}
-.goods-item .right.red{color: #f00;}
-
-.home-store{margin: 20upx auto;display: flex;align-items: center;background-color: #fff;border-radius: 10upx;display: flex;align-items: center;padding: 30upx;}
-.home-store .store-right{width: 120upx;height: 120upx;background-color: #fff;text-align: center;display: flex;align-items: center;justify-content: center;margin-left: auto;margin-right: 0;border-radius: 10upx;}
-.home-store .store-right image{width: 60upx;height: 60upx;}
-.home-store .left{display: flex;align-items: center;}
-.home-store .left image{width: 60upx;height: 60upx;margin-right: 20upx;}
-.home-store .right {margin-left: auto;margin-right: 0;display: flex;align-items: center;}
-.home-store .right image{width: 50upx;height: 50upx;}
-.home-store .name{font-size: 32upx;color: #000;font-weight: bold;}
-.home-store .desc{font-size: 26upx;color: #666;margin-top: 20upx;}
-.home-store .status{color: #333;font-size: 28upx;padding:5upx 15upx;border-radius: 10upx;margin-left: 10upx;}
-.home-store .status.error{background-color: #fef0f0;color: #f56c6c;}
-.service-popup .item{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-bottom: 2upx solid #f8f8f8;}
-.service-popup .item .btn{background-color: #fff;border: 0;height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;}
-.service-popup .item .btn::after{border: 0;}
-.service-popup .foot{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-top: 20upx solid #f8f8f8;}
-
-.goods-store{background-color: #fff;padding: 0 20upx;margin-top: 20upx;}
-.goods-store .title{line-height: 80upx;font-size: 32rpx;color: #333;font-weight: bold;display: flex;align-items: center;border-bottom: 2upx solid #f8f8f8;}
-.goods-store .store-info{display: flex;align-items: center;padding: 20upx 0;}
-.goods-store .store-info .store-right{margin-left: auto;margin-right: 0;font-size: 24rpx;color: #999;}
-.goods-store .store-info .store-right image{width: 50upx;height: 50upx;margin-bottom: 10upx;}
-.goods-store .store-info .store-left .name{font-size: 30rpx;color: #333;font-weight: bold;line-height: 80upx;}
-.goods-store .store-info .store-left .address{font-size: 24rpx;color: #999;}
-</style>
+.footer .footer-op .footer-right .btn.danger{border:2upx solid #fe2c56;color: #fe2c56;}
+.footer .footer-op .footer-right .btn.full{background-color: #fe2c56;color: #fff;border:2upx solid #fe2c56;}
+.footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
+
+.order-status{padding: 40upx 20upx;text-align: center;}
+.order-status .status-name{text-align: center;font-size: 32upx;color: #333;font-weight: bold;display: flex;align-items: center;justify-content: center;}
+.order-status .status-desc{font-size: 24upx;color: #666;margin-top: 20upx;}
+
+.order-info{background-color: #fff;padding: 20upx;margin-top: 20upx;}
+.order-info .title{font-size: 32upx;color: #333;font-weight: bold;margin-bottom: 20upx;}
+.order-info .info-item{height: 80upx;line-height: 80upx;font-size: 28upx;display: flex;align-items: center;}
+.order-info .info-item .right{color: #666;margin-left: auto;margin-right: 0;}
+.order-info .info-item .right text{border: 2upx solid #ccc;color: #333;font-size: 24upx;padding: 0 15upx;margin-left: 20upx;border-radius: 5upx;}
+
+.goods-safe{display: flex;align-items: center;font-size: 24rpx;color: #999;gap: 40upx;background: #fff;border-top: 2upx solid #f8f8f8;padding: 20upx;}
+.goods-safe .safe-item{display: flex;align-items: center;}
+.goods-safe image{width: 30upx;height: 30upx;margin-right: 10upx;}
+
+.order-goods{display: flex;align-items: center;background-color: #fff;padding: 0 20upx;}
+.order-goods image{width: 140upx;height: 140upx;}
+.goods-info{margin-left: 20upx;font-size: 28upx;flex: 1;padding: 20upx 0;}
+.goods-info .name{font-size: 30upx;color: #333;}
+.goods-info .desc{font-size: 24upx;color: #999;margin: 20upx 0;}
+.goods-info .desc text{margin-left: 20upx;}
+.goods-info .total{font-size: 30upx;color: #333;text-align: right;font-weight: bold;}
+.goods-item{display: flex;align-items: center;line-height: 80upx;justify-content: space-between;font-size: 28upx;color: #333;background-color: #fff;padding: 0 20upx;border-top: 2upx solid #f8f8f8;}
+.goods-item .right.red{color: #fe2c56;}
+
+.home-store{margin: 20upx auto;display: flex;align-items: center;background-color: #fff;border-radius: 10upx;display: flex;align-items: center;padding: 30upx;}
+.home-store .store-right{width: 120upx;height: 120upx;background-color: #fff;text-align: center;display: flex;align-items: center;justify-content: center;margin-left: auto;margin-right: 0;border-radius: 10upx;}
+.home-store .store-right image{width: 60upx;height: 60upx;}
+.home-store .left{display: flex;align-items: center;}
+.home-store .left image{width: 60upx;height: 60upx;margin-right: 20upx;}
+.home-store .right {margin-left: auto;margin-right: 0;display: flex;align-items: center;}
+.home-store .right image{width: 50upx;height: 50upx;}
+.home-store .name{font-size: 32upx;color: #000;font-weight: bold;}
+.home-store .desc{font-size: 26upx;color: #666;margin-top: 20upx;}
+.home-store .status{color: #333;font-size: 28upx;padding:5upx 15upx;border-radius: 10upx;margin-left: 10upx;}
+.home-store .status.error{background-color: #fef0f0;color: #f56c6c;}
+.service-popup .item{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-bottom: 2upx solid #f8f8f8;}
+.service-popup .item .btn{background-color: #fff;border: 0;height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;}
+.service-popup .item .btn::after{border: 0;}
+.service-popup .foot{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-top: 20upx solid #f8f8f8;}
+
+.goods-store{background-color: #fff;padding: 0 20upx;margin-top: 20upx;}
+.goods-store .title{line-height: 80upx;font-size: 32rpx;color: #333;font-weight: bold;display: flex;align-items: center;border-bottom: 2upx solid #f8f8f8;}
+.goods-store .store-info{display: flex;align-items: center;padding: 20upx 0;}
+.goods-store .store-info .store-right{margin-left: auto;margin-right: 0;font-size: 24rpx;color: #999;}
+.goods-store .store-info .store-right image{width: 50upx;height: 50upx;margin-bottom: 10upx;}
+.goods-store .store-info .store-left .name{font-size: 30rpx;color: #333;font-weight: bold;line-height: 80upx;}
+.goods-store .store-info .store-left .address{font-size: 24rpx;color: #999;}
+</style>

+ 132 - 132
pages/order/order.vue

@@ -1,159 +1,159 @@
 <template>
 	<view>
-		<view class="header">
-			<view class="header-tabs">
-				<view @click="checkType(0)" :class="tabType==0?'tab-item active':'tab-item'">全部</view>
-				<view @click="checkType(1)" :class="tabType==1?'tab-item active':'tab-item'">预约中</view>
-				<view @click="checkType(2)" :class="tabType==2?'tab-item active':'tab-item'">服务中</view>
-				<view @click="checkType(3)" :class="tabType==3?'tab-item active':'tab-item'">已撤销</view>
-				<view @click="checkType(4)" :class="tabType==4?'tab-item active':'tab-item'">已完成</view>
-			</view>
-		</view>
+		<view class="header">
+			<view class="header-tabs">
+				<view @click="checkType(0)" :class="tabType==0?'tab-item active':'tab-item'">全部</view>
+				<view @click="checkType(1)" :class="tabType==1?'tab-item active':'tab-item'">预约中</view>
+				<view @click="checkType(2)" :class="tabType==2?'tab-item active':'tab-item'">服务中</view>
+				<view @click="checkType(3)" :class="tabType==3?'tab-item active':'tab-item'">已撤销</view>
+				<view @click="checkType(4)" :class="tabType==4?'tab-item active':'tab-item'">已完成</view>
+			</view>
+		</view>
 		<view class="order-body">
 			<z-paging ref="paging" show-refresher-update-time v-model="dataList" @query="queryList" :fixed="false">
-				<view class="order-item" v-for="(item,indx) in dataList" :key="indx">
-					<view class="item-header" @click="toDetail(item.order_sn)">
-						<view class="order-status success" v-if="item.status == 1">预约中</view>
-						<view class="order-status success" v-if="item.status == 2">服务中</view>
-						<view class="order-status" v-if="item.status == 3">已撤销</view>
-						<view class="order-status success" v-if="item.status == 4">已完成</view>
-						<view class="order-time">订单号 :{{ item.order_id }}</view>
-					</view>
-					<view class="order-goods" @click="toDetail(item.order_sn)">
-						<view class="goods-img"><image :src="item.goods.product_img"></image></view>
-						<view class="goods-info">
-							<view class="name">{{ item.goods.product_name }}</view>
-							<view class="desc">
-								<view class="time" v-if="item.end_at">有效期至:{{ item.end_at }} </view>
-								<view class="num">x {{ item.number?item.number:1 }}</view>
-							</view>
-							<view class="desc">{{item.sku}}</view>
-							<view class="total">¥ {{ item.goods.product_price }}</view>
-						</view>
-					</view>
-					<view class="order-footer">
-						<view class="footer-l">{{item.create_at}}</view>
-						<view class="footer-r">
-							<view class="btn blue" v-if="item.status == 1" @click="toDetail(item.order_sn)">取消预约</view>
-							<view class="btn blue" v-if="item.status == 2" @click="toDetail(item.order_sn)">取消服务</view>
-							<view class="btn danger" @click="toDetail(item.order_sn)">详情</view>
-						</view>
-					</view>
+				<view class="order-item" v-for="(item,indx) in dataList" :key="indx">
+					<view class="item-header" @click="toDetail(item.order_sn)">
+						<view class="order-status success" v-if="item.status == 1">预约中</view>
+						<view class="order-status success" v-if="item.status == 2">服务中</view>
+						<view class="order-status" v-if="item.status == 3">已撤销</view>
+						<view class="order-status success" v-if="item.status == 4">已完成</view>
+						<view class="order-time">订单号 :{{ item.certificate_id }}</view>
+					</view>
+					<view class="order-goods" @click="toDetail(item.order_sn)">
+						<view class="goods-img"><image :src="item.goods.product_img"></image></view>
+						<view class="goods-info">
+							<view class="name">{{ item.goods.product_name }}</view>
+							<view class="desc">
+								<view class="time" v-if="item.end_at">有效期至:{{ item.end_at }} </view>
+								<view class="num">x {{ item.number?item.number:1 }}</view>
+							</view>
+							<view class="desc">{{item.sku}}</view>
+							<view class="total">¥ {{ item.goods.product_price }}</view>
+						</view>
+					</view>
+					<view class="order-footer">
+						<view class="footer-l">{{item.create_at}}</view>
+						<view class="footer-r">
+							<view class="btn blue" v-if="item.status == 1" @click="toDetail(item.order_sn)">取消预约</view>
+							<view class="btn blue" v-if="item.status == 2" @click="toDetail(item.order_sn)">取消服务</view>
+							<view class="btn danger" @click="toDetail(item.order_sn)">详情</view>
+						</view>
+					</view>
 				</view>
-			</z-paging>
+			</z-paging>
 		</view>
 	</view>
 </template>
 
-<script>
-var app;
+<script>
+var app;
 import * as Api from "@/static/api/order.js";
 export default {
 	data() {
-		return {
-			formData:{},
-			tabType:0,
+		return {
+			formData:{},
+			tabType:0,
 			dataList:[]
 		}
-	},
-	onLoad() {
-		app = this;
+	},
+	onLoad() {
+		app = this;
 	},
 	methods: {
 		toDetail(order){
 			uni.navigateTo({
 				url:"/pages/order/info?order="+order
 			})
-		},
-		checkType(type){
-			app.tabType = type;
-			app.queryList(1,10);
-		},
-		queryList(pageNo, pageSize){
-			var formData = {};
-			formData.page = pageNo;
-			formData.size = pageSize;
-			formData.status = app.tabType;
-			Api.order(formData).then((res)=>{
-				uni.hideLoading();
-				if (res.code !== 1) {
-					this.$refs.paging.complete(false);
-					return false;
-				}
-				this.$refs.paging.complete(res.data.rows);
-			})
+		},
+		checkType(type){
+			app.tabType = type;
+			app.queryList(1,10);
+		},
+		queryList(pageNo, pageSize){
+			var formData = {};
+			formData.page = pageNo;
+			formData.size = pageSize;
+			formData.status = app.tabType;
+			Api.order(formData).then((res)=>{
+				uni.hideLoading();
+				if (res.code !== 1) {
+					this.$refs.paging.complete(false);
+					return false;
+				}
+				this.$refs.paging.complete(res.data.rows);
+			})
 		}
 	}
 }
 </script>
-
-<style lang="scss" scoped>
-page{
-	background-color: #f8f8f8;
-}
-.order-body{
-	height: calc(100vh - 100upx);
-}
-.empty-data{
-	display: flex;
-	height: 100%;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-	font-size: 28upx;
-	color: #666;
-	image{
-		width: 50%;
-	}
-}
-.header{
-	background-color: #fff;
-	padding: 20upx 20upx 0 20upx;
-	.header-tabs{
-		display: flex;
-		align-items: center;
-		height: 80upx;
-		line-height: 80upx;
-		.tab-item{
-			width: 33.333%;
-			text-align: center;
-			font-size: 30upx;
-			color: #333;
-			position: relative;
-			&.active{
-				color: #005BAC;
-				font-weight: bold;
-				&::after{
-					content: "";
-					position: absolute;
-					width: 40%;
-					height: 8upx;
-					border-radius: 4upx;
-					left: 30%;
-					bottom: 0;
-					background-color: #005BAC;
-				}
-			}
-		}
-	}
+
+<style lang="scss" scoped>
+page{
+	background-color: #f8f8f8;
+}
+.order-body{
+	height: calc(100vh - 100upx);
+}
+.empty-data{
+	display: flex;
+	height: 100%;
+	align-items: center;
+	justify-content: center;
+	flex-direction: column;
+	font-size: 28upx;
+	color: #666;
+	image{
+		width: 50%;
+	}
+}
+.header{
+	background-color: #fff;
+	padding: 20upx 20upx 0 20upx;
+	.header-tabs{
+		display: flex;
+		align-items: center;
+		height: 80upx;
+		line-height: 80upx;
+		.tab-item{
+			width: 33.333%;
+			text-align: center;
+			font-size: 30upx;
+			color: #333;
+			position: relative;
+			&.active{
+				color: #fe2c56;
+				font-weight: bold;
+				&::after{
+					content: "";
+					position: absolute;
+					width: 40%;
+					height: 8upx;
+					border-radius: 4upx;
+					left: 30%;
+					bottom: 0;
+					background-color: #fe2c56;
+				}
+			}
+		}
+	}
 }
-
-.order-footer{display: flex;text-align: right;padding: 20upx 0;border-top: 2upx solid #f8f8f8;align-items: center;}
-.order-footer .footer-l{font-size: 28upx;color: #666;}
-.order-footer .footer-r{display: flex;margin-left: auto;margin-right: 0;flex: 1;justify-content: end;gap: 20upx;}
-.order-footer .btn{height: 50upx;line-height: 50upx;text-align: center;border: 2upx solid #ccc;color: #333;font-size: 28upx;border-radius: 10upx;padding: 0 25upx;}
-.order-footer .btn.danger{border:2upx solid #f00;color: #f00;}
+
+.order-footer{display: flex;text-align: right;padding: 20upx 0;border-top: 2upx solid #f8f8f8;align-items: center;}
+.order-footer .footer-l{font-size: 28upx;color: #666;}
+.order-footer .footer-r{display: flex;margin-left: auto;margin-right: 0;flex: 1;justify-content: end;gap: 20upx;}
+.order-footer .btn{height: 50upx;line-height: 50upx;text-align: center;border: 2upx solid #ccc;color: #333;font-size: 28upx;border-radius: 10upx;padding: 0 25upx;}
+.order-footer .btn.danger{border:2upx solid #fe2c56;color: #fe2c56;}
 .order-footer .btn.blue{border:2upx solid #007aff;color: #007aff;}
-
-.order-item{background-color: #fff;padding: 0 20upx;border-radius: 10upx;margin-top: 20upx;}
-.order-item .item-header{display: flex;align-items: center;height: 80upx;line-height: 80upx;border-bottom: 2upx solid #f8f8f8;}
-.order-item .item-header .order-status{font-size: 28upx;color: #f00;}
-.order-item .item-header .order-status.success{color: #007aff;}
-.order-item .item-header .order-time{font-size: 24upx;color: #999;margin-left: auto;margin-right: 0;}
-.order-item .order-goods{display: flex;align-items: center;}
-.order-item .order-goods image{width: 140upx;height: 140upx;}
-.order-item .goods-info{margin-left: 20upx;font-size: 28upx;flex: 1;padding: 20upx 0;position: relative;}
-.order-item .goods-info .name{font-size: 30upx;color: #333;}
-.order-item .goods-info .desc{font-size: 24upx;color: #999;display: flex;align-items: center;justify-content: space-between;margin: 20upx 0;}
-.order-item .goods-info .total{font-size: 30upx;color: #333;text-align: right;font-weight: bold;position: absolute;right: 20upx;bottom: 40upx;}
+
+.order-item{background-color: #fff;padding: 0 20upx;border-radius: 10upx;margin-top: 20upx;}
+.order-item .item-header{display: flex;align-items: center;height: 80upx;line-height: 80upx;border-bottom: 2upx solid #f8f8f8;}
+.order-item .item-header .order-status{font-size: 28upx;color: #fe2c56;}
+.order-item .item-header .order-status.success{color: #007aff;}
+.order-item .item-header .order-time{font-size: 24upx;color: #999;margin-left: auto;margin-right: 0;}
+.order-item .order-goods{display: flex;align-items: center;}
+.order-item .order-goods image{width: 140upx;height: 140upx;}
+.order-item .goods-info{margin-left: 20upx;font-size: 28upx;flex: 1;padding: 20upx 0;position: relative;}
+.order-item .goods-info .name{font-size: 30upx;color: #333;}
+.order-item .goods-info .desc{font-size: 24upx;color: #999;display: flex;align-items: center;justify-content: space-between;margin: 20upx 0;}
+.order-item .goods-info .total{font-size: 30upx;color: #333;text-align: right;font-weight: bold;position: absolute;right: 20upx;bottom: 40upx;}
 </style>

+ 115 - 115
pages/order/store.vue

@@ -1,145 +1,145 @@
 <template>
 	<view>
-		<view class="search">
-			<image src="/static/image/search.png"></image>
-			<input type="text" placeholder="请输入关键字" v-model="keyword" @confirm="getStore" class="search-input" />
-		</view>
-		<view class="store-list">
-			<view :class="checkIndex==indx?'store-item active':'store-item'" @click="checkStore(indx)" v-for="(item,indx) in storeData" :key="indx">
-				<view class="item-left">
-					<view class="name">{{item.poi_name}}</view>
-					<view class="desc">{{item.poi_address}}</view>
-					<view class="desc" v-if="storeInfo.status==1">{{ storeInfo.service_at_start }}-{{ storeInfo.service_at_end }}</view>
-					<view class="desc" v-else>休息中</view>
-				</view>
-				<view class="item-right">
-					<view class="top">
-						<view class="icon-img" @click="tel()"><image src="/static/image/tel.png"></image></view>
-						<view class="icon-img" @click="locaJump(item.longitude,item.latitude)"><image src="/static/image/map.png"></image></view>
-					</view>
-					<view class="footer">距离{{ item.juli }}公里</view>
-				</view>
-				<view class="check"><image src="/static/image/check.png"></image></view>
-			</view>
-		</view>
-		<view class="flx-footer">
-			<view class="check-btn"><button class="btn" :disabled="disabled" @click="checkOrder">{{disabled?'处理中...':'确 认'}}</button></view>
-			<view class="footer-safe"></view>
+		<view class="search">
+			<image src="/static/image/search.png"></image>
+			<input type="text" placeholder="请输入关键字" v-model="keyword" @confirm="getStore" class="search-input" />
+		</view>
+		<view class="store-list">
+			<view :class="checkIndex==indx?'store-item active':'store-item'" @click="checkStore(indx)" v-for="(item,indx) in storeData" :key="indx">
+				<view class="item-left">
+					<view class="name">{{item.poi_name}}</view>
+					<view class="desc">{{item.poi_address}}</view>
+					<view class="desc" v-if="storeInfo.status==1">{{ storeInfo.service_at_start }}-{{ storeInfo.service_at_end }}</view>
+					<view class="desc" v-else>休息中</view>
+				</view>
+				<view class="item-right">
+					<view class="top">
+						<view class="icon-img" @click="tel()"><image src="/static/image/tel.png"></image></view>
+						<view class="icon-img" @click="locaJump(item.longitude,item.latitude)"><image src="/static/image/map.png"></image></view>
+					</view>
+					<view class="footer">距离{{ item.juli }}公里</view>
+				</view>
+				<view class="check"><image src="/static/image/check.png"></image></view>
+			</view>
+		</view>
+		<view class="flx-footer">
+			<view class="check-btn"><button class="btn" :disabled="disabled" @click="checkOrder">{{disabled?'处理中...':'确 认'}}</button></view>
+			<view class="footer-safe"></view>
 		</view>
 	</view>
 </template>
 
-<script>
-var app;
+<script>
+var app;
 import * as Api from "@/static/api/order.js";
 export default {
 	data() {
-		return {
-			checkIndex:null,
-			order:"",
-			location:"",
-			storeData:[],
-			storeInfo:null,
-			keyword:"",
-			disabled:false,
+		return {
+			checkIndex:null,
+			order:"",
+			location:"",
+			storeData:[],
+			storeInfo:null,
+			keyword:"",
+			disabled:false,
 			type:1
 		}
-	},
-	onLoad({order,type}) {
-		app = this;
-		if (!order) {
-			return app.$dialog.showSuccess("参数错误","none",function(){
-				uni.navigateBack()
-			})
-		}
-		app.type = type;
-		app.order = order;
-		app.getStoreData();
 	},
-	methods: {
-		checkOrder(){
-			if (app.checkIndex==null) {
-				return app.$dialog.showSuccess("请选择门店");
-			}
-			app.disabled = true;
-			var poi = app.storeData[app.checkIndex];
-			uni.navigateTo({
+	onLoad({order,type}) {
+		app = this;
+		if (!order) {
+			return app.$dialog.showSuccess("参数错误","none",function(){
+				uni.navigateBack()
+			})
+		}
+		app.type = type;
+		app.order = order;
+		app.getStoreData();
+	},
+	methods: {
+		checkOrder(){
+			if (app.checkIndex==null) {
+				return app.$dialog.showSuccess("请选择门店");
+			}
+			app.disabled = true;
+			var poi = app.storeData[app.checkIndex];
+			uni.navigateTo({
 				url:"/pages/order/confirm?order="+app.order+"&poi_id="+poi.poi_id+"&poi_name="+poi.poi_name+"&juli="+poi.juli,
 				success() {
 					app.disabled = false;
-				}
-			})
-		},
-		checkStore(index){
-			app.checkIndex = index;
-		},
+				}
+			})
+		},
+		checkStore(index){
+			app.checkIndex = index;
+		},
 		tel(){
 			if (!app.storeInfo.service_mobile){
 				return app.$dialog.showSuccess("客服电话尚未配置")
-			}
+			}
 			uni.makePhoneCall({
 				phoneNumber:app.storeInfo.service_mobile
-			})
-		},
-		locaJump(longitude,latitude){
-			uni.openLocation({
-				latitude:latitude,
-				longitude:longitude,
-				fail() {
-					app.$dialog.showSuccess("打开地图失败");
-				}
-			})
-		},
-		getStoreData(){
-			uni.getLocation({
-				type:"gcj02",
-				success(res) {
-					console.log(res)
-					app.location = res.longitude+","+res.latitude;
-					app.getStore();
-				},
-				fail() {
-					app.location = "117.172398,34.226209";
-					app.getStore();
-				}
-			})
-		},
-		getStore(){
-			Api.store({"order":app.order,"location":app.location,"keyword":app.keyword}).then((res)=>{
-				if (res.code == 0) {
-					return app.$dialog.showSuccess(res.msg,"none",function(){
-						uni.navigateBack()
-					})
-				}
-				app.storeData = res.data.data;
-				app.storeInfo = res.data.store;
-			})
+			})
+		},
+		locaJump(longitude,latitude){
+			uni.openLocation({
+				latitude:latitude,
+				longitude:longitude,
+				fail() {
+					app.$dialog.showSuccess("打开地图失败");
+				}
+			})
+		},
+		getStoreData(){
+			uni.getLocation({
+				type:"gcj02",
+				success(res) {
+					console.log(res)
+					app.location = res.longitude+","+res.latitude;
+					app.getStore();
+				},
+				fail() {
+					app.location = "117.172398,34.226209";
+					app.getStore();
+				}
+			})
+		},
+		getStore(){
+			Api.store({"order":app.order,"location":app.location,"keyword":app.keyword}).then((res)=>{
+				if (res.code == 0) {
+					return app.$dialog.showSuccess(res.msg,"none",function(){
+						uni.navigateBack()
+					})
+				}
+				app.storeData = res.data.data;
+				app.storeInfo = res.data.store;
+			})
 		}
 	}
 }
 </script>
 
 <style>
-.search{padding: 20upx;display: flex;align-items: center;background-color: #fff;width: calc(95% - 60upx);margin: 20upx auto;border-radius: 60upx;}
-.search image{width: 50upx;height: 46upx;}
-.search .search-input{border-radius: 30upx;font-size: 28upx;height: 60upx;margin-left: 20upx;}
-
-.store-item{background-color: #fff;width: calc(95% - 40upx);padding: 20upx;border-radius: 20upx;display: flex;align-items: center;justify-content: space-between;margin: 20upx auto;position: relative;}
-.store-item.active{border: 2upx solid #224d7a;}
-.store-item .check{display: none;position: absolute;top: 0;right: 0;background-color: #224d7a;width: 40upx;height: 40upx;border-radius: 0 20upx 0 20upx;}
-.store-item .check image{width: 30upx;height: 30upx;display: flex;align-items: center;justify-content: center;padding: 5upx;}
-.store-item.active .check{display: block;}
-.store-item .item-left{flex: 1;}
+.search{padding: 20upx;display: flex;align-items: center;background-color: #fff;width: calc(95% - 60upx);margin: 20upx auto;border-radius: 60upx;}
+.search image{width: 50upx;height: 46upx;}
+.search .search-input{border-radius: 30upx;font-size: 28upx;height: 60upx;margin-left: 20upx;}
+
+.store-item{background-color: #fff;width: calc(95% - 40upx);padding: 20upx;border-radius: 20upx;display: flex;align-items: center;justify-content: space-between;margin: 20upx auto;position: relative;}
+.store-item.active{border: 2upx solid #fe2c56;}
+.store-item .check{display: none;position: absolute;top: 0;right: 0;background-color: #fe2c56;width: 40upx;height: 40upx;border-radius: 0 20upx 0 20upx;}
+.store-item .check image{width: 30upx;height: 30upx;display: flex;align-items: center;justify-content: center;padding: 5upx;}
+.store-item.active .check{display: block;}
+.store-item .item-left{flex: 1;}
 .store-item .name{font-size: 32upx;color: #333;line-height: 48upx;font-weight: bold;}
-.store-item .desc{font-size: 24upx;color: #666;line-height: 36upx;margin-top: 10upx;}
-.store-item .item-right{text-align: center;margin-left: 20upx;border-left: 2upx solid #f8f8f8;padding-left: 20upx;}
+.store-item .desc{font-size: 24upx;color: #666;line-height: 36upx;margin-top: 10upx;}
+.store-item .item-right{text-align: center;margin-left: 20upx;border-left: 2upx solid #f8f8f8;padding-left: 20upx;}
 .store-item .item-right .footer{font-size: 24upx;color: #666;}
-.store-item .item-right .top{display: flex;align-items: center;gap: 20upx;margin-bottom: 20upx;}
-.store-item .item-right .top .icon-img{width: 60upx;height: 60upx;background-color: #f8f8f8;border-radius: 60upx;display: flex;align-items: center;justify-content: center;}
-.store-item .item-right .top .icon-img image{width: 40upx;height: 40upx;}
-
-.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
-.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
-.flx-footer .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #224d7a;color: #fff;border:2upx solid #224d7a;}
+.store-item .item-right .top{display: flex;align-items: center;gap: 20upx;margin-bottom: 20upx;}
+.store-item .item-right .top .icon-img{width: 60upx;height: 60upx;background-color: #f8f8f8;border-radius: 60upx;display: flex;align-items: center;justify-content: center;}
+.store-item .item-right .top .icon-img image{width: 40upx;height: 40upx;}
+
+.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
+.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
+.flx-footer .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #fe2c56;color: #fff;border:2upx solid #fe2c56;}
 .flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color: rgba(34, 77, 122, 0.3);}
 </style>

+ 107 - 93
pages/user/address.vue

@@ -15,8 +15,10 @@
 				</view>
 			</z-paging>
 		</view>
-		<view class="flx-footer">
-			<view class="check-btn"><button class="btn" :disabled="disabled" @click="add">{{disabled?'处理中...':'新增地址'}}</button></view>
+		<view class="flx-footer">
+			<view class="check-btn">
+				<button class="btn" :disabled="disabled" @click="add">{{disabled?'处理中...':'新增地址'}}</button>
+			</view>
 			<view class="footer-safe"></view>
 		</view>
 		<uni-popup ref="popup" type="bottom" borderRadius="10px 10px 0 0" backgroundColor="#F8F8F8">
@@ -24,44 +26,44 @@
 				<view class="title">{{mode=='add'?'新增':'编辑'}}地址
 					<view class="close" @click="close()"><image src="/static/image/round_close.png"></image></view> 
 				</view>
-			</view>
-			<view class="goods-body">
-				<view class="goods-form">
-					<view class="form-title">会员姓名</view>
-					<view class="form-input">
-						<input placeholder="请输入会员姓名" v-model="formData.username" class="input" />
-					</view>
-				</view>
-				<view class="goods-form">
-					<view class="form-title">联系电话</view>
-					<view class="form-input">
-						<input placeholder="请输入联系电话" v-model="formData.mobile" class="input" />
-					</view>
-				</view>
-				<view class="goods-form">
-					<view class="form-title">联系地区</view>
-					<view class="form-input">
-						<picker @change="bindPickerChange" mode="region">
-							<view class="region-name">{{regionName?regionName:'请选择'}}</view>
-						</picker>
-					</view>
-				</view>
-				<view class="goods-form">
-					<view class="form-title">详细地址</view>
-					<view class="form-input">
-						<input placeholder="请输入详细地址" v-model="formData.address" class="input" />
-					</view>
-				</view>
-			</view>
-			<view class="time-btn">
-				<button class="btn" :disabled="disabled" @click="submit">{{disabled?'处理中...':'确认'}}</button>
+			</view>
+			<view class="goods-body">
+				<view class="goods-form">
+					<view class="form-title">会员姓名</view>
+					<view class="form-input">
+						<input placeholder="请输入会员姓名" v-model="formData.username" class="input" />
+					</view>
+				</view>
+				<view class="goods-form">
+					<view class="form-title">联系电话</view>
+					<view class="form-input">
+						<input placeholder="请输入联系电话" v-model="formData.mobile" class="input" />
+					</view>
+				</view>
+				<view class="goods-form">
+					<view class="form-title">联系地区</view>
+					<view class="form-input">
+						<picker @change="bindPickerChange" mode="region">
+							<view class="region-name">{{regionName?regionName:'请选择'}}</view>
+						</picker>
+					</view>
+				</view>
+				<view class="goods-form">
+					<view class="form-title">详细地址</view>
+					<view class="form-input">
+						<input placeholder="请输入详细地址" v-model="formData.address" class="input" />
+					</view>
+				</view>
+			</view>
+			<view class="time-btn">
+				<button class="btn" :disabled="disabled" @click="submit">{{disabled?'处理中...':'确认'}}</button>
 			</view>
 		</uni-popup>
 	</view>
 </template>
 
 <script>
-var app;
+var app;
 import * as Api from "@/static/api/address.js";
 import form from "@/static/js/form.js";
 export default {
@@ -79,10 +81,20 @@ export default {
 		app = this;
 		app.type = type;
 	},
-	methods: {
-		queryList(pageNo, pageSize){
-			var formData = {};
-			formData.page = pageNo;
+	methods: {
+		chooseAddress(){
+			uni.chooseAddress({
+				success(res) {
+					console.log(res)
+				},
+				fail(res) {
+					console.log(res)
+				}
+			})
+		},
+		queryList(pageNo, pageSize){
+			var formData = {};
+			formData.page = pageNo;
 			formData.size = pageSize;
 			Api.data(formData).then((res)=>{
 				uni.hideLoading();
@@ -91,7 +103,7 @@ export default {
 					return false;
 				}
 				this.$refs.paging.complete(res.data.rows);
-			})
+			})
 		},
 		checkAddress(data){
 			if (app.type == 2) {
@@ -121,40 +133,40 @@ export default {
 			app.mode = "edit";
 			app.regionName = data.region
 			app.$refs.popup.open()
-		},
-		bindPickerChange(e){
-			var name = "";
-			var regionData = e.detail.value;
-			regionData.forEach((item)=>{
-				name += item
-			})
-			app.regionName = name;
+		},
+		bindPickerChange(e){
+			var name = "";
+			var regionData = e.detail.value;
+			regionData.forEach((item)=>{
+				name += item
+			})
+			app.regionName = name;
 		},
 		close(){
 			app.$refs.popup.close()
 		},
-		add(){
-			uni.getLocation({
-				type:"gcj02",
-				success(res) {
-					console.log(res)
-				},
+		add(){
+			uni.getLocation({
+				type:"gcj02",
+				success(res) {
+					console.log(res)
+				},
 				complete() {
 					app.mode = "add";
-					app.$refs.popup.open()
-				}
+					app.$refs.popup.open()
+				}
 			})
 		},
-		submit(){
-			var {formData} = this;
-			formData.region = app.regionName;
-			var submitData = JSON.parse(JSON.stringify(formData))
-			var validation = form.validation(submitData,[
-				{name:"username",rule:["required"],msg:["请输入姓名"]},
-				{name:"mobile",rule:["required","isMobile"],msg:["请输入手机号","手机号格式错误"]},
-				{name:"region",rule:["required"],msg:["请选择地区"]},
-				{name:"address",rule:["required"],msg:["请输入详细地址"]}
-			]);
+		submit(){
+			var {formData} = this;
+			formData.region = app.regionName;
+			var submitData = JSON.parse(JSON.stringify(formData))
+			var validation = form.validation(submitData,[
+				{name:"username",rule:["required"],msg:["请输入姓名"]},
+				{name:"mobile",rule:["required","isMobile"],msg:["请输入手机号","手机号格式错误"]},
+				{name:"region",rule:["required"],msg:["请选择地区"]},
+				{name:"address",rule:["required"],msg:["请输入详细地址"]}
+			]);
 			if(validation) return app.$dialog.showSuccess(validation);
 			app.disabled = true;
 			Api.save(submitData).then((res)=>{
@@ -172,41 +184,43 @@ export default {
 </script>
 
 <style>
+.check-btn{display: flex;align-items: center;gap: 20upx;}
 .address-list{height: 100vh;}
 .address-list .list-item{background-color: #fff;margin-top: 20upx;display: flex;align-items: center;justify-content: space-between;padding: 20upx;}
 .address-list .list-item .title{font-size: 24upx;color: #666;margin-bottom: 20upx;}
 .address-list .list-item .name{font-size: 28upx;color: #333;margin-bottom: 20upx;}
 .address-list .list-item .mobile{font-size: 28upx;color: #666;margin-bottom: 20upx;}
-.address-list .list-item .mobile text{margin-left: 20upx;}
+.address-list .list-item .mobile text{margin-left: 20upx;}
 .address-list .list-item .item-left{flex: 1;}
 .address-list .list-item .item-right{display: flex;align-items: center;gap: 20upx;}
-.address-list .list-item .item-right .icon{width: 60upx;height: 60upx;background-color: #f8f8f8;border-radius: 30upx;text-align: center;justify-content: center;align-items: center;display: flex;}
-.address-list .list-item .item-right image{width: 40upx;height: 40upx;}
-.empty-data{
-	display: flex;
-	height: 80vh;
-	align-items: center;
-	justify-content: center;
-	flex-direction: column;
-	font-size: 28upx;
-	color: #666;
-}
-.empty-data image{
-	width: 50%;
+.address-list .list-item .item-right .icon{width: 60upx;height: 60upx;background-color: #f8f8f8;border-radius: 30upx;text-align: center;justify-content: center;align-items: center;display: flex;}
+.address-list .list-item .item-right image{width: 40upx;height: 40upx;}
+.empty-data{
+	display: flex;
+	height: 80vh;
+	align-items: center;
+	justify-content: center;
+	flex-direction: column;
+	font-size: 28upx;
+	color: #666;
 }
-.time-select .title{height: 100upx;line-height: 100upx;display: flex;align-items: center;justify-content: space-between;font-size: 32upx;padding: 0 20upx;font-weight: bold;}
-.time-select image{width: 40upx;height: 40upx;vertical-align: middle;}
+.empty-data image{
+	width: 50%;
+}
+.time-select{border-bottom: 2upx solid #f2f2f2;}
+.time-select .title{height: 100upx;line-height: 100upx;display: flex;align-items: center;justify-content: space-between;font-size: 32upx;padding: 0 20upx;font-weight: bold;}
+.time-select image{width: 40upx;height: 40upx;vertical-align: middle;}
 .time-btn{padding: 20upx;}	
-.goods-body{padding: 20upx;}
-.goods-body .goods-title{font-size: 28upx;color: #333;line-height: 80upx;}
-.goods-body .goods-title text{color: #f00;}
-.goods-body .form-title{margin-top: 40upx;font-size: 28upx;color: #666;}
-.goods-form{margin-bottom: 20upx;}
-.goods-form .form-input{border: 2upx solid #ccc;height: 80upx;margin-top: 20upx;padding: 0 15upx;}
-.region-name{height: 80upx;line-height: 80upx;font-size: 24upx;}
-.goods-form .form-input .input{font-size: 24upx;height: 80upx;}
-
-.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
-.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
-.flx-footer .btn,.time-btn .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #224d7a;color: #fff;border:2upx solid #224d7a;}
+.goods-body{padding: 20upx;}
+.goods-body .goods-title{font-size: 28upx;color: #333;line-height: 80upx;}
+.goods-body .goods-title text{color: #fe2c56;}
+.goods-body .form-title{margin-top: 40upx;font-size: 28upx;color: #666;}
+.goods-form{margin-bottom: 20upx;}
+.goods-form .form-input{border: 2upx solid #ccc;height: 80upx;margin-top: 20upx;padding: 0 15upx;background-color: #ccc;}
+.region-name{height: 80upx;line-height: 80upx;font-size: 24upx;}
+.goods-form .form-input .input{font-size: 24upx;height: 80upx;background-color: #ccc;}
+
+.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20upx;border-top: 2upx solid #f8f8f8;left: 0;right: 0;}
+.flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
+.flx-footer .btn,.time-btn .btn{font-size: 28rpx;height: 80upx;border-radius: 10upx;line-height: 80upx;text-align: center;width: 100%;color: #333;background-color: #fe2c56;color: #fff;border:2upx solid #fe2c56;}
 </style>

+ 45 - 45
pages/user/license.vue

@@ -1,68 +1,68 @@
 <template>
-	<view>
-		<block v-if="loading">
-			<view class="skeleton">
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-				<view class="skeleton-line animate"></view>
-				<view class="skeleton-line min animate"></view>
-				<view class="skeleton-line min animate"></view>
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-				<view class="skeleton-line max animate" style="height: 200upx;"></view>
-			</view>
-		</block>
+	<view>
+		<block v-if="loading">
+			<view class="skeleton">
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+				<view class="skeleton-line animate"></view>
+				<view class="skeleton-line min animate"></view>
+				<view class="skeleton-line min animate"></view>
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+				<view class="skeleton-line max animate" style="height: 200upx;"></view>
+			</view>
+		</block>
 		<block v-else>
-		<view class="info-item">
-			<view class="title">营业执照</view>
-			<view class="img" @click="preview"><image :src="license" mode="widthFix"></image></view>
+		<view class="info-item">
+			<view class="title">营业执照</view>
+			<view class="img" @click="preview"><image :src="license" mode="widthFix"></image></view>
+		</view>
+		<view class="info-item">
+			<view class="title">特别提示</view>
+			<view class="info">商家资质图片为官方展示<text>严禁下载复印</text>,违者后果自负</view>
 		</view>
-		<view class="info-item">
-			<view class="title">特别提示</view>
-			<view class="info">商家资质图片为官方展示<text>严禁下载复印</text>,违者后果自负</view>
-		</view>
 		</block>
 	</view>
 </template>
 
-<script>
-var app;
+<script>
+var app;
 import * as Api from "@/static/api/home.js";
 export default {
 	data() {
 		return {
-			loading:true,
+			loading:true,
 			license:""
 		}
-	},
-	onLoad() {
-		app = this;
-		app.getLicense()
 	},
-	methods: {
-		preview(){
-			uni.previewImage({
-				urls:[app.license]
-			})
+	onLoad() {
+		app = this;
+		app.getLicense()
+	},
+	methods: {
+		preview(){
+			uni.previewImage({
+				urls:[app.license]
+			})
 		},
-		getLicense(){
-			Api.license({}).then((res)=>{
-				app.loading = false;
-				if (res.code !== 1) {
-					return app.$dialog.showSuccess(res.msg,function(){
-						uni.navigateBack()
-					})
-				}
-				app.license = res.data.img;
-			})
+		getLicense(){
+			Api.license({}).then((res)=>{
+				app.loading = false;
+				if (res.code !== 1) {
+					return app.$dialog.showSuccess(res.msg,function(){
+						uni.navigateBack()
+					})
+				}
+				app.license = res.data.img;
+			})
 		}
 	}
 }
 </script>
 
 <style>
-page{background-color: #f8f8f8;}
-.info-item{background-color: #fff;padding: 20upx;margin-bottom: 20upx;}
-.info-item .title{font-size: 30upx;color: #333;font-weight: bold;line-height: 80upx;border-bottom: 2upx solid #f8f8f8;}
-.info-item .info{font-size: 28upx;color: #666;line-height: 60upx;}
-.info-item .info text{color: #f00;}
+page{background-color: #f8f8f8;}
+.info-item{background-color: #fff;padding: 20upx;margin-bottom: 20upx;}
+.info-item .title{font-size: 30upx;color: #333;font-weight: bold;line-height: 80upx;border-bottom: 2upx solid #f8f8f8;}
+.info-item .info{font-size: 28upx;color: #666;line-height: 60upx;}
+.info-item .info text{color: #fe2c56;}
 .info-item image{width: 100%;}
 </style>

+ 109 - 109
pages/user/user.vue

@@ -1,83 +1,83 @@
 <template>
 	<view>
-		<view class="user-header" v-if="userInfo" @click="toLogin">
-			<view class="avatar-btn">
-				<image :src="userInfo?userInfo.avatar:'https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png'"></image>
-			</view>
-			<view class="user-info">
-				<view class="name">{{userInfo.nickname?userInfo.nickname:'请先登录'}}</view>
-			</view>
+		<view class="user-header" v-if="userInfo" @click="toLogin">
+			<view class="avatar-btn">
+				<image :src="userInfo?userInfo.avatar:'https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png'"></image>
+			</view>
+			<view class="user-info">
+				<view class="name">{{userInfo.nickname?userInfo.nickname:'请先登录'}}</view>
+			</view>
 		</view>
-		<view class="user-header" v-else>
-			<view class="avatar-btn">
-				<image src="https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png"></image>
-			</view>
-			<view class="user-info">
-				<view class="name" @click="toLogin">请先登录</view>
-			</view>
-		</view>
-		<view class="user-menu">
-			<!-- <view class="menu-item">
-				<view class="icon"><image src="/static/image/info.png"></image></view>
-				<view class="name">个人信息</view>
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</view> -->
-			<navigator hover-class="none" url="/pages/user/address?type=1" class="menu-item">
-				<view class="icon"><image src="/static/image/address.png"></image></view>
-				<view class="name">会员地址</view>
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</navigator>
-			<!-- <view class="menu-item" @click="showService()">
-				<view class="icon"><image src="/static/image/service.png"></image></view>
-				<view class="name">客服</view>
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</view> -->
-			<navigator hover-class="none" class="menu-item" url="/pages/user/license">
-				<view class="icon"><image src="/static/image/zizhi.png"></image></view>
-				<view class="name">服务资质</view>
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</navigator>
-			<view class="menu-item" @click="outLogin">
-				<view class="icon"><image src="/static/image/out.png"></image></view>
-				<view class="name">退出</view>
-				<view class="right"><image src="/static/image/right.png"></image></view>
-			</view>
+		<view class="user-header" v-else>
+			<view class="avatar-btn">
+				<image src="https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png"></image>
+			</view>
+			<view class="user-info">
+				<view class="name" @click="toLogin">请先登录</view>
+			</view>
+		</view>
+		<view class="user-menu">
+			<!-- <view class="menu-item">
+				<view class="icon"><image src="/static/image/info.png"></image></view>
+				<view class="name">个人信息</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</view> -->
+			<navigator hover-class="none" url="/pages/user/address?type=1" class="menu-item">
+				<view class="icon"><image src="/static/image/address.png"></image></view>
+				<view class="name">会员地址</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</navigator>
+			<!-- <view class="menu-item" @click="showService()">
+				<view class="icon"><image src="/static/image/service.png"></image></view>
+				<view class="name">客服</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</view> -->
+			<navigator hover-class="none" class="menu-item" url="/pages/user/license">
+				<view class="icon"><image src="/static/image/zizhi.png"></image></view>
+				<view class="name">服务资质</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</navigator>
+			<view class="menu-item" @click="outLogin">
+				<view class="icon"><image src="/static/image/out.png"></image></view>
+				<view class="name">退出</view>
+				<view class="right"><image src="/static/image/right.png"></image></view>
+			</view>
 		</view>
 	</view>
 </template>
 
-<script>
-var app;
+<script>
+var app;
 import * as Api from "@/static/api/user.js";
 export default {
 	data() {
 		return {
 			userInfo:null
 		}
-	},
+	},
 	onShow() {
-		this.getData()
-	},
-	onLoad() {
+		this.getData()
+	},
+	onLoad() {
 		app = this;
-		app.getData()
+		app.getData()
 	},
-	methods: {
-		toLogin(){
-			uni.getUserProfile({
-				success(res) {
-					var userInfo = res.userInfo;
-					Api.save({"nickName":userInfo.nickName,"avatarUrl":userInfo.avatarUrl}).then((res)=>{
-						if (res.code == 0) {
-							return app.$dialog.showSuccess("登录失败")
-						}
-						app.userInfo = res.data;
-					})
-				},
-				fail() {
-					app.$dialog.showSuccess("登录失败")
-				}
-			})
+	methods: {
+		toLogin(){
+			uni.getUserProfile({
+				success(res) {
+					var userInfo = res.userInfo;
+					Api.save({"nickName":userInfo.nickName,"avatarUrl":userInfo.avatarUrl}).then((res)=>{
+						if (res.code == 0) {
+							return app.$dialog.showSuccess("登录失败")
+						}
+						app.userInfo = res.data;
+					})
+				},
+				fail() {
+					app.$dialog.showSuccess("登录失败")
+				}
+			})
 		},
 		getData(){
 			Api.info({}).then((res)=>{
@@ -86,56 +86,56 @@ export default {
 				}
 				app.userInfo = res.data;
 			})
-		},
-		outLogin(order){
-			app.$dialog.showError("确定要退出登录吗",function(res){
-				if (res.confirm) {
-					Api.save({"nickName":"","avatarUrl":""}).then((res)=>{
-						if (res.code == 0) {
-							return app.$dialog.showSuccess("登录失败")
-						}
-						app.userInfo = null;
-						uni.clearStorageSync();
-						uni.switchTab({
-							url:"/pages/index/index"
-						})
-					})
-				}
-			})
-		},
-		callMobile(mobile){
-			uni.makePhoneCall({
-				phoneNumber:mobile,
-				success(res) {
-					console.log(res)
-				},fail(res) {
-					console.log(res)
-				}
-			})
-		},
-		showService(){
-			
+		},
+		outLogin(order){
+			app.$dialog.showError("确定要退出登录吗",function(res){
+				if (res.confirm) {
+					Api.save({"nickName":"","avatarUrl":""}).then((res)=>{
+						if (res.code == 0) {
+							return app.$dialog.showSuccess("登录失败")
+						}
+						app.userInfo = null;
+						uni.clearStorageSync();
+						uni.switchTab({
+							url:"/pages/index/index"
+						})
+					})
+				}
+			})
+		},
+		callMobile(mobile){
+			uni.makePhoneCall({
+				phoneNumber:mobile,
+				success(res) {
+					console.log(res)
+				},fail(res) {
+					console.log(res)
+				}
+			})
+		},
+		showService(){
+			
 		}
 	}
 }
 </script>
 
-<style>
+<style>
 page{background-color: #f8f8f8;}
-.user-header{background-color: #005bac;padding: 40upx;display: flex;align-items: center;background: linear-gradient(to right, #094d89, #007aff);width: calc(95% - 80upx);margin: 40upx auto;border-radius: 10upx;}
-.user-header image{width: 100upx;height: 100upx;border-radius: 100upx;}
-.user-header .user-info{margin-left: 20upx;}
-.user-header .name{font-size: 32upx;color: #fff;}
-.user-header .desc{font-size: 24upx;color: #f8f8f8;margin-top: 20upx;}
-.user-menu{width: 95%;margin: 40upx auto;border-radius: 10upx;background-color: #fff;}
-.user-menu .menu-item{height: 100upx;line-height: 100upx;display: flex;align-items: center;font-size: 28upx;color: #333;padding: 0 20upx;border-bottom: 2upx solid #f8f8f8;}
-.user-menu .menu-item .icon{margin-right: 20upx;display: flex;align-items: center;justify-content: center;}
-.user-menu .menu-item .right{margin-right: 0;margin-left: auto;}
-.user-menu .menu-item .icon image{width: 40upx;height: 40upx;}
-.user-menu .menu-item .right image{width: 40upx;height: 40upx;}
-
-.service-popup .item{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-bottom: 2upx solid #f8f8f8;}
-.service-popup .item .btn{background-color: #fff;border: 0;height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;}
-.service-popup .item .btn::after{border: 0;}
+.user-header{background-color: #fe2c56;padding: 40upx;display: flex;align-items: center;background: linear-gradient(to right, #094d89, #007aff);width: calc(95% - 80upx);margin: 40upx auto;border-radius: 10upx;}
+.user-header image{width: 100upx;height: 100upx;border-radius: 100upx;}
+.user-header .user-info{margin-left: 20upx;}
+.user-header .name{font-size: 32upx;color: #fff;}
+.user-header .desc{font-size: 24upx;color: #f8f8f8;margin-top: 20upx;}
+.user-menu{width: 95%;margin: 40upx auto;border-radius: 10upx;background-color: #fff;}
+.user-menu .menu-item{height: 100upx;line-height: 100upx;display: flex;align-items: center;font-size: 28upx;color: #333;padding: 0 20upx;border-bottom: 2upx solid #f8f8f8;}
+.user-menu .menu-item .icon{margin-right: 20upx;display: flex;align-items: center;justify-content: center;}
+.user-menu .menu-item .right{margin-right: 0;margin-left: auto;}
+.user-menu .menu-item .icon image{width: 40upx;height: 40upx;}
+.user-menu .menu-item .right image{width: 40upx;height: 40upx;}
+
+.service-popup .item{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-bottom: 2upx solid #f8f8f8;}
+.service-popup .item .btn{background-color: #fff;border: 0;height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;}
+.service-popup .item .btn::after{border: 0;}
 .service-popup .foot{height: 100upx;line-height: 100upx;text-align: center;font-size: 28upx;color: #333;border-top: 20upx solid #f8f8f8;}
 </style>

BIN
static/.DS_Store


BIN
static/image/.DS_Store


BIN
static/image/coupon-fill.png


BIN
static/image/order-fill.png


BIN
static/image/time.png


BIN
static/image/user-fill.png


+ 1 - 1
unpackage/dist/build/mp-toutiao/app.json

@@ -21,7 +21,7 @@
     "backgroundColor": "#ffffff",
     "borderStyle": "white",
     "color": "#666666",
-    "selectedColor": "#224d7a",
+    "selectedColor": "#fe2c56",
     "list": [
       {
         "iconPath": "/static/image/coupon.png",

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/common/vendor.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/index/index.js


+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/index/index.ttml

@@ -1 +1 @@
-<view class="content"><block tt:if="{{coupon.length==0}}"><view class="empty-data"><u-empty vue-id="8dda190e-1" mode="order" icon="/static/image/order_none.png" text="暂无抖音团购订单" bind:__l="__l"></u-empty></view></block><block tt:else><view class="coupon-list"><block tt:for="{{coupon}}" tt:for-item="item" tt:for-index="indx" tt:key="indx"><view class="coupon-item"><view class="header">{{"订单编号 "+item.order_id}}</view><view class="body"><view class="img"><image src="{{item.product_img}}"></image></view><view class="info"><view class="name">{{item.product_name}}</view><view class="desc">{{"x "+item.count+"张"}}</view><view class="desc">{{"有效期至"+item.end_at}}</view></view></view><view class="footer"><view class="state"></view><button class="btn" type="primary" data-event-opts="{{[['tap',[['toDetail',['$0'],[[['coupon','',indx,'order_id']]]]]]]}}" bindtap="__e">立即使用</button></view><view class="state-img"><image src="/static/image/no.png" mode="widthFix"></image></view></view></block></view></block></view>
+<view class="content"><block tt:if="{{coupon.length==0}}"><view class="empty-data"><u-empty vue-id="8dda190e-1" mode="order" icon="/static/image/order_none.png" text="暂无抖音团购订单" bind:__l="__l"></u-empty></view></block><block tt:else><view class="coupon-list"><block tt:for="{{coupon}}" tt:for-item="item" tt:for-index="indx" tt:key="indx"><view class="coupon-item"><view class="header">{{item.certificate_id}}</view><view class="body"><view class="info"><view class="name">{{item.product_name}}</view><view class="desc">{{"x "+item.count+"张"}}</view><view class="desc">{{"有效期至"+item.expire_at}}</view></view><view class="right"><block tt:if="{{item.status==1}}"><button class="btn" type="primary" data-event-opts="{{[['tap',[['toDetail',['$0'],[[['coupon','',indx,'certificate_id']]]]]]]}}" bindtap="__e">去使用</button></block></view></view><block tt:if="{{item.status==1}}"><view class="state-img"><image src="/static/image/order-dot.png" mode="widthFix"></image></view></block><block tt:if="{{item.status==4}}"><view class="state-img"><image src="/static/image/ex.png" mode="widthFix"></image></view></block></view></block><navigator class="tips" hover-class="none" url="/pages/user/license">小程序资质亮照</navigator></view></block></view>

+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/index/index.ttss

@@ -1 +1 @@
-page{background-color:#f8f8f8}.empty-data{height:100vh;display:flex;align-items:center;justify-content:center}.coupon-item{background-color:#fff;border-radius:10rpx;width:calc(95% - 40rpx);margin:20rpx auto;border:2rpx solid #fff;border-radius:10rpx;position:relative}.coupon-item .state-img{position:absolute;right:0;top:0}.coupon-item .state-img image{width:100rpx;height:100rpx}.coupon-item .header{padding:20rpx;font-size:28rpx;color:#333;line-height:48rpx;border-bottom:2rpx solid #f8f8f8}.coupon-item .footer{padding:20rpx;border-top:2rpx solid #f8f8f8;display:flex;justify-content:space-between}.coupon-item .footer .state{flex:1}.coupon-item .footer .btn{width:50%;font-size:28rpx}.coupon-item .body{display:flex;align-items:center;margin:20rpx 0}.coupon-item .img image{width:160rpx;height:160rpx}.coupon-item .info{margin-left:20rpx}.coupon-item .name{font-size:32rpx;color:#333;line-height:46rpx}.coupon-item .desc{color:#666;font-size:28rpx;line-height:48rpx}
+page{background-color:#f8f8f8}.kf-service{position:fixed;right:20rpx;bottom:20%;width:80rpx;height:80rpx;display:flex;align-items:center;justify-content:center}.kf-service image{width:60rpx;height:60rpx;vertical-align:middle}.empty-data{height:100vh;display:flex;align-items:center;justify-content:center}.tips{text-align:center;line-height:80rpx;color:#666;font-size:28rpx}.coupon-item{background-color:#fff;border-radius:10rpx;width:calc(95% - 40rpx);margin:20rpx auto;border:2rpx solid #fff;border-radius:10rpx;position:relative}.coupon-item .state-img{position:absolute;right:0;top:0}.coupon-item .state-img image{width:100rpx;height:100rpx}.coupon-item .header{padding:20rpx;font-size:28rpx;color:#333;line-height:48rpx;border-bottom:2rpx solid #f8f8f8}.coupon-item .footer{padding:20rpx;border-top:2rpx solid #f8f8f8;display:flex;justify-content:space-between}.coupon-item .footer .state{flex:1}.coupon-item .footer .btn{width:50%;font-size:28rpx}.coupon-item .body{display:flex;align-items:center;margin:20rpx 0;justify-content:space-between}.coupon-item .img image{width:160rpx;height:160rpx}.coupon-item .info{padding:0 20rpx}.coupon-item .btn{font-size:28rpx;margin-right:20rpx}.coupon-item .name{font-size:32rpx;color:#333;line-height:46rpx}.coupon-item .desc{color:#666;font-size:28rpx;line-height:48rpx}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/confirm.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/confirm.ttml


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/confirm.ttss


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/detail.js


+ 2 - 1
unpackage/dist/build/mp-toutiao/pages/order/detail.json

@@ -1,6 +1,7 @@
 {
   "navigationBarTitleText": "团购券",
   "usingComponents": {
-    "u-skeleton": "/uni_modules/uview-ui/components/u-skeleton/u-skeleton"
+    "u-skeleton": "/uni_modules/uview-ui/components/u-skeleton/u-skeleton",
+    "pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
   }
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
unpackage/dist/build/mp-toutiao/pages/order/detail.ttml


+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/order/detail.ttss

@@ -1 +1 @@
-page{background-color:#f8f8f8}.dialog-msg .mark{position:fixed;top:0;left:0;right:0;bottom:0;z-index:90;background-color:rgba(0,0,0,.3)}.dialog-msg .msg-body{position:fixed;background-color:#fff;z-index:99;left:5%;right:5%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-radius:10rpx;padding:40rpx}.dialog-msg .msg-body .title{text-align:center;line-height:48rpx;color:#333;font-weight:700;margin-bottom:20rpx;position:relative;padding:20rpx 0}.dialog-msg .msg-body .title image{width:60rpx;height:60rpx;position:absolute;top:0;right:0}.dialog-msg .msg-body .desc{line-height:48rpx;color:#666;font-weight:700;font-size:26rpx}.coupon-item{background-color:#fff;border-radius:10rpx;width:calc(100% - 40rpx);margin:20rpx auto;border:2rpx solid #fff;border-radius:10rpx;position:relative}.coupon-item .state-img{position:absolute;right:0;top:0}.coupon-item .state-img image{width:100rpx;height:100rpx}.coupon-item .header{padding:20rpx;font-size:28rpx;color:#333;line-height:48rpx;border-bottom:2rpx solid #f8f8f8}.coupon-item .footer{padding:20rpx;border-top:2rpx solid #f8f8f8;display:flex;justify-content:space-between}.coupon-item .footer .state{flex:1}.coupon-item .footer .btn{width:50%;font-size:28rpx}.coupon-item .body{display:flex;align-items:center;margin:20rpx 0}.coupon-item .img image{width:160rpx;height:160rpx}.coupon-item .info{margin-left:20rpx}.coupon-item .name{font-size:32rpx;color:#333;line-height:46rpx}.coupon-item .desc{color:#666;font-size:28rpx;line-height:48rpx}.tips{text-align:center;line-height:80rpx;color:#666;font-size:28rpx}
+page{background-color:#f8f8f8}.kf-service{position:fixed;right:20rpx;bottom:20%;background-color:#fff;width:80rpx;height:80rpx;border-radius:80rpx;display:flex;align-items:center;justify-content:center}.kf-service image{width:60rpx;height:60rpx;vertical-align:middle}.dialog-msg .mark{position:fixed;top:0;left:0;right:0;bottom:0;z-index:90;background-color:rgba(0,0,0,.3)}.dialog-msg .msg-body{position:fixed;background-color:#fff;z-index:99;left:5%;right:5%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-radius:10rpx;padding:40rpx}.dialog-msg .msg-body .title{text-align:center;line-height:48rpx;color:#333;font-weight:700;margin-bottom:20rpx;position:relative;padding:20rpx 0}.dialog-msg .msg-body .title image{width:60rpx;height:60rpx;position:absolute;top:0;right:0}.dialog-msg .msg-body .desc{line-height:48rpx;color:#666;font-weight:700;font-size:26rpx}.coupon-item{background-color:#fff;border-radius:10rpx;width:calc(100% - 40rpx);margin:20rpx auto;border:2rpx solid #fff;border-radius:10rpx;position:relative}.coupon-item .state-img{position:absolute;right:0;top:0}.coupon-item .state-img image{width:100rpx;height:100rpx}.coupon-item .header{padding:20rpx;font-size:28rpx;color:#333;line-height:48rpx;border-bottom:2rpx solid #f8f8f8}.coupon-item .footer{padding:20rpx;border-top:2rpx solid #f8f8f8;display:flex;justify-content:space-between}.coupon-item .footer .state{flex:1}.coupon-item .footer .btn{width:50%;font-size:28rpx}.coupon-item .body{display:flex;align-items:center;margin:20rpx 0;justify-content:space-between}.coupon-item .img image{width:160rpx;height:160rpx}.coupon-item .info{padding:0 20rpx}.coupon-item .btn{font-size:28rpx;margin-right:20rpx}.coupon-item .name{font-size:32rpx;color:#333;line-height:46rpx}.coupon-item .desc{color:#666;font-size:28rpx;line-height:48rpx}.tips{text-align:center;line-height:80rpx;color:#666;font-size:28rpx}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/info.js


+ 3 - 1
unpackage/dist/build/mp-toutiao/pages/order/info.json

@@ -1,4 +1,6 @@
 {
   "navigationBarTitleText": "预约详情",
-  "usingComponents": {}
+  "usingComponents": {
+    "pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
+  }
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/info.ttml


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/info.ttss


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/order.js


+ 2 - 1
unpackage/dist/build/mp-toutiao/pages/order/order.json

@@ -1,6 +1,7 @@
 {
   "navigationBarTitleText": "订单",
   "usingComponents": {
-    "z-paging": "/uni_modules/z-paging/components/z-paging/z-paging"
+    "z-paging": "/uni_modules/z-paging/components/z-paging/z-paging",
+    "pay-button-sdk": "tta5a3d31e3aecfb9b11://pay-button"
   }
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/order.ttml


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/order.ttss


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/order/store.js


+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/order/store.ttss

@@ -1 +1 @@
-.search{padding:20rpx;display:flex;align-items:center;background-color:#fff;width:calc(95% - 60rpx);margin:20rpx auto;border-radius:60rpx}.search image{width:50rpx;height:46rpx}.search .search-input{border-radius:30rpx;font-size:28rpx;height:60rpx;margin-left:20rpx}.store-item{background-color:#fff;width:calc(95% - 40rpx);padding:20rpx;border-radius:20rpx;display:flex;align-items:center;justify-content:space-between;margin:20rpx auto;position:relative}.store-item.active{border:2rpx solid #224d7a}.store-item .check{display:none;position:absolute;top:0;right:0;background-color:#224d7a;width:40rpx;height:40rpx;border-radius:0 20rpx 0 20rpx}.store-item .check image{width:30rpx;height:30rpx;display:flex;align-items:center;justify-content:center;padding:5rpx}.store-item.active .check{display:block}.store-item .item-left{flex:1}.store-item .name{font-size:32rpx;color:#333;line-height:48rpx;font-weight:700}.store-item .desc{font-size:24rpx;color:#666;line-height:36rpx;margin-top:10rpx}.store-item .item-right{text-align:center}.store-item .item-right .footer{font-size:24rpx;color:#666}.store-item .item-right .top{display:flex;align-items:center;gap:20rpx;margin-bottom:20rpx}.store-item .item-right .top .icon-img{width:60rpx;height:60rpx;background-color:#f8f8f8;border-radius:60rpx;display:flex;align-items:center;justify-content:center}.store-item .item-right .top .icon-img image{width:40rpx;height:40rpx}.flx-footer{position:fixed;bottom:0;background-color:#fff;padding:20rpx;border-top:2rpx solid #f8f8f8;left:0;right:0}.flx-footer .footer-safe{height:env(safe-area-inset-bottom);width:100%}.flx-footer .btn{font-size:28rpx;height:80rpx;border-radius:10rpx;line-height:80rpx;text-align:center;width:100%;color:#333;background-color:#224d7a;color:#fff;border:2rpx solid #224d7a}.flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color:rgba(34,77,122,.3)}
+.search{padding:20rpx;display:flex;align-items:center;background-color:#fff;width:calc(95% - 60rpx);margin:20rpx auto;border-radius:60rpx}.search image{width:50rpx;height:46rpx}.search .search-input{border-radius:30rpx;font-size:28rpx;height:60rpx;margin-left:20rpx}.store-item{background-color:#fff;width:calc(95% - 40rpx);padding:20rpx;border-radius:20rpx;display:flex;align-items:center;justify-content:space-between;margin:20rpx auto;position:relative}.store-item.active{border:2rpx solid #fe2c56}.store-item .check{display:none;position:absolute;top:0;right:0;background-color:#fe2c56;width:40rpx;height:40rpx;border-radius:0 20rpx 0 20rpx}.store-item .check image{width:30rpx;height:30rpx;display:flex;align-items:center;justify-content:center;padding:5rpx}.store-item.active .check{display:block}.store-item .item-left{flex:1}.store-item .name{font-size:32rpx;color:#333;line-height:48rpx;font-weight:700}.store-item .desc{font-size:24rpx;color:#666;line-height:36rpx;margin-top:10rpx}.store-item .item-right{text-align:center;margin-left:20rpx;border-left:2rpx solid #f8f8f8;padding-left:20rpx}.store-item .item-right .footer{font-size:24rpx;color:#666}.store-item .item-right .top{display:flex;align-items:center;gap:20rpx;margin-bottom:20rpx}.store-item .item-right .top .icon-img{width:60rpx;height:60rpx;background-color:#f8f8f8;border-radius:60rpx;display:flex;align-items:center;justify-content:center}.store-item .item-right .top .icon-img image{width:40rpx;height:40rpx}.flx-footer{position:fixed;bottom:0;background-color:#fff;padding:20rpx;border-top:2rpx solid #f8f8f8;left:0;right:0}.flx-footer .footer-safe{height:env(safe-area-inset-bottom);width:100%}.flx-footer .btn{font-size:28rpx;height:80rpx;border-radius:10rpx;line-height:80rpx;text-align:center;width:100%;color:#333;background-color:#fe2c56;color:#fff;border:2rpx solid #fe2c56}.flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color:rgba(34,77,122,.3)}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/user/address.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/user/address.ttml


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/user/address.ttss


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/user/license.js


+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/user/license.ttss

@@ -1 +1 @@
-page{background-color:#f8f8f8}.info-item{background-color:#fff;padding:20rpx;margin-bottom:20rpx}.info-item .title{font-size:30rpx;color:#333;font-weight:700;line-height:80rpx;border-bottom:2rpx solid #f8f8f8}.info-item .info{font-size:28rpx;color:#666;line-height:60rpx}.info-item .info text{color:red}.info-item image{width:100%}
+page{background-color:#f8f8f8}.info-item{background-color:#fff;padding:20rpx;margin-bottom:20rpx}.info-item .title{font-size:30rpx;color:#333;font-weight:700;line-height:80rpx;border-bottom:2rpx solid #f8f8f8}.info-item .info{font-size:28rpx;color:#666;line-height:60rpx}.info-item .info text{color:#fe2c56}.info-item image{width:100%}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/build/mp-toutiao/pages/user/user.js


+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/user/user.ttml

@@ -1 +1 @@
-<view><block tt:if="{{userInfo}}"><view class="user-header"><view class="avatar-btn"><image src="{{userInfo?userInfo.avatar:'https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png'}}"></image></view><view class="user-info"><view class="name">{{userInfo.nickname}}</view></view></view></block><block tt:else><view class="user-header"><view class="avatar-btn"><image src="https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png"></image></view><view class="user-info"><view data-event-opts="{{[['tap',[['toLogin',['$event']]]]]}}" class="name" bindtap="__e">请先登录</view></view></view></block><view class="user-menu"><navigator class="menu-item" hover-class="none" url="/pages/user/address?type=1"><view class="icon"><image src="/static/image/address.png"></image></view><view class="name">会员地址</view><view class="right"><image src="/static/image/right.png"></image></view></navigator><navigator class="menu-item" hover-class="none" url="/pages/user/license"><view class="icon"><image src="/static/image/zizhi.png"></image></view><view class="name">服务资质</view><view class="right"><image src="/static/image/right.png"></image></view></navigator><view data-event-opts="{{[['tap',[['outLogin',['$event']]]]]}}" class="menu-item" bindtap="__e"><view class="icon"><image src="/static/image/out.png"></image></view><view class="name">退出</view><view class="right"><image src="/static/image/right.png"></image></view></view></view></view>
+<view><block tt:if="{{userInfo}}"><view data-event-opts="{{[['tap',[['toLogin',['$event']]]]]}}" class="user-header" bindtap="__e"><view class="avatar-btn"><image src="{{userInfo?userInfo.avatar:'https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png'}}"></image></view><view class="user-info"><view class="name">{{userInfo.nickname?userInfo.nickname:'请先登录'}}</view></view></view></block><block tt:else><view class="user-header"><view class="avatar-btn"><image src="https://inmei-print.oss-cn-guangzhou.aliyuncs.com/logo.png"></image></view><view class="user-info"><view data-event-opts="{{[['tap',[['toLogin',['$event']]]]]}}" class="name" bindtap="__e">请先登录</view></view></view></block><view class="user-menu"><navigator class="menu-item" hover-class="none" url="/pages/user/address?type=1"><view class="icon"><image src="/static/image/address.png"></image></view><view class="name">会员地址</view><view class="right"><image src="/static/image/right.png"></image></view></navigator><navigator class="menu-item" hover-class="none" url="/pages/user/license"><view class="icon"><image src="/static/image/zizhi.png"></image></view><view class="name">服务资质</view><view class="right"><image src="/static/image/right.png"></image></view></navigator><view data-event-opts="{{[['tap',[['outLogin',['$event']]]]]}}" class="menu-item" bindtap="__e"><view class="icon"><image src="/static/image/out.png"></image></view><view class="name">退出</view><view class="right"><image src="/static/image/right.png"></image></view></view></view></view>

+ 1 - 1
unpackage/dist/build/mp-toutiao/pages/user/user.ttss

@@ -1 +1 @@
-page{background-color:#f8f8f8}.user-header{background-color:#005bac;padding:40rpx;display:flex;align-items:center;background:linear-gradient(90deg,#094d89,#007aff);width:calc(95% - 80rpx);margin:40rpx auto;border-radius:10rpx}.user-header image{width:100rpx;height:100rpx;border-radius:100rpx}.user-header .user-info{margin-left:20rpx}.user-header .name{font-size:32rpx;color:#fff}.user-header .desc{font-size:24rpx;color:#f8f8f8;margin-top:20rpx}.user-menu{width:95%;margin:40rpx auto;border-radius:10rpx;background-color:#fff}.user-menu .menu-item{height:100rpx;line-height:100rpx;display:flex;align-items:center;font-size:28rpx;color:#333;padding:0 20rpx;border-bottom:2rpx solid #f8f8f8}.user-menu .menu-item .icon{margin-right:20rpx;display:flex;align-items:center;justify-content:center}.user-menu .menu-item .right{margin-right:0;margin-left:auto}.user-menu .menu-item .icon image{width:40rpx;height:40rpx}.user-menu .menu-item .right image{width:40rpx;height:40rpx}.service-popup .item{height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333;border-bottom:2rpx solid #f8f8f8}.service-popup .item .btn{background-color:#fff;border:0;height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333}.service-popup .item .btn::after{border:0}.service-popup .foot{height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333;border-top:20rpx solid #f8f8f8}
+page{background-color:#f8f8f8}.user-header{background-color:#fe2c56;padding:40rpx;display:flex;align-items:center;background:linear-gradient(90deg,#094d89,#007aff);width:calc(95% - 80rpx);margin:40rpx auto;border-radius:10rpx}.user-header image{width:100rpx;height:100rpx;border-radius:100rpx}.user-header .user-info{margin-left:20rpx}.user-header .name{font-size:32rpx;color:#fff}.user-header .desc{font-size:24rpx;color:#f8f8f8;margin-top:20rpx}.user-menu{width:95%;margin:40rpx auto;border-radius:10rpx;background-color:#fff}.user-menu .menu-item{height:100rpx;line-height:100rpx;display:flex;align-items:center;font-size:28rpx;color:#333;padding:0 20rpx;border-bottom:2rpx solid #f8f8f8}.user-menu .menu-item .icon{margin-right:20rpx;display:flex;align-items:center;justify-content:center}.user-menu .menu-item .right{margin-right:0;margin-left:auto}.user-menu .menu-item .icon image{width:40rpx;height:40rpx}.user-menu .menu-item .right image{width:40rpx;height:40rpx}.service-popup .item{height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333;border-bottom:2rpx solid #f8f8f8}.service-popup .item .btn{background-color:#fff;border:0;height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333}.service-popup .item .btn::after{border:0}.service-popup .foot{height:100rpx;line-height:100rpx;text-align:center;font-size:28rpx;color:#333;border-top:20rpx solid #f8f8f8}

BIN
unpackage/dist/build/mp-toutiao/static/.DS_Store


+ 5 - 0
unpackage/dist/build/mp-toutiao/static/api/home.js

@@ -3,9 +3,14 @@ import request from '@/static/js/request.js'
 const apiUri = {
 	data: '/home/login',
 	detail: '/order/life',
+	orderDetail: '/order/life/detail',
 	license: '/home/license'
 }
 
+export function orderDetail(param) {
+	return request.request(apiUri.orderDetail,'GET', param,false,true,false)
+}
+
 export function data(param) {
 	return request.request(apiUri.data,'POST', param,false,true,false)
 }

+ 6 - 1
unpackage/dist/build/mp-toutiao/static/api/order.js

@@ -6,11 +6,16 @@ const apiUri = {
 	submit: '/confirm/submit',
 	order: '/order/data',
 	orderDetail: '/order/detail',
-	cancel: '/order/cancel',
+	cancel: '/order/cancel',
+	del: '/order/del',
 }
 
 export function cancel(param) {
 	return request.request(apiUri.cancel,'POST', param,false,true,false)
+}
+
+export function del(param) {
+	return request.request(apiUri.del,'POST', param,false,true,false)
 }
 
 export function store(param) {

+ 5 - 1
unpackage/dist/build/mp-toutiao/static/api/user.js

@@ -2,13 +2,17 @@ import request from '@/static/js/request.js'
 
 const apiUri = {
 	info: '/user/info',
-	order: '/order/data'
+	save: '/user/save'
 }
 
 export function info(param) {
 	return request.request(apiUri.info,'GET', param,false,true,false)
 }
 
+export function save(param) {
+	return request.request(apiUri.save,'POST', param,false,true,false)
+}
+
 export function order(param) {
 	return request.request(apiUri.order,'GET', param,false,true,false)
 }

BIN
unpackage/dist/build/mp-toutiao/static/image/.DS_Store


BIN
unpackage/dist/build/mp-toutiao/static/image/coupon-fill.png


BIN
unpackage/dist/build/mp-toutiao/static/image/end.png


BIN
unpackage/dist/build/mp-toutiao/static/image/ex.png


BIN
unpackage/dist/build/mp-toutiao/static/image/fwz.png


BIN
unpackage/dist/build/mp-toutiao/static/image/kefu.png


BIN
unpackage/dist/build/mp-toutiao/static/image/order-dot.png


BIN
unpackage/dist/build/mp-toutiao/static/image/order-fill.png


BIN
unpackage/dist/build/mp-toutiao/static/image/refrsh.png


BIN
unpackage/dist/build/mp-toutiao/static/image/time.png


BIN
unpackage/dist/build/mp-toutiao/static/image/type_tag.png


BIN
unpackage/dist/build/mp-toutiao/static/image/user-fill.png


+ 2 - 2
unpackage/dist/build/mp-toutiao/uni_modules/uview-ui/components/u-icon/u-icon.json

@@ -1,4 +1,4 @@
 {
-  "usingComponents": {},
-  "component": true
+  "component": true,
+  "usingComponents": {}
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/common/main.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/common/vendor.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/index/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/confirm.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/detail.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/info.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/order.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/order/store.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/address.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/license.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/pages/user/user.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-empty/u-empty.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-icon/u-icon.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/uview-ui/components/u-skeleton/u-skeleton.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-toutiao/uni_modules/z-paging/components/z-paging/z-paging.js.map


+ 1 - 1
unpackage/dist/dev/mp-toutiao/app.json

@@ -21,7 +21,7 @@
     "backgroundColor": "#ffffff",
     "borderStyle": "white",
     "color": "#666666",
-    "selectedColor": "#224d7a",
+    "selectedColor": "#fe2c56",
     "list": [
       {
         "iconPath": "/static/image/coupon.png",

+ 16 - 2
unpackage/dist/dev/mp-toutiao/common/vendor.js

@@ -19756,12 +19756,17 @@ Object.defineProperty(exports, "__esModule", {
 exports.data = data;
 exports.detail = detail;
 exports.license = license;
+exports.orderDetail = orderDetail;
 var _request = _interopRequireDefault(__webpack_require__(/*! @/static/js/request.js */ 166));
 var apiUri = {
   data: '/home/login',
   detail: '/order/life',
+  orderDetail: '/order/life/detail',
   license: '/home/license'
 };
+function orderDetail(param) {
+  return _request.default.request(apiUri.orderDetail, 'GET', param, false, true, false);
+}
 function data(param) {
   return _request.default.request(apiUri.data, 'POST', param, false, true, false);
 }
@@ -20011,6 +20016,7 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.cancel = cancel;
+exports.del = del;
 exports.detail = detail;
 exports.order = order;
 exports.orderDetail = orderDetail;
@@ -20023,11 +20029,15 @@ var apiUri = {
   submit: '/confirm/submit',
   order: '/order/data',
   orderDetail: '/order/detail',
-  cancel: '/order/cancel'
+  cancel: '/order/cancel',
+  del: '/order/del'
 };
 function cancel(param) {
   return _request.default.request(apiUri.cancel, 'POST', param, false, true, false);
 }
+function del(param) {
+  return _request.default.request(apiUri.del, 'POST', param, false, true, false);
+}
 function store(param) {
   return _request.default.request(apiUri.store, 'POST', param, false, true, false);
 }
@@ -20070,14 +20080,18 @@ Object.defineProperty(exports, "__esModule", {
 exports.info = info;
 exports.license = license;
 exports.order = order;
+exports.save = save;
 var _request = _interopRequireDefault(__webpack_require__(/*! @/static/js/request.js */ 166));
 var apiUri = {
   info: '/user/info',
-  order: '/order/data'
+  save: '/user/save'
 };
 function info(param) {
   return _request.default.request(apiUri.info, 'GET', param, false, true, false);
 }
+function save(param) {
+  return _request.default.request(apiUri.save, 'POST', param, false, true, false);
+}
 function order(param) {
   return _request.default.request(apiUri.order, 'GET', param, false, true, false);
 }

+ 0 - 3
unpackage/dist/dev/mp-toutiao/package.json

@@ -1,3 +0,0 @@
-{
-    "industrySDK": true
-}

+ 53 - 30
unpackage/dist/dev/mp-toutiao/pages/index/index.js

@@ -1,5 +1,26 @@
 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/index/index"],{
 
+/***/ 159:
+/*!*******************************************************************************!*\
+  !*** /Users/z/D/hx-mini/hx-mini-uni/main.js?{"page":"pages%2Findex%2Findex"} ***!
+  \*******************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(wx, createPage) {
+
+var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 3);
+__webpack_require__(/*! uni-pages */ 25);
+var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 24));
+var _index = _interopRequireDefault(__webpack_require__(/*! ./pages/index/index.vue */ 160));
+// @ts-ignore
+wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;
+createPage(_index.default);
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-toutiao/dist/index.js */ 1)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-toutiao/dist/index.js */ 1)["createPage"]))
+
+/***/ }),
+
 /***/ 160:
 /*!************************************************************!*\
   !*** /Users/z/D/hx-mini/hx-mini-uni/pages/index/index.vue ***!
@@ -173,18 +194,29 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 //
 //
 //
+//
+//
+//
+//
+//
 
 var app;
 var _default = {
   data: function data() {
     return {
       user: {},
-      coupon: []
+      coupon: [],
+      account: "",
+      option: {}
     };
   },
-  onLoad: function onLoad() {
+  onShow: function onShow() {
+    this.getData();
+  },
+  onLoad: function onLoad(option) {
     app = this;
-    app.getData();
+    app.option = option;
+    // app.getData()
   },
   onShareAppMessage: function onShareAppMessage(res) {
     if (res.from === 'button') {
@@ -197,17 +229,29 @@ var _default = {
     };
   },
   methods: {
+    toService: function toService() {},
     toDetail: function toDetail(order) {
-      uni.navigateTo({
-        url: "/pages/order/store?type=1&order=" + order
+      Api.orderDetail({
+        "order": order
+      }).then(function (res) {
+        if (res.code == 0) {
+          return app.$dialog.showSuccess(res.msg);
+        }
+        if (res.data.status > 1) {
+          return app.$dialog.showSuccess("该订单已完成预约", "none", function () {
+            app.getData();
+          });
+        }
+        uni.navigateTo({
+          url: "/pages/order/store?type=1&order=" + order
+        });
       });
     },
     getData: function getData() {
       uni.login({
         success: function success(lres) {
-          Api.data({
-            "code": lres.code
-          }).then(function (res) {
+          app.option.auth = lres.code;
+          Api.data(app.option).then(function (res) {
             uni.hideLoading();
             if (res.code == 0) {
               return app.$dialog.showSuccess(res.msg);
@@ -257,28 +301,7 @@ __webpack_require__.r(__webpack_exports__);
     if(false) { var cssReload; }
   
 
-/***/ }),
-
-/***/ 325:
-/*!*******************************************************************************!*\
-  !*** /Users/z/D/hx-mini/hx-mini-uni/main.js?{"page":"pages%2Findex%2Findex"} ***!
-  \*******************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(wx, createPage) {
-
-var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 3);
-__webpack_require__(/*! uni-pages */ 25);
-var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 24));
-var _index = _interopRequireDefault(__webpack_require__(/*! ./pages/index/index.vue */ 160));
-// @ts-ignore
-wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;
-createPage(_index.default);
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-toutiao/dist/index.js */ 1)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-toutiao/dist/index.js */ 1)["createPage"]))
-
 /***/ })
 
-},[[325,"common/runtime","common/vendor"]]]);
+},[[159,"common/runtime","common/vendor"]]]);
 //# sourceMappingURL=../../../.sourcemap/mp-toutiao/pages/index/index.js.map

+ 1 - 1
unpackage/dist/dev/mp-toutiao/pages/index/index.ttml

@@ -1 +1 @@
-<view class="content"><block tt:if="{{coupon.length==0}}"><view class="empty-data"><u-empty vue-id="8dda190e-1" mode="order" icon="/static/image/order_none.png" text="暂无抖音团购订单" bind:__l="__l"></u-empty></view></block><block tt:else><view class="coupon-list"><block tt:for="{{coupon}}" tt:for-item="item" tt:for-index="indx" tt:key="indx"><view class="coupon-item"><view class="header">{{"订单编号 "+item.order_id}}</view><view class="body"><view class="img"><image src="{{item.product_img}}"></image></view><view class="info"><view class="name">{{item.product_name}}</view><view class="desc">{{"x "+item.count+"张"}}</view><view class="desc">{{"有效期至"+item.end_at}}</view></view></view><view class="footer"><view class="state"></view><button class="btn" type="primary" data-event-opts="{{[['tap',[['toDetail',['$0'],[[['coupon','',indx,'order_id']]]]]]]}}" bindtap="__e">立即使用</button></view><view class="state-img"><image src="/static/image/no.png" mode="widthFix"></image></view></view></block></view></block></view>
+<view class="content"><block tt:if="{{coupon.length==0}}"><view class="empty-data"><u-empty vue-id="8dda190e-1" mode="order" icon="/static/image/order_none.png" text="暂无抖音团购订单" bind:__l="__l"></u-empty></view></block><block tt:else><view class="coupon-list"><block tt:for="{{coupon}}" tt:for-item="item" tt:for-index="indx" tt:key="indx"><view class="coupon-item"><view class="header">{{item.certificate_id}}</view><view class="body"><view class="info"><view class="name">{{item.product_name}}</view><view class="desc">{{"x "+item.count+"张"}}</view><view class="desc">{{"有效期至"+item.expire_at}}</view></view><view class="right"><block tt:if="{{item.status==1}}"><button class="btn" type="primary" data-event-opts="{{[['tap',[['toDetail',['$0'],[[['coupon','',indx,'certificate_id']]]]]]]}}" bindtap="__e">去使用</button></block></view></view><block tt:if="{{item.status==1}}"><view class="state-img"><image src="/static/image/order-dot.png" mode="widthFix"></image></view></block><block tt:if="{{item.status==4}}"><view class="state-img"><image src="/static/image/ex.png" mode="widthFix"></image></view></block></view></block><navigator class="tips" hover-class="none" url="/pages/user/license">小程序资质亮照</navigator></view></block></view>

+ 19 - 2
unpackage/dist/dev/mp-toutiao/pages/index/index.ttss

@@ -2,12 +2,28 @@
 page{
 	background-color: #f8f8f8;
 }
+.kf-service{
+	position: fixed;
+	right: 20rpx;
+	bottom: 20%;
+	width: 80rpx;
+	height: 80rpx;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+}
+.kf-service image{
+	width: 60rpx;
+	height: 60rpx;
+	vertical-align: middle;
+}
 .empty-data{
 	height: 100vh;
 	display: flex;
 	align-items: center;
 	justify-content: center;
 }
+.tips{text-align: center;line-height: 80rpx;color: #666;font-size: 28rpx;}
 .coupon-item{background-color: #fff;border-radius: 10rpx;width: calc(95% - 40rpx);margin: 20rpx auto;border: 2rpx solid #fff;border-radius: 10rpx;position: relative;}
 .coupon-item .state-img{position: absolute;right: 0;top: 0;}
 .coupon-item .state-img image{width: 100rpx;height: 100rpx;}
@@ -15,9 +31,10 @@ page{
 .coupon-item .footer{padding: 20rpx;border-top: 2rpx solid #f8f8f8;display: flex;justify-content: space-between;}
 .coupon-item .footer .state{flex: 1;}
 .coupon-item .footer .btn{width: 50%;font-size: 28rpx;}
-.coupon-item .body{display: flex;align-items: center;margin: 20rpx 0;}
+.coupon-item .body{display: flex;align-items: center;margin: 20rpx 0;justify-content: space-between;}
 .coupon-item .img image{width: 160rpx;height: 160rpx;}
-.coupon-item .info{margin-left: 20rpx;}
+.coupon-item .info{padding: 0 20rpx;}
+.coupon-item .btn{font-size: 28rpx;margin-right: 20rpx;}
 .coupon-item .name{font-size: 32rpx;color: #333;line-height: 46rpx;}
 .coupon-item .desc{color: #666;font-size: 28rpx;line-height: 48rpx;}
 

+ 36 - 4
unpackage/dist/dev/mp-toutiao/pages/order/confirm.js

@@ -128,6 +128,14 @@ var render = function () {
   var _vm = this
   var _h = _vm.$createElement
   var _c = _vm._self._c || _h
+  if (!_vm._isMounted) {
+    _vm.e0 = function ($event) {
+      _vm.service_type = 2
+    }
+    _vm.e1 = function ($event) {
+      _vm.service_type = 1
+    }
+  }
 }
 var recyclableRender = false
 var staticRenderFns = []
@@ -283,6 +291,23 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 //
 //
 //
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
 
 var app;
 var _default = {
@@ -304,7 +329,8 @@ var _default = {
       addressInfo: null,
       msg: "",
       totalData: [],
-      goodsSku: []
+      goodsSku: [],
+      service_type: 2
     };
   },
   onLoad: function onLoad(_ref) {
@@ -320,16 +346,22 @@ var _default = {
     app.getOrder();
   },
   methods: {
+    viewImg: function viewImg(img) {
+      uni.previewImage({
+        urls: [img]
+      });
+    },
     submitOrder: function submitOrder() {
       var formData = {};
       formData.order = app.order;
       formData.poi_id = app.poi_id;
-      if (app.storeInfo.service_type == 2 && app.addressInfo == null) {
-        return app.$dialog.showSuccess("请选择会员地址");
+      if (app.service_type == 2 && app.addressInfo == null) {
+        return app.$dialog.showSuccess("请先完善会员信息");
       }
-      if (app.storeInfo.service_type == 1 && app.timeStr == null) {
+      if (app.service_type == 1 && app.timeStr == null) {
         return app.$dialog.showSuccess("请选择预约时间");
       }
+      formData.service_type = app.service_type;
       var skuInfo = "",
         skuState = true;
       if (app.goodsSku.length > 0) {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/mp-toutiao/pages/order/confirm.ttml


+ 53 - 25
unpackage/dist/dev/mp-toutiao/pages/order/confirm.ttss

@@ -1,7 +1,23 @@
 
-.addressInfo{border-top: 16rpx solid #224d7a;}
+page{background-color: #f2f2f2;}
+.empty-address{text-align: center;box-shadow: 8px 8px 20px 0 rgba(55, 99, 170, .1);background-color: #fff;width: calc(95% - 40rpx);margin: 20rpx auto;padding: 20rpx;border-radius: 20rpx;}
+.empty-address .name{font-size: 36rpx;font-weight: bold;color: #333;}
+.empty-address .desc{font-size: 26rpx;color: #666;margin: 20rpx 0;}
+.empty-address .btn-group{text-align: center;display: flex;align-items: center;justify-content: center;}
+.empty-address .btn-group .btn{font-size: 28rpx;color: #fff;background-color: #fe2c56;width: 50%;}
+.order-content{overflow: auto;}
+.line{height: 200rpx;width: 100%;}
+.order-type{height: 80rpx;display: flex;align-items: center;line-height: 80rpx;background-color: #fff;gap: 20rpx;border-bottom: 2rpx solid #f8f8f8;}
+.order-type .type-item{text-align: center;width: 50%;font-size: 32rpx;color: #333;position: relative;border-left: 2rpx solid #f8f8f8;}
+.order-type .type-item.active{color: #fe2c56;font-weight: bold;}
+.order-type .type-item.active::after{content: "";position: absolute;left: 40%;width: 20%;bottom: -5rpx;height: 10rpx;background-color: #fe2c56;}
+.addressInfo{}
 .addressInfo .empty-data{display: flex;align-items: center;font-size: 28rpx;width: 100%;}
-.addressInfo .empty-data .contact-name{display: flex;align-items: center;font-size: 30rpx;color: #333;margin-bottom: 20rpx;}
+.addressInfo .empty-data .icon{margin-right: 20rpx;}
+.addressInfo .empty-data .icon image{width: 40rpx;height: 40rpx;}
+.addressInfo .empty-data .region{color: #666;font-size: 28rpx;}
+.addressInfo .empty-data .address{color: #333;font-size: 32rpx;margin: 10rpx 0;}
+.addressInfo .empty-data .contact-name{display: flex;align-items: center;font-size: 28rpx;color: #666;margin-bottom: 20rpx;}
 .addressInfo .empty-data .contact-name .mobile{margin-left: 20rpx;}
 .addressInfo .empty-data .desc{font-size: 26rpx;color: #666;}
 .addressInfo .empty-data .left image{width: 40rpx;height: 40rpx;margin-right: 20rpx;vertical-align: middle;}
@@ -10,55 +26,61 @@
 .time-body{height: 30vh;display: flex;align-items: center;}
 .time-body .time-left{width: 30%;background-color: #F5FAFD;height: 100%;overflow-y: auto;}
 .time-body .time-left .time-left-item{padding: 10rpx;text-align: center;}
-.time-body .time-left .time-left-item.active{background-color: #fff;color: #224d7a;}
-.time-body .time-left .time-left-item.active .name{color: #224d7a;}
-.time-body .time-left .time-left-item.active .desc{color: #224d7a;}
+.time-body .time-left .time-left-item.active{background-color: #fff;color: #fe2c56;}
+.time-body .time-left .time-left-item.active .name{color: #fe2c56;}
+.time-body .time-left .time-left-item.active .desc{color: #fe2c56;}
 .time-body .time-left .time-left-item .name{font-size: 28rpx;color: #333;}
 .time-body .time-left .time-left-item .desc{font-size: 24rpx;color: #666;}
 .time-body .time-right{width: calc(70% - 80rpx);padding:0 40rpx;background-color: #fff;height: 100%;overflow-y: auto;}
 .time-body .time-right .time-right-item{background-color: #F6FAFD;border: 2rpx solid #ccc;height: 66rpx;line-height: 66rpx;text-align: center;font-size: 28rpx;color: #333;margin-top: 20rpx;border-radius: 10rpx;}
-.time-body .time-right .time-right-item.active{color: #224d7a;border: 2rpx solid #224d7a;}
+.time-body .time-right .time-right-item.active{color: #fe2c56;border: 2rpx solid #fe2c56;}
 .time-select .title{height: 100rpx;line-height: 100rpx;display: flex;align-items: center;justify-content: space-between;font-size: 28rpx;padding: 0 20rpx;font-weight: bold;}
 .time-select image{width: 40rpx;height: 40rpx;vertical-align: middle;}
 .time-btn{padding: 20rpx;}
-.location,.order-time{background-color: #fff;border-radius: 20rpx;padding: 20rpx;width: calc(95% - 40rpx);margin: 20rpx auto;display: flex;align-items: center;justify-content: space-between;}
+.location{background-color: #fff;padding: 20rpx;width: calc(95% - 40rpx);margin: 20rpx auto;display: flex;align-items: center;justify-content: space-between;border-radius: 20rpx;}
 .location .right image{width: 40rpx;height: 40rpx;vertical-align: middle;}
 .location .name{font-size: 32rpx;color: #333;font-weight: bold;margin-bottom: 20rpx;}
 .location .desc{color: #666;font-size: 28rpx;display: flex;align-items: center;}
 .location .desc image{width: 40rpx;height: 40rpx;margin-right: 20rpx;}
-.goods,.order-msg,.addressInfo{background-color: #fff;border-radius: 20rpx;padding: 20rpx;width: calc(95% - 40rpx);margin: 20rpx auto;}
-.goods .goods-info{display: flex;align-items: center;}
+.goods,.order-msg,.addressInfo{background-color: #fff;padding: 20rpx;width: calc(95% - 40rpx);margin: 20rpx auto;border-radius: 20rpx;}
+.goods .goods-info{display: flex;align-items: center;position: relative;}
+.goods .goods-info .price{color: #fe2c56;font-size: 32rpx;font-weight: bold;position: absolute;bottom: 20rpx;right: 20rpx;}
 .goods .goods-info .info{flex: 1;margin-left: 20rpx;}
-.goods .goods-info .image image{width: 160rpx;height: 160rpx;}
-.goods .goods-info .name{font-size: 32rpx;color: #333;line-height: 46rpx;font-weight: bold;margin-bottom: 20rpx;}
+.goods .goods-info .image image{width: 160rpx;height: 160rpx;border-radius: 10rpx;}
+.goods .goods-info .name{font-size: 32rpx;color: #333;line-height: 46rpx;margin-bottom: 15rpx;}
 .goods .goods-info .desc{color: #666;font-size: 28rpx;line-height: 48rpx;}
-.goods .goods-item{display: flex;align-items: center;border-top: 2rpx solid #f8f8f8;line-height: 80rpx;justify-content: space-between;font-size: 28rpx;color: #333;}
-.goods .goods-item .right.red{color: #f00;}
-.order-time .title{font-size: 28rpx;}
-.order-time image{width: 40rpx;height: 40rpx;vertical-align: middle;}
-.order-time .msg{display: flex;align-items: center;font-size: 28rpx;color: #333;}
-.order-msg .title{color: #333;font-size: 28rpx;border-bottom: 2rpx solid #f8f8f8;margin-bottom: 20rpx;padding-bottom: 20rpx;}
+.goods .goods-item{display: flex;align-items: center;line-height: 80rpx;justify-content: space-between;font-size: 28rpx;color: #333;}
+.goods .goods-item .right.red{color: #fe2c56;}
+.order-time{background-color: #fff;padding: 20rpx;width: calc(95% - 40rpx);margin: 20rpx auto;display: flex;align-items: center;border-radius: 20rpx;}
+.order-time .title{font-size: 28rpx;margin-left: 20rpx;}
+.order-time .title .p{font-size: 28rpx;color: #333;font-weight: bold;}
+.order-time .title .desc{font-size: 24rpx;color: #666;margin-top: 10rpx;}
+.order-time .time-icon image{width: 40rpx;height: 40rpx;}
+.order-time .right image{width: 40rpx;height: 40rpx;vertical-align: middle;}
+.order-time .msg{display: flex;align-items: center;font-size: 28rpx;color: #333;margin-left: auto;margin-right: 0;}
+.order-msg .title{color: #333;font-size: 32rpx;border-bottom: 2rpx solid #f8f8f8;margin-bottom: 20rpx;padding-bottom: 20rpx;font-weight: bold;}
 .order-msg .textarea{width: 100%;height: 100rpx;font-size: 28rpx;}
-.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20rpx;border-top: 2rpx solid #f8f8f8;left: 0;right: 0;}
+.flx-footer{position: fixed;bottom: 0;background-color: #fff;padding: 20rpx;border-top: 2rpx solid #f8f8f8;left: 0;right: 0;z-index: 99;}
 .flx-footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
-.flx-footer .btn,.time-btn .btn{font-size: 28rpx;height: 80rpx;border-radius: 10rpx;line-height: 80rpx;text-align: center;width: 100%;color: #333;background-color: #224d7a;color: #fff;border:2rpx solid #224d7a;}
+.flx-footer .btn,.time-btn .btn{font-size: 32rpx;height: 80rpx;border-radius: 10rpx;line-height: 80rpx;text-align: center;width: 100%;color: #333;background-color: #fe2c56;color: #fff;border:2rpx solid #fe2c56;}
 .flx-footer .btn[disabled],.flx-footer .btn.disabled{background-color: rgba(34, 77, 122, 0.3);}
 .flx-footer .footer-btn{display: flex;align-items: center;justify-content: space-between;}
-.flx-footer .footer-btn text.desc{color: #666;font-size: 24rpx;}
-.flx-footer .footer-btn text.money{color: #f00;font-size: 28rpx;font-weight: bold;}
+.flx-footer .footer-btn text.desc{color: #666;font-size: 28rpx;}
+.flx-footer .footer-btn text.money{color: #fe2c56;font-size: 32rpx;font-weight: bold;}
 .flx-footer .footer-btn .price{color: #333;font-size: 28rpx;}
 .goods_skus{
 	padding: 20rpx 20rpx 0 20rpx;
-	background-color: #fff;border-radius: 20rpx;width: calc(95% - 40rpx);margin: 0 auto;
+	background-color: #fff;width: calc(95% - 40rpx);margin: 0 auto;
+	border-radius: 20rpx;
 }
 .goods_skus .sku_name{
 	font-size: 32rpx;
 	color: #000;
-	font-weight: bold;
 	line-height: 60rpx;
 	display: flex;
 	align-items: center;
 }
+.goods_skus .sku_name text{margin-left: 20rpx;color: #666;font-size: 24rpx;}
 .goods_skus .sku_name .right{
 	margin-left: auto;
 	margin-right: 0;
@@ -79,15 +101,21 @@
 	flex-wrap: wrap;
 }
 .goods_skus .sku_list .sku_item.active{
-	background: linear-gradient(90deg, rgba(34, 77, 122, 1) 0%, rgba(25, 97, 173, 1) 100%);
-	color: #fff;
+	/* background: linear-gradient(90deg, rgba(254, 44, 86, 1) 0%, rgba(228, 100, 126, 1) 100%); */
+	color: #fe2c56;
+	border: 2rpx solid #fe2c56;
+	background-color: #fff;
 }
 .goods_skus .sku_list .sku_item{
 	background-color: #f8f8f8;
+	border: 2rpx solid #f8f8f8;
 	padding: 10rpx 20rpx;
 	margin-right: 20rpx;
 	margin-bottom: 20rpx;
 	border-radius: 5rpx;
 	font-size: 28rpx;
+	display: flex;
+	align-items: center;
 }
+.goods_skus .sku_list .sku_item image{width: 50rpx;height: 50rpx;vertical-align: middle;margin-right: 10rpx;}
 

+ 39 - 18
unpackage/dist/dev/mp-toutiao/pages/order/detail.js

@@ -211,31 +211,50 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 //
 //
 //
+//
+//
+//
 
 var app;
 var _default = {
   data: function data() {
     return {
       order: "",
-      msgDialog: true,
-      orderData: null
+      msgDialog: false,
+      orderData: null,
+      option: {}
     };
   },
-  onLoad: function onLoad(_ref) {
-    var order = _ref.order;
+  onShow: function onShow() {
+    var pages = getCurrentPages();
+    var currentPage = pages[pages.length - 1];
+    var options = currentPage.options;
+    this.option = options;
+    this.getData();
+    console.log('页面参数:', options);
+  },
+  onLoad: function onLoad(option) {
     app = this;
-    if (!order) {
-      return app.$dialog.showSuccess("参数错误", "none", function () {
-        uni.navigateBack();
-      });
-    }
-    app.order = order;
-    setTimeout(function () {
-      app.msgDialog = false;
-    }, 3000);
-    app.getData();
+    // app.option = option;
+    // app.getData();
   },
+
   methods: {
+    toView: function toView(orderSn) {
+      if (!orderSn) return;
+      uni.navigateTo({
+        url: "/pages/order/info?order=" + orderSn
+      });
+    },
+    toService: function toService() {
+      if (!app.orderData[0].store.service_mobile) return false;
+      uni.makePhoneCall({
+        phoneNumber: app.orderData[0].store.service_mobile,
+        fail: function fail() {
+          app.$dialog.showSuccess("联系失败");
+        }
+      });
+    },
     toDetail: function toDetail(order) {
       uni.navigateTo({
         url: "/pages/order/store?type=1&order=" + order
@@ -244,10 +263,8 @@ var _default = {
     getData: function getData() {
       uni.login({
         success: function success(lres) {
-          Api.detail({
-            "code": lres.code,
-            "order": app.order
-          }).then(function (res) {
+          app.option.auth = lres.code;
+          Api.detail(app.option).then(function (res) {
             uni.hideLoading();
             if (res.code == 0) {
               return app.$dialog.showSuccess(res.msg);
@@ -255,6 +272,10 @@ var _default = {
             uni.setStorageSync("user_data", res.data.user);
             uni.setStorageSync("user_token", res.data.user.access_token);
             app.orderData = res.data.order;
+            app.msgDialog = true;
+            setTimeout(function () {
+              app.msgDialog = false;
+            }, 3000);
           });
         },
         fail: function fail(res) {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
unpackage/dist/dev/mp-toutiao/pages/order/detail.ttml


+ 20 - 2
unpackage/dist/dev/mp-toutiao/pages/order/detail.ttss

@@ -1,5 +1,22 @@
 
 page{background-color: #f8f8f8;}
+.kf-service{
+	position: fixed;
+	right: 20rpx;
+	bottom: 20%;
+	background-color: #fff;
+	width: 80rpx;
+	height: 80rpx;
+	border-radius: 80rpx;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+}
+.kf-service image{
+	width: 60rpx;
+	height: 60rpx;
+	vertical-align: middle;
+}
 .dialog-msg .mark{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 90;background-color: rgba(0, 0,0, 0.3);}
 .dialog-msg .msg-body{position: fixed;background-color: #fff;z-index: 99;left: 5%;right: 5%;top: 50%;-webkit-transform: translateY(-50%);transform: translateY(-50%);border-radius: 10rpx;padding: 40rpx;}
 .dialog-msg .msg-body .title{text-align: center;line-height: 48rpx;color: #333;font-weight: bold;margin-bottom: 20rpx;position: relative;padding: 20rpx 0;}
@@ -12,9 +29,10 @@ page{background-color: #f8f8f8;}
 .coupon-item .footer{padding: 20rpx;border-top: 2rpx solid #f8f8f8;display: flex;justify-content: space-between;}
 .coupon-item .footer .state{flex: 1;}
 .coupon-item .footer .btn{width: 50%;font-size: 28rpx;}
-.coupon-item .body{display: flex;align-items: center;margin: 20rpx 0;}
+.coupon-item .body{display: flex;align-items: center;margin: 20rpx 0;justify-content: space-between;}
 .coupon-item .img image{width: 160rpx;height: 160rpx;}
-.coupon-item .info{margin-left: 20rpx;}
+.coupon-item .info{padding: 0 20rpx;}
+.coupon-item .btn{font-size: 28rpx;margin-right: 20rpx;}
 .coupon-item .name{font-size: 32rpx;color: #333;line-height: 46rpx;}
 .coupon-item .desc{color: #666;font-size: 28rpx;line-height: 48rpx;}
 .tips{text-align: center;line-height: 80rpx;color: #666;font-size: 28rpx;}

+ 63 - 14
unpackage/dist/dev/mp-toutiao/pages/order/info.js

@@ -262,6 +262,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 //
 //
 //
+//
 
 var app;
 var _default = {
@@ -272,6 +273,7 @@ var _default = {
       poiData: null,
       goodsData: null,
       orderData: null,
+      goodsPrice: 0,
       storeData: null,
       orderIdForRefundAmount: "",
       applyRefundParams: {
@@ -286,23 +288,68 @@ var _default = {
     app.getOrder();
   },
   methods: {
-    toRefund: function toRefund() {},
-    applyrefund: function applyrefund(event) {
-      console.log('退款申请', event);
-      var orderId = event.detail.orderId;
-      console.log('退款申请-02', orderId);
-      var extra = {
-        orderId: orderId
-      }; // 开发者需要透传的参数,可自定义内容 
-      return new Promise(function (resolve) {
-        resolve(extra);
+    copyOrder: function copyOrder(order) {
+      setTimeout(function () {
+        uni.setClipboardData({
+          data: order,
+          success: function success() {
+            app.$dialog.showSuccess("复制成功");
+          },
+          fail: function fail() {
+            app.$dialog.showSuccess("复制失败");
+          }
+        });
+      }, 300);
+    },
+    openLocation: function openLocation() {
+      uni.openLocation({
+        latitude: app.poiData.latitude,
+        longitude: app.poiData.longitude,
+        name: app.poiData.poi_name,
+        address: app.poiData.poi_address,
+        fail: function fail() {
+          app.$dialog.showSuccess("打开地图失败");
+        }
+      });
+    },
+    callMobile: function callMobile() {
+      if (!app.storeData.service_mobile) return;
+      uni.makePhoneCall({
+        phoneNumber: app.storeData.service_mobile,
+        fail: function fail() {
+          app.$dialog.showSuccess("联系失败");
+        }
       });
     },
-    cancelOrder: function cancelOrder() {
-      app.$dialog.showError("确定要取消该预约吗?", function (res) {
+    delOrder: function delOrder() {
+      app.$dialog.showError("确定要删除该笔预约订单吗", function (res) {
         if (res.confirm) {
-          Api.cancel({
+          Api.del({
             "order": app.order
+          }).then(function (res) {
+            if (res.code == 0) {
+              return app.$dialog.showSuccess(res.msg);
+            }
+            app.$dialog.showSuccess(res.msg, "none", function () {
+              uni.switchTab({
+                url: "/pages/order/order"
+              });
+            });
+          });
+        }
+      }, "删除提示");
+    },
+    cancelOrder: function cancelOrder(type) {
+      if (type == 1) {
+        var msg = "确定要取消该预约吗?";
+      } else {
+        var msg = "该订单已在服务中,取消服务需商家审核,如需加急审核,请点击确定后,尽快致电商家!";
+      }
+      app.$dialog.showError(msg, function (res) {
+        if (res.confirm) {
+          Api.cancel({
+            "order": app.order,
+            "type": type
           }).then(function (res) {
             if (res.code == 0) {
               return app.$dialog.showSuccess(res.msg);
@@ -312,7 +359,7 @@ var _default = {
             });
           });
         }
-      }, "取消预约");
+      }, "取消预约/服务");
     },
     getOrder: function getOrder() {
       Api.orderDetail({
@@ -325,9 +372,11 @@ var _default = {
           });
           return;
         }
+        app.goodsPrice = res.data.parent.pay_amount * 100;
         app.applyRefundParams.orderId = res.data.order_id;
         app.orderData = res.data;
         app.poiData = res.data.poi;
+        app.storeData = res.data.store;
       });
     }
   }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/mp-toutiao/pages/order/info.ttml


+ 9 - 5
unpackage/dist/dev/mp-toutiao/pages/order/info.ttss

@@ -5,14 +5,15 @@ page{background-color: #f8f8f8;}
 .address-info{font-size: 28rpx;color: #333;}
 .footer{position: fixed;bottom: 0;background-color: #fff;padding: 20rpx 20rpx 0 20rpx;border-top: 2rpx solid #f8f8f8;left: 0;right: 0;}
 .footer .footer-op{display: flex;align-items: center;}
-.footer .footer-op .footer-left{display: flex;align-items: center;gap: 10rpx;justify-content: center;font-size: 32rpx;color: #f00;font-weight: bold;}
-.footer .footer-op .footer-left text{color: #666;font-size: 24rpx;font-weight: normal;}
+.footer .footer-op .footer-left{display: flex;align-items: center;gap: 10rpx;justify-content: center;font-size: 32rpx;color: #fe2c56;font-weight: bold;}
+.footer .footer-op .footer-left text{color: #333;font-size: 28rpx;font-weight: normal;}
+.footer .footer-op .footer-left text.red{color: #f56c6c;font-weight: bold;}
 .footer .footer-op .footer-left .item{flex-direction: column;display: flex;font-size: 24rpx;color: #333;align-items: center;}
 .footer .footer-op .footer-left image{width: 40rpx;height: 40rpx;}
 .footer .footer-op .footer-right{margin-left: auto;margin-right: 0;display: flex;align-items: center;gap: 20rpx;}
 .footer .footer-op .footer-right .btn{font-size: 28rpx;height: 80rpx;border-radius: 10rpx;line-height: 80rpx;text-align: center;width: 200rpx;color: #333;border: 2rpx solid #ccc;}
-.footer .footer-op .footer-right .btn.danger{border:2rpx solid #f00;color: #f00;}
-.footer .footer-op .footer-right .btn.full{background-color: #007aff;color: #fff;border:2rpx solid #007aff;}
+.footer .footer-op .footer-right .btn.danger{border:2rpx solid #fe2c56;color: #fe2c56;}
+.footer .footer-op .footer-right .btn.full{background-color: #fe2c56;color: #fff;border:2rpx solid #fe2c56;}
 .footer .footer-safe {height: env(safe-area-inset-bottom);width: 100%;}
 .order-status{padding: 40rpx 20rpx;text-align: center;}
 .order-status .status-name{text-align: center;font-size: 32rpx;color: #333;font-weight: bold;display: flex;align-items: center;justify-content: center;}
@@ -29,8 +30,11 @@ page{background-color: #f8f8f8;}
 .order-goods image{width: 140rpx;height: 140rpx;}
 .goods-info{margin-left: 20rpx;font-size: 28rpx;flex: 1;padding: 20rpx 0;}
 .goods-info .name{font-size: 30rpx;color: #333;}
-.goods-info .desc{font-size: 24rpx;color: #999;display: flex;align-items: center;justify-content: space-between;margin: 20rpx 0;}
+.goods-info .desc{font-size: 24rpx;color: #999;margin: 20rpx 0;}
+.goods-info .desc text{margin-left: 20rpx;}
 .goods-info .total{font-size: 30rpx;color: #333;text-align: right;font-weight: bold;}
+.goods-item{display: flex;align-items: center;line-height: 80rpx;justify-content: space-between;font-size: 28rpx;color: #333;background-color: #fff;padding: 0 20rpx;border-top: 2rpx solid #f8f8f8;}
+.goods-item .right.red{color: #fe2c56;}
 .home-store{margin: 20rpx auto;display: flex;align-items: center;background-color: #fff;border-radius: 10rpx;display: flex;align-items: center;padding: 30rpx;}
 .home-store .store-right{width: 120rpx;height: 120rpx;background-color: #fff;text-align: center;display: flex;align-items: center;justify-content: center;margin-left: auto;margin-right: 0;border-radius: 10rpx;}
 .home-store .store-right image{width: 60rpx;height: 60rpx;}

+ 2 - 0
unpackage/dist/dev/mp-toutiao/pages/order/order.js

@@ -213,6 +213,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 //
 //
 //
+//
+//
 
 var app;
 var _default = {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
unpackage/dist/dev/mp-toutiao/pages/order/order.ttml


+ 12 - 8
unpackage/dist/dev/mp-toutiao/pages/order/order.ttss

@@ -61,7 +61,7 @@ page.data-v-127632e4 {
   position: relative;
 }
 .header .header-tabs .tab-item.active.data-v-127632e4 {
-  color: #005BAC;
+  color: #fe2c56;
   font-weight: bold;
 }
 .header .header-tabs .tab-item.active.data-v-127632e4::after {
@@ -72,7 +72,7 @@ page.data-v-127632e4 {
   border-radius: 4rpx;
   left: 30%;
   bottom: 0;
-  background-color: #005BAC;
+  background-color: #fe2c56;
 }
 .order-footer.data-v-127632e4 {
   display: flex;
@@ -94,18 +94,18 @@ page.data-v-127632e4 {
   gap: 20rpx;
 }
 .order-footer .btn.data-v-127632e4 {
-  width: 160rpx;
-  height: 60rpx;
-  line-height: 60rpx;
+  height: 50rpx;
+  line-height: 50rpx;
   text-align: center;
   border: 2rpx solid #ccc;
   color: #333;
   font-size: 28rpx;
   border-radius: 10rpx;
+  padding: 0 25rpx;
 }
 .order-footer .btn.danger.data-v-127632e4 {
-  border: 2rpx solid #f00;
-  color: #f00;
+  border: 2rpx solid #fe2c56;
+  color: #fe2c56;
 }
 .order-footer .btn.blue.data-v-127632e4 {
   border: 2rpx solid #007aff;
@@ -126,7 +126,7 @@ page.data-v-127632e4 {
 }
 .order-item .item-header .order-status.data-v-127632e4 {
   font-size: 28rpx;
-  color: #f00;
+  color: #fe2c56;
 }
 .order-item .item-header .order-status.success.data-v-127632e4 {
   color: #007aff;
@@ -150,6 +150,7 @@ page.data-v-127632e4 {
   font-size: 28rpx;
   flex: 1;
   padding: 20rpx 0;
+  position: relative;
 }
 .order-item .goods-info .name.data-v-127632e4 {
   font-size: 30rpx;
@@ -168,5 +169,8 @@ page.data-v-127632e4 {
   color: #333;
   text-align: right;
   font-weight: bold;
+  position: absolute;
+  right: 20rpx;
+  bottom: 40rpx;
 }
 

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.