search-order.vue 24 KB

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