detail.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781
  1. <template>
  2. <view class="content">
  3. <view class="top">
  4. <u-navbar title="订单详情" :autoBack="true" bgColor="rgba(0,0,0,0)" @leftClick="leftClick" :placeholder="true" :titleStyle="titleStyle"></u-navbar>
  5. <view class="title" v-if="pageData.status == 1">暂无报价</view>
  6. <view class="title" v-if="pageData.status == 2">已有报价</view>
  7. <view class="title" v-if="pageData.status == 3 && pageData.tab !== 1">已匹配</view>
  8. <view class="hflex acenter jbetween" v-if="pageData.status == 3 && pageData.tab == 1">
  9. <view class="title">已匹配</view>
  10. <view class="top_down hflex acenter jcenter" @click="select">
  11. <image src="/static/images/common/down2.png" style="width: 36rpx;height: 36rpx;"></image>
  12. <view class="">下载附件</view>
  13. </view>
  14. </view>
  15. </view>
  16. <view class="center">
  17. <view class="box">
  18. <view class="title">商品明细</view>
  19. <block v-for="(item,index) in pageData.items">
  20. <view class="item_bg">
  21. <view class="item_name">{{item.name}}</view>
  22. <view class="text_style1" v-if="tab !== '4'">规格:{{item.spec}} 数量:{{item.number}}桶</view>
  23. <view class="text_style1" v-else>数量/吨位:{{item.weight}}</view>
  24. <view v-if="item.enclosure">
  25. <block v-for="(item2,index2) in item.enclosure" :key="index2">
  26. <view class="hflex acenter jbetween enclo">
  27. <view class="enclo_name">{{item2.filename}}</view>
  28. <view class="enclo_down hflex acenter jcenter" @click="open(index,index2)">
  29. <image src="/static/images/common/down_icon.png" style="width: 20rpx;height: 20rpx;"></image>
  30. <view>下载附件</view>
  31. </view>
  32. </view>
  33. </block>
  34. </view>
  35. <view class="text_style1" v-if="item.price">原采购价:<span class="price">¥{{item.price}}</span></view>
  36. <view class="text_style1" v-if="item.standard">质量标准:{{item.standard}}</view>
  37. <view class="hflex acenter jcenter" v-if="pageData.status == 1 && tab == '1'">
  38. <view class="item_btn hflex acenter jcenter">暂无报价</view>
  39. </view>
  40. <view class="hflex acenter jbetween offer_bg" v-if="pageData.status == 2 && tab == '1'">
  41. <view class="bg_left">已有报价•{{item.offers.length}}条</view>
  42. <view class="hflex acenter" @click="showOffer(index)">
  43. <view class="top_text">{{!item.show?'展开':'隐藏'}}</view>
  44. <u-icon name="arrow-up" color="#555555" size="20rpx" v-if="item.show"></u-icon>
  45. <u-icon name="arrow-down" color="#555555" size="20rpx" v-else></u-icon>
  46. </view>
  47. </view>
  48. <view class="vflex" v-if="item.show">
  49. <block v-for="(item2,index2) in item.offers" :key="index2">
  50. <view class="offer_bg">
  51. <view class="hflex acenter jbetween">
  52. <view class="offer-user hflex acenter">
  53. <image :src="item2.user.headimg" class="offer_avatar"></image>
  54. <view class="user_name">{{item2.user.nickname}}</view>
  55. <view class="renz hflex acenter jcenter">已认证</view>
  56. </view>
  57. <view class="offer_price">
  58. 报价:<span style="font-size: 36rpx;">¥{{item2.amount}}</span>
  59. </view>
  60. </view>
  61. <view class="hflex acenter jbetween offer_center">
  62. <view class="tele">联系电话:{{item2.user.phone}}</view>
  63. <image src="/static/images/common/tele.png" style="width: 32rpx; height: 32rpx;" @click="tele(item2.user.phone)"></image>
  64. </view>
  65. <view class="hflex acenter jend offer_bottom">
  66. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(item2.user.id)">查看详情</view>
  67. <view class="bottom_btn1 bottom_btn2 hflex acenter jcenter" @click="match(item2.id)">匹配订单</view>
  68. </view>
  69. </view>
  70. </block>
  71. </view>
  72. <view class="offer_bg" v-if="tab == '1' && pageData.status == 3">
  73. <view class="hflex acenter jbetween">
  74. <view class="offer-user hflex acenter">
  75. <image :src="pageData.offers[0].user.headimg" class="offer_avatar"></image>
  76. <view class="user_name">{{pageData.offers[0].user.nickname}}</view>
  77. <view class="renz hflex acenter jcenter">已认证</view>
  78. </view>
  79. <view class="offer_price">
  80. 报价:<span style="font-size: 36rpx;">¥{{pageData.offers[0].amount}}</span>
  81. </view>
  82. </view>
  83. <view class="hflex acenter jbetween offer_center">
  84. <view class="tele">联系电话:{{pageData.offers[0].user.phone}}</view>
  85. <image src="/static/images/common/tele.png" style="width: 32rpx; height: 32rpx;" @click="tele(pageData.offers[0].user.phone)"></image>
  86. </view>
  87. <view class="hflex acenter jend offer_bottom">
  88. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(pageData.offers[0].user.id)">查看详情</view>
  89. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(pageData.offers[0].user.id)">联系接单人</view>
  90. <view class="bottom_btn1 bottom_btn2 hflex acenter jcenter">提醒完成</view>
  91. </view>
  92. </view>
  93. </view>
  94. </block>
  95. <view class="cell">
  96. <view class="right" v-if="pageData.standard_tech">生产技术标准:<span class="left">{{pageData.standard_tech}}</span></view>
  97. </view>
  98. <view class="cell">
  99. <view class="right" v-if="pageData.standard_check">生产验收标准:<span class="left">{{pageData.standard_check}}</span></view>
  100. </view>
  101. <view class="title">图片/视频</view>
  102. <view class="hflex acenter fwrap" v-if="tab == '1'">
  103. <block v-for="(item,index) in pageData.images" :key="index">
  104. <image v-if="item.type == 'image'" :src="item.src" class="img"></image>
  105. <video v-else :src="item.src" class="img"></video>
  106. </block>
  107. </view>
  108. <view class="hflex acenter fwrap" v-else>
  109. <block v-for="(item,index) in pageData.file" :key="index">
  110. <image v-if="item.type == 'image'" :src="item.src" class="img"></image>
  111. <video v-else :src="item.src" class="img"></video>
  112. </block>
  113. </view>
  114. <view class="hflex acenter cell">
  115. <view class="left">交货地址:</view>
  116. <view class="right">{{pageData.post_address}}</view>
  117. </view>
  118. <view class="hflex acenter cell">
  119. <view class="left">交货日期:</view>
  120. <view class="right">{{pageData.post_time}}</view>
  121. </view>
  122. <view class="hflex acenter cell">
  123. <view class="left">发布时间:</view>
  124. <view class="right">{{pageData.create_time}}</view>
  125. </view>
  126. </view>
  127. <view class="box" v-if="pageData.status == 2 && tab !== '1'">
  128. <view class="hflex acenter jbetween cell2">
  129. <view class="bg_left">已有报价•{{pageData.offers.length}}条</view>
  130. <view class="hflex acenter" @click="showOffer2">
  131. <view class="top_text">{{!show?'展开':'隐藏'}}</view>
  132. <u-icon name="arrow-up" color="#555555" size="20rpx" v-if="show"></u-icon>
  133. <u-icon name="arrow-down" color="#555555" size="20rpx" v-else></u-icon>
  134. </view>
  135. </view>
  136. <view class="vflex box_bg" v-if="show">
  137. <block v-for="(item2,index2) in pageData.offers" :key="index2">
  138. <view class="offer_bg">
  139. <view class="hflex acenter jbetween">
  140. <view class="offer-user hflex acenter">
  141. <image :src="item2.user.headimg" class="offer_avatar"></image>
  142. <view class="user_name">{{item2.user.nickname}}</view>
  143. <view class="renz hflex acenter jcenter">已认证</view>
  144. </view>
  145. <view class="offer_price">
  146. 报价:<span style="font-size: 36rpx;">¥{{item2.amount}}</span>
  147. </view>
  148. </view>
  149. <view class="hflex acenter jbetween offer_center">
  150. <view class="tele">联系电话:{{item2.user.phone}}</view>
  151. <image src="/static/images/common/tele.png" style="width: 32rpx; height: 32rpx;" @click="tele(item2.user.phone)"></image>
  152. </view>
  153. <view class="hflex acenter jend offer_bottom">
  154. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(item2.user.id)">查看详情</view>
  155. <view class="bottom_btn1 bottom_btn2 hflex acenter jcenter" @click="match(item2.id)">匹配订单</view>
  156. </view>
  157. </view>
  158. </block>
  159. </view>
  160. </view>
  161. <view class="box" v-if="tab !== '1' && pageData.status == 3">
  162. <view class="bg_left cell2">接单人详情</view>
  163. <view class="box_bg">
  164. <view class="offer_bg">
  165. <view class="hflex acenter jbetween">
  166. <view class="offer-user hflex acenter">
  167. <image :src="pageData.offers[0].user.headimg" class="offer_avatar"></image>
  168. <view class="user_name">{{pageData.offers[0].user.nickname}}</view>
  169. <view class="renz hflex acenter jcenter">已认证</view>
  170. </view>
  171. <view class="offer_price">
  172. 报价:<span style="font-size: 36rpx;">¥{{pageData.offers[0].amount}}</span>
  173. </view>
  174. </view>
  175. <view class="hflex acenter jbetween offer_center">
  176. <view class="tele">联系电话:{{pageData.offers[0].user.phone}}</view>
  177. <image src="/static/images/common/tele.png" style="width: 32rpx; height: 32rpx;" @click="tele(pageData.offers[0].user.phone)"></image>
  178. </view>
  179. <view class="hflex acenter jend offer_bottom">
  180. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(pageData.offers[0].user.id)">查看详情</view>
  181. <view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(pageData.offers[0].user.id)">联系接单人</view>
  182. <view class="bottom_btn1 bottom_btn2 hflex acenter jcenter">提醒完成</view>
  183. </view>
  184. </view>
  185. </view>
  186. </view>
  187. </view>
  188. <view class="bottom hflex jend" v-if="pageData.status !== 3">
  189. <view class="btn1 hflex acenter jcenter" @click="cancel(pageData.id)">取消订单</view>
  190. <view class="btn1 btn2 hflex acenter jcenter" @click="edit(pageData.id)">编辑订单</view>
  191. </view>
  192. <u-popup :show="down_show" mode="center" @close="close">
  193. <view class="popu">
  194. <view class="popu_top hflex acenter jbetween">
  195. <view></view>
  196. <view class="popu_title">下载文件</view>
  197. <image src="/static/images/common/close_icon.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
  198. </view>
  199. <view class="file_bg hflex acenter">
  200. <image :src="pageData.items[index1].enclosure?pageData.items[index1].enclosure[index2].icon:''" class="file_icon"></image>
  201. <view class="file_name">{{pageData.items[index1].enclosure?pageData.items[index1].enclosure[index2].filename:''}}</view>
  202. </view>
  203. <view class="btn_group hflex acenter jbetween">
  204. <view class="left_btn hflex acenter jcenter" @click="copy(pageData.items[index1].enclosure?pageData.items[index1].enclosure[index2].fileurl:'')">复制链接</view>
  205. <view class="right_btn hflex acenter jcenter" @click="down(pageData.items[index1].enclosure?pageData.items[index1].enclosure[index2].fileurl:'')">下载文件</view>
  206. </view>
  207. <view class="hflex acenter jcenter text_blue" @click="see(pageData.items[index1].enclosure?pageData.items[index1].enclosure[index2].fileurl:'')">预览文件></view>
  208. </view>
  209. </u-popup>
  210. <u-popup :show="select_show" mode="center" @close="close" v-if="pageData.staus==1"></u-popup>
  211. </view>
  212. </template>
  213. <script>
  214. import $api from '@/static/js/api.js'
  215. var that = ''
  216. export default {
  217. data() {
  218. return {
  219. titleStyle: {
  220. fontSize: '36rpx',
  221. color: '#FFFFFF'
  222. },
  223. id: '',
  224. tab: '',
  225. pageData: {},
  226. show: false,
  227. down_show: false,
  228. index1: 0,
  229. index2: 0,
  230. select_show: false,
  231. }
  232. },
  233. onLoad(options) {
  234. that = this
  235. that.id = options.id
  236. that.tab = options.tab
  237. that.getData()
  238. },
  239. methods: {
  240. leftClick() {
  241. console.log('leftClick');
  242. },
  243. getData() {
  244. $api.req({
  245. url: '/data/api.business.Purchase/show',
  246. data: {
  247. tab: that.tab,
  248. id: that.id
  249. }
  250. }, function(res) {
  251. if(res.code == 1) {
  252. that.pageData = res.data
  253. }
  254. })
  255. },
  256. showOffer(index) {
  257. if(that.pageData.items[index].show) {
  258. that.$set(that.pageData.items[index],'show',false)
  259. } else {
  260. that.$set(that.pageData.items[index],'show',true)
  261. }
  262. },
  263. showOffer2() {
  264. that.show = !that.show
  265. },
  266. open(index1,index2) {
  267. that.index1 = index1
  268. that.index2 = index2
  269. that.down_show = true
  270. },
  271. close() {
  272. that.down_show = false
  273. that.select_show = false
  274. },
  275. select() {
  276. that.select_show = true
  277. },
  278. down(url) {
  279. uni.downloadFile({
  280. url: url, //仅为示例,并非真实的资源
  281. success (res) {
  282. // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
  283. if (res.statusCode === 200) {
  284. const filePath = res.tempFilePath
  285. uni.saveFile({
  286. tempFilePath: filePath,
  287. success: function(res) {
  288. console.log(res);
  289. that.close()
  290. that.see(res.savedFilePath)
  291. }
  292. })
  293. }
  294. }
  295. })
  296. },
  297. see(url) {
  298. uni.downloadFile({
  299. // 示例 url,并非真实存在
  300. url: url,
  301. showMenu: true,
  302. success: function (res) {
  303. const filePath = res.tempFilePath
  304. uni.openDocument({
  305. filePath: filePath,
  306. success: function (res) {
  307. console.log('打开文档成功')
  308. }
  309. })
  310. }
  311. })
  312. },
  313. copy(value) {
  314. uni.setClipboardData({
  315. data: value,
  316. success: function () {
  317. $api.info('复制成功')
  318. }
  319. });
  320. },
  321. tele(value) {
  322. uni.makePhoneCall({
  323. phoneNumber: value
  324. });
  325. },
  326. toDetail(id) {
  327. $api.jump('/pages/mine/service/purOrder/msg?id=' + that.id + '&userid=' + id + '&tab=' + that.tab)
  328. },
  329. match(id) {
  330. $api.req({
  331. url: '/data/api.business.Purchase/match',
  332. method: 'POST',
  333. data: {
  334. tab: that.tab,
  335. id: that.id,
  336. offer_id: id
  337. }
  338. }, function(res) {
  339. if(res.code == 1) {
  340. $api.info(res.info)
  341. that.getData()
  342. }
  343. })
  344. },
  345. cancel(id) {
  346. $api.req({
  347. url: '/data/api.business.Purchase/cancel',
  348. data: {
  349. tab:that.tab,
  350. id: id
  351. }
  352. }, function(res) {
  353. if(res.code == 1) {
  354. $api.info(res.info)
  355. that.getList()
  356. }
  357. })
  358. },
  359. edit(id) {
  360. var url = ''
  361. switch(that.tab) {
  362. case '1' :
  363. url = '/pages/release/purchase/purchase?id=' + id;
  364. break;
  365. case '2' :
  366. url = '/pages/release/production/production?id=' +id;
  367. break;
  368. case '3' :
  369. url = '/pages/release/waixie/waixie?id=' +id;
  370. break;
  371. case '4':
  372. url = '/pages/release/ocean/ocean?id=' +id;
  373. break;
  374. }
  375. $api.jump(url)
  376. },
  377. },
  378. }
  379. </script>
  380. <style lang="scss" scoped>
  381. .content {
  382. background: #F4F4F4;
  383. position: relative;
  384. .top {
  385. width: 100%;
  386. height: 520rpx;
  387. background: url('/static/images/common/top_bg.png') no-repeat;
  388. background-size: 100%;
  389. box-sizing: border-box;
  390. padding: 0 30rpx;
  391. .title {
  392. padding: 24rpx 0;
  393. font-size: 44rpx;
  394. font-weight: 500;
  395. color: #FFFFFF;
  396. line-height: 60rpx;
  397. }
  398. .top_down {
  399. padding: 0 16rpx;
  400. height: 52rpx;
  401. border-radius: 26rpx;
  402. border: 1rpx solid #FFFFFF;
  403. font-size: 24rpx;
  404. font-weight: 500;
  405. color: #FFFFFF;
  406. line-height: 34rpx;
  407. }
  408. }
  409. .center {
  410. position: absolute;
  411. left: 0;
  412. top: 196rpx;
  413. width: 100%;
  414. box-sizing: border-box;
  415. padding: 0 30rpx;
  416. .box {
  417. width: 100%;
  418. background: #FFFFFF;
  419. border-radius: 20px;
  420. box-sizing: border-box;
  421. padding: 0 20rpx 12rpx;
  422. margin-top: 20rpx;
  423. .title {
  424. font-size: 30rpx;
  425. font-weight: 500;
  426. color: #222222;
  427. line-height: 42rpx;
  428. padding: 28rpx 0;
  429. }
  430. .item_bg {
  431. width: 100%;
  432. background: #F4F4F4;
  433. border-radius: 16rpx;
  434. box-sizing: border-box;
  435. padding: 0 20rpx 13rpx;
  436. margin-bottom: 20rpx;
  437. .item_name {
  438. font-size: 30rpx;
  439. font-weight: 400;
  440. color: #222222;
  441. line-height: 42rpx;
  442. padding: 20rpx 0 14rpx;
  443. }
  444. .text_style1 {
  445. font-size: 24rpx;
  446. font-weight: 400;
  447. color: #888888;
  448. line-height: 34rpx;
  449. padding-bottom: 16rpx;
  450. }
  451. .price {
  452. font-size: 28rpx;
  453. font-weight: 400;
  454. color: #555555;
  455. line-height: 30rpx;
  456. }
  457. .item_btn {
  458. width: 160rpx;
  459. height: 52rpx;
  460. border-radius: 32rpx;
  461. border: 1rpx solid #979797;
  462. font-size: 26rpx;
  463. font-weight: 400;
  464. color: #222222;
  465. margin: 10rpx 0 24rpx;
  466. }
  467. .offer_bg {
  468. width: 100%;
  469. background: #FFFFFF;
  470. border-radius: 16rpx;
  471. width: 100%;
  472. box-sizing: border-box;
  473. padding: 20rpx;
  474. margin-bottom: 20rpx;
  475. .bg_left {
  476. font-size: 26rpx;
  477. font-weight: 500;
  478. color: #222222;
  479. line-height: 36rpx;
  480. }
  481. .top_text {
  482. font-size: 20rpx;
  483. font-weight: 400;
  484. color: #555555;
  485. line-height: 28rpx;
  486. }
  487. .offer-user {
  488. padding: 20rpx 0 16rpx;
  489. .offer_avatar {
  490. width: 72rpx;
  491. height: 72rpx;
  492. border-radius: 50%;
  493. }
  494. .user_name {
  495. font-size: 28rpx;
  496. font-weight: 400;
  497. color: #222222;
  498. line-height: 40rpx;
  499. padding: 0 16rpx;
  500. }
  501. .renz {
  502. height: 28rpx;
  503. background: #506DFF;
  504. border-radius: 14rpx;
  505. font-size: 16rpx;
  506. font-weight: 400;
  507. color: #FFFFFF;
  508. line-height: 22rpx;
  509. padding: 0 12rpx;
  510. }
  511. }
  512. .offer_price {
  513. font-size: 24rpx;
  514. font-weight: 400;
  515. color: #FF4646;
  516. line-height: 34rpx;
  517. }
  518. .offer_center {
  519. padding: 0 0 20rpx;
  520. border-bottom: 1rpx solid #F4F4F4;
  521. .tele {
  522. font-size: 22rpx;
  523. font-weight: 400;
  524. color: #666666;
  525. line-height: 32rpx;
  526. }
  527. }
  528. .offer_bottom {
  529. padding: 20rpx 0 0;
  530. .bottom_btn1 {
  531. margin-left: 20rpx;
  532. // width: 132rpx;
  533. height: 48rpx;
  534. border-radius: 26rpx;
  535. border: 1rpx solid #506DFF;
  536. font-size: 22rpx;
  537. font-weight: 400;
  538. color: #506DFF;
  539. line-height: 32rpx;
  540. padding: 0 22rpx;
  541. }
  542. .bottom_btn2 {
  543. background: #506DFF;
  544. color: #FFFFFF;
  545. }
  546. }
  547. }
  548. .enclo {
  549. padding: 20rpx 0;
  550. border-top: 1rpx solid #ECECEC;
  551. .enclo_name {
  552. font-size: 24rpx;
  553. font-weight: 400;
  554. color: #333333;
  555. line-height: 34rpx;
  556. }
  557. .enclo_down {
  558. padding: 12rpx 16rpx;
  559. border-radius: 22rpx;
  560. border: 1px solid #506DFF;
  561. font-size: 16rpx;
  562. font-weight: 400;
  563. color: #506DFF;
  564. line-height: 22rpx;
  565. }
  566. }
  567. }
  568. .img {
  569. width: 200rpx;
  570. height: 200rpx;
  571. border-radius: 16rpx;
  572. margin: 0 14rpx 20rpx 0;
  573. }
  574. .img:nth-child(3n+3) {
  575. margin: 0 0 20rpx 0;
  576. }
  577. .cell {
  578. margin: 0 0 24rpx;
  579. .left {
  580. font-size: 26rpx;
  581. font-weight: 400;
  582. color: #888888;
  583. line-height: 36rpx;
  584. }
  585. .right {
  586. font-size: 26rpx;
  587. font-family: PingFangSC-Regular, PingFang SC;
  588. font-weight: 400;
  589. color: #333333;
  590. line-height: 36rpx;
  591. }
  592. }
  593. .cell2 {
  594. padding: 20rpx 0;
  595. .bg_left {
  596. font-size: 26rpx;
  597. font-weight: 500;
  598. color: #222222;
  599. line-height: 36rpx;
  600. }
  601. .top_text {
  602. font-size: 20rpx;
  603. font-weight: 400;
  604. color: #555555;
  605. line-height: 28rpx;
  606. }
  607. }
  608. .box_bg {
  609. .offer_bg {
  610. width: 100%;
  611. background: #F4F4F4;
  612. border-radius: 16rpx;
  613. width: 100%;
  614. box-sizing: border-box;
  615. padding: 20rpx;
  616. margin-bottom: 20rpx;
  617. }
  618. .offer-user {
  619. padding: 20rpx 0 16rpx;
  620. .offer_avatar {
  621. width: 72rpx;
  622. height: 72rpx;
  623. border-radius: 50%;
  624. }
  625. .user_name {
  626. font-size: 28rpx;
  627. font-weight: 400;
  628. color: #222222;
  629. line-height: 40rpx;
  630. padding: 0 16rpx;
  631. }
  632. .renz {
  633. height: 28rpx;
  634. background: #506DFF;
  635. border-radius: 14rpx;
  636. font-size: 16rpx;
  637. font-weight: 400;
  638. color: #FFFFFF;
  639. line-height: 22rpx;
  640. padding: 0 12rpx;
  641. }
  642. }
  643. .offer_price {
  644. font-size: 24rpx;
  645. font-weight: 400;
  646. color: #FF4646;
  647. line-height: 34rpx;
  648. }
  649. .offer_center {
  650. padding: 0 0 20rpx;
  651. border-bottom: 1rpx solid #F4F4F4;
  652. .tele {
  653. font-size: 22rpx;
  654. font-weight: 400;
  655. color: #666666;
  656. line-height: 32rpx;
  657. }
  658. }
  659. .offer_bottom {
  660. padding: 20rpx 0 0;
  661. .bottom_btn1 {
  662. margin-left: 20rpx;
  663. // width: 132rpx;
  664. padding: 0 22rpx;
  665. height: 48rpx;
  666. border-radius: 26rpx;
  667. border: 1rpx solid #506DFF;
  668. font-size: 22rpx;
  669. font-weight: 400;
  670. color: #506DFF;
  671. line-height: 32rpx;
  672. }
  673. .bottom_btn2 {
  674. background: #506DFF;
  675. color: #FFFFFF;
  676. }
  677. }
  678. }
  679. }
  680. .box:nth-last-child(1) {
  681. margin-bottom: 186rpx;
  682. }
  683. }
  684. .bottom {
  685. width: 100%;
  686. height: 166rpx;
  687. background: #FFFFFF;
  688. position: fixed;
  689. bottom: 0;
  690. z-index: 99;
  691. box-sizing: border-box;
  692. padding: 12rpx 30rpx 0;
  693. .btn1 {
  694. width: 200rpx;
  695. height: 76rpx;
  696. border-radius: 42rpx;
  697. border: 1rpx solid #979797;
  698. font-size: 32rpx;
  699. font-weight: 400;
  700. color: #222222;
  701. line-height: 44rpx;
  702. margin-left: 40rpx;
  703. }
  704. .btn2 {
  705. border: 1px solid #506DFF;
  706. color: #506DFF;
  707. }
  708. }
  709. .popu {
  710. width: 630rpx;
  711. background: #FFFFFF;
  712. border-radius: 24rpx;
  713. margin: 0 auto;
  714. box-sizing: border-box;
  715. padding: 0 40rpx;
  716. .popu_top {
  717. padding: 32rpx 0 40rpx;
  718. .popu_title {
  719. font-size: 36rpx;
  720. font-weight: 500;
  721. color: #333333;
  722. line-height: 50rpx;
  723. }
  724. }
  725. .file_bg {
  726. width: 550rpx;
  727. height: 100rpx;
  728. background: #F4F4F4;
  729. border-radius: 16rpx;
  730. margin: 0 0 42rpx;
  731. }
  732. .file_icon {
  733. width: 48rpx;
  734. height: 60rpx;
  735. }
  736. .file_name {
  737. padding-left: 14rpx;
  738. font-size: 28rpx;
  739. font-weight: 400;
  740. color: #333333;
  741. line-height: 40rpx;
  742. }
  743. .btn_group {
  744. width: 100%;
  745. .left_btn {
  746. width: 260rpx;
  747. height: 76rpx;
  748. background: #ECEFFE;
  749. border-radius: 40rpx;
  750. font-size: 30rpx;
  751. font-weight: 500;
  752. color: #506DFF;
  753. line-height: 42rpx;
  754. }
  755. .right_btn {
  756. width: 260rpx;
  757. height: 76rpx;
  758. background: #506DFF;
  759. border-radius: 40rpx;
  760. font-size: 30rpx;
  761. font-weight: 500;
  762. color: #FFFFFF;
  763. line-height: 42rpx;
  764. }
  765. }
  766. .text_blue {
  767. font-size: 30rpx;
  768. font-weight: 400;
  769. color: #506DFF;
  770. line-height: 42rpx;
  771. padding: 28rpx 0 46rpx;
  772. }
  773. }
  774. }
  775. </style>