entertainment.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  1. <template>
  2. <view class="all">
  3. <template v-if="!upOnBtnData.show">
  4. <view class="padding-t-30"></view>
  5. <view class="tab">
  6. <view class="flex">
  7. <view class="tab-item " @click="changeTab(item,ind)" :class="{action:actionIndex==ind}"
  8. v-for="(item,ind) in gameList">
  9. {{item.name}}
  10. </view>
  11. </view>
  12. <l-echart class="top" ref="chart"></l-echart>
  13. </view>
  14. <view class="center flex">
  15. <!-- 左 -->
  16. <view class="le">
  17. <view class="tit flex-start">
  18. <view class="ti1">{{$t('enter.u1')}}</view>
  19. <view class="ti2">({{$t('enter.u2')}})</view>
  20. </view>
  21. <view class="he">
  22. <view class="numbox flex-start">
  23. <view class="he1 flex" @click="gameMoneyValue=it" v-for="it in arMoneyList">
  24. <view class="wen">{{it}}</view>
  25. </view>
  26. </view>
  27. </view>
  28. <view class="yi flex-start">
  29. <image class="img" src="../../static/icon/le.png" mode=""></image>
  30. <view class="wz padding-l-10">{{history.base.token}}</view>
  31. <view class="qx padding-l-10" v-if="history.next.id">{{history.next.no}}</view>
  32. </view>
  33. <view class="shu">
  34. 0.064489
  35. </view>
  36. </view>
  37. <!--右 -->
  38. <view class="ri">
  39. <view class="ti flex-center">
  40. <view class="t1">{{$t('enter.u3')}}</view>
  41. <view class="t2 padding-l-10">{{history.base.timebar}}</view>
  42. </view>
  43. <view class="dh">
  44. <input class="input" type="number" v-model="gameMoneyValue">
  45. </view>
  46. <view class="btn">
  47. <view class="bt flex">
  48. <view class="btnItem btnle" @click="onbet(2)">
  49. <image class="imag" src="../../static/icon/xia.png" mode=""></image>
  50. <text class="xia">{{$t('enter.u4')}}</text>
  51. </view>
  52. <view class="btnItem btnri" @click="onbet(1)">
  53. <image class="imag" src="../../static/icon/shang.png" mode=""></image>
  54. <text class="xia">{{$t('enter.u6')}}</text>
  55. </view>
  56. </view>
  57. <view class="bt flex">
  58. <view class="btnItem btnle" @click="onbet(3)">
  59. <view class="xia">{{$t('enter.u5')}}</view>
  60. </view>
  61. <view class="btnItem btnri" @click="onbet(4)">
  62. <view class="xia">{{$t('enter.u7')}}</view>
  63. </view>
  64. </view>
  65. </view>
  66. <view class="db flex">
  67. <view class="jl">{{$t('enter.u8')}}</view>
  68. <view class="sj">
  69. <text v-if="time.H<10">0</text>
  70. {{time.H}}
  71. </view>
  72. <view class="sj">
  73. <text v-if="time.M<10">0</text>
  74. {{time.M}}
  75. </view>
  76. <view class="sj">
  77. <text v-if="time.S<10">0</text>
  78. {{time.S}}
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. <view class="kb"></view>
  84. <view class="last">
  85. <view class="flex">
  86. <text>{{$t('enter.u9')}}</text>
  87. <view class="flex" @click="nav">
  88. <text>{{$t('enter.u10')}}</text>
  89. <image class="lb" src="../../static/icon/jt.png" mode=""></image>
  90. </view>
  91. </view>
  92. </view>
  93. <view class="bg">
  94. <view class="biaotou flex">
  95. <view class="biwe">{{$t('enter.u11')}}</view>
  96. <view class="biwe">{{$t('enter.u12')}}</view>
  97. <view class="biwe">{{$t('enter.u13')}}</view>
  98. <view class="biwe">{{$t('enter.u14')}}</view>
  99. </view>
  100. <view class="list flex" v-for="(item,ind) in betList.list" :key="ind">
  101. <view class="biwe flex-start">
  102. <view class="tr">{{history.base.token}}</view>
  103. <view class="nametip">{{history.base.timebar}}</view>
  104. <image class="zz" src="../../static/icon/shang.png" mode=""></image>
  105. </view>
  106. <view class="biwe">23.5000</view>
  107. <view class="biwe">23.5000</view>
  108. <view class="biwe flex">
  109. <view class="list-buttom success margin-r-10">
  110. {{$t('enter.u17')}}
  111. </view>
  112. <view class="list-buttom primary">
  113. {{$t('enter.u18')}}
  114. </view>
  115. </view>
  116. </view>
  117. </view>
  118. <view class="chz flex">
  119. <view>
  120. <view class="yue padding-b-10">{{$t('enter.u15')}}</view>
  121. <view class="yes">{{userWallet}}U</view>
  122. </view>
  123. <view class="flex-start" @click="navC">
  124. <view class="quc">{{$t('enter.u16')}}</view>
  125. <image class="choz" src="../../static/icon/jt.png" mode=""></image>
  126. </view>
  127. </view>
  128. <taber tab='entertainment'></taber>
  129. </template>
  130. <template v-if="upOnBtnData.show">
  131. <view class="page">
  132. <view>
  133. <view class="pay-title">
  134. <text v-show="AffirmStatus === 1">请输入6位支付密码</text>
  135. <text v-show="AffirmStatus === 2">请设置6位支付密码</text>
  136. <text v-show="AffirmStatus === 3">请确认6位支付密码</text>
  137. </view>
  138. <view class="pay-password" @click="onPayUp">
  139. <view class="list">
  140. <text v-show="passwordArr.length >= 1">●</text>
  141. </view>
  142. <view class="list">
  143. <text v-show="passwordArr.length >= 2">●</text>
  144. </view>
  145. <view class="list">
  146. <text v-show="passwordArr.length >= 3">●</text>
  147. </view>
  148. <view class="list">
  149. <text v-show="passwordArr.length >= 4">●</text>
  150. </view>
  151. <view class="list">
  152. <text v-show="passwordArr.length >= 5">●</text>
  153. </view>
  154. <view class="list">
  155. <text v-show="passwordArr.length >= 6">●</text>
  156. </view>
  157. </view>
  158. <view class="hint">
  159. <text>忘记支付密码?</text>
  160. </view>
  161. </view>
  162. <cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo"></cc-defineKeyboard>
  163. </view>
  164. </template>
  165. </view>
  166. </template>
  167. <script>
  168. import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
  169. import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
  170. import {
  171. getGame,
  172. gameKline,
  173. getGameList,
  174. test,
  175. gameWallet,
  176. gameBetList,
  177. gameBetIn
  178. } from "@/api/game.js";
  179. import {
  180. qianBao,
  181. } from "@/api/wallet.js";
  182. import {
  183. mapState,
  184. mapMutations
  185. } from 'vuex';
  186. import {
  187. saveUrl,
  188. interceptor
  189. } from '@/utils/loginUtils.js';
  190. import taber from "@/components/footer/footer.vue";
  191. export default {
  192. components: {
  193. taber,
  194. LEchart
  195. },
  196. computed: {
  197. ...mapState("user", ["hasLogin"])
  198. },
  199. data() {
  200. return {
  201. arMoneyList: [
  202. 1, 5, 10, 20, 50, 100
  203. ],
  204. gameMoneyValue: 0,
  205. actionIndex: 0,
  206. // 当前游戏列表
  207. gameList: [],
  208. // 游戏信息
  209. history: {
  210. list: [], //游戏进行记录
  211. page: 1,
  212. limit: 10,
  213. // 基础数据
  214. base: {},
  215. next: {},
  216. now: {}
  217. },
  218. time: {
  219. H: 0,
  220. M: 0,
  221. S: 0,
  222. // 保存倒计时对象
  223. t: ''
  224. },
  225. // 游戏押注记录
  226. betList: {
  227. list: [], //游戏进行记录
  228. page: 1,
  229. limit: 10,
  230. },
  231. userWallet: 0,
  232. upOnBtnData: {
  233. show: false,
  234. type: ''
  235. },
  236. AffirmStatus: 1,
  237. passwordArr: [],
  238. oldPasswordArr: [],
  239. newPasswordArr: [],
  240. afPasswordArr: [],
  241. };
  242. },
  243. onLoad() {
  244. },
  245. onShow() {
  246. if (!this.hasLogin) {
  247. uni.showModal({
  248. title: "登陆",
  249. content: '您未登录!是否马上登录?',
  250. success: (e) => {
  251. // 判断是否点击确认按钮
  252. if (e.confirm) {
  253. // 保存当前页面地址
  254. saveUrl()
  255. // 跳转页面
  256. interceptor()
  257. }
  258. }
  259. })
  260. return
  261. }
  262. this.getUserWallet();
  263. },
  264. // 关闭循环
  265. onHide() {
  266. clearInterval(this.time.t)
  267. },
  268. methods: {
  269. onbet(type) {
  270. this.upOnBtnData.type = type;
  271. this.upOnBtnData.show = true;
  272. this.$refs.CodeKeyboard.show();
  273. },
  274. KeyInfo(val) {
  275. if (val.index >= 6) {
  276. return;
  277. }
  278. // 判断是否输入的是删除键
  279. if (val.keyCode === 8) {
  280. // 删除最后一位
  281. this.passwordArr.splice(val.index + 1, 1)
  282. }
  283. // 判断是否输入的是.
  284. else if (val.keyCode == 190) {
  285. // 输入.无效
  286. } else {
  287. this.passwordArr.push(val.key);
  288. }
  289. uni.showModal({
  290. title: '温馨提示',
  291. content: '输入密码是 = ' + JSON.stringify(this.passwordArr)
  292. })
  293. },
  294. // 参与压住
  295. gameBetIn(type) {
  296. },
  297. // 获取用户余额信息
  298. getUserWallet() {
  299. gameWallet().then((res) => {
  300. this.userWallet = res.data.back.USDT.money.money
  301. })
  302. if (this.history.next.id) {
  303. this.opTiem();
  304. } else {
  305. this.gameInit();
  306. }
  307. },
  308. // 开始倒计时
  309. async opTiem() {
  310. const that = this;
  311. try {
  312. // 关闭循环
  313. clearInterval(that.time.t);
  314. if (that.history.base.id) {
  315. that.time.t = setInterval(() => {
  316. const da = (new Date()).getTime();
  317. const timenum = that.history.next.open_time * 1000 - da;
  318. that.time.H = Math.floor(timenum / 1000 / 60 / 60);
  319. that.time.S = Math.floor(timenum / 1000 % 60)
  320. that.time.M = Math.floor(timenum / 1000 / 60 % 60);
  321. if (that.time.H == 0 && that.time.M == 0 && that.time.S == 0) {
  322. clearInterval(that.time.t);
  323. setTimeout(() => {
  324. test();
  325. setTimeout(() => {
  326. this.gameDataInit(that.gameList[that.actionIndex].id)
  327. }, 1000)
  328. }, 3000)
  329. }
  330. }, 1000)
  331. }
  332. } catch (e) {
  333. console.log(e, '定时');
  334. }
  335. },
  336. changeTab(item, ind) {
  337. if (ind != this.actionIndex) {
  338. this.actionIndex = ind;
  339. this.gameDataInit(item.id);
  340. }
  341. },
  342. async gameInit() {
  343. try {
  344. await test();
  345. // 获取游戏列表
  346. await this.getGameList();
  347. // 加载游戏数据
  348. this.gameDataInit(this.history.next.id || this.gameList[0].id)
  349. } catch (e) {
  350. console.log(e, 'cuowu');
  351. }
  352. },
  353. // 加载游戏列表
  354. getGameList() {
  355. return getGameList().then((res) => {
  356. this.gameList = res.data.list;
  357. })
  358. },
  359. // 加载基础游戏信息
  360. async gameDataInit(id) {
  361. // 获取基础信息
  362. await this.getGame(id);
  363. //获取K线
  364. this.getGameKline();
  365. // 获取游戏压住记录
  366. this.gameBetList();
  367. },
  368. // 获取游戏压住记录
  369. gameBetList() {
  370. gameBetList({
  371. page: 1,
  372. limit: 10,
  373. id: this.history.base.id
  374. }).then((res) => {
  375. this.betList.list = res.data.bet_log;
  376. })
  377. },
  378. // 获取游戏K线信息
  379. getGameKline() {
  380. const that = this;
  381. gameKline({
  382. page: 1,
  383. limit: 60
  384. }, that.history.base.id).then((res) => {
  385. let list = res.data.list.reverse();
  386. // x轴记录
  387. let xarr = [];
  388. // 打点数据
  389. let linearr = [];
  390. for (let i = 0; i < list.length; i++) {
  391. const ll = list[i];
  392. const time = new Date(+ll.ts);
  393. const addar = [+(+ll.o).toFixed(5), +(+ll.c).toFixed(5), +(+ll.l).toFixed(5), +(+ll.h)
  394. .toFixed(5)
  395. ];
  396. xarr.push(`${time.getHours()}:${time.getMinutes()}`)
  397. linearr.push(addar)
  398. }
  399. that.$nextTick(() => {
  400. that.initKline({
  401. xarr,
  402. linearr
  403. })
  404. })
  405. })
  406. },
  407. // 获取当前项目信息
  408. getGame(type) {
  409. const that = this;
  410. return getGame({
  411. page: that.history.page,
  412. limit: that.history.limit
  413. }, type).then(({
  414. data
  415. }) => {
  416. that.history.list = data.list || [];
  417. that.history.base = data.game || {};
  418. that.history.next = data.next_game || {};
  419. that.history.now = data.now_game || {};
  420. if (that.history.next) {
  421. that.opTiem();
  422. }
  423. })
  424. },
  425. // 均值计算
  426. calculateMA(dayCount, data) {
  427. var result = [];
  428. for (var i = 0, len = data.linearr.length; i < len; i++) {
  429. if (i < dayCount) {
  430. result.push('-');
  431. continue;
  432. }
  433. var sum = 0;
  434. for (var j = 0; j < dayCount; j++) {
  435. sum += data.linearr[i - j][1];
  436. }
  437. result.push(+(sum / dayCount).toFixed(5));
  438. }
  439. return result;
  440. },
  441. async initKline(data) {
  442. const that = this;
  443. try {
  444. const chart = await this.$refs.chart.init(echarts);
  445. const upColor = '#00da3c';
  446. const downColor = '#ec0000';
  447. chart.setOption(
  448. (this.option = {
  449. animation: false,
  450. legend: {
  451. top: 10,
  452. left: 10,
  453. data: ['MA5', 'MA10', 'MA20'],
  454. textStyle: {
  455. color: '#999999'
  456. }
  457. },
  458. tooltip: {
  459. trigger: 'axis',
  460. axisPointer: {
  461. type: 'cross'
  462. },
  463. borderWidth: 1,
  464. borderColor: '#ccc',
  465. padding: 10,
  466. textStyle: {
  467. color: '#000'
  468. },
  469. position: function(pos, params, el, elRect, size) {
  470. const obj = {
  471. top: 10
  472. };
  473. obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 40;
  474. return obj;
  475. }
  476. },
  477. dataZoom: [{
  478. type: 'inside',
  479. xAxisIndex: 0,
  480. start: 50,
  481. end: 100
  482. }],
  483. grid: [{
  484. left: 10,
  485. right: 55,
  486. bottom: 20,
  487. top: 45
  488. }],
  489. xAxis: [{
  490. type: 'category',
  491. data: data.xarr,
  492. axisLine: {
  493. onZero: false
  494. },
  495. splitLine: {
  496. show: false
  497. },
  498. min: 'dataMin',
  499. max: 'dataMax',
  500. axisPointer: {
  501. z: 100
  502. }
  503. }],
  504. yAxis: [{
  505. scale: true,
  506. splitNumber: 4,
  507. position: 'right',
  508. axisTick: {
  509. show: false
  510. },
  511. splitLine: {
  512. show: false,
  513. lineStyle: {
  514. color: '#e3e3e3'
  515. }
  516. },
  517. axisLabel: {
  518. inside: false,
  519. formatter: '{value}\n',
  520. color: '#999999'
  521. }
  522. }],
  523. series: [{
  524. name: that.history.base.token + '-USDT',
  525. type: 'candlestick',
  526. data: data.linearr,
  527. itemStyle: {
  528. color: upColor,
  529. color0: downColor,
  530. borderColor: undefined,
  531. borderColor0: undefined
  532. }
  533. },
  534. {
  535. name: "MA5",
  536. smooth: true,
  537. type: 'line',
  538. data: that.calculateMA(5, data),
  539. showSymbol: false,
  540. lineStyle: {
  541. width: 1
  542. }
  543. },
  544. {
  545. name: "MA10",
  546. smooth: true,
  547. type: 'line',
  548. data: that.calculateMA(10, data),
  549. showSymbol: false,
  550. lineStyle: {
  551. width: 1
  552. }
  553. },
  554. {
  555. name: "MA20",
  556. smooth: true,
  557. type: 'line',
  558. data: that.calculateMA(20, data),
  559. showSymbol: false,
  560. lineStyle: {
  561. width: 1
  562. }
  563. },
  564. ]
  565. }),
  566. true
  567. )
  568. } catch (e) {
  569. console.log(e, 'cuowu');
  570. //TODO handle the exception
  571. }
  572. },
  573. // 页面逻辑
  574. nav() {
  575. uni.navigateTo({
  576. url: "/pages/history/history",
  577. });
  578. },
  579. navC() {
  580. uni.navigateTo({
  581. url: "/pages/recharge/recharge",
  582. });
  583. },
  584. },
  585. };
  586. </script>
  587. <style lang="scss">
  588. .all {
  589. width: 750rpx;
  590. /* height: 2500rpx; */
  591. height: 100%;
  592. padding-top: var(--status-bar-height);
  593. padding-bottom: 30rpx;
  594. }
  595. $base: orangered; // 基础颜色
  596. .page {
  597. position: absolute;
  598. left: 0;
  599. top: 0;
  600. width: 100%;
  601. height: 100%;
  602. background-color: #FFFFFF;
  603. .pay-title {
  604. display: flex;
  605. align-items: center;
  606. justify-content: center;
  607. width: 100%;
  608. height: 200rpx;
  609. text {
  610. font-size: 28rpx;
  611. color: #555555;
  612. }
  613. }
  614. .pay-password {
  615. display: flex;
  616. align-items: center;
  617. width: 90%;
  618. height: 80rpx;
  619. margin: 20rpx auto;
  620. border: 2rpx solid $base;
  621. .list {
  622. display: flex;
  623. align-items: center;
  624. justify-content: center;
  625. width: 16.666%;
  626. height: 100%;
  627. border-right: 2rpx solid #EEEEEE;
  628. text {
  629. font-size: 32rpx;
  630. }
  631. }
  632. .list:nth-child(6) {
  633. border-right: none;
  634. }
  635. }
  636. .hint {
  637. display: flex;
  638. align-items: center;
  639. justify-content: center;
  640. width: 100%;
  641. height: 100rpx;
  642. text {
  643. font-size: 28rpx;
  644. color: $base;
  645. }
  646. }
  647. }
  648. .tab {
  649. padding: 30rpx 20rpx;
  650. margin: 0 30rpx;
  651. background-color: #191A1F;
  652. border-radius: 20px;
  653. .tab-item {
  654. color: #FFF;
  655. font-size: $font-sm;
  656. padding: 0 20rpx;
  657. padding-bottom: 10rpx;
  658. &.action {
  659. color: #F5A944;
  660. border-bottom: 1px solid #F5A944;
  661. }
  662. }
  663. .top {
  664. height: 530rpx;
  665. width: 100%;
  666. }
  667. }
  668. .center {
  669. padding: 30rpx;
  670. line-height: 1;
  671. align-items: flex-start;
  672. .le,
  673. .ri {
  674. width: 50%;
  675. }
  676. .le {
  677. .tit {
  678. font-weight: bold;
  679. .ti1 {
  680. font-size: 26rpx;
  681. color: #ffffff;
  682. }
  683. .ti2 {
  684. font-size: 22rpx;
  685. padding-left: 10rpx;
  686. color: #999999;
  687. }
  688. }
  689. .he {
  690. padding-top: 40rpx;
  691. .numbox {
  692. flex-wrap: wrap;
  693. .he1 {
  694. background: #fdaf41;
  695. border-radius: 10rpx;
  696. margin-bottom: 40rpx;
  697. margin-right: 20rpx;
  698. width: 84rpx;
  699. height: 84rpx;
  700. justify-content: center;
  701. .wen {
  702. font-size: 30rpx;
  703. font-weight: bold;
  704. color: #000000;
  705. }
  706. }
  707. }
  708. }
  709. .yi {
  710. color: #ffffff;
  711. font-size: $font-base;
  712. .img {
  713. width: 41rpx;
  714. height: 42rpx;
  715. }
  716. .wz {
  717. font-weight: bold;
  718. }
  719. }
  720. .shu {
  721. padding-top: 10rpx;
  722. font-size: 51rpx;
  723. font-weight: bold;
  724. color: #fdb242;
  725. }
  726. }
  727. .ri {
  728. .ti {
  729. font-size: 26rpx;
  730. font-weight: bold;
  731. .t1 {
  732. color: #ffffff;
  733. }
  734. .t2 {
  735. color: #fdaf41;
  736. }
  737. }
  738. .dh {
  739. width: 100%;
  740. padding: 20rpx 30rpx;
  741. margin-top: 30rpx;
  742. background: #efefef;
  743. border-radius: 10rpx;
  744. .te {
  745. font-size: 44rpx;
  746. font-weight: 800;
  747. color: #000000;
  748. }
  749. }
  750. .btn {
  751. padding-top: 30rpx;
  752. .bt {
  753. padding-bottom: 10rpx;
  754. .btnItem {
  755. width: 49%;
  756. height: 70rpx;
  757. line-height: 70rpx;
  758. text-align: center;
  759. .imag {
  760. width: 32rpx;
  761. height: 20rpx;
  762. }
  763. .xia {
  764. font-size: 28rpx;
  765. font-weight: 800;
  766. color: #ffffff;
  767. }
  768. }
  769. .btnle {
  770. border-radius: 50rpx 0 0 50rpx;
  771. background-color: #df5660;
  772. }
  773. .btnri {
  774. border-radius: 0 50rpx 50rpx 0;
  775. background-color: #5bb786;
  776. }
  777. }
  778. }
  779. .db {
  780. justify-content: flex-end;
  781. padding-top: 30rpx;
  782. .jl {
  783. font-size: 24rpx;
  784. font-weight: 400;
  785. color: #999999;
  786. }
  787. .sj {
  788. width: 40rpx;
  789. height: 40rpx;
  790. background: #bfbfbf;
  791. border-radius: 3rpx;
  792. text-align: center;
  793. line-height: 40rpx;
  794. margin-left: 10rpx;
  795. }
  796. }
  797. }
  798. }
  799. .kb {
  800. width: 750rpx;
  801. height: 20rpx;
  802. background-color: #191a1f;
  803. }
  804. .last {
  805. padding: 30rpx;
  806. line-height: 1;
  807. font-size: 24rpx;
  808. font-weight: 800;
  809. color: #fff;
  810. .lb {
  811. width: 14rpx;
  812. height: 20rpx;
  813. margin-left: 10rpx;
  814. }
  815. }
  816. .bg {
  817. padding: 0 30rpx;
  818. background-color: #000000;
  819. color: #fff;
  820. text-align: center;
  821. font-size: 28rpx;
  822. padding-bottom: 30rpx;
  823. .biaotou {
  824. font-weight: 800;
  825. padding-bottom: 10rpx;
  826. }
  827. .biwe {
  828. width: 25%;
  829. .zz {
  830. width: 22rpx;
  831. height: 14rpx;
  832. margin-left: 8rpx;
  833. }
  834. .nametip {
  835. font-size: 18rpx;
  836. color: #999999;
  837. padding-left: 8rpx;
  838. }
  839. }
  840. .biwe:nth-child(1) {
  841. flex-shrink: 0;
  842. text-align: left;
  843. align-items: flex-end;
  844. }
  845. .biwe:nth-child(4) {
  846. flex-shrink: 0;
  847. width: 200rpx;
  848. }
  849. .list {
  850. font-weight: bold;
  851. padding: 20rpx 0;
  852. border-bottom: 1px solid rgba(43, 42, 38, 0.52);
  853. }
  854. .list-buttom {
  855. width: 100rpx;
  856. border-radius: 30rpx;
  857. font-size: 16rpx;
  858. padding: 10rpx 0;
  859. &.success {
  860. background: #25b287;
  861. }
  862. &.primary {
  863. background: #01ebf6;
  864. color: #000000;
  865. }
  866. }
  867. }
  868. .chz {
  869. background: #191a1f;
  870. border-radius: 20rpx;
  871. margin: 0 30rpx;
  872. color: #ffffff;
  873. font-weight: bold;
  874. padding: 20rpx 30rpx;
  875. .yue {
  876. font-size: 28rpx;
  877. }
  878. .yes {
  879. color: #fdaf41;
  880. }
  881. .quc {
  882. font-size: 26rpx;
  883. font-weight: 500;
  884. color: #ffffff;
  885. }
  886. .choz {
  887. width: 22rpx;
  888. height: 14rpx;
  889. }
  890. }
  891. </style>