orderQuery.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888
  1. <template>
  2. <view class="container">
  3. <u-navbar leftIconColor="#fff" titleStyle="color:#fff;fontSize:36rpx;" :autoBack="true" bgColor="#2C6FF3"
  4. :placeholder="true" title="订单查询"></u-navbar>
  5. <view class="time-choose">
  6. <view class="flex align-center justify-between top">
  7. <view class="con-btn" @tap="thedaybefore()">
  8. 前一天 </view>
  9. <view class="flex align-center justify-between date" @tap="timeShow=true">
  10. <view class="">{{searchQuery.orderDate}}</view>
  11. <image src="https://cdn.ossfile.mxrvending.com/assets/xy_merc_mini/images/date.png" mode="widthFix">
  12. </image>
  13. </view>
  14. <view class="con-btn" @tap="thenextday()">后一天</view>
  15. </view>
  16. </view>
  17. <view class="search">
  18. <u-search placeholder='输入机器编号或名称搜索' v-model="searchQuery.deviceSearch" :showAction="false" @search="search">
  19. </u-search>
  20. </view>
  21. <view class="flex align-center justify-between screen-container">
  22. <view>{{Number(orderCount.orderNum)}}个订单,合计:¥{{Number(orderCount.orderTotalAmount/100)}}</view>
  23. <view class="flex align-center">
  24. <view class="show-zero flex justify-end align-center">
  25. <view>零元单:</view>
  26. <view>
  27. <u-switch activeColor="#2C6FF3" size="14" v-model="searchQuery.showZero" @change="showZeroChange"></u-switch>
  28. </view>
  29. </view>
  30. <view class="flex align-center justify-center" @tap="screen">
  31. <view class="" style="font-size: 28rpx;font-weight: 500;color: #333333;">筛选</view>
  32. <image src="https://cdn.ossfile.mxrvending.com/assets/xy_merc_mini/images/screen.png"
  33. style="width: 32rpx;height: 32rpx;margin-left: 12rpx;" mode="widthFix"></image>
  34. </view>
  35. </view>
  36. </view>
  37. <view class="tab-wrap">
  38. <view class="tab">
  39. <u-tabs :list="tabList" :activeStyle="{color: '#333',fontWeight: 'bold',fontSize:'36rpx'}"
  40. :inactiveStyle="{fontSize:'32rpx'}" :scrollable="false" :current="current" @click="tabClick"
  41. lineColor="#2C6FF3">
  42. </u-tabs>
  43. </view>
  44. </view>
  45. <scroll-view class="scrollview" :scroll-with-animation="true" scroll-y lower-threshold="100"
  46. @scrolltolower="scrolltolower" :style="{height:fullHeight}">
  47. <view v-if="orderList.length>0">
  48. <block v-for="(item,index) in orderList" :key="item.id">
  49. <view class="equipment-container" @tap="details(item)">
  50. <view class="flex align-center justify-between">
  51. <view class="title" v-if="item.deviceName">
  52. {{item.deviceName}}<text>({{item.deviceId}})</text>
  53. </view>
  54. <view class="title" v-else>{{item.deviceId}}</view>
  55. <view>
  56. <u-icon name="arrow-right" size="14"></u-icon>
  57. </view>
  58. </view>
  59. <view class="order-detail-item">
  60. <view>订单号:</view>{{item.id}}
  61. </view>
  62. <view class="order-detail-item">
  63. <view>支付方式:</view>{{$xy.getPayType(item.payType)}}
  64. </view>
  65. <view class="order-detail-item">
  66. <view>设备类型:</view>{{item.deviceType||'/'}}
  67. </view>
  68. <view class="order-detail-item">
  69. <view>时间:</view>{{item.createTime}}
  70. </view>
  71. <view class="order-detail-item" v-if="$xy.delMoney(item.payMoney)==0">
  72. <view>零元单提示:</view><view style="color: red;">未拿商品</view>
  73. </view>
  74. <view class="goods-container sb-box" v-for="(item1,index1) in item.orderGoods" :key="item1.id">
  75. <view class="flex align-center justify-center image-container">
  76. <u--image radius="4" width="130rpx" height="130rpx" :src="item1.goodsImgUrl"
  77. mode="aspectFit" :lazy-lord="true"></u--image>
  78. </view>
  79. <view class="details-container">
  80. <view class="flex align-center goods-name-num justify-between">
  81. <view class="goods-name">{{item1.goodsName}}</view>
  82. <view class="goods-num">×{{item1.totalNumber}}</view>
  83. </view>
  84. <view class="gp-item">
  85. 单价:¥{{(Number(item1.totalMoney)/Number(item1.totalNumber))/100}}
  86. </view>
  87. <view class="gp-item" v-if="item1.refundMoney||item1.refundMoney!=0">
  88. 已退款:¥{{$xy.delMoney(item1.refundMoney)}}
  89. </view>
  90. <view class="goods-price flex">
  91. <!-- <view class="gp-item">
  92. 应收:¥{{(Number(item1.totalMoney)-Number(item1.discountMoney))/100}}
  93. </view> -->
  94. <!-- <view class="gp-item">
  95. 实收:¥{{item1.totalMoney-item1.discountMoney}}
  96. </view> -->
  97. </view>
  98. <!-- <view class="good-act">优惠活动:无</view> -->
  99. </view>
  100. </view>
  101. <view class="martop" style="text-align: right;">共计{{Number(item.goodsNumber)}}件,实付款<text
  102. style="color: red;font-weight: bold;">¥{{$xy.delMoney(item.orderTotalMoney)}}</text></view>
  103. </view>
  104. </block>
  105. <view class="load-more" style="padding:24rpx;">
  106. <u-loadmore v-if="orderList.length>0" :status="loadmoreStatus" />
  107. </view>
  108. </view>
  109. <view v-else class='empty'>
  110. <u-empty mode="data" text="数据为空"></u-empty>
  111. </view>
  112. </scroll-view>
  113. <xpopup :show="screenShow" @close="close" @confirm="sure" :showBtn="true" title="筛选">
  114. <view class="popup-container">
  115. <view class='martop'>
  116. <u--input placeholder="订单编号" v-model="searchQuery.id" border="surround"></u--input>
  117. </view>
  118. <view class='martop'>
  119. <u--input placeholder="手机号码" v-model="searchQuery.phone" border="surround"></u--input>
  120. </view>
  121. <view class='martop'>
  122. <u--input placeholder="支付订单号" v-model="searchQuery.payOrderNo" border="surround"></u--input>
  123. </view>
  124. <view class='martop' @click="actionsheetChange('sblx')">
  125. <u--input clearable readonly suffixIcon="arrow-down" v-model="showQuery.deviceType"
  126. suffixIconStyle="color: #909399" placeholder="设备类型" border="surround"></u--input>
  127. </view>
  128. <view class='martop' @click="actionsheetChange('xzqy')">
  129. <u--input clearable readonly suffixIcon="arrow-down" v-model="searchQuery.regionName"
  130. border="surround" suffixIconStyle="color: #909399" placeholder="行政区域">
  131. </u--input>
  132. </view>
  133. <view class='martop' @click="actionsheetChange('lx')">
  134. <u--input clearable readonly suffixIcon="arrow-down" v-model="showQuery.merLineId" border="surround"
  135. suffixIconStyle="color: #909399" placeholder="路线"></u--input>
  136. </view>
  137. <!-- <view class='martop' @click="actionsheetChange('ddzt')">
  138. <u--input clearable readonly suffixIcon="arrow-down" v-model="showQuery.payStatus" border="surround"
  139. suffixIconStyle="color: #909399" placeholder="订单状态">
  140. </u--input>
  141. </view> -->
  142. <view class='martop' @click="actionsheetChange('yczt')">
  143. <u--input clearable readonly suffixIcon="arrow-down" v-model="showQuery.riskType" border="surround"
  144. suffixIconStyle="color: #909399" placeholder="异常状态">
  145. </u--input>
  146. </view>
  147. <!-- <view class='martop'>
  148. <u--input clearable suffixIcon="arrow-down" v-model="searchQuery.regionName" border="surround"
  149. suffixIconStyle="color: #909399" placeholder="拉黑操作" @focus="actionsheetChange('lhcz')">
  150. </u--input>
  151. </view>
  152. <view class='martop'>
  153. <u--input clearable suffixIcon="arrow-down" v-model="searchQuery.regionName" border="surround"
  154. suffixIconStyle="color: #909399" placeholder="促销活动" @focus="actionsheetChange('cxhd')">
  155. </u--input>
  156. </view> -->
  157. </view>
  158. </xpopup>
  159. <u-action-sheet :show="actionSheetShow" :actions="actions" :title="title" @close="actionSheetShow = false"
  160. @select="actionsheetSelect($event)"></u-action-sheet>
  161. <!-- 区域选择弹框 -->
  162. <xpopup :show="areaShow" @close="areaClose" :showBtn="false" title="选择区域">
  163. <!-- 类目选择 -->
  164. <scroll-view style="height: 600rpx;" scroll-y scroll-with-animation>
  165. <view class="popup-content">
  166. <tki-tree style="width:100%;" :range="areaList" :foldAll="false" rangeKey="name" idKey="name"
  167. buttonName="选中" @btnClick="areaSubmit">
  168. </tki-tree>
  169. </view>
  170. </scroll-view>
  171. </xpopup>
  172. <!-- 时间选择 -->
  173. <u-datetime-picker :show="timeShow" :closeOnClickOverlay="true" @close="timeShow=false" @confirm="timeSubmit"
  174. @cancel="timeShow=false" v-model="timeStamp" mode="date"></u-datetime-picker>
  175. </view>
  176. </template>
  177. <script>
  178. import {
  179. orderPage,
  180. orderPageCount,
  181. page
  182. } from "@/api/order/order.js"
  183. import {
  184. areaTree
  185. } from "@/api/point/area"
  186. import {
  187. linePage,
  188. } from "@/api/point/line"
  189. export default {
  190. data() {
  191. return {
  192. keyword: '',
  193. orderListlength: '',
  194. orderList: [],
  195. orderCount: {},
  196. loadmoreStatus: 'loadmore',
  197. isEmpty: false,
  198. page: 1, //当前分页
  199. size: 10, //分页数据条数
  200. mode: 'single',
  201. screenShow: false,
  202. actionSheetShow: false,
  203. currentDate: '',
  204. nextDate: '',
  205. preDate: '',
  206. date: '',
  207. actions: [],
  208. title: '',
  209. zeroOrderName: true,
  210. zeroOrderList: [{
  211. type: false,
  212. name: '否'
  213. }, {
  214. type: true,
  215. name: '是'
  216. }],
  217. equipmentTypename: '',
  218. equipmentTypeList: [{
  219. type: '',
  220. name: '全部'
  221. }, {
  222. type: 1,
  223. name: '开门柜'
  224. }, {
  225. type: 2,
  226. name: '重力柜'
  227. }],
  228. administrativeDivisionname: '',
  229. administrativeDivisionList: [{
  230. type: 'xzqy',
  231. name: '全部'
  232. }, {
  233. type: 'xzqy',
  234. name: '省市区三级联动'
  235. }],
  236. routename: '',
  237. routeList: [{
  238. type: 'lx',
  239. name: '全部'
  240. }, {
  241. type: 'lx',
  242. name: '路线1'
  243. }, {
  244. type: 'lx',
  245. name: '路线2'
  246. }],
  247. orderStatusname: '',
  248. orderStatusList: [{
  249. type: '',
  250. name: '全部'
  251. }, {
  252. type: 1,
  253. name: '交易中'
  254. }, {
  255. type: 2,
  256. name: '交易异常'
  257. },
  258. {
  259. type: 3,
  260. name: '交易取消'
  261. },
  262. {
  263. type: 4,
  264. name: '交易完成'
  265. },
  266. {
  267. type: 5,
  268. name: '交易关闭'
  269. },
  270. {
  271. type: 6,
  272. name: '下次补单'
  273. },
  274. {
  275. type: 7,
  276. name: '支付中'
  277. }
  278. ],
  279. abnormalStatename: '',
  280. abnormalStateList: [{
  281. type: '',
  282. name: '全部'
  283. }, {
  284. type: 2,
  285. name: '发起识别失败'
  286. }, {
  287. type: 3,
  288. name: '未拿商品'
  289. }, {
  290. type: 4,
  291. name: '无法识别'
  292. },
  293. {
  294. type: 5,
  295. name: '故意遮挡'
  296. }, {
  297. type: 6,
  298. name: '柜中无此sku'
  299. }, {
  300. type: 9,
  301. name: '异物拿放'
  302. }, {
  303. type: 10,
  304. name: '疑似设备故障'
  305. },
  306. {
  307. type: 11,
  308. name: '支付失败'
  309. }, {
  310. type: 12,
  311. name: '超时'
  312. },
  313. {
  314. type: 8,
  315. name: '其他告警'
  316. }
  317. ],
  318. pullBlackOperationname: '',
  319. pullBlackOperationList: [{
  320. type: 'lhcz',
  321. name: '全部'
  322. }, {
  323. type: 'lhcz',
  324. name: '是'
  325. }, {
  326. type: 'lhcz',
  327. name: '否'
  328. }],
  329. salesPromotionname: '',
  330. salesPromotionList: [{
  331. type: 'cxhd',
  332. name: '全部'
  333. }, {
  334. type: 'cxhd',
  335. name: '双十一活动'
  336. }],
  337. searchQuery: {
  338. orderDate: '', //日期
  339. deviceSearch: '', //搜索关键字
  340. id: '', //订单编号
  341. phone: '', //手机号码
  342. payOrderNo: '', //支付单号
  343. deviceType: '', //设备类型
  344. regionName: '', //区域
  345. merLineId: '', //线路
  346. payStatus: '', //订单状态
  347. riskType: '', //异常订单类型
  348. showZero: false, //零元单
  349. },
  350. showQuery: {
  351. deviceType: '',
  352. merLineId: '',
  353. payStatus: '',
  354. riskType: '',
  355. showZero: '',
  356. },
  357. pickerType: null,
  358. minDate: null,
  359. // 编辑弹框
  360. areaShow: false,
  361. areaList: [], //区域数据
  362. timeShow: false, //时间选择弹框
  363. timeStamp: new Date(), //时间picker显示时间
  364. noLine: false, //是否有线路
  365. dayNum: 0, //日期
  366. fullHeight: 0,
  367. tabList: [{
  368. name: '全部'
  369. },
  370. {
  371. name: '未支付'
  372. }
  373. ],
  374. current: 0,
  375. }
  376. },
  377. onLoad() {
  378. let _this = this;
  379. const query = uni.createSelectorQuery().in(this);
  380. query.select(".scrollview").boundingClientRect((data) => {
  381. uni.getSystemInfo({
  382. success(res) {
  383. // 针对iPhone X等机型底部安全距离做适配
  384. const model = res.model;
  385. const modelInclude = [
  386. "iPhone X",
  387. 'iPhone XR',
  388. "iPhone XS",
  389. "iPhone XS MAX",
  390. "iPhone 12/13 mini",
  391. "iPhone 12/13 (Pro)",
  392. "iPhone 12/13 Pro Max",
  393. "iPhone 14 Pro Max"
  394. ];
  395. let safeDistance = modelInclude.includes(model)
  396. //动态设置商品区域高度
  397. console.log(res.windowHeight, data.top)
  398. if (safeDistance) {
  399. _this.fullHeight = res.windowHeight - data.top - 40 + 'px';
  400. } else {
  401. _this.fullHeight = res.windowHeight - data.top + 'px';
  402. }
  403. },
  404. });
  405. }).exec();
  406. this.currentDate = new Date();
  407. this.minDate = '2023-03-10'
  408. this.searchQuery.orderDate = uni.$u.timeFormat(this.currentDate, 'yyyy-mm-dd')
  409. this.getpage()
  410. //改为分页接口获取 this.getCountData()
  411. },
  412. methods: {
  413. // 时间选择
  414. timeSubmit(e) {
  415. this.searchQuery.orderDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
  416. this.timeShow = false
  417. this.reset()
  418. this.getpage()
  419. //改为分页接口获取 this.getCountData()
  420. },
  421. tabClick(e) {
  422. this.current = e.index
  423. if (this.current == 0) {
  424. this.searchQuery.payStatus = ''
  425. } else {
  426. this.searchQuery.payStatus = 1
  427. }
  428. this.reset()
  429. this.getpage()
  430. },
  431. //获取区域树
  432. getAreaTree() {
  433. areaTree().then(res => {
  434. this.areaList = res.data
  435. })
  436. },
  437. areaClose() {
  438. this.areaShow = false
  439. },
  440. //区域选择提交
  441. areaSubmit(res) {
  442. this.searchQuery.regionName = res.name;
  443. this.searchQuery.merLineId = null;
  444. this.showQuery.merLineId = null;
  445. this.getLineOption(res.name)
  446. this.areaClose()
  447. },
  448. //获取线路options
  449. getLineOption(regionName) {
  450. linePage({
  451. page: {
  452. current: 1,
  453. size: 1000,
  454. },
  455. regionName: regionName
  456. }).then(res => {
  457. let data = res.data.records;
  458. if (data.length > 0) {
  459. this.noLine = false;
  460. let newData = data.map(i => {
  461. return {
  462. type: i.id,
  463. name: i.lineName
  464. }
  465. })
  466. this.actions = newData;
  467. } else {
  468. this.noLine = true; //没有线路
  469. this.actions = [];
  470. }
  471. })
  472. },
  473. actionsheetChange(type) {
  474. this.pickerType = type;
  475. if (type == 'sblx') {
  476. this.actions = this.equipmentTypeList
  477. this.title = '请选择设备类型'
  478. this.actionSheetShow = true
  479. }
  480. if (type == 'xzqy') {
  481. this.areaShow = true;
  482. }
  483. if (type == 'lx') {
  484. if (this.searchQuery.regionName) {
  485. if (!this.noLine) {
  486. this.title = '请选择路线'
  487. this.actionSheetShow = true
  488. } else {
  489. this.$modal.msg('当前区域未建立线路~')
  490. }
  491. } else {
  492. this.$modal.msg('请先选择区域~')
  493. }
  494. }
  495. if (type == 'ddzt') {
  496. this.actions = this.orderStatusList
  497. this.title = '请选择订单状态'
  498. this.actionSheetShow = true
  499. }
  500. if (type == 'yczt') {
  501. this.actions = this.abnormalStateList
  502. this.title = '请选择异常状态'
  503. this.actionSheetShow = true
  504. }
  505. if (type == 'lhcz') {
  506. this.actions = this.pullBlackOperationList
  507. this.title = '请选择拉黑操作'
  508. this.actionSheetShow = true
  509. }
  510. if (type == 'cxhd') {
  511. this.actions = this.salesPromotionList
  512. this.title = '请选择促销活动'
  513. this.actionSheetShow = true
  514. }
  515. },
  516. details(item) {
  517. this.$tab.navigateTo(`/pages/order/orderDetails?id=${item.id}&createTime=${item.createTime}`)
  518. },
  519. actionsheetSelect(e) {
  520. switch (this.pickerType) {
  521. case 'sblx':
  522. this.searchQuery.deviceType = e.type
  523. this.showQuery.deviceType = e.name
  524. break;
  525. case 'xzqy':
  526. this.searchQuery.regionName = e.name
  527. break;
  528. case 'lx':
  529. this.searchQuery.merLineId = e.type
  530. this.showQuery.merLineId = e.name
  531. break;
  532. case 'ddzt':
  533. this.searchQuery.payStatus = e.type
  534. this.showQuery.payStatus = e.name
  535. break;
  536. case 'yczt':
  537. this.searchQuery.riskType = e.type
  538. this.showQuery.riskType = e.name
  539. break;
  540. // case 'lhcz':
  541. // this.pullBlackOperationname = e.name
  542. // break;
  543. // case 'cxhd':
  544. // this.salesPromotionname = e.name
  545. // break;
  546. default:
  547. break;
  548. }
  549. },
  550. close() {
  551. this.screenShow = false
  552. },
  553. confirm(e) {
  554. this.searchQuery.orderDate = e[0]
  555. this.show = false
  556. this.search()
  557. //改为分页接口获取 this.getCountData()
  558. },
  559. //是否展示零元单
  560. showZeroChange(){
  561. this.search()
  562. },
  563. thedaybefore() {
  564. this.dayNum--
  565. this.preDate = new Date(this.currentDate.getTime() + this.dayNum * (24 * 60 * 60 * 1000)); //前一天
  566. this.searchQuery.orderDate = uni.$u.timeFormat(this.preDate, 'yyyy-mm-dd')
  567. //改为分页接口获取 this.getCountData()
  568. this.search()
  569. },
  570. thenextday() {
  571. this.dayNum++
  572. this.nextDate = new Date(this.currentDate.getTime() + this.dayNum * (24 * 60 * 60 * 1000)); //后一天
  573. this.searchQuery.orderDate = uni.$u.timeFormat(this.nextDate, 'yyyy-mm-dd')
  574. //改为分页接口获取 this.getCountData()
  575. this.search()
  576. },
  577. //点击筛选
  578. screen() {
  579. this.screenShow = true
  580. this.getAreaTree()
  581. },
  582. //统计数据
  583. // getCountData() {
  584. // let params = {
  585. // orderDate: this.searchQuery.orderDate
  586. // }
  587. // Object.assign(params)
  588. // orderPageCount(params).then(res => {
  589. // let data = res.data;
  590. //
  591. // this.orderCount = data
  592. // })
  593. // },
  594. //获取订单列表
  595. getpage() {
  596. let params = {
  597. page: {
  598. current: this.page,
  599. size: this.size
  600. }
  601. }
  602. if (this.current == 0) {
  603. Object.assign(params, this.searchQuery)
  604. } else {
  605. let obj = JSON.parse(JSON.stringify(this.searchQuery))
  606. obj.orderDate = ''
  607. Object.assign(params, obj)
  608. }
  609. page(params).then(res => {
  610. let data = res.data.records;
  611. if (data.length < 10) {
  612. this.loadmoreStatus = "nomore"
  613. } else {
  614. this.loadmoreStatus = "loadmore"
  615. }
  616. this.orderCount.orderNum = res.data.orderNum;
  617. this.orderCount.orderTotalAmount = res.data.orderTotalAmount;
  618. this.orderList = this.orderList.concat(data)
  619. })
  620. },
  621. // 搜索
  622. search() {
  623. this.reset()
  624. this.getpage()
  625. },
  626. // 重置数据
  627. reset() {
  628. this.loadmoreStatus == 'loadmore'
  629. this.page = 1;
  630. this.size = 10;
  631. this.orderList = [];
  632. },
  633. // 触底加载
  634. scrolltolower() {
  635. if (this.loadmoreStatus == 'nomore') return
  636. this.page++
  637. this.getpage()
  638. },
  639. sure() {
  640. this.reset()
  641. this.getpage()
  642. this.screenShow = false;
  643. }
  644. }
  645. }
  646. </script>
  647. <style scoped lang="scss">
  648. .container {
  649. .empty {
  650. margin-top: 40%;
  651. }
  652. .martop {
  653. margin-top: 20rpx;
  654. }
  655. .search {
  656. padding: 24rpx 13rpx;
  657. background-color: #fff;
  658. }
  659. .show-zero{
  660. background-color: #fff;
  661. color: #777;
  662. margin-right: 18rpx;
  663. }
  664. .tab-wrap {
  665. background-color: #fff;
  666. .tab {
  667. // width: 40%;
  668. }
  669. }
  670. .marleft {
  671. margin-left: 10rpx;
  672. }
  673. .scrollview {
  674. overflow: hidden;
  675. }
  676. .time-choose {
  677. background-color: #fff;
  678. .top {
  679. height: 80rpx;
  680. color: #fff;
  681. padding: 0 20rpx;
  682. background-color: #2C6FF3;
  683. border-radius: 0px 0px 50rpx 50rpx;
  684. .con-btn {
  685. padding: 0 36rpx;
  686. }
  687. .date {
  688. height: 50rpx;
  689. width: 300rpx;
  690. border-radius: 10rpx;
  691. background-color: #fff;
  692. color: #000;
  693. padding: 0 20rpx;
  694. image {
  695. width: 30rpx;
  696. height: 30rpx;
  697. }
  698. }
  699. }
  700. }
  701. .screen-container {
  702. background-color: #fff;
  703. padding: 0 13rpx;
  704. >view:nth-child(1) {
  705. font-size: 28rpx;
  706. font-weight: 500;
  707. color: #777777;
  708. }
  709. }
  710. .equipment-container {
  711. margin: 13rpx 13rpx 0;
  712. padding: 12rpx 20rpx 24rpx;
  713. border-radius: 14rpx;
  714. background-color: #fff;
  715. box-shadow: 0px 0px 10rpx 0px rgba(174, 201, 255, 0.2);
  716. .sb-box {
  717. padding: 24rpx 18rpx;
  718. background-color: #f5f8fb;
  719. border-radius: 8rpx;
  720. margin-top: 12rpx;
  721. }
  722. .title {
  723. height: 60rpx;
  724. line-height: 60rpx;
  725. font-size: 32rpx;
  726. font-weight: bold;
  727. color: #333;
  728. >text {
  729. font-size: 24rpx;
  730. color: #333;
  731. }
  732. }
  733. .goods-container {
  734. height: 154rpx;
  735. margin-top: 14rpx;
  736. padding: 12rpx 12rpx 12rpx 164rpx;
  737. box-sizing: border-box;
  738. position: relative;
  739. .image-container {
  740. height: 130rpx;
  741. width: 130rpx;
  742. position: absolute;
  743. left: 12rpx;
  744. top: 50%;
  745. transform: translateY(-50%);
  746. }
  747. .details-container {
  748. position: relative;
  749. padding: 12rpx;
  750. .goods-name-num {
  751. .goods-name {
  752. font-size: 26rpx;
  753. color: #333;
  754. font-weight: bold;
  755. }
  756. .goods-num {
  757. font-size: 26rpx;
  758. color: red;
  759. margin-right: 40rpx;
  760. font-weight: bold;
  761. }
  762. }
  763. .goods-price {
  764. font-size: 28rpx;
  765. }
  766. .good-act {
  767. margin-top: 12rpx;
  768. }
  769. .gp-item {
  770. width: 50%;
  771. margin-top: 12rpx;
  772. }
  773. .goodf-act {
  774. font-size: 28rpx;
  775. color: #333;
  776. margin-top: 12rpx;
  777. }
  778. .goods-btn {
  779. margin-top: 12rpx;
  780. }
  781. .refund {
  782. position: absolute;
  783. right: 0;
  784. top: 0;
  785. background-color: red;
  786. color: #fff;
  787. border-radius: 4rpx;
  788. padding: 0 12rpx;
  789. line-height: 40rpx;
  790. font-size: 24rpx;
  791. }
  792. }
  793. }
  794. .order-detail-item {
  795. font-size: 28rpx;
  796. margin-top: 12rpx;
  797. color: #777;
  798. >view {
  799. display: inline-block;
  800. width: 170rpx;
  801. }
  802. }
  803. }
  804. .popup-container {
  805. padding: 20rpx;
  806. }
  807. .popup-content {
  808. padding: 0 24rpx;
  809. }
  810. }
  811. </style>