index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. <template>
  2. <view>
  3. <view class="padding">
  4. <view style="width: 690rpx; height: 200rpx; background: #fff; border-radius: 16rpx; padding: 30rpx;">
  5. <view class="list_box">
  6. <view class="box_left">当前余额</view>
  7. <view @click="goNav('/my/wallet/moneydetail')">
  8. 钱包明细
  9. <u-icon style="margin-left: 15rpx;" name="arrow-right"></u-icon>
  10. </view>
  11. </view>
  12. <view class="pri" style="padding-top: 25rpx;"><text style="font-size: 60rpx;color: #fe6b01; font-weight: bold;">¥{{money}}</text></view>
  13. <!-- <view class="margin-top-sm">累计充值:{{accumulateMoney?accumulateMoney:'0'}}元</view> -->
  14. </view>
  15. <view class="flex align-center justify-between padding-top">
  16. <view>
  17. <!-- <view class="padding-bottom-xs">可提现金额(元)</view>
  18. <view class="text-bold" style="font-size: 48rpx;">{{balance}}</view> -->
  19. </view>
  20. </view>
  21. <view class="list-box-item">
  22. <view class="title">
  23. 选择充值金额
  24. </view>
  25. <view>
  26. <!-- <view class="flex justify-between radius bg ">
  27. <view class=" u-flex u-p-l-30 u-p-t-30 u-p-b-30">
  28. <view class="u-m-r-20">
  29. <u-avatar :src="avatar" size="80"></u-avatar>
  30. </view>
  31. <view class="u-flex-1 ">
  32. <view class="u-font-16 text-bold">{{money}}元</view>
  33. <view class="u-font-14 u-m-t-10">可用于平台消费</view>
  34. </view>
  35. </view>
  36. <view class="margin-right margin-top-sm" @click="goNav('/my/wallet/moneydetail')">钱包明细
  37. </view>
  38. </view> -->
  39. <view class=" radius bg flex justify-between flex-wrap" style="padding-top: 20rpx;text-align: center;">
  40. <view v-for="(item,index) in wallet" :key='index'
  41. class="flex justify-between align-center padding-sm radius margin-top"
  42. style=" width: 46%;border: 1px solid #ccc;"
  43. @click="active(item,index)" :class="wallIndex===index?'active':''">
  44. <view style="text-align: center;width: 100%;">
  45. <view style="font-size: 40rpx; font-weight: bold;width: 100%;text-align: center;line-height: 80rpx;">
  46. ¥{{item.money}}
  47. </view>
  48. <view class="" style="font-size: 24rpx; color: #fe6b01;" v-if="item.tbCoupon">
  49. 赠送{{item.couponNum}}张{{item.tbCoupon.money}}元优惠劵
  50. </view>
  51. </view>
  52. </view>
  53. </view>
  54. <!-- <view class="margin-top" style="width: 100%;padding-left: 40rpx;">
  55. 充值后仅可用于消费,不支持退款。
  56. </view> -->
  57. <view class="bg margin-top radius">
  58. <view class="title">
  59. 自定义金额
  60. </view>
  61. <view class="flex" style="margin: 20rpx 0; padding: 20rpx;border-radius: 11rpx; border: 1px #ccc solid;">
  62. <view style="font-size: 28rpx; line-height: 46rpx;">
  63. ¥
  64. </view> <input class="uni-input" v-model="price" @input="handlePriceInput" style="margin-left: 15rpx;" placeholder="输入充值金额" />
  65. </view>
  66. <!-- <view>
  67. <view style="display: flex;height: 100upx;align-items: center;padding: 20upx 0;"
  68. v-for="(item,index) in openLists" :key='index'>
  69. <image :src="item.image" style="width: 55upx;height: 55upx;border-radius: 50upx;"></image>
  70. <view style="font-size: 30upx;margin-left: 20upx;width: 70%;">{{item.text}}
  71. </view>
  72. <radio-group name="openWay" style="margin-left: 20upx;" @tap='selectWay(item)'>
  73. <label class="tui-radio">
  74. <radio color="#0278FE" :checked="openWay === item.id ? true : false" />
  75. </label>
  76. </radio-group>
  77. </view>
  78. </view> -->
  79. </view>
  80. <!-- <view class="btn" @click="pay">确认支付</view> -->
  81. </view>
  82. <!-- <view class="flex align-center"> -->
  83. <!-- <view class="tx" @click="gotx()">提现</view> -->
  84. <!-- gocz() -->
  85. <view style="display: flex; height: 90rpx; justify-content: space-between; margin-top: 20rpx;">
  86. <view>
  87. <view class="">
  88. 实际支付
  89. </view>
  90. <view style="color: #fe6b01; font-size: 42rpx; margin-top: 10rpx;">
  91. ¥ {{ price }}
  92. </view>
  93. </view>
  94. <view class="cz" style="margin-top: 20rpx;" @click="pay">一键充值</view>
  95. </view>
  96. </view>
  97. <!-- </view> -->
  98. </view>
  99. <view class="list-box-item2">
  100. <view class="title">
  101. 选择支付方式
  102. </view>
  103. <view>
  104. <view style="display: flex;height: 100upx;align-items: center;padding: 20upx;margin: 20rpx 0; border: 1rpx #ccc solid; border-radius: 11rpx;"
  105. v-for="(item,index) in openLists" :key='index'>
  106. <image :src="item.image" style="width: 55upx;height: 55upx;border-radius: 50upx;"></image>
  107. <view style="font-size: 30upx;margin-left: 20upx;width: 70%;">{{item.text}}
  108. </view>
  109. <radio-group name="openWay" style="margin-left: 20upx;" @tap='selectWay(item)'>
  110. <label class="tui-radio">
  111. <radio color="#0278FE" :checked="openWay === item.id ? true : false" />
  112. </label>
  113. </radio-group>
  114. </view>
  115. </view>
  116. </view>
  117. <view class="list-box-item2" style="margin-top: 30rpx;">
  118. <view class="list_box">
  119. <view class="box_left">充值记录</view>
  120. <view @click="goNav('/my/wallet/moneydetailadd')" style="font-size: 24rpx;">
  121. 查看全部
  122. </view>
  123. </view>
  124. <scroll-view :scroll-top="scrollTop" scroll-y="true" @scrolltoupper="upper"
  125. @scrolltolower="lower" @scroll="scroll">
  126. <view v-for="(item,index) in moeylist.slice(0, 3)" :key="index">
  127. <view class="flex align-center justify-between" style="padding: 30rpx 0; border-bottom: #ccc solid 1rpx;">
  128. <view>
  129. <view class="text-bold" style="color: #333333;font-size: 32rpx;font-weight: 500;color: #fe6b01;">
  130. 充值¥{{item.money}}
  131. </view>
  132. <view class="text-sm margin-top-xs" style="color: #999999;">订单号:{{item.order_id}}</view>
  133. </view>
  134. <view class="text-bold" style="color: #333333;">
  135. <view class="text-sm margin-top-xs" style="color: #999999;">{{item.pay_time}}</view>
  136. <view style="color: #00c18a; float: right;font-weight: 500;">充值成功</view>
  137. </view>
  138. </view>
  139. <!-- <view style="width: 100%;height: 1rpx;background: #E6E6E6;"></view> -->
  140. </view>
  141. <empty v-if="moeylist.length==0" style="height: 50vh;"></empty>
  142. </scroll-view>
  143. </view>
  144. <view class="list-box-item3" style="margin-top: 30rpx;">
  145. <view class="flex "
  146. style=" border-radius: 14rpx; padding: 20rpx; margin: 20rpx 0;">
  147. <view style="margin-top: 10rpx;">
  148. <image v-if="globalImages" :src="globalImages + 'images/credit/shijia.png'"
  149. style="width: 25rpx;height: 35rpx;margin-left: 30rpx;" mode=""></image>
  150. </view>
  151. <view style="margin-left: 30rpx; line-height: 30rpx;">
  152. <view>支付安全提示</view>
  153. <view style="color: #999; font-size: 24rpx;">
  154. 请勿向他人泄露验证码, 平台不会以任何理由索要您的验证码信息。
  155. </view>
  156. </view>
  157. </view>
  158. </view>
  159. <view class="flex" style="margin-top: 40rpx; padding-bottom: 30rpx;justify-content: center;">
  160. <image v-if="globalImages" :src="globalImages + 'images/credit/xinxi.png'"
  161. style="width: 32rpx;height: 32rpx;margin-right: 10rpx;" mode=""></image>
  162. 充值体验反馈
  163. </view>
  164. <!-- <view class="bg margin-top-sm">
  165. <view class="padding-tb-sm padding-lr flex align-center">
  166. <view class="lin"></view>
  167. <view>账单明细</view>
  168. </view>
  169. <view style="width: 100%;height: 1rpx;background: #E6E6E6;"></view>
  170. <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper"
  171. @scrolltolower="lower" @scroll="scroll">
  172. <view v-for="(item,index) in moeylist" :key="index">
  173. <view class="flex align-center justify-between padding">
  174. <view>
  175. <view class="flex align-center">
  176. {{item.title}}
  177. <image src="../../static/image/copy.png" style="width: 35rpx;height: 35rpx;"></image>
  178. </view>
  179. <view class="margin-top-xs">{{item.content}}</view>
  180. <view class="text-sm margin-top-xs" style="color: #999999;">{{item.createTime}}</view>
  181. </view>
  182. <view class="text-bold" style="color: #333333;font-size: 38rpx;">
  183. <text v-if="item.type==1">+</text>
  184. <text v-if="item.type==2">-</text>
  185. {{item.money}}
  186. </view>
  187. </view>
  188. <view style="width: 100%;height: 1rpx;background: #E6E6E6;"></view>
  189. </view>
  190. <empty v-if="moeylist.length==0" style="height: 50vh;"></empty>
  191. </scroll-view>
  192. </view> -->
  193. </view>
  194. </template>
  195. <script>
  196. import empty from '@/components/empty.vue'
  197. import { waitForGlobalImages } from '@/utils/globalImageLoader'
  198. export default {
  199. components: {
  200. empty
  201. },
  202. data() {
  203. return {
  204. money: 0,
  205. moeylist: [],
  206. balance: 0,
  207. page: 1,
  208. limit: 10,
  209. totalPage: '',
  210. scrollTop: 0,
  211. old: {
  212. scrollTop: 0
  213. },
  214. accumulateMoney:0,
  215. title_color: 1,
  216. money: 0,
  217. avatar: '',
  218. Profit: 0,
  219. openLists: [{
  220. image: '../../static/image/zhifubao.png',
  221. text: '支付宝',
  222. id: 1
  223. }, {
  224. image: '../../static/image/icon_weixin.png',
  225. text: '微信',
  226. id: 2
  227. }],
  228. openWay: 1,
  229. wallet: [],
  230. wallIndex: 0,
  231. price: 0,
  232. moneyNum: null,
  233. charge: 0, //提现手续费
  234. maxMoney: 0, //最高提现额度
  235. minMoney: 0, //最低提现额度
  236. ratio: '', //金元比例
  237. placeholder: '',
  238. sp: 0,
  239. rechargeId: '',
  240. globalImages: ''
  241. }
  242. },
  243. onLoad() {
  244. waitForGlobalImages().then((path) => {
  245. console.log('✅ 全局图片路径:', path)
  246. this.globalImages = path
  247. })
  248. this.avatar = uni.getStorageSync('avatar')
  249. // #ifdef APP-PLUS
  250. this.openLists = [{
  251. image: '../../static/image/zhifubao.png',
  252. text: '支付宝',
  253. id: 1
  254. }, {
  255. image: '../../static/image/icon_weixin.png',
  256. text: '微信',
  257. id: 2
  258. }];
  259. this.openWay = 1;
  260. // #endif
  261. // #ifdef MP-WEIXIN
  262. this.openLists = [{
  263. image: '../../static/image/icon_weixin.png',
  264. text: '微信',
  265. id: 2
  266. }];
  267. this.openWay = 2;
  268. // #endif
  269. // #ifdef H5
  270. let ua = navigator.userAgent.toLowerCase();
  271. if (ua.indexOf('micromessenger') !== -1) {
  272. //公众号是否自动登录 443
  273. this.$Request.get('/app/common/type/443').then(res => {
  274. if (res.data && res.data.value && res.data.value == '是') {
  275. this.openLists = [{
  276. image: '../../static/image/icon_weixin.png',
  277. text: '微信',
  278. id: 2
  279. }];
  280. this.openWay = 2;
  281. } else {
  282. this.openLists = [];
  283. this.openWay = -1;
  284. }
  285. })
  286. } else {
  287. this.openLists = [{
  288. image: '../../static/image/zhifubao.png',
  289. text: '支付宝',
  290. id: 1
  291. }];
  292. this.openWay = 1;
  293. }
  294. // #endif
  295. },
  296. onShow() {
  297. this.taskData()
  298. this.getUserInfo();
  299. this.getlist();
  300. this.getMoney();
  301. this.getUserInfo();
  302. this.getMoneyList();
  303. },
  304. methods: {
  305. getMoneyList() {
  306. this.$Request.getT("/app/rechargeConfig/getConfigInfoList").then(res => {
  307. if (res.code == 0) {
  308. this.wallet = res.data.records
  309. this.price = this.wallet[0].money
  310. this.rechargeId = this.wallet[0].rechargeId
  311. }
  312. });
  313. },
  314. getUserInfo() {
  315. this.$Request.getT("/app/user/selectUserById").then(res => {
  316. if (res.code == 0) {
  317. this.avatar = res.data.avatar ? res.data.avatar : this.globalImages ? this.globalImages + 'images/static/image/logo.png' : ''
  318. uni.setStorageSync('avatar', res.data.avatar)
  319. }
  320. });
  321. },
  322. cut(e) {
  323. this.title_color = e
  324. },
  325. goNav(url) {
  326. uni.navigateTo({
  327. url
  328. })
  329. },
  330. handlePriceInput() {
  331. this.wallIndex = -1; // 取消预设金额的选中状态
  332. this.rechargeId = null; // 清空充值 ID
  333. },
  334. active(e, index) {
  335. this.wallIndex = index
  336. this.price = e.money
  337. this.rechargeId = e.rechargeId
  338. // this.wallet =
  339. // this.wallet.forEach(res => {
  340. // if (res.id == e.id) {
  341. // res.isSelect = true
  342. // this.thisSelect = e
  343. // } else {
  344. // res.isSelect = false
  345. // }
  346. // })
  347. },
  348. // 我的余额
  349. getMoney() {
  350. this.$Request.getT("/app/userMoney/selectMyMoney").then(res => {
  351. if (res.code == 0 && res.data) {
  352. console.log(res.data.money)
  353. this.money = res.data.money
  354. }
  355. });
  356. },
  357. selectWay: function(item) {
  358. this.openWay = item.id;
  359. },
  360. //h5支付
  361. payH5() {
  362. let that = this
  363. let data = {
  364. money: that.price,
  365. rechargeId: that.rechargeId
  366. }
  367. if (this.openWay == 1) { //h5支付宝
  368. this.$Request.postT("/app/aliPay/payH5Money", data).then(res => {
  369. if (res.code == 0) {
  370. const div = document.createElement('div')
  371. div.innerHTML = res.data //此处form就是后台返回接收到的数据
  372. document.body.appendChild(div)
  373. document.forms[0].submit()
  374. uni.hideLoading()
  375. } else {
  376. uni.showToast({
  377. icon: 'none',
  378. title: '支付失败!'
  379. });
  380. }
  381. });
  382. } else { //h5微信支付
  383. this.$Request.postT("/app/wxPay/wxPayMpMoney", data).then(res => {
  384. if (res.code == 0) {
  385. uni.hideLoading()
  386. that.callPay(res.data);
  387. } else {
  388. uni.showToast({
  389. icon: 'none',
  390. title: '支付失败!'
  391. });
  392. }
  393. });
  394. }
  395. },
  396. //app支付
  397. payApp() {
  398. let that = this
  399. let data = {
  400. money: that.price,
  401. rechargeId: that.rechargeId
  402. }
  403. if (this.openWay == 1) { //app支付宝
  404. that.$Request.postT("/app/aliPay/payAppMoney", data).then(ret => {
  405. console.log(ret)
  406. that.isCheckPay(ret.code, 'alipay', ret.data);
  407. });
  408. } else { //app微信支付
  409. that.$Request.postT("/app/wxPay/payAppMoney", data).then(ret => {
  410. console.log(ret, 'retretretretretret')
  411. that.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
  412. });
  413. }
  414. },
  415. //微信支付
  416. payMP(money) {
  417. let that = this
  418. let data = {
  419. money: that.price,
  420. rechargeId: that.rechargeId
  421. }
  422. that.$Request.postT('/app/wxPay/wxPayJsApiMoney', data).then(ret => {
  423. uni.hideLoading()
  424. uni.requestPayment({
  425. provider: 'wxpay',
  426. timeStamp: ret.data.timestamp,
  427. nonceStr: ret.data.noncestr,
  428. package: ret.data.package,
  429. signType: ret.data.signType,
  430. paySign: ret.data.sign,
  431. success: function(suc) {
  432. console.log('success:' + JSON.stringify(suc));
  433. uni.showToast({
  434. title: '支付成功',
  435. icon: 'success'
  436. })
  437. setTimeout(d => {
  438. uni.navigateBack(1)
  439. }, 1000);
  440. },
  441. fail: function(err) {
  442. console.log('fail:' + JSON.stringify(err));
  443. uni.showToast({
  444. title: '支付失败',
  445. icon: 'none'
  446. })
  447. }
  448. });
  449. });
  450. },
  451. pay() {
  452. // console.log(this.thisSelect)
  453. // let data = {
  454. // }this.price
  455. uni.showLoading({
  456. title: '支付中...'
  457. });
  458. // H5
  459. // #ifdef H5
  460. this.payH5()
  461. // #endif
  462. //APP
  463. // #ifdef APP
  464. this.payApp()
  465. // #endif
  466. //小程序
  467. // #ifdef MP-WEIXIN
  468. this.payMP()
  469. // #endif
  470. },
  471. callPay: function(response) {
  472. console.log(response)
  473. if (typeof WeixinJSBridge === "undefined") {
  474. if (document.addEventListener) {
  475. document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(response), false);
  476. } else if (document.attachEvent) {
  477. document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(response));
  478. document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(response));
  479. }
  480. } else {
  481. console.log(1)
  482. this.onBridgeReady(response);
  483. }
  484. },
  485. onBridgeReady: function(response) {
  486. let that = this;
  487. if (!response.package) {
  488. return;
  489. }
  490. console.log(response, '++++++++')
  491. WeixinJSBridge.invoke(
  492. 'getBrandWCPayRequest', {
  493. "appId": response.appid, //公众号名称,由商户传入
  494. "timeStamp": response.timestamp, //时间戳,自1970年以来的秒数
  495. "nonceStr": response.noncestr, //随机串
  496. "package": response.package,
  497. "signType": response.signType, //微信签名方式:
  498. "paySign": response.sign //微信签名
  499. },
  500. function(res) {
  501. console.log(res, '/*-/*-/*-')
  502. if (res.err_msg === "get_brand_wcpay_request:ok") {
  503. // 使用以上方式判断前端返回,微信团队郑重提示:
  504. //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
  505. uni.showLoading({
  506. title: '支付成功'
  507. });
  508. setTimeout(function() {
  509. uni.hideLoading();
  510. }, 1000);
  511. } else {
  512. uni.hideLoading();
  513. }
  514. WeixinJSBridge.log(response.err_msg);
  515. }
  516. );
  517. },
  518. isCheckPay(status, name, order) {
  519. if (status == 0) {
  520. this.setPayment(name, order);
  521. } else {
  522. uni.hideLoading();
  523. uni.showToast({
  524. title: '支付信息有误',
  525. icon: 'none'
  526. });
  527. }
  528. },
  529. setPayment(name, order) {
  530. console.log('*-*-*')
  531. uni.requestPayment({
  532. provider: name,
  533. orderInfo: order, //微信、支付宝订单数据
  534. success: function(res) {
  535. console.log(res)
  536. uni.hideLoading();
  537. uni.showLoading({
  538. title: '支付成功'
  539. });
  540. },
  541. fail: function(err) {
  542. console.log(err)
  543. uni.hideLoading();
  544. },
  545. complete() {
  546. uni.hideLoading();
  547. }
  548. });
  549. },
  550. getUserInfo() {
  551. this.$Request.getT('/app/user/selectUserById').then(res => {
  552. console.log(res)
  553. if (res.code == 0) {
  554. this.balance = res.data.balance
  555. }
  556. });
  557. },
  558. // 获取余额
  559. taskData() {
  560. this.$Request.getT('/app/userMoney/selectMyMoney').then(res => {
  561. if (res.code == 0) {
  562. if (res.data) {
  563. this.money = res.data.money
  564. this.accumulateMoney = res.data.accumulateMoney
  565. }
  566. }
  567. });
  568. },
  569. getlist() {
  570. let data = {
  571. page: this.page,
  572. limit: this.limit,
  573. classify:3
  574. }
  575. this.$Request.getT('/app/wxPay/wxPayJsApiMoneyDetails', data).then(res => {
  576. if (res.code == 0) {
  577. this.totalPage = res.data.currPage
  578. if (this.page == 1) {
  579. this.moeylist = res.data.list
  580. } else {
  581. this.moeylist = [...this.moeylist, ...res.data.list]
  582. }
  583. // console.log(this.totalPage, '==========')
  584. uni.stopPullDownRefresh();
  585. }
  586. });
  587. },
  588. upper: function(e) {
  589. // console.log(e)
  590. this.page = 1;
  591. this.getlist();
  592. },
  593. lower: function(e) {
  594. // console.log(e)
  595. if (this.page < this.totalPage) {
  596. this.page = this.page + 1;
  597. this.getlist();
  598. }
  599. },
  600. scroll: function(e) {
  601. // console.log(e)
  602. this.old.scrollTop = e.detail.scrollTop
  603. },
  604. gocz() { // 充值
  605. uni.navigateTo({
  606. url: '/my/wallet/Txmoney'
  607. })
  608. },
  609. gotx() { // 提现
  610. uni.navigateTo({
  611. url: '/my/wallet/wallet'
  612. })
  613. }
  614. },
  615. onReachBottom: function() {
  616. // console.log(this.page < this.totalPage, '-------------', this.page, this.totalPage)
  617. if (this.page < this.totalPage) {
  618. this.page = this.page + 1;
  619. this.getlist();
  620. }
  621. },
  622. onPullDownRefresh: function() {
  623. this.page = 1;
  624. this.getlist();
  625. },
  626. }
  627. </script>
  628. <style lang="less">
  629. .active {
  630. border: #fe6b01 solid 1rpx !important;
  631. }
  632. page {
  633. background: #F5F5F5;
  634. }
  635. .bg {
  636. background: #FFFFFF;
  637. }
  638. .scroll-Y {
  639. height: 60vh;
  640. }
  641. .box {
  642. width: 690rpx;
  643. height: 312rpx;
  644. background: linear-gradient(90deg, #75B6FF 0%, #0278FE 100%);
  645. border-radius: 16rpx;
  646. color: #FFFFFF;
  647. text-align: center;
  648. padding-top: 50rpx;
  649. .tit {
  650. font-size: 32rpx;
  651. font-family: PingFang SC;
  652. font-weight: 500;
  653. }
  654. .pri {
  655. margin-top: 20rpx;
  656. text {
  657. font-size: 68rpx;
  658. font-family: DINPro;
  659. font-weight: 500;
  660. color: #FFFFFF;
  661. margin-right: 10rpx;
  662. }
  663. }
  664. }
  665. .tx {
  666. width: 160rpx;
  667. height: 70rpx;
  668. border: 3rpx solid #5074FF;
  669. border-radius: 8rpx;
  670. text-align: center;
  671. line-height: 70rpx;
  672. color: #5074FF;
  673. }
  674. .cz {
  675. width: 200rpx;
  676. height: 70rpx;
  677. border-radius: 8rpx;
  678. text-align: center;
  679. line-height: 70rpx;
  680. color: #FFFFFF;
  681. margin-left: 20rpx;
  682. background: #fe6b01;
  683. }
  684. .lin {
  685. width: 6rpx;
  686. height: 32rpx;
  687. background: #0278FE;
  688. margin-right: 15rpx;
  689. }
  690. .list_box {
  691. display: flex;
  692. height: 40rpx;
  693. // margin: 0 30rpx;
  694. }
  695. .box_left {
  696. flex: 1;
  697. display: flex;
  698. justify-content: left;
  699. align-items: center;
  700. }
  701. .list-box-item {
  702. width: 100%;
  703. // height: 200rpx;
  704. border-radius: 16rpx;
  705. background-color: #ffffff;
  706. padding: 30rpx 30rpx;
  707. }
  708. .list-box-item2 {
  709. // height: 200rpx;
  710. border-radius: 16rpx;
  711. background-color: #ffffff;
  712. margin-top: 20rpx;
  713. padding: 30rpx 30rpx;
  714. margin: 0 30rpx;
  715. }
  716. .list-box-item3 {
  717. // height: 200rpx;
  718. border-radius: 16rpx;
  719. background-color: #ffffff;
  720. margin-top: 20rpx;
  721. margin: 0 30rpx;
  722. }
  723. .title {
  724. font-size: 32rpx;
  725. font-family: PingFang SC;
  726. color: #333333;
  727. }
  728. </style>