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

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