detail.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801
  1. <template>
  2. <view class="content">
  3. <view class="box" v-if="pageData.tab == 1">
  4. <order-top :merchant="pageData.merchant" :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="amount"></order-top>
  5. </view>
  6. <view class="box" v-if="pageData.tab != 1">
  7. <order-top :merchant="pageData.merchant" :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="pageData.user_order.amount"></order-top>
  8. </view>
  9. <view class="box" style="margin-bottom: 186rpx;">
  10. <view class="box1">
  11. <view class="title">商品明细</view>
  12. <view class="list">
  13. <block v-for="(item,index) in pageData.items" :key="index">
  14. <view class="list_item">
  15. <view class="item_title">{{item.name}}</view>
  16. <view class="hflex acenter item_cell" v-if="pageData.tab!==4">
  17. <view class="item_text" v-if="item.spec">规格:{{item.spec}}</view>
  18. <view class="item_text" v-if="item.number">数量:{{item.number}}</view>
  19. </view>
  20. <view class="hflex acenter item_cell" v-if="pageData.tab==4">
  21. <view class="item_text" v-if="item.weight">数量/吨位:{{item.weight}}</view>
  22. </view>
  23. <view class="hflex acenter item_cell" v-if="item.price">
  24. <view class="item_text">原采购价:<span class="price">¥{{item.price}}</span></view>
  25. </view>
  26. <view class="hflex acenter item_cell" v-if="item.standard">
  27. <view class="item_text">质量标准:{{item.standard}}</view>
  28. </view>
  29. <view class="vflex" style="margin-top: 20rpx;" v-if="item.enclosure">
  30. <view v-for="(item2,index2) in item.enclosure" :key="index2" class="hflex acenter jbetween">
  31. <view class="hflex acenter">
  32. <image :src="item2.icon" class="item_img"></image>
  33. <view class="text_style1">{{item2.filename}}</view>
  34. </view>
  35. <view class="hflex acenter jcenter item_btn" @click="open(index,index2)">
  36. <u-icon name="download" color="#506DFF" size="10"></u-icon>
  37. <view>下载附件</view>
  38. </view>
  39. </view>
  40. </view>
  41. </view>
  42. <view class="hflex acenter jbetween offer" v-if="item.status == 1 && pageData.tab == 1">
  43. <view class="hflex acenter">
  44. <view class="offer_title">订单报价:</view>
  45. <view class="offer_text2">未接单</view>
  46. </view>
  47. <view class="offer_btn" v-if="!item.user_order && item.status == 1" @click="receiv(index)">立即接单</view>
  48. </view>
  49. <view class="hflex acenter jbetween offer" v-if="pageData.tab == 1 && item.status == 2">
  50. <view class="hflex acenter">
  51. <view class="offer_title">订单报价:</view>
  52. <view class="offer_text" v-if="item.user_order.amount">{{item.user_order.amount}}</view>
  53. <view class="offer_text2" v-else>暂未报价</view>
  54. </view>
  55. <view class="hflex acenter">
  56. <view class="offer_btn" v-if="item.user_order.amount" @click="toOffer(index)">查看详情</view>
  57. <view class="offer_btn" v-else-if="!item.user_order.amount" @click="toOffer(index)">立即报价</view>
  58. </view>
  59. </view>
  60. <view class="hflex acenter jbetween offer" v-if="item.status == 3 && pageData.tab == 1 && item.offer_id == item.user_order.id">
  61. <view class="hflex acenter">
  62. <view class="offer_title">订单报价:</view>
  63. <view class="offer_text2" style="color: #999999;" v-if="item.offer_id != item.user_order.id">不可报价</view>
  64. <view class="offer_text2" v-if="item.offer_id == item.user_order.id">{{item.user_order.amount}}</view>
  65. </view>
  66. <view class="hflex acenter">
  67. <view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="toOffer(index)">查看详情</view>
  68. <view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载订单</view>
  69. </view>
  70. </view>
  71. <view class="hflex acenter jbetween offer" v-if="item.offer_id != item.user_order.id && pageData.tab == 1 && item.user_order &&item.status == 3">
  72. <view class="hflex acenter">
  73. <view class="offer_title">订单报价:</view>
  74. <view class="offer_text" v-if="item.user_order.amount">{{item.user_order.amount}}</view>
  75. <view class="offer_text2" v-else>暂未报价</view>
  76. </view>
  77. <view class="hflex acenter">
  78. <view class="offer_btn" @click="toOffer(index)">查看详情</view>
  79. <view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
  80. </view>
  81. </view>
  82. <view class="hflex acenter jbetween offer" v-if="item.status == 3 && pageData.tab == 1 && !item.user_order">
  83. <view class="hflex acenter">
  84. <view class="offer_title">订单报价:</view>
  85. <view class="offer_text" v-if="item.user_order">{{item.user_order.amount}}</view>
  86. <view class="offer_text2" v-else>暂未报价</view>
  87. </view>
  88. <view class="hflex acenter">
  89. <view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
  90. </view>
  91. <!-- <view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
  92. <view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载订单</view>
  93. </view>
  94. </view>
  95. <!-- <view class="hflex acenter jend offer" v-if="!item.user_order && item.status==3">
  96. <view class="offer_btn" v-if="item.status==3" @click="open(index,-1)">下载订单</view>
  97. </view> -->
  98. </view>
  99. </block>
  100. </view>
  101. <view class="text_style1 cell" v-if="pageData.standard_tech"><span class="label">生产技术标准:</span>{{pageData.standard_tech}}</view>
  102. <view class="text_style1 cell" v-if="pageData.standard_check"><span class="label">生产验收标准:</span>{{pageData.standard_check}}</view>
  103. <view class="hflex acenter jbetween offer" v-if="pageData.tab !== 1">
  104. <view class="hflex acenter">
  105. <view class="offer_title">订单报价:</view>
  106. <view class="offer_text" v-if="pageData.user_order.amount">{{pageData.user_order.amount}}</view>
  107. <view class="offer_text2" v-else>暂未报价</view>
  108. </view>
  109. <view class="offer_btn" v-if="pageData.user_order.amount || pageData.offer_id == pageData.user_order.id" @click="toOffer(-1)">查看详情</view>
  110. <view class="offer_btn offer_btn1" v-else-if="pageData.status == 3 && pageData.offer_id != pageData.user_order.id" @click="toOffer(-1)">查看详情</view>
  111. <view class="offer_btn offer_btn1" v-else-if="pageData.status == 3 && !pageData.user_order.amount">已匹配</view>
  112. <view class="offer_btn" v-else-if="!pageData.user_order.amount" @click="toOffer(-1)">立即报价</view>
  113. </view>
  114. <view class="text_style2" v-if="pageData.post_address">交货地址:{{pageData.post_address}}</view>
  115. <view class="text_style2" v-if="pageData.post_time">交货日期:{{pageData.post_time}}</view>
  116. <view class="text_style2" v-if="pageData.tab !== 4">发布日期:{{pageData.create_time}}</view>
  117. <view class="text_style2" v-if="pageData.form">包装形式:{{pageData.form}}</view>
  118. <view class="text_style2" v-if="pageData.wharf_to">装货码头:{{pageData.wharf_to}}</view>
  119. <view class="text_style2" v-if="pageData.wharf_for">到港码头:{{pageData.wharf_for}}</view>
  120. </view>
  121. <view class="box1">
  122. <view class="title">订单信息</view>
  123. <view class="text_style2">订单编号:{{pageData.order_no}} <span style="color: #506DFF" @click="copy(pageData.order_no)">| 复制</span></view>
  124. <view class="text_style2">下单时间:{{pageData.create_time}}</view>
  125. </view>
  126. </view>
  127. <view v-if="pageData.type == 2">
  128. <view class="bottom" v-if="pageData.status != 3||pageData.tab == 1">
  129. <view class="btn" @click="chat">查看回复</view>
  130. </view>
  131. </view>
  132. <view class="" v-if="pageData.type == 2">
  133. <view class="bottom hflex acenter jbetween" v-if="pageData.tab != 1 && pageData.status == 3">
  134. <view class="left_btn hflex acenter jcenter" @click="open(index1,-1)">
  135. <image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
  136. <view>下载订单</view>
  137. </view>
  138. <view class="right_btn hflex acenter jcenter" @click="chat">查看回复</view>
  139. </view>
  140. </view>
  141. <view v-else>
  142. <view class="bottom hflex acenter jbetween" v-if="pageData.tab != 1 && pageData.status == 3">
  143. <view class="left_btn hflex acenter jcenter" style="width: 100%;" @click="open(index1,-1)">
  144. <image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
  145. <view>下载订单</view>
  146. </view>
  147. </view>
  148. </view>
  149. <u-popup :show="show" mode="center" @close="close">
  150. <view class="popu">
  151. <view class="popu_top hflex acenter jbetween">
  152. <view></view>
  153. <view class="popu_title">下载订单</view>
  154. <image src="https://ship.shipcc.cn/common/close.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
  155. </view>
  156. <view class="file_bg hflex acenter" v-if="index2 != -1">
  157. <image :src="pageData.items[index1].enclosure[index2].icon" class="file_icon"></image>
  158. <view class="file_name text_hide" style="max-width: 400rpx;">{{pageData.items[index1].enclosure[index2].filename}}</view>
  159. </view>
  160. <view class="file_bg hflex acenter" v-else>
  161. <view class="file_name text_hide">{{pageData.down_word?pageData.down_word:pageData.items[index1].down_word}}</view>
  162. </view>
  163. <view class="btn_group hflex acenter jcenter" v-if="index2 != -1">
  164. <view class="left_btn hflex acenter jcenter" @click="copy(pageData.items[index1].enclosure[index2].fileurl)">复制链接</view>
  165. <!-- <view class="right_btn hflex acenter jcenter" @click="see(pageData.items[index1].enclosure[index2].fileurl)">预览文件</view> -->
  166. </view>
  167. <view class="btn_group hflex acenter jcenter" v-else>
  168. <view class="left_btn hflex acenter jcenter" @click="copy(pageData.down_word?pageData.down_word:pageData.items[index1].down_word)">复制链接</view>
  169. <!-- <view class="right_btn hflex acenter jcenter" @click="see(pageData.down_word?pageData.down_word:pageData.items[index1].down_word)">预览文件</view> -->
  170. </view>
  171. <!-- <view class="hflex acenter jcenter text_blue" @click="see(pageData.items[index1].enclosure[index2].fileurl)">预览文件></view> -->
  172. </view>
  173. </u-popup>
  174. <u-popup :show="receiv_show" mode="center" :round="10" :closeable="true" :safeAreaInsetBottom="false" @close="close">
  175. <view class="popup">
  176. <view class="popup_title">填写报价信息</view>
  177. <view class="input_bg hflex acenter">
  178. <view class="price">¥</view>
  179. <u-input v-model="offer" placeholder="填写你的报价" border="none"></u-input>
  180. </view>
  181. <view class="hflex acenter">
  182. <image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
  183. <view class="popup_info">报价可先不填,可等评估后再填写</view>
  184. </view>
  185. <view class="input_bg hflex acenter" v-if="tab == 2 || tab == 3">
  186. <view class="price">报价说明</view>
  187. <u-input v-model="description" placeholder="例如:税前/税后" border="none"></u-input>
  188. </view>
  189. <view class="input_bg hflex acenter" v-else>
  190. <view class="price">货期</view>
  191. <u-input v-model="lead_time" placeholder="例如: 1个月" border="none"></u-input>
  192. </view>
  193. <view class="input_bg" v-if="tab == 0 || tab == 1">
  194. <view class="price">产品介绍以及报价说明</view>
  195. <u--textarea v-model="description" placeholder="例如:税前/税后" border="none"></u--textarea>
  196. </view>
  197. <view class="hflex acenter jbetween" v-if="tab == 0">
  198. <view class="price">是否现货</view>
  199. <u-switch v-model="is_stock" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
  200. </view>
  201. <view class="hflex acenter" style="padding-bottom: 20rpx;">
  202. <view class="price">上传图片及资质证明图片</view>
  203. <image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
  204. <view class="popup_info">最多上传9张图片</view>
  205. </view>
  206. <u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9"></u-upload>
  207. <view class="popup_btn" @click="receiving">立即接单</view>
  208. <view class="price">友情提醒:</view>
  209. <view class="popup_info">请认真核算报价,报价后不可修改和删除,报价时间约需x天内报价,逾期影响信用等级。</view>
  210. </view>
  211. </u-popup>
  212. </view>
  213. </template>
  214. <script>
  215. import $api from '@/static/js/api.js'
  216. var that = ''
  217. export default {
  218. data() {
  219. return {
  220. id: '',
  221. id2: '',
  222. user_id: '',
  223. tab: '',
  224. pageData: {},
  225. index1: 0,
  226. index2: 0,
  227. show: false,
  228. amount: '',
  229. quotation_show: false,
  230. receiv_show: false,
  231. offer: '',
  232. lead_time: '',
  233. description: '',
  234. is_stock: false,
  235. fileList1: [],
  236. }
  237. },
  238. onLoad(options) {
  239. that = this
  240. that.user_id = uni.getStorageSync('id')
  241. that.id = options.id
  242. that.tab = options.tab
  243. that.getData()
  244. },
  245. methods: {
  246. getData() {
  247. var url = ""
  248. switch(that.tab) {
  249. case '1':
  250. url = '/data/api.auth.Purchase/show';
  251. break;
  252. case '2':
  253. url = '/data/api.auth.Purchase/production_show';
  254. break;
  255. case '3':
  256. url = '/data/api.auth.Purchase/coor_show';
  257. break;
  258. case '4':
  259. url = '/data/api.auth.Purchase/ocean_show';
  260. break;
  261. }
  262. $api.req({
  263. url: url,
  264. data: {
  265. id: that.id
  266. }
  267. }, function(res) {
  268. if(res.code == 1) {
  269. that.pageData = res.data
  270. if(that.tab == '1') {
  271. for(var i=0;i<that.pageData.items.length;i++) {
  272. if(that.pageData.items[i].user_order) {
  273. if(that.pageData.items[i].user_order.amount) {
  274. that.amount = that.pageData.items[i].user_order.amount
  275. }
  276. }
  277. }
  278. }
  279. }
  280. })
  281. },
  282. copy(value) {
  283. uni.setClipboardData({
  284. data: value,
  285. success: function () {
  286. $api.info('复制成功')
  287. }
  288. });
  289. },
  290. toOffer(index) {
  291. $api.jump('/page_shop/pages/order/offer?id=' + that.id + '&tab=' + that.tab + '&index=' + index)
  292. },
  293. receiv(index) {
  294. that.id2 = that.pageData.items[index].id
  295. that.receiv_show = true
  296. },
  297. chat() {
  298. $api.jump('/page_shop/pages/order/chat3?id=' + that.id + '&tab=' + that.tab)
  299. },
  300. open(index1,index2) {
  301. that.index1 = index1
  302. that.index2 = index2
  303. that.show = true
  304. },
  305. close() {
  306. that.show = false
  307. that.receiv_show = false
  308. },
  309. down(url) {
  310. wx.downloadFile({
  311. url: url, //仅为示例,并非真实的资源
  312. success (res) {
  313. // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
  314. if (res.statusCode === 200) {
  315. const filePath = res.tempFilePath
  316. uni.saveFile({
  317. tempFilePath: filePath,
  318. success: function(res) {
  319. console.log(res);
  320. that.close()
  321. that.see(res.savedFilePath)
  322. }
  323. })
  324. }
  325. }
  326. })
  327. },
  328. see(url) {
  329. uni.downloadFile({
  330. // 示例 url,并非真实存在
  331. url: url,
  332. success: function (res) {
  333. const filePath = res.tempFilePath
  334. uni.openDocument({
  335. filePath: filePath,
  336. success: function (res) {
  337. console.log('打开文档成功')
  338. }
  339. })
  340. }
  341. })
  342. },
  343. // 是否现货
  344. change(e) {
  345. console.log(e);
  346. that.is_stock = e
  347. },
  348. // 删除图片
  349. deletePic(event) {
  350. this[`fileList${event.name}`].splice(event.index, 1)
  351. },
  352. // 新增图片
  353. async afterRead(event) {
  354. uni.showLoading({
  355. title: '上传中',
  356. mask: true
  357. })
  358. let lists = [].concat(event.file)
  359. let fileListLen = this[`fileList${event.name}`].length
  360. lists.map((item) => {
  361. this[`fileList${event.name}`].push({
  362. ...item,
  363. // status: 'uploading',
  364. // message: '上传中'
  365. })
  366. })
  367. for (let i = 0; i < lists.length; i++) {
  368. const result = await this.uploadFilePromise(lists[i].url)
  369. let item = this[`fileList${event.name}`][fileListLen]
  370. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  371. // status: 'success',
  372. // message: '',
  373. type: result.type,
  374. url: result.url
  375. }))
  376. fileListLen++
  377. if(lists.length - 1 == i) {
  378. uni.hideLoading()
  379. }
  380. }
  381. },
  382. uploadFilePromise(url) {
  383. return new Promise((resolve, reject) => {
  384. let a = uni.uploadFile({
  385. url: $api.config.baseUrl + '/data/api.auth.Center/upload',
  386. filePath: url,
  387. name: 'file',
  388. header: {
  389. 'content-type': 'application/x-www-form-urlencoded',
  390. 'api-token': uni.getStorageSync('token').token?uni.getStorageSync('token').token:'',
  391. 'api-name': 'wxapp'
  392. },
  393. // formData: {
  394. // user: 'test'
  395. // },
  396. success: (res) => {
  397. setTimeout(() => {
  398. var data = JSON.parse(res.data)
  399. console.log('data:',data);
  400. var type = data.data.key.split('.')
  401. if(type[1] == 'mp4') {
  402. that.$set(data.data,'type','video')
  403. } else {
  404. that.$set(data.data,'type','image')
  405. }
  406. resolve(data.data)
  407. }, 1000)
  408. }
  409. });
  410. })
  411. },
  412. receiving() {
  413. var imgsList = []
  414. for(var i=0;i<that.fileList1.length;i++) {
  415. imgsList.push(that.fileList1[i].url)
  416. }
  417. var url = ""
  418. var data = ""
  419. if(that.description == "") {
  420. $api.info('请填写报价说明')
  421. return
  422. }
  423. if(imgsList == "") {
  424. $api.info('请上传图片资质')
  425. return
  426. }
  427. switch(that.pageData.tab) {
  428. case 1:
  429. url = '/data/api.auth.Purchase/purchase_create';
  430. data = {
  431. id: that.id2,
  432. amount: that.offer,
  433. date: that.lead_time,
  434. desc: that.description,
  435. is_have: that.is_stock?1:0,
  436. images: imgsList,
  437. };
  438. break;
  439. case 2:
  440. url = '/data/api.auth.Purchase/production_create';
  441. data = {
  442. id: that.id2,
  443. amount: that.offer,
  444. date: that.lead_time,
  445. desc: that.description,
  446. images: imgsList,
  447. };
  448. break;
  449. case 3:
  450. url = '/data/api.auth.Purchase/coor_create';
  451. data = {
  452. id: that.id2,
  453. amount: that.offer,
  454. desc: that.description,
  455. images: imgsList,
  456. };
  457. break;
  458. case 4:
  459. url = '/data/api.auth.Purchase/ocean_create';
  460. data = {
  461. id: that.id2,
  462. amount: that.offer,
  463. desc: that.description,
  464. images: imgsList,
  465. };
  466. break;
  467. }
  468. $api.req({
  469. url: url,
  470. method: 'POST',
  471. data: data
  472. }, function(res) {
  473. if(res.code == 1) {
  474. $api.info(res.info)
  475. that.close()
  476. that.getData()
  477. }
  478. })
  479. },
  480. },
  481. }
  482. </script>
  483. <style lang="scss" scoped>
  484. .content {
  485. background-color: #F4F4F4;
  486. // padding: 0 30rpx;
  487. .box {
  488. width: 100%;
  489. box-sizing: border-box;
  490. padding: 0 30rpx;
  491. margin: 20rpx 0 0;
  492. .box1 {
  493. width: 100%;
  494. background: #FFFFFF;
  495. border-radius: 24rpx;
  496. box-sizing: border-box;
  497. padding: 24rpx 20rpx;
  498. margin-bottom: 20rpx;
  499. .title {
  500. font-size: 30rpx;
  501. font-weight: 500;
  502. color: #222222;
  503. }
  504. .list {
  505. .list_item {
  506. width: 100%;
  507. background: #F4F4F4;
  508. border-radius: 16rpx;
  509. box-sizing: border-box;
  510. padding: 20rpx;
  511. margin: 24rpx 0 20rpx;
  512. .item_title {
  513. font-size: 28rpx;
  514. font-weight: 400;
  515. color: #222222;
  516. }
  517. .item_cell {
  518. width: 100%;
  519. padding: 22rpx 0;
  520. border-bottom: 1rpx solid #ECECEC;
  521. .item_text {
  522. font-size: 24rpx;
  523. margin-right: 50rpx;
  524. font-weight: 400;
  525. color: #888888;
  526. }
  527. .price {
  528. font-size: 28rpx;
  529. font-weight: 400;
  530. color: #555555;
  531. line-height: 30rpx;
  532. }
  533. }
  534. .item_img {
  535. width: 36rpx;
  536. height: 44rpx;
  537. margin-right: 8rpx;
  538. }
  539. .text_style1 {
  540. font-size: 24rpx;
  541. font-weight: 400;
  542. color: #333333;
  543. }
  544. .item_btn {
  545. width: 120rpx;
  546. height: 44rpx;
  547. border-radius: 22rpx;
  548. border: 1px solid #506DFF;
  549. padding: 0 8rpx;
  550. box-sizing: border-box;
  551. font-size: 16rpx;
  552. font-weight: 400;
  553. color: #506DFF;
  554. }
  555. }
  556. }
  557. .text_style1 {
  558. font-size: 26rpx;
  559. font-weight: 400;
  560. color: #999999;
  561. }
  562. .cell {
  563. padding: 0 0 24rpx;
  564. }
  565. .label {
  566. color: #444444;
  567. }
  568. .offer {
  569. width: 100%;
  570. height: 72rpx;
  571. background: #EAF4FF;
  572. border-radius: 16rpx;
  573. box-sizing: border-box;
  574. padding: 0 20rpx;
  575. .offer_title {
  576. font-size: 24rpx;
  577. font-weight: 400;
  578. color: #506DFF;
  579. }
  580. .offer_text {
  581. font-size: 32rpx;
  582. font-weight: 400;
  583. color: #222222;
  584. }
  585. .offer_text2 {
  586. font-size: 26rpx;
  587. font-weight: 400;
  588. color: #FF3434;
  589. }
  590. .offer_btn {
  591. width: 124rpx;
  592. height: 44rpx;
  593. background: #EAF4FF;
  594. border-radius: 22rpx;
  595. border: 1rpx solid #506DFF;
  596. font-size: 22rpx;
  597. font-weight: 400;
  598. color: #506DFF;
  599. text-align: center;
  600. line-height: 44rpx;
  601. margin-left: 10rpx;
  602. }
  603. .offer_btn1 {
  604. border: 1rpx solid #777777;
  605. color: #222222;
  606. }
  607. }
  608. .text_style2 {
  609. font-size: 26rpx;
  610. font-weight: 400;
  611. color: #444444;
  612. margin: 12rpx 0;
  613. }
  614. }
  615. }
  616. .bottom {
  617. position: fixed;
  618. bottom: 0;
  619. width: 100%;
  620. height: 166rpx;
  621. background: #FFFFFF;
  622. box-sizing: border-box;
  623. padding: 0 30rpx;
  624. .btn {
  625. margin: 10rpx auto;
  626. width: 690rpx;
  627. height: 88rpx;
  628. background: #506DFF;
  629. border-radius: 44rpx;
  630. text-align: center;
  631. line-height: 88rpx;
  632. font-size: 36rpx;
  633. font-weight: 500;
  634. color: #FFFFFF;
  635. }
  636. .left_btn {
  637. width: 350rpx;
  638. height: 88rpx;
  639. background: #ECEFFE;
  640. border-radius: 44rpx;
  641. font-size: 36rpx;
  642. font-weight: 500;
  643. color: #506DFF;
  644. line-height: 50rpx;
  645. }
  646. .right_btn {
  647. width: 370rpx;
  648. height: 88rpx;
  649. background: #506DFF;
  650. border-radius: 44rpx;
  651. font-size: 36rpx;
  652. font-weight: 500;
  653. color: #FFFFFF;
  654. line-height: 50rpx;
  655. }
  656. }
  657. .popu {
  658. width: 630rpx;
  659. background: #FFFFFF;
  660. border-radius: 24rpx;
  661. margin: 0 auto;
  662. box-sizing: border-box;
  663. padding: 0 40rpx;
  664. .popu_top {
  665. padding: 32rpx 0 40rpx;
  666. .popu_title {
  667. font-size: 36rpx;
  668. font-weight: 500;
  669. color: #333333;
  670. line-height: 50rpx;
  671. }
  672. }
  673. .file_bg {
  674. width: 550rpx;
  675. height: 100rpx;
  676. background: #F4F4F4;
  677. border-radius: 16rpx;
  678. margin: 0 0 42rpx;
  679. }
  680. .file_icon {
  681. width: 48rpx;
  682. height: 60rpx;
  683. }
  684. .file_name {
  685. padding-left: 14rpx;
  686. font-size: 28rpx;
  687. font-weight: 400;
  688. color: #333333;
  689. line-height: 40rpx;
  690. }
  691. .btn_group {
  692. width: 100%;
  693. padding: 30rpx 0;
  694. .left_btn {
  695. width: 260rpx;
  696. height: 76rpx;
  697. background: #ECEFFE;
  698. border-radius: 40rpx;
  699. font-size: 30rpx;
  700. font-weight: 500;
  701. color: #506DFF;
  702. line-height: 42rpx;
  703. }
  704. .right_btn {
  705. width: 260rpx;
  706. height: 76rpx;
  707. background: #506DFF;
  708. border-radius: 40rpx;
  709. font-size: 30rpx;
  710. font-weight: 500;
  711. color: #FFFFFF;
  712. line-height: 42rpx;
  713. }
  714. }
  715. .text_blue {
  716. font-size: 30rpx;
  717. font-weight: 400;
  718. color: #506DFF;
  719. line-height: 42rpx;
  720. padding: 28rpx 0 46rpx;
  721. }
  722. }
  723. .popup {
  724. width: 670rpx;
  725. background: #FFFFFF;
  726. border-radius: 10px;
  727. box-sizing: border-box;
  728. padding: 36rpx 30rpx 24rpx;
  729. .popup_title {
  730. width: 100%;
  731. text-align: center;
  732. font-size: 32rpx;
  733. font-weight: 500;
  734. color: #222222;
  735. margin-bottom: 24rpx;
  736. }
  737. .popup_name {
  738. font-size: 26rpx;
  739. font-weight: 400;
  740. color: #222222;
  741. padding: 28rpx 0 20rpx;
  742. }
  743. .popup_text {
  744. font-size: 22rpx;
  745. font-weight: 500;
  746. color: #777777;
  747. padding-right: 60rpx;
  748. }
  749. .input_bg {
  750. background: #F4F4F4;
  751. border-radius: 8px;
  752. box-sizing: border-box;
  753. padding: 16rpx 20rpx;
  754. margin: 20rpx 0;
  755. .price {
  756. font-size: 32rpx;
  757. font-weight: 500;
  758. color: #222222;
  759. padding-right: 20rpx;
  760. }
  761. .u-textarea {
  762. background-color: #F4F4F4 !important;
  763. }
  764. .red {
  765. font-size: 28rpx;
  766. font-weight: bold;
  767. color: #FF3636;
  768. }
  769. }
  770. .popup_info {
  771. font-size: 20rpx;
  772. font-weight: 400;
  773. color: #C0C0C0;
  774. line-height: 28rpx;
  775. }
  776. .popup_btn {
  777. width: 610rpx;
  778. height: 80rpx;
  779. background: #506DFF;
  780. border-radius: 40rpx;
  781. font-size: 32rpx;
  782. font-weight: 500;
  783. color: #FFFFFF;
  784. text-align: center;
  785. line-height: 80rpx;
  786. margin: 20rpx 0;
  787. }
  788. }
  789. }
  790. </style>