球星卡微信小程序
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.

570 lines
14 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <view class="flex-col page">
  3. <view class="flex-col group_4">
  4. <view class="flex-row section_2">
  5. <view class="flex-row group_5">
  6. <text class="text_2">订单编号</text>
  7. <text class="text_3">{{ details.order.order_id || '暂无编号' }}</text>
  8. </view>
  9. <text class="text_4" style="color: #999999;" @click="setClipboardData(details.order.order_id || '')">复制</text>
  10. </view>
  11. <view class="flex-row section_2" style="padding-top: 0;">
  12. <view class="flex-row group_5">
  13. <text class="text_2">发货单号</text>
  14. <text class="text_3">{{ details.order.back_express_numb ? details.order.back_express_type +' ' + details.order.back_express_numb : '暂无单号' }}</text>
  15. </view>
  16. <text class="text_4" :style="{color: details.order.status_text_color}">{{ details.order.status_text }}</text>
  17. </view>
  18. <view class="section_3 flex-col">
  19. <view class="justify-between" @click="toSubDetail(details.order.id)">
  20. <view class="flex-row">
  21. <text class="text_5">明细</text>
  22. <text class="text_6">{{ details.order.num }}</text>
  23. </view>
  24. <image
  25. src="@/static/icon/rightArrow.png"
  26. class="image_6"
  27. />
  28. </view>
  29. <view class="justify-between group_8" @click="details.order.amount && $url('/packages/sonpingDetail/expenseDetail?id='+ id)" v-if="details.order.amount">
  30. <view class="flex-row">
  31. <text class="text_7">费用</text>
  32. <text class="text_8">{{ details.order.amount || '暂无' }}</text>
  33. </view>
  34. <image
  35. src="@/static/icon/rightArrow.png"
  36. class="image_6"
  37. />
  38. </view>
  39. <view class="flex-col group_10" @click="$url('/packages/address/address')">
  40. <view class="justify-between">
  41. <view class="flex-row lf-flex">
  42. <view class="text_9">收货人</view>
  43. <view class="text_10">{{ details.order.address.name }}</view>
  44. <view class="text_11">{{ details.order.address.tel }}</view>
  45. </view>
  46. <image
  47. src="@/static/icon/rightArrow.png"
  48. class="image_6"
  49. />
  50. </view>
  51. <view class="text_12">{{ details.order.address.area_name }}{{ details.order.address.desc }}</view>
  52. </view>
  53. </view>
  54. <view class="section_3 flex-col">
  55. <view class="flex-col group_13" @click="$url('/packages/sonpingDetail/ratingTrajectory?id='+ id)">
  56. <view class="flex-row">
  57. <image
  58. :src="details.logs && details.logs.icon_url"
  59. class="image_10"
  60. />
  61. <text class="text_13">{{ details.logs && details.logs.title }}</text>
  62. <image
  63. src="@/static/icon/rightArrow.png"
  64. class="image_6 image_11"
  65. />
  66. </view>
  67. <text class="text_14">{{ details.logs && details.logs.create_time }}</text>
  68. </view>
  69. <view class="flex-row group_15">
  70. <image
  71. src="@/static/icon/aixin.png"
  72. class="image_12"
  73. />
  74. <text class="text_15">温馨提示如需发票请在订单完成后一个月内到官网申请</text>
  75. </view>
  76. </view>
  77. <view class="flex-col section_4">
  78. <text class="text_16">送评信息</text>
  79. <view class="justify-between group_16" @click="orderSend()">
  80. <view class="flex-row">
  81. <text class="text_17">寄送藏品</text>
  82. <text class="text_18">{{ details.order.express_type }} {{ details.order.express_numb }}</text>
  83. </view>
  84. <image
  85. src="@/static/icon/rightArrow.png"
  86. class="image_6"
  87. />
  88. </view>
  89. <view class="flex-row group_18">
  90. <text class="text_19">送评公司</text>
  91. <text class="text_20">北京评分卡部</text>
  92. </view>
  93. <view class="flex-row group_19">
  94. <text class="text_21">送评人</text>
  95. <text class="text_22">{{ details.order.owner }}</text>
  96. </view>
  97. <view class="flex-row group_20">
  98. <text class="text_23">联系方式</text>
  99. <text class="text_24">{{ details.order.tel }}</text>
  100. </view>
  101. <view class="flex-row group_21">
  102. <text class="text_25">是否快评</text>
  103. <text class="text_26">{{ details.order.fast_text }}</text>
  104. </view>
  105. <!-- <view class="flex-row group_22">
  106. <text class="text_27">保价</text>
  107. <text class="text_28">暂无</text>
  108. </view> -->
  109. <view class="flex-col group_23">
  110. <view class="flex-col">
  111. <view class="flex-row">
  112. <text class="text_29">打包照片</text>
  113. <text class="text_30">送评前请拍照可确保权益</text>
  114. </view>
  115. <view class="flex-row equal-division">
  116. <image
  117. mode="aspectFill"
  118. :src="item"
  119. class="equal-division-item image_14"
  120. v-for="(item, index) in showImages"
  121. :key="index"
  122. @click="previewImage(index)"
  123. />
  124. </view>
  125. </view>
  126. <view class="flex-col group_26">
  127. <view class="flex-col items-center text-wrapper" @click="$url('/packages/address/address?is_select=1')" v-if="details.order.status == 2">
  128. <text>更改地址</text>
  129. </view>
  130. <view class="flex-col items-center text-wrapper text-wrapper-1" @click="orderConfirm" v-else-if="details.order.status == 4">
  131. <text>确认收货</text>
  132. </view>
  133. <view class="section_5"> </view>
  134. </view>
  135. </view>
  136. </view>
  137. </view>
  138. </view>
  139. </template>
  140. <script>
  141. import { gradingDetail } from '@/service/grading.js'
  142. import { confirmOrder, changOrderAddress } from '@/service/order.js';
  143. export default {
  144. data() {
  145. return {
  146. address: {},
  147. id: '',
  148. details: {}
  149. };
  150. },
  151. watch: {
  152. address(){
  153. this.changOrderAddress();
  154. }
  155. },
  156. computed: {
  157. showImages(){
  158. if(this.details.order && this.details.order.images){
  159. return String(this.details.order.images).split(',');
  160. }else{
  161. return []
  162. }
  163. }
  164. },
  165. onLoad(options){
  166. this.id = options.id;
  167. this.getGradingDetail();
  168. },
  169. methods: {
  170. async getGradingDetail(){
  171. let res = await gradingDetail(this.id);
  172. console.log("res", res);
  173. this.details = res.data.datas;
  174. },
  175. previewImage(current){
  176. uni.previewImage({
  177. urls: this.showImages,
  178. current: current
  179. })
  180. },
  181. // 确认收货
  182. async orderConfirm(){
  183. await confirmOrder(this.details.order.order_id);
  184. this.$msg('确认收货成功');
  185. this.getGradingDetail();
  186. },
  187. // 更换收货地址
  188. async changOrderAddress(){
  189. await changOrderAddress({order_id: this.details.order.order_id, addr_id: this.address.id});
  190. this.$msg('地址修改成功');
  191. this.getGradingDetail();
  192. },
  193. // 复制
  194. setClipboardData(data){
  195. uni.setClipboardData({
  196. data: data
  197. })
  198. },
  199. orderSend(){
  200. if(this.details.order.express_type && this.details.order.express_numb){
  201. return;
  202. }
  203. let item = this.details.order;
  204. let base_data = encodeURIComponent(JSON.stringify(item));
  205. this.$url('/pages/write/distribution?base_data='+ base_data);
  206. },
  207. toSubDetail(id){
  208. if(this.details.order.grading_finish){
  209. this.$url('/packages/sonpingDetail/viewDetail?id='+ id)
  210. }
  211. }
  212. }
  213. };
  214. </script>
  215. <style scoped lang="css">
  216. .section_3 {
  217. margin-top: 30rpx;
  218. padding: 40rpx 30rpx 40rpx 32rpx;
  219. background-color: rgb(255, 255, 255);
  220. }
  221. .image_6 {
  222. margin: 10rpx 0 8rpx;
  223. width: 44rpx;
  224. height: 44rpx;
  225. }
  226. .equal-division-item {
  227. margin-left: 28rpx;
  228. /* flex: 1 1 210rpx; */
  229. width: 80px;
  230. height: 80px;
  231. }
  232. .page {
  233. background-color: #f6f6f6;
  234. width: 100%;
  235. overflow-y: auto;
  236. height: 100%;
  237. }
  238. .group_4 {
  239. padding-top: 2rpx;
  240. flex: 1 1 auto;
  241. overflow-y: auto;
  242. }
  243. .section_2 {
  244. padding: 40rpx 32rpx;
  245. background-color: rgb(255, 255, 255);
  246. }
  247. .section_4 {
  248. margin-top: 30rpx;
  249. padding: 40rpx 30rpx 16rpx 32rpx;
  250. background-color: rgb(255, 255, 255);
  251. }
  252. .group_5 {
  253. flex: 1 1 auto;
  254. }
  255. .text_4 {
  256. margin-left: 40rpx;
  257. /* color: rgb(172, 205, 35); */
  258. font-size: 32rpx;
  259. font-weight: 500;
  260. line-height: 44rpx;
  261. white-space: nowrap;
  262. }
  263. .group_8 {
  264. margin-top: 50rpx;
  265. }
  266. .group_10 {
  267. margin-top: 50rpx;
  268. }
  269. .group_13 {
  270. color: rgb(51, 51, 51);
  271. font-size: 32rpx;
  272. font-weight: 500;
  273. line-height: 44rpx;
  274. white-space: nowrap;
  275. }
  276. .group_15 {
  277. margin-top: 40rpx;
  278. color: rgb(153, 153, 153);
  279. font-size: 24rpx;
  280. font-weight: 500;
  281. line-height: 34rpx;
  282. white-space: nowrap;
  283. }
  284. .text_16 {
  285. color: rgb(51, 51, 51);
  286. font-size: 36rpx;
  287. font-weight: 600;
  288. line-height: 50rpx;
  289. white-space: nowrap;
  290. }
  291. .group_16 {
  292. margin-top: 40rpx;
  293. }
  294. .group_18 {
  295. margin-top: 50rpx;
  296. }
  297. .group_19 {
  298. margin-top: 50rpx;
  299. }
  300. .group_20 {
  301. margin-top: 50rpx;
  302. }
  303. .group_21 {
  304. margin-top: 50rpx;
  305. }
  306. .group_22 {
  307. margin-top: 50rpx;
  308. }
  309. .group_23 {
  310. margin-top: 50rpx;
  311. }
  312. .text_2 {
  313. color: rgb(119, 119, 119);
  314. font-size: 32rpx;
  315. font-weight: 500;
  316. line-height: 44rpx;
  317. white-space: nowrap;
  318. }
  319. .text_3 {
  320. margin-left: 10rpx;
  321. color: rgb(51, 51, 51);
  322. font-size: 32rpx;
  323. font-weight: 500;
  324. line-height: 44rpx;
  325. white-space: nowrap;
  326. }
  327. .text_12 {
  328. margin-top: 10rpx;
  329. align-self: center;
  330. color: rgb(51, 51, 51);
  331. font-size: 32rpx;
  332. font-weight: 500;
  333. line-height: 44rpx;
  334. width: 100%;
  335. box-sizing: border-box;
  336. padding-left: 160rpx;
  337. padding-right: 32rpx;
  338. }
  339. .text_14 {
  340. margin-left: 66rpx;
  341. }
  342. .image_12 {
  343. width: 30rpx;
  344. height: 30rpx;
  345. }
  346. .text_15 {
  347. margin-left: 10rpx;
  348. margin-right: 24rpx;
  349. }
  350. .text_19 {
  351. color: rgb(119, 119, 119);
  352. font-size: 32rpx;
  353. font-weight: 500;
  354. line-height: 44rpx;
  355. white-space: nowrap;
  356. }
  357. .text_20 {
  358. margin-left: 10rpx;
  359. color: rgb(51, 51, 51);
  360. font-size: 32rpx;
  361. font-weight: 500;
  362. line-height: 44rpx;
  363. white-space: nowrap;
  364. overflow:hidden;
  365. text-overflow:ellipsis;
  366. width: 522rpx;
  367. display: inline-block;
  368. }
  369. .text_21 {
  370. color: rgb(119, 119, 119);
  371. font-size: 32rpx;
  372. font-weight: 500;
  373. line-height: 44rpx;
  374. white-space: nowrap;
  375. }
  376. .text_22 {
  377. margin-left: 42rpx;
  378. color: rgb(51, 51, 51);
  379. font-size: 32rpx;
  380. font-weight: 500;
  381. line-height: 44rpx;
  382. white-space: nowrap;
  383. }
  384. .text_23 {
  385. color: rgb(119, 119, 119);
  386. font-size: 32rpx;
  387. font-weight: 500;
  388. line-height: 44rpx;
  389. white-space: nowrap;
  390. }
  391. .text_24 {
  392. margin-left: 10rpx;
  393. color: rgb(51, 51, 51);
  394. font-size: 32rpx;
  395. font-weight: 500;
  396. line-height: 44rpx;
  397. white-space: nowrap;
  398. }
  399. .text_25 {
  400. color: rgb(119, 119, 119);
  401. font-size: 32rpx;
  402. font-weight: 500;
  403. line-height: 44rpx;
  404. white-space: nowrap;
  405. }
  406. .text_26 {
  407. margin-left: 10rpx;
  408. color: rgb(51, 51, 51);
  409. font-size: 32rpx;
  410. font-weight: 500;
  411. line-height: 44rpx;
  412. white-space: nowrap;
  413. }
  414. .text_27 {
  415. color: rgb(119, 119, 119);
  416. font-size: 32rpx;
  417. font-weight: 500;
  418. line-height: 44rpx;
  419. white-space: nowrap;
  420. }
  421. .text_28 {
  422. margin-left: 74rpx;
  423. color: rgb(51, 51, 51);
  424. font-size: 32rpx;
  425. font-weight: 500;
  426. line-height: 44rpx;
  427. white-space: nowrap;
  428. }
  429. .group_26 {
  430. margin-top: 40rpx;
  431. padding: 0 2rpx;
  432. color: rgb(153, 153, 153);
  433. font-size: 28rpx;
  434. font-weight: 500;
  435. line-height: 40rpx;
  436. white-space: nowrap;
  437. }
  438. .text_5 {
  439. color: rgb(119, 119, 119);
  440. font-size: 32rpx;
  441. font-weight: 500;
  442. line-height: 44rpx;
  443. white-space: nowrap;
  444. }
  445. .text_6 {
  446. margin-left: 74rpx;
  447. color: rgb(51, 51, 51);
  448. font-size: 32rpx;
  449. font-weight: 500;
  450. line-height: 44rpx;
  451. white-space: nowrap;
  452. }
  453. .text_7 {
  454. color: rgb(119, 119, 119);
  455. font-size: 32rpx;
  456. font-weight: 500;
  457. line-height: 44rpx;
  458. white-space: nowrap;
  459. }
  460. .text_8 {
  461. margin-left: 74rpx;
  462. color: rgb(51, 51, 51);
  463. font-size: 32rpx;
  464. font-weight: 500;
  465. line-height: 44rpx;
  466. white-space: nowrap;
  467. }
  468. .image_10 {
  469. width: 56rpx;
  470. height: 56rpx;
  471. }
  472. .text_13 {
  473. margin-left: 10rpx;
  474. display: inline-block;
  475. width: 557rpx;
  476. white-space:nowrap;
  477. overflow:hidden;
  478. text-overflow:ellipsis;
  479. }
  480. .image_11 {
  481. margin-top: 10rpx;
  482. margin-bottom: 0;
  483. margin-left: 30rpx;
  484. margin-right: 0;
  485. }
  486. .text_17 {
  487. color: rgb(119, 119, 119);
  488. font-size: 32rpx;
  489. font-weight: 500;
  490. line-height: 44rpx;
  491. white-space: nowrap;
  492. }
  493. .text_18 {
  494. margin-left: 10rpx;
  495. color: rgb(51, 51, 51);
  496. font-size: 32rpx;
  497. font-weight: 500;
  498. line-height: 44rpx;
  499. white-space: nowrap;
  500. }
  501. .equal-division {
  502. margin-top: 20rpx;
  503. }
  504. .text-wrapper {
  505. padding: 10rpx 0;
  506. align-self: flex-end;
  507. border-radius: 32rpx;
  508. width: 160rpx;
  509. border: solid 2rpx rgb(153, 153, 153);
  510. }
  511. .text-wrapper-1{
  512. border-color: #E7A23F;
  513. color: #E7A23F;
  514. }
  515. .section_5 {
  516. margin-top: 40rpx;
  517. align-self: center;
  518. border-radius: 4rpx;
  519. width: 196rpx;
  520. height: 8rpx;
  521. }
  522. .text_9 {
  523. color: rgb(119, 119, 119);
  524. font-size: 32rpx;
  525. font-weight: 500;
  526. line-height: 44rpx;
  527. white-space: nowrap;
  528. }
  529. .text_10 {
  530. margin-left: 42rpx;
  531. color: rgb(51, 51, 51);
  532. font-size: 32rpx;
  533. font-weight: 500;
  534. line-height: 44rpx;
  535. white-space: nowrap;
  536. max-width: 280rpx;
  537. overflow:hidden;
  538. text-overflow:ellipsis;
  539. }
  540. .text_11 {
  541. margin-left: 30rpx;
  542. color: rgb(51, 51, 51);
  543. font-size: 32rpx;
  544. font-weight: 500;
  545. line-height: 44rpx;
  546. white-space: nowrap;
  547. }
  548. .text_29 {
  549. color: rgb(119, 119, 119);
  550. font-size: 32rpx;
  551. font-weight: 500;
  552. line-height: 44rpx;
  553. white-space: nowrap;
  554. }
  555. .text_30 {
  556. margin-left: 20rpx;
  557. margin-top: 8rpx;
  558. color: rgb(153, 153, 153);
  559. font-size: 24rpx;
  560. font-weight: 500;
  561. line-height: 34rpx;
  562. white-space: nowrap;
  563. }
  564. .image_14 {
  565. margin-left: 0;
  566. }
  567. </style>