historyDetail.vue 27 KB

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