index.vue 24 KB

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