collectLook.vue 21 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
  1. <template>
  2. <view class="center">
  3. <view class="c-list">
  4. <view class="xinxiup">
  5. <view class="c-row b-b">
  6. <text class="tit">合同编号:</text>
  7. <view class="con-list">
  8. <text>{{goods.contractNo}}({{goods.goodsName}})</text>
  9. </view>
  10. </view>
  11. <view class="c-row b-b">
  12. <text class="tit">卖方名称:</text>
  13. <view class="con-list">
  14. <text>{{goods.customer}}</text>
  15. </view>
  16. </view>
  17. <view class="c-row">
  18. <text class="tit">累计收发:</text>
  19. <view class="con-list">
  20. <text style="font-size: 18px">{{sendout}}<text class="hair">发</text>{{collect}}<text
  21. class="collect">收</text></text>
  22. <!-- <text>{{goods.level}}收</text> -->
  23. </view>
  24. </view>
  25. </view>
  26. <view v-for="(item , index) in carlist" :Key="index" class="forxinxi">
  27. <view class="c-row carNos">
  28. <text>{{item.carNo}}</text>
  29. <view class="con-list">
  30. <text>{{item.sendDateStart}}<text class="hair">发</text></text>
  31. </view>
  32. </view>
  33. <view class="c-row b-b">
  34. <text class="tit">结算价(元/吨)</text>
  35. <view class="con-list">
  36. <text>{{item.settlementPrice}}</text>
  37. </view>
  38. </view>
  39. <view class="c-row" v-bind:class="item.confirmFlag == 1 ? 'b-b' : ''">
  40. <text class="tit">净重(吨)</text>
  41. <view style="font-size: 18px;margin-left: 80px;">{{item.loadNetWeight}}<text class="hair">发</text>
  42. </view>
  43. <view class="con-list">
  44. <view v-if="item.confirmFlag == 1" style="color: #FE6430;">未收货</view>
  45. <view v-if="item.confirmFlag == 3" style="color: #22C572;">已收货</view>
  46. </view>
  47. </view>
  48. <view v-if="item.confirmFlag == 1">
  49. <view class="titles">磅单照片</view>
  50. <upload class="upload" ref="upload" :action="action" :max-count="1" :size-type="['compressed']"
  51. @on-success="getImgUrl" @on-remove="onRemove" @on-uploaded="isAdd = true"
  52. :before-upload="filterFileType" v-if="item.loadPoundImg == null || item.loadPoundImg == '' ">
  53. </upload>
  54. <image :src="item.loadPoundImg" mode="" v-if="item.loadPoundImg != null || item.loadPoundImg != ''"
  55. class="picture "></image>
  56. </view>
  57. <view class="c-row" v-if="item.confirmFlag == 1">
  58. <view class="flex" style="justify-content: flex-end;width: 100%;">
  59. <view class="commit" @click="confirmunload(item)">
  60. 确认收货
  61. </view>
  62. </view>
  63. </view>
  64. </view>
  65. </view>
  66. <view v-if='imgstatus' class='shade'>
  67. <view class='shade-content'>
  68. <image v-if='img' style='width:100px;height:100px;' :src='img'></image>
  69. <button style='' @click='imgstatus=false'>取消</button>
  70. </view>
  71. </view>
  72. <u-modal v-model="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
  73. :content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
  74. :showCancelButton='false' :content="content" @confirm="alertBtn" @cancel="cancelClick"></u-modal>
  75. </view>
  76. </template>
  77. <script>
  78. import uniNumberBox from '@/components/uni-number-box.vue';
  79. import {
  80. mapState
  81. } from 'vuex';
  82. export default {
  83. components: {
  84. uniNumberBox
  85. },
  86. data() {
  87. return {
  88. isShowAlert: false,
  89. content: '您尚未登录,是否立即登录?',
  90. carlist: [],
  91. swiperCurrent: 0,
  92. titleNViewBackground: '',
  93. swiperLength: 0,
  94. id: '',
  95. goods: {
  96. },
  97. gooods1: {
  98. contractNo: '',
  99. },
  100. img: '',
  101. share: {
  102. title: '',
  103. imageUrl: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/shareLogo.png',
  104. },
  105. imgstatus: false,
  106. reason: "",
  107. price: undefined,
  108. imgstatus: false,
  109. reason: "",
  110. price: undefined,
  111. planId: '',
  112. };
  113. },
  114. onShow() {
  115. this.loaddata()
  116. },
  117. //下拉刷新
  118. onPullDownRefresh() {
  119. this.loaddata()
  120. setTimeout(function() {
  121. uni.stopPullDownRefresh();
  122. }, 1000);
  123. },
  124. onLoad(option) {
  125. this.goods.goodsName = option.goodsName
  126. this.goods.customer = option.contracter
  127. this.id = option.id
  128. this.planId = option.planId
  129. this.goods.contractNo = option.contractNo
  130. },
  131. computed: {
  132. ...mapState(['hasLogin', 'userInfo']),
  133. sendout() {
  134. var num = 0
  135. for (var i = 0; i < this.carlist.length; i++) {
  136. num += this.carlist[i].loadNetWeight
  137. }
  138. return num
  139. },
  140. collect() {
  141. var num = 0
  142. for (var i = 0; i < this.carlist.length; i++) {
  143. if (this.carlist[i].confirmFlag == 3) {
  144. num += this.carlist[i].loadNetWeight
  145. }
  146. }
  147. return num
  148. }
  149. },
  150. methods: {
  151. unload(item) {
  152. this.img = item.unloadPoundImg
  153. this.imgstatus = true
  154. },
  155. shipments(item) {
  156. this.img = item.loadPoundImg
  157. this.imgstatus = true
  158. },
  159. commit1() {
  160. var tranCarNo = ''
  161. if (this.carlist.length <= 9) {
  162. tranCarNo = 'C00' + (this.carlist.length + 1)
  163. } else if (this.carlist.length < 100 && this.carlist.length > 9) {
  164. tranCarNo = 'C0' + (this.carlist.length + 1)
  165. } else if (this.carlist.length < 1000 && this.carlist.length > 99) {
  166. tranCarNo = 'C' + (this.carlist.length + 1)
  167. }
  168. uni.navigateTo({
  169. url: `/pageB/contract/contract_detail?contractNo=` + this.goods.contractNo + '&goodsName=' +
  170. this.goods.goodsName + '&tranCarNo=' + tranCarNo,
  171. url: `/pageB/contract/contract_detail?contractNo=` + this.goods.contractNo + '&goodsName=' +
  172. this.goods.goodsName + '&tranCarNo=' + tranCarNo + '&planId=' + this.planId
  173. })
  174. },
  175. confirmunload(item) {
  176. this.$api.doRequest('post', '/tranCarInfo/api/confirmUnloading', {
  177. id: item.id
  178. }).then(res => {
  179. if (res.data.code == 200) {
  180. item.confirmFlag = 3
  181. this.$api.msg('确认成功!')
  182. }
  183. })
  184. .catch(res => {
  185. if (res.errmsg) {
  186. uni.showToast({
  187. title: res.errmsg,
  188. icon: 'none',
  189. duration: 2000
  190. })
  191. } else {
  192. uni.showToast({
  193. title: "系统异常,请联系管理员",
  194. icon: 'none',
  195. duration: 2000
  196. })
  197. }
  198. });
  199. },
  200. loaddata() {
  201. this.$api.doRequest('get', '/tranCarInfo/api/selectTranCarInfoNum', {
  202. contractNo: this.goods.contractNo
  203. }, 'application/json;charset=UTF-8').then(res => {
  204. if (res.data.code == 200) {
  205. this.carlist = res.data.data
  206. }
  207. })
  208. .catch(res => {
  209. if (res.errmsg) {
  210. uni.showToast({
  211. title: res.errmsg,
  212. icon: 'none',
  213. duration: 2000
  214. })
  215. } else {
  216. uni.showToast({
  217. title: "系统异常,请联系管理员",
  218. icon: 'none',
  219. duration: 2000
  220. })
  221. }
  222. });
  223. },
  224. ViewImage(e) {
  225. var img = [];
  226. img.push(e)
  227. uni.previewImage({
  228. current: 0,
  229. urls: img
  230. });
  231. },
  232. priceInput(e) {
  233. this.price = e.detail.value
  234. },
  235. reasonInput(e) {
  236. this.reason = e.detail.value
  237. },
  238. endSale() {
  239. const that = this
  240. uni.showLoading({
  241. title: '正在加载',
  242. mask: true
  243. })
  244. that.$api.request('sale', 'endSale', {
  245. id: that.goods.id,
  246. reason: that.reason
  247. }, failres => {
  248. if (failres.errmsg) {
  249. uni.showToast({
  250. title: failres.errmsg,
  251. icon: 'none',
  252. duration: 2000
  253. })
  254. } else {
  255. uni.showToast({
  256. title: "系统异常,请联系管理员",
  257. icon: 'none',
  258. duration: 2000
  259. })
  260. }
  261. uni.hideLoading()
  262. }).then(res => {
  263. that.$api.msg('终止成功')
  264. uni.hideLoading()
  265. setTimeout(() => {
  266. uni.navigateBack()
  267. }, 1000);
  268. })
  269. },
  270. alertBtn() {
  271. uni.navigateTo({
  272. url: '/pages/public/login'
  273. })
  274. },
  275. cancelClick() {
  276. this.isShowAlert = false
  277. },
  278. tradeNow() {
  279. if (!this.hasLogin) {
  280. this.isShowAlert = true;
  281. // uni.showModal({
  282. // title: '提示',
  283. // content: '您尚未登录,是否立即登录?',
  284. // showCancel: true,
  285. // confirmText: '登录',
  286. // success: (e) => {
  287. // if (e.confirm) {
  288. // uni.navigateTo({
  289. // url: '/pages/public/login'
  290. // })
  291. // }
  292. // },
  293. // fail: () => {},
  294. // complete: () => {}
  295. // })
  296. } else {
  297. const that = this
  298. uni.navigateTo({
  299. url: `/pageA/product/trade?id=${that.goods.id}&packing=${that.goods.packing}}&province=${that.goods.province}
  300. &city=${that.goods.city}&area=${that.goods.area}&storeName=${that.goods.storeName}&seller=${that.goods.seller}
  301. &companyId=${that.goods.companyId}&sellerPhone=${that.goods.sellerPhone}&minSale=${that.goods.minSale}
  302. &exsitCount=${that.goods.total}&isFutures=${that.goods.isFutures}
  303. &basis=${that.goods.basis}&basisSmall=${that.goods.basisSmall}&basisBig=${that.goods.basisBig}
  304. &unloadingFee=${that.goods.unloadingFee}`
  305. })
  306. }
  307. }
  308. },
  309. }
  310. </script>
  311. <style lang='scss' scoped>
  312. .center {
  313. padding: 10px 20px;
  314. background-color: #F5F6FA;
  315. }
  316. page {
  317. background: $page-color-base;
  318. /* padding-bottom: 160upx; */
  319. }
  320. .container {
  321. padding: 10px 20px;
  322. background-color: #F5F6FA;
  323. }
  324. .icon-you {
  325. font-size: $font-base + 2upx;
  326. color: #888;
  327. }
  328. .carousel {
  329. width: 100%;
  330. height: 350upx;
  331. .carousel-item {
  332. width: 100%;
  333. height: 100%;
  334. padding: 0 28upx;
  335. overflow: hidden;
  336. }
  337. image {
  338. width: 100%;
  339. height: 100%;
  340. border-radius: 10upx;
  341. }
  342. }
  343. .carousel-section {
  344. padding: 0;
  345. .titleNview-placing {
  346. padding-top: 0;
  347. height: 0;
  348. }
  349. .carousel {
  350. .carousel-item {
  351. padding: 0;
  352. }
  353. }
  354. .swiper-dots {
  355. left: 45upx;
  356. bottom: 40upx;
  357. }
  358. }
  359. /* 分享 */
  360. .share-section {
  361. display: flex;
  362. align-items: center;
  363. color: $font-color-base;
  364. background: linear-gradient(left, #fdf5f6, #fbebf6);
  365. padding: 12upx 30upx;
  366. .share-icon {
  367. display: flex;
  368. align-items: center;
  369. width: 70upx;
  370. height: 30upx;
  371. line-height: 1;
  372. border: 1px solid $uni-color-primary;
  373. border-radius: 4upx;
  374. position: relative;
  375. overflow: hidden;
  376. font-size: 22upx;
  377. color: $uni-color-primary;
  378. &:after {
  379. content: '';
  380. width: 50upx;
  381. height: 50upx;
  382. border-radius: 50%;
  383. left: -20upx;
  384. top: -12upx;
  385. position: absolute;
  386. background: $uni-color-primary;
  387. }
  388. }
  389. .icon-xingxing {
  390. position: relative;
  391. z-index: 1;
  392. font-size: 24upx;
  393. margin-left: 2upx;
  394. margin-right: 10upx;
  395. color: #fff;
  396. line-height: 1;
  397. }
  398. .tit {
  399. font-size: $font-base;
  400. margin-left: 10upx;
  401. }
  402. .icon-bangzhu1 {
  403. padding: 10upx;
  404. font-size: 30upx;
  405. line-height: 1;
  406. }
  407. .share-btn {
  408. flex: 1;
  409. text-align: right;
  410. font-size: $font-sm;
  411. color: $uni-color-primary;
  412. }
  413. .icon-you {
  414. font-size: $font-sm;
  415. margin-left: 4upx;
  416. color: $uni-color-primary;
  417. }
  418. }
  419. /* 评价 */
  420. .eva-section {
  421. display: flex;
  422. flex-direction: column;
  423. padding: 20upx 30upx;
  424. background: #fff;
  425. margin-top: 16upx;
  426. .e-header {
  427. display: flex;
  428. align-items: center;
  429. height: 70upx;
  430. font-size: $font-sm + 2upx;
  431. color: $font-color-light;
  432. .tit {
  433. font-size: $font-base + 2upx;
  434. color: $font-color-dark;
  435. margin-right: 4upx;
  436. }
  437. .tip {
  438. flex: 1;
  439. text-align: right;
  440. }
  441. .icon-you {
  442. margin-left: 10upx;
  443. }
  444. }
  445. }
  446. .eva-box {
  447. display: flex;
  448. padding: 20upx 0;
  449. .portrait {
  450. flex-shrink: 0;
  451. width: 80upx;
  452. height: 80upx;
  453. border-radius: 100px;
  454. }
  455. .right {
  456. flex: 1;
  457. display: flex;
  458. flex-direction: column;
  459. font-size: $font-base;
  460. color: $font-color-base;
  461. padding-left: 26upx;
  462. .con {
  463. font-size: $font-base;
  464. color: $font-color-dark;
  465. padding: 20upx 0;
  466. }
  467. .bot {
  468. display: flex;
  469. justify-content: space-between;
  470. font-size: $font-sm;
  471. color: $font-color-light;
  472. }
  473. }
  474. }
  475. /* 详情 */
  476. .detail-desc {
  477. background: #fff;
  478. margin-top: 16upx;
  479. width: 750upx;
  480. .d-header {
  481. display: flex;
  482. justify-content: center;
  483. align-items: center;
  484. height: 80upx;
  485. font-size: $font-base + 2upx;
  486. color: $font-color-dark;
  487. position: relative;
  488. text {
  489. padding: 0 20upx;
  490. background: #fff;
  491. position: relative;
  492. z-index: 1;
  493. }
  494. &:after {
  495. position: absolute;
  496. left: 50%;
  497. top: 50%;
  498. transform: translateX(-50%);
  499. width: 300upx;
  500. height: 0;
  501. content: '';
  502. border-bottom: 1px solid #ccc;
  503. }
  504. }
  505. }
  506. /* 规格选择弹窗 */
  507. .attr-content {
  508. padding: 10upx 30upx;
  509. .a-t {
  510. display: flex;
  511. image {
  512. width: 170upx;
  513. height: 170upx;
  514. flex-shrink: 0;
  515. margin-top: -40upx;
  516. border-radius: 8upx;
  517. ;
  518. }
  519. .right {
  520. display: flex;
  521. flex-direction: column;
  522. padding-left: 24upx;
  523. font-size: $font-sm + 2upx;
  524. color: $font-color-base;
  525. line-height: 42upx;
  526. .price {
  527. font-size: $font-lg;
  528. color: $uni-color-primary;
  529. margin-bottom: 10upx;
  530. }
  531. .selected-text {
  532. margin-right: 10upx;
  533. }
  534. }
  535. }
  536. .attr-list {
  537. display: flex;
  538. flex-direction: column;
  539. font-size: $font-base + 2upx;
  540. color: $font-color-base;
  541. padding-top: 30upx;
  542. padding-left: 10upx;
  543. }
  544. .item-list {
  545. padding: 30upx 0 0;
  546. display: flex;
  547. flex-wrap: wrap;
  548. text {
  549. display: flex;
  550. align-items: center;
  551. justify-content: center;
  552. background: #eee;
  553. margin-right: 20upx;
  554. margin-bottom: 20upx;
  555. border-radius: 100upx;
  556. min-width: 60upx;
  557. height: 60upx;
  558. padding: 0 20upx;
  559. font-size: $font-base;
  560. color: $font-color-dark;
  561. }
  562. .selected {
  563. background: #fbebee;
  564. color: $uni-color-primary;
  565. }
  566. }
  567. }
  568. /* 弹出层 */
  569. .popup {
  570. position: fixed;
  571. left: 0;
  572. top: 0;
  573. right: 0;
  574. bottom: 0;
  575. z-index: 99;
  576. &.show {
  577. display: block;
  578. .mask {
  579. animation: showPopup 0.2s linear both;
  580. }
  581. .layer {
  582. animation: showLayer 0.2s linear both;
  583. }
  584. }
  585. &.hide {
  586. .mask {
  587. animation: hidePopup 0.2s linear both;
  588. }
  589. .layer {
  590. animation: hideLayer 0.2s linear both;
  591. }
  592. }
  593. &.none {
  594. display: none;
  595. }
  596. .mask {
  597. position: fixed;
  598. top: 0;
  599. width: 100%;
  600. height: 100%;
  601. z-index: 1;
  602. background-color: rgba(0, 0, 0, 0.4);
  603. }
  604. .layer {
  605. position: fixed;
  606. z-index: 99;
  607. bottom: 0;
  608. width: 100%;
  609. min-height: 40vh;
  610. border-radius: 10upx 10upx 0 0;
  611. background-color: #fff;
  612. .btn {
  613. height: 66upx;
  614. line-height: 66upx;
  615. border-radius: 100upx;
  616. background: $uni-color-primary;
  617. font-size: $font-base + 2upx;
  618. color: #fff;
  619. margin: 30upx auto 20upx;
  620. }
  621. }
  622. @keyframes showPopup {
  623. 0% {
  624. opacity: 0;
  625. }
  626. 100% {
  627. opacity: 1;
  628. }
  629. }
  630. @keyframes hidePopup {
  631. 0% {
  632. opacity: 1;
  633. }
  634. 100% {
  635. opacity: 0;
  636. }
  637. }
  638. @keyframes showLayer {
  639. 0% {
  640. transform: translateY(120%);
  641. }
  642. 100% {
  643. transform: translateY(0%);
  644. }
  645. }
  646. @keyframes hideLayer {
  647. 0% {
  648. transform: translateY(0);
  649. }
  650. 100% {
  651. transform: translateY(120%);
  652. }
  653. }
  654. }
  655. .swiper-dots {
  656. display: flex;
  657. position: absolute;
  658. left: 60upx;
  659. bottom: 15upx;
  660. width: 72upx;
  661. height: 36upx;
  662. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTk4MzlBNjE0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTk4MzlBNjA0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0E3RUNERkE0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0E3RUNERkI0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Gh5BPAAACTUlEQVR42uzcQW7jQAwFUdN306l1uWwNww5kqdsmm6/2MwtVCp8CosQtP9vg/2+/gY+DRAMBgqnjIp2PaCxCLLldpPARRIiFj1yBbMV+cHZh9PURRLQNhY8kgWyL/WDtwujjI8hoE8rKLqb5CDJaRMJHokC6yKgSCR9JAukmokIknCQJpLOIrJFwMsBJELFcKHwM9BFkLBMKFxNcBCHlQ+FhoocgpVwwnv0Xn30QBJGMC0QcaBVJiAMiec/dcwKuL4j1QMsVCXFAJE4s4NQA3K/8Y6DzO4g40P7UcmIBJxbEesCKWBDg8wWxHrAiFgT4fEGsB/CwIhYE+AeBAAdPLOcV8HRmWRDAiQVcO7GcV8CLM8uCAE4sQCDAlHcQ7x+ABQEEAggEEAggEEAggEAAgQACASAQQCCAQACBAAIBBAIIBBAIIBBAIABe4e9iAe/xd7EAJxYgEGDeO4j3EODp/cOCAE4sYMyJ5cwCHs4rCwI4sYBxJ5YzC84rCwKcXxArAuthQYDzC2JF0H49LAhwYUGsCFqvx5EF2T07dMaJBetx4cRyaqFtHJ8EIhK0i8OJBQxcECuCVutxJhCRoE0cZwMRyRcFefa/ffZBVPogePihhyCnbBhcfMFFEFM+DD4m+ghSlgmDkwlOgpAl4+BkkJMgZdk4+EgaSCcpVX7bmY9kgXQQU+1TgE0c+QJZUUz1b2T4SBbIKmJW+3iMj2SBVBWz+leVfCQLpIqYbp8b85EskIxyfIOfK5Sf+wiCRJEsllQ+oqEkQfBxmD8BBgA5hVjXyrBNUQAAAABJRU5ErkJggg==);
  663. background-size: 100% 100%;
  664. .num {
  665. width: 36upx;
  666. height: 36upx;
  667. border-radius: 50px;
  668. font-size: 24upx;
  669. color: #fff;
  670. text-align: center;
  671. line-height: 36upx;
  672. }
  673. .sign {
  674. position: absolute;
  675. top: 0;
  676. left: 50%;
  677. line-height: 36upx;
  678. font-size: 12upx;
  679. color: #fff;
  680. transform: translateX(-50%);
  681. }
  682. }
  683. /* 底部操作菜单 */
  684. .page-bottom {
  685. position: fixed;
  686. left: 30upx;
  687. bottom: 30upx;
  688. z-index: 95;
  689. display: flex;
  690. justify-content: center;
  691. align-items: center;
  692. width: 690upx;
  693. height: 100upx;
  694. background: rgba(255, 255, 255, .9);
  695. box-shadow: 0 0 20upx 0 rgba(0, 0, 0, .5);
  696. border-radius: 16upx;
  697. .p-b-btn {
  698. display: flex;
  699. flex-direction: column;
  700. align-items: center;
  701. justify-content: center;
  702. font-size: $font-sm;
  703. color: $font-color-base;
  704. width: 96upx;
  705. height: 80upx;
  706. .yticon {
  707. font-size: 40upx;
  708. line-height: 48upx;
  709. color: $font-color-light;
  710. }
  711. &.active,
  712. &.active .yticon {
  713. color: $uni-color-primary;
  714. }
  715. .icon-fenxiang2 {
  716. font-size: 42upx;
  717. transform: translateY(-2upx);
  718. }
  719. .icon-shoucang {
  720. font-size: 46upx;
  721. }
  722. }
  723. }
  724. .rich-img {
  725. width: 100%;
  726. height: auto;
  727. margin: 0;
  728. padding: 0;
  729. line-height: 0px;
  730. }
  731. button::after {
  732. border: none;
  733. }
  734. /* 销售信息 */
  735. .introduce-section {
  736. background: #fff;
  737. padding: 20upx 30upx;
  738. padding-bottom: 100upx;
  739. .guess-item {
  740. padding-bottom: 20upx;
  741. border-bottom: 1px solid #ccc;
  742. }
  743. .title {
  744. font-size: 28upx;
  745. color: $font-color-dark;
  746. font-weight: bold;
  747. height: 50upx;
  748. line-height: 50upx;
  749. flex: 2.5;
  750. }
  751. .title-tip {
  752. flex: 1.5;
  753. }
  754. .price-box {
  755. display: flex;
  756. align-items: baseline;
  757. height: 120rpx;
  758. padding: 10upx 0;
  759. font-size: 26upx;
  760. color: $uni-color-primary;
  761. }
  762. .price {
  763. font-size: $font-lg + 2upx;
  764. }
  765. .m-price {
  766. margin: 0 12upx;
  767. color: $font-color-light;
  768. text-decoration: line-through;
  769. }
  770. .coupon-tip {
  771. align-items: center;
  772. padding: 4upx 10upx;
  773. background: $uni-color-primary;
  774. font-size: $font-sm;
  775. color: #fff;
  776. border-radius: 6upx;
  777. line-height: 1;
  778. transform: translateY(-4upx);
  779. }
  780. .bot-row {
  781. display: flex;
  782. align-items: center;
  783. height: 50upx;
  784. font-size: $font-sm;
  785. color: $font-color-light;
  786. view {
  787. flex: 1;
  788. }
  789. }
  790. }
  791. .shade {
  792. position: fixed;
  793. top: 0;
  794. left: 0;
  795. width: 100%;
  796. background: rgba(0, 0, 0, 0.5);
  797. height: 100%;
  798. z-index: 999999;
  799. }
  800. .shade-content {
  801. background: #fff;
  802. position: absolute;
  803. top: 50%;
  804. left: 50%;
  805. transform: translateX(-50%) translateY(-50%);
  806. z-index: 999999;
  807. text-align: center;
  808. width: 325px;
  809. padding: 10px;
  810. }
  811. .c-row {
  812. display: -webkit-box;
  813. display: -webkit-flex;
  814. display: flex;
  815. -webkit-box-align: center;
  816. -webkit-align-items: center;
  817. align-items: center;
  818. padding: 20rpx 30rpx;
  819. position: relative;
  820. }
  821. .con-list {
  822. -webkit-box-flex: 1;
  823. -webkit-flex: 1;
  824. flex: 1;
  825. display: -webkit-box;
  826. display: -webkit-flex;
  827. display: flex;
  828. -webkit-box-orient: vertical;
  829. -webkit-box-direction: normal;
  830. -webkit-flex-direction: column;
  831. flex-direction: column;
  832. color: #303133;
  833. line-height: 40rpx;
  834. text-align: right;
  835. padding-right: 20rpx;
  836. font-size: 14px;
  837. }
  838. .xinxiup {
  839. background-color: #FFFFFF;
  840. border-radius: 20px;
  841. padding: 5px 10px;
  842. }
  843. .forxinxi {
  844. background-color: #FFFFFF;
  845. margin-top: 20px;
  846. border-radius: 20px;
  847. /* padding: 5px 10px; */
  848. }
  849. .carNos {
  850. background-color: #EEEFF4;
  851. border-top-left-radius: 20px;
  852. border-top-right-radius: 20px;
  853. height: 60px;
  854. font-size: 18px;
  855. font-weight: 600;
  856. }
  857. .hair {
  858. width: 24px;
  859. height: 24px;
  860. border-radius: 10px;
  861. font-size: 10px;
  862. color: #22C572;
  863. background-color: #E9F8F0;
  864. }
  865. .collect {
  866. width: 24px;
  867. height: 24px;
  868. border-radius: 10px;
  869. font-size: 10px;
  870. color: #FE6430;
  871. background-color: #FEECE6;
  872. }
  873. .btn {
  874. margin-top: 10px;
  875. background-color: #FFFFFF;
  876. border-radius: 25px;
  877. border: none;
  878. }
  879. .btns {
  880. background-color: #22C572;
  881. }
  882. .picture {
  883. width: 75px;
  884. height: 75px;
  885. border-radius: 10px;
  886. margin-left: 16px;
  887. }
  888. .commit {
  889. width: 85px;
  890. height: 35px;
  891. border-radius: 16px;
  892. border: 1px solid #22C572;
  893. text-align: center;
  894. line-height: 33px;
  895. color: #22C572;
  896. }
  897. .titles {
  898. margin: 10px 0 10px 16px;
  899. font-size: 15px;
  900. }
  901. </style>