gxd-uni-library-editx 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/.editorconfig +14 -0
  2. package/README.md +447 -0
  3. package/index.js +3 -0
  4. package/package.json +104 -0
  5. package/postcss.config.js +22 -0
  6. package/settings.js.tpl +68 -0
  7. package/src/XdAppClass.1.0.js +257 -0
  8. package/src/XdAppClass.js +150 -0
  9. package/src/components/XdAddress/XdAddress.vue +579 -0
  10. package/src/components/XdAddressSelect/XdAddressSelect.vue +243 -0
  11. package/src/components/XdBaiduMap/XdBaiduMap.vue +204 -0
  12. package/src/components/XdBaiduOverlay/XdBaiduOverlay.vue +345 -0
  13. package/src/components/XdBaiduSearch/XdBaiduSearch.vue +354 -0
  14. package/src/components/XdBar/XdBar.vue +339 -0
  15. package/src/components/XdButton/XdButton.vue +288 -0
  16. package/src/components/XdCartList/XdCartList.vue +791 -0
  17. package/src/components/XdCartNoStoreList/XdCartNoStoreList.vue +747 -0
  18. package/src/components/XdCity/XdCity.vue +620 -0
  19. package/src/components/XdCity/city.js +93 -0
  20. package/src/components/XdCity/testData.js +124 -0
  21. package/src/components/XdCityLocation/XdCityLocation.vue +314 -0
  22. package/src/components/XdCityLocation/jweixin.js +72 -0
  23. package/src/components/XdCityShow/XdCityShow.vue +354 -0
  24. package/src/components/XdClipImage/XdClipImage.vue +879 -0
  25. package/src/components/XdCoins/XdCoins.vue +66 -0
  26. package/src/components/XdConfirm/XdConfirm.vue +240 -0
  27. package/src/components/XdContentXss/XdContentXss.vue +71 -0
  28. package/src/components/XdDailog/XdDailog.vue +258 -0
  29. package/src/components/XdDate/XdDataItemOne.vue +236 -0
  30. package/src/components/XdDate/XdDate.vue +1081 -0
  31. package/src/components/XdDate/XdDateItem.vue +316 -0
  32. package/src/components/XdDate/XdDateTime.vue +929 -0
  33. package/src/components/XdDate/i18n/en.json +19 -0
  34. package/src/components/XdDate/i18n/index.js +8 -0
  35. package/src/components/XdDate/i18n/zh-Hans.json +19 -0
  36. package/src/components/XdDate/i18n/zh-Hant.json +19 -0
  37. package/src/components/XdDate/keypress.js +45 -0
  38. package/src/components/XdDate/util.js +418 -0
  39. package/src/components/XdDownDrawer/XdDownDrawer.vue +176 -0
  40. package/src/components/XdEditPwd/XdEditPwd.vue +305 -0
  41. package/src/components/XdEnterOrderList/XdEnterOrderList.vue +413 -0
  42. package/src/components/XdExpressTimeLine/XdExpressTimeLine.vue +280 -0
  43. package/src/components/XdFilter/XdFilter.vue +541 -0
  44. package/src/components/XdFontIcon/XdFontIcon.vue +165 -0
  45. package/src/components/XdFontIcon/css/icon.less +498 -0
  46. package/src/components/XdFooterBar/XdFooterBar.vue +291 -0
  47. package/src/components/XdFooterTabbar/XdFooterTabbar.vue +284 -0
  48. package/src/components/XdForm/XdForm.vue +481 -0
  49. package/src/components/XdForm/validate.js +486 -0
  50. package/src/components/XdFormCheckbox/XdFormCheckbox.vue +858 -0
  51. package/src/components/XdFormDate.vue +187 -0
  52. package/src/components/XdFormInput/XdFormInput.vue +535 -0
  53. package/src/components/XdFormInput/common.js +56 -0
  54. package/src/components/XdFormItem/XdFormItem.vue +583 -0
  55. package/src/components/XdFormSelect/XdFormSelect.vue +119 -0
  56. package/src/components/XdImage/XdImage.vue +113 -0
  57. package/src/components/XdItemCardUser/XdItemCardUser.vue +232 -0
  58. package/src/components/XdItemFilmImage/XdItemFilmImage.vue +146 -0
  59. package/src/components/XdItemFilmText/XdItemFilmText.vue +83 -0
  60. package/src/components/XdItemPhysical/XdItemPhysical.vue +410 -0
  61. package/src/components/XdItemPhysicalPack/XdItemPhysicalPack.vue +240 -0
  62. package/src/components/XdItemStore/XdItemStore.vue +236 -0
  63. package/src/components/XdItemUserInfo/XdItemUserInfo.vue +175 -0
  64. package/src/components/XdJson/XdJson.vue +398 -0
  65. package/src/components/XdKeyValue/XdKeyValue.vue +150 -0
  66. package/src/components/XdLabelNew/XdLabelNew.vue +193 -0
  67. package/src/components/XdLayout/XdLayout.vue +634 -0
  68. package/src/components/XdLoading/XdLoading.vue +165 -0
  69. package/src/components/XdMore/XdMore.vue +66 -0
  70. package/src/components/XdMpHtml/XdMpHtml.vue +458 -0
  71. package/src/components/XdMpHtml/node/node.vue +536 -0
  72. package/src/components/XdMpHtml/parser.js +1260 -0
  73. package/src/components/XdMpHtml/static/js/handler.js +1 -0
  74. package/src/components/XdMpHtml/static/js/uni.webview.min.js +1 -0
  75. package/src/components/XdMpHtml/static/local.html +1 -0
  76. package/src/components/XdMy/XdMy.vue +294 -0
  77. package/src/components/XdMySuccess/XdMySuccess.vue +603 -0
  78. package/src/components/XdNavTab/XdNavTab.vue +147 -0
  79. package/src/components/XdNoData/XdNoData.vue +87 -0
  80. package/src/components/XdNoticeBar/XdNoticeBar.vue +501 -0
  81. package/src/components/XdNumber/XdNumber.vue +210 -0
  82. package/src/components/XdNumberUni/XdNumberUni.vue +270 -0
  83. package/src/components/XdNumberUni/readme.md +42 -0
  84. package/src/components/XdOnlineConfirm/XdOnlineConfirm.vue +385 -0
  85. package/src/components/XdOnlineDetail/XdOnlineDetail.vue +332 -0
  86. package/src/components/XdOnlinePay/XdOnlinePay.vue +349 -0
  87. package/src/components/XdOnlineSchedule/XdOnlineSchedule.vue +453 -0
  88. package/src/components/XdOnlineSeat/XdOnlineSeat.vue +796 -0
  89. package/src/components/XdOnlineSeatMove/XdOnlineSeatMove.vue +1012 -0
  90. package/src/components/XdPayCombo/XdPayCombo.vue +118 -0
  91. package/src/components/XdPreviewImage/XdPreviewImage.vue +372 -0
  92. package/src/components/XdPwPay/XdPwPay.vue +214 -0
  93. package/src/components/XdRadio/XdRadio.vue +151 -0
  94. package/src/components/XdRangeSlider/XdRangeSlider.vue +355 -0
  95. package/src/components/XdRedName/XdRedName.vue +35 -0
  96. package/src/components/XdSearchBar/XdSearchBar.vue +286 -0
  97. package/src/components/XdSelect/XdSelect.vue +382 -0
  98. package/src/components/XdSelectCity/XdSelectCity.vue +270 -0
  99. package/src/components/XdSelectTime/XdSelectTime.vue +342 -0
  100. package/src/components/XdStar/XdStar.vue +261 -0
  101. package/src/components/XdStoreCashier/XdStoreCashier.vue +526 -0
  102. package/src/components/XdStoreItem/XdStoreItem.vue +400 -0
  103. package/src/components/XdStoreOrderDetail/XdStoreOrderDetail.vue +1571 -0
  104. package/src/components/XdStoreOrderList/XdStoreOrderList.vue +450 -0
  105. package/src/components/XdStoreProductInfo/XdStoreProductInfo.vue +940 -0
  106. package/src/components/XdStoreProductType/XdStoreProductType.vue +307 -0
  107. package/src/components/XdSuccess/XdSuccess.vue +527 -0
  108. package/src/components/XdSwipeSelect/XdSwipeSelect.vue +99 -0
  109. package/src/components/XdSwiper/XdSwiper.vue +124 -0
  110. package/src/components/XdSwitch/XdSwitch.vue +204 -0
  111. package/src/components/XdTab/XdTab.vue +220 -0
  112. package/src/components/XdTabScroll/XdTabScroll.vue +212 -0
  113. package/src/components/XdTag/XdTag.vue +423 -0
  114. package/src/components/XdTimeLine/XdTimeLine.vue +121 -0
  115. package/src/components/XdTips/XdTips.vue +212 -0
  116. package/src/components/XdTipsBlock/XdTipsBlock.vue +141 -0
  117. package/src/components/XdTitleSection/XdTitleSection.vue +152 -0
  118. package/src/components/XdTitleTab/XdTitleTab.vue +227 -0
  119. package/src/components/XdUnit/XdUnit.vue +206 -0
  120. package/src/components/XdUpload/XdUpload.vue +197 -0
  121. package/src/components/XdUploadImage/XdUploadImage.vue +145 -0
  122. package/src/components/Xdlogs/XdLogs.vue +144 -0
  123. package/src/components/autoload.js +211 -0
  124. package/src/components/swipeAction/UniSwipeAction.vue +43 -0
  125. package/src/components/swipeActionItem/UniSwipeActionItem.vue +386 -0
  126. package/src/components/swipeActionItem/bindingx.js +298 -0
  127. package/src/components/swipeActionItem/index.wxs +321 -0
  128. package/src/components/swipeActionItem/isPC.js +18 -0
  129. package/src/components/swipeActionItem/mpalipay.js +210 -0
  130. package/src/components/swipeActionItem/mpother.js +252 -0
  131. package/src/components/swipeActionItem/mpwxs.js +140 -0
  132. package/src/dome/dome/address.vue +415 -0
  133. package/src/dome/dome/auth/login.vue +166 -0
  134. package/src/dome/dome/baidu_show.vue +20 -0
  135. package/src/dome/dome/cake.vue +186 -0
  136. package/src/dome/dome/cart.vue +205 -0
  137. package/src/dome/dome/cart_store.vue +149 -0
  138. package/src/dome/dome/cashier/cashier.vue +73 -0
  139. package/src/dome/dome/cashier/check_cashier.vue +469 -0
  140. package/src/dome/dome/cashier/success.vue +127 -0
  141. package/src/dome/dome/city.vue +148 -0
  142. package/src/dome/dome/cityData.js +9 -0
  143. package/src/dome/dome/clip.vue +82 -0
  144. package/src/dome/dome/date/date.vue +273 -0
  145. package/src/dome/dome/date/selected.js +315 -0
  146. package/src/dome/dome/dcom/app1.vue +13 -0
  147. package/src/dome/dome/dcom/app2.vue +13 -0
  148. package/src/dome/dome/dcom/app3.vue +13 -0
  149. package/src/dome/dome/dcom/app4.vue +13 -0
  150. package/src/dome/dome/dcom/app5.vue +13 -0
  151. package/src/dome/dome/dcom/index.vue +1 -0
  152. package/src/dome/dome/debug/debug.vue +95 -0
  153. package/src/dome/dome/docache/docache.vue +88 -0
  154. package/src/dome/dome/express.vue +269 -0
  155. package/src/dome/dome/form.vue +312 -0
  156. package/src/dome/dome/icon.js +125 -0
  157. package/src/dome/dome/icon.vue +93 -0
  158. package/src/dome/dome/index.vue +725 -0
  159. package/src/dome/dome/item.vue +236 -0
  160. package/src/dome/dome/json/json.vue +88 -0
  161. package/src/dome/dome/layout.vue +105 -0
  162. package/src/dome/dome/line.vue +113 -0
  163. package/src/dome/dome/map/search.vue +70 -0
  164. package/src/dome/dome/my.vue +171 -0
  165. package/src/dome/dome/notice.vue +93 -0
  166. package/src/dome/dome/online/confirm.vue +92 -0
  167. package/src/dome/dome/online/detail.vue +80 -0
  168. package/src/dome/dome/online/pay.vue +78 -0
  169. package/src/dome/dome/online/schedule.vue +73 -0
  170. package/src/dome/dome/online/seat.vue +98 -0
  171. package/src/dome/dome/order/detail.vue +166 -0
  172. package/src/dome/dome/order/enter_order.vue +294 -0
  173. package/src/dome/dome/order/list.vue +219 -0
  174. package/src/dome/dome/order/order.js +18 -0
  175. package/src/dome/dome/order/success.vue +68 -0
  176. package/src/dome/dome/product.vue +179 -0
  177. package/src/dome/dome/store_cashier.vue +67 -0
  178. package/src/dome/dome/swiper.vue +32 -0
  179. package/src/dome/dome/webview.vue +61 -0
  180. package/src/install.js +183 -0
  181. package/src/main/address/address.vue +251 -0
  182. package/src/main/cart/cart.vue +149 -0
  183. package/src/main/cashier/cashier.vue +72 -0
  184. package/src/main/cashier/check_cashier.vue +483 -0
  185. package/src/main/city/city.vue +149 -0
  186. package/src/main/date/date.vue +260 -0
  187. package/src/main/order/order.js +19 -0
  188. package/src/main/order/order.vue +222 -0
  189. package/src/main/product/detail.vue +121 -0
  190. package/src/main/product/type.vue +108 -0
  191. package/src/main/search/search.vue +501 -0
  192. package/src/pages.json +337 -0
  193. package/src/plugins/CreatedComponentsPlugin.js +19 -0
  194. package/src/plugins/JsonRename.js +72 -0
  195. package/src/plugins/SetAppParams.js +171 -0
  196. package/src/project.js +18 -0
  197. package/src/utils/Cookie.js +68 -0
  198. package/src/utils/Runtime.js +105 -0
  199. package/src/utils/Storage.js +104 -0
  200. package/src/utils/XdNetwork.js +133 -0
  201. package/src/utils/helper.js +1321 -0
  202. package/src/utils/nourl.js +95 -0
  203. package/src/utils/project.js +17 -0
  204. package/src/utils/xd.auth.js +61 -0
  205. package/src/utils/xd.base.js +474 -0
  206. package/src/utils/xd.common.js +240 -0
  207. package/src/utils/xd.event.js +99 -0
  208. package/src/utils/xd.frame.js +96 -0
  209. package/src/utils/xd.path.js +96 -0
  210. package/src/utils/xdAppLog.js +170 -0
  211. package/src/utils/xdWxLog.js +302 -0
  212. package/src/utils/xdh5log.js +307 -0
  213. package/src/websetting.js +64 -0
  214. package/tsconfig.json +9 -0
  215. package/xd.less +180 -0
