order-search.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. <template>
  2. <view class="search-container">
  3. <view class="search-main">
  4. <view class="search">
  5. <view class="search-input">
  6. <text class="iconfont icon-iconfonticonfontsousuo1"></text>
  7. <input
  8. maxlength="20"
  9. focus
  10. type="text"
  11. value=""
  12. confirm-type="search"
  13. @focus="onFocus"
  14. @input="onShowClose"
  15. @confirm="subMitSearch()"
  16. placeholder="请输入商品关键词"
  17. v-model.trim="listQuery.searchWord"
  18. />
  19. <text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
  20. </view>
  21. <view class="search-btn" @click="subMitSearch()">搜索</view>
  22. </view>
  23. </view>
  24. <view class="search-container-history" v-if="!isShowWrapper">
  25. <view :class="'s-' + themeClass" v-if="serachRecordList.length > 0">
  26. <view class="header"> 搜索历史<text class="iconfont icon-shanchu" @click="confirmDetele"></text> </view>
  27. <view class="list">
  28. <view
  29. v-for="(item, index) in serachRecordList"
  30. :key="index"
  31. @click="keywordsClick(item.searchWord)"
  32. >{{ item.searchWord }}</view
  33. >
  34. </view>
  35. </view>
  36. </view>
  37. <view
  38. class=" order-container"
  39. v-if="isShowWrapper"
  40. :style="{ overflow: 'auto', height: showSkeleton ? windowHeight + 'px' : 'auto' }"
  41. >
  42. <scroll-view
  43. class="tui-skeleton"
  44. :style="{ height: scrollHeight + 'px' }"
  45. @scrolltolower="scrolltolower"
  46. scroll-y
  47. >
  48. <view :class="{ 'tui-order-list': scrollTop >= 0 }" class="tui-skeleton clearfix">
  49. <!-- 空白页 -->
  50. <empty v-if="isShowEmpty" :navbarHeight="navbarHeight"></empty>
  51. <!-- 列表 -->
  52. <view v-else class="tui-order-content">
  53. <view
  54. class="tui-order-item"
  55. v-for="(order, orderIndex) in orderList"
  56. :key="orderIndex"
  57. @click.stop="detail(order)"
  58. >
  59. <view class="order-title">
  60. <view class="order-title-name">
  61. <text>{{ order.clubName ? order.clubName : '' }}</text>
  62. </view>
  63. <view class="order-title-t">
  64. <view class="order-title-tip tui-skeleton-fillet">
  65. {{ order.status | statusFilters }}
  66. </view>
  67. <text
  68. class="bage buss tui-skeleton-fillet"
  69. v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4"
  70. >采购员</text
  71. >
  72. <text
  73. class="bage auto tui-skeleton-fillet"
  74. v-if="
  75. order.orderSubmitType == 0 ||
  76. order.orderSubmitType == 1 ||
  77. order.orderSubmitType == 2
  78. "
  79. >
  80. 自主
  81. </text>
  82. <image
  83. class="bage-icon"
  84. src="https://static.caimei365.com/app/img/icon/icon-type@3x.png"
  85. mode="widthFix"
  86. v-if="order.secondHandOrderFlag == 1"
  87. >
  88. </image>
  89. </view>
  90. </view>
  91. <view class="goods-title">
  92. <view v-if="order.shopPromotion" class="floor-item-act">
  93. <view class="floor-tags">{{ order.shopPromotion.name }}</view>
  94. </view>
  95. <view class="title-text tui-skeleton-fillet">{{ order.shopName }}</view>
  96. </view>
  97. <view
  98. class="goods-item"
  99. v-for="(pros, prosIndex) in order.orderProductList"
  100. :key="prosIndex"
  101. >
  102. <view class="goods-pros-t">
  103. <view class="pros-img tui-skeleton-fillet">
  104. <image :src="pros.image" alt="" />
  105. <text class="tips" v-if="pros.giftType == 2 || pros.giftType == 1"
  106. >赠品</text
  107. >
  108. </view>
  109. <view class="pros-product clearfix">
  110. <view class="producttitle tui-skeleton-fillet">{{ pros.name }}</view>
  111. <view
  112. class="productspec tui-skeleton-fillet"
  113. v-if="pros.productCategory != 2"
  114. >规格:{{ pros.productUnit }}</view
  115. >
  116. <view class="productprice">
  117. <view
  118. class="price tui-skeleton-fillet"
  119. :class="
  120. pros.svipPriceFlag == 1 ||
  121. PromotionsFormat(pros.productPromotion)
  122. ? 'none'
  123. : ''
  124. "
  125. >
  126. <text>¥{{ pros.price | NumFormat }}</text>
  127. </view>
  128. <view class="count tui-skeleton-fillet">
  129. <text class="small">x</text>{{ pros.num }}
  130. </view>
  131. </view>
  132. <view class="floor-item-act">
  133. <template v-if="pros.productPromotion">
  134. <view
  135. v-if="PromotionsFormat(pros.productPromotion)"
  136. class="floor-tags"
  137. @click.stop="clickPopupShow(pros.productPromotion)"
  138. >
  139. {{ pros.productPromotion.name }}
  140. <text
  141. v-if="
  142. pros.productPromotion != null &&
  143. pros.productPromotion.type != 3
  144. "
  145. >
  146. :¥{{
  147. pros.productPromotion == null
  148. ? '0.00'
  149. : pros.productPromotion.touchPrice | NumFormat
  150. }}
  151. </text>
  152. </view>
  153. <view
  154. v-else-if="pros.productPromotion.type != 3"
  155. class="floor-tags"
  156. @click.stop="clickPopupShow(pros.productPromotion)"
  157. >{{ pros.productPromotion.name }}</view
  158. >
  159. </template>
  160. <template v-if="pros.svipPriceFlag == 1">
  161. <view class="svip-tags">
  162. <view class="tags">SVIP</view>
  163. <view class="price">{{ pros.svipPriceTag }}</view>
  164. </view>
  165. </template>
  166. </view>
  167. </view>
  168. </view>
  169. </view>
  170. <view class="order-footer">
  171. <!-- <view class="order-footer-top" v-if="order.discountFee != 0"
  172. >经理折扣:¥{{ order.discountFee | NumFormat }}</view
  173. > -->
  174. <view class="order-footer-bot">
  175. <view class="count tui-skeleton-fillet">共{{ order.itemCount }}件商品</view>
  176. <view
  177. class="money tui-skeleton-fillet"
  178. v-if="order.status == 31 || order.status == 32 || order.status == 33"
  179. >
  180. 已支付:<label style="color:#f94b4b ;"
  181. >¥{{ order.receiptAmount | NumFormat }}</label
  182. >
  183. </view>
  184. <view class="money tui-skeleton-fillet" v-else>
  185. 待付总额:<label style="color:#f94b4b ;"
  186. >¥{{ order.obligation | NumFormat }}</label
  187. >
  188. </view>
  189. </view>
  190. </view>
  191. <!-- 底部button -->
  192. <cm-list-button
  193. ref="orderButton"
  194. :order="order"
  195. :status="order.status"
  196. :userId="order.userId"
  197. :shopOrderId="order.shopOrderId"
  198. :rechargeGoods="order.rechargeGoods"
  199. :secondHandOrderFlag="order.secondHandOrderFlag"
  200. @buttonConfirm="handButtonConfirm"
  201. />
  202. </view>
  203. <!--加载loadding-->
  204. <tui-loadmore :visible="loadding" :index="3" type="black"/>
  205. <tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"/>
  206. <!--加载loadding-->
  207. </view>
  208. </view>
  209. </scroll-view>
  210. </view>
  211. <!-- 分享弹窗 -->
  212. <cm-share-popup
  213. :shopOrderId="handleShopOrderId"
  214. :shareType="isShareType"
  215. v-if="isShareModal"
  216. @shareConfirm="onShareAppMessage"
  217. />
  218. <!-- 再来一单弹窗 -->
  219. <view class="aganBj" v-show="showAgan">
  220. <view class="alertAgan">
  221. <text class="title">{{ promptitle }}</text>
  222. <view class="goods">
  223. <view class="list" v-for="(item, index) in failList" :key="index">
  224. <image class="image-left" :src="item.image"></image>
  225. <view class="name-right">{{ item.name }}</view>
  226. </view>
  227. </view>
  228. <view class="BtnAll">
  229. <view class="closebtn btn" @click="showAgan = false">取消</view>
  230. <view class="cancel btn" @click="handleAddAgian">确定</view>
  231. </view>
  232. </view>
  233. </view>
  234. <!-- 提示弹窗 -->
  235. <tui-modal
  236. :show="modal"
  237. @click="handleClick"
  238. :content="contentModalText"
  239. :button="modalButton"
  240. color="#333"
  241. :size="32"
  242. shape="circle"
  243. :maskClosable="false"
  244. />
  245. <!-- 透明模态层 -->
  246. <modal-layer v-if="isModalLayer"></modal-layer>
  247. </view>
  248. </template>
  249. <script>
  250. import modalLayer from '@/components/modal-layer'
  251. import empty from './components/empty'
  252. import cmListButton from './components/cm-list-button' //操作按钮
  253. import cmSharePopup from './components/cm-share-popup' //分享弹窗
  254. import orderMixins from './mixins/orderMixins.js'
  255. const defaultListQuery = {
  256. pageNum: 1, // 页码
  257. pageSize: 10, // 每页条数
  258. serviceProviderId: 0, // 用户Id
  259. searchWord: '' // 搜索关键词
  260. }
  261. export default {
  262. mixins: [orderMixins],
  263. components: {
  264. empty,
  265. cmListButton,
  266. cmSharePopup,
  267. },
  268. data() {
  269. return {
  270. listQuery: Object.assign({}, defaultListQuery),
  271. themeClass: 'block',
  272. isShowClose: false, //是否显示清空输入框图标
  273. isSearchHistory: false, //是都显示搜索历史
  274. serachRecordList: [],
  275. isShowWrapper: false,
  276. isModallayer: false,
  277. isShowEmpty: true,
  278. windowHeight: '',
  279. showSkeleton: true,
  280. userId: 0,
  281. orderList: [],
  282. scrollTop: 0,
  283. deteleType: '',
  284. skeletonShow: true,
  285. isShareModal: false, //控制分享弹窗
  286. isCenceModal: false, //控制取消订单弹窗
  287. isShowDelModal: false, //控制删除订单弹窗
  288. isModalLayer: false,
  289. loadding: false,
  290. pullUpOn: true,
  291. hasNextPage: false,
  292. pullFlag: true,
  293. navbarHeight: '',
  294. nomoreText: '上拉显示更多',
  295. scrollHeight: '',
  296. showAgan: false,
  297. failList: [], // 再来一单可购买商品
  298. promptitle: ''
  299. }
  300. },
  301. onLoad() {
  302. this.initGetSerachRecord()
  303. },
  304. methods: {
  305. subMitSearch() {
  306. if (this.listQuery.searchWord == '') {
  307. this.$util.msg('请输入订单编号', 2000)
  308. } else {
  309. this.commodityList = []
  310. this.getOrderDatainit()
  311. }
  312. },
  313. async initGetSerachRecord() {
  314. try{
  315. const userInfo = await this.$api.getStorage()
  316. this.listQuery.serviceProviderId = userInfo.serviceProviderId
  317. this.userId = userInfo.userId
  318. const res = await this.OrderService.SearchOrderHistory({ userId: this.userId })
  319. const data = res.data
  320. this.serachRecordList = data
  321. if (this.serachRecordList.length > 0) {
  322. this.isSearchHistory = true
  323. } else {
  324. this.isSearchHistory = false
  325. }
  326. }catch(error){
  327. this.$util.msg(error.msg, 2000)
  328. }
  329. },
  330. //清空历史记录
  331. async confirmDetele() {
  332. try{
  333. const res = await this.OrderService.ClearOrderHistory({ userId: this.userId })
  334. this.$util.msg(res.msg, 2000, true, 'success')
  335. this.serachRecordList = []
  336. }catch(error){
  337. this.$util.msg(error.msg, 2000)
  338. }
  339. },
  340. // 搜索订单列表
  341. async getOrderDatainit() {
  342. try{
  343. const res = await this.SellerService.getSellerSearchOrderList(this.listQuery)
  344. const data = res.data
  345. if (data && data.list.length > 0) {
  346. this.orderList = data.list
  347. this.hasNextPage = data
  348. if (this.hasNextPage) {
  349. this.pullUpOn = false
  350. this.nomoreText = '上拉显示更多'
  351. } else {
  352. if (this.orderList.length < 2) {
  353. this.pullUpOn = true
  354. } else {
  355. this.pullUpOn = false
  356. this.nomoreText = '已至底部'
  357. }
  358. }
  359. this.isShowWrapper = true
  360. this.showSkeleton = true
  361. this.isShowEmpty = false
  362. } else {
  363. this.isShowEmpty = true
  364. }
  365. }catch(error){
  366. this.$util.msg(error.msg, 2000)
  367. }
  368. },
  369. //上拉加载
  370. async getOnReachBottomData() {
  371. try{
  372. this.listQuery.pageNum += 1
  373. const res = await this.SellerService.getSellerSearchOrderList(this.listQuery)
  374. const data = res.data
  375. this.orderList = this.orderList.concat(data.list)
  376. this.hasNextPage = data.hasNextPage
  377. this.pullFlag = false // 防上拉暴滑
  378. setTimeout(() => {
  379. this.pullFlag = true
  380. }, 500)
  381. if (this.hasNextPage) {
  382. this.pullUpOn = false
  383. this.nomoreText = '上拉显示更多'
  384. } else {
  385. this.loadding = false
  386. this.pullUpOn = false
  387. this.nomoreText = '已至底部'
  388. }
  389. }catch(error){
  390. this.$util.msg(error.msg, 2000)
  391. }
  392. },
  393. //获取点击
  394. handButtonConfirm(data) {
  395. this.handleShopOrderId = data.shopOrderId
  396. switch (data.type) {
  397. case 'cancel': //取消订单
  398. this.modal = true
  399. this.contentModalText = '确认取消该订单吗?'
  400. this.handleModelEven = 1
  401. break
  402. case 'delete': //删除订单
  403. this.modal = true
  404. this.contentModalText = '确认删除该订单吗?'
  405. this.handleModelEven = 2
  406. break
  407. case 'confirm': // 确认订单
  408. this.modal = true
  409. this.contentModalText = '确认此订单吗?'
  410. this.handleModelEven = 3
  411. break
  412. case 'again':
  413. this.handOrderAgain(data.shopOrderId)
  414. break
  415. case 'query':
  416. this.isModalLayer = true
  417. this.$api.navigateTo('/pages/user/order/order-logistics?shopOrderId=' + data.shopOrderId)
  418. break
  419. }
  420. },
  421. scrolltolower() {
  422. if (this.hasNextPage) {
  423. this.loadding = true
  424. this.pullUpOn = true
  425. this.showSkeleton = false
  426. this.getOnReachBottomData()
  427. }
  428. },
  429. detail(order) {
  430. //订单详情跳转
  431. this.isModalLayer = true
  432. this.$api.navigateTo(
  433. `/pages/seller/order/order-details?type=seacrch&shopOrderId=${order.shopOrderId}&userId=${order.userId}`
  434. )
  435. },
  436. onShowClose() {
  437. //输入框失去焦点时触发
  438. this.inputEmpty(this.listQuery.searchWord)
  439. },
  440. onFocus() {
  441. //输入框获取焦点时触发
  442. this.inputEmpty(this.listQuery.searchWord)
  443. this.initGetSerachRecord()
  444. },
  445. delInputText() {
  446. //清除输入框内容
  447. this.listQuery.searchWord = ''
  448. this.isShowClose = false
  449. this.isShowWrapper = false
  450. this.inputEmpty(this.listQuery.searchWord)
  451. this.initGetSerachRecord()
  452. },
  453. keywordsClick(item) {
  454. //关键词搜索与历史搜索
  455. this.listQuery.searchWord = item
  456. this.isShowClose = true
  457. this.subMitSearch()
  458. },
  459. inputEmpty(val) {
  460. this.isShowWrapper = false
  461. if (val != '') {
  462. this.isShowClose = true
  463. } else {
  464. this.isShowClose = false
  465. }
  466. },
  467. PromotionsFormat(promo) {
  468. //促销活动类型数据处理
  469. if (promo != null) {
  470. if (promo.type == 1 && promo.mode == 1) {
  471. return true
  472. } else {
  473. return false
  474. }
  475. }
  476. return false
  477. },
  478. setScrollHeight() {
  479. const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
  480. this.windowHeight = windowHeight - 1
  481. this.scrollHeight = windowHeight - 1
  482. }
  483. },
  484. onPageScroll(e) {
  485. this.scrollTop = e.scrollTop
  486. },
  487. onShow() {
  488. this.setScrollHeight()
  489. this.$api.getStorage().then(resolve => {
  490. this.serviceProviderId = resolve.serviceProviderId
  491. })
  492. }
  493. }
  494. </script>
  495. <style lang="scss">
  496. @import '@/uni.scss';
  497. page {
  498. background-color: #f7f7f7 !important;
  499. }
  500. .search {
  501. width: 702rpx;
  502. height: 70rpx;
  503. padding: 12rpx 24rpx;
  504. border-bottom: 1px solid #f0f0f0;
  505. position: fixed;
  506. top: 0;
  507. left: 0;
  508. background: #ffffff;
  509. z-index: 1001;
  510. .search-input {
  511. width: 448rpx;
  512. height: 70rpx;
  513. padding: 0 68rpx;
  514. line-height: 70rpx;
  515. border-radius: 40rpx;
  516. position: relative;
  517. background: #f0f0f0;
  518. float: left;
  519. .icon-iconfonticonfontsousuo1 {
  520. font-size: 36rpx;
  521. color: #8a8a8a;
  522. position: absolute;
  523. left: 24rpx;
  524. z-index: 10;
  525. }
  526. .icon-shanchu1 {
  527. font-size: 36rpx;
  528. color: #8a8a8a;
  529. position: absolute;
  530. right: 24rpx;
  531. top: 0;
  532. padding: 0 10rpx;
  533. z-index: 10;
  534. }
  535. input {
  536. width: 448rpx;
  537. height: 70rpx;
  538. background-color: #f0f0f0;
  539. font-size: 26rpx;
  540. }
  541. }
  542. .search-btn {
  543. width: 118rpx;
  544. height: 70rpx;
  545. line-height: 70rpx;
  546. color: $color-system;
  547. font-size: 30rpx;
  548. text-align: center;
  549. float: left;
  550. }
  551. .voice-icon {
  552. width: 36rpx;
  553. height: 36rpx;
  554. padding: 16rpx 20rpx 16rpx 0;
  555. position: absolute;
  556. left: 16rpx;
  557. top: 4rpx;
  558. z-index: 10;
  559. }
  560. }
  561. .search-container {
  562. padding-top: 106rpx;
  563. }
  564. .s-block {
  565. background: #ffffff;
  566. .header {
  567. font-size: 32rpx;
  568. padding: 40rpx 24rpx 22rpx 24rpx;
  569. line-height: 42rpx;
  570. font-size: 30rpx;
  571. font-weight: bold;
  572. position: relative;
  573. .icon-shanchu {
  574. font-size: 36rpx;
  575. color: #333333;
  576. float: right;
  577. padding: 0 10rpx;
  578. z-index: 10;
  579. font-weight: normal;
  580. }
  581. }
  582. .list {
  583. display: flex;
  584. flex-wrap: wrap;
  585. padding-bottom: 40rpx;
  586. view {
  587. color: #8a8a8a;
  588. font-size: 24rpx;
  589. box-sizing: border-box;
  590. text-align: center;
  591. height: 48rpx;
  592. line-height: 48rpx;
  593. border-radius: 24rpx;
  594. margin: 12rpx;
  595. padding: 0 30rpx;
  596. overflow: hidden;
  597. white-space: nowrap;
  598. text-overflow: ellipsis;
  599. background-color: #f3f3f3;
  600. }
  601. }
  602. }
  603. .s-circle {
  604. margin-top: 30rpx;
  605. .header {
  606. font-size: 32rpx;
  607. padding: 30rpx;
  608. border-bottom: 2rpx solid #f9f9f9;
  609. position: relative;
  610. image {
  611. width: 36rpx;
  612. height: 36rpx;
  613. padding: 10rpx;
  614. position: absolute;
  615. right: 40rpx;
  616. top: 24rpx;
  617. }
  618. }
  619. .list {
  620. display: flex;
  621. flex-wrap: wrap;
  622. padding: 0 30rpx 20rpx;
  623. view {
  624. padding: 8rpx 30rpx;
  625. margin: 20rpx 30rpx 0 0;
  626. font-size: 28rpx;
  627. color: #8a8a8a;
  628. background-color: #f7f7f7;
  629. box-sizing: border-box;
  630. text-align: center;
  631. border-radius: 20rpx;
  632. }
  633. }
  634. }
  635. .wanted-block {
  636. margin-top: 30rpx;
  637. .header {
  638. font-size: 32rpx;
  639. padding: 30rpx;
  640. }
  641. .list {
  642. display: flex;
  643. flex-wrap: wrap;
  644. view {
  645. width: 50%;
  646. color: #8a8a8a;
  647. font-size: 28rpx;
  648. box-sizing: border-box;
  649. text-align: center;
  650. padding: 20rpx 0;
  651. border-top: 2rpx solid #fff;
  652. border-left: 2rpx solid #fff;
  653. background-color: #f7f7f7;
  654. overflow: hidden;
  655. white-space: nowrap;
  656. text-overflow: ellipsis;
  657. }
  658. }
  659. }
  660. .wanted-circle {
  661. margin-top: 30rpx;
  662. .header {
  663. font-size: 32rpx;
  664. padding: 30rpx;
  665. }
  666. .list {
  667. display: flex;
  668. flex-wrap: wrap;
  669. padding: 0 30rpx 20rpx;
  670. view {
  671. padding: 8rpx 30rpx;
  672. margin: 20rpx 30rpx 0 0;
  673. font-size: 28rpx;
  674. color: #8a8a8a;
  675. background-color: #f7f7f7;
  676. box-sizing: border-box;
  677. text-align: center;
  678. border-radius: 20rpx;
  679. }
  680. }
  681. }
  682. .order-container {
  683. scroll-view {
  684. height: 100%;
  685. overflow: scroll;
  686. }
  687. }
  688. .container {
  689. padding-bottom: env(safe-area-inset-bottom);
  690. height: auto;
  691. position: relative;
  692. }
  693. .tui-order-content {
  694. width: 100%;
  695. height: auto;
  696. }
  697. .tui-order-list {
  698. width: 100%;
  699. position: relative;
  700. }
  701. .tui-order-item {
  702. display: flex;
  703. flex-direction: column;
  704. width: 702rpx;
  705. padding: 20rpx 24rpx 0 24rpx;
  706. background: #fff;
  707. border-bottom: 20rpx solid #f7f7f7;
  708. }
  709. .order-title {
  710. width: 100%;
  711. height: auto;
  712. .order-title-name {
  713. width: 100%;
  714. height: 72rpx;
  715. border-bottom: 1px solid #f7f7f7;
  716. line-height: 72rpx;
  717. text-align: left;
  718. font-size: $font-size-28;
  719. color: #333333;
  720. .tags {
  721. display: inline-block;
  722. width: 60rpx;
  723. height: 32rpx;
  724. border-radius: 8rpx;
  725. background: #f0cb72;
  726. font-size: $font-size-22;
  727. color: #4e4539;
  728. text-align: center;
  729. line-height: 32rpx;
  730. margin-left: 10rpx;
  731. &.sv {
  732. background: #333333;
  733. color: #f0cb72;
  734. }
  735. }
  736. }
  737. .order-title-t {
  738. width: 100%;
  739. height: 68rpx;
  740. float: left;
  741. line-height: 68rpx;
  742. position: relative;
  743. .bage-icon {
  744. width: 50rpx;
  745. height: 50rpx;
  746. display: block;
  747. position: absolute;
  748. right: 110rpx;
  749. top: 12rpx;
  750. }
  751. .bage{
  752. display: inline-block;
  753. width: 80rpx;
  754. height: 32rpx;
  755. margin: 19rpx 10rpx 0 10rpx;
  756. border-radius: 4rpx;
  757. line-height: 32rpx;
  758. font-size: $font-size-22;
  759. text-align: center;
  760. color: #ffffff;
  761. float: right;
  762. &.buss{
  763. background: radial-gradient(circle, rgba(255, 39, 180, 1) 0%, rgba(193, 77, 245, 1) 100%);
  764. }
  765. &.auto{
  766. background: radial-gradient(circle, rgba(255, 180, 39, 1) 0%, rgba(245, 142, 77, 1) 100%);
  767. }
  768. }
  769. .order-title-tip {
  770. float: left;
  771. font-size: $font-size-28;
  772. line-height: 68rpx;
  773. text-align: right;
  774. color: #ff2a2a;
  775. }
  776. }
  777. }
  778. .goods-title {
  779. width: 100%;
  780. height: 56rpx;
  781. float: left;
  782. margin-top: 10rpx;
  783. .floor-item-act {
  784. height: 56rpx;
  785. text-align: center;
  786. box-sizing: border-box;
  787. float: left;
  788. padding: 10rpx 0;
  789. margin-right: 12rpx;
  790. }
  791. .title-text {
  792. width: 400rpx;
  793. overflow: hidden;
  794. text-overflow: ellipsis;
  795. white-space: nowrap;
  796. float: left;
  797. font-size: $font-size-28;
  798. color: $text-color;
  799. text-align: left;
  800. line-height: 56rpx;
  801. font-weight: bold;
  802. }
  803. }
  804. .goods-item {
  805. width: 100%;
  806. height: auto;
  807. }
  808. .goods-pros-t {
  809. display: flex;
  810. align-items: center;
  811. width: 100%;
  812. height: 217rpx;
  813. padding: 24rpx 0;
  814. .pros-img {
  815. width: 210rpx;
  816. height: 100%;
  817. border-radius: 10rpx;
  818. margin: 0 26rpx 0 0;
  819. border: 1px solid #f3f3f3;
  820. image {
  821. width: 100%;
  822. height: 100%;
  823. border-radius: 10rpx;
  824. }
  825. }
  826. }
  827. .pros-product {
  828. width: 460rpx;
  829. height: 100%;
  830. line-height: 36rpx;
  831. font-size: $font-size-26;
  832. position: relative;
  833. float: left;
  834. .producttitle {
  835. width: 100%;
  836. display: inline-block;
  837. height: auto;
  838. text-overflow: ellipsis;
  839. display: -webkit-box;
  840. word-break: break-all;
  841. -webkit-box-orient: vertical;
  842. -webkit-line-clamp: 2;
  843. overflow: hidden;
  844. margin-bottom: 8rpx;
  845. }
  846. .productspec {
  847. height: 36rpx;
  848. color: #999999;
  849. }
  850. .productprice {
  851. height: 48rpx;
  852. width: 100%;
  853. float: left;
  854. .price {
  855. line-height: 48rpx;
  856. font-size: $font-size-28;
  857. width: 48%;
  858. color: #ff2a2a;
  859. float: left;
  860. font-weight: bold;
  861. &.none {
  862. text-decoration: line-through;
  863. color: #999999;
  864. }
  865. }
  866. .count {
  867. height: 100%;
  868. float: right;
  869. position: relative;
  870. .small {
  871. color: #666666;
  872. }
  873. }
  874. }
  875. .floor-item-act {
  876. width: 100%;
  877. height: 56rpx;
  878. text-align: center;
  879. box-sizing: border-box;
  880. float: left;
  881. padding: 0 0 10rpx 0;
  882. }
  883. }
  884. .order-footer {
  885. width: 100%;
  886. height: 78rpx;
  887. float: left;
  888. .order-footer-top {
  889. width: 100%;
  890. height: 34rpx;
  891. line-height: 34rpx;
  892. font-size: $font-size-24;
  893. color: #999999;
  894. text-align: right;
  895. }
  896. .order-footer-bot {
  897. width: 100%;
  898. float: left;
  899. height: 48rpx;
  900. line-height: 48rpx;
  901. font-size: $font-size-28;
  902. font-weight: bold;
  903. color: $text-color;
  904. .count {
  905. width: 50%;
  906. float: left;
  907. text-align: left;
  908. }
  909. .money {
  910. width: 50%;
  911. float: right;
  912. text-align: right;
  913. }
  914. }
  915. }
  916. .aganBj {
  917. position: fixed;
  918. left: 0;
  919. top: 0;
  920. bottom: 0;
  921. width: 100%;
  922. height: 100%;
  923. background-color: rgba(0, 0, 0, 0.5);
  924. z-index: 999999;
  925. .alertAgan {
  926. position: absolute;
  927. top: 50%;
  928. left: 50%;
  929. transform: translate(-50%, -50%);
  930. width: 580rpx;
  931. background-color: #fff;
  932. border-radius: 16rpx;
  933. .title {
  934. font-size: 30rpx;
  935. color: #333333;
  936. line-height: 42rpx;
  937. padding: 30rpx;
  938. display: block;
  939. }
  940. .goods {
  941. padding: 0 30rpx;
  942. .list {
  943. padding: 10px 0;
  944. border-bottom: 1rpx solid #e1e1e1;
  945. margin: 10rpx 0;
  946. .image-left {
  947. width: 86rpx;
  948. height: 86rpx;
  949. border: 2rpx solid #e1e1e1;
  950. border-radius: 6rpx;
  951. display: inline-block;
  952. vertical-align: middle;
  953. }
  954. .name-right {
  955. display: inline-block;
  956. width: 416rpx;
  957. margin-left: 15rpx;
  958. font-size: 26rpx;
  959. color: #666666;
  960. vertical-align: middle;
  961. word-break: break-all;
  962. overflow: hidden;
  963. text-overflow: ellipsis;
  964. display: -webkit-inline-box;
  965. -webkit-line-clamp: 2;
  966. -webkit-box-orient: vertical;
  967. }
  968. }
  969. }
  970. .BtnAll {
  971. margin-top: 30rpx;
  972. .btn {
  973. display: inline-block;
  974. width: 290rpx;
  975. height: 90rpx;
  976. line-height: 90rpx;
  977. text-align: center;
  978. &.closebtn {
  979. border-radius: 0px 0px 0px 10px;
  980. color: #999999;
  981. background: #efefef;
  982. }
  983. &.cancel {
  984. border-radius: 0px 0px 8px 0px;
  985. background: $btn-confirm;
  986. color: #fff;
  987. }
  988. }
  989. }
  990. }
  991. }
  992. </style>