oldhistoryDetail.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146
  1. <template>
  2. <view class="box">
  3. <homenav :iStatusBarHeight="iStatusBarHeight" :title="'消费明细'" ></homenav>
  4. <view class="contentBox">
  5. <view class="top" :style="{background:'#'+themeColor}">
  6. <view class="orderState">
  7. <image src="../../static/img/icon_order_def.png" mode="" style="width: 44rpx;height: 44rpx;">
  8. </image>
  9. <view class="stateBox" >
  10. <!-- 0待施工(已保存)1施工中(已派工)2已完工 3已质检 4 已作废 -->
  11. <view class="SheetState" >{{orderData.checkoutState?orderData.checkoutState:''}}</view>
  12. </view>
  13. </view>
  14. </view>
  15. <!-- 店铺信息 -->
  16. <view class="shopBox">
  17. <image src="../../static/img/icon_store.png" mode="" class="shopBoximg"></image>
  18. <view class="shopCont">
  19. <view class="shopName">{{orderData.shopName}}</view>
  20. </view>
  21. </view>
  22. <!-- 订单信息 -->
  23. <view class="information">
  24. <view class="carMes">
  25. <view class="plate">{{orderData.plateNumber}}</view>
  26. <view class="mileage" v-if="orderData.currentMileage>0">
  27. {{orderData.currentMileage}}km
  28. </view>
  29. </view>
  30. <view class="informationLine">
  31. <view class="informationTxt">姓名:</view>
  32. <view class="informationNum">{{orderData.customerName}}</view>
  33. </view>
  34. <view class="informationLine">
  35. <view class="informationTxt">手机号:</view>
  36. <view class="informationNum">{{orderData.customerPhone}}</view>
  37. </view>
  38. <view class="informationLine">
  39. <view class="informationTxt">单号:</view>
  40. <view class="informationNum">{{orderData.code}}</view>
  41. </view>
  42. <view class="informationLine">
  43. <view class="informationTxt">接车时间:</view>
  44. <view class="informationNum">{{orderData.billDate}}</view>
  45. </view>
  46. <view class="informationLine">
  47. <view class="informationTxt">服务顾问:</view>
  48. <view class="informationNum">{{orderData.pickName?orderData.pickName:''}}</view>
  49. </view>
  50. <view class="informationLine" v-if="Comment">
  51. <view class="informationTxt">备注:</view>
  52. <view class="informationNum" v-if="orderData.comment">{{orderData.comment}}
  53. </view>
  54. </view>
  55. </view>
  56. <!-- 项目明细 -->
  57. <view class="detailedBox itemBox" v-if=" orderData.listItems.length!=0">
  58. <view class="detailedTitle">项目</view>
  59. <view class="detailedLineBox">
  60. <view class="detailedLine" v-for="(item,index) in orderData.listItems">
  61. <view class="detailedName"><span v-if="item.CardDetailID" class="kaColor">卡</span>{{item.ItemName}}
  62. </view>
  63. <view class="secondBox" :class="{noLine:index == orderData.listItems.length-1}">
  64. <view>
  65. <view class="comment" v-if="ItemComment&&item.Comment">{{item.Comment}}</view>
  66. </view>
  67. <view class="secondRight">
  68. <!-- <view class="grayPrice">¥{{item.CheckOutTaxRate}}</view> -->
  69. <view class="price" v-if="ItemMoney&&item.RealMoney">
  70. <span>¥</span>
  71. {{item.RealMoney}}
  72. </view>
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. <!-- 商品明细-->
  79. <view class="detailedBox itemBox" v-if="orderData.listParts.length!=0">
  80. <view class="detailedTitle">商品</view>
  81. <view class="detailedLineBox">
  82. <view class="detailedLine" v-for="(item,index) in orderData.listParts">
  83. <view class="goodTop">
  84. <view class="detailedName"><span v-if="item.CardDetailID"
  85. class="kaColor">卡</span>{{item.GoodsName}}</view>
  86. <view class="qty">x{{item.SaleQty}}</view>
  87. </view>
  88. <view class="secondBox" :class="{noLine:index == orderData.listParts.length-1}">
  89. <view>
  90. <view class="comment" v-if="GoodsComment&&item.Comment">{{item.Comment}}</view>
  91. </view>
  92. <view class="secondRight">
  93. <!-- <view class="grayPrice">¥{{item.CheckOutTaxRate}}</view> -->
  94. <view class="price" v-if="ItemMoney&&item.RealMoney">
  95. <span>¥</span>
  96. {{item.RealMoney}}
  97. </view>
  98. </view>
  99. </view>
  100. </view>
  101. </view>
  102. </view>
  103. <!-- 费用明细 -->
  104. <view class="goodscost"
  105. v-if=" TotalDiscountMoney ||ReceiptsMoney">
  106. <view class="detailedTitle">费用明细</view>
  107. <view class="goodscostLine" v-if="TotalDiscountMoney">
  108. <view class="goodscostTxt">优惠总计</view>
  109. <view class="goodsCostNum">¥{{orderData.discountMoney?orderData.discountMoney:0}}</view>
  110. </view>
  111. <view class="goodscostLine" v-if="ReceiptsMoney">
  112. <view class="goodscostTxt">支付金额</view>
  113. <view class="goodsCostNum">¥{{orderData.checkoutMoney?orderData.checkoutMoney:0}}</view>
  114. </view>
  115. </view>
  116. <!-- 手机号授权 -->
  117. <view class="authorizBox" v-if="authorizShow" @click="authorizShow=false">
  118. <view class="authorizCont" @click.stop="">
  119. <view class="authorizName">{{wxOpenData.miniAppName}}</view>
  120. <view class="authorizMs">您好,欢迎访问本店,授权手机号登录能获取我们最新的促销活动哦~</view>
  121. <button class="authorizContbutton" type="default" open-type="getPhoneNumber"
  122. @getphonenumber="decryptPhoneNumber">授权</button>
  123. </view>
  124. <view style="text-align: center;padding-top: 56rpx;">
  125. <image src="../../static/timg/icon_guanbi@2x.png" mode="" class="authorizCloseImg"></image>
  126. </view>
  127. </view>
  128. </view>
  129. <view v-if="appraise == true && orderData.billsheet.PayState == 2" class="bottom">
  130. <view
  131. v-if="(orderData.billsheet.EvaluateState == 0) && (lastDay <= 30) && appraise == true && orderData.billsheet.PayState == 2"
  132. @click.stop="goAppraise()" class="ping">评价</view>
  133. <view v-if="orderData.billsheet.EvaluateState == 1" @click.stop="goAppraiseDetail()" class="kan">查看评价</view>
  134. </view>
  135. </view>
  136. </template>
  137. <script>
  138. import homenav from "../../components/homenav/nav.vue"
  139. export default {
  140. components: {
  141. homenav
  142. },
  143. data() {
  144. return {
  145. location: '',
  146. id: '',
  147. orderData: '',
  148. themeColor: '',
  149. authorizShow: false,
  150. userInfo: '',
  151. ext: '',
  152. wxOpenData: '',
  153. appraise: false,
  154. lastDay: '',
  155. // 权限
  156. FaultDescription: false, //故障描述
  157. RepairDescription: false, //维修建议
  158. Comment: false, //备注
  159. ItemMoney: false, //项目、商品金额
  160. ItemComment: false, //项目备注
  161. GoodsComment: false, //商品备注
  162. AmountMoney: false, //应收总计
  163. TotalDiscountMoney: false, //优惠总计
  164. CardMoneyT: false, //计次卡冲销
  165. CardMoneyC: false, //储值卡冲销
  166. ReceiptsMoney: false, //支付金额
  167. iStatusBarHeight:'',
  168. }
  169. },
  170. onLoad(opt) {
  171. this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
  172. this.id = opt.id
  173. this.themeColor = uni.getStorageSync("themeColor");
  174. this.userInfo = this.$store.state.userInfo;
  175. this.ext = this.$common.getExtStoreId();
  176. if (this.userInfo) {
  177. this.getData()
  178. } else {
  179. this.$common.automaticlogin().then(val => {
  180. this.userInfo = this.$store.state.userInfo;
  181. this.wxOpenData = this.$store.state.wxOpenData;
  182. this.themeColor = uni.getStorageSync("themeColor");
  183. this.getData()
  184. if(!this.userInfo){
  185. this.authorizShow=true
  186. }
  187. })
  188. }
  189. this.myPower();
  190. this.showPower();
  191. },
  192. methods: {
  193. //显示权限
  194. showPower() {
  195. this.$http('openweiXinCardInfoController/getShowSetting', {
  196. }, 'GET').then(res => {
  197. // 权限
  198. // FaultDescription:false,//故障描述
  199. // RepairDescription:false,//维修建议
  200. // Comment:false,//备注
  201. // ItemMoney:false,//项目、商品金额
  202. // ItemComment:false,//项目备注
  203. // GoodsComment:false,//商品备注
  204. // AmountMoney:false,//应收总计
  205. // TotalDiscountMoney:false,//优惠总计
  206. // CardMoneyT:false,//计次卡冲销
  207. // CardMoneyC:false,//储值卡冲销
  208. // ReceiptsMoney:false,//支付金额
  209. var list = res.data
  210. list.forEach((item, index) => {
  211. if (item.fieldValue == 'FaultDescription') {
  212. this.FaultDescription = item.isChecked
  213. }
  214. if (item.fieldValue == 'RepairDescription') {
  215. this.RepairDescription = item.isChecked
  216. }
  217. if (item.fieldValue == 'Comment') {
  218. this.Comment = item.isChecked
  219. }
  220. if (item.fieldValue == 'ItemMoney') {
  221. this.ItemMoney = item.isChecked
  222. }
  223. if (item.fieldValue == 'ItemComment') {
  224. this.ItemComment = item.isChecked
  225. }
  226. if (item.fieldValue == 'GoodsComment') {
  227. this.GoodsComment = item.isChecked
  228. }
  229. if (item.fieldValue == 'AmountMoney') {
  230. this.AmountMoney = item.isChecked
  231. }
  232. if (item.fieldValue == 'CardMoneyT') {
  233. this.CardMoneyT = item.isChecked
  234. }
  235. if (item.fieldValue == 'CardMoneyC') {
  236. this.CardMoneyC = item.isChecked
  237. }
  238. if (item.fieldValue == 'ReceiptsMoney') {
  239. this.ReceiptsMoney = item.isChecked
  240. }
  241. if (item.fieldValue == 'TotalDiscountMoney') {
  242. this.TotalDiscountMoney = item.isChecked
  243. }
  244. })
  245. })
  246. },
  247. //评价权限
  248. myPower() {
  249. this.$http('openMiniEvaluate/getEvaluateSetting', {
  250. }, 'GET').then(res => {
  251. // var list = res.data.Items
  252. this.appraise = res.data
  253. })
  254. },
  255. goAppraiseDetail(item) {
  256. uni.navigateTo({
  257. url: 'myAppraiseDetail?sheetId=' + this.orderData.billsheet.id
  258. })
  259. },
  260. goAppraise(item) {
  261. uni.navigateTo({
  262. url: 'appraise?sheetID=' + this.orderData.billsheet.id + '&shopID=' + this.orderData.billsheet
  263. .shopID
  264. })
  265. },
  266. decryptPhoneNumber: function(e) {
  267. console.log(e);
  268. this.code = e.detail.code
  269. this.wxPhoneLogin()
  270. this.authorizShow = false;
  271. },
  272. wxPhoneLogin() {
  273. var that = this;
  274. this.$http('miniApp2/sys/wxPhoneLogin', {
  275. appId: this.ext.appId,
  276. unionId: this.ext.unionId,
  277. code: this.code,
  278. openId: this.wxOpenData.openid
  279. }, 'POST').then(res => {
  280. var data = res.data;
  281. if (data.loginInfo) {
  282. this.userInfo = data.loginInfo.openUser;
  283. this.wxOpenData = data.loginInfo;
  284. this.$store.commit('mutationswxOpenData', data)
  285. this.$store.commit('mutationsuserInfo', this.userInfo)
  286. this.getData()
  287. }
  288. })
  289. },
  290. map() {
  291. console.log("打开地图")
  292. var that = this;
  293. if (!that.orderData.billsheet.lat || !that.orderData.billsheet.lng) {
  294. uni.showToast({
  295. title: '该店铺未设置定位',
  296. icon: 'none',
  297. duration: 3000
  298. });
  299. } else {
  300. uni.openLocation({
  301. latitude: Number(that.orderData.billsheet.lat),
  302. longitude: Number(that.orderData.billsheet.lng),
  303. name: that.orderData.billsheet.ShopName,
  304. address: that.orderData.billsheet.Address,
  305. success: function() {
  306. console.log('success');
  307. },
  308. fail(err) {
  309. console.log(err)
  310. }
  311. });
  312. }
  313. },
  314. call() {
  315. uni.makePhoneCall({
  316. phoneNumber: this.orderData.billsheet.shopMobilePhone
  317. });
  318. },
  319. getData() {
  320. let that = this
  321. uni.showLoading({
  322. title: '加载中'
  323. });
  324. this.$http('openweiXinCardInfoController/queryConsumptionDetailOld', {
  325. // lat: this.location.lat,
  326. // lng: this.location.lng,
  327. id: this.id,
  328. }, 'POST').then(res => {
  329. uni.hideLoading();
  330. this.orderData = res.data;
  331. console.log('data===', this.orderData);
  332. })
  333. },
  334. //时间对比
  335. getDateBeforeNow(stringTime) {
  336. console.log("传参未格式化", stringTime);
  337. stringTime = new Date(stringTime.replace(/-/g, '/'))
  338. // 统一单位换算
  339. var minute = 1000 * 60;
  340. var hour = minute * 60;
  341. var day = hour * 24;
  342. var week = day * 7;
  343. var month = day * 30;
  344. var year = month * 12;
  345. var time1 = new Date().getTime(); //当前的时间戳 console.log("当前时间", time1);
  346. // 对时间进行毫秒单位转换 var time2 = new Date(stringTime).getTime(); //指定时间的时间戳
  347. console.log("传过来的时间", time2);
  348. var time = time1 - time2;
  349. console.log("计算后的时间", time);
  350. var result =
  351. null; // if (time < 0) { // // alert("传过来的时间的时间不能晚于当前时间!"); // result = stringTime; // } else if (time / year >= 1) {
  352. // result = parseInt(time / year) + "年前";
  353. // } else if (time / month >= 1) {
  354. // result = parseInt(time / month) + "月前";
  355. // } else if (time / week >= 1) { // result = parseInt(time / week) + "周前"; // } else if (time / day >= 1) {
  356. // result = parseInt(time / day) + "天前";
  357. // } else if (time / hour >= 1) { // result = parseInt(time / hour) + "小时前";
  358. // } else if (time / minute >= 1) {
  359. // result = parseInt(time / minute) + "分钟前"; // } else {
  360. // result = "刚刚"; // }
  361. if (time < 0) {
  362. // alert("传过来的时间的时间不能晚于当前时间!");
  363. result = -1;
  364. } else if (time / day >= 0) {
  365. result = parseInt(time / day); //多少天前
  366. }
  367. console.log("多少天前", result);
  368. return result;
  369. },
  370. goback() {
  371. uni.navigateBack({})
  372. },
  373. },
  374. onPullDownRefresh() {
  375. this.getData()
  376. setTimeout(function() {
  377. uni.stopPullDownRefresh();
  378. }, 1000);
  379. },
  380. }
  381. </script>
  382. <style scoped>
  383. .box {
  384. min-height: 100vh;
  385. background: #F4F5F7;
  386. padding-bottom: constant(safe-area-inset-bottom);
  387. padding-bottom: env(safe-area-inset-bottom);
  388. }
  389. .contentBox {
  390. background: #F4F5F7;
  391. padding-bottom: 100rpx;
  392. }
  393. .top {
  394. height: 190rpx;
  395. background: #FF0000;
  396. }
  397. .stateBox {
  398. display: flex;
  399. }
  400. .orderState {
  401. display: flex;
  402. justify-content: center;
  403. align-items: center;
  404. padding-top: 40rpx;
  405. }
  406. .SheetState {
  407. display: flex;
  408. justify-content: center;
  409. font-size: 36rpx;
  410. font-weight: 500;
  411. color: #FFFFFF;
  412. margin-left: 15rpx;
  413. }
  414. .timeEditImg {
  415. width: 25rpx;
  416. height: 25rpx;
  417. padding-left: 20rpx;
  418. }
  419. .shopBoximg {
  420. width: 40rpx;
  421. height: 40rpx;
  422. }
  423. .shopRightImg {
  424. width: 44rpx;
  425. height: 45rpx;
  426. }
  427. .shopsx {
  428. width: 1px;
  429. height: 50rpx;
  430. background: #EEEEEE;
  431. margin-top: 30rpx;
  432. margin-left: 28rpx;
  433. }
  434. .shopBox {
  435. display: flex;
  436. padding: 30rpx 20rpx;
  437. margin: 0rpx 24rpx;
  438. margin-top: -60rpx;
  439. background-color: #FFFFFF;
  440. border-radius: 10rpx;
  441. }
  442. .shopCont {
  443. width: 405rpx;
  444. padding-left: 20rpx;
  445. }
  446. .shopName {
  447. font-size: 30rpx;
  448. font-weight: bold;
  449. color: #3C3C3C;
  450. line-height: 45rpx;
  451. }
  452. .Address {
  453. color: #999999;
  454. font-size: 24rpx;
  455. margin-top: 10rpx;
  456. }
  457. .shopRihgtTxt {
  458. color: #999999;
  459. font-size: 24rpx;
  460. }
  461. .shopRightBox {
  462. padding-left: 28rpx;
  463. }
  464. .peopleCont {
  465. font-size: 28rpx;
  466. color: #3C3C3C;
  467. padding-left: 20rpx;
  468. }
  469. .people {
  470. display: flex;
  471. padding-left: 20rpx;
  472. padding-top: 30rpx;
  473. padding-bottom: 36rpx;
  474. }
  475. .PlateNumberBox {
  476. display: flex;
  477. padding-left: 20rpx;
  478. padding-bottom: 30rpx;
  479. }
  480. .PlateNumbercx {
  481. font-size: 28rpx;
  482. color: #3C3C3C;
  483. padding-left: 20rpx;
  484. }
  485. .PlateNumber {
  486. width: 130rpx;
  487. height: 32rpx;
  488. border-radius: 4rpx;
  489. border: 1px solid #F19D01;
  490. line-height: 32rpx;
  491. text-align: center;
  492. font-size: 22rpx;
  493. color: #F19D01;
  494. margin-left: 26rpx;
  495. }
  496. .PlateNumberBoxTop {
  497. display: flex;
  498. }
  499. .CarModel {
  500. font-size: 26rpx;
  501. color: #999999;
  502. padding-left: 20rpx;
  503. padding-top: 6rpx;
  504. padding-right: 20rpx;
  505. padding-bottom: 15rpx;
  506. width: 600rpx;
  507. }
  508. .detailedBox {
  509. background: #FFFFFF;
  510. border-radius: 10px;
  511. margin: 20rpx 24rpx;
  512. padding-bottom: 20rpx;
  513. }
  514. .itemBox {
  515. margin-top: 20rpx;
  516. }
  517. .carMes {
  518. padding: 23rpx 20rpx;
  519. display: flex;
  520. align-items: center;
  521. justify-content: flex-start;
  522. border-bottom: 1rpx solid #EEEEEE;
  523. }
  524. .plate {
  525. font-size: 30rpx;
  526. color: #3C3C3C;
  527. font-weight: bold;
  528. margin-right: 20rpx;
  529. }
  530. .mileage {
  531. font-size: 24rpx;
  532. color: #F19D01;
  533. padding: 0rpx 10rpx;
  534. border: 1rpx solid #F19D01;
  535. border-radius: 4rpx;
  536. height: 36rpx;
  537. }
  538. .detailedTitle {
  539. padding: 23rpx 20rpx;
  540. display: flex;
  541. text-align: center;
  542. align-content: flex-start;
  543. border-bottom: 1rpx solid #EEEEEE;
  544. font-size: 30rpx;
  545. font-weight: bold;
  546. color: #3C3C3C;
  547. }
  548. .detailedLine {
  549. padding: 20rpx 20rpx 0rpx;
  550. }
  551. .detailedImg {
  552. width: 120rpx;
  553. height: 120rpx;
  554. border-radius: 10rpx;
  555. }
  556. .detailedName {
  557. font-size: 26rpx;
  558. color: #3C3C3C;
  559. }
  560. .kaColor {
  561. background: #F19D01;
  562. border-radius: 4rpx;
  563. color: #FFFFFF;
  564. font-size: 24rpx;
  565. margin-right: 8rpx;
  566. padding: 3rpx 5rpx;
  567. }
  568. .qty {
  569. font-size: 24rpx;
  570. font-weight: 400;
  571. color: #999999;
  572. }
  573. .secondBox {
  574. display: flex;
  575. padding: 20rpx 0rpx;
  576. justify-content: space-between;
  577. align-items: baseline;
  578. border-bottom: 1rpx solid #EEEEEE;
  579. }
  580. .noLine {
  581. border-bottom: 0 solid #FFFFFF;
  582. }
  583. .comment {
  584. margin-right: 20rpx;
  585. font-size: 24rpx;
  586. font-weight: 400;
  587. color: #999999;
  588. flex-grow: 1;
  589. }
  590. .secondRight {
  591. display: flex;
  592. justify-content: flex-end;
  593. align-items: baseline;
  594. }
  595. .grayPrice {
  596. font-size: 24rpx;
  597. font-weight: 400;
  598. color: #999999;
  599. text-decoration: line-through;
  600. }
  601. .price {
  602. font-size: 32rpx;
  603. font-weight: 500;
  604. color: #FF0000;
  605. display: flex;
  606. align-items: center;
  607. }
  608. span {
  609. font-size: 24rpx;
  610. }
  611. .goodTop {
  612. display: flex;
  613. justify-content: space-between;
  614. }
  615. .goodscost {
  616. background: #FFFFFF;
  617. border-radius: 10px;
  618. margin: 20rpx 24rpx;
  619. padding-bottom: 20rpx;
  620. }
  621. .goodscostLine {
  622. display: flex;
  623. justify-content: space-between;
  624. font-size: 26rpx;
  625. padding: 20rpx 20rpx;
  626. color: #333333;
  627. }
  628. .goodsCostNum {
  629. color: #FF0000;
  630. font-weight: bold;
  631. }
  632. .information {
  633. width: 702rpx;
  634. background: #FFFFFF;
  635. border-radius: 10px;
  636. margin-left: 24rpx;
  637. margin-top: 20rpx;
  638. padding: 0rpx 0 15rpx 0;
  639. }
  640. .informationLine {
  641. display: flex;
  642. font-size: 26rpx;
  643. padding: 15rpx 20rpx;
  644. }
  645. .informationTxt {
  646. width: 190rpx;
  647. color: #999999;
  648. }
  649. .informationNum {
  650. color: #333333;
  651. width: calc(100vw - 190rpx);
  652. }
  653. .copyBtn {
  654. width: 86rpx;
  655. height: 40rpx;
  656. background: #F4F5F7;
  657. border-radius: 20rpx;
  658. font-size: 24rpx;
  659. color: #333333;
  660. text-align: center;
  661. line-height: 40rpx;
  662. margin-left: 20rpx;
  663. }
  664. .orderBottom {
  665. width: 750rpx;
  666. height: 98rpx;
  667. background: #FFFFFF;
  668. position: fixed;
  669. left: 0;
  670. bottom: 0;
  671. display: flex;
  672. justify-content: flex-end;
  673. }
  674. .cancelBtn {
  675. width: 150rpx;
  676. height: 56rpx;
  677. border-radius: 36rpx;
  678. border: 2rpx solid #DDDDDD;
  679. text-align: center;
  680. line-height: 56rpx;
  681. font-size: 28rpx;
  682. color: #3C3C3C;
  683. margin-top: 21rpx;
  684. margin-right: 16rpx;
  685. margin-left: 20rpx;
  686. }
  687. .payBtn {
  688. width: 150rpx;
  689. height: 56rpx;
  690. border-radius: 36rpx;
  691. border: 2rpx solid #FF4F00;
  692. text-align: center;
  693. line-height: 56rpx;
  694. font-size: 28rpx;
  695. color: #FF4F00;
  696. margin-top: 21rpx;
  697. margin-right: 16rpx;
  698. margin-left: 20rpx;
  699. }
  700. .timeBox2 {
  701. width: 100vw;
  702. height: 100vh;
  703. background: rgba(0, 0, 0, 0.5);
  704. position: fixed;
  705. top: 0;
  706. left: 0;
  707. }
  708. .timeLeftActive {
  709. background: #FFFFFF;
  710. }
  711. .timeMain {
  712. width: 100vw;
  713. height: 70vh;
  714. margin-top: 30vh;
  715. background: #FFFFFF;
  716. border-radius: 24rpx 24rpx 0px 0px;
  717. }
  718. .timesfNo {
  719. background: #F5F5F5;
  720. }
  721. .timesfActive {
  722. background: #FF4F00;
  723. }
  724. .timesfActive .timeSfNum {
  725. color: #FFFFFF;
  726. }
  727. .timesfActive .timeyy {
  728. color: #FFFFFF;
  729. }
  730. .topBox {
  731. padding: 20rpx 24rpx;
  732. }
  733. .timeTop {
  734. display: flex;
  735. line-height: 90rpx;
  736. padding-left: 24rpx;
  737. padding-right: 24rpx;
  738. justify-content: space-between;
  739. }
  740. .timeTopTitle {
  741. font-size: 30rpx;
  742. font-family: PingFangSC-Medium, PingFang SC;
  743. font-weight: 600;
  744. color: #3C3C3C;
  745. }
  746. .close {
  747. color: #999999;
  748. font-size: 30rpx;
  749. padding-left: 30rpx;
  750. }
  751. .timeCont {
  752. height: calc(70vh - 210rpx);
  753. }
  754. .timeSv {
  755. height: calc(70vh - 210rpx);
  756. }
  757. .timeLeft2 {
  758. width: 162rpx;
  759. background: #F4F5F7;
  760. border-top: 1px soid #F4F5F7;
  761. border-right: 1px soid #F4F5F7;
  762. }
  763. .timeRight2 {
  764. width: 588rpx;
  765. }
  766. .timesf {
  767. width: 165rpx;
  768. height: 98rpx;
  769. border-radius: 7rpx;
  770. border: 2rpx solid #EEEEEE;
  771. text-align: center;
  772. margin-left: 20rpx;
  773. margin-bottom: 24rpx;
  774. }
  775. .timeBottom {
  776. width: 750rpx;
  777. height: 120rpx;
  778. background: #FFFFFF;
  779. box-shadow: 0px -2px 20rpx 0px rgba(153, 153, 153, 0.2);
  780. display: flex;
  781. align-items: center;
  782. }
  783. .timerightBox {
  784. display: flex;
  785. flex-wrap: wrap;
  786. }
  787. .timeCont {
  788. display: flex;
  789. }
  790. .timeSfNum {
  791. color: #666666;
  792. font-size: 28rpx;
  793. padding-top: 15rpx;
  794. }
  795. .timeyy {
  796. font-size: 24rpx;
  797. color: #999999;
  798. }
  799. .timecomplete {
  800. width: 690rpx;
  801. height: 74rpx;
  802. background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
  803. border-radius: 37rpx;
  804. line-height: 74rpx;
  805. text-align: center;
  806. font-size: 30rpx;
  807. color: #FFFFFF;
  808. margin-left: 30rpx;
  809. }
  810. .timeleftLine {
  811. font-size: 30rpx;
  812. color: #999999;
  813. text-align: center;
  814. padding: 28rpx 10rpx;
  815. border-bottom: 1px solid #EEEEEE;
  816. }
  817. .yuyueBox {
  818. background: #FFFFFF;
  819. border-radius: 10rpx;
  820. margin-left: 24rpx;
  821. margin-right: 24rpx;
  822. }
  823. .yuyueTime {
  824. display: flex;
  825. padding-left: 20rpx;
  826. padding-top: 30rpx;
  827. padding-bottom: 36rpx;
  828. align-items: center;
  829. }
  830. .yuyueState {
  831. display: flex;
  832. padding-left: 20rpx;
  833. padding-top: 30rpx;
  834. padding-bottom: 36rpx;
  835. }
  836. .maBox {
  837. display: flex;
  838. justify-content: space-between;
  839. padding: 24rpx 20rpx;
  840. }
  841. .querenMa {
  842. margin: 20rpx 0;
  843. padding-bottom: 30rpx;
  844. }
  845. .maBoximg {
  846. width: 308rpx;
  847. height: 308rpx;
  848. margin: 30rpx 197rpx;
  849. }
  850. .rightShou {
  851. display: flex;
  852. justify-content: flex-start;
  853. align-items: center;
  854. }
  855. .authorizBox {
  856. width: 100vw;
  857. height: 100vh;
  858. background: rgba(0, 0, 0, 0.5);
  859. position: fixed;
  860. top: 0;
  861. left: 0;
  862. }
  863. .authorizCont {
  864. margin-top: 30vh;
  865. width: 564rpx;
  866. height: 408rpx;
  867. background: #FFFFFF;
  868. border-radius: 24rpx;
  869. margin-left: 93rpx;
  870. position: relative;
  871. }
  872. .authorizCloseImg {
  873. width: 62rpx;
  874. height: 62rpx;
  875. }
  876. .sqLogoBox {
  877. width: 180rpx;
  878. height: 180rpx;
  879. background: #FFFFFF;
  880. border-radius: 90rpx;
  881. text-align: center;
  882. position: absolute;
  883. top: -50rpx;
  884. left: 192rpx;
  885. }
  886. .authorizName {
  887. color: #333333;
  888. line-height: 42rpx;
  889. font-size: 30rpx;
  890. text-align: center;
  891. padding-top: 58rpx;
  892. }
  893. .authorizMs {
  894. color: #999999;
  895. line-height: 36rpx;
  896. font-size: 26rpx;
  897. width: 452rpx;
  898. padding-top: 24rpx;
  899. text-align: center;
  900. margin-left: 56rpx;
  901. }
  902. .authorizContbutton {
  903. width: 422rpx;
  904. height: 88rpx;
  905. background: #D53533;
  906. border-radius: 44rpx;
  907. line-height: 88rpx;
  908. text-align: center;
  909. font-size: 30rpx;
  910. color: #FFFFFF;
  911. margin-top: 62rpx;
  912. margin-left: 71rpx;
  913. }
  914. .bottom {
  915. position: fixed;
  916. width: 100%;
  917. padding: 20rpx 24rpx;
  918. right: 0;
  919. bottom: 0;
  920. background: #ffffff;
  921. font-size: 28rpx;
  922. display: flex;
  923. justify-content: flex-end;
  924. height: 58rpx;
  925. padding-bottom: constant(safe-area-inset-bottom);
  926. padding-bottom: env(safe-area-inset-bottom);
  927. }
  928. .ping {
  929. text-align: center;
  930. color: #FF4F00;
  931. width: 150rpx;
  932. height: 56rpx;
  933. line-height: 56rpx;
  934. border-radius: 36rpx;
  935. border: 2rpx solid #FF4F00;
  936. }
  937. .kan {
  938. text-align: center;
  939. color: #3C3C3C;
  940. width: 150rpx;
  941. height: 56rpx;
  942. line-height: 56rpx;
  943. border-radius: 36rpx;
  944. border: 2rpx solid #DDDDDD;
  945. }
  946. </style>