business.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. <template>
  2. <view>
  3. <view style='background:#fff;border-bottom:1px solid #EEE;padding-bottom:10px;'>
  4. <view class="cu-bar search">
  5. <view style='position:absolute;left:30px;top:50%;transform: translateY(-50%);'>
  6. <picker style='display:inline-block;' @change="locationChange" :value="location"
  7. :range="locationType">
  8. <view class="picker">
  9. {{location>-1?locationType[location]:'请选择'}}
  10. </view>
  11. </picker>
  12. <image style='width:10px;height:6px;margin-left:4px;position:relative;top:-2px;'
  13. src='../../static/img/jiaoyi/down.png'></image>
  14. </view>
  15. <view class="search-form round" @click="naviageToPage('/pageA/product/lookup?TabCur=')">
  16. <text style='color: #ccc;text-indent:56px;' class="cuIcon-search"></text>
  17. <input type="text" placeholder="请输入货名或标题" confirm-type="search"></input>
  18. </view>
  19. </view>
  20. <view style='margin:0 15px;'>
  21. <view class='tag radius line-pink' @click="sousuo('玉米')">玉米</view>
  22. <view class='tag radius line-pink' @click="sousuo('大豆')">大豆</view>
  23. <view class='tag radius line-pink' @click="sousuo('小麦')">小麦</view>
  24. <view class='tag radius line-pink' @click="sousuo('水稻')">水稻</view>
  25. <view class='tag radius line-pink' @click="sousuo('高粱')">高粱</view>
  26. </view>
  27. </view>
  28. <view style='background:#fff;padding:0 15px;'>
  29. <view @click='tabcarchange(0)' class='line' :class='TabCur==0?"active":""'>采购</view>
  30. <view @click='tabcarchange(1)' class='line' :class='TabCur==1?"active":""'>销售</view>
  31. </view>
  32. <view v-if='buyInfo.length>0' class="introduce-section">
  33. <view v-for="(item, index) in buyInfo" :key="index" class="guess-item" @click="navToDetailPage(item)">
  34. <view class="price-box">
  35. <view class="title">{{item.title}}</view>
  36. </view>
  37. <view class='flex justify-between'>
  38. <view v-if='TabCur==0' class='address'>
  39. {{item.receivePrivate}}{{item.receiveCity}}{{item.receiveArea}}{{item.receiveWarehouse}}
  40. </view>
  41. <view v-if='TabCur==1' class='address'>
  42. {{item.sendPrivate}}{{item.sendCity}}{{item.sendArea}}{{item.sendWarehouse}}
  43. </view>
  44. <view class='price' v-if='item.procurementPlanType=="期货"'>{{item.basisPrice}}<text
  45. style='font-size:13px;color:#333333;'>元/吨</text></view>
  46. <view class='price' v-if='item.procurementPlanType=="现货"'>{{item.procurementPrice}}<text
  47. style='font-size:13px;color:#333;'>元/吨</text></view>
  48. <view class='price' v-if='item.salePlanType=="期货"'>+{{item.basisPrice}}<text
  49. style='font-size:13px;color:#333333;'>元/吨</text></view>
  50. <view class='price' v-if='item.salePlanType=="现货"'>{{item.salePrice}}<text
  51. style='font-size:13px;color:#333;'>元/吨</text></view>
  52. </view>
  53. <view class='flex justify-between'>
  54. <view>
  55. <view class='tag1 tag-bule radius line-pink' v-if='item.procurementPlanType=="现货"'>现货</view>
  56. <view class='tag1 tag-bule radius line-pink' v-if='item.procurementPlanType=="期货"'>期货</view>
  57. <view class='tag1 tag-bule radius line-pink' v-if='item.salePlanType=="现货"'>现货</view>
  58. <view class='tag1 tag-bule radius line-pink' v-if='item.salePlanType=="期货"'>期货</view>
  59. <view class='tag1 tag-yellow radius line-green'>{{item.goodsName}}</view>
  60. <view class='tag1 tag-red radius line-yellow' v-if="TabCur== 0">{{item.plannedPurchaseVolume}}吨</view>
  61. <view class='tag1 tag-red radius line-yellow' v-if="TabCur== 1">{{item.plannedSaleVolume}}吨</view>
  62. </view>
  63. <view style='color:#878C9C;padding-top:5px;' v-if='item.procurementPlanType=="期货" && TabCur== 0'>今日基差</view>
  64. <view style='color:#878C9C;padding-top:5px;' v-if='item.procurementPlanType=="现货" && TabCur== 0'>采购价格</view>
  65. <view style='color:#878C9C;padding-top:5px;' v-if='item.salePlanType=="期货" && TabCur== 1'>今日基差</view>
  66. <view style='color:#878C9C;padding-top:5px;' v-if='item.salePlanType=="现货" && TabCur== 1'>销售价格</view>
  67. </view>
  68. </view>
  69. <view v-show="isLoadMore">
  70. <uni-load-more :status="loadStatus"></uni-load-more>
  71. </view>
  72. </view>
  73. <view style='height:65vh;background:#F5F6FA;line-height:65vh;text-align:center;' v-if='buyInfo.length==0'>
  74. 当前暂无结果
  75. </view>
  76. <u-back-top :scroll-top="scrollTop" tips="顶部" :custom-style="{backgroundColor: '#a0cfff',color: '#2979ff'}"
  77. :iconStyle="{color: '#2979ff',fontSize: '34rpx'}" mode="square" icon="arrow-up"></u-back-top>
  78. </view>
  79. </template>
  80. <script>
  81. export default {
  82. name: "business",
  83. data() {
  84. return {
  85. PageCur: "buy",
  86. buyInfo: [],
  87. limit: 10, //每次取条目数
  88. loadStatus: 'loading', //加载样式:more-加载前样式,loading-加载中样式,nomore-没有数据样式
  89. isLoadMore: false, //是否加载中
  90. showTran: true,
  91. scrollTop: 0,
  92. pageSize: 10,
  93. searchKeyWord: '',
  94. receivePrivate: '',
  95. currentPage: 1,
  96. categoryList: [{
  97. title: '我要买粮',
  98. id: '0'
  99. }, {
  100. title: '我要卖粮',
  101. id: '1'
  102. }],
  103. TabCur: 0,
  104. current: 1,
  105. location: 0,
  106. locationType: ['全国', '黑龙江', '河南', '山东', '安徽', '吉林', '河北', '江苏', '内蒙古', '四川', '湖南', '湖北', '辽宁',
  107. '江西', '云南', '新疆', '山西', '广西', '陕西', '广东', '甘肃', '重庆', '贵州', '浙江', '福建',
  108. '宁夏', '天津', '海南', '青海', '西藏', '上海', '北京'
  109. ]
  110. }
  111. },
  112. onShow() {
  113. uni.showTabBar()
  114. var userInfo = uni.getStorageSync("userInfo")
  115. var that = this
  116. console.log("userInfo",userInfo)
  117. this.$api.doRequest('get', '/salePlanInfo/getTips', {phone:userInfo.phone}).then(res => {
  118. if (res.data.data) {
  119. let name = 'myTip';
  120. let value = res.data.data.myTip;
  121. that.$store.commit('$uStore', {
  122. name,
  123. value
  124. });
  125. if(value != 0){
  126. uni.setTabBarBadge({
  127. index:3,
  128. text:value+""
  129. })
  130. }
  131. name = 'taskTip';
  132. value = res.data.data.taskTip;
  133. that.$store.commit('$uStore', {
  134. name,
  135. value
  136. });
  137. name = 'contractTip';
  138. value = res.data.data.contractTip;
  139. that.$store.commit('$uStore', {
  140. name,
  141. value
  142. });
  143. }
  144. })
  145. },
  146. onLoad(options) {
  147. console.log("buy onload")
  148. // #ifdef H5
  149. this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
  150. // #endif
  151. this.cateId = options.tid ? options.tid : 0;
  152. this.keywords = options.keywords ? options.keywords : ''
  153. this.loadData();
  154. },
  155. onPageScroll(e) {
  156. this.scrollTop = e.scrollTop;
  157. },
  158. //下拉刷新
  159. onPullDownRefresh() {
  160. this.currentPage = 1
  161. this.isLoadMore = false
  162. this.loadStatus = 'loading'
  163. this.loadData()
  164. },
  165. onReachBottom() { //上拉触底函数
  166. if (!this.isLoadMore) { //此处判断,上锁,防止重复请求
  167. this.isLoadMore = true
  168. this.currentPage += 1
  169. this.getIndexBuyData()
  170. }
  171. },
  172. methods: {
  173. sousuo(name) {
  174. var page = '/pageA/product/lookup?TabCur=' + this.TabCur + '&searchKeyWord=' + name
  175. uni.navigateTo({
  176. url: page,
  177. fail() {
  178. uni.switchTab({
  179. url: page
  180. })
  181. }
  182. })
  183. },
  184. tabcarchange(status) {
  185. this.TabCur = status
  186. this.currentPage = 1
  187. this.pageSize = 10
  188. this.loadData()
  189. },
  190. naviageToPage(page) {
  191. page = page + this.TabCur
  192. uni.navigateTo({
  193. url: page,
  194. fail() {
  195. uni.switchTab({
  196. url: page
  197. })
  198. }
  199. })
  200. },
  201. locationChange(e) {
  202. this.location = e.detail.value
  203. this.receivePrivate = e.detail.value
  204. this.currentPage = 1
  205. this.loadData()
  206. },
  207. tabSelect(e) {
  208. this.TabCur = e.currentTarget.dataset.id;
  209. this.category = this.TabCur
  210. this.currentPage = 1
  211. this.loadData()
  212. },
  213. fabu() {
  214. uni.showActionSheet({
  215. itemList: ['我要买粮', '我要卖粮'],
  216. success(res) {
  217. console.log(res.tapIndex)
  218. },
  219. fail(res) {
  220. console.log(res.errMsg)
  221. }
  222. })
  223. // uni.navigateTo({
  224. // url: `/pageB/trust/trust`
  225. // })
  226. },
  227. //加载商品 ,带下拉刷新和上滑加载
  228. async loadData(type = 'add', loading) {
  229. const that = this
  230. uni.showLoading({
  231. title: '正在加载',
  232. mask: true
  233. })
  234. var param1 = ''
  235. if (that.TabCur == 0) {
  236. param1 = '/procurementPlanInfo/selectProcurementPlanInfo'
  237. } else {
  238. param1 = '/salePlanInfo/selectSalePlanInfo'
  239. }
  240. this.$api.doRequest('get', param1, {
  241. pageSize: this.pageSize,
  242. showFlag: 1,
  243. currentPage: this.currentPage,
  244. searchKeyWord: this.searchKeyWord,
  245. receivePrivate: this.receivePrivate =="0" ? '':this.locationType[this.receivePrivate]
  246. }).then(res => {
  247. uni.hideLoading()
  248. this.buyInfo = res.data.data.records
  249. })
  250. .catch(res => {
  251. uni.hideLoading()
  252. if(res.errmsg){
  253. uni.showToast({
  254. title: res.errmsg,
  255. icon: 'none',
  256. duration: 2000
  257. })
  258. }
  259. else{
  260. uni.showToast({
  261. title: "系统异常,请联系管理员",
  262. icon: 'none',
  263. duration: 2000
  264. })
  265. }
  266. });
  267. // that.$api.request(param1, param2, {
  268. // page: 1,
  269. // limit: 10
  270. // }, failres => {
  271. // that.$api.msg(failres.errmsg)
  272. // that.isLoadMore = false
  273. // that.loadStatus = 'nomore'
  274. // if (that.pages > 1) {
  275. // that.pages -= 1
  276. // }
  277. // uni.hideLoading()
  278. // }).then(res => {
  279. // let data = null
  280. // if (that.TabCur == 0) {
  281. // data = res.data.saleInfo
  282. // } else {
  283. // data = res.data
  284. // }
  285. // uni.stopPullDownRefresh()
  286. // //采购信息
  287. // if (data.length > 0) {
  288. // that.buyInfo = data
  289. // that.isLoadMore = false
  290. // } else {
  291. // if (that.pages > 1) {
  292. // that.pages -= 1
  293. // }
  294. // that.isLoadMore = true
  295. // that.loadStatus = 'nomore'
  296. // }
  297. // uni.hideLoading()
  298. // })
  299. },
  300. //详情
  301. navToDetailPage(item) {
  302. let id = item.id;
  303. if (item.unitPrice === 0) {
  304. this.contactUs();
  305. } else {
  306. if (this.TabCur == 0) {
  307. uni.navigateTo({
  308. url: `/pageA/product/detail?id=${id}&compId=${item.compId}`
  309. })
  310. } else {
  311. uni.navigateTo({
  312. url: `/pageA/product/sales_detail?id=${id}&compId=${item.compId}`
  313. })
  314. }
  315. }
  316. },
  317. contactUs() {
  318. const that = this
  319. uni.makePhoneCall({
  320. // 手机号
  321. phoneNumber: '15145408888',
  322. // 成功回调
  323. success: (res) => {
  324. console.log('调用成功!')
  325. },
  326. // 失败回调
  327. fail: (res) => {
  328. console.log('调用失败!')
  329. }
  330. });
  331. },
  332. getIndexBuyData() {
  333. const that = this
  334. uni.showLoading({
  335. title: '正在加载',
  336. mask: true
  337. })
  338. var param1 = ''
  339. if (that.TabCur == 0) {
  340. param1 = '/procurementPlanInfo/selectProcurementPlanInfo'
  341. } else {
  342. param1 = '/salePlanInfo/selectSalePlanInfo'
  343. }
  344. this.$api.doRequest('get', param1, {
  345. pageSize: this.pageSize,
  346. showFlag: 1,
  347. currentPage: this.currentPage,
  348. searchKeyWord: this.searchKeyWord,
  349. receivePrivate: this.receivePrivate
  350. }).then(res => {
  351. uni.hideLoading()
  352. // this.buyInfo = res.data.records
  353. let data = res.data.data.records
  354. //采购信息
  355. if (data.length > 0) {
  356. that.buyInfo = that.buyInfo.concat(data)
  357. that.isLoadMore = false
  358. } else {
  359. if (that.currentPage > 1) {
  360. that.currentPage -= 1
  361. }
  362. that.isLoadMore = true
  363. that.loadStatus = 'nomore'
  364. }
  365. })
  366. .catch(res => {
  367. uni.hideLoading()
  368. if(res.errmsg){
  369. uni.showToast({
  370. title: res.errmsg,
  371. icon: 'none',
  372. duration: 2000
  373. })
  374. }
  375. else{
  376. uni.showToast({
  377. title: "系统异常,请联系管理员",
  378. icon: 'none',
  379. duration: 2000
  380. })
  381. }
  382. });
  383. }
  384. }
  385. }
  386. </script>
  387. <style lang='scss'>
  388. page,
  389. .content {
  390. background: #F5F6FA;
  391. }
  392. .line {
  393. display: inline-block;
  394. padding: 5px;
  395. position: relative;
  396. font-size: 17px;
  397. }
  398. .line.active {
  399. font-size: 19px;
  400. font-weight: 900;
  401. }
  402. .line.active:after {
  403. content: '';
  404. display: block;
  405. position: absolute;
  406. width: 38px;
  407. left: 50%;
  408. transform: translateX(-50%);
  409. bottom: 0;
  410. border-bottom: 1px solid #22C572;
  411. }
  412. .cu-tag.badge {
  413. right: 26rpx;
  414. }
  415. .cu-item {
  416. height: 80rpx;
  417. display: inline-block;
  418. line-height: 80rpx;
  419. }
  420. .search-form {
  421. background: #F5F6F9;
  422. padding-left: 20rpx;
  423. }
  424. .title-tip {
  425. color: #E63113;
  426. text-align: right;
  427. }
  428. .tag1 {
  429. background: #F5F6F9;
  430. padding: 5px;
  431. color: #333333;
  432. display: inline-flex;
  433. font-size: 22rpx;
  434. border-radius: 3px;
  435. margin: 3px;
  436. }
  437. .tag {
  438. background: #F5F6F9;
  439. padding: 7px 12px;
  440. color: #333333;
  441. display: inline-flex;
  442. font-size: 22rpx;
  443. border-radius: 15px;
  444. margin: 3px;
  445. }
  446. .tag-bule {
  447. background: #EBEEFA;
  448. color: #5C76DF;
  449. }
  450. .tag-green {
  451. background: #C6F7BC;
  452. color: #065112;
  453. }
  454. .tag-yellow {
  455. background: #F9F2EA;
  456. color: #BE9C69;
  457. }
  458. .tag-red {
  459. background: #FEECE6;
  460. color: #FE6430;
  461. }
  462. .text-white {
  463. color: #fff;
  464. }
  465. .text-white text {
  466. position: relative;
  467. z-index: 2;
  468. background: linear-gradient(45deg, #3DC146, #B2D612);
  469. padding: 5px 10px;
  470. border-radius: 38rpx;
  471. }
  472. .guess-section {
  473. padding-bottom: 100upx;
  474. display: flex;
  475. flex-wrap: wrap;
  476. padding: 0 30upx;
  477. background: #fff;
  478. .guess-item {
  479. display: flex;
  480. flex-direction: column;
  481. width: 98%;
  482. border-bottom: 1px solid #ccc;
  483. }
  484. .image-wrapper {
  485. width: 100%;
  486. height: 330upx;
  487. border-radius: 3px;
  488. overflow: hidden;
  489. image {
  490. width: 100%;
  491. height: 100%;
  492. opacity: 1;
  493. }
  494. }
  495. .title {
  496. font-size: $font-lg;
  497. color: #121212;
  498. }
  499. .price-orther {
  500. font-size: $font-sm;
  501. color: $font-color-base;
  502. }
  503. .price {
  504. font-size: 64rpx;
  505. color: #39b54a;
  506. line-height: 1;
  507. padding-right: 10upx;
  508. }
  509. .goods1 {
  510. font-size: $font-sm;
  511. color: $font-color-base;
  512. }
  513. .goods2 {
  514. font-size: $font-sm;
  515. color: $font-color-base;
  516. padding-left: 10%;
  517. }
  518. .goods3 {
  519. font-size: $font-sm;
  520. color: $font-color-base;
  521. padding-left: 10%;
  522. }
  523. .goods4 {
  524. font-size: $font-sm;
  525. color: #ff5500;
  526. }
  527. .goods5 {
  528. font-size: $font-sm;
  529. color: $font-color-base;
  530. }
  531. .view-item {
  532. width: 100%;
  533. // line-height: 40upx;
  534. padding-top: 10upx;
  535. }
  536. .confirm-btn {
  537. margin-left: 20%;
  538. }
  539. .date-time {
  540. margin-left: 30%;
  541. }
  542. .padding-xs-tmp {
  543. padding: 15upx 10upx 10upx 10upx;
  544. }
  545. }
  546. .navbar {
  547. position: fixed;
  548. left: 0;
  549. top: var(--window-top);
  550. display: flex;
  551. width: 100%;
  552. height: 80upx;
  553. background: #fff;
  554. box-shadow: 0 2upx 10upx rgba(0, 0, 0, .06);
  555. z-index: 10;
  556. .nav-item {
  557. flex: 1;
  558. display: flex;
  559. justify-content: center;
  560. align-items: center;
  561. height: 100%;
  562. font-size: 30upx;
  563. color: $font-color-dark;
  564. position: relative;
  565. &.current {
  566. color: $base-color;
  567. &:after {
  568. content: '';
  569. position: absolute;
  570. left: 50%;
  571. bottom: 0;
  572. transform: translateX(-50%);
  573. width: 120upx;
  574. height: 0;
  575. border-bottom: 4upx solid $base-color;
  576. }
  577. }
  578. }
  579. .p-box {
  580. display: flex;
  581. flex-direction: column;
  582. .yticon {
  583. display: flex;
  584. align-items: center;
  585. justify-content: center;
  586. width: 30upx;
  587. height: 14upx;
  588. line-height: 1;
  589. margin-left: 4upx;
  590. font-size: 26upx;
  591. color: #888;
  592. &.active {
  593. color: $base-color;
  594. }
  595. }
  596. .xia {
  597. transform: scaleY(-1);
  598. }
  599. }
  600. .cate-item {
  601. display: flex;
  602. justify-content: center;
  603. align-items: center;
  604. height: 100%;
  605. width: 80upx;
  606. position: relative;
  607. font-size: 44upx;
  608. &:after {
  609. content: '';
  610. position: absolute;
  611. left: 0;
  612. top: 50%;
  613. transform: translateY(-50%);
  614. border-left: 1px solid #ddd;
  615. width: 0;
  616. height: 36upx;
  617. }
  618. }
  619. }
  620. /* 分类 */
  621. .cate-mask {
  622. position: fixed;
  623. left: 0;
  624. top: var(--window-top);
  625. bottom: 0;
  626. width: 100%;
  627. background: rgba(0, 0, 0, 0);
  628. z-index: 95;
  629. transition: .3s;
  630. .cate-content {
  631. width: 630upx;
  632. height: 100%;
  633. background: #fff;
  634. float: right;
  635. transform: translateX(100%);
  636. transition: .3s;
  637. }
  638. &.none {
  639. display: none;
  640. }
  641. &.show {
  642. background: rgba(0, 0, 0, .4);
  643. .cate-content {
  644. transform: translateX(0);
  645. }
  646. }
  647. }
  648. .cate-list {
  649. display: flex;
  650. flex-direction: column;
  651. height: 100%;
  652. .cate-item {
  653. display: flex;
  654. align-items: center;
  655. height: 90upx;
  656. padding-left: 30upx;
  657. font-size: 28upx;
  658. color: #555;
  659. position: relative;
  660. }
  661. .two {
  662. height: 64upx;
  663. color: #303133;
  664. font-size: 30upx;
  665. background: #f8f8f8;
  666. }
  667. .active {
  668. color: $base-color;
  669. }
  670. }
  671. .introduce-section .title {
  672. font-size: 17px;
  673. font-weight: bold;
  674. height: 40px;
  675. line-height: 40px;
  676. flex: 2.5;
  677. border-bottom: 1px solid #EEEEEE;
  678. }
  679. .introduce-section .address {
  680. color: #878C9C;
  681. font-size: 12px;
  682. padding: 10px 0 10px;
  683. }
  684. .introduce-section .price {
  685. padding: 10px 0 10px;
  686. color: #FD714F;
  687. font-size: 19px;
  688. font-weight: 700;
  689. }
  690. .introduce-section .guess-item {
  691. border-radius: 10px;
  692. background: #fff;
  693. padding: 0upx 30upx 20upx;
  694. margin: 8px;
  695. border-bottom: 1px solid #ccc;
  696. }
  697. /* 销售信息 */
  698. .introduce-section {
  699. .title-tip {
  700. flex: 1;
  701. }
  702. .price-box {
  703. display: flex;
  704. align-items: baseline;
  705. font-size: 26upx;
  706. }
  707. .price {
  708. font-size: $font-lg + 2upx;
  709. }
  710. .m-price {
  711. margin: 0 12upx;
  712. color: $font-color-light;
  713. text-decoration: line-through;
  714. }
  715. .coupon-tip {
  716. align-items: center;
  717. padding: 4upx 10upx;
  718. background: $uni-color-primary;
  719. font-size: $font-sm;
  720. color: #fff;
  721. border-radius: 6upx;
  722. line-height: 1;
  723. transform: translateY(-4upx);
  724. }
  725. .bot-row {
  726. display: flex;
  727. align-items: center;
  728. height: 50upx;
  729. font-size: $font-sm;
  730. color: $font-color-light;
  731. view {
  732. flex: 1;
  733. }
  734. }
  735. }
  736. .side-bg {
  737. position: absolute;
  738. width: 64px;
  739. height: 64px;
  740. z-index: 1;
  741. }
  742. .drag {
  743. position: relative;
  744. display: flex;
  745. justify-content: center;
  746. align-items: center;
  747. color: $uni-text-color-inverse;
  748. width: 64px;
  749. height: 64px;
  750. background: transparent;
  751. font-size: $uni-font-size-sm;
  752. position: fixed;
  753. z-index: 9;
  754. &.transition {
  755. transition: left .3s ease, top .3s ease;
  756. }
  757. }
  758. </style>