detail.vue 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172
  1. <template>
  2. <!--采购详情-->
  3. <view class="container">
  4. <view class="back-btn cuIcon-back" @click="navBack"></view>
  5. <view class='title1'>采购详情</view>
  6. <image style='width:100%;' src='../../static/img/jiaoyi/bg@3x.png'></image>
  7. <view class="introduce-section">
  8. <view style='height:70px;'>
  9. <view class="title">{{goods.title}}</view>
  10. <view class='flex justify-between'>
  11. <view style='flex:1.5;color:#878C9C;'>{{goods.receivePrivate}}{{goods.receiveCity}}{{goods.receiveArea}}{{goods.receiveWarehouse}}</view>
  12. <view v-if='goods.procurementPlanType=="现货"' class="title-tip">
  13. {{goods.procurementPrice}}
  14. </view>
  15. <view style='text-align:right;' v-else class="title-tip">
  16. {{goods.basisPrice}}
  17. </view>
  18. </view>
  19. <view style='text-align:right;' v-if='goods.procurementPlanType=="现货"'>采购价格</view>
  20. <view style='text-align:right;' v-if='goods.procurementPlanType=="期货"'>今日基差</view>
  21. </view>
  22. </view>
  23. <view v-if="goods.storeImg" class="carousel-section">
  24. <swiper autoplay="true" interval="3000" duration="500" class="carousel" circular @change="swiperChange">
  25. <swiper-item key="0" class="carousel-item">
  26. <image :src="goods.storeImg" @tap="ViewImage(goods.storeImg)"/>
  27. </swiper-item>
  28. <swiper-item key="1" class="carousel-item">
  29. <image :src="goods.foodsImg" @tap="ViewImage(goods.foodsImg)"/>
  30. </swiper-item>
  31. <swiper-item key="2" class="carousel-item">
  32. <image :src="goods.carImg" @tap="ViewImage(goods.carImg)"/>
  33. </swiper-item>
  34. </swiper>
  35. <view class="swiper-dots">
  36. <text class="num">{{swiperCurrent+1}}</text>
  37. <text class="sign">/</text>
  38. <text class="num">{{swiperLength}}</text>
  39. </view>
  40. </view>
  41. <view class="detail-desc">
  42. <view class="d-header">
  43. <text>基本信息</text>
  44. </view>
  45. <view class="c-list">
  46. <view class="c-row">
  47. <text class="tit">货名</text>
  48. <view class="con-list">
  49. <text>{{goods.goodsName}}</text>
  50. </view>
  51. </view>
  52. <view class="c-row">
  53. <text class="tit">采购量(吨)</text>
  54. <view class="con-list">
  55. <text>{{goods.plannedPurchaseVolume}}</text>
  56. </view>
  57. </view>
  58. <view class="c-row">
  59. <text class="tit">最小成交量(吨)</text>
  60. <view class="con-list">
  61. <text>{{goods.minimumVolume}}</text>
  62. </view>
  63. </view>
  64. <view class="c-row">
  65. <text class="tit">类型</text>
  66. <view class="con-list">
  67. <text>{{goods.procurementPlanType}}</text>
  68. </view>
  69. </view>
  70. <view class="c-row">
  71. <text class="tit">价格类型</text>
  72. <view class="con-list">
  73. <text>{{goods.priceType}}</text>
  74. </view>
  75. </view>
  76. <view v-if='goods.procurementPlanType=="现货"' class="c-row">
  77. <text class="tit">采购价格(元/吨)</text>
  78. <view class="con-list">
  79. <text>{{goods.procurementPrice}}</text>
  80. </view>
  81. </view>
  82. <view v-else class="c-row">
  83. <text class="tit">基差(元/吨)</text>
  84. <view class="con-list">
  85. <text>{{goods.basisPrice}}</text>
  86. </view>
  87. </view>
  88. <view class="c-row">
  89. <text class="tit">收货地区</text>
  90. <view class="con-list">
  91. <text>{{goods.receivePrivate}}{{goods.receiveCity}}{{goods.receiveArea}}</text>
  92. </view>
  93. </view>
  94. <view class="c-row">
  95. <text class="tit">运费承担方</text>
  96. <view class="con-list">
  97. <text>{{goods.freightPayer}}</text>
  98. </view>
  99. </view>
  100. <view class="c-row">
  101. <text class="tit">包装方式</text>
  102. <view class="con-list">
  103. <text>{{goods.packingType}}</text>
  104. </view>
  105. </view>
  106. <view v-if='goods.baggingNotes' class="c-row">
  107. <text class="tit">袋装备注</text>
  108. <view class="con-list">
  109. <text>{{goods.baggingNotes}}</text>
  110. </view>
  111. </view>
  112. <view class="c-row">
  113. <text class="tit">买方</text>
  114. <view class="con-list">
  115. <text>{{goods.buyer}}</text>
  116. </view>
  117. </view>
  118. <view class="c-row">
  119. <text class="tit">买方电话</text>
  120. <view class="con-list">
  121. <view>{{goods.buyerPhone}} <a :href="'tel:'+goods.buyerPhone"><image style='width:11px;height:11px;' src='../../static/img/jiaoyi/gengduo1@3x.png'></image></a></view>
  122. </view>
  123. </view>
  124. </view>
  125. </view>
  126. <view class="detail-desc">
  127. <view class="d-header">
  128. <text>货物要求</text>
  129. </view>
  130. <view class="c-list">
  131. <view class="c-row">
  132. <text class="tit">水分(%){{'<='}} </text>
  133. <view class="con-list">
  134. <text>{{goods.waterContent}}</text>
  135. </view>
  136. </view>
  137. <view class="c-row">
  138. <text class="tit">容重(g/L){{'<='}}</text>
  139. <view class="con-list">
  140. <text>{{goods.bulkDensity}}</text>
  141. </view>
  142. </view>
  143. <view class="c-row">
  144. <text class="tit">热损伤(%){{'<='}}</text>
  145. <view class="con-list">
  146. <text>{{goods.jiaorenli}}</text>
  147. </view>
  148. </view>
  149. <view class="c-row">
  150. <text class="tit">杂质(%){{'<='}}</text>
  151. <view class="con-list">
  152. <text>{{goods.impurity}}</text>
  153. </view>
  154. </view>
  155. <view class="c-row">
  156. <text class="tit">霉变粒(%){{'<='}}</text>
  157. <view class="con-list">
  158. <text>{{goods.mildewGrain}}</text>
  159. </view>
  160. </view>
  161. <view class="c-row">
  162. <text class="tit">不完善粒(%){{'<='}}</text>
  163. <view class="con-list">
  164. <text>{{goods.imperfectGrain}}</text>
  165. </view>
  166. </view>
  167. <view class="c-row">
  168. <text class="tit">蛋白(%){{'>='}} </text>
  169. <view class="con-list">
  170. <text>{{goods.protein}}</text>
  171. </view>
  172. </view>
  173. <view class="c-row">
  174. <text class="tit">粒型</text>
  175. <view class="con-list">
  176. <text>{{goods.grain}}</text>
  177. </view>
  178. </view>
  179. <view class="c-row">
  180. <text class="tit">品级</text>
  181. <view class="con-list">
  182. <text>{{goods.grade}}</text>
  183. </view>
  184. </view>
  185. <view class="c-row">
  186. <text class="tit">产地</text>
  187. <view class="con-list">
  188. <text>{{goods.outputPrivate}}{{goods.outputCity}}</text>
  189. </view>
  190. </view>
  191. <view class="c-row">
  192. <text class="tit">产出年份</text>
  193. <view class="con-list">
  194. <text>{{goods.outputYear}}</text>
  195. </view>
  196. </view>
  197. </view>
  198. </view>
  199. <view v-if='status' class='shade'>
  200. <view class='shade-content'>
  201. <view class='shade-content-item'>
  202. 您的粮商身份正在审核中,请耐心等待认证状态可在<text>我的-身份认证</text>中查看
  203. </view>
  204. <image @click='status=false' style='width:30px;height:30px;margin-top:10px;' src='../../static/img/jiaoyi/guanbi-2@3x.png'></image>
  205. </view>
  206. </view>
  207. <!-- 底部操作菜单 -->
  208. <view class="page-bottom1">
  209. <view>
  210. <button type="primary" @click="contactUs">立即沟通</button>
  211. <button @click="salegrain" v-if="goods.pcFlag == 1" type="primary" class=" action-btn no-border add-cart-btn" >立即卖粮</button>
  212. <button v-else type="primary" class="action-btn no-border add-cart-btn"
  213. @click="tradeNow">立即发车</button>
  214. </view>
  215. </view>
  216. </view>
  217. </template>
  218. <script>
  219. import uniNumberBox from '@/components/uni-number-box.vue';
  220. import {
  221. mapState
  222. } from 'vuex';
  223. export default {
  224. components: {
  225. uniNumberBox
  226. },
  227. data() {
  228. return {
  229. swiperCurrent: 0,
  230. titleNViewBackground: '',
  231. swiperLength: 0,
  232. goods: {
  233. id: undefined,
  234. title: undefined,
  235. soldCount: 0,
  236. total: 0,
  237. price: 0,
  238. origin: undefined,
  239. stock: undefined,
  240. level: undefined,
  241. goodsName: undefined,
  242. smell: undefined,
  243. priceType: undefined,
  244. packing: undefined,
  245. year: undefined,
  246. waterContent: 0,
  247. bulkDensity: 0,
  248. moldy: 0,
  249. impurity: 0,
  250. overFlow: 0,
  251. seller:'',
  252. sellerPhone:'',
  253. minSale: 0,
  254. status:0
  255. },
  256. status:false,
  257. share:{
  258. title: '',
  259. imageUrl:'https://taohaoliang.oss-cn-beijing.aliyuncs.com/shareLogo.png',
  260. },
  261. reason:"",
  262. price:undefined,
  263. };
  264. },
  265. onShow() {
  266. },
  267. onLoad(options) {
  268. this.goods.compId=options.compId
  269. const that = this
  270. uni.showLoading({
  271. title: '正在加载',
  272. mask:true
  273. })
  274. this.$api.doRequest('get', '/procurementPlanInfo/getProcurementPlan',{id:options.id}).then(res => {
  275. uni.hideLoading()
  276. this.goods=res.data.data
  277. })
  278. // .then(res => {
  279. // console.log(res.data)
  280. // that.goods = res.data
  281. // that.swiperLength = 3
  282. // if(that.goods.soldCount >= that.goods.total){
  283. // that.goods.status = 1
  284. // }
  285. // that.share.title = that.goods.title
  286. // uni.hideLoading()
  287. // })
  288. },
  289. computed: {
  290. ...mapState(['hasLogin','userInfo'])
  291. },
  292. methods: {
  293. numFilter (value) {
  294. if(!value){
  295. return 0
  296. }
  297. // 截取当前数据到小数点后两位
  298. let realVal = parseFloat(value).toFixed(2)
  299. return realVal
  300. },
  301. swiperChange(e) {
  302. const index = e.detail.current;
  303. this.swiperCurrent = index;
  304. },
  305. contactUs() {
  306. const that = this
  307. uni.makePhoneCall({
  308. // 手机号
  309. phoneNumber: that.goods.buyerPhone,
  310. // 成功回调
  311. success: (res) => {
  312. console.log('调用成功!')
  313. },
  314. // 失败回调
  315. fail: (res) => {
  316. console.log('调用失败!')
  317. }
  318. });
  319. },
  320. ViewImage(e) {
  321. var img = [];
  322. img.push(e)
  323. uni.previewImage({
  324. current:0,
  325. urls: img
  326. });
  327. },
  328. priceInput(e) {
  329. this.price = e.detail.value
  330. },
  331. reasonInput(e) {
  332. this.reason = e.detail.value
  333. },
  334. navToDetailPage() {
  335. const that = this
  336. uni.navigateTo({
  337. url: `/pageA/product/detail_upload?id=${that.goods.id}`
  338. })
  339. },
  340. changePrice(options){
  341. const that = this
  342. uni.showLoading({
  343. title: '正在加载'
  344. })
  345. if(!that.price){
  346. that.$api.msg('请输入修改价格')
  347. return
  348. }
  349. that.$api.request('sale', 'changePrice', {
  350. id: that.goods.id,
  351. price:that.price
  352. }, failres => {
  353. that.$api.msg(failres.errmsg)
  354. uni.hideLoading()
  355. }).then(res => {
  356. that.$api.msg('修改成功')
  357. uni.hideLoading()
  358. setTimeout(()=>{uni.navigateBack()},1000);
  359. })
  360. },
  361. salegrain(){
  362. // uni.navigateTo({
  363. // url: `/pageA/product/business_buy?id=${this.goods.id}&receiveArea=${this.goods.receiveArea}&minimumVolume=${this.goods.minimumVolume}
  364. // &goodsName=${this.goods.goodsName}&receiveCity=${this.goods.receiveCity}&receivePrivate=${this.goods.receivePrivate}&buyer=${this.goods.buyer}
  365. // `
  366. // })
  367. // var that=this
  368. if (!this.hasLogin) {
  369. uni.showModal({
  370. title: '登录提示',
  371. content: '您尚未登录,是否立即登录?',
  372. showCancel: true,
  373. confirmText: '登录',
  374. success: (e) => {
  375. if (e.confirm) {
  376. uni.navigateTo({
  377. url: '/pages/public/login'
  378. })
  379. }
  380. },
  381. fail: () => {},
  382. complete: () => {}
  383. })
  384. }
  385. else{
  386. this.$api.doRequest('get', '/identityAuthenticationInfo/getInfo',{commonId:this.userInfo.id}).then(res => {
  387. if(res.data.code==200){
  388. uni.navigateTo({
  389. url: `/pageA/product/business_buy?id=${this.goods.id}&receiveArea=${this.goods.receiveArea}&minimumVolume=${this.goods.minimumVolume}
  390. &goodsName=${this.goods.goodsName}&receiveCity=${this.goods.receiveCity}&receivePrivate=${this.goods.receivePrivate}&buyer=${this.goods.buyer}
  391. &basisPrice=${this.goods.basisPrice}&procurementPrice=${this.goods.procurementPrice}&receiveWarehouse=${this.goods.receiveWarehouse}
  392. &procurementPlanType=${this.goods.procurementPlanType}&procurementPlan=${this.goods.procurementPlanNo}&compId=${this.goods.compId}`
  393. // url: `/pageA/product/business_buy?id=${this.goods.id}&packing=${this.goods.packing}}&province=${this.goods.province}
  394. // &city=${this.goods.city}&area=${this.goods.area}&storeName=${this.goods.storeName}&seller=${this.goods.seller}
  395. // &companyId=${this.goods.companyId}&sellerPhone=${this.goods.sellerPhone}&minSale=${this.goods.minSale}
  396. // &exsitCount=${this.goods.total}&isFutures=${this.goods.isFutures}
  397. // &basis=${this.goods.basis}&basisSmall=${this.goods.basisSmall}&basisBig=${this.goods.basisBig}
  398. // &unloadingFee=${this.goods.unloadingFee}&goodsName=${this.goods.goodsName}&receivePrivate=${this.goods.receivePrivate}&receiveCity=${that.goods.receiveCity}
  399. // &receiveArea=${this.goods.receiveArea}&minimumVolume=${this.goods.minimumVolume}&buyer=${this.goods.buyer}`
  400. })
  401. }else if(res.data.code==11016){
  402. uni.showModal({
  403. title: '温馨提示',
  404. content: '您还未认证粮商身份, 下单前请先完善您的身份信息',
  405. confirmText: "去认证",
  406. confirmColor: '#22C572',
  407. success: function (res) {
  408. if (res.confirm) {
  409. uni.navigateTo({//跳转页面
  410. url:`/pages/attestation/index`
  411. })
  412. } else if (res.cancel) {
  413. }
  414. }
  415. });
  416. }else if(res.data.code==11017){
  417. this.status=true
  418. }
  419. })
  420. // uni.showModal({
  421. // title: '温馨提示',
  422. // content: '请在发车前认真核实买方身份,并在签订正规的交易合同后发起发车操作,是否继续发车?',
  423. // confirmText: "发车",
  424. // confirmColor: '#22C572',
  425. // success: function (res) {
  426. // if (res.confirm) {
  427. // uni.navigateTo({//跳转页面
  428. // url:"../index/index"
  429. // })
  430. // } else if (res.cancel) {
  431. // }
  432. // }
  433. // });
  434. // const that = this
  435. // uni.navigateTo({
  436. // url: `/pageA/product/trade?id=${that.goods.id}&packing=${that.goods.packing}}&province=${that.goods.province}
  437. // &city=${that.goods.city}&area=${that.goods.area}&storeName=${that.goods.storeName}&seller=${that.goods.seller}
  438. // &companyId=${that.goods.companyId}&sellerPhone=${that.goods.sellerPhone}&minSale=${that.goods.minSale}
  439. // &exsitCount=${that.goods.total}&isFutures=${that.goods.isFutures}
  440. // &basis=${that.goods.basis}&basisSmall=${that.goods.basisSmall}&basisBig=${that.goods.basisBig}
  441. // &unloadingFee=${that.goods.unloadingFee}`
  442. // })
  443. }
  444. },
  445. endSale(){
  446. const that = this
  447. uni.showLoading({
  448. title: '正在加载',
  449. mask:true
  450. })
  451. that.$api.request('sale', 'endSale', {
  452. id: that.goods.id,
  453. reason:that.reason
  454. }, failres => {
  455. that.$api.msg(failres.errmsg)
  456. uni.hideLoading()
  457. }).then(res => {
  458. that.$api.msg('终止成功')
  459. uni.hideLoading()
  460. setTimeout(()=>{uni.navigateBack()},1000);
  461. })
  462. },
  463. navBack() {
  464. uni.navigateBack();
  465. },
  466. tradeNow(){
  467. // this.$api.doRequest('get', '/identityAuthenticationInfo/getInfo',{commonId:options.id}).then(res => {
  468. // uni.hideLoading()
  469. // this.goods=res.data.data
  470. // })
  471. // if (!this.hasLogin) {
  472. // uni.showModal({
  473. // title: '登录提示',
  474. // content: '您尚未登录,是否立即登录?',
  475. // showCancel: true,
  476. // confirmText: '登录',
  477. // success: (e) => {
  478. // if (e.confirm) {
  479. // uni.navigateTo({
  480. // url: '/pages/public/login'
  481. // })
  482. // }
  483. // },
  484. // fail: () => {},
  485. // complete: () => {}
  486. // })
  487. // }
  488. // else{
  489. // uni.showModal({
  490. // title: '温馨提示',
  491. // content: '请在发车前认真核实买方身份,并在签订正规的交易合同后发起发车操作,是否继续发车?',
  492. // confirmText: "发车",
  493. // confirmColor: '#22C572',
  494. // success: function (res) {
  495. // if (res.confirm) {
  496. // uni.navigateTo({//跳转页面
  497. // url:"../index/index"
  498. // })
  499. // } else if (res.cancel) {
  500. // }
  501. // }
  502. // });
  503. // const that = this
  504. // uni.navigateTo({
  505. // url: `/pageA/product/trade?id=${that.goods.id}&packing=${that.goods.packing}}&province=${that.goods.province}
  506. // &city=${that.goods.city}&area=${that.goods.area}&storeName=${that.goods.storeName}&seller=${that.goods.seller}
  507. // &companyId=${that.goods.companyId}&sellerPhone=${that.goods.sellerPhone}&minSale=${that.goods.minSale}
  508. // &exsitCount=${that.goods.total}&isFutures=${that.goods.isFutures}
  509. // &basis=${that.goods.basis}&basisSmall=${that.goods.basisSmall}&basisBig=${that.goods.basisBig}
  510. // &unloadingFee=${that.goods.unloadingFee}`
  511. // })
  512. // }
  513. }
  514. },
  515. }
  516. </script>
  517. <style scoped lang='scss'>
  518. .title1{
  519. position:absolute;
  520. left:50%;
  521. transform: translateX(-50%);
  522. top: 40upx;
  523. z-index:9999;
  524. color:#fff;
  525. }
  526. page {
  527. background: #F5F6FA;
  528. /* padding-bottom: 160upx; */
  529. }
  530. .container{
  531. padding-bottom: 160upx;
  532. }
  533. .icon-you {
  534. font-size: $font-base + 2upx;
  535. color: #888;
  536. }
  537. .carousel {
  538. width: 100%;
  539. height: 350upx;
  540. .carousel-item {
  541. width: 100%;
  542. height: 100%;
  543. padding: 0 28upx;
  544. overflow: hidden;
  545. }
  546. image {
  547. width: 100%;
  548. height: 100%;
  549. border-radius: 10upx;
  550. }
  551. }
  552. .carousel-section {
  553. padding: 0;
  554. .titleNview-placing {
  555. padding-top: 0;
  556. height: 0;
  557. }
  558. .carousel {
  559. .carousel-item {
  560. padding: 0;
  561. }
  562. }
  563. .swiper-dots {
  564. left: 45upx;
  565. bottom: 40upx;
  566. }
  567. }
  568. /* 分享 */
  569. .share-section {
  570. display: flex;
  571. align-items: center;
  572. color: $font-color-base;
  573. background: linear-gradient(left, #fdf5f6, #fbebf6);
  574. padding: 12upx 30upx;
  575. .share-icon {
  576. display: flex;
  577. align-items: center;
  578. width: 70upx;
  579. height: 30upx;
  580. line-height: 1;
  581. border: 1px solid $uni-color-primary;
  582. border-radius: 4upx;
  583. position: relative;
  584. overflow: hidden;
  585. font-size: 22upx;
  586. color: $uni-color-primary;
  587. &:after {
  588. content: '';
  589. width: 50upx;
  590. height: 50upx;
  591. border-radius: 50%;
  592. left: -20upx;
  593. top: -12upx;
  594. position: absolute;
  595. background: $uni-color-primary;
  596. }
  597. }
  598. .icon-xingxing {
  599. position: relative;
  600. z-index: 1;
  601. font-size: 24upx;
  602. margin-left: 2upx;
  603. margin-right: 10upx;
  604. color: #fff;
  605. line-height: 1;
  606. }
  607. .tit {
  608. font-size: $font-base;
  609. margin-left: 10upx;
  610. }
  611. .icon-bangzhu1 {
  612. padding: 10upx;
  613. font-size: 30upx;
  614. line-height: 1;
  615. }
  616. .share-btn {
  617. flex: 1;
  618. text-align: right;
  619. font-size: $font-sm;
  620. color: $uni-color-primary;
  621. }
  622. .icon-you {
  623. font-size: $font-sm;
  624. margin-left: 4upx;
  625. color: $uni-color-primary;
  626. }
  627. }
  628. .c-list {
  629. font-size: $font-sm + 2upx;
  630. color: $font-color-base;
  631. background: #fff;
  632. .c-row {
  633. display: flex;
  634. align-items: center;
  635. padding: 20upx 30upx;
  636. position: relative;
  637. }
  638. .tit {
  639. width: 220upx;
  640. }
  641. .con {
  642. flex: 1;
  643. color: $font-color-dark;
  644. .selected-text {
  645. margin-right: 10upx;
  646. }
  647. }
  648. .bz-list {
  649. height: 40upx;
  650. font-size: $font-sm+2upx;
  651. color: $font-color-dark;
  652. text {
  653. display: inline-block;
  654. margin-right: 30upx;
  655. }
  656. }
  657. .con-list {
  658. flex: 1;
  659. display: flex;
  660. flex-direction: column;
  661. color: $font-color-dark;
  662. line-height: 40upx;
  663. text-align: right;
  664. padding-right: 20upx;
  665. }
  666. .red {
  667. color: $uni-color-primary;
  668. }
  669. }
  670. /* 评价 */
  671. .eva-section {
  672. display: flex;
  673. flex-direction: column;
  674. padding: 20upx 30upx;
  675. background: #fff;
  676. margin-top: 16upx;
  677. .e-header {
  678. display: flex;
  679. align-items: center;
  680. height: 70upx;
  681. font-size: $font-sm + 2upx;
  682. color: $font-color-light;
  683. .tit {
  684. font-size: $font-base + 2upx;
  685. color: $font-color-dark;
  686. margin-right: 4upx;
  687. }
  688. .tip {
  689. flex: 1;
  690. text-align: right;
  691. }
  692. .icon-you {
  693. margin-left: 10upx;
  694. }
  695. }
  696. }
  697. .eva-box {
  698. display: flex;
  699. padding: 20upx 0;
  700. .portrait {
  701. flex-shrink: 0;
  702. width: 80upx;
  703. height: 80upx;
  704. border-radius: 100px;
  705. }
  706. .right {
  707. flex: 1;
  708. display: flex;
  709. flex-direction: column;
  710. font-size: $font-base;
  711. color: $font-color-base;
  712. padding-left: 26upx;
  713. .con {
  714. font-size: $font-base;
  715. color: $font-color-dark;
  716. padding: 20upx 0;
  717. }
  718. .bot {
  719. display: flex;
  720. justify-content: space-between;
  721. font-size: $font-sm;
  722. color: $font-color-light;
  723. }
  724. }
  725. }
  726. /* 详情 */
  727. .detail-desc {
  728. background: #fff;
  729. margin-top: 16upx;
  730. margin:10px;
  731. position:relative;
  732. z-index:4;
  733. border-radius:5px;
  734. .d-header {
  735. display: flex;
  736. padding:10px;
  737. font-size: $font-base + 2upx;
  738. color: $font-color-dark;
  739. position: relative;
  740. border-bottom:1px solid #EEEEEE;
  741. text {
  742. padding: 0 20upx;
  743. position: relative;
  744. z-index: 1;
  745. }
  746. }
  747. }
  748. /* 规格选择弹窗 */
  749. .attr-content {
  750. padding: 10upx 30upx;
  751. .a-t {
  752. display: flex;
  753. image {
  754. width: 170upx;
  755. height: 170upx;
  756. flex-shrink: 0;
  757. margin-top: -40upx;
  758. border-radius: 8upx;
  759. ;
  760. }
  761. .right {
  762. display: flex;
  763. flex-direction: column;
  764. padding-left: 24upx;
  765. font-size: $font-sm + 2upx;
  766. color: $font-color-base;
  767. line-height: 42upx;
  768. .price {
  769. font-size: $font-lg;
  770. color: $uni-color-primary;
  771. margin-bottom: 10upx;
  772. }
  773. .selected-text {
  774. margin-right: 10upx;
  775. }
  776. }
  777. }
  778. .attr-list {
  779. display: flex;
  780. flex-direction: column;
  781. font-size: $font-base + 2upx;
  782. color: $font-color-base;
  783. padding-top: 30upx;
  784. padding-left: 10upx;
  785. }
  786. .item-list {
  787. padding: 30upx 0 0;
  788. display: flex;
  789. flex-wrap: wrap;
  790. text {
  791. display: flex;
  792. align-items: center;
  793. justify-content: center;
  794. background: #eee;
  795. margin-right: 20upx;
  796. margin-bottom: 20upx;
  797. border-radius: 100upx;
  798. min-width: 60upx;
  799. height: 60upx;
  800. padding: 0 20upx;
  801. font-size: $font-base;
  802. color: $font-color-dark;
  803. }
  804. .selected {
  805. background: #fbebee;
  806. color: $uni-color-primary;
  807. }
  808. }
  809. }
  810. /* 弹出层 */
  811. .popup {
  812. position: fixed;
  813. left: 0;
  814. top: 0;
  815. right: 0;
  816. bottom: 0;
  817. z-index: 99;
  818. &.show {
  819. display: block;
  820. .mask {
  821. animation: showPopup 0.2s linear both;
  822. }
  823. .layer {
  824. animation: showLayer 0.2s linear both;
  825. }
  826. }
  827. &.hide {
  828. .mask {
  829. animation: hidePopup 0.2s linear both;
  830. }
  831. .layer {
  832. animation: hideLayer 0.2s linear both;
  833. }
  834. }
  835. &.none {
  836. display: none;
  837. }
  838. .mask {
  839. position: fixed;
  840. top: 0;
  841. width: 100%;
  842. height: 100%;
  843. z-index: 1;
  844. background-color: rgba(0, 0, 0, 0.4);
  845. }
  846. .layer {
  847. position: fixed;
  848. z-index: 99;
  849. bottom: 0;
  850. width: 100%;
  851. min-height: 40vh;
  852. border-radius: 10upx 10upx 0 0;
  853. background-color: #fff;
  854. .btn {
  855. height: 66upx;
  856. line-height: 66upx;
  857. border-radius: 100upx;
  858. background: $uni-color-primary;
  859. font-size: $font-base + 2upx;
  860. color: #fff;
  861. margin: 30upx auto 20upx;
  862. }
  863. }
  864. @keyframes showPopup {
  865. 0% {
  866. opacity: 0;
  867. }
  868. 100% {
  869. opacity: 1;
  870. }
  871. }
  872. @keyframes hidePopup {
  873. 0% {
  874. opacity: 1;
  875. }
  876. 100% {
  877. opacity: 0;
  878. }
  879. }
  880. @keyframes showLayer {
  881. 0% {
  882. transform: translateY(120%);
  883. }
  884. 100% {
  885. transform: translateY(0%);
  886. }
  887. }
  888. @keyframes hideLayer {
  889. 0% {
  890. transform: translateY(0);
  891. }
  892. 100% {
  893. transform: translateY(120%);
  894. }
  895. }
  896. }
  897. .swiper-dots {
  898. display: flex;
  899. position: absolute;
  900. left: 60upx;
  901. bottom: 15upx;
  902. width: 72upx;
  903. height: 36upx;
  904. 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==);
  905. background-size: 100% 100%;
  906. .num {
  907. width: 36upx;
  908. height: 36upx;
  909. border-radius: 50px;
  910. font-size: 24upx;
  911. color: #fff;
  912. text-align: center;
  913. line-height: 36upx;
  914. }
  915. .sign {
  916. position: absolute;
  917. top: 0;
  918. left: 50%;
  919. line-height: 36upx;
  920. font-size: 12upx;
  921. color: #fff;
  922. transform: translateX(-50%);
  923. }
  924. }
  925. /* 底部操作菜单 */
  926. .page-bottom1 {
  927. position: fixed;
  928. left: 0;
  929. bottom: 0;
  930. z-index: 95;
  931. width:100%;
  932. height: 70px;
  933. background: rgba(255, 255, 255, .9);
  934. padding:15px;
  935. border-radius: 0;
  936. text-align:right;
  937. button{
  938. display:inline-block;
  939. border-radius:18px;
  940. margin:0 10px;
  941. font-size:14px;background:#fff;
  942. color:#333;
  943. border:1px solid #333;
  944. }
  945. .action-btn{
  946. background:#22C572;
  947. color:#fff;
  948. border:1px solid #22C572;
  949. }
  950. .p-b-btn {
  951. display: flex;
  952. flex-direction: column;
  953. align-items: center;
  954. justify-content: center;
  955. font-size: $font-sm;
  956. color: $font-color-base;
  957. width: 96upx;
  958. height: 80upx;
  959. .yticon {
  960. font-size: 40upx;
  961. line-height: 48upx;
  962. color: $font-color-light;
  963. }
  964. &.active,
  965. &.active .yticon {
  966. color: $uni-color-primary;
  967. }
  968. .icon-fenxiang2 {
  969. font-size: 42upx;
  970. transform: translateY(-2upx);
  971. }
  972. .icon-shoucang {
  973. font-size: 46upx;
  974. }
  975. }
  976. }
  977. .rich-img {
  978. width: 100%;
  979. height: auto;
  980. margin: 0;
  981. padding: 0;
  982. line-height: 0px;
  983. }
  984. button::after {
  985. border: none;
  986. }
  987. /* 销售信息 */
  988. .introduce-section {
  989. background: #fff;
  990. padding: 30upx 30upx;
  991. position:relative;
  992. margin:10px;
  993. padding-bottom:25px;
  994. margin-top:-148px;
  995. border-radius:5px;
  996. z-index:4;
  997. .guess-item {
  998. padding-bottom: 20upx;
  999. border-bottom: 1px solid #ccc;
  1000. }
  1001. .title {
  1002. font-size: 16px;
  1003. color: $font-color-dark;
  1004. font-weight:bold;
  1005. height: 50upx;
  1006. line-height: 50upx;
  1007. flex:2.5;
  1008. }
  1009. .title-tip {
  1010. flex:1.5;
  1011. color:#FD714F;font-size:30px;
  1012. text-align: right;
  1013. }
  1014. .price-box {
  1015. display: flex;
  1016. align-items: baseline;
  1017. height: 120rpx;
  1018. padding: 10upx 0;
  1019. font-size: 26upx;
  1020. color: $uni-color-primary;
  1021. }
  1022. .price {
  1023. font-size: $font-lg + 2upx;
  1024. }
  1025. .m-price {
  1026. margin: 0 12upx;
  1027. color: $font-color-light;
  1028. text-decoration: line-through;
  1029. }
  1030. .coupon-tip {
  1031. align-items: center;
  1032. padding: 4upx 10upx;
  1033. background: $uni-color-primary;
  1034. font-size: $font-sm;
  1035. color: #fff;
  1036. border-radius: 6upx;
  1037. line-height: 1;
  1038. transform: translateY(-4upx);
  1039. }
  1040. .bot-row {
  1041. display: flex;
  1042. align-items: center;
  1043. height: 50upx;
  1044. font-size: $font-sm;
  1045. color: $font-color-light;
  1046. view {
  1047. flex: 1;
  1048. }
  1049. }
  1050. }
  1051. .back-btn {
  1052. position: absolute;
  1053. left: 40upx;
  1054. z-index: 9999;
  1055. padding-top: var(--status-bar-height);
  1056. top: 40upx;
  1057. font-size: 40upx;
  1058. color: #fff;
  1059. }
  1060. .shade{
  1061. position:fixed;
  1062. top:0;
  1063. left:0;
  1064. width:100%;background:rgba(0,0,0,0.5);
  1065. height:100%;
  1066. z-index:999999;
  1067. }
  1068. .shade-content{
  1069. position:absolute;
  1070. top:50%;
  1071. left:50%;
  1072. transform: translateX(-50%) translateY(-50%);
  1073. z-index:999999;
  1074. text-align:center;
  1075. }
  1076. .shade-content-item{
  1077. background:#fff;
  1078. width: 277px;
  1079. text-align:center;
  1080. height:121px;
  1081. padding:35px 10px;
  1082. border-radius:15px;
  1083. }
  1084. </style>