@@ -0,0 +1,1571 @@
1
+ <template>
2
+ <view class="xd-store" v-if="info !== null">
3
+ <view class="xd-store__header">
4
+ <view class="xd-store__header-bg" :style="{background: $mainColor}"></view>
5
+ <view class="xd-store__header-body">
6
+ <view class="xd-store__header-body-status">
7
+ <slot></slot>
8
+ </view>
9
+ <!--地址-->
10
+ <view class="xd-store__address" v-if="info['address']">
11
+ <view class="xd-store__address-icon">
12
+ <xd-font-icon size="60" icon="icondiqu" :color="$mainColor" ></xd-font-icon>
13
+ </view>
14
+ <view class="axd-store__address-content">
15
+ <view>
16
+ <text>{{info['address']['receipt_username']}}</text>
17
+ <text>{{info['address']['receipt_phone']}}</text>
18
+ </view>
19
+ <view>{{info['address']['receipt_address']}}</view>
20
+ </view>
21
+ </view>
22
+ <!--地址-->
23
+ <!--自提门店名称-->
24
+ <slot name="shop"></slot>
25
+ <!--自提门店名称-->
26
+ <!--子订单号-->
27
+ <view class="xd-store__subOrder" v-if="isSubOrder && info['subOrderList'] && !isEmpty(info['subOrderList'])">
28
+ <view
29
+ class="xd-store__subOrder-item"
30
+ v-for="(subOrder,index) in info['subOrderList']"
31
+ :key="index"
32
+ >
33
+ <view class="xd-store__subOrder-item-title">
34
+ <view>子订单:{{subOrder.order_id}}</view>
35
+ <view>{{subOrder.status_name}}</view>
36
+ </view>
37
+ <view class="xd-store__subOrder-item-content">
38
+ <view
39
+ class="xd-store__subOrder-item-content-list"
40
+ v-for="(list,ide) in subOrder['product_data']"
41
+ :key="ide"
42
+ v-if="ide < 2 || (ide >=2 && subOrder.more)"
43
+ @click="onProductDetail(subOrder,list)"
44
+ >
45
+ <view :style="{width: productWidth + 'rpx', maxHeight: productHeight + 'rpx'}">
46
+ <image
47
+ :style="{
48
+ maxWidth: (productWidth - 10) + 'rpx',
49
+ maxHeight: (productHeight - 10)+ 'rpx'
50
+ }"
51
+ :src="list.thumb"
52
+ mode="widthFix"></image>
53
+ </view>
54
+ <view>{{list.product_name}}</view>
55
+ <view>
56
+ <view>
57
+ <xd-unit
58
+ font-weight="normal"
59
+ :font-size="26"
60
+ :price="list.price"
61
+ :icon-size=".35"
62
+ ></xd-unit>
63
+ </view>
64
+ <view>x{{list.ct}}</view>
65
+ </view>
66
+ </view>
67
+ </view>
68
+ <view
69
+ class="xd-store__subOrder-item-more"
70
+ @click="subOrder.more = !subOrder.more"
71
+ >
72
+ <view
73
+ v-if="subOrder.product_data.length > 1"
74
+ :style="{
75
+ marginTop: !subOrder.more? '-4rpx': '-20rpx'
76
+ }"
77
+ >
78
+ <xd-font-icon
79
+ color="#bbb"
80
+ :size="26"
81
+ :icon="subOrder.more ? 'iconshuangjiantoushang': 'iconxiashuangjiantou'"
82
+ ></xd-font-icon>
83
+ </view>
84
+ </view>
85
+ <view
86
+ class="xd-store__subOrder-item-footer"
87
+ v-if="subOrder.express_data && subOrder.express_data.length > 0"
88
+ >
89
+ <view class="xd-store__subOrder-item-footer-btn">
90
+ <xd-button type="default" size="small" @click="handleExpress(subOrder.express_data,subOrder)">查看物流</xd-button>
91
+ </view>
92
+ </view>
93
+ <view class="xd-store__subOrder-item-shop" v-if="subOrder.shop_data">
94
+ <view>
95
+ <view>自提门店:</view>
96
+ <view>{{subOrder.shop_data.name}}</view>
97
+ </view>
98
+ <view>
99
+ <view>门店地址:</view>
100
+ <view>{{subOrder.shop_data.address}}</view>
101
+ </view>
102
+ </view>
103
+ </view>
104
+ </view>
105
+ <!--子订单号-->
106
+ <!--快递-->
107
+ <view class="xd-store__express" v-if="isSubOrder && info['express'] && !isEmpty(info['express'])">
108
+ <view @click="handleExpress(exItem)" v-for="(exItem,exIndex) in info['express']" :key="exItem['number']">
109
+ <view>
110
+ <xd-font-icon icon="icondistribution" size="45" :color="$mainColor"></xd-font-icon>
111
+ </view>
112
+ <view>
113
+ <view>
114
+ <view>{{exItem.name}}</view>
115
+ <view>({{exItem.number}})</view>
116
+ </view>
117
+ <view>{{exItem.comment}}</view>
118
+ </view>
119
+ <view>
120
+ <xd-font-icon icon="iconjiantou" size="22"></xd-font-icon>
121
+ </view>
122
+ </view>
123
+ </view>
124
+ <!--快递-->
125
+ <!--自提配送-->
126
+ <view class="xd-store__self" v-if="info['self']">
127
+ <view>
128
+ <xd-font-icon size="70" icon="iconmendianziqu" :color="$mainColor"></xd-font-icon>
129
+ </view>
130
+ <view>
131
+ <view>
132
+ <text>{{info['self']['receipt_username']}}</text>
133
+ <text>{{info['self']['receipt_phone']}}</text>
134
+ </view>
135
+ </view>
136
+ </view>
137
+ <!--自提配送-->
138
+ <!--电子码(号码+密码)-->
139
+ <template v-if="info['numberAndPassword'] && !isEmpty(info['numberAndPassword'])">
140
+ <view
141
+ class="xd-store__numberAndPassword"
142
+ v-for="(nap,nindex) in info['numberAndPassword']"
143
+ :key="nindex"
144
+ >
145
+ <view v-for="(item,codeIndex) in nap" :key="codeIndex">
146
+ <view>
147
+ <view>{{item['label']}}</view>
148
+ <view>{{item['value']}}</view>
149
+ </view>
150
+ <view>
151
+ <xd-button @click="copy(item['value'])" btn-type="primary" size="small">复制</xd-button>
152
+ </view>
153
+ </view>
154
+ </view>
155
+ </template>
156
+ <!--电子码(号码+密码)-->
157
+ <!--电子码(密码)-->
158
+ <view class="xd-store__code" v-if="info['code'] && !isEmpty(info['code'])">
159
+ <view v-for="(item,codeIndex) in info['code']" :key="codeIndex">
160
+ <view>
161
+ <view>{{item['label']}}</view>
162
+ <view>{{item['value']}}</view>
163
+ </view>
164
+ <view>
165
+ <xd-button @click="copy(item['value'])" btn-type="primary" size="small">复制</xd-button>
166
+ </view>
167
+ </view>
168
+ </view>
169
+ <!--电子码(密码)-->
170
+ <!--二维码-->
171
+ <view
172
+ class="xd-store__codeimg"
173
+ v-if="info['twocode'] && !isEmpty(info['twocode'])"
174
+ >
175
+ <view v-for="(item,codeIndex) in info['twocode']" :key="codeIndex">
176
+ <image class="twocode" :src="item['value']"></image>
177
+ <view>{{item['label']}}</view>
178
+ </view>
179
+ </view>
180
+ <!--二维码-->
181
+ <!--条形码-->
182
+ <view
183
+ class="xd-store__codeimg"
184
+ v-if="info['barcode'] && !isEmpty(info['barcode'])"
185
+ >
186
+ <view v-for="(item,codeIndex) in info['barcode']" :key="codeIndex">
187
+ <image mode="aspectFit" class="barcode" :src="item['value']"></image>
188
+ <view>{{item['label']}}</view>
189
+ </view>
190
+ </view>
191
+ <!--条形码-->
192
+ </view>
193
+ <view class="xd-store__sendinfo" v-if="info['send'] && info['send']['label']">
194
+ <view>{{info['send']['label']}}</view>
195
+ <view :style="{color: $mainColor}">{{info['send']['value']}}</view>
196
+ </view>
197
+ <!--商品-->
198
+ <view class="xd-store__products" v-if="isSubOrder && info['products'] && !isEmpty(info['products'])">
199
+ <view class="xd-store__products-title">
200
+ <view class="xd-store__products-title-left" v-if="info['shop_logo']">
201
+ <image :src="info['shop_logo']"></image>
202
+ </view>
203
+ <view class="xd-store__products-title-right">
204
+ <view @click="handleTitleClick(info)">
205
+ <view v-if="info['title']">{{info['title']}}</view>
206
+ <view v-if="info['titleIcon']">
207
+ <xd-font-icon size="20" icon="iconjiantou"></xd-font-icon>
208
+ </view>
209
+ </view>
210
+ <view
211
+ class="xd-store__products-address"
212
+ v-if="info['shop_address']"
213
+ >{{info['shop_address']}}
214
+ </view>
215
+ </view>
216
+ <view
217
+ class="xd-store__products-line"
218
+ :style="{background: $mainColor}"
219
+ v-if="info['title'] || info['titleIcon'] || info['shop_address']"
220
+ ></view>
221
+ </view>
222
+ <view
223
+ class="xd-store__products-item"
224
+ v-for="(item,index) in info['products']"
225
+ :key="index"
226
+ @click="onProductDetail(info,item)"
227
+ >
228
+ <view class="xd-store__products-item-image">
229
+ <xd-image :width="productWidth" :height="productHeight" :image="item['thumb']"></xd-image>
230
+ </view>
231
+ <view class="xd-store__products-item-body" :style="{minHeight: productHeight + 'rpx'}">
232
+ <view>{{item['product_name']}}</view>
233
+ <view>{{item['product_sku_text']}}</view>
234
+ <view class="app-my-order__products-item-body-price">
235
+ <view>
236
+ <xd-unit
237
+ v-if="item['price']"
238
+ :price="item['price']"
239
+ font-weight="normal"
240
+ :iocn-size="0.3"
241
+ :font-size="24"
242
+ ></xd-unit>
243
+ </view>
244
+ <view>x {{item['num']}}</view>
245
+ </view>
246
+ </view>
247
+ </view>
248
+ </view>
249
+ <!--商品-->
250
+ <!--自定义内容显示模块-->
251
+ <view class="xd-store__custom" v-if="info['makeInfo'] && info['makeInfo'].length > 0">
252
+ <view class="xd-store__custom-title">{{info['makeInfoTitle']}}</view>
253
+ <view class="xd-store__custom-content">
254
+ <view class="xd-store__custom-item" v-for="(makeItem, makeIndex) in info['makeInfo']" :key="makeIndex">
255
+ <view>{{makeItem.label}}</view>
256
+ <view>{{makeItem.value}}</view>
257
+ </view>
258
+ </view>
259
+
260
+ </view>
261
+ <!--自定义内容显示模块 结束-->
262
+ <!--支付信息-->
263
+ <view class="xd-store__price"
264
+ v-if="info['card'] ||
265
+ info['price'] ||
266
+ info['total_price'] ||
267
+ info['post_price'] ||
268
+ info['pay_price']
269
+ ">
270
+ <!--卡消费-->
271
+ <view class="xd-store__price-card" v-if="info['card'] && info['card'].length > 0">
272
+ <view class="xd-store__price-card-title">
273
+ <view>使用卡列表</view>
274
+ <view>
275
+ <xd-unit
276
+ v-if="info['card_price']"
277
+ :price="info['card_price']"
278
+ color="#333"
279
+ :font-size="36"
280
+ :iocn-size=".25"
281
+ ></xd-unit>
282
+ </view>
283
+ </view>
284
+ <view>
285
+ <view class="xd-store__price-card-item" v-for="(item,cardIndex) in info['card']" :key="cardIndex">
286
+ <view>{{item['card_type_name']}}</view>
287
+ <view>
288
+ <view>{{item['card_number']}}</view>
289
+ <view>
290
+ <xd-unit
291
+ :is-show-icon="false"
292
+ :price="item['point']"
293
+ :font-size="25"
294
+ :unit="null"
295
+ ></xd-unit>
296
+ </view>
297
+ </view>
298
+ </view>
299
+ </view>
300
+ <view class="xd-store__price-line" :style="{background: $mainColor}"></view>
301
+ </view>
302
+ <!--卡消费-->
303
+ <!--消费数据-->
304
+ <view class="xd-store__price-label">
305
+ <view v-if="info['price'] !== undefined">
306
+ <view>商品总额</view>
307
+ <view>
308
+ <xd-unit :price="info['price']" :font-size="26"></xd-unit>
309
+ </view>
310
+ </view>
311
+ <view v-if="info['post_price'] !== undefined">
312
+ <view>配送费</view>
313
+ <view>
314
+ <xd-unit :price="info['post_price']" :font-size="26"></xd-unit>
315
+ </view>
316
+ </view>
317
+ <view v-if="info['total_price'] !== undefined">
318
+ <view>合计</view>
319
+ <view>
320
+ <xd-unit :price="info['total_price']" :font-size="32"></xd-unit>
321
+ </view>
322
+ </view>
323
+ <view v-if="info['pay_price'] !== undefined">
324
+ <view>实付款</view>
325
+ <view>
326
+ <xd-unit :is-show-icon="false" :price="info['pay_price']" :font-size="32" :unit="info['pay_unit']"></xd-unit>
327
+ </view>
328
+ </view>
329
+ </view>
330
+ <!--消费数据 结束-->
331
+ </view>
332
+ <!--支付信息-->
333
+ <!--自定义金额显示-->
334
+ <view class="xd-store__price-show" v-if="info['orderPrice']">
335
+ <view
336
+ v-for="(oPrice,oIndex) in info['orderPrice']"
337
+ :key="oIndex"
338
+ :style="{
339
+ justifyContent: oPrice.algin,
340
+ }"
341
+ >
342
+ <view v-if="oPrice['type'] === 'line'" class="xd-store__price-show-line"></view>
343
+ <template v-else>
344
+ <view
345
+ :style="{
346
+ fontSize: oPrice['size'] + 'rpx',
347
+ color: oPrice['color'] || '#333'
348
+ }"
349
+ >{{oPrice['label']}}
350
+ </view>
351
+ <view>
352
+ <xd-unit
353
+ v-if="oPrice['unit']"
354
+ :price="oPrice['value']"
355
+ :font-size="oPrice['size'] || 26"
356
+ :is-show-icon="false"
357
+ :icon-size="0.35*Number(oPrice['size'])/32"
358
+ :unit="oPrice['unit']"
359
+ ></xd-unit>
360
+ <xd-unit
361
+ v-else
362
+ :price="oPrice['value']"
363
+ :font-size="oPrice['size'] || 26"
364
+ :is-show-icon="oPrice['isShowIcon'] ===undefined? true:oPrice['isShowIcon']"
365
+ :icon-size="0.35*Number(oPrice['size'])/32"
366
+ ></xd-unit>
367
+ </view>
368
+ </template>
369
+ </view>
370
+ </view>
371
+ <!--自定义金额显示 结束-->
372
+ <!--支持门店-->
373
+ <slot name="supportshop"></slot>
374
+ <!--支持门店-->
375
+ <!--订单信息-->
376
+ <view class="xd-store__order">
377
+ <view
378
+ class="xd-store__order-item"
379
+ v-for="(order,orderInde) in info['orderInfo']"
380
+ :key="orderInde"
381
+ >
382
+ <view>{{order['label']}}</view>
383
+ <view v-if="order['unit'] === true">
384
+ <xd-unit
385
+ :price="order['value']"
386
+ font-weight="normal"
387
+ :iocn-size="0.3"
388
+ :font-size="26"
389
+ ></xd-unit>
390
+ </view>
391
+ <view v-else>{{order['value']}}</view>
392
+ </view>
393
+ </view>
394
+ <!--订单信息-->
395
+ <!--插槽内容-->
396
+ <slot name="footer"></slot>
397
+ <!--插槽内容-->
398
+ <!--订单操作按钮-->
399
+ <template v-if="info['btn'] && !isEmpty(info.btn)">
400
+ <view class="xd-store__btn-block"></view>
401
+ <view
402
+ class="xd-store__btn"
403
+ :class="{
404
+ center: info['btn'].length === 1,
405
+ right: info['btn'].length > 1
406
+ }">
407
+ <view v-for="(btn,btnIndex) in info['btn']" :key="btnIndex">
408
+ <xd-button
409
+ @click="handleBtnClick(info,btn)"
410
+ :btn-type="btn['type']"
411
+ size="mini"
412
+ :radius="btn['radius']"
413
+ >{{btn['label']}}
414
+ </xd-button>
415
+ </view>
416
+ </view>
417
+ </template>
418
+ <!--订单操作按钮-->
419
+ </view>
420
+ </view>
421
+ </template>
422
+
423
+ <script>
424
+
425
+ /**
426
+ * XdStoreOrderDetail 我的订单详情
427
+ * @description 我的订单详情
428
+ * @property {Object} detail 订单详情数据接口查看测试数据
429
+ *
430
+ * @event {Function} onBtn {item, btn} 点击取消按钮与去付款事件
431
+ * @event {Function} onProductDetail {order, btn} 点击商品事件
432
+ * @event {Function} onExpress {express} 点击快递列表事件
433
+ */
434
+
435
+ import XdUnit from "@/components/XdUnit/XdUnit";
436
+ import xdImage from "@/components/XdImage/XdImage";
437
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
438
+ import XdButton from "@/components/XdButton/XdButton";
439
+
440
+
441
+ export default {
442
+ name: "XdStoreOrderDetail",
443
+ components: {
444
+ XdButton,
445
+ XdFontIcon,
446
+ xdImage,
447
+ XdUnit
448
+ },
449
+ props: {
450
+ detail: {
451
+ type: Object | null,
452
+ required: true
453
+ },
454
+
455
+ productWidth: {
456
+ type: Number,
457
+ default: 160
458
+ },
459
+ productHeight: {
460
+ type: Number,
461
+ default: 160
462
+ }
463
+ },
464
+
465
+ computed:{
466
+ isSubOrder(){
467
+ let flag = false;
468
+ if(this.info !== null
469
+ && this.info['subOrderList']
470
+ && this.info['subOrderList'].length > 0) {
471
+ flag = true
472
+ }
473
+ return flag
474
+ }
475
+ },
476
+
477
+
478
+ data(){
479
+ return {
480
+ info: null,
481
+
482
+ //测试数据
483
+ testData:{
484
+ title: '廊坊美年大健康体检中心(廊坊分院)', //店铺名称 (必填)
485
+ shop_address: '北京北京石景山区八大处科技园区小区AQ1-1-2000', //是否显示店铺地址
486
+ shop_logo: 'https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20210126/26cfc49abbdc33eeb187ca22730b995a.jpg', ////是否显示店铺logo
487
+
488
+ //电子码 (密码)
489
+ code: [
490
+ {label: "兑换码:", value: "jfbcake.oss-cn-beijing.aliyuncs.comliyuncs.com"},
491
+ {label: "兑换码:", value: "45122"}
492
+ ],
493
+
494
+ //电子码 (号码 + 密码)
495
+ numberAndPassword: [
496
+ [{label: "券号:", value: "1515"}, {label: "密码:", value: "45122"}],
497
+ [{label: "券号:", value: "1515"}, {label: "密码:", value: "45122"}]
498
+ ],
499
+
500
+ //条形码
501
+ barcode: [
502
+ {
503
+ label: "券号:cardcardcardcard0001 密码:21337",
504
+ value: "http://sandbox-m-cake.jufubao.cn/rest/3.0/cakeshop/order/order/barcode_img?c=&p=21337"
505
+ },
506
+ {
507
+ label: "券号:cardcardcardcard0001 密码:21337",
508
+ value: "http://sandbox-m-cake.jufubao.cn/rest/3.0/cakeshop/order/order/barcode_img?c=cardcardcardcard0001&p=21337"
509
+ }
510
+ ],
511
+
512
+ //二维码
513
+ twocode: [
514
+ {
515
+ label: "券号:cardcardcardcard0001 密码:21337",
516
+ value: "https://c.jufubao.cn/web/pb/qrcode/image?content=21337"
517
+ },
518
+ {
519
+ label: "券号:cardcardcardcard0001 密码:21337",
520
+ value: "https://c.jufubao.cn/web/pb/qrcode/image?content=21337"
521
+ }
522
+ ],
523
+
524
+ //地址管理
525
+ address: {
526
+ receipt_address: "北京北京石景山区八大处科技园区小区AQ1-1-2000",
527
+ receipt_phone: "15110208397",
528
+ receipt_username: "高世勇",
529
+ },
530
+
531
+ //订单信息
532
+ orderInfo: [
533
+ {label: '订单号:', value: '12588744664462252'},
534
+ {label: '下单时间:', value: '2020-08-15 10:25:56'},
535
+ {label: '确认时间:', value: '2020-08-15 12:00:00'},
536
+ {label: '支付时间:', value: ' 2020-08-15 12:00:00'},
537
+ {label: '发货时间:', value: '2020-08-15 12:00:00'},
538
+ {label: '订单备注:', value: '通过记录自己从纽约出发到洛杉矶,再飞到中国的经历'},
539
+ ],
540
+
541
+ //订单消费数据
542
+ price: 630, //商品总额
543
+ total_price: 630, //商品总额
544
+ post_price: 0, //配送费
545
+ pay_price: 0, //实付款
546
+
547
+ //订单消费金额(algin:space-between,flex-start, flex-end)
548
+ /**
549
+ * @description 订单消费金额
550
+ * @property orderPrice.algin 对齐方式: space-between(两端) flex-start(左对齐) flex-end(右对齐)
551
+ * @property orderPrice.size 字体大小 默认: 26rpx
552
+ * @property orderPrice.color 字体颜色 默认:#999
553
+ * @property orderPrice.unit 启用自定义单位 默认:无
554
+ * @property orderPrice.type 显示线
555
+ */
556
+ orderPrice: [
557
+ {label: '商品总额', value: 300, algin: 'space-between', size: 26},
558
+ {label: '消费卡', value: 300 , algin: 'space-between', size: 26},
559
+ {label: '微信支付:', value: 30, unit:"元", algin: 'space-between', size: 26},
560
+ {label: '快递运费:', value: 0, algin: 'flex-end', size: 26},
561
+ {type: 'line'}, //显示线
562
+ {label: '实付款:', value: 300, algin: 'flex-end', size: 32},
563
+ {label: '合计:', value: 300, algin: 'flex-end', size: 32},
564
+ ],
565
+
566
+ /**
567
+ * @description 订单自定义信息显示模块
568
+ */
569
+ makeInfoTitle: '预约信息',
570
+ makeInfo:[
571
+ {label: '姓名:', value: '张三'},
572
+ {label: '日期:', value: '2020-08-15'},
573
+ {label: '证件类型:', value: '身份证'},
574
+ {label: '证件号码:', value: '1310********7844'},
575
+ {label: '婚姻状态:', value: '未婚'},
576
+ {label: '手机号码:', value: '131*******452'},
577
+ {label: '订单备注:', value: '通过记录自己从纽约出发到洛杉矶,再飞到中国的经历'},
578
+ ],
579
+
580
+ //显示操作按钮(选填)(不显示按钮btn为空数组)
581
+ btn: [
582
+ {'label': '取消订单', value: 1, type: 'info', radius: '12rpx'},
583
+ {'label': '去付款', value: 2, type: 'primary', radius: '12rpx'},
584
+ ],
585
+
586
+
587
+
588
+ /**子订单模块 与 商品,快递列表 二选一******/
589
+ //商品列表
590
+ products: [
591
+ {
592
+ id: 161078,
593
+ num: 3, //产品数量
594
+ product_id: 423457, //商品ID (必填)
595
+ product_name: "金龙鱼 醇香菜籽油 5L*4桶", //产品名称 (必填)
596
+ product_uuid: '5f71e590-ee83-11ea-b9ba-debcd2503074', //产品uuid (选填)
597
+ product_sku: "0", //产品型号ID (选填)
598
+ product_sku_text: "", //产品型号名称 (选填)
599
+ price: 312, //产品价格 (必填)
600
+ thumb: "https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20210126/26cfc49abbdc33eeb187ca22730b995a.jpg?x-oss-process=style/400_400" //产品缩略图 (必填)
601
+ }
602
+ ],
603
+
604
+
605
+ //快递列表
606
+ express: [
607
+ {comment: "不在数据列表中的数据可以自行扩张", company: 6, name: "韵达", number: "JT51210012120"},
608
+ ],
609
+
610
+ /**
611
+ * @description 订单菜单信息
612
+ */
613
+ subOrderList:[
614
+ {
615
+ "status": "3000",
616
+ "status_name": "支付完成",
617
+ "total_price": "100.00",
618
+ "order_id": "m458170654005029364",
619
+ "placed_time": "2022-03-15 19:28:09",
620
+ "more": false,
621
+ "product_data": [
622
+ {
623
+ "product_id": 0,
624
+ "product_name": "六神花露水",
625
+ "ct": 1,
626
+ "thumb": "https://jfbcake.oss-cn-beijing.aliyuncs.com/uploads/20210126/26cfc49abbdc33eeb187ca22730b995a.jpg",
627
+ "ext": "",
628
+ "price": "25.00",
629
+ },
630
+ {
631
+ "product_id": 0,
632
+ "product_name": "六神花露水",
633
+ "ct": 1,
634
+ "thumb": "http://pic.lvmama.com//uploads/pc/place2/2017-05-16/016f9813-f456-4c9d-9d63-0ceb5970187d.jpg",
635
+ "ext": "",
636
+ "price": "25.00",
637
+ }, {
638
+ "product_id": 0,
639
+ "product_name": "六神花露水",
640
+ "ct": 1,
641
+ "thumb": "https:\/\/jfb-public-images.oss-cn-qingdao.aliyuncs.com\/20210119153621543.jpg?x-oss-process=style\/200_200",
642
+ "ext": "",
643
+ "price": "25.00",
644
+ },
645
+ {
646
+ "product_id": 0,
647
+ "product_name": "六神花露水",
648
+ "ct": 1,
649
+ "thumb": "https:\/\/jfb-public-images.oss-cn-qingdao.aliyuncs.com\/20210119153621543.jpg?x-oss-process=style\/200_200",
650
+ "ext": "",
651
+ "price": "25.00",
652
+ },
653
+ ],
654
+ "express_data": [
655
+ {name: '百世快递', number: 'BS1212212'},
656
+ {name: '顺丰快递', number: 'FS97878787'},
657
+ ],
658
+ "shop_data": {
659
+ "address": '河北省廊坊市三河市鑫乐汇一层',
660
+ "name": '大牌烘焙一店',
661
+ }
662
+ }
663
+ ],
664
+ /**子订单模块 与 商品,快递列表 二选一******/
665
+
666
+ //配送模块
667
+ send: {
668
+ label: '专人配送/配送时间',
669
+ value: '2020-08-16 11:30:00'
670
+ },
671
+
672
+ //消费卡列表
673
+ card: [
674
+ {
675
+ card_number: "101070100032692",
676
+ card_type_name: "聚福宝福卡测试",
677
+ point: "45"
678
+ }
679
+ ],
680
+ }
681
+ }
682
+ },
683
+
684
+ created() {
685
+ this.init();
686
+ },
687
+
688
+
689
+
690
+ methods:{
691
+ init(){
692
+ let info = null;
693
+ if(this.detail === null) {
694
+ info = this.$xdUniHelper.cloneDeep(this.testData);
695
+ }
696
+ else if(this.$xdUniHelper.checkVarType(this.detail) === 'object') {
697
+ info = this.$xdUniHelper.cloneDeep(this.detail);
698
+ }
699
+
700
+ if(info && info.subOrderList && info.subOrderList.length > 0) {
701
+ info.subOrderList = info.subOrderList.map(item=>{
702
+ return {...item, more: false}
703
+ })
704
+ }
705
+ this.info = info
706
+ },
707
+
708
+ /***
709
+ * @description 点击标题事件
710
+ */
711
+ handleTitleClick(item) {
712
+ this.$emit('onTitle', item);
713
+ },
714
+
715
+
716
+ /**
717
+ * @description 是否为空
718
+ * @param data
719
+ */
720
+ isEmpty(data){
721
+ return this.$xdUniHelper.isEmpty(data);
722
+ },
723
+
724
+ /**
725
+ *@description 复制功能
726
+ * @param text
727
+ */
728
+ copy(text){
729
+ // #ifdef H5
730
+ this.$copyText(text).then(
731
+ res => {
732
+ uni.showToast({
733
+ title: '复制成功'
734
+ })
735
+ }
736
+ )
737
+ // #endif
738
+ // #ifndef H5
739
+ uni.setClipboardData({
740
+ data: text,
741
+ success: () => {
742
+ uni.showToast({
743
+ title: '复制成功'
744
+ })
745
+ }
746
+ })
747
+ // #endif
748
+ },
749
+
750
+ /**
751
+ * @description 点击按钮事件
752
+ * @param order
753
+ * @param btn
754
+ */
755
+ handleBtnClick(order, btn) {
756
+ this.$emit('onBtn', {order, btn});
757
+ },
758
+
759
+ /**
760
+ * @description 点击商品事件
761
+ * @param order
762
+ * @param product
763
+ */
764
+ onProductDetail(order, product) {
765
+ this.$emit('onProductDetail', {order, product});
766
+ },
767
+
768
+ /**
769
+ * @description 点击查看快递详情
770
+ * @param express
771
+ */
772
+ handleExpress(express,item){
773
+ this.$emit('onExpress', express,item);
774
+ }
775
+ }
776
+ }
777
+ </script>
778
+
779
+ <style scoped lang="less">
780
+ .nopadding {
781
+ padding-bottom: 0!important;
782
+ margin-bottom: 0!important;
783
+ }
784
+
785
+ .xd-store {
786
+ &__header {
787
+ position: relative;
788
+
789
+ & > view {
790
+ position: relative;
791
+ z-index: 2;
792
+ }
793
+
794
+ &-body {
795
+ padding: 0 unit(20, rpx);
796
+ box-sizing: border-box;
797
+
798
+ &-status {
799
+ height: unit(120, rpx);
800
+ }
801
+
802
+
803
+ &-express {
804
+ margin-top: unit(20, rpx);
805
+ background: #ffffff;
806
+ padding: unit(20, rpx) unit(34, rpx);
807
+ color: #333;
808
+ font-size: @xd-font-size-base;
809
+
810
+ & > view {
811
+ display: flex;
812
+ justify-content: space-between;
813
+ align-items: center;
814
+ }
815
+
816
+ }
817
+ }
818
+
819
+ &-bg {
820
+ position: absolute !important;
821
+ height: unit(200, rpx);
822
+ left: 0;
823
+ top: 0;
824
+ right: 0;
825
+ z-index: 1;
826
+ border-radius: 0 0 unit(20, rpx) unit(20, rpx);
827
+
828
+ }
829
+ }
830
+
831
+ &__subOrder {
832
+ margin-top: unit(20,rpx);
833
+
834
+ &-item {
835
+ .uni-box-radius();
836
+ background: #fff;
837
+ padding: unit(20, rpx) unit(20, rpx) unit(10, rpx);
838
+ margin-bottom: unit(20, rpx);
839
+
840
+ &:last-child {
841
+ margin-bottom: unit(0, rpx);
842
+ }
843
+
844
+ &-title {
845
+ display: flex;
846
+ justify-content: space-between;
847
+ align-items: flex-start;
848
+ border-bottom: 1px solid #e5e5e5;
849
+ line-height: unit(40,rpx);
850
+ padding-bottom: unit(15,rpx);
851
+ margin-bottom: unit(15,rpx);
852
+
853
+ & > view:first-child {
854
+ font-size: @xd-font-size-base + 4;
855
+ }
856
+
857
+ & > view:last-child {
858
+ flex-shrink: 0;
859
+ margin-left: unit(15,rpx);
860
+ font-size: @xd-font-size-base;
861
+ color: #666;
862
+ }
863
+ }
864
+
865
+ &-content {
866
+ &-list {
867
+ display: flex;
868
+ justify-content: space-between;
869
+ align-items: flex-start;
870
+ margin-bottom: unit(15,rpx);
871
+
872
+ &:last-child {
873
+ margin-bottom: unit(0, rpx);
874
+ }
875
+
876
+ & > view:first-child {
877
+ display: flex;
878
+ flex-shrink: 0;
879
+ justify-content: center;
880
+ align-items: center;
881
+ box-sizing: border-box;
882
+ border:1px solid #efefef;
883
+ padding: unit(5,rpx);
884
+ overflow: hidden;
885
+
886
+ & > image {
887
+ max-width: unit(110,rpx);
888
+ }
889
+ }
890
+
891
+ & > view:nth-child(2) {
892
+ flex: 1;
893
+ width: 0;
894
+ font-size: @xd-font-size-base + 2;
895
+ padding: 0 unit(15,rpx);
896
+ color: #666;
897
+ }
898
+
899
+ & > view:last-child {
900
+ flex-shrink: 0;
901
+ min-width: unit(100,rpx);
902
+ text-align: right;
903
+ font-size: unit(26,rpx);
904
+ color: #999;
905
+ }
906
+ }
907
+ }
908
+
909
+ &-more {
910
+ height: unit(2,rpx);
911
+ position: relative;
912
+ margin: unit(15,rpx) 0 unit(15,rpx);
913
+ background: #e5e5e5;
914
+ display: flex;
915
+ justify-content:center;
916
+ align-items: flex-start;
917
+
918
+ & > view {
919
+ margin-top: unit(-4,rpx);
920
+ background: #fff;
921
+ }
922
+ }
923
+
924
+ &-footer {
925
+ display: flex;
926
+ justify-content: flex-end;
927
+ align-items: center;
928
+ padding-bottom: unit(10,rpx);
929
+ }
930
+
931
+ &-shop {
932
+ & > view {
933
+ font-size: @xd-font-size-base;
934
+ &:first-child {
935
+ color: #333;
936
+ }
937
+ &:last-child {
938
+ padding-top: unit(10,rpx);
939
+ color: #666;
940
+ }
941
+
942
+ display: flex;
943
+ justify-content: flex-start;
944
+ align-items: flex-start;
945
+
946
+ & > view:first-child {
947
+ flex-shrink: 0;
948
+ }
949
+
950
+ & > view:last-child {
951
+ flex: 1;
952
+ width: 0;
953
+
954
+ }
955
+ }
956
+ }
957
+ }
958
+ }
959
+
960
+ &__express {
961
+ font-size: @xd-font-size-base;
962
+ background: #fff;
963
+ padding: 0;
964
+ margin-top: unit(20, rpx);
965
+
966
+ & > view {
967
+ display: flex;
968
+ justify-content: space-between;
969
+ align-items: center;
970
+ border-bottom: 1px solid #efefef;
971
+ padding: 0 unit(34, rpx);
972
+ line-height: unit(40, rpx);
973
+
974
+ &:last-child {
975
+ border-bottom: 0;
976
+ }
977
+
978
+ & > view:first-child {
979
+ width: unit(60, rpx);
980
+ height: unit(60, rpx);
981
+ display: flex;
982
+ justify-content: center;
983
+ align-items: center;
984
+ flex-shrink: 0;
985
+ margin-right: unit(34, rpx);
986
+ }
987
+
988
+ & > view:nth-child(2) {
989
+ flex: 1;
990
+ width: 0;
991
+ padding: unit(20, rpx) 0;
992
+
993
+ & > view:first-child {
994
+ line-height: unit(40, rpx);
995
+ font-size: @xd-font-size-lg;
996
+ display: flex;
997
+ justify-content: flex-start;
998
+ align-items: flex-end;
999
+
1000
+ & > view:last-child {
1001
+ font-size: @xd-font-size-base;
1002
+ margin-left: unit(20, rpx);
1003
+ }
1004
+ }
1005
+
1006
+ & > view:last-child {
1007
+ font-size: @xd-font-size-base;
1008
+ color: #999;
1009
+ }
1010
+ }
1011
+
1012
+ & > view:last-child {
1013
+ flex-shrink: 0;
1014
+ margin-left: unit(34, rpx);
1015
+ }
1016
+ }
1017
+ }
1018
+
1019
+ &__address {
1020
+ background: #ffffff;
1021
+ .uni-box-radius();
1022
+ padding: unit(20, rpx) unit(34, rpx);
1023
+ display: flex;
1024
+ justify-content: flex-start;
1025
+ align-items: center;
1026
+ color: #333;
1027
+
1028
+ & > view:first-child {
1029
+ margin-right: unit(30, rpx);
1030
+ }
1031
+
1032
+ & > view:last-child {
1033
+ & > view:first-child {
1034
+ font-size: @xd-font-size-lg;
1035
+ padding-bottom: unit(10, rpx);
1036
+
1037
+ > text:last-child {
1038
+ font-size: @xd-font-size-base + 2;
1039
+ color: #999;
1040
+ margin-left: unit(10, rpx);
1041
+ }
1042
+ }
1043
+
1044
+ & > view:last-child {
1045
+ font-size: @xd-font-size-base;
1046
+ }
1047
+ }
1048
+ }
1049
+
1050
+ &__self {
1051
+ background: #ffffff;
1052
+ .uni-box-radius();
1053
+ padding: unit(20, rpx) unit(34, rpx);
1054
+ display: flex;
1055
+ justify-content: flex-start;
1056
+ align-items: center;
1057
+ color: #333;
1058
+
1059
+ & > view:first-child {
1060
+ margin-right: unit(30, rpx);
1061
+ }
1062
+
1063
+ & > view:last-child {
1064
+ & > view:first-child {
1065
+ font-size: @xd-font-size-lg;
1066
+
1067
+ > text:last-child {
1068
+ font-size: @xd-font-size-base + 2;
1069
+ color: #999;
1070
+ margin-left: unit(10, rpx);
1071
+ }
1072
+ }
1073
+
1074
+ & > view:last-child {
1075
+ font-size: @xd-font-size-base;
1076
+ }
1077
+ }
1078
+ }
1079
+
1080
+ &__sendinfo {
1081
+ display: flex;
1082
+ justify-content: space-between;
1083
+ align-items: center;
1084
+ margin: unit(20, rpx) unit(20,rpx) 0;
1085
+ .uni-box-radius();
1086
+ background: #fff;
1087
+ padding: unit(20, rpx);
1088
+ font-size: @xd-font-size-lg;
1089
+ }
1090
+
1091
+ &__numberAndPassword {
1092
+ .uni-box-radius();
1093
+ margin-top: unit(20, rpx);
1094
+ background: #fff;
1095
+ font-size: @xd-font-size-base;
1096
+ padding: unit(20, rpx);
1097
+ box-sizing: border-box;
1098
+
1099
+ & > view {
1100
+ display: flex;
1101
+ justify-content: space-between;
1102
+ align-items: center;
1103
+ padding-bottom: unit(20, rpx);
1104
+
1105
+ &:last-child {
1106
+ padding-bottom: 0;
1107
+ }
1108
+
1109
+ & > view:first-child {
1110
+ flex: 1;
1111
+ .uni-break-word();
1112
+ margin-right: unit(20, rpx);
1113
+ background: #f8f8f8;
1114
+ padding: unit(10, rpx);
1115
+ border-radius: unit(15, rpx);
1116
+ font-size: @xd-font-size-lg - 2;
1117
+
1118
+ &:hover {
1119
+ background: #ececec;
1120
+ }
1121
+
1122
+ display: flex;
1123
+ justify-content: center;
1124
+ align-items: flex-start;
1125
+
1126
+ & > view:first-child {
1127
+ flex-shrink: 0;
1128
+ }
1129
+
1130
+ & > view:last-child {
1131
+ flex: 1;
1132
+ width: 0;
1133
+ }
1134
+ }
1135
+
1136
+ & > view:last-child {
1137
+ width: unit(120, rpx);
1138
+ }
1139
+ }
1140
+ }
1141
+
1142
+ &__code {
1143
+ .uni-box-radius();
1144
+ margin-top: unit(20, rpx);
1145
+ background: #fff;
1146
+ font-size: @xd-font-size-base;
1147
+ padding: unit(20, rpx);
1148
+ box-sizing: border-box;
1149
+
1150
+ & > view {
1151
+ display: flex;
1152
+ justify-content: space-between;
1153
+ align-items: center;
1154
+ padding-bottom: unit(20, rpx);
1155
+
1156
+ &:last-child {
1157
+ padding-bottom: 0;
1158
+ }
1159
+
1160
+ & > view:first-child {
1161
+ flex: 1;
1162
+ .uni-break-word();
1163
+ margin-right: unit(20, rpx);
1164
+ background: #f8f8f8;
1165
+ padding: unit(10, rpx);
1166
+ border-radius: unit(15, rpx);
1167
+
1168
+ &:hover {
1169
+ background: #ececec;
1170
+ }
1171
+ display: flex;
1172
+ justify-content: center;
1173
+ align-items: flex-start;
1174
+
1175
+ & > view:first-child {
1176
+ flex-shrink: 0;
1177
+ }
1178
+
1179
+ & >view:last-child {
1180
+ flex: 1;
1181
+ width: 0;
1182
+ }
1183
+ }
1184
+
1185
+ & > view:last-child {
1186
+ width: unit(120, rpx);
1187
+ }
1188
+ }
1189
+
1190
+ & .twocode {
1191
+ width: unit(160, rpx);
1192
+ height: unit(160, rpx);
1193
+ }
1194
+
1195
+ & .barcode {
1196
+ width: unit(320, rpx);
1197
+ height: unit(160, rpx);
1198
+ }
1199
+ }
1200
+
1201
+ &__codeimg {
1202
+ .uni-box-radius();
1203
+ margin-top: unit(20, rpx);
1204
+ background: #fff;
1205
+ font-size: @xd-font-size-base;
1206
+ padding: unit(20, rpx);
1207
+ box-sizing: border-box;
1208
+
1209
+ & > view {
1210
+ text-align: center;
1211
+ padding-bottom: unit(10,rpx);
1212
+ margin-bottom: unit(10,rpx);
1213
+ border-bottom: 1px solid #efefef;
1214
+ &:last-child {
1215
+ border-bottom: 0;
1216
+ padding-bottom: 0;
1217
+ }
1218
+
1219
+ & > view:first-child {
1220
+ flex: 1;
1221
+ .uni-break-word();
1222
+ margin-right: unit(20, rpx);
1223
+ background: #f8f8f8;
1224
+ padding: unit(10, rpx);
1225
+ border-radius: unit(15, rpx);
1226
+
1227
+ &:hover {
1228
+ background: #ececec;
1229
+ }
1230
+ }
1231
+
1232
+ & > view:last-child {
1233
+ width: 100%;
1234
+ text-align: center;
1235
+ font-size: @xd-font-size-lg;
1236
+ }
1237
+ }
1238
+
1239
+ .twocode {
1240
+ width: unit(300, rpx);
1241
+ height: unit(300, rpx);
1242
+ }
1243
+
1244
+ .barcode {
1245
+ max-height: unit(160, rpx);
1246
+ max-width: 100%;
1247
+ }
1248
+ }
1249
+
1250
+ &__order {
1251
+ .uni-box-radius();
1252
+ margin: unit(20, rpx);
1253
+ background: #fff;
1254
+ padding: unit(20, rpx);
1255
+
1256
+ &-item {
1257
+ display: flex;
1258
+ justify-content: flex-start;
1259
+ align-items: flex-start;
1260
+ padding: unit(10, rpx) 0;
1261
+ font-size: @xd-font-size-base;
1262
+
1263
+ &:last-child {
1264
+ padding-bottom: 0;
1265
+ }
1266
+
1267
+ &:first-child {
1268
+ padding-top: 0;
1269
+ }
1270
+
1271
+ & > view:first-child {
1272
+ color: #666;
1273
+ min-width: unit(130, rpx);
1274
+ text-align: right;
1275
+ }
1276
+
1277
+ & > view:last-child {
1278
+ flex: 1;
1279
+ }
1280
+ }
1281
+
1282
+ }
1283
+
1284
+ &__btn {
1285
+ position: fixed !important;
1286
+ left: 0;
1287
+ right: 0;
1288
+ bottom: 0;
1289
+ background: #fff;
1290
+ border-top: 1px solid #ececec;
1291
+ height: unit(100, rpx);
1292
+ padding: 0 unit(34, rpx);
1293
+ .safe-area();
1294
+
1295
+
1296
+ &.center {
1297
+ display: flex;
1298
+ align-items: center;
1299
+ justify-content: center;
1300
+ & > view {
1301
+ margin-left: 0!important;
1302
+ width: 100%;
1303
+ }
1304
+ }
1305
+
1306
+ &.right {
1307
+ justify-content: flex-end;
1308
+ display: flex;
1309
+ align-items: center;
1310
+ }
1311
+
1312
+
1313
+ & > view:first-child {
1314
+
1315
+ }
1316
+
1317
+ & > view:last-child {
1318
+ margin-left: unit(20, rpx);
1319
+ }
1320
+
1321
+ &-block {
1322
+ height: unit(100, rpx);
1323
+ }
1324
+ }
1325
+
1326
+ &__products {
1327
+ .uni-box-radius();
1328
+ margin: unit(20, rpx) unit(20, rpx) 0;
1329
+ background: #fff;
1330
+ padding: unit(20, rpx);
1331
+
1332
+ &-line {
1333
+ position: absolute;
1334
+ left: 0;
1335
+ right: 0;
1336
+ bottom: 0;
1337
+ height: 1px;
1338
+ opacity: 0.2;
1339
+ }
1340
+
1341
+ &-address {
1342
+ font-size: @xd-font-size-sm;
1343
+ color: #999;
1344
+ }
1345
+
1346
+ &-title {
1347
+ display: flex;
1348
+ justify-content: flex-start;
1349
+ align-items: center;
1350
+ position: relative;
1351
+ padding-bottom: unit(15, rpx);
1352
+ font-size: @xd-font-size-base + 2;
1353
+
1354
+
1355
+ &-left {
1356
+ width: unit(60,rpx);
1357
+ height: unit(60,rpx);
1358
+ flex-shrink: 0;
1359
+ margin-right: unit(20,rpx);
1360
+ border-radius: unit(10,rpx);
1361
+ overflow: hidden;
1362
+
1363
+ &>image {
1364
+ width: 100%;
1365
+ height: 100%;
1366
+ }
1367
+ }
1368
+
1369
+ &-right {
1370
+ flex: 1;
1371
+ width: 0;
1372
+
1373
+
1374
+ & > view:first-child {
1375
+ display: flex;
1376
+ justify-content: flex-start;
1377
+ align-items: center;
1378
+
1379
+ & > view:first-child {
1380
+ flex: 1;
1381
+ }
1382
+ }
1383
+ }
1384
+ }
1385
+
1386
+ &-item {
1387
+ display: flex;
1388
+ justify-content: space-between;
1389
+ align-items: flex-start;
1390
+ padding: unit(20, rpx) 0;
1391
+ border-bottom: 1px solid #ececec;
1392
+
1393
+ &:last-child {
1394
+ border-bottom: 0;
1395
+ padding-bottom: 0;
1396
+ }
1397
+
1398
+
1399
+ &-image {
1400
+ margin-right: unit(20, rpx);
1401
+ }
1402
+
1403
+ &-body {
1404
+ flex: 1;
1405
+ position: relative;
1406
+ font-size: @xd-font-size-base + 2;
1407
+
1408
+ & > view:first-child {
1409
+ .uni-max-cut(3, 120);
1410
+ line-height: unit(40,rpx);
1411
+ }
1412
+
1413
+ & > view:nth-child(2) {
1414
+ color: #999;
1415
+ font-size: @xd-font-size-sm;
1416
+ margin-top: unit(10, rpx);
1417
+ }
1418
+
1419
+ & > view:last-child {
1420
+ position: absolute;
1421
+ left: 0;
1422
+ bottom: 0;
1423
+ right: 0;
1424
+ display: flex;
1425
+ justify-content: space-between;
1426
+ align-items: center;
1427
+
1428
+ & > view:last-child {
1429
+ font-size: @xd-font-size-base;
1430
+ }
1431
+ }
1432
+
1433
+ }
1434
+ }
1435
+ }
1436
+
1437
+ &__price {
1438
+ .uni-box-radius();
1439
+ margin: unit(20, rpx) unit(20, rpx) 0;
1440
+ padding: unit(20, rpx);
1441
+ background: #fff;
1442
+
1443
+ &-line {
1444
+ position: absolute;
1445
+ left: 0;
1446
+ right: 0;
1447
+ bottom: 0;
1448
+ height: 1px;
1449
+ opacity: 0.2;
1450
+ }
1451
+
1452
+ &-card {
1453
+ position: relative;
1454
+ padding-bottom: unit(20, rpx);
1455
+ margin-bottom: unit(20, rpx);
1456
+ box-sizing: border-box;
1457
+
1458
+
1459
+ &-title {
1460
+ display: flex;
1461
+ justify-content: space-between;
1462
+ align-items: center;
1463
+ font-size: @xd-font-size-lg;
1464
+ }
1465
+
1466
+ &-item {
1467
+ font-size: @xd-font-size-sm;
1468
+ padding: unit(10, rpx) 0;
1469
+ border-bottom: 1px solid #eee;
1470
+
1471
+ &:last-child {
1472
+ border-bottom: 0;
1473
+ padding-bottom: 0;
1474
+ }
1475
+
1476
+ & > view:first-child {
1477
+ color: #999;
1478
+ }
1479
+
1480
+ & > view:last-child {
1481
+ display: flex;
1482
+ justify-content: space-between;
1483
+ align-items: center;
1484
+ }
1485
+ }
1486
+ }
1487
+
1488
+ &-label {
1489
+ & > view {
1490
+ display: flex;
1491
+ justify-content: space-between;
1492
+ align-items: center;
1493
+ font-size: @xd-font-size-base;
1494
+ color: #999;
1495
+ line-height: unit(50,rpx);
1496
+
1497
+ &:nth-child(3),
1498
+ &:nth-child(4) {
1499
+ font-size: @xd-font-size-lg;
1500
+ color: #333;
1501
+ }
1502
+
1503
+ &:nth-child(4) {
1504
+ padding-right: unit(8,rpx);
1505
+ }
1506
+ }
1507
+ }
1508
+
1509
+ &-show {
1510
+ .uni-box-radius();
1511
+ padding: unit(20, rpx);
1512
+ background: #fff;
1513
+ margin: unit(20, rpx) unit(20, rpx) 0;
1514
+
1515
+ &-line {
1516
+ background: #efefef;
1517
+ height: 1px;
1518
+ overflow: hidden;
1519
+ margin: unit(6,rpx) 0;
1520
+ width: 100%;
1521
+ }
1522
+ & > view {
1523
+ display: flex;
1524
+ justify-content: space-between;
1525
+ align-items: center;
1526
+ line-height: unit(55, rpx);
1527
+ }
1528
+ }
1529
+ }
1530
+
1531
+ &__custom {
1532
+ .uni-box-radius();
1533
+ margin: unit(20, rpx) unit(20, rpx) 0;
1534
+ padding: unit(20, rpx);
1535
+ background: #fff;
1536
+
1537
+ &-title {
1538
+ font-size: @xd-font-size-lg;
1539
+ line-height: unit(40,rpx);
1540
+ padding-bottom: unit(15,rpx);
1541
+ }
1542
+
1543
+ &-item {
1544
+ display: flex;
1545
+ justify-content: space-between;
1546
+ align-items: flex-start;
1547
+ font-size: @xd-font-size-base;
1548
+ border-bottom: 1px solid #efefef;
1549
+ line-height: unit(36,rpx);
1550
+ padding: unit(10,rpx) 0;
1551
+
1552
+ &:last-child {
1553
+ border-bottom: 0;
1554
+ }
1555
+
1556
+ & > view:first-child {
1557
+ width: unit(130,rpx);
1558
+ flex-shrink: 0;
1559
+ margin-right: unit(10,rpx);
1560
+ color: #666;
1561
+ }
1562
+
1563
+ & > view:last-child {
1564
+ flex: 1;
1565
+ width: 0;
1566
+ color: #333;
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1571
+ </style>