product.vue 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696
  1. <template>
  2. <view
  3. class="product "
  4. :style="{
  5. paddingBottom: userIdentity == 1 && userIdentity == 3 ? '0rpx' : '188rpx',
  6. paddingTop: CustomBar + 'px'
  7. }"
  8. >
  9. <custom-p
  10. v-if="isHeaderPoduct"
  11. :systeminfo="systeminfo"
  12. :navbar-data="nvabarData"
  13. :headerBtnPosi="headerBtnPosi"
  14. :headerColor="headerColor"
  15. :type="isShareType"
  16. :page="backPage"
  17. />
  18. <tui-skeleton
  19. v-if="!skeletonShow"
  20. backgroundColor="#fafafa"
  21. borderRadius="10rpx"
  22. :isLoading="true"
  23. :loadingType="5"
  24. />
  25. <template v-else>
  26. <view class="container-product tui-skeleton">
  27. <view class="container-product-main">
  28. <view class="product-top">
  29. <view class="banner-section">
  30. <!-- </view> -->
  31. <uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode">
  32. <swiper
  33. class="banner tui-banner tui-skeleton-rect"
  34. @change="swiperChange"
  35. :duration="800"
  36. :autoplay="false"
  37. :circular="true"
  38. >
  39. <swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item">
  40. <image :src="item" @click="previewImg(index)" class="product-img" />
  41. </swiper-item>
  42. </swiper>
  43. <view class="swiper__dots-box">
  44. <tui-tag
  45. padding="12rpx 24rpx"
  46. type="translucent"
  47. shape="circleLeft"
  48. size="32rpx"
  49. :scaleMultiple="0.82"
  50. originRight
  51. >
  52. {{ current + 1 }}/{{ productImage && productImage.length }}
  53. </tui-tag>
  54. </view>
  55. </uni-swiper-dot>
  56. </view>
  57. <view class="product-wrap clearfix">
  58. <view class="wrap-top">
  59. <view class="wrap-top-price"> <cm-price v-if="skeletonShow" :product="product" /> </view>
  60. <view class="p-title tui-skeleton-fillet">
  61. <view class="p-title-name">
  62. {{ product.name == undefined ? '' : product.name }}
  63. </view>
  64. <button open-type="share" class="p-title-share tui-share-position" @tap="onShare">
  65. <view class=""><text class="iconfont icon-fenxiang1"></text></view>
  66. <view class="">分享</view>
  67. </button>
  68. </view>
  69. <view class="wrap-label" v-if="product.tagsList && product.tagsList.length > 0">
  70. <view
  71. class="label-a tui-skeleton-fillet"
  72. v-for="(label, index) in product.tagsList"
  73. :key="index"
  74. >{{ label }}</view
  75. >
  76. </view>
  77. <view class="product-seve" v-if="hasLogin">
  78. <text class="iconfont icon-dui tui-skeleton-rect"
  79. ><text class="text">无忧退货</text></text
  80. >
  81. <text class="iconfont icon-dui tui-skeleton-rect"
  82. ><text class="text">快速退款</text></text
  83. >
  84. <text class="iconfont icon-dui tui-skeleton-rect"
  85. ><text class="text">正品保证</text></text
  86. >
  87. </view>
  88. </view>
  89. </view>
  90. </view>
  91. <view class="product-item-none" v-if="goodsData.disabled">
  92. <image class="none-image" :src="staticUrl + 'icon_product_none@2x.png'" mode=""></image>
  93. <view class="none-text">商品已下架~</view>
  94. </view>
  95. <!-- 选择规格 -->
  96. <view class="product-parameter" @click="showPopup(3)">
  97. <text class="title">选择:</text> <text class="name">共{{ skusCount }}种规格可选</text>
  98. <text class="iconfont icon-xiangyou"></text>
  99. </view>
  100. <!-- 参数 -->
  101. <view class="product-parameter" @click="showPopup(0)">
  102. <text class="title">参数:</text> <text class="name">品牌 分类...</text>
  103. <text class="iconfont icon-xiangyou"></text>
  104. </view>
  105. </view>
  106. <!-- 商品详情 -->
  107. <view>
  108. <view class="product-details product-details0">
  109. <view class="title"> <view class="title-tab">商品详情</view> </view>
  110. <view class="content tui-banner product-rich-text tui-skeleton-rect">
  111. <template v-if="product.productDetail.detailInfo">
  112. <mp-html :content="html" :tag-style="tagStyle" />
  113. </template>
  114. <view class="product-rich-text-none" v-else>暂无商品信息</view>
  115. </view>
  116. </view>
  117. </view>
  118. <!-- 底部按钮 -->
  119. <view class="menu" v-if="userIdentity!==1">
  120. <view class="bottom-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
  121. <view class="bottom-le">
  122. <view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
  123. <image :src="staticUrl + 'icon_product_home@2x.png'"></image> <text>首页</text>
  124. </view>
  125. <view class="item-bt" @click="handleCollection">
  126. <image
  127. :src="
  128. collectionType
  129. ? staticUrl + 'icon_collection@2x.png'
  130. : staticUrl + 'icon_collection_none@2x.png'
  131. "
  132. ></image>
  133. <text>{{ collectionType ? '已收藏' : '收藏' }}</text>
  134. </view>
  135. <view class="item-bt" @click="buyProductCart">
  136. <image :src="staticUrl + 'icon_product_cart@2x.png'"></image> <text>购物车</text>
  137. <text
  138. v-if="hasLogin && bottomCartNumber > 0"
  139. class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
  140. :class="[bottomCartNumber < 10 ? 'goleft' : '']"
  141. >
  142. {{ bottomCartNumber >= 100 ? '99+' : bottomCartNumber }}
  143. </text>
  144. <view class="animation-num" :class="isAnimation ? 'animation' : 'restion'">+1</view>
  145. </view>
  146. </view>
  147. <view class="bottom-ri">
  148. <button
  149. :disabled="goodsData.disabled"
  150. class="btn btn-cart"
  151. :class="[goodsData.disabled ? 'disabled' : '']"
  152. @tap.stop="btnGetConfirm('add')"
  153. >
  154. 加入购物车
  155. </button>
  156. <button
  157. :disabled="goodsData.disabled"
  158. class="btn btn-bay"
  159. :class="[goodsData.disabled ? 'disabled' : '']"
  160. @tap.stop="btnGetConfirm('buy')"
  161. >
  162. 立即购买
  163. </button>
  164. </view>
  165. </view>
  166. </view>
  167. <!-- 侧边 -->
  168. <scroll-top :isScrollTop="isScrollTop" :bottom="200"></scroll-top>
  169. </view>
  170. </template>
  171. <!-- 商品参数 -->
  172. <cm-prams-popup v-if="popupShow0" :popupShow="popupShow0" :product="product" />
  173. <!-- 选择规格弹窗 -->
  174. <cm-unit-popup
  175. v-if="popupShow3"
  176. :popupShow="popupShow3"
  177. :skuProduct="skuProduct"
  178. :type="unitPopupType"
  179. :btnType="btnType"
  180. :goodsData="goodsData"
  181. :userIdentity="userIdentity"
  182. @buyConfirm="handleBuyConfirm"
  183. @skuClick="handleSkuClick"
  184. />
  185. <!-- 弹窗提示 -->
  186. <tui-modal
  187. :show="modal"
  188. @click="handleClick"
  189. @cancel="hideMobel"
  190. :content="contentModalText"
  191. :button="modalButton"
  192. color="#333"
  193. :size="32"
  194. shape="circle"
  195. :maskClosable="false"
  196. >
  197. </tui-modal>
  198. </view>
  199. </template>
  200. <script>
  201. import { mapState, mapMutations } from 'vuex'
  202. import customP from './components/cm-header.vue' //自定义导航
  203. import cmPrice from './components/cm-price.vue' //价格显示
  204. import cmPramsPopup from './components/cm-prams-popup.vue'
  205. import cmUnitPopup from './components/cm-unit-popup.vue'
  206. import authorize from '@/common/config/authorize.js'
  207. import wxLogin from '@/common/config/wxLogin.js'
  208. import proMixins from './mixins/proMixins.js'
  209. var isPreviewImg
  210. export default {
  211. mixins: [proMixins],
  212. components: {
  213. customP,
  214. cmPrice,
  215. cmPramsPopup,
  216. cmUnitPopup
  217. },
  218. data() {
  219. return {
  220. staticUrl:this.global.staticUrl,
  221. html: '',
  222. mode: 'round',
  223. iconClass: 'icon-aixin',
  224. iconColor: '#ff9100',
  225. specClass: '', // 规格弹窗css类,控制开关动画
  226. isScrollTop: false,
  227. current: 0,
  228. isShareType: '',
  229. isHeaderPoduct: false,
  230. navbarFiexd: 'none',
  231. isAnimation: false,
  232. skeletonShow: false,
  233. disabled: false,
  234. userId: 0,
  235. productId: 0,
  236. skusCount: 0, // 规格种类
  237. userIdentity: 0, // 用户类型
  238. goodsData: {}, // 自定义数据
  239. product: {}, //采美
  240. productImage: [],
  241. number: 0,
  242. headerBtnPosi: this.setHeaderBtnPosi(), // 获取设备顶部胶囊高度
  243. systeminfo: this.setSysteminfo(), // 获取设备信息
  244. windowHeight: '',
  245. headerColor: false,
  246. backPage: 1,
  247. nvabarData: {
  248. // 顶部自定义导航
  249. showCapsule: 1, // 是否显示左上角图标 1表示显示 0表示不显示
  250. title: '商品详情' // 导航栏 中间的标题
  251. },
  252. CustomBar: this.CustomBar, // 顶部导航栏高度
  253. popupShow0: false, // 参数弹窗
  254. popupShow3: false, // 购买弹窗
  255. winHeight: '',
  256. currentTab: 0,
  257. bottomCartNumber: 0,
  258. isPreviewImage: false,
  259. opentype: '',
  260. collectionType: false,
  261. contentModalText: '', //操作文字提示语句
  262. modal: false,
  263. modalButton: [
  264. {
  265. text: '取消',
  266. type: 'gray',
  267. plain: true //是否空心
  268. },
  269. {
  270. text: '去升级',
  271. customStyle: {
  272. color: '#fff',
  273. bgColor: 'linear-gradient(90deg, #F28F31 0%, #F3B574 100%)'
  274. },
  275. plain: false
  276. }
  277. ],
  278. showModal: false,
  279. unitPopupType: 0 // 选择类型 1 点击加入购物车 立即购买 2:点击规格选择
  280. }
  281. },
  282. computed: {
  283. ...mapState(['hasLogin', 'clubType', 'identity', 'isIphoneX'])
  284. },
  285. filters: {},
  286. onLoad(option) {
  287. this.productId = this.addParams.productId = option.id //获取商品ID
  288. this.opentype = option.open
  289. this.isShareType = option.type
  290. this.isHeaderPoduct = true
  291. if (option.page == 2) {
  292. this.backPage = option.page
  293. }
  294. this.getWinHeight()
  295. },
  296. onReady() {
  297. if (this.opentype == 'caimei') {
  298. // 跳转到资料详情
  299. uni.showLoading({
  300. title: '加载中'
  301. })
  302. }
  303. console.log('是iPhoneX', this.isIphoneX)
  304. },
  305. methods: {
  306. async initGetStotage() {
  307. // 初始化
  308. const userInfo = await this.$api.getStorage()
  309. this.userId = this.addParams.userId = userInfo.userId ? userInfo.userId : 0
  310. this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
  311. if (isPreviewImg) {
  312. isPreviewImg = false
  313. return
  314. } else {
  315. this.getProductDetils()
  316. }
  317. },
  318. async getProductDetils() {
  319. // 初始化商品详情查询
  320. try{
  321. const res = await this.ProductService.getProductDetils({productId: this.productId ,userId:this.userId})
  322. const data = res.data
  323. const dataStr = JSON.stringify(data)
  324. this.product = JSON.parse(dataStr)
  325. this.skuProduct = JSON.parse(dataStr)
  326. this.skusCount = this.product.organizeSkus.length
  327. this.addParams.skuId = this.product.skuId
  328. // 判断是否显示已收藏
  329. if (this.product.userLike && this.product.userLike == 1) {
  330. this.collectionType = true
  331. } else {
  332. this.collectionType = false
  333. }
  334. this.html = this.adaptRichTextImg(this.product)
  335. //处理商品图片列表
  336. this.productImage = this.product.imageList.map(item => {
  337. return item.image
  338. })
  339. //处理下架商品和售罄商品
  340. if (this.product.validFlag == 3) {
  341. this.goodsData.disabledText = '下架'
  342. this.goodsData.disabled = true
  343. }
  344. if (this.hasLogin) {
  345. this.ProductCartNumber()
  346. }
  347. this.skeletonShow = true
  348. }catch(error){
  349. this.$util.msg(error.msg, 2000)
  350. }
  351. },
  352. adaptRichTextImg(product) {
  353. // 商品详情
  354. let defaulHtml = '<div style="text-align: center;color:#333333;">暂无内容</div>'
  355. let html = product.productDetail ? this.$api.adaptRichTextImg(product.productDetail.detailInfo) : defaulHtml
  356. return html
  357. },
  358. handleCollection() {
  359. // 收藏
  360. if (this.hasLogin) {
  361. this.ProductService.getProductUserLike({
  362. userId: this.userId,
  363. productId: this.product.productId
  364. })
  365. .then(response => {
  366. this.collectionType = !this.collectionType
  367. this.$util.msg(response.data, 1500, true, 'success')
  368. })
  369. .catch(error => {
  370. this.$util.msg(error.msg, 2000)
  371. })
  372. } else {
  373. this.$api.navigateTo('/pages/login/login')
  374. }
  375. },
  376. showPopup(index) {
  377. switch (index) {
  378. case 0:
  379. this.popupShow0 = true
  380. break
  381. case 3:
  382. this.popupShow3 = true
  383. this.unitPopupType = 2
  384. break
  385. }
  386. },
  387. hidePopup(index) {
  388. switch (index) {
  389. case 0:
  390. this.popupShow0 = false
  391. break
  392. case 3:
  393. this.popupShow3 = false
  394. break
  395. }
  396. },
  397. async ProductCartNumber() {
  398. // 获取用户购物车储量
  399. try {
  400. const res = await this.OrderService.ShoppingCartCount({ userId: this.userId })
  401. this.bottomCartNumber = res.data
  402. } catch (error) {
  403. console.log('获取购物车数量异常')
  404. }
  405. },
  406. hideMobel() {
  407. this.modal = false
  408. },
  409. handleClick(e) {
  410. //个人机构跳转升级页面
  411. if (e.index == 1) {
  412. this.$api.navigateTo('/pages/login/apply')
  413. }
  414. this.modal = false
  415. },
  416. swiperChange(e) {
  417. //顶部商品图片切换
  418. const index = e.detail.current
  419. this.current = index
  420. },
  421. previewImg1(url) {
  422. let mentuzArray = []
  423. mentuzArray.push(url)
  424. uni.previewImage({
  425. urls: mentuzArray,
  426. current: 0
  427. })
  428. },
  429. previewImg(index) {
  430. //顶部商品图片预览
  431. isPreviewImg = true
  432. let previewUrls = this.productImage
  433. uni.previewImage({
  434. current: index, //图片索引
  435. urls: previewUrls, //必须是http图片,本地图片无效
  436. longPressActions: ''
  437. })
  438. },
  439. handleContact(e) {
  440. //跳转小程序客服
  441. console.log(e.detail.path)
  442. console.log(e.detail.query)
  443. },
  444. setHeaderBtnPosi() {
  445. // 获得胶囊按钮位置信息
  446. let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
  447. return headerBtnPosi
  448. },
  449. setSysteminfo() {
  450. let systeminfo
  451. uni.getSystemInfo({
  452. // 获取设备信息
  453. success: res => {
  454. systeminfo = res
  455. }
  456. })
  457. return systeminfo
  458. },
  459. goIndex() {
  460. //商城首页
  461. uni.switchTab({
  462. url: '/pages/tabBar/home/index'
  463. })
  464. },
  465. discard() {
  466. //丢弃
  467. },
  468. onShare(res) {
  469. //分享转发
  470. if (res.from === 'button') {
  471. // 来自页面内转发按钮
  472. }
  473. return {
  474. title: `${this.product.name}`,
  475. path: `pages/goods/product?type=share&id=${this.productId}`,
  476. imageUrl: `${this.productImage[0]}`
  477. }
  478. },
  479. getWinHeight() {
  480. this.winHeight = wx.getSystemInfoSync().windowHeight
  481. }
  482. },
  483. onPageScroll(e) {
  484. //实时获取到滚动的值
  485. const { scrollTop } = e
  486. if (e.scrollTop > 60) {
  487. this.headerColor = true
  488. this.navbarFiexd = 'fixed'
  489. this.nvabarData = {
  490. showCapsule: 1,
  491. title: '商品详情'
  492. }
  493. } else {
  494. this.headerColor = false
  495. this.navbarFiexd = 'none'
  496. this.nvabarData = {
  497. showCapsule: 1,
  498. title: '商品详情'
  499. }
  500. }
  501. if (e.scrollTop > 700) {
  502. this.isScrollTop = true
  503. } else {
  504. this.isScrollTop = false
  505. }
  506. },
  507. onShareAppMessage(res) {
  508. //分享转发
  509. if (res.from === 'button') {
  510. // 来自页面内转发按钮
  511. }
  512. return {
  513. title: `${this.product.name}`,
  514. path: `pages/goods/product?type=share&id=${this.productId}`,
  515. imageUrl: `${this.productImage[0]}`
  516. }
  517. },
  518. // 分享朋友圈
  519. onShareTimeline() {
  520. return {
  521. title: `${this.product.name}`,
  522. path: `pages/goods/product?type=share&id=${this.productId}`,
  523. imageUrl: `${this.productImage[0]}`
  524. }
  525. },
  526. onShow() {
  527. wxLogin.wxLoginAuthorize()
  528. // 是否开启图片预览 true 不刷新调用接口 false刷新调用接口
  529. if (!this.isPreviewImage) {
  530. this.initGetStotage()
  531. }
  532. this.isPreviewImage = false
  533. }
  534. }
  535. </script>
  536. <style lang="scss">
  537. page {
  538. background-color: #ffffff;
  539. }
  540. .banner-section {
  541. width: 100%;
  542. height: 750rpx;
  543. position: relative;
  544. }
  545. .banner {
  546. width: 100%;
  547. height: 750rpx;
  548. .product-img {
  549. width: 750rpx;
  550. }
  551. image {
  552. width: 100%;
  553. height: 100%;
  554. }
  555. .banner-item {
  556. position: relative;
  557. }
  558. }
  559. .swiper__dots-box {
  560. position: absolute;
  561. color: #fff;
  562. bottom: 30rpx;
  563. right: 0;
  564. }
  565. .product-wrap {
  566. width: 100%;
  567. height: auto;
  568. padding: 24rpx 0 0 0;
  569. background-color: #ffffff;
  570. border-bottom: 20rpx solid #f7f7f7;
  571. .wrap-top {
  572. width: 702rpx;
  573. padding: 0 24rpx;
  574. height: auto;
  575. float: left;
  576. padding-bottom: 20rpx;
  577. border-bottom: 1px solid #f8f8f8;
  578. &.none {
  579. .p-title {
  580. color: #999999;
  581. }
  582. }
  583. .p-title {
  584. width: 100%;
  585. height: auto;
  586. float: left;
  587. position: relative;
  588. .p-title-name {
  589. width: 602rpx;
  590. height: auto;
  591. float: left;
  592. line-height: 48rpx;
  593. font-size: $font-size-28;
  594. color: $text-color;
  595. -o-text-overflow: ellipsis;
  596. text-overflow: ellipsis;
  597. display: -webkit-box;
  598. word-break: break-all;
  599. -webkit-box-orient: vertical;
  600. -webkit-line-clamp: 2;
  601. overflow: hidden;
  602. &.indent {
  603. text-indent: 95rpx;
  604. }
  605. }
  606. .p-title-share {
  607. width: 96rpx;
  608. height: 96rpx;
  609. position: absolute;
  610. right: 0;
  611. text-align: center;
  612. color: #999999;
  613. font-size: $font-size-24;
  614. box-sizing: border-box;
  615. display: block;
  616. background: transparent;
  617. border-radius: 0;
  618. border: 0;
  619. margin: 0;
  620. padding: 8rpx 0;
  621. z-index: 20;
  622. .icon-fenxiang1 {
  623. font-size: $font-size-34;
  624. }
  625. }
  626. .tui-share-btn::after {
  627. border: 0;
  628. }
  629. }
  630. .wrap-main-text {
  631. line-height: 56rpx;
  632. color: #ff2a2a;
  633. font-size: $font-size-26;
  634. display: block;
  635. float: left;
  636. font-weight: normal;
  637. }
  638. .wrap-main-none {
  639. display: block;
  640. width: 256rpx;
  641. height: 44rpx;
  642. padding-left: 20rpx;
  643. border-radius: 11rpx;
  644. background: $btn-confirm;
  645. float: right;
  646. line-height: 44rpx;
  647. color: #ffffff;
  648. text-align: center;
  649. font-size: $font-size-24;
  650. }
  651. .p-price-none {
  652. height: 44rpx;
  653. line-height: 44rpx;
  654. float: left;
  655. font-size: $font-size-24;
  656. color: #666;
  657. text-decoration: line-through;
  658. margin-left: 8rpx;
  659. }
  660. .p-minBuy {
  661. height: 44rpx;
  662. line-height: 44rpx;
  663. float: right;
  664. padding: 0 18rpx;
  665. border-radius: 22rpx;
  666. background-color: #f7f7f7;
  667. color: #7f7f7f;
  668. font-size: 24rpx;
  669. text-align: center;
  670. .min-text {
  671. margin: 0 6rpx;
  672. }
  673. }
  674. .p-login {
  675. height: 56rpx;
  676. line-height: 56rpx;
  677. color: $color-system;
  678. font-size: $font-size-24;
  679. &.grade {
  680. .price-left {
  681. float: left;
  682. .none {
  683. display: block;
  684. font-size: $font-size-20;
  685. line-height: 48rpx;
  686. color: #4a4b54;
  687. float: left;
  688. font-weight: bold;
  689. margin-left: 5rpx;
  690. text {
  691. letter-spacing: 4rpx;
  692. font-size: $font-size-32;
  693. }
  694. }
  695. }
  696. }
  697. .p-no {
  698. float: left;
  699. margin-right: 5rpx;
  700. font-size: $font-size-28;
  701. color: $text-color;
  702. }
  703. .p-login-btn {
  704. display: block;
  705. height: 44rpx;
  706. padding: 0 10rpx 0 20rpx;
  707. border-radius: 11rpx;
  708. background: $btn-confirm;
  709. float: right;
  710. line-height: 44rpx;
  711. color: #ffffff;
  712. text-align: center;
  713. font-size: $font-size-24;
  714. }
  715. }
  716. }
  717. .wrap-label {
  718. float: left;
  719. width: 85%;
  720. box-sizing: border-box;
  721. .label-a {
  722. padding: 0 18rpx;
  723. line-height: 32rpx;
  724. font-size: $font-size-20;
  725. color: $color-system;
  726. text-align: center;
  727. border-radius: 6rpx;
  728. background: #fff8ef;
  729. margin: 0 20rpx 15rpx 0;
  730. display: inline-block;
  731. }
  732. }
  733. .wrap-top-price {
  734. float: left;
  735. width: 100%;
  736. box-sizing: border-box;
  737. .wrap-main-item {
  738. width: 100%;
  739. height: 56rpx;
  740. .p-price {
  741. height: 56rpx;
  742. line-height: 56rpx;
  743. float: left;
  744. color: #ff2a2a;
  745. font-weight: bold;
  746. &.none {
  747. text-decoration: line-through;
  748. color: #999999;
  749. font-weight: normal;
  750. }
  751. .txt {
  752. margin: 0 2rpx;
  753. }
  754. .txt.sm {
  755. font-size: $font-size-26;
  756. }
  757. .txt.big {
  758. font-size: $font-size-34;
  759. }
  760. }
  761. }
  762. .floor-item-btn {
  763. float: left;
  764. height: 40rpx;
  765. margin-top: 8rpx;
  766. .btn {
  767. line-height: 40rpx;
  768. padding: 0 20rpx;
  769. height: 40rpx;
  770. background: #F85050;
  771. color: #ffffff;
  772. font-size: $font-size-20;
  773. border-radius: 4rpx;
  774. }
  775. }
  776. }
  777. .wrap-info {
  778. float: left;
  779. width: 702rpx;
  780. padding: 24rpx 24rpx 0 24rpx;
  781. border-bottom: 1px solid #f8f8f8;
  782. .info-viewT {
  783. width: 100%;
  784. min-height: 40rpx;
  785. font-size: $font-size-28;
  786. color: $text-color;
  787. line-height: 40rpx;
  788. text-align: left;
  789. &.none {
  790. color: #999999;
  791. }
  792. .info-viewL {
  793. min-width: 350rpx;
  794. float: left;
  795. margin-bottom: 24rpx;
  796. }
  797. .info-viewR {
  798. min-width: 352rpx;
  799. float: left;
  800. margin-bottom: 24rpx;
  801. }
  802. }
  803. .info-viewB {
  804. width: 100%;
  805. height: auto;
  806. }
  807. .info-f {
  808. width: 50%;
  809. float: left;
  810. font-size: $font-size-28;
  811. color: $text-color;
  812. line-height: 40rpx;
  813. margin-bottom: 24rpx;
  814. text-align: left;
  815. }
  816. }
  817. }
  818. .product-seve {
  819. width: 100%;
  820. height: 60rpx;
  821. background-color: #ffffff;
  822. position: relative;
  823. display: flex;
  824. line-height: 60rpx;
  825. .label {
  826. font-size: $font-size-28;
  827. color: #333333;
  828. }
  829. .iconfont {
  830. color: #f3b574;
  831. margin-right: 20rpx;
  832. font-size: $font-size-22;
  833. }
  834. .text {
  835. font-size: $font-size-22;
  836. color: #f3b574;
  837. margin-left: 10rpx;
  838. }
  839. }
  840. .product-item-none {
  841. min-height: 348rpx;
  842. display: flex;
  843. flex-direction: column;
  844. align-items: center;
  845. border-bottom: 20rpx solid #f7f7f7;
  846. box-sizing: border-box;
  847. padding: 40rpx 0;
  848. .none-image {
  849. width: 386rpx;
  850. height: 286rpx;
  851. }
  852. .none-text {
  853. text-align: center;
  854. font-size: $font-size-28;
  855. color: #fea785;
  856. line-height: 40rpx;
  857. }
  858. }
  859. .product-supporting {
  860. width: 100%;
  861. height: 274rpx;
  862. box-sizing: border-box;
  863. padding: 30rpx 24rpx;
  864. background-color: #ffffff;
  865. border-bottom: 20rpx solid #f7f7f7;
  866. .product-supporting-title {
  867. width: 100%;
  868. height: 40rpx;
  869. text-align: left;
  870. line-height: 40rpx;
  871. font-size: $font-size-28;
  872. color: #333333;
  873. }
  874. .product-supporting-list {
  875. width: 100%;
  876. height: 154rpx;
  877. box-sizing: border-box;
  878. padding: 13rpx 0;
  879. position: relative;
  880. .icon-xiangyou {
  881. line-height: 154rpx;
  882. display: inline-block;
  883. position: absolute;
  884. width: 80rpx;
  885. top: 0;
  886. right: 0;
  887. color: #b2b2b2;
  888. text-align: right;
  889. }
  890. .list {
  891. width: 128rpx;
  892. height: 128rpx;
  893. margin-right: 24rpx;
  894. float: left;
  895. border: 1px solid #e1e1e1;
  896. border-radius: 8rpx;
  897. .list-image {
  898. width: 100%;
  899. height: 100%;
  900. display: block;
  901. border-radius: 8rpx;
  902. }
  903. }
  904. }
  905. }
  906. .product-parameter {
  907. width: 702rpx;
  908. height: 90rpx;
  909. padding: 0 24rpx;
  910. background-color: #ffffff;
  911. position: relative;
  912. border-bottom: 20rpx solid #f7f7f7;
  913. &.coupon {
  914. .title {
  915. color: #f94b4b;
  916. }
  917. .icon-xiangyou {
  918. color: #f94b4b;
  919. }
  920. .coupon {
  921. float: right;
  922. box-sizing: border-box;
  923. padding: 29rpx 0;
  924. padding-right: 35rpx;
  925. .tags {
  926. height: 32rpx;
  927. box-sizing: border-box;
  928. border-radius: 8rpx;
  929. background-color: #fff1eb;
  930. line-height: 28rpx;
  931. color: #f94b4b;
  932. text-align: center;
  933. display: inline-block;
  934. padding: 0 10rpx;
  935. font-size: $font-size-20;
  936. border: 1px solid #f94b4b;
  937. float: right;
  938. margin: 0 6rpx;
  939. }
  940. }
  941. }
  942. .title {
  943. line-height: 90rpx;
  944. display: inline-block;
  945. float: left;
  946. font-size: $font-size-28;
  947. color: #666666;
  948. }
  949. .name {
  950. line-height: 90rpx;
  951. display: inline-block;
  952. float: left;
  953. font-size: $font-size-28;
  954. color: $text-color;
  955. padding-right: 48rpx;
  956. overflow: hidden;
  957. text-overflow: ellipsis;
  958. white-space: nowrap;
  959. text-align: right;
  960. }
  961. .icon-xiangyou {
  962. line-height: 90rpx;
  963. display: inline-block;
  964. position: absolute;
  965. width: 48rpx;
  966. top: 0;
  967. right: 0;
  968. color: #b2b2b2;
  969. }
  970. }
  971. .product-details {
  972. width: 100%;
  973. background: #ffffff;
  974. border-bottom: 20rpx solid #f7f7f7;
  975. &.recommend {
  976. background-color: #f7f7f7;
  977. border-bottom: none;
  978. .title {
  979. .title-tab {
  980. background-color: #f7f7f7;
  981. color: $text-color;
  982. }
  983. }
  984. }
  985. .product-details-image {
  986. width: 100%;
  987. min-height: 856rpx;
  988. box-sizing: border-box;
  989. padding: 0 24rpx;
  990. .product-details-table {
  991. width: 100%;
  992. min-height: 160rpx;
  993. border: 1px solid #e1e1e1;
  994. border-radius: 10rpx;
  995. .ladder-tr {
  996. display: flex;
  997. width: 100%;
  998. justify-content: center;
  999. height: 80rpx;
  1000. align-items: center;
  1001. border-bottom: 1px solid #e1e1e1;
  1002. &:last-child {
  1003. border-bottom: none;
  1004. }
  1005. .ladder-item-td {
  1006. height: 80rpx;
  1007. justify-content: center;
  1008. text-align: center;
  1009. box-sizing: border-box;
  1010. padding: 10rpx;
  1011. float: left;
  1012. .te-text {
  1013. line-height: 28rpx;
  1014. font-size: $font-size-24;
  1015. text-overflow: ellipsis;
  1016. display: -webkit-box;
  1017. word-break: break-all;
  1018. -webkit-box-orient: vertical;
  1019. -webkit-line-clamp: 2;
  1020. overflow: hidden;
  1021. color: #999999;
  1022. &.last {
  1023. width: 60%;
  1024. float: left;
  1025. }
  1026. }
  1027. .te-copy {
  1028. width: 40%;
  1029. float: right;
  1030. font-size: $font-size-24;
  1031. padding-top: 10rpx;
  1032. .clipboard {
  1033. width: 84rpx;
  1034. height: 36rpx;
  1035. background: #4688fa;
  1036. text-align: center;
  1037. font-size: $font-size-24;
  1038. color: #ffffff;
  1039. border-radius: 18rpx;
  1040. line-height: 36rpx;
  1041. display: inline-block;
  1042. }
  1043. }
  1044. &.th {
  1045. display: flex;
  1046. height: 80rpx;
  1047. align-items: center;
  1048. line-height: 80rpx;
  1049. font-size: 26rpx;
  1050. color: #666;
  1051. }
  1052. &:nth-child(1) {
  1053. width: 25%;
  1054. border-right: 1px solid #e1e1e1;
  1055. }
  1056. &:nth-child(2) {
  1057. width: 35%;
  1058. border-right: 1px solid #e1e1e1;
  1059. }
  1060. &:nth-child(3) {
  1061. width: 40%;
  1062. }
  1063. }
  1064. }
  1065. }
  1066. .qualificationImg-image {
  1067. width: 100%;
  1068. height: 856rpx;
  1069. display: block;
  1070. }
  1071. }
  1072. .product-rich-text-none {
  1073. box-sizing: border-box;
  1074. padding: 0 24rpx;
  1075. text-align: left;
  1076. font-size: 24rpx;
  1077. color: #999999;
  1078. line-height: 60rpx;
  1079. &.bold {
  1080. font-weight: bold;
  1081. color: #333333;
  1082. }
  1083. }
  1084. .content-none {
  1085. width: 100%;
  1086. height: 80rpx;
  1087. line-height: 80rpx;
  1088. text-align: left;
  1089. font-size: $font-size-26;
  1090. color: #999999;
  1091. box-sizing: border-box;
  1092. padding: 0 24rpx;
  1093. }
  1094. .title {
  1095. width: 100%;
  1096. box-sizing: border-box;
  1097. padding: 0 24rpx;
  1098. .title-tab {
  1099. width: 100%;
  1100. height: 100rpx;
  1101. background: #fff;
  1102. z-index: 10;
  1103. font-size: $font-size-30;
  1104. text-align: left;
  1105. color: $text-color;
  1106. line-height: 100rpx;
  1107. font-weight: 600;
  1108. }
  1109. .title-msg {
  1110. width: 100%;
  1111. height: 236rpx;
  1112. padding: 18rpx;
  1113. background-color: rgba(225, 86, 22, 0.1);
  1114. color: $color-system;
  1115. box-sizing: border-box;
  1116. margin-bottom: 30rpx;
  1117. .tit {
  1118. line-height: 46rpx;
  1119. font-size: $font-size-24;
  1120. text-align: left;
  1121. }
  1122. .txt {
  1123. line-height: 38rpx;
  1124. font-size: $font-size-20;
  1125. text-align: justify;
  1126. }
  1127. }
  1128. }
  1129. .content {
  1130. width: 100%;
  1131. background-color: #ffffff;
  1132. }
  1133. }
  1134. .isLower {
  1135. width: 100%;
  1136. height: 116rpx;
  1137. line-height: 116rpx;
  1138. text-align: center;
  1139. color: #000000;
  1140. font-size: $font-size-32;
  1141. font-weight: bold;
  1142. }
  1143. .bottom-btn {
  1144. width: 100%;
  1145. height: 100rpx;
  1146. position: fixed;
  1147. bottom: 0;
  1148. left: 0;
  1149. background: #ffffff;
  1150. z-index: 99;
  1151. .bottom-le {
  1152. width: 300rpx;
  1153. height: 100rpx;
  1154. padding: 10rpx 20rpx 10rpx 0;
  1155. float: left;
  1156. box-sizing: border-box;
  1157. .item-bt {
  1158. width: 80rpx;
  1159. height: 100%;
  1160. margin-right: 15rpx;
  1161. display: flex;
  1162. float: left;
  1163. flex-direction: column;
  1164. align-items: center;
  1165. justify-content: center;
  1166. font-size: $font-size-22;
  1167. color: $text-color;
  1168. line-height: 34rpx;
  1169. position: relative;
  1170. .animation-num {
  1171. font-size: $font-size-32;
  1172. color: #ff2a2a;
  1173. position: absolute;
  1174. top: -12rpx;
  1175. right: 4rpx;
  1176. font-weight: bold;
  1177. }
  1178. .animation {
  1179. animation: showAmnation 2.2s ease-in-out both;
  1180. }
  1181. .restion {
  1182. animation: hideAmnation 1s ease-in-out both;
  1183. }
  1184. .icon-num {
  1185. position: absolute;
  1186. right: -12rpx;
  1187. top: -5rpx;
  1188. }
  1189. .icon-num.goleft {
  1190. right: 2rpx;
  1191. }
  1192. &:last-child {
  1193. margin-right: 0;
  1194. }
  1195. image {
  1196. width: 44rpx;
  1197. height: 44rpx;
  1198. }
  1199. button.contact-btn {
  1200. width: 100%;
  1201. height: 100%;
  1202. margin: 0;
  1203. padding: 0;
  1204. display: flex;
  1205. flex-direction: column;
  1206. align-items: center;
  1207. justify-content: center;
  1208. box-sizing: border-box;
  1209. font-size: $font-size-24;
  1210. text-align: center;
  1211. text-decoration: none;
  1212. line-height: 34rpx;
  1213. border-radius: 0;
  1214. -webkit-tap-highlight-color: transparent;
  1215. overflow: hidden;
  1216. color: $text-color;
  1217. background-color: #ffffff;
  1218. }
  1219. }
  1220. }
  1221. .bottom-ri {
  1222. width: 450rpx;
  1223. height: 100%;
  1224. float: right;
  1225. display: flex;
  1226. box-sizing: border-box;
  1227. padding: 13rpx 20rpx 13rpx 0;
  1228. .btn {
  1229. flex: 1;
  1230. width: 200rpx;
  1231. line-height: 80rpx;
  1232. text-align: center;
  1233. font-size: $font-size-24;
  1234. color: #ffffff;
  1235. }
  1236. .btn-cart {
  1237. background-color: #fff4e6;
  1238. color: $color-system;
  1239. border-radius: 42rpx 0 0 42rpx;
  1240. }
  1241. .btn-cart.disabled {
  1242. background: rgba(255, 244, 230, 0.5);
  1243. color: #ffffff;
  1244. }
  1245. .btn-bay {
  1246. background: #f3b574;
  1247. border-radius: 0 42rpx 42rpx 0;
  1248. }
  1249. .btn-bay.disabled {
  1250. background: rgba(243, 181, 116, 0.5);
  1251. }
  1252. }
  1253. }
  1254. .uni-badge--small {
  1255. -webkit-transform: scale(0.8);
  1256. -ms-transform: scale(0.8);
  1257. transform: scale(0.8);
  1258. -webkit-transform-origin: center center;
  1259. -ms-transform-origin: center center;
  1260. transform-origin: center center;
  1261. }
  1262. .uni-badge {
  1263. font-family: 'Helvetica Neue', Helvetica, sans-serif;
  1264. -webkit-box-sizing: border-box;
  1265. box-sizing: border-box;
  1266. font-size: 12px;
  1267. line-height: 1;
  1268. display: inline-block;
  1269. padding: 3px 6px;
  1270. color: #333;
  1271. border-radius: 100px;
  1272. background-color: #f1f1f1;
  1273. }
  1274. .uni-badge-error {
  1275. color: #fff;
  1276. background-color: #dd524d;
  1277. }
  1278. @keyframes showFixedColor {
  1279. 0% {
  1280. background: rgba(255, 255, 255, 0);
  1281. }
  1282. 50% {
  1283. background: rgba(255, 255, 255, 0.5);
  1284. }
  1285. 100% {
  1286. background: rgba(255, 255, 255, 1);
  1287. }
  1288. }
  1289. @keyframes hideFixedColor {
  1290. 0% {
  1291. background: rgba(255, 255, 255, 1);
  1292. }
  1293. 50% {
  1294. background: rgba(255, 255, 255, 0.5);
  1295. }
  1296. 100% {
  1297. background: rgba(255, 255, 255, 0);
  1298. }
  1299. }
  1300. /* 加入购物模态层*/
  1301. @keyframes showPopup {
  1302. 0% {
  1303. opacity: 0;
  1304. }
  1305. 100% {
  1306. opacity: 1;
  1307. }
  1308. }
  1309. @keyframes hidePopup {
  1310. 0% {
  1311. opacity: 1;
  1312. }
  1313. 100% {
  1314. opacity: 0;
  1315. }
  1316. }
  1317. @keyframes showLayer {
  1318. 0% {
  1319. transform: translateY(0);
  1320. }
  1321. 100% {
  1322. transform: translateY(-100%);
  1323. }
  1324. }
  1325. @keyframes hideLayer {
  1326. 0% {
  1327. transform: translateY(-100%);
  1328. }
  1329. 100% {
  1330. transform: translateY(0);
  1331. }
  1332. }
  1333. @keyframes showAmnation {
  1334. 0% {
  1335. top: -12rpx;
  1336. opacity: 0;
  1337. }
  1338. 50% {
  1339. top: -60rpx;
  1340. opacity: 1;
  1341. }
  1342. 100% {
  1343. top: -100rpx;
  1344. opacity: 0;
  1345. }
  1346. }
  1347. @keyframes hideAmnation {
  1348. 0% {
  1349. top: -100rpx;
  1350. opacity: 0;
  1351. }
  1352. 100% {
  1353. top: -12rpx;
  1354. opacity: 0;
  1355. }
  1356. }
  1357. .tui-popup-box {
  1358. position: relative;
  1359. box-sizing: border-box;
  1360. min-height: 220rpx;
  1361. padding: 40rpx 24rpx 0 24rpx;
  1362. .tui-popup-close {
  1363. width: 90rpx;
  1364. height: 90rpx;
  1365. position: absolute;
  1366. right: 0;
  1367. top: 24rpx;
  1368. line-height: 90rpx;
  1369. text-align: center;
  1370. color: #b2b2b2;
  1371. .icon-iconfontguanbi {
  1372. font-size: $font-size-40;
  1373. }
  1374. }
  1375. .title {
  1376. font-size: $font-size-34;
  1377. color: $text-color;
  1378. line-height: 88rpx;
  1379. text-align: center;
  1380. float: left;
  1381. width: 100%;
  1382. height: 88rpx;
  1383. font-weight: bold;
  1384. }
  1385. .tui-popup-main {
  1386. width: 100%;
  1387. float: left;
  1388. &.coupon {
  1389. padding-bottom: 40rpx;
  1390. .coupon-empty {
  1391. width: 100%;
  1392. height: 600rpx;
  1393. display: flex;
  1394. align-items: center;
  1395. justify-content: center;
  1396. flex-direction: column;
  1397. position: fixed;
  1398. background: $bg-color;
  1399. .empty-container-image {
  1400. width: 150rpx;
  1401. height: 150rpx;
  1402. margin-bottom: 0;
  1403. margin-top: 0;
  1404. }
  1405. .error-text {
  1406. font-size: $font-size-28;
  1407. color: #999999;
  1408. line-height: 88rpx;
  1409. }
  1410. }
  1411. }
  1412. .tui-popup-scroll {
  1413. width: 100%;
  1414. height: 600rpx;
  1415. .coupon-list {
  1416. width: 100%;
  1417. height: 200rpx;
  1418. margin-top: 24rpx;
  1419. box-sizing: border-box;
  1420. background: url(https://static.caimei365.com/app/img/icon/icon-coupon-uesb@2x.png);
  1421. background-size: cover;
  1422. &:last-child {
  1423. margin-bottom: 24rpx;
  1424. }
  1425. .list-cell-le {
  1426. width: 224rpx;
  1427. height: 100%;
  1428. box-sizing: border-box;
  1429. padding: 37rpx 0;
  1430. float: left;
  1431. .coupon-maxMoney {
  1432. width: 100%;
  1433. height: 78rpx;
  1434. line-height: 78rpx;
  1435. font-size: 56rpx;
  1436. color: #ffffff;
  1437. text-align: center;
  1438. .small {
  1439. font-size: $font-size-24;
  1440. }
  1441. }
  1442. .coupon-minMoney {
  1443. width: 100%;
  1444. height: 33rpx;
  1445. line-height: 33rpx;
  1446. font-size: $font-size-24;
  1447. color: #ffffff;
  1448. text-align: center;
  1449. }
  1450. }
  1451. .list-cell-ri {
  1452. width: 478rpx;
  1453. height: 100%;
  1454. box-sizing: border-box;
  1455. padding: 20rpx 24rpx 0 24rpx;
  1456. float: right;
  1457. .list-cell-top {
  1458. width: 100%;
  1459. height: 121rpx;
  1460. float: left;
  1461. border-bottom: 1px solid #e1e1e1;
  1462. .list-cell-type {
  1463. width: 286rpx;
  1464. height: 100%;
  1465. float: left;
  1466. .list-cell-tags {
  1467. width: 100%;
  1468. height: 32rpx;
  1469. margin-bottom: 7rpx;
  1470. .tags {
  1471. display: inline-block;
  1472. padding: 0 10rpx;
  1473. height: 32rpx;
  1474. line-height: 32rpx;
  1475. background-color: #ffdcce;
  1476. color: #f94b4b;
  1477. font-size: $font-size-20;
  1478. border-radius: 8rpx;
  1479. text-align: center;
  1480. float: left;
  1481. }
  1482. }
  1483. .list-cell-texts {
  1484. width: 100%;
  1485. height: auto;
  1486. line-height: 35rpx;
  1487. text-overflow: ellipsis;
  1488. display: -webkit-box;
  1489. word-break: break-all;
  1490. -webkit-box-orient: vertical;
  1491. -webkit-line-clamp: 2;
  1492. overflow: hidden;
  1493. font-size: 26rpx;
  1494. color: #333333;
  1495. }
  1496. }
  1497. .list-cell-btn {
  1498. width: 128rpx;
  1499. height: 100%;
  1500. float: right;
  1501. .icon-used {
  1502. width: 100%;
  1503. height: 100%;
  1504. box-sizing: border-box;
  1505. padding-top: 28rpx;
  1506. .icon-used-text {
  1507. width: 100%;
  1508. text-align: center;
  1509. line-height: 26rpx;
  1510. font-size: $font-size-20;
  1511. color: #f94b4b;
  1512. }
  1513. .icon-used-btn {
  1514. width: 128rpx;
  1515. height: 48rpx;
  1516. border-radius: 28rpx;
  1517. line-height: 48rpx;
  1518. font-size: $font-size-26;
  1519. text-align: center;
  1520. &.receive {
  1521. background-image: linear-gradient(270deg, #f94b4b 0%, #feb673 100%);
  1522. color: #ffffff;
  1523. }
  1524. &.make {
  1525. border: solid 1px #f94b4b;
  1526. color: #f94b4b;
  1527. }
  1528. }
  1529. }
  1530. }
  1531. }
  1532. .list-cell-time {
  1533. width: 100%;
  1534. height: 58rpx;
  1535. line-height: 58rpx;
  1536. text-align: left;
  1537. font-size: $font-size-20;
  1538. color: #999999;
  1539. }
  1540. }
  1541. }
  1542. &.train {
  1543. height: 240rpx;
  1544. }
  1545. .content-tr {
  1546. width: 100%;
  1547. min-height: 58rpx;
  1548. line-height: 58rpx;
  1549. display: flex;
  1550. .content-td {
  1551. display: flex;
  1552. flex: 3;
  1553. font-size: $font-size-26;
  1554. color: #999999;
  1555. line-height: 58rpx;
  1556. text-align: left;
  1557. }
  1558. .content-th {
  1559. display: flex;
  1560. flex: 7;
  1561. font-size: $font-size-26;
  1562. color: #333333;
  1563. line-height: 58rpx;
  1564. text-align: left;
  1565. padding-left: 10rpx;
  1566. }
  1567. }
  1568. }
  1569. }
  1570. .tui-shopping-main {
  1571. width: 100%;
  1572. .layer-smimg {
  1573. width: 114rpx;
  1574. height: 114rpx;
  1575. float: left;
  1576. border-radius: 10rpx;
  1577. margin-right: 24rpx;
  1578. image {
  1579. width: 114rpx;
  1580. height: 114rpx;
  1581. border-radius: 10rpx;
  1582. }
  1583. }
  1584. .layer-nunbox {
  1585. justify-content: space-between;
  1586. align-items: center;
  1587. width: 536rpx;
  1588. height: auto;
  1589. float: left;
  1590. .layer-nunbox-t {
  1591. width: 100%;
  1592. height: 44rpx;
  1593. position: relative;
  1594. display: flex;
  1595. margin-bottom: 10rpx;
  1596. .text {
  1597. font-size: $font-size-24;
  1598. line-height: 48rpx;
  1599. color: #999999;
  1600. }
  1601. .layer-nunbox-text {
  1602. line-height: 44rpx;
  1603. font-size: $font-size-28;
  1604. }
  1605. .number-box {
  1606. display: flex;
  1607. justify-content: center;
  1608. align-items: center;
  1609. border: 2rpx solid #ffe6dc;
  1610. border-radius: 30rpx;
  1611. height: 48rpx;
  1612. margin-left: 20rpx;
  1613. .iconfont {
  1614. font-size: $font-size-24;
  1615. padding: 0 18rpx;
  1616. color: #333333;
  1617. text-align: center;
  1618. line-height: 48rpx;
  1619. font-weight: bold;
  1620. background: #fef6f3;
  1621. &.icon-jianhao {
  1622. border-radius: 30rpx 0 0 30rpx;
  1623. }
  1624. &.icon-jiahao {
  1625. border-radius: 0 30rpx 30rpx 0;
  1626. }
  1627. }
  1628. .btn-input {
  1629. width: 62rpx;
  1630. height: 48rpx;
  1631. line-height: 48rpx;
  1632. background: #ffffff;
  1633. border-radius: 4rpx;
  1634. text-align: center;
  1635. font-size: $font-size-28;
  1636. }
  1637. }
  1638. .product-step {
  1639. position: absolute;
  1640. left: 45rpx;
  1641. bottom: 0;
  1642. height: 44rpx;
  1643. background: #ffffff;
  1644. }
  1645. }
  1646. .layer-nunbox-b {
  1647. width: 100%;
  1648. height: 44rpx;
  1649. margin-top: 13rpx;
  1650. }
  1651. .text {
  1652. line-height: 44rpx;
  1653. font-size: $font-size-28;
  1654. .p {
  1655. color: #ff2a2a;
  1656. }
  1657. .p:first-child {
  1658. margin-left: 30rpx;
  1659. }
  1660. .p.sm {
  1661. font-size: $font-size-24;
  1662. }
  1663. }
  1664. }
  1665. }
  1666. }
  1667. .tui-popup-btn {
  1668. width: 100%;
  1669. height: auto;
  1670. float: left;
  1671. margin-top: 24rpx;
  1672. .tui-button {
  1673. width: 100%;
  1674. height: 88rpx;
  1675. background: $btn-confirm;
  1676. line-height: 88rpx;
  1677. text-align: center;
  1678. color: #ffffff;
  1679. font-size: $font-size-28;
  1680. border-radius: 44rpx;
  1681. }
  1682. }
  1683. /*富文本样式*/
  1684. rich-text.p {
  1685. width: 702rpx !important;
  1686. padding: 0 24rpx;
  1687. text-align: justify;
  1688. }
  1689. rich-text.img {
  1690. width: 100%;
  1691. height: auto;
  1692. }
  1693. </style>