orderListDetail.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  1. <template>
  2. <view>
  3. <view>
  4. <u-navbar :back-text="i18n('Back')" :back-text-style="backStyle" back-icon-color="#fff" title-color="#fff"
  5. :background="background" title-width="300" :title="i18n('orderListDetail')"></u-navbar>
  6. </view>
  7. <view class="user-info" v-show="shopInfo.orderStatus==0">
  8. <view class="user-icon">
  9. <image src="@/static/orderDetail/user-time.png" class="icon-pic" />
  10. </view>
  11. <view class="user-thing">{{$i18n.locale=='zh'?'等待发货':'Wait for sending'}}</view>
  12. <view class="user-time">{{$i18n.locale=='zh'?'普通快递':'Ordinary express'}}</view>
  13. </view>
  14. <view class="user-detail" v-show="shopInfo.orderStatus==1">
  15. <view class="user-icon">
  16. <image src="@/static/orderDetail/get-user.png" class="icon-pic" />
  17. </view>
  18. <view class="user-thing">{{$i18n.locale=='zh'?'正在运输':'In transit'}}</view>
  19. </view>
  20. <view class="user-detail" v-show="shopInfo.orderStatus==2">
  21. <view class="user-icon">
  22. <image src="@/static/orderDetail/user-1122.png" class="icon-pic" />
  23. </view>
  24. <view class="user-thing">{{$i18n.locale=='zh'?'交易完成':'Complete transaction'}}</view>
  25. </view>
  26. <view class="user-detail" v-show="shopInfo.orderStatus==4">
  27. <view class="user-icon">
  28. <image src="@/static/orderDetail/user-1122.png" class="icon-pic" />
  29. </view>
  30. <view class="user-thing">{{$i18n.locale=='zh'?'交易完成':'Complete transaction'}}</view>
  31. </view>
  32. <view class="order-address" v-show="shopInfo.orderStatus==0">
  33. <view class="address-name">{{shopInfo.userName}}</view>
  34. <view class="address-txt">
  35. <view class="txt-left">{{shopInfo.addressConcat}}12312</view>
  36. <view class="txt-right" @tap="changeAddress()">
  37. <image src="@/static/orderDetail/user-text.png" class="address-pic" />
  38. </view>
  39. </view>
  40. </view>
  41. <view class="order-address" v-show="shopInfo.orderStatus!=0">
  42. <view class="address-name">{{shopInfo.userName}}</view>
  43. <view class="address-txt">
  44. <view class="txt-left">{{shopInfo.addressConcat}}12312</view>
  45. </view>
  46. </view>
  47. <view class="user-address" v-show="getAddress">
  48. <u-form :model="form" ref="uForm">
  49. <u-form-item v-if="$i18n.locale=='zh'" :label="$i18n.locale=='zh'?'所在地区':'Aera:'" label-width="140rpx">
  50. <u-input :disabled='info' :placeholder="$i18n.locale=='zh'?'请选择地区':'Please select a region'"
  51. :border="border" v-model="this.form.division" @tap='cancelInfo'></u-input>
  52. <u-select v-model="show" model="muitl-column-auto" child-name="child" value-name="id"
  53. label-name="name" @confirm="confirm"></u-select><!-- :list="sysAreaList" -->
  54. </u-form-item>
  55. <u-form-item label-width="140rpx" :label="$i18n.locale == 'zh' ? '详细地址' : 'Detail:'">
  56. <u-input :placeholder="$i18n.locale == 'zh'? '请输入详细地址': 'Please enter detail address'" type="text"
  57. :border="border" v-model="form.address" />
  58. </u-form-item>
  59. <u-button size="medium" class="btn-left" @tap='openAddress'>取消</u-button>
  60. <u-button type="primary" size="medium" class="btn-right" @tap='closeAddress'>确认</u-button>
  61. </u-form>
  62. <u-picker mode="region" v-model="show" @confirm="confirm" :area-code='["11","1101","110101"]'></u-picker>
  63. </view>
  64. <view class="shop-list">
  65. <view class="shop-text">{{$i18n.locale=='zh'?'礼品信息':'Present information'}}</view>
  66. <!-- <view class="shop-line"></view> -->
  67. <view class="shop-info">
  68. <view class="shop-pic">
  69. <image :src="websiteUrl+shopInfo.picture" class="user-pic-info">
  70. </image>
  71. </view>
  72. <view class="shop-detail">
  73. <view class="shop-title">{{$i18n.locale=='zh'?shopInfo.commodityName:shopInfo.commodityNameEn}}
  74. </view>
  75. <view class="shop-time">
  76. {{$i18n.locale=='zh'?'有效期':'Period of validity'}}{{shopInfo.createDate|time('YYYY-MM-DD')}}
  77. </view>
  78. <view class="shop-last">
  79. <view class="shop-pay">{{shopInfo.point}}{{$i18n.locale=='zh'?'积分':'Intetral'}}</view>
  80. <view class="shop-num">x{{shopInfo.exchangeQuantity}}</view>
  81. </view>
  82. </view>
  83. </view>
  84. </view>
  85. <view class="order-details">
  86. <view class="order-text">{{$i18n.locale=='zh'?'订单信息':'Order information'}}</view>
  87. <view class="order-info">
  88. <view class="order-left">{{$i18n.locale=='zh'?'礼品合计':'Together'}}:</view>
  89. <view class="order-right">{{shopInfo.point}}{{$i18n.locale=='zh'?'积分':'Intetral'}}</view>
  90. </view>
  91. <view class="order-info">
  92. <view class="order-left">{{$i18n.locale=='zh'?'运费':'Freight'}}:</view>
  93. <view class="order-right">{{$i18n.locale=='zh'?'无':'No matter'}}</view>
  94. </view>
  95. <view class="order-info">
  96. <view class="order-left">{{$i18n.locale=='zh'?'优惠券':'Discount'}}:</view>
  97. <view class="order-right">{{$i18n.locale=='zh'?'暂无可用':'Temporarily no use'}}</view>
  98. </view>
  99. <view class="order-info">
  100. <view class="order-left">{{$i18n.locale=='zh'?'优惠活动':'Special'}}:</view>
  101. <view class="order-right">{{$i18n.locale=='zh'?'暂无活动':'No activity'}}</view>
  102. </view>
  103. </view>
  104. <!-- <view class="shop-bill">
  105. <view class="bill-text">
  106. <view class="bill-left">{{$i18n.locale=='zh'?'发票类型':'Invoice type'}}:</view>
  107. <view class="bill-right">电子纸质</view>
  108. </view>
  109. <view class="bill-text">
  110. <view class="bill-left">{{$i18n.locale=='zh'?'发票抬头':'Invoice title'}}:</view>
  111. <view class="bill-right">电子纸质</view>
  112. </view>
  113. <view class="bill-text">
  114. <view class="bill-left">{{$i18n.locale=='zh'?'发票内容':'Invoice content'}}:</view>
  115. <view class="bill-right">电子纸质</view>
  116. </view>
  117. </view> -->
  118. <view class="order-serial">
  119. <view class="serial-text">
  120. <view class="serial-left-text" v-if="$i18n.locale=='zh'">订单编号:</view>
  121. <view class="serial-left" v-if="$i18n.locale!='zh'">Order number:</view>
  122. <view class="serial-right">{{shopInfo.orderNo}}</view>
  123. </view>
  124. </view>
  125. <view class="order-btn2" v-show="shopInfo.orderStatus==0">
  126. <button class="delete-btn2" @tap="deleteOrder">{{$i18n.locale=='zh'?'取消订单':'Cancel'}}</button>
  127. <button class="again-btn2" @tap="getAgain">{{$i18n.locale=='zh'?'再次兑换':'Again'}}</button>
  128. </view>
  129. <view class="order-btn4" v-show="shopInfo.orderStatus==1">
  130. <button class="delete-btn4" @tap="confirmOrder">{{$i18n.locale=='zh'?'确认收货':'Confirm receipt'}}</button>
  131. <button class="again-btn4" @tap="getAgain">{{$i18n.locale=='zh'?'再次兑换':'Again'}}</button>
  132. </view>
  133. <view class="order-btn1" v-show="shopInfo.orderStatus==2">
  134. <button class="speak-btn1"
  135. @tap="speakShop(shopInfo.commodityId)">{{$i18n.locale=='zh'?'评论礼品':'Speak'}}</button>
  136. <button class="again-btn1" @tap="getAgain">{{$i18n.locale=='zh'?'再次兑换':'Again'}}</button>
  137. </view>
  138. <view class="order-btn3" v-show="shopInfo.orderStatus==3">
  139. <button class="cancel-btn3" @tap="CancelOrder">{{$i18n.locale=='zh'?'删除订单':'Delete order'}}</button>
  140. <button class="again-btn3" @tap="getAgain">{{$i18n.locale=='zh'?'再次兑换':'Again'}}</button>
  141. </view>
  142. <view class="order-btn3" v-show="shopInfo.orderStatus==4">
  143. <button class="cancel-btn3" @tap="CancelOrder">{{$i18n.locale=='zh'?'删除订单':'Delete order'}}</button>
  144. <button class="again-btn3" @tap="getAgain">{{$i18n.locale=='zh'?'再次兑换':'Again'}}</button>
  145. </view>
  146. <view class="btm-box"></view>
  147. <!-- 提示信息弹窗 -->
  148. <uni-popup ref="message">
  149. <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
  150. </uni-popup>
  151. <uni-popup ref="address">
  152. <uni-popup-message :type="msgType" :message="addressText" :duration="2000"></uni-popup-message>
  153. </uni-popup>
  154. <view>
  155. <!-- 提示窗示例 -->
  156. <uni-popup ref="alertDialog" type="dialog" v-if="$i18n.locale=='zh'">
  157. <uni-popup-dialog :type="msgType" cancelText="取消" confirmText="确认" content="确定取消此订单吗?"
  158. @confirm="dialogConfirm()" @close="dialogClose" mode='base'></uni-popup-dialog>
  159. </uni-popup>
  160. <uni-popup ref="alertDialog" type="dialog" v-if="$i18n.locale=='en'">
  161. <uni-popup-dialog :type="msgType" cancelText="cancel" confirmText="ok"
  162. content="Are you sure to cancel this order?" @confirm="dialogConfirm()" @close="dialogClose"
  163. mode='base'></uni-popup-dialog>
  164. </uni-popup>
  165. <uni-popup ref="alertAddress" type="dialog" v-if="$i18n.locale=='zh'">
  166. <uni-popup-dialog :type="msgType" cancelText="取消" confirmText="确认" content="确定要修改此地址吗?"
  167. @confirm="dialogAddress()" @close="addressClose" mode='base'></uni-popup-dialog>
  168. </uni-popup>
  169. <uni-popup ref="alertAddress" type="dialog" v-if="$i18n.locale=='en'">
  170. <uni-popup-dialog :type="msgType" cancelText="cancel" confirmText="ok"
  171. content="Are you sure you want to change this address?" @confirm="dialogAddress()"
  172. @close="addressClose" mode='base'></uni-popup-dialog>
  173. </uni-popup>
  174. <uni-popup ref="CancelAddress" type="dialog" v-if="$i18n.locale=='zh'">
  175. <uni-popup-dialog :type="msgType" cancelText="取消" confirmText="确认" content="确定要删除此订单吗?"
  176. @confirm="cancelAddress()" @close="addressCancel" mode='base'></uni-popup-dialog>
  177. </uni-popup>
  178. <uni-popup ref="CancelAddress" type="dialog" v-if="$i18n.locale=='en'">
  179. <uni-popup-dialog :type="msgType" cancelText="cancel" confirmText="ok"
  180. content="Are you sure you want to delete this order?" @confirm="cancelAddress()"
  181. @close="addressCancel" mode='base'></uni-popup-dialog>
  182. </uni-popup>
  183. </view>
  184. </view>
  185. </template>
  186. <script>
  187. import uniPopupDialog from '@/components/uni-popup/uni-popup-dialog.vue'
  188. import uniPopupMessage from '@/components/uni-popup/uni-popup-message.vue'
  189. import uniPopup from '@/components/uni-popup/uni-popup.vue'
  190. import moment from 'moment'
  191. import {
  192. modifyAddress,
  193. cancelGoodsOrders,
  194. deleteGoodsOrders,
  195. confirmGoodsOrders
  196. } from '@/api/address'
  197. export default {
  198. components: {
  199. moment,
  200. modifyAddress,
  201. cancelGoodsOrders,
  202. deleteGoodsOrders,
  203. confirmGoodsOrders,
  204. uniPopupDialog,
  205. uniPopupMessage,
  206. uniPopup
  207. },
  208. data() {
  209. return {
  210. info: true,
  211. background: {
  212. backgroundImage: 'linear-gradient(270deg, #4BC0E2 0%, #538BE7 100%)',
  213. },
  214. backStyle: {
  215. color: '#FFFFFF',
  216. },
  217. shopId: null,
  218. shopType: null,
  219. shopInfo: {},
  220. msgType: 'success',
  221. messageText: '请稍后...',
  222. addressText: '请稍后...',
  223. getAddress: false,
  224. form: {
  225. name: '',
  226. phone: '',
  227. postCode: '',
  228. division: "",
  229. address: "",
  230. status: false,
  231. },
  232. border: true,
  233. show: false,
  234. child: "child",
  235. name: "name",
  236. id: "id",
  237. test: [],
  238. }
  239. },
  240. onLoad(option) {
  241. this.shopId = option.id;
  242. console.log(this.shopId);
  243. this.getShopDetail(this.shopId);
  244. },
  245. filters: {
  246. twoDecimal(value) {
  247. return parseFloat(string(value)).toFixed(2);
  248. },
  249. time(data, type) {
  250. return moment(data).format(type);
  251. }
  252. },
  253. methods: {
  254. cancelInfo() {
  255. this.show = true
  256. uni.hideKeyboard()
  257. },
  258. i18n(data) {
  259. return this.$t('common.' + data);
  260. },
  261. change(e) {
  262. console.log('当前模式:' + e.type + ',状态:' + e.show);
  263. },
  264. confirm(e) {
  265. console.log(e)
  266. this.form.division = e.province.label + '/' + e.city.label + '/' + e.area.label;
  267. let str = e.province.label + '/' + e.city.label + '/' + e.area.label;
  268. this.test = str.split('/')
  269. },
  270. // 修改地址
  271. changeAddress() {
  272. this.$refs.alertAddress.open()
  273. },
  274. dialogAddress() {
  275. this.getAddress = true
  276. this.$refs.alertAddress.close()
  277. },
  278. async closeAddress() {
  279. this.userId = JSON.parse(uni.getStorageSync("user"))
  280. let params = {
  281. userId: this.userId.id,
  282. consignee: this.shopInfo.consignee,
  283. mobile: this.shopInfo.phone,
  284. province: this.test[0],
  285. city: this.test[1],
  286. area: this.test[2],
  287. address: this.form.address,
  288. };
  289. let orderId = this.shopId;
  290. const tokendata = await this.$myRequest({
  291. url: '/sys/token',
  292. method: 'get'
  293. });
  294. modifyAddress(JSON.stringify(params), orderId, tokendata.data).then((res) => {
  295. if (res.status == "200") {
  296. this.getAddress = false
  297. if (this.$i18n.locale == 'zh') {
  298. this.messageText = '修改成功'
  299. } else {
  300. this.messageText = 'modify successfully'
  301. }
  302. this.$refs.message.open()
  303. setTimeout(() => {
  304. this.$refs.message.close()
  305. }, 500)
  306. this.getShopDetail(orderId)
  307. } else {
  308. if (this.$i18n.locale == 'zh') {
  309. this.msgType = 'error'
  310. this.messageText = '修改失败'
  311. } else {
  312. this.msgType = 'error'
  313. this.messageText = 'fail to modify'
  314. }
  315. th
  316. this.messageText = ''
  317. this.$refs.message.open()
  318. setTimeout(() => {
  319. this.$refs.message.close()
  320. }, 500)
  321. }
  322. })
  323. },
  324. openAddress() {
  325. let id = this.shopId
  326. this.getAddress = false
  327. setTimeout(() => {
  328. this.getShopDetail(id)
  329. }, 500)
  330. },
  331. //评论礼品
  332. speakShop(orderId) {
  333. console.log(orderId, '---id---');
  334. let shopId = this.shopId
  335. console.log(shopId, '---shop---');
  336. uni.navigateTo({
  337. url: './speakShopInfo?orderId=' + orderId + '&shopId=' + shopId
  338. })
  339. },
  340. //再次兑换
  341. getAgain() {
  342. if (this.$i18n.locale == 'zh') {
  343. this.messageText = '正在前往积分兑换页面...'
  344. } else {
  345. this.messageText = 'Heading to the points exchange page...'
  346. }
  347. this.$refs.message.open()
  348. setTimeout(() => {
  349. uni.navigateTo({
  350. url: './integrateConversion'
  351. })
  352. }, 1000)
  353. },
  354. // 取消订单
  355. deleteOrder() {
  356. this.$refs.alertDialog.open()
  357. },
  358. async dialogConfirm() {
  359. const tokendata = await this.$myRequest({
  360. url: '/sys/token',
  361. method: 'get'
  362. });
  363. let id = this.shopId
  364. console.log(id);
  365. cancelGoodsOrders(id, tokendata.data)
  366. .then((res) => {
  367. this.messageText = res.data
  368. })
  369. this.$refs.alertDialog.close()
  370. this.$refs.message.open()
  371. setTimeout(() => {
  372. uni.navigateTo({
  373. url: './myPayList'
  374. })
  375. }, 1500)
  376. },
  377. //删除订单
  378. CancelOrder() {
  379. this.$refs.CancelAddress.open()
  380. },
  381. async cancelAddress() {
  382. // let params = {
  383. // id: this.shopId
  384. // }
  385. let id = this.shopId
  386. const tokendata = await this.$myRequest({
  387. url: '/sys/token',
  388. method: 'get'
  389. });
  390. // console.log(params.id);
  391. deleteGoodsOrders(id, tokendata.data).then((res) => {
  392. this.messageText = res.msg
  393. })
  394. this.$refs.CancelAddress.close()
  395. this.$refs.message.open()
  396. setTimeout(() => {
  397. uni.navigateTo({
  398. url: './myPayList'
  399. })
  400. }, 1500)
  401. },
  402. // 确认收货
  403. async confirmOrder() {
  404. let id = this.shopId
  405. const tokendata = await this.$myRequest({
  406. url: '/sys/token',
  407. method: 'get'
  408. });
  409. confirmGoodsOrders(id, tokendata.data).then((res) => {
  410. this.messageText = res.data
  411. })
  412. this.$refs.message.open()
  413. setTimeout(() => {
  414. uni.navigateTo({
  415. url: './myPayList'
  416. })
  417. }, 1500)
  418. },
  419. //获取礼品详情
  420. async getShopDetail(id) {
  421. console.log(id, '-----------');
  422. const res = await this.$myRequest({
  423. url: '/uc/umsPointCommodityOrders/getCommodityOrderDetails',
  424. data: {
  425. orderId: id
  426. },
  427. })
  428. // console.log(res, '============');
  429. this.shopInfo = res.data.order
  430. // console.log(this.shopInfo);
  431. }
  432. }
  433. }
  434. </script>
  435. <style lang="scss" scoped>
  436. .user-info {
  437. width: 100%;
  438. height: 150rpx;
  439. background-color: #2bc25b;
  440. display: flex;
  441. .user-icon {
  442. height: 150rpx;
  443. width: 40rpx;
  444. margin-left: 8%;
  445. .icon-pic {
  446. width: 100%;
  447. height: 40rpx;
  448. margin-top: 55rpx;
  449. }
  450. }
  451. .user-thing {
  452. height: 150rpx;
  453. line-height: 150rpx;
  454. font-size: 44rpx;
  455. color: #fff;
  456. font-weight: 700;
  457. // font-style: italic;
  458. margin-left: 8%;
  459. }
  460. .user-time {
  461. height: 150rpx;
  462. line-height: 150rpx;
  463. color: #fff;
  464. margin-left: 30%;
  465. }
  466. }
  467. .user-detail {
  468. width: 100%;
  469. height: 150rpx;
  470. background-color: #5dabff;
  471. display: flex;
  472. .user-icon {
  473. height: 150rpx;
  474. width: 40rpx;
  475. margin-left: 8%;
  476. .icon-pic {
  477. width: 100%;
  478. height: 40rpx;
  479. margin-top: 55rpx;
  480. }
  481. }
  482. .user-thing {
  483. height: 150rpx;
  484. line-height: 150rpx;
  485. font-size: 44rpx;
  486. color: #fff;
  487. font-weight: 700;
  488. // font-style: italic;
  489. margin-left: 8%;
  490. }
  491. }
  492. .order-address {
  493. width: 100%;
  494. height: 180rpx;
  495. background-color: #fff;
  496. .address-name {
  497. width: 60rpx;
  498. line-height: 60rpx;
  499. margin-left: 8%;
  500. font-weight: 700;
  501. }
  502. .address-txt {
  503. height: 120rpx;
  504. display: flex;
  505. justify-content: space-evenly;
  506. .txt-left {
  507. width: 70%;
  508. height: 100rpx;
  509. margin-top: 20rpx;
  510. }
  511. .txt-right {
  512. width: 20%;
  513. height: 100rpx;
  514. width: 50rpx;
  515. .address-pic {
  516. height: 50rpx;
  517. width: 100%;
  518. margin-top: 25rpx;
  519. }
  520. }
  521. }
  522. }
  523. .shop-list {
  524. width: 100%;
  525. margin-top: 30rpx;
  526. height: 300rpx;
  527. background-color: #fff;
  528. .shop-text {
  529. height: 100rpx;
  530. line-height: 100rpx;
  531. margin-left: 8%;
  532. font-weight: 700;
  533. }
  534. .shop-line {
  535. width: 100%;
  536. border-bottom: 1rpx solid #878787;
  537. margin-bottom: 30rpx;
  538. }
  539. .shop-info {
  540. height: 180rpx;
  541. width: 92%;
  542. margin-left: 8%;
  543. display: flex;
  544. .shop-pic {
  545. width: 20%;
  546. height: 180rpx;
  547. margin-right: 40rpx;
  548. .user-pic-info {
  549. width: 100%;
  550. height: 100%;
  551. }
  552. }
  553. .shop-detail {
  554. width: 70%;
  555. height: 180rpx;
  556. .shop-title {
  557. height: 60rpx;
  558. line-height: 60rpx;
  559. font-weight: 700;
  560. }
  561. .shop-time {
  562. height: 40rpx;
  563. line-height: 40rpx;
  564. color: #878787;
  565. }
  566. .shop-last {
  567. height: 80rpx;
  568. display: flex;
  569. .shop-pay {
  570. height: 80rpx;
  571. line-height: 80rpx;
  572. font-size: 30rpx;
  573. font-weight: 700;
  574. color: red;
  575. }
  576. .shop-num {
  577. height: 50rpx;
  578. width: 50rpx;
  579. line-height: 50rpx;
  580. margin-top: 15rpx;
  581. text-align: center;
  582. color: #878787;
  583. border: 1rpx solid #878787;
  584. border-radius: 10rpx;
  585. margin-left: 40%;
  586. }
  587. }
  588. }
  589. }
  590. }
  591. .order-details {
  592. width: 100%;
  593. height: 340rpx;
  594. background-color: #fff;
  595. margin-top: 30rpx;
  596. .order-text {
  597. height: 80rpx;
  598. line-height: 80rpx;
  599. margin-left: 8%;
  600. font-weight: 700;
  601. }
  602. .order-info {
  603. height: 60rpx;
  604. display: flex;
  605. margin-left: 8%;
  606. .order-left {
  607. width: 24%;
  608. font-weight: 700;
  609. line-height: 60rpx;
  610. text-align: left;
  611. }
  612. .order-right {
  613. color: #878787;
  614. line-height: 60rpx;
  615. }
  616. }
  617. }
  618. .shop-bill {
  619. width: 100%;
  620. height: 200rpx;
  621. background-color: #fff;
  622. margin-top: 30rpx;
  623. .bill-text {
  624. height: 60rpx;
  625. display: flex;
  626. margin-left: 8%;
  627. .bill-left {
  628. width: 24%;
  629. height: 60rpx;
  630. font-weight: 700;
  631. line-height: 60rpx;
  632. }
  633. .bill-right {
  634. height: 60rpx;
  635. line-height: 60rpx;
  636. color: #878787;
  637. font-size: 26rpx;
  638. }
  639. }
  640. }
  641. .order-serial {
  642. width: 100%;
  643. margin-top: 30rpx;
  644. height: 100rpx;
  645. background-color: #fff;
  646. .serial-text {
  647. height: 100rpx;
  648. margin-left: 8%;
  649. display: flex;
  650. .serial-left-text {
  651. width: 23%;
  652. height: 100rpx;
  653. line-height: 100rpx;
  654. font-weight: 700;
  655. }
  656. .serial-left {
  657. width: 32%;
  658. height: 100rpx;
  659. line-height: 100rpx;
  660. font-weight: 700;
  661. }
  662. .serial-right {
  663. height: 100rpx;
  664. line-height: 100rpx;
  665. color: #878787;
  666. }
  667. }
  668. }
  669. .user-address {
  670. width: 96%;
  671. margin-left: 2%;
  672. // height: 400rpx;
  673. padding: 20rpx;
  674. background-color: #fff;
  675. border: 1rpx solid #878787;
  676. border-radius: 20rpx;
  677. margin-top: 30rpx;
  678. // transform: translateY(-200%);
  679. .btn-left {
  680. margin-left: 10%;
  681. margin-top: 30rpx;
  682. }
  683. .btn-right {
  684. margin-left: 20%;
  685. margin-top: 30rpx;
  686. }
  687. }
  688. .order-btn1 {
  689. width: 100%;
  690. height: 150rpx;
  691. background-color: #fff;
  692. display: flex;
  693. .speak-btn1 {
  694. height: 50rpx;
  695. line-height: 50rpx;
  696. margin-top: 40rpx;
  697. width: 180rpx;
  698. text-align: center;
  699. border-radius: 50rpx;
  700. border: 1rpx solid #878787;
  701. margin-left: 45%;
  702. font-size: 26rpx;
  703. }
  704. .again-btn1 {
  705. height: 50rpx;
  706. line-height: 50rpx;
  707. margin-top: 40rpx;
  708. width: 180rpx;
  709. text-align: center;
  710. border-radius: 50rpx;
  711. border: 1rpx solid #878787;
  712. background-color: #1777FEFF;
  713. color: #fff;
  714. font-size: 26rpx;
  715. }
  716. }
  717. .order-btn2 {
  718. width: 100%;
  719. height: 150rpx;
  720. background-color: #fff;
  721. display: flex;
  722. .delete-btn2 {
  723. height: 50rpx;
  724. line-height: 50rpx;
  725. margin-top: 40rpx;
  726. width: 180rpx;
  727. // text-align: center;
  728. border-radius: 50rpx;
  729. border: 1rpx solid #878787;
  730. margin-left: 45%;
  731. font-size: 26rpx;
  732. }
  733. .again-btn2 {
  734. height: 50rpx;
  735. line-height: 50rpx;
  736. margin-top: 40rpx;
  737. width: 180rpx;
  738. text-align: center;
  739. border-radius: 50rpx;
  740. border: 1rpx solid #878787;
  741. background-color: #1777FEFF;
  742. color: #fff;
  743. font-size: 26rpx;
  744. }
  745. }
  746. .order-btn3 {
  747. width: 100%;
  748. height: 150rpx;
  749. background-color: #fff;
  750. display: flex;
  751. .cancel-btn3 {
  752. height: 50rpx;
  753. line-height: 50rpx;
  754. margin-top: 40rpx;
  755. width: 180rpx;
  756. border-radius: 50rpx;
  757. border: 1rpx solid #878787;
  758. margin-left: 45%;
  759. font-size: 26rpx;
  760. }
  761. }
  762. .again-btn3 {
  763. height: 50rpx;
  764. line-height: 50rpx;
  765. margin-top: 40rpx;
  766. width: 180rpx;
  767. text-align: center;
  768. border-radius: 50rpx;
  769. border: 1rpx solid #878787;
  770. background-color: #1777FEFF;
  771. color: #fff;
  772. font-size: 26rpx;
  773. }
  774. .order-btn4 {
  775. width: 100%;
  776. height: 150rpx;
  777. background-color: #fff;
  778. display: flex;
  779. .delete-btn4 {
  780. height: 50rpx;
  781. line-height: 50rpx;
  782. margin-top: 40rpx;
  783. width: 180rpx;
  784. // text-align: center;
  785. border-radius: 50rpx;
  786. border: 1rpx solid #878787;
  787. margin-left: 45%;
  788. font-size: 26rpx;
  789. }
  790. .again-btn4 {
  791. height: 50rpx;
  792. line-height: 50rpx;
  793. margin-top: 40rpx;
  794. width: 180rpx;
  795. text-align: center;
  796. border-radius: 50rpx;
  797. border: 1rpx solid #878787;
  798. background-color: #1777FEFF;
  799. color: #fff;
  800. font-size: 26rpx;
  801. }
  802. }
  803. .btm-box {
  804. width: 100%;
  805. height: 30rpx;
  806. }
  807. </style>