瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

560 lines
10 KiB

11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
  1. <template>
  2. <view>
  3. <navbar
  4. title="订单详情"
  5. leftClick
  6. @leftClick="$utils.navigateBack"
  7. />
  8. <!-- 水洗店 -->
  9. <view class="">
  10. <!-- <view class="controls">
  11. <view class="title">
  12. <image src="../static/order/icon.png" mode=""></image>
  13. 服务完成
  14. </view>
  15. <view class="tips">
  16. 待送回
  17. </view>
  18. <view class="btns">
  19. <view class="btn1">
  20. 快递寄回
  21. </view>
  22. <view class="btn2">
  23. 线下配送
  24. </view>
  25. </view>
  26. </view> -->
  27. <view class="steps">
  28. <uv-steps
  29. activeColor="#FD5100"
  30. :current="stepsCurrent" dot>
  31. <uv-steps-item :title="item"
  32. :key="index"
  33. v-for="(item, index) in steps"></uv-steps-item>
  34. </uv-steps>
  35. </view>
  36. </view>
  37. <!-- 酒店和水洗店 -->
  38. <view class="info">
  39. <view class="flex"
  40. style="display: flex;">
  41. <view style="width: 8rpx;height: 30rpx;
  42. background: #FD5100;border-radius: 6rpx;" />
  43. <view class="head-title">服务项目</view>
  44. </view>
  45. <view class="flex"
  46. v-for="(good, index) in order.cityOrderSkuList">
  47. <view class="server-item">
  48. <view class="img-box">
  49. <image :src="good.image" mode="aspectFill"></image>
  50. </view>
  51. <view class="server-info">
  52. <view class="server-title">
  53. {{good.name}}
  54. <!-- <view class="coupon">领券立减</view> -->
  55. </view>
  56. <view class="current-price"
  57. v-if="good.price">
  58. 价格<text class="unit"></text>{{good.price}}
  59. </view>
  60. <view class="current-price"
  61. v-if="good.points">
  62. 积分{{good.points}}
  63. </view>
  64. <view class="time-coupon">
  65. <!-- <view class="flex">
  66. <image src="@/static/home/time-icon.png"></image>
  67. <view class="time">{{order.useTime}}分钟</view>
  68. </view> -->
  69. <!-- <view class="sales-volume">
  70. <image src="@/static/icons/icon1.png"></image>
  71. <view class="desc">已售出{{msgShop.payNum}}+</view>
  72. </view> -->
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. <view class="line address">
  78. <view class="address-top">
  79. <view class="">
  80. 收货地址
  81. </view>
  82. <view class="copy">
  83. <image @click="$utils.copyText(order.addressName + item.addressDetails + ' ' + order.addressPhone + ' ' + order.addressCity)" src="/static/order/copy.png"></image>
  84. </view>
  85. </view>
  86. <view class="addressDetail">
  87. <view class="">{{order.addressName}} {{order.addressPhone}}</view>
  88. <view class="">{{order.addressCity + item.addressDetails}}</view>
  89. </view>
  90. </view>
  91. <view class="line">
  92. <view class="t min_tips">
  93. <view class="">
  94. 实付款
  95. </view>
  96. <view class="current-price"
  97. v-if="order.type == 0">
  98. {{ order.points }}积分
  99. </view>
  100. <view class="current-price"
  101. v-if="order.type == 1">
  102. {{ order.price }}
  103. </view>
  104. </view>
  105. <view class="min_tips">
  106. <view class="">
  107. 配送费
  108. </view>
  109. <view class="current-price"
  110. v-if="order.peiMoney">
  111. {{ order.peiMoney }}
  112. </view>
  113. </view>
  114. <view class="min_tips">
  115. <view class="">
  116. 支付方式
  117. </view>
  118. <view class="">
  119. {{ ['积分兑换', '微信支付'][order.type] }}
  120. </view>
  121. </view>
  122. </view>
  123. <!-- 订单信息 -->
  124. <view class="line">
  125. <view class="t min_tips">
  126. <view class="">
  127. 订单信息
  128. </view>
  129. </view>
  130. <view class="min_tips">
  131. <view class="">
  132. 订单编号
  133. </view>
  134. <view class="">
  135. {{order.id}}
  136. </view>
  137. </view>
  138. <view class="min_tips">
  139. <view class="">
  140. 下单时间
  141. </view>
  142. <view class="">
  143. {{order.createTime}}
  144. </view>
  145. </view>
  146. </view>
  147. <!-- 下单须知 -->
  148. <view class="line">
  149. <view class="t min_tips">
  150. <view class="">
  151. 下单须知
  152. </view>
  153. </view>
  154. <view class="min_tips" style="line-height: 40rpx;">
  155. {{msgShop.projectExplain}}
  156. </view>
  157. <view class="btns">
  158. <view @click="clickService" class="btn">
  159. 联系客服
  160. </view>
  161. </view>
  162. </view>
  163. </view>
  164. </view>
  165. </template>
  166. <script>
  167. export default {
  168. computed : {
  169. },
  170. data() {
  171. return {
  172. stepsCurrent : 0,
  173. steps : [
  174. '待支付',
  175. '待发货',
  176. '待收货',
  177. '已完成',
  178. ],
  179. // msgShop : {
  180. // money : 99.99,
  181. // image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg',
  182. // projectExplain : '1.xxxxxxxxxx xxxxxxxxxx。2.xxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxx。3.。',
  183. // },
  184. // order : {
  185. // money : 99.99,
  186. // address : '广东省广州市越秀区城南故事C3栋2802',
  187. // name : '李**',
  188. // phone : '150*****091',
  189. // unit : '120*40*75【桌子尺寸】',
  190. // state_dictText : '已完成',
  191. // price : 199.99,
  192. // id : '020644568964457',
  193. // createTime : '2024-01-18 15:39',
  194. // projectName : '桌布租赁'
  195. // },
  196. order : {},
  197. id : 0,
  198. }
  199. },
  200. onLoad(args) {
  201. this.id = args.id
  202. },
  203. onShow() {
  204. this.getDetail()
  205. },
  206. methods: {
  207. getDetail(){
  208. this.$api('getOrderDetail', {
  209. orderId : this.id
  210. }, res => {
  211. if(res.code == 200){
  212. this.order = res.result
  213. this.stepsCurrent= res.result.state
  214. }
  215. })
  216. },
  217. }
  218. }
  219. </script>
  220. <style scoped lang="scss">
  221. .order {
  222. background: linear-gradient(#4899a6, #6fc6ad, #6fc6ad);
  223. padding-bottom: 10px;
  224. }
  225. .controls{
  226. margin: 20rpx;
  227. background-color: #fff;
  228. height: 400rpx;
  229. display: flex;
  230. flex-direction: column;
  231. width: 710rpx;
  232. border-radius: 20rpx;
  233. justify-content: center;
  234. align-items: center;
  235. .title{
  236. display: flex;
  237. justify-content: center;
  238. align-items: center;
  239. font-size: 40rpx;
  240. image{
  241. width: 100rpx;
  242. height: 100rpx;
  243. margin-right: 20rpx;
  244. }
  245. }
  246. .tips{
  247. font-size: 26rpx;
  248. color: #FD5100;
  249. margin-top: 10rpx;
  250. }
  251. .btns{
  252. margin-top: 50rpx;
  253. display: flex;
  254. view{
  255. margin: 0 20rpx;
  256. display: flex;
  257. justify-content: center;
  258. align-items: center;
  259. color: #fff;
  260. background-color: $uni-color;
  261. padding: 15rpx 40rpx;
  262. border-radius: 40rpx;
  263. }
  264. .btn2{
  265. background-color: #FFFFFF;
  266. border: 1px solid #A7A7A7;
  267. color: #A7A7A7;
  268. }
  269. }
  270. }
  271. .steps{
  272. margin: 20rpx;
  273. background-color: #fff;
  274. display: flex;
  275. flex-direction: column;
  276. width: 710rpx;
  277. border-radius: 20rpx;
  278. padding: 70rpx 0;
  279. /deep/ .uv-text__value{
  280. font-size: 22rpx !important;
  281. }
  282. }
  283. .box {
  284. padding: 20px;
  285. .btns {
  286. display: flex;
  287. justify-content: center;
  288. align-items: center;
  289. margin-top: 10px;
  290. .btn {
  291. color: #fff;
  292. padding: 10rpx 50rpx;
  293. background-color: #ffb300;
  294. border-radius: 30rpx;
  295. font-size: 25rpx;
  296. margin-right: 10rpx;
  297. }
  298. .btc{
  299. background: #ccc;
  300. }
  301. }
  302. }
  303. .info {
  304. margin: 10px;
  305. padding: 20rpx;
  306. background-color: #fff;
  307. width: calc(100% - 40px);
  308. border-radius: 10px;
  309. .head-title {
  310. font-family: PingFang SC, PingFang SC-Bold;
  311. color: #2f2e2e;
  312. line-height: 30rpx;
  313. margin-left: 10rpx;
  314. }
  315. .server-item {
  316. display: flex;
  317. flex-wrap: wrap;
  318. align-items: center;
  319. justify-content: space-between;
  320. background: white;
  321. border-radius: 15rpx;
  322. box-sizing: border-box;
  323. margin: 20rpx 0rpx;
  324. width: 100%;
  325. .current-price {
  326. font-size: 24rpx;
  327. }
  328. .img-box {
  329. width: 150rpx;
  330. height: 150rpx;
  331. border-radius: 10rpx;
  332. overflow: hidden;
  333. image {
  334. width: 100%;
  335. height: 100%;
  336. }
  337. }
  338. .server-info {
  339. display: flex;
  340. flex-direction: column;
  341. justify-content: space-around;
  342. width: calc(100% - 180rpx);
  343. box-sizing: border-box;
  344. padding: 10rpx 15rpx;
  345. .server-title {
  346. display: flex;
  347. margin-bottom: 10rpx;
  348. }
  349. .coupon {
  350. display: flex;
  351. justify-content: center;
  352. align-items: center;
  353. background: #F29E45;
  354. color: white;
  355. width: 120rpx;
  356. height: 40rpx;
  357. border-radius: 10rpx;
  358. margin-left: 10rpx;
  359. font-size: 22rpx;
  360. }
  361. .time-coupon,
  362. .price {
  363. display: flex;
  364. flex-wrap: wrap;
  365. align-items: center;
  366. }
  367. .time-coupon {
  368. margin: 10rpx 0rpx;
  369. font-size: 26rpx;
  370. justify-content: space-between;
  371. width: 100%;
  372. .flex {
  373. justify-content: center;
  374. align-items: center;
  375. }
  376. image {
  377. width: 25rpx;
  378. height: 25rpx;
  379. }
  380. .time {
  381. color: #B8B8B8;
  382. margin-left: 6rpx;
  383. }
  384. }
  385. .sales-volume {
  386. display: flex;
  387. align-items: center;
  388. color: #B8B8B8;
  389. font-size: 24rpx;
  390. image {
  391. width: 25rpx;
  392. height: 25rpx;
  393. }
  394. }
  395. }
  396. }
  397. .address {
  398. .address-top{
  399. display: flex;
  400. justify-content: space-between;
  401. align-items: center;
  402. image{
  403. width: 30rpx;
  404. height: 30rpx;
  405. }
  406. }
  407. .addressDetail {
  408. color: #777;
  409. font-size: 22rpx;
  410. padding: 5px 0;
  411. }
  412. text {
  413. background-color: #F29E45;
  414. padding: 8rpx 10rpx;
  415. color: #fff;
  416. font-size: 20rpx;
  417. margin-left: 10px;
  418. border-radius: 5px;
  419. }
  420. }
  421. .min_tips {
  422. font-size: 22rpx;
  423. color: #777;
  424. display: flex;
  425. justify-content: space-between;
  426. padding: 5px 0;
  427. align-items: center;
  428. }
  429. .current-price {
  430. font-size: 28rpx;
  431. color: #FD5100;
  432. }
  433. .line {
  434. border-top: 2px dotted #00000011;
  435. padding: 20rpx 0;
  436. .t {
  437. padding: 5px 0;
  438. color: #000;
  439. font-size: 26rpx;
  440. }
  441. }
  442. .head-div {
  443. .nickname {
  444. font-size: 30rpx;
  445. font-weight: 600;
  446. text-align: left;
  447. line-height: 42rpx;
  448. display: flex;
  449. align-items: center;
  450. .tag {
  451. position: relative;
  452. display: flex;
  453. align-items: center;
  454. image {
  455. height: 45rpx;
  456. width: 90rpx;
  457. vertical-align: middle;
  458. }
  459. .auth {
  460. position: absolute;
  461. white-space: nowrap;
  462. color: #FF6200;
  463. left: 23rpx;
  464. font-size: 17rpx;
  465. }
  466. }
  467. }
  468. .days {
  469. font-size: 20rpx;
  470. font-weight: 400;
  471. text-align: left;
  472. line-height: 56rpx;
  473. display: flex;
  474. align-items: center;
  475. view {
  476. padding-left: 5px;
  477. }
  478. }
  479. }
  480. .btn-x {
  481. color: #6fc6ad;
  482. border: 1px solid #6fc6ad;
  483. padding: 10rpx 20rpx;
  484. border-radius: 30rpx;
  485. }
  486. .btns {
  487. display: flex;
  488. justify-content: center;
  489. .btn {
  490. color: #6fc6ad;
  491. border: 1px solid #6fc6ad;
  492. padding: 10rpx 20rpx;
  493. border-radius: 30rpx;
  494. }
  495. }
  496. }
  497. </style>