铝交易,微信公众号
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.

512 lines
10 KiB

1 year ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
1 year ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
1 year ago
10 months ago
10 months ago
10 months ago
1 year ago
  1. <template>
  2. <view class="page">
  3. <navbar :title="$t('pageTitle.orderDetails')" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="info">
  5. <view class="flex">
  6. <!--订单基本信息-->
  7. <view class="server-item">
  8. <view class="img-box">
  9. <img :src="orderInfo.pic" style="width: 100%;height: 100%;" />
  10. </view>
  11. <view class="server-info">
  12. <view class="server-title">
  13. <!-- {{ $t('other.aluminumProducts') }} -->
  14. {{ orderInfo.specsName }}
  15. </view>
  16. <!-- <view class="current-price">
  17. <text class="unit">{{ $t('components.productSpecification') }}</text>
  18. <text class="text"> {{ $t('other.specification') }}</text>
  19. </view> -->
  20. <view class="sales-volume" style="margin-top: 5px;">
  21. <view class="desc">交货时间{{ orderInfo.transactionTime }}</view>
  22. </view>
  23. </view>
  24. </view>
  25. <!-- 商品信息 -->
  26. <view class="line">
  27. <view class="t min_tips">
  28. <view class="">
  29. 商品信息
  30. </view>
  31. </view>
  32. <view class="min_tips"
  33. v-if="orderInfo.picDetail">
  34. <view class="">
  35. 商品图片
  36. </view>
  37. <view class="">
  38. <uv-album :urls="orderInfo.picDetail.split(',')"></uv-album>
  39. </view>
  40. </view>
  41. <view class="min_tips"
  42. v-if="orderInfo.video">
  43. <view class="">
  44. 商品视频
  45. </view>
  46. <view class="">
  47. <view class="list-video">
  48. <view class="video"
  49. :key="index"
  50. v-for="(item, index) in orderInfo.video.split(',')">
  51. <video :src="item"></video>
  52. </view>
  53. </view>
  54. </view>
  55. </view>
  56. <view class="min_tips"
  57. v-if="orderInfo.report">
  58. <view class="">
  59. 检测报告
  60. </view>
  61. <view class="">
  62. <uv-album :urls="orderInfo.report.split(',')"></uv-album>
  63. </view>
  64. </view>
  65. <view class="min_tips"
  66. v-if="orderInfo.reportVideo">
  67. <view class="">
  68. 检测视频
  69. </view>
  70. <view class="">
  71. <view class="list-video">
  72. <view class="video"
  73. :key="index"
  74. v-for="(item, index) in orderInfo.reportVideo.split(',')">
  75. <video :src="item"></video>
  76. </view>
  77. </view>
  78. </view>
  79. </view>
  80. </view>
  81. <!--收货地址-->
  82. <view class="line address">
  83. <view class="address-top">
  84. <view class="">
  85. <!-- {{ $t('components.shippingAddress') }} -->
  86. 提货地址
  87. </view>
  88. <view class="copy">
  89. <img style="width:40rpx;height:40rpx;"
  90. @click="$utils.copyText(orderInfo.address)"
  91. src="../static/order/copy.png">
  92. </view>
  93. </view>
  94. <view class="addressDetail">
  95. <view class="">
  96. {{ orderInfo.address }}
  97. </view>
  98. </view>
  99. </view>
  100. <!-- 挂单信息 -->
  101. <view class="line">
  102. <view class="t min_tips">
  103. <view class="">
  104. <!-- {{ $t('components.orderInfo') }} -->
  105. 挂单信息
  106. </view>
  107. </view>
  108. <view class="min_tips">
  109. <view class="">
  110. <!-- {{ $t('components.orderNumber') }} -->
  111. 挂单编号
  112. </view>
  113. <view class="">
  114. {{ orderInfo.id }}
  115. </view>
  116. </view>
  117. <view class="min_tips">
  118. <view class="">
  119. <!-- {{ $t('components.orderTime') }} -->
  120. 挂单时间
  121. </view>
  122. <view class="">
  123. {{ orderInfo.createTime }}
  124. </view>
  125. </view>
  126. </view>
  127. <!-- 下单须知 -->
  128. <!-- <view class="line">
  129. <view class="t min_tips">
  130. <view class="">
  131. {{ $t('components.orderNotice') }}
  132. </view>
  133. </view>
  134. <view class="xdxz" style="line-height: 40rpx;">
  135. <uv-parse :content="content"></uv-parse>
  136. <view>1. 请您在收货时间前15分钟内到货否则将视为放弃挂单</view>
  137. <view>2. 请您在收货地址提供的手机号码收到货物</view>
  138. </view>
  139. </view> -->
  140. </view>
  141. <!--我要撤单和联系客服-->
  142. <view class="btns">
  143. <!-- <view @click="backOrder" class="oneBtn"
  144. v-if="orderInfo.showStatus == 0">
  145. {{ $t('other.withdrawOrder') }}
  146. </view> -->
  147. <view @click="$refs.customerServicePopup.open()" class="twoBtn">
  148. {{ $t('components.contactCustomerService') }}
  149. </view>
  150. </view>
  151. </view>
  152. <!-- 联系客服弹框 -->
  153. <customerServicePopup ref="customerServicePopup" />
  154. </view>
  155. </template>
  156. <script>
  157. import customerServicePopup from "@/components/config/customerServicePopup.vue";
  158. export default {
  159. name: "orderDetail2",
  160. components: {
  161. customerServicePopup
  162. },
  163. onLoad(options) {
  164. this.orderInfo = this.$store.state.orderDetail
  165. },
  166. data() {
  167. return {
  168. orderInfo: {},
  169. }
  170. },
  171. methods: {
  172. // 供应商根据挂单id查询挂单详情的接口
  173. queryOrderInfo() {
  174. this.$api('getProductInfo', this.orderId, res => {
  175. console.log(res, "挂单详情信息")
  176. this.orderInfo = res.result
  177. })
  178. },
  179. // 撤单
  180. backOrder() {
  181. let self = this
  182. uni.showModal({
  183. title: self.$t('other.backOrderTitle'),
  184. content: self.$t('other.backOrderTitleConfirm'),
  185. success(e) {
  186. if (e.confirm) {
  187. self.$api('noShow', {
  188. id : self.orderInfo.id
  189. }, res => {
  190. if (res.code == 200) {
  191. uni.showToast({
  192. title: self.$t('other.backOrderSuccess'),
  193. icon: 'none'
  194. })
  195. uni.navigateBack();
  196. }
  197. })
  198. }
  199. }
  200. })
  201. },
  202. },
  203. }
  204. </script>
  205. <style scoped lang="scss">
  206. .page {
  207. .list-video{
  208. display: flex;
  209. flex-wrap: wrap;
  210. video{
  211. width: 480rpx;
  212. height: 270rpx;
  213. }
  214. }
  215. .info {
  216. margin: 10px;
  217. padding: 20rpx;
  218. background-color: #fff;
  219. width: calc(100% - 40px);
  220. border-radius: 10px;
  221. .head-title {
  222. font-family: PingFang SC, PingFang SC-Bold;
  223. color: #2f2e2e;
  224. line-height: 30rpx;
  225. margin-left: 10rpx;
  226. }
  227. .server-item {
  228. display: flex;
  229. flex-wrap: wrap;
  230. align-items: center;
  231. justify-content: space-between;
  232. background: white;
  233. border-radius: 15rpx;
  234. box-sizing: border-box;
  235. margin: 20rpx 0rpx;
  236. width: 100%;
  237. .img-box {
  238. width: 150rpx;
  239. height: 150rpx;
  240. border-radius: 10rpx;
  241. overflow: hidden;
  242. image {
  243. width: 100%;
  244. height: 100%;
  245. }
  246. }
  247. .server-info {
  248. display: flex;
  249. flex-direction: column;
  250. justify-content: space-around;
  251. width: calc(100% - 180rpx);
  252. box-sizing: border-box;
  253. padding: 10rpx 15rpx;
  254. .server-title {
  255. display: flex;
  256. margin-bottom: 10rpx;
  257. }
  258. .coupon {
  259. display: flex;
  260. justify-content: center;
  261. align-items: center;
  262. background: #F29E45;
  263. color: white;
  264. width: 120rpx;
  265. height: 40rpx;
  266. border-radius: 10rpx;
  267. margin-left: 10rpx;
  268. font-size: 22rpx;
  269. }
  270. .time-coupon,
  271. .price {
  272. display: flex;
  273. flex-wrap: wrap;
  274. align-items: center;
  275. }
  276. .time-coupon {
  277. margin: 10rpx 0rpx;
  278. font-size: 26rpx;
  279. justify-content: space-between;
  280. width: 100%;
  281. .flex {
  282. justify-content: center;
  283. align-items: center;
  284. }
  285. image {
  286. width: 25rpx;
  287. height: 25rpx;
  288. }
  289. .time {
  290. color: #B8B8B8;
  291. margin-left: 6rpx;
  292. }
  293. }
  294. .sales-volume {
  295. display: flex;
  296. align-items: center;
  297. color: #B8B8B8;
  298. font-size: 24rpx;
  299. image {
  300. width: 25rpx;
  301. height: 25rpx;
  302. }
  303. }
  304. }
  305. }
  306. .address {
  307. .address-top {
  308. display: flex;
  309. justify-content: space-between;
  310. align-items: center;
  311. image {
  312. width: 30rpx;
  313. height: 30rpx;
  314. }
  315. }
  316. .addressDetail {
  317. color: #777;
  318. font-size: 26rpx;
  319. padding: 5px 0;
  320. }
  321. text {
  322. background-color: #F29E45;
  323. padding: 8rpx 10rpx;
  324. color: #fff;
  325. font-size: 20rpx;
  326. margin-left: 10px;
  327. border-radius: 5px;
  328. }
  329. }
  330. .min_tips {
  331. font-size: 22rpx;
  332. color: #777;
  333. display: flex;
  334. justify-content: space-between;
  335. padding: 5px 0;
  336. align-items: center;
  337. }
  338. .btns {
  339. display: flex;
  340. justify-content: center;
  341. align-items: center;
  342. gap: 40rpx;
  343. .oneBtn {
  344. display: flex;
  345. align-items: center;
  346. justify-content: center;
  347. width: 40%;
  348. height: 70rpx;
  349. padding: 10rpx;
  350. border-radius: 40rpx;
  351. color: white;
  352. font-size: 28rpx;
  353. margin: 20rpx 10rpx 0 0;
  354. background: #293143;
  355. //margin-top: 20rpx;
  356. border-radius: 40rpx;
  357. }
  358. .twoBtn {
  359. display: flex;
  360. align-items: center;
  361. justify-content: center;
  362. width: 40%;
  363. height: 70rpx;
  364. padding: 10rpx;
  365. border-radius: 40rpx;
  366. color: #000000;
  367. font-size: 28rpx;
  368. margin: 20rpx 10rpx 0 0;
  369. background: #f2f2f2;
  370. //margin-top: 20rpx;
  371. border-radius: 40rpx;
  372. }
  373. }
  374. .xdxz {
  375. font-size: 24rpx;
  376. color: #777;
  377. line-height: 30rpx;
  378. }
  379. .current-price {
  380. font-size: 24rpx;
  381. color: #8c8888;
  382. .unit {}
  383. .text {}
  384. }
  385. .line {
  386. border-top: 2px dotted #00000011;
  387. padding: 20rpx 0;
  388. .t {
  389. padding: 5px 0;
  390. color: #000;
  391. font-size: 26rpx;
  392. }
  393. }
  394. .head-div {
  395. .nickname {
  396. font-size: 30rpx;
  397. font-weight: 600;
  398. text-align: left;
  399. line-height: 42rpx;
  400. display: flex;
  401. align-items: center;
  402. .tag {
  403. position: relative;
  404. display: flex;
  405. align-items: center;
  406. image {
  407. height: 45rpx;
  408. width: 90rpx;
  409. vertical-align: middle;
  410. }
  411. .auth {
  412. position: absolute;
  413. white-space: nowrap;
  414. color: $uni-color;
  415. left: 23rpx;
  416. font-size: 17rpx;
  417. }
  418. }
  419. }
  420. .days {
  421. font-size: 20rpx;
  422. font-weight: 400;
  423. text-align: left;
  424. line-height: 56rpx;
  425. display: flex;
  426. align-items: center;
  427. view {
  428. padding-left: 5px;
  429. }
  430. }
  431. }
  432. .btn-x {
  433. color: $uni-color;
  434. border: 1px solid $uni-color;
  435. padding: 10rpx 20rpx;
  436. border-radius: 30rpx;
  437. }
  438. .btns {
  439. display: flex;
  440. justify-content: center;
  441. .btn {
  442. color: $uni-color;
  443. border: 1px solid $uni-color;
  444. padding: 10rpx 20rpx;
  445. border-radius: 30rpx;
  446. }
  447. }
  448. }
  449. }
  450. </style>