detail.vue 35 KB

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