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

6 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
6 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
6 months ago
4 months ago
4 months ago
4 months ago
6 months 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>