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

582 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
3 years ago
3 years ago
3 years ago
4 years ago
3 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. uni.showModal({
  184. title:"确认收货",
  185. content:'确认收到货物并签收?',
  186. success:async (e) => {
  187. if(e.confirm){
  188. await confirmOrder(this.details.order.id);
  189. this.$msg('确认收货成功');
  190. this.getGradingDetail();
  191. }
  192. }
  193. });
  194. },
  195. // 更换收货地址
  196. async changOrderAddress(){
  197. await changOrderAddress({order_id: this.details.order.order_id, addr_id: this.address.id});
  198. this.$msg('地址修改成功');
  199. this.getGradingDetail();
  200. },
  201. // 复制
  202. setClipboardData(data){
  203. uni.setClipboardData({
  204. data: data
  205. })
  206. },
  207. orderSend(){
  208. if(this.details.order.express_type && this.details.order.express_numb){
  209. return;
  210. }
  211. let item = this.details.order;
  212. let base_data = encodeURIComponent(JSON.stringify(item));
  213. this.$url('/pages/write/distribution?base_data='+ base_data);
  214. },
  215. toSubDetail(id){
  216. if(this.details.order.grading_finish){
  217. this.$url('/packages/sonpingDetail/viewDetail?id='+ id)
  218. }else{
  219. uni.showToast({
  220. icon:'none',
  221. title:'正在评审中'
  222. })
  223. }
  224. }
  225. }
  226. };
  227. </script>
  228. <style scoped lang="css">
  229. .section_3 {
  230. margin-top: 30rpx;
  231. padding: 40rpx 30rpx 40rpx 32rpx;
  232. background-color: rgb(255, 255, 255);
  233. }
  234. .image_6 {
  235. margin: 10rpx 0 8rpx;
  236. width: 44rpx;
  237. height: 44rpx;
  238. }
  239. .equal-division-item {
  240. margin-left: 28rpx;
  241. /* flex: 1 1 210rpx; */
  242. width: 80px;
  243. height: 80px;
  244. }
  245. .page {
  246. background-color: #f6f6f6;
  247. width: 100%;
  248. overflow-y: auto;
  249. height: 100%;
  250. }
  251. .group_4 {
  252. padding-top: 2rpx;
  253. flex: 1 1 auto;
  254. overflow-y: auto;
  255. }
  256. .section_2 {
  257. padding: 40rpx 32rpx;
  258. background-color: rgb(255, 255, 255);
  259. }
  260. .section_4 {
  261. margin-top: 30rpx;
  262. padding: 40rpx 30rpx 16rpx 32rpx;
  263. background-color: rgb(255, 255, 255);
  264. }
  265. .group_5 {
  266. flex: 1 1 auto;
  267. }
  268. .text_4 {
  269. margin-left: 40rpx;
  270. /* color: rgb(172, 205, 35); */
  271. font-size: 32rpx;
  272. font-weight: 500;
  273. line-height: 44rpx;
  274. white-space: nowrap;
  275. }
  276. .group_8 {
  277. margin-top: 50rpx;
  278. }
  279. .group_10 {
  280. margin-top: 50rpx;
  281. }
  282. .group_13 {
  283. color: rgb(51, 51, 51);
  284. font-size: 32rpx;
  285. font-weight: 500;
  286. line-height: 44rpx;
  287. white-space: nowrap;
  288. }
  289. .group_15 {
  290. margin-top: 40rpx;
  291. color: rgb(153, 153, 153);
  292. font-size: 24rpx;
  293. font-weight: 500;
  294. line-height: 34rpx;
  295. white-space: nowrap;
  296. }
  297. .text_16 {
  298. color: rgb(51, 51, 51);
  299. font-size: 36rpx;
  300. font-weight: 600;
  301. line-height: 50rpx;
  302. white-space: nowrap;
  303. }
  304. .group_16 {
  305. margin-top: 40rpx;
  306. }
  307. .group_18 {
  308. margin-top: 50rpx;
  309. }
  310. .group_19 {
  311. margin-top: 50rpx;
  312. }
  313. .group_20 {
  314. margin-top: 50rpx;
  315. }
  316. .group_21 {
  317. margin-top: 50rpx;
  318. }
  319. .group_22 {
  320. margin-top: 50rpx;
  321. }
  322. .group_23 {
  323. margin-top: 50rpx;
  324. }
  325. .text_2 {
  326. color: rgb(119, 119, 119);
  327. font-size: 32rpx;
  328. font-weight: 500;
  329. line-height: 44rpx;
  330. white-space: nowrap;
  331. }
  332. .text_3 {
  333. margin-left: 10rpx;
  334. color: rgb(51, 51, 51);
  335. font-size: 32rpx;
  336. font-weight: 500;
  337. line-height: 44rpx;
  338. white-space: nowrap;
  339. }
  340. .text_12 {
  341. margin-top: 10rpx;
  342. align-self: center;
  343. color: rgb(51, 51, 51);
  344. font-size: 32rpx;
  345. font-weight: 500;
  346. line-height: 44rpx;
  347. width: 100%;
  348. box-sizing: border-box;
  349. padding-left: 160rpx;
  350. padding-right: 32rpx;
  351. }
  352. .text_14 {
  353. margin-left: 66rpx;
  354. }
  355. .image_12 {
  356. width: 30rpx;
  357. height: 30rpx;
  358. }
  359. .text_15 {
  360. margin-left: 10rpx;
  361. margin-right: 24rpx;
  362. }
  363. .text_19 {
  364. color: rgb(119, 119, 119);
  365. font-size: 32rpx;
  366. font-weight: 500;
  367. line-height: 44rpx;
  368. white-space: nowrap;
  369. }
  370. .text_20 {
  371. margin-left: 10rpx;
  372. color: rgb(51, 51, 51);
  373. font-size: 32rpx;
  374. font-weight: 500;
  375. line-height: 44rpx;
  376. white-space: nowrap;
  377. overflow:hidden;
  378. text-overflow:ellipsis;
  379. width: 522rpx;
  380. display: inline-block;
  381. }
  382. .text_21 {
  383. color: rgb(119, 119, 119);
  384. font-size: 32rpx;
  385. font-weight: 500;
  386. line-height: 44rpx;
  387. white-space: nowrap;
  388. }
  389. .text_22 {
  390. margin-left: 42rpx;
  391. color: rgb(51, 51, 51);
  392. font-size: 32rpx;
  393. font-weight: 500;
  394. line-height: 44rpx;
  395. white-space: nowrap;
  396. }
  397. .text_23 {
  398. color: rgb(119, 119, 119);
  399. font-size: 32rpx;
  400. font-weight: 500;
  401. line-height: 44rpx;
  402. white-space: nowrap;
  403. }
  404. .text_24 {
  405. margin-left: 10rpx;
  406. color: rgb(51, 51, 51);
  407. font-size: 32rpx;
  408. font-weight: 500;
  409. line-height: 44rpx;
  410. white-space: nowrap;
  411. }
  412. .text_25 {
  413. color: rgb(119, 119, 119);
  414. font-size: 32rpx;
  415. font-weight: 500;
  416. line-height: 44rpx;
  417. white-space: nowrap;
  418. }
  419. .text_26 {
  420. margin-left: 10rpx;
  421. color: rgb(51, 51, 51);
  422. font-size: 32rpx;
  423. font-weight: 500;
  424. line-height: 44rpx;
  425. white-space: nowrap;
  426. }
  427. .text_27 {
  428. color: rgb(119, 119, 119);
  429. font-size: 32rpx;
  430. font-weight: 500;
  431. line-height: 44rpx;
  432. white-space: nowrap;
  433. }
  434. .text_28 {
  435. margin-left: 74rpx;
  436. color: rgb(51, 51, 51);
  437. font-size: 32rpx;
  438. font-weight: 500;
  439. line-height: 44rpx;
  440. white-space: nowrap;
  441. }
  442. .group_26 {
  443. margin-top: 40rpx;
  444. padding: 0 2rpx;
  445. color: rgb(153, 153, 153);
  446. font-size: 28rpx;
  447. font-weight: 500;
  448. line-height: 40rpx;
  449. white-space: nowrap;
  450. }
  451. .text_5 {
  452. color: rgb(119, 119, 119);
  453. font-size: 32rpx;
  454. font-weight: 500;
  455. line-height: 44rpx;
  456. white-space: nowrap;
  457. }
  458. .text_6 {
  459. margin-left: 74rpx;
  460. color: rgb(51, 51, 51);
  461. font-size: 32rpx;
  462. font-weight: 500;
  463. line-height: 44rpx;
  464. white-space: nowrap;
  465. }
  466. .text_7 {
  467. color: rgb(119, 119, 119);
  468. font-size: 32rpx;
  469. font-weight: 500;
  470. line-height: 44rpx;
  471. white-space: nowrap;
  472. }
  473. .text_8 {
  474. margin-left: 74rpx;
  475. color: rgb(51, 51, 51);
  476. font-size: 32rpx;
  477. font-weight: 500;
  478. line-height: 44rpx;
  479. white-space: nowrap;
  480. }
  481. .image_10 {
  482. width: 56rpx;
  483. height: 56rpx;
  484. }
  485. .text_13 {
  486. margin-left: 10rpx;
  487. display: inline-block;
  488. width: 557rpx;
  489. white-space:nowrap;
  490. overflow:hidden;
  491. text-overflow:ellipsis;
  492. }
  493. .image_11 {
  494. margin-top: 10rpx;
  495. margin-bottom: 0;
  496. margin-left: 30rpx;
  497. margin-right: 0;
  498. }
  499. .text_17 {
  500. color: rgb(119, 119, 119);
  501. font-size: 32rpx;
  502. font-weight: 500;
  503. line-height: 44rpx;
  504. white-space: nowrap;
  505. }
  506. .text_18 {
  507. margin-left: 10rpx;
  508. color: rgb(51, 51, 51);
  509. font-size: 32rpx;
  510. font-weight: 500;
  511. line-height: 44rpx;
  512. white-space: nowrap;
  513. }
  514. .equal-division {
  515. margin-top: 20rpx;
  516. }
  517. .text-wrapper {
  518. padding: 10rpx 0;
  519. align-self: flex-end;
  520. border-radius: 32rpx;
  521. width: 160rpx;
  522. border: solid 2rpx rgb(153, 153, 153);
  523. }
  524. .text-wrapper-1{
  525. border-color: #E7A23F;
  526. color: #E7A23F;
  527. }
  528. .section_5 {
  529. margin-top: 40rpx;
  530. align-self: center;
  531. border-radius: 4rpx;
  532. width: 196rpx;
  533. height: 8rpx;
  534. }
  535. .text_9 {
  536. color: rgb(119, 119, 119);
  537. font-size: 32rpx;
  538. font-weight: 500;
  539. line-height: 44rpx;
  540. white-space: nowrap;
  541. }
  542. .text_10 {
  543. margin-left: 42rpx;
  544. color: rgb(51, 51, 51);
  545. font-size: 32rpx;
  546. font-weight: 500;
  547. line-height: 44rpx;
  548. white-space: nowrap;
  549. max-width: 280rpx;
  550. overflow:hidden;
  551. text-overflow:ellipsis;
  552. }
  553. .text_11 {
  554. margin-left: 30rpx;
  555. color: rgb(51, 51, 51);
  556. font-size: 32rpx;
  557. font-weight: 500;
  558. line-height: 44rpx;
  559. white-space: nowrap;
  560. }
  561. .text_29 {
  562. color: rgb(119, 119, 119);
  563. font-size: 32rpx;
  564. font-weight: 500;
  565. line-height: 44rpx;
  566. white-space: nowrap;
  567. }
  568. .text_30 {
  569. margin-left: 20rpx;
  570. margin-top: 8rpx;
  571. color: rgb(153, 153, 153);
  572. font-size: 24rpx;
  573. font-weight: 500;
  574. line-height: 34rpx;
  575. white-space: nowrap;
  576. }
  577. .image_14 {
  578. margin-left: 0;
  579. }
  580. </style>