order-search.vue 22 KB

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