index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965
  1. <template>
  2. <view class="container mine clearfix">
  3. <view
  4. class="tui-header-box first"
  5. :style="{ height: isCmcustomClass == 'fiexd' ? CustomBar + 6 + 'px' : CustomBar + 6 + 'px' }"
  6. :class="isCmcustomClass"
  7. >
  8. <view class="header-top" :style="{ paddingTop: top + 'px', lineHeight: CustomBar + 20 + 'px' }"></view>
  9. <view class="header-sit">
  10. <text class="iconfont icon-fanhui" @click.stop="this.$api.navigateBack(1)"></text>
  11. <text class="header-sit-text">关联订单</text>
  12. </view>
  13. </view>
  14. <tui-skeleton
  15. v-if="skeletonShow"
  16. backgroundColor="#fafafa"
  17. borderRadius="10rpx"
  18. :isLoading="true"
  19. :loadingType="7"
  20. ></tui-skeleton>
  21. <view class="container-content" v-else>
  22. <view class="tui-header-tabs day clearfix" :style="{ top: CustomBar + 6 + 'px' }">
  23. <view v-if="!isShowHeader">
  24. <view class="tui-header-top">
  25. <view class="title"> 收款信息 </view>
  26. <view class="tui-header-button">
  27. <view class="button btn-confirm" @click="toNoSms('/pages/collection/list')">
  28. <text class="iconfont icon-wodedingdan"></text> 收款列表
  29. </view>
  30. </view>
  31. </view>
  32. <view class="tui-header-item">
  33. <view class="list-title-t">
  34. <view class="list-title-tip">
  35. <text class="badges">{{ receiptInfo.receiptType | formatReceiptType }}款</text>
  36. </view>
  37. <view class="list-title-num" :style="{ color: formatColor(receiptInfo.receiptStatus) }">{{
  38. receiptInfo.receiptStatus | formatStateType
  39. }}</view>
  40. </view>
  41. <view class="list-title-b">
  42. <view class="list-title-b-item ">
  43. 收款金额:<text class="text">¥{{ receiptInfo.receiptAmount | NumFormat }}</text>
  44. </view>
  45. <view class="list-title-b-item ">
  46. 收款类型:<text class="text">{{ receiptInfo.payTypeText }}</text>
  47. </view>
  48. </view>
  49. <view class="list-title-b">
  50. 收款时间:<text class="text">{{ receiptInfo.receiptDate }}</text>
  51. </view>
  52. <template v-if="receiptInfo.smsContent">
  53. <view class="list-title-b">收款短信:</view>
  54. <view class="list-title-b sms">
  55. <text class="text">{{ receiptInfo.smsContent ? receiptInfo.smsContent : '无' }}</text>
  56. </view>
  57. </template>
  58. <view class="list-icon" v-if="receiptInfo.tipMsg">
  59. <image
  60. class="list-icon-image"
  61. src="https://static.caimei365.com/app/crm/image/icon-noconfirm@2x.png"
  62. mode=""
  63. v-if="receiptInfo.receiptStatus == 1"
  64. ></image>
  65. <image
  66. class="list-icon-image"
  67. src="https://static.caimei365.com/app/crm/image/icon-noaudit@2x.png"
  68. mode=""
  69. v-if="receiptInfo.receiptStatus == 2"
  70. ></image>
  71. </view>
  72. </view>
  73. </view>
  74. <view class="tui-header-tabmain">
  75. <input
  76. class="input"
  77. type="text"
  78. v-model="listQuery.shopName"
  79. confirm-type="search"
  80. @confirm="subMitSearch()"
  81. placeholder="请输入供应商名称"
  82. />
  83. <text class="iconfont icon-sousuo"></text>
  84. </view>
  85. </view>
  86. <view
  87. class="user-section"
  88. :style="{
  89. top: isIphoneX ? CustomBar + 260 + 'px' : CustomBar + 250 + 'px',
  90. left: 0 + 'px',
  91. paddingBottom: isIphoneX ? '178rpx' : '144rpx'
  92. }"
  93. >
  94. <view class="header-content">
  95. <view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
  96. <!-- 空白页 -->
  97. <empty v-if="isEmpty" :typeIndex="currents" :navbarHeight="navbarHeight"></empty>
  98. <!-- 列表 -->
  99. <view v-else class="tui-order-content">
  100. <view
  101. class="tui-order-item"
  102. v-for="(order, index) in orderList"
  103. :key="index"
  104. @click.stop="orderDetail(order.mainOrder.orderId)"
  105. >
  106. <view class="list-title">
  107. <view class="list-title-t">
  108. <view class="list-title-tip">
  109. <text class="badges">{{ order.mainOrder.orderType | formatOrderType }}</text>
  110. </view>
  111. <view class="list-title-tag" v-if="order.mainOrder.organizeId == 3">
  112. <text class="badges">维沙</text>
  113. </view>
  114. <view class="list-title-num">{{ order.mainOrder.status | stateExpFormat }}</view>
  115. </view>
  116. <view class="list-title-a">
  117. <view class="list-title-a-text">
  118. 子订单编号:<text class="text">{{ order.shopOrderNo }} ( {{ order.shopOrderId }} )</text>
  119. </view>
  120. <view class="list-title-a-text">
  121. 供应商名称:<text class="text">{{ order.shopName }}</text>
  122. </view>
  123. <view class="list-title-a-text">
  124. 订单金额:<text class="text">¥{{ order.needPayAmount | NumFormat }}</text>
  125. </view>
  126. </view>
  127. <view class="list-title-b">
  128. 客户名称:<text class="text">{{ order.mainOrder.userName ? order.mainOrder.userName : '无' }}</text>
  129. </view>
  130. <view class="list-title-b">
  131. 订单编号:<text class="text">{{ order.mainOrder.orderNo }} ( {{ order.mainOrder.orderId }} )</text>
  132. </view>
  133. <view class="list-title-b">
  134. 下单日期:<text class="text">{{ order.mainOrder.orderTime }}</text>
  135. </view>
  136. <view class="list-title-b">
  137. <view class="list-title-b-item ">
  138. 订单金额:<text class="text">¥{{ order.mainOrder.payTotalFee | NumFormat }}</text>
  139. </view>
  140. <view class="list-title-b-item ">
  141. 已收金额:<text class="text">¥{{ order.mainOrder.paidAmount | NumFormat }}</text>
  142. </view>
  143. </view>
  144. </view>
  145. <view class="list-checked" @click="checkedOrder(order)">
  146. <text
  147. class="iconfont"
  148. :class="order.isChecked ? 'icon-yixuanze' : 'icon-weixuanze'"
  149. ></text>
  150. </view>
  151. <view class="list-detail" @click="handelDetail(order)">
  152. <text class="iconfont icon-xiayibu"></text>
  153. </view>
  154. </view>
  155. <!--加载loadding-->
  156. <tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
  157. <tui-nomore :visible="!pullUpOn" bgcolor="#F7F7F7" :text="nomoreText"></tui-nomore>
  158. <!--加载loadding-->
  159. </view>
  160. </view>
  161. </view>
  162. </view>
  163. <view class="distinguish-button" :style="{ paddingBottom: isIphoneX ? '68rpx' : '24rpx' }">
  164. <view class="button" @click="confirmDistinguish">确认</view>
  165. </view>
  166. </view>
  167. <!-- 弹窗 -->
  168. <tui-modal
  169. :show="modal"
  170. @click="handleClick"
  171. @cancel="hideMobel"
  172. :content="contentModalText"
  173. color="#333"
  174. :size="32"
  175. shape="circle"
  176. :maskClosable="false"
  177. ></tui-modal>
  178. </view>
  179. </template>
  180. <script>
  181. import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
  182. import modalLayer from '@/components/modal-layer'
  183. import empty from '@/components/empty'
  184. import wxLogin from '@/services/wxLogin.js'
  185. import { mapState, mapMutations } from 'vuex'
  186. const defaultListQuery = {
  187. pageNum: 1, //页数
  188. pageSize: 10, //条数
  189. id: 0,
  190. shopName: '',
  191. }
  192. export default {
  193. components: {
  194. empty
  195. },
  196. data() {
  197. return {
  198. CustomBar: this.CustomBar, // 顶部导航栏高度
  199. isIphoneX: this.$store.state.isIphoneX,
  200. receiptInfo: {},
  201. listQuery: Object.assign({}, defaultListQuery),
  202. orderList: [],
  203. scrollTop: 0,
  204. isEmpty: false,
  205. loadding: false,
  206. pullUpOn: true,
  207. hasNextPage: false,
  208. pullFlag: true,
  209. navbarHeight: '',
  210. nomoreText: '上拉显示更多',
  211. contentModalText: '', //操作文字提示语句
  212. modal: false,
  213. modal1: false,
  214. hanldOrder: '', //储存监听订单信息
  215. OperationType: '', //操作类型
  216. isCmcustomClass: 'left',
  217. isShowHeader: false,
  218. height: 64, //header高度
  219. top: 0, //标题图标距离顶部距离
  220. scrollH: 0, //滚动总高度
  221. opcity: 1,
  222. checkedOrderList: [],
  223. checkedIds:[],
  224. checkedRefundIndex: 0,
  225. confirmParams:{
  226. confirmType:4,
  227. id:0,
  228. orderIds:'',
  229. },
  230. skeletonShow: true,
  231. modelTpye:1,// 收款弹窗类型
  232. totalOrder: {
  233. orderNums:1,
  234. payTotalFee: 0, // 订单金额
  235. balancePayFee: 0, // 余额抵扣
  236. payableAmount: 0, // 应收金额
  237. paidAmount: 0 ,// 已收金额
  238. surplusAmount:0 // 剩余应收
  239. } // 统计都选相同的订单数据
  240. }
  241. },
  242. onLoad(option) {
  243. let obj = {}
  244. uni.getSystemInfo({
  245. success: res => {
  246. this.width = obj.left || res.windowWidth
  247. this.height = obj.top ? obj.top + obj.height + 8 : res.statusBarHeight + 44
  248. this.top = obj.top ? obj.top + (obj.height - 32) / 2 : res.statusBarHeight + 6
  249. this.scrollH = res.windowWidth * 0.6
  250. }
  251. })
  252. this.confirmParams.id = option.id
  253. this.getOrderReceiptDetail(this.confirmParams.id)
  254. },
  255. computed: {
  256. ...mapState(['hasLogin']),
  257. },
  258. methods: {
  259. getOrderReceiptDetail(id) {
  260. // 收款详情
  261. this.OrderService.orderReceiptDetail({ id: id })
  262. .then(response => {
  263. this.receiptInfo = response.data
  264. this.getOrderReceiptRebateOrders()
  265. })
  266. .catch(err => {
  267. this.$util.msg(err.msg, 2000)
  268. })
  269. },
  270. subMitSearch() {
  271. // 确认搜索
  272. this.listQuery.pageNum = 1
  273. this.getOrderReceiptRebateOrders()
  274. },
  275. getOrderReceiptRebateOrders() {
  276. // 收款详情-订单列表
  277. this.OrderService.orderReceiptRebateOrders(this.listQuery)
  278. .then(response => {
  279. let data = response.data
  280. this.hasNextPage = response.data.hasNextPage
  281. if (data.list && data.list.length > 0) {
  282. this.isEmpty = false
  283. this.orderList = data.list.map((el, index) => {
  284. el.isChecked = false
  285. return el
  286. })
  287. this.pullFlag = false
  288. setTimeout(() => {
  289. this.pullFlag = true
  290. }, 500)
  291. if (this.hasNextPage) {
  292. this.pullUpOn = false
  293. this.nomoreText = '上拉显示更多'
  294. } else {
  295. if (this.orderList.length < 3) {
  296. this.pullUpOn = true
  297. } else {
  298. this.pullUpOn = false
  299. this.loadding = false
  300. this.nomoreText = '已至底部'
  301. }
  302. }
  303. } else {
  304. this.isEmpty = true
  305. }
  306. this.skeletonShow = false
  307. })
  308. .catch(err => {
  309. this.$util.msg(err.msg, 2000)
  310. })
  311. },
  312. getOnReachBottomData(index) {
  313. //上拉加载
  314. this.listQuery.pageNum += 1
  315. this.OrderService.orderReceiptRebateOrders(this.listQuery)
  316. .then(response => {
  317. let data = response.data
  318. if (data.list && data.list.length > 0) {
  319. this.hasNextPage = data.hasNextPage
  320. let list = data.list.map((el, index) => {
  321. el.isChecked = false
  322. return el
  323. })
  324. this.orderList = this.orderList.concat(list)
  325. this.pullFlag = false // 防上拉暴滑
  326. setTimeout(() => {
  327. this.pullFlag = true
  328. }, 500)
  329. if (this.hasNextPage) {
  330. this.pullUpOn = false
  331. this.nomoreText = '上拉显示更多'
  332. } else {
  333. this.pullUpOn = false
  334. this.loadding = false
  335. this.nomoreText = '已至底部'
  336. }
  337. }
  338. })
  339. .catch(error => {
  340. this.$util.msg(error.msg, 2000)
  341. })
  342. },
  343. confirmDistinguish() {
  344. // 点击确认
  345. const list = []
  346. this.checkedOrderList.forEach(el => {
  347. if (list.indexOf(el.userId) == -1) {
  348. list.push(el.userId)
  349. }
  350. })
  351. if (this.checkedOrderList.length == 0) {
  352. this.$util.msg('请选择需要关联的订单!', 2000)
  353. return
  354. }
  355. if(this.currents === 1){// 订金订单每次只能关联一个订单
  356. if (this.checkedOrderList.length > 1) {
  357. this.$util.msg('订金订单每次只能关联一个订单!', 2000)
  358. return
  359. }
  360. }
  361. if(this.currents === 3){// 退款子订单每次只能关联一个子订单
  362. if (this.checkedOrderList.length > 1) {
  363. this.$util.msg('只能选择一个子订单!', 2000)
  364. return
  365. }
  366. }
  367. if (list.length > 1) {
  368. this.$util.msg('请选择相同机构的订单!', 2000)
  369. return
  370. }
  371. let payTotalFee = 0 //订单金额
  372. let balancePayFee = 0 //余额抵扣
  373. let payableAmount = 0 //应收金额
  374. let paidAmount = 0 //已收金额
  375. let surplusAmount = 0 //剩余应收
  376. this.checkedOrderList.forEach(el => {
  377. payTotalFee += el.payTotalFee
  378. balancePayFee += el.balancePayFee
  379. payableAmount += el.payableAmount
  380. paidAmount += el.paidAmount
  381. surplusAmount += el.surplusAmount
  382. this.checkedIds.push(el.orderId)
  383. })
  384. // 赋值
  385. this.totalOrder.payTotalFee = Number(payTotalFee.toFixed(2))
  386. this.totalOrder.surplusAmount = Number(surplusAmount.toFixed(2))
  387. this.totalOrder.balancePayFee = Number(balancePayFee.toFixed(2))
  388. this.totalOrder.payableAmount = Number(payableAmount.toFixed(2))
  389. this.totalOrder.paidAmount = Number(paidAmount.toFixed(2))
  390. this.totalOrder.orderNums = this.checkedOrderList.length
  391. if(this.currents === 1){// 收款金额必须等于订金订单金额才能关联
  392. if (this.receiptInfo.receiptAmount != this.totalOrder.payTotalFee) {
  393. this.$util.msg('收款金额必须等于订金订单金额才能关联!', 2000)
  394. return
  395. }
  396. }
  397. console.log('totalOrder', this.totalOrder)
  398. //处理收款状态的几种类型
  399. if(this.receiptInfo.receiptAmount == this.totalOrder.payableAmount || (this.totalOrder.payableAmount - this.receiptInfo.receiptAmount) > 10){
  400. //收款金额等于订单应收金额 或者是 订单应收总金额减去收款金额大于等于10
  401. this.modelTpye = 1
  402. console.log('收款金额等于订单应收金额 或者是 订单应收总金额减去收款金额大于等于10',this.modelTpye)
  403. }else if(this.receiptInfo.receiptAmount > this.totalOrder.payableAmount){
  404. //收款金额大于订单应收金额(可退款到余额)
  405. this.modelTpye = 2
  406. console.log('收款金额大于订单应收金额(可退款到余额)',this.modelTpye)
  407. }else if((this.totalOrder.payableAmount - this.receiptInfo.receiptAmount) <= 10){
  408. //订单应收总金额减去收款金额小于等于10元时,才能抹平确认
  409. this.modelTpye = 3
  410. console.log('订单应收总金额减去收款金额小于等于10元时,才能抹平确认)',this.modelTpye)
  411. }
  412. this.modal1 = true
  413. },
  414. checkedOrder(order) {
  415. // 勾选关联订单
  416. order.isChecked = !order.isChecked
  417. if (order.isChecked) {
  418. this.checkedOrderList.push(order)
  419. } else {
  420. this.checkedOrderList.splice(this.checkedOrderList.indexOf(order), 1)
  421. }
  422. },
  423. handleClick(e) {
  424. //用户操作订单
  425. let index = e.index
  426. if (index == 1) {
  427. }
  428. },
  429. hideMobel() {
  430. this.modal = false
  431. },
  432. formatColor(state) {
  433. //设置颜色
  434. let stateColor = '',
  435. stateColorObject = {
  436. 1: '#FEAC20',
  437. 2: '#4cd964',
  438. 3: '#34CC8C',
  439. 4: '#F94B4B',
  440. 5: '#007aff'
  441. }
  442. Object.keys(stateColorObject).forEach(function(key) {
  443. if (key == state) {
  444. stateColor = stateColorObject[key]
  445. }
  446. })
  447. return stateColor
  448. },
  449. orderDetail(id) {
  450. //订单详情跳转
  451. this.$api.navigateTo(`/pages/relation/order/detail?orderId=${id}`)
  452. },
  453. toNoSms(url) {
  454. this.$api.navigateTo(url)
  455. }
  456. },
  457. onPageScroll(e) {
  458. //实时获取到滚动的值
  459. if (e.scrollTop > 30) {
  460. this.isCmcustomClass = 'fiexd'
  461. } else {
  462. this.isCmcustomClass = 'left'
  463. }
  464. if (e.scrollTop > 180) {
  465. this.isShowHeader = true
  466. } else {
  467. this.isShowHeader = false
  468. }
  469. },
  470. onReachBottom() {
  471. if (this.hasNextPage) {
  472. this.loadding = true
  473. this.pullUpOn = true
  474. this.getOnReachBottomData()
  475. }
  476. },
  477. onPullDownRefresh() {
  478. setTimeout(() => {
  479. this.listQuery.pageNum = 1
  480. this.getOrderReceiptRebateOrders()
  481. uni.stopPullDownRefresh()
  482. }, 200)
  483. },
  484. onShareAppMessage(res) {
  485. //分享购买优惠券
  486. const payment = res.target.dataset.payment
  487. console.log('payment', payment)
  488. if (res.from === 'button') {
  489. // console.log('来自页面内转发按钮')
  490. return {
  491. title: `【待确认】收款金额${payment.receiptAmount.toFixed(2)}元,收款时间:${payment.receiptDate}`,
  492. path: `pages/seller/cart/coupon-share?payment=${payment.id}`,
  493. imageUrl: 'https://static.caimei365.com/app/img/icon/icon-shareCoupon@2x.png'
  494. }
  495. }
  496. },
  497. onShow() {
  498. }
  499. }
  500. </script>
  501. <style lang="scss">
  502. @import '@/uni.scss';
  503. page {
  504. background: #f7f7f7;
  505. }
  506. .tui-header-box {
  507. width: 100%;
  508. background: #ffffff;
  509. z-index: 999;
  510. position: fixed;
  511. top: 0;
  512. left: 0;
  513. background-size: cover;
  514. background-image: url(https://static.caimei365.com/app/crm/image/statistic_bg2.png);
  515. &.fiexd {
  516. }
  517. &.first {
  518. }
  519. }
  520. .header-top {
  521. width: 100%;
  522. font-size: 16px;
  523. font-weight: 500;
  524. height: 32px;
  525. display: flex;
  526. align-items: center;
  527. justify-content: center;
  528. position: relative;
  529. padding: 0 40rpx;
  530. }
  531. .header-sit {
  532. width: 100%;
  533. box-sizing: border-box;
  534. height: 80rpx;
  535. line-height: 80rpx;
  536. box-sizing: border-box;
  537. color: #ffffff;
  538. .header-sit-text {
  539. text-align: left;
  540. font-size: $font-size-40;
  541. font-weight: 600;
  542. font-family: '正楷';
  543. }
  544. .icon-fanhui {
  545. display: block;
  546. width: 80rpx;
  547. height: 80rpx;
  548. float: left;
  549. text-align: center;
  550. line-height: 80rpx;
  551. font-size: 42rpx;
  552. }
  553. }
  554. .tui-header-tabs {
  555. width: 100%;
  556. height: auto;
  557. margin-bottom: 40rpx;
  558. padding: 20rpx 24rpx;
  559. background: #ffffff;
  560. box-sizing: border-box;
  561. position: fixed;
  562. z-index: 999;
  563. box-shadow: 0 10rpx 10rpx 0 rgba(86, 119, 252, 0.2);
  564. .tui-header-top {
  565. width: 100%;
  566. height: 66rpx;
  567. box-sizing: border-box;
  568. float: left;
  569. .title {
  570. float: left;
  571. line-height: 66rpx;
  572. color: #333333;
  573. text-align: left;
  574. font-size: $font-size-30;
  575. font-weight: 600;
  576. }
  577. .tui-header-button {
  578. float: right;
  579. box-sizing: border-box;
  580. height: 100%;
  581. line-height: 66rpx;
  582. padding: 5rpx 0;
  583. .button {
  584. float: left;
  585. box-sizing: border-box;
  586. padding: 0 24rpx;
  587. height: 100%;
  588. line-height: 56rpx;
  589. border-radius: 8rpx;
  590. text-align: center;
  591. color: #ffffff;
  592. margin-left: 10rpx;
  593. &.btn-confirm {
  594. background: $btn-confirm;
  595. }
  596. }
  597. }
  598. }
  599. .tui-header-item {
  600. width: 100%;
  601. height: auto;
  602. margin: 10rpx 0;
  603. position: relative;
  604. float: left;
  605. .list-title-t {
  606. width: 100%;
  607. height: 50rpx;
  608. float: left;
  609. font-size: $font-size-28;
  610. padding-bottom: 10rpx;
  611. margin-bottom: 10rpx;
  612. .list-title-num {
  613. float: left;
  614. text-align: left;
  615. color: #999999;
  616. margin-left: 30rpx;
  617. line-height: 40rpx;
  618. }
  619. .list-title-tip {
  620. float: left;
  621. .badges {
  622. display: block;
  623. float: left;
  624. padding: 0 15rpx;
  625. height: 40rpx;
  626. line-height: 40rpx;
  627. border-radius: 4rpx;
  628. background: $btn-confirm;
  629. font-size: $font-size-24;
  630. text-align: center;
  631. color: #ffffff;
  632. }
  633. }
  634. }
  635. .list-title-b {
  636. width: 100%;
  637. height: 40rpx;
  638. float: left;
  639. font-size: $font-size-24;
  640. line-height: 40rpx;
  641. color: #666666;
  642. text-align: left;
  643. .text{
  644. color: #999999;
  645. }
  646. .list-title-b-item {
  647. width: 50%;
  648. height: 100%;
  649. float: left;
  650. }
  651. &.sms {
  652. height: 100rpx;
  653. padding: 10rpx;
  654. border-radius: 4rpx;
  655. }
  656. }
  657. .list-icon {
  658. width: 120rpx;
  659. height: 120rpx;
  660. border-radius: 10rpx;
  661. position: absolute;
  662. right: 0;
  663. top: 0;
  664. color: #dd524d;
  665. z-index: 99;
  666. .list-icon-image{
  667. width: 120rpx;
  668. height: 120rpx;
  669. display: block;
  670. }
  671. }
  672. }
  673. .tui-header-tabmain {
  674. width: 100%;
  675. height: 70rpx;
  676. float: left;
  677. position: relative;
  678. .input {
  679. width: 100%;
  680. height: 70rpx;
  681. box-sizing: border-box;
  682. padding: 0 20rpx;
  683. padding-left: 70rpx;
  684. background: #f7f7f7;
  685. border-radius: 8rpx;
  686. }
  687. .icon-sousuo {
  688. width: 80rpx;
  689. height: 70rpx;
  690. display: block;
  691. line-height: 70rpx;
  692. text-align: center;
  693. color: #999999;
  694. font-size: $font-size-40;
  695. position: absolute;
  696. left: 0;
  697. top: 0;
  698. }
  699. }
  700. .button-content {
  701. width: 100%;
  702. height: auto;
  703. float: left;
  704. position: relative;
  705. .btn {
  706. height: 64rpx;
  707. padding: 0 20rpx;
  708. margin: 10rpx 0 0 0;
  709. line-height: 64rpx;
  710. font-size: $font-size-26;
  711. text-align: center;
  712. border-radius: 6rpx;
  713. float: right;
  714. }
  715. .btn-confirm {
  716. background-color: #ff5000;
  717. color: #ffffff;
  718. }
  719. }
  720. }
  721. .distinguish-button {
  722. width: 100%;
  723. position: fixed;
  724. bottom: 0;
  725. left: 0;
  726. background-color: #ffffff;
  727. padding: 0 50rpx;
  728. padding-top: 20rpx;
  729. .button {
  730. width: 100%;
  731. height: 80rpx;
  732. background: $btn-confirm;
  733. border-radius: 40rpx;
  734. text-align: center;
  735. color: #ffffff;
  736. line-height: 80rpx;
  737. font-size: $font-size-28;
  738. box-shadow: 0 10rpx 14rpx 0 rgba(86, 119, 252, 0.2);
  739. }
  740. }
  741. .user-section {
  742. position: absolute;
  743. width: 100%;
  744. }
  745. .header-content {
  746. width: 100%;
  747. height: auto;
  748. position: relative;
  749. background-color: #f7f7f7;
  750. .tui-header-btm {
  751. width: 100%;
  752. padding: 0 30rpx;
  753. box-sizing: border-box;
  754. display: flex;
  755. align-items: center;
  756. justify-content: space-between;
  757. color: #fff;
  758. }
  759. .tui-btm-item {
  760. flex: 1;
  761. display: flex;
  762. flex-direction: column;
  763. align-items: center;
  764. justify-content: center;
  765. }
  766. .tui-btm-num {
  767. font-size: 32rpx;
  768. font-weight: 600;
  769. position: relative;
  770. }
  771. .tui-btm-text {
  772. font-size: 24rpx;
  773. opacity: 0.85;
  774. padding-top: 4rpx;
  775. }
  776. }
  777. .uni-badge--small {
  778. -webkit-transform: scale(0.8);
  779. -ms-transform: scale(0.8);
  780. transform: scale(0.8);
  781. -webkit-transform-origin: center center;
  782. -ms-transform-origin: center center;
  783. transform-origin: center center;
  784. }
  785. .uni-badge {
  786. font-family: 'Helvetica Neue', Helvetica, sans-serif;
  787. -webkit-box-sizing: border-box;
  788. box-sizing: border-box;
  789. font-size: 12px;
  790. line-height: 1;
  791. display: inline-block;
  792. padding: 3px 6px;
  793. color: #333;
  794. border-radius: 100px;
  795. background-color: #f1f1f1;
  796. }
  797. .uni-badge-error {
  798. color: #fff;
  799. background-color: #dd524d;
  800. }
  801. .tui-order-list {
  802. margin-top: 24rpx;
  803. width: 100%;
  804. position: relative;
  805. box-sizing: border-box;
  806. padding: 0 20rpx;
  807. }
  808. .tui-order-content {
  809. width: 100%;
  810. height: auto;
  811. }
  812. .tui-order-item {
  813. display: flex;
  814. flex-direction: column;
  815. width: 100%;
  816. padding: 20rpx 20rpx;
  817. background: #fff;
  818. margin-bottom: 24rpx;
  819. border-radius: 8rpx;
  820. position: relative;
  821. .list-checked {
  822. width: 80rpx;
  823. height: 80rpx;
  824. line-height: 80rpx;
  825. text-align: center;
  826. position: absolute;
  827. right: 0;
  828. top: 0;
  829. .iconfont {
  830. font-size: 38rpx;
  831. color: $color-system;
  832. }
  833. }
  834. .list-detail {
  835. width: 80rpx;
  836. height: 280rpx;
  837. line-height: 280rpx;
  838. text-align: center;
  839. position: absolute;
  840. right: 0;
  841. top: 80rpx;
  842. .iconfont {
  843. font-size: $font-size-30;
  844. color: #999999;
  845. }
  846. }
  847. }
  848. .list-title {
  849. width: 100%;
  850. height: auto;
  851. .list-title-t {
  852. width: 100%;
  853. height: 50rpx;
  854. float: left;
  855. font-size: $font-size-24;
  856. padding-bottom: 10rpx;
  857. .list-title-tip {
  858. float: left;
  859. .badges {
  860. display: block;
  861. float: left;
  862. padding: 0 15rpx;
  863. height: 40rpx;
  864. line-height: 40rpx;
  865. border-radius: 20rpx;
  866. background: rgba(248, 204, 148, 0.5);
  867. font-size: $font-size-24;
  868. text-align: center;
  869. color: #666666;
  870. }
  871. }
  872. .list-title-tag {
  873. float: left;
  874. margin-left: 20rpx;
  875. .badges {
  876. display: block;
  877. float: left;
  878. padding: 0 15rpx;
  879. height: 40rpx;
  880. line-height: 40rpx;
  881. border-radius: 20rpx;
  882. background: linear-gradient(270deg, #fee9ba 0%, #f0cb72 100%);
  883. font-size: $font-size-24;
  884. text-align: center;
  885. color: #666666;
  886. }
  887. }
  888. .list-title-num {
  889. float: left;
  890. text-align: left;
  891. color: #e15616;
  892. line-height: 40rpx;
  893. margin-left: 20rpx;
  894. }
  895. }
  896. .list-title-a {
  897. width: 100%;
  898. height: auto;
  899. float: left;
  900. padding: 5rpx 8rpx;
  901. border-radius: 4rpx;
  902. background-color: rgba(247, 247, 247, 1);
  903. margin-bottom: 10rpx;
  904. .text{
  905. color: #999999;
  906. }
  907. .list-title-a-text {
  908. width: 100%;
  909. height: 40rpx;
  910. float: left;
  911. font-size: $font-size-24;
  912. line-height: 40rpx;
  913. color: #666666;
  914. text-align: left;
  915. }
  916. }
  917. .list-title-b {
  918. width: 100%;
  919. height: 40rpx;
  920. float: left;
  921. font-size: $font-size-24;
  922. line-height: 40rpx;
  923. color: #666666;
  924. text-align: left;
  925. .text{
  926. color: #999999;
  927. }
  928. .list-title-b-item {
  929. width: 50%;
  930. height: 100%;
  931. float: left;
  932. }
  933. &.sms {
  934. height: auto;
  935. }
  936. }
  937. }
  938. </style>