From 3f3e2d5977787b0c6e09cd5cba7b41e5fb7d3fd0 Mon Sep 17 00:00:00 2001
From: zzzz <690498789@qq.com>
Date: Sun, 21 Apr 2024 15:59:28 +0800
Subject: [PATCH] first
---
src/page/TtrendDetails/index.vue | 1553 ++++++++++++++++++++++++++++++++---------------------------
1 files changed, 848 insertions(+), 705 deletions(-)
diff --git a/src/page/TtrendDetails/index.vue b/src/page/TtrendDetails/index.vue
index 55879fd..33f570c 100644
--- a/src/page/TtrendDetails/index.vue
+++ b/src/page/TtrendDetails/index.vue
@@ -1,7 +1,7 @@
<template>
- <div class="trend-detail pb-90 mainBackground">
- <!-- 头部 -->
- <!-- <div class="w-full h-88 flex items-center justify-between px-32 box-border">
+ <div class="trend-detail pb-90 mainBackground">
+ <!-- 头部 -->
+ <!-- <div class="w-full h-88 flex items-center justify-between px-32 box-border">
<div class="flex items-center w-full" @click="onRoute('/quotes?active=3')">
<img src="@/assets/image/assets-center/convert.png" class="w-38 h-38" />
<p class="font-38 font-600 ml-10">{{quote.name}}</p>
@@ -13,138 +13,228 @@
@click="goHistory" />
</div>
</div> -->
- <trade-head @openRecord="openRecord" :backFunc="() => $router.push('/')" :symbol="symbol" :islevel="true"
- @update-coin="onUpdate" @data="quote = $event" :title="$t('永续')" @changeLine="onChangeLine" :isReturn="isReturn"
- :kineType="kineType" :tabIndex="tab" />
- <div class="flex justify-between px-32 pt-40" v-if="!kineType">
- <div class="w-368 h-80 mr-32 flex justify-center items-center rounded box-border tabBtn"
- :class="tab === '1' ? 'activeBtn' : ''" @click="onTab('1')">{{ $t('永续合约') }}</div>
- <div class="w-368 h-80 flex justify-center items-center rounded box-border tabBtn"
- :class="tab === '2' ? 'activeBtn' : ''" @click="onTab('2')">{{ $t('交割合约') }}</div>
+ <trade-head
+ @openRecord="openRecord"
+ :backFunc="() => $router.push('/')"
+ :symbol="symbol"
+ :islevel="true"
+ @update-coin="onUpdate"
+ @data="quote = $event"
+ :title="$t('永续')"
+ @changeLine="onChangeLine"
+ :isReturn="isReturn"
+ :kineType="kineType"
+ :tabIndex="tab"
+ />
+ <div class="flex justify-between px-32 pt-40" v-if="!kineType">
+ <div
+ class="w-368 h-80 mr-32 flex justify-center items-center rounded box-border tabBtn"
+ :class="tab === '1' ? 'activeBtn' : ''"
+ @click="onTab('1')"
+ >
+ {{ $t("永续合约") }}
+ </div>
+ <div
+ class="w-368 h-80 flex justify-center items-center rounded box-border tabBtn"
+ :class="tab === '2' ? 'activeBtn' : ''"
+ @click="onTab('2')"
+ >
+ {{ $t("交割合约") }}
+ </div>
+ </div>
+ <!-- 数据区 -->
+ <div :class="{ slide2: animated1, slide1: animated2 }">
+ <div>
+ <div class="flex flex-1 px-32 mt-40">
+ <div class="flex flex-col font-22">
+ <p
+ class="font-70 font-600"
+ :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'"
+ >
+ {{ quote.close || "--" }}
+ </p>
+ <p class="font-22 mt-10 textColor">
+ ≈ {{ currency.currency_symbol
+ }}{{
+ quote.close
+ ? (quote.close * currency.rate).toFixed(
+ quote.close.toString().split(".")[1]
+ ? quote.close.toString().split(".")[1].length
+ : 2
+ )
+ : "--"
+ }}
+ <span :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'"
+ >{{
+ quote.change_ratio || (quote.change_ratio === 0 ? 0 : "--")
+ }}%</span
+ >
+ </p>
+ <p class="text-grey mt-10">
+ {{ $t("标记价格") }} {{ quote.open || "--" }}
+ </p>
+ </div>
+ <div class="flex flex-wrap flex-1 justify-end font-22">
+ <div class="flex w-1/2 flex-col justify-between w-177">
+ <p class="text-grey">{{ $t("24h最高价") }}</p>
+ <p class="textColor">{{ quote.high || "--" }}</p>
+ </div>
+ <div class="flex w-1/2 flex-col justify-between w-177">
+ <p class="text-grey">
+ {{ $t("24h成交量") }}( {{ symbol | _symbolName() }})
+ </p>
+ <p class="textColor">
+ {{ fixDate(quote.amount * 1, $i18n) || "--" }}
+ </p>
+ </div>
+ <div class="flex w-1/2 flex-col justify-between w-177 mt-20">
+ <p class="text-grey">{{ $t("24h最低价") }}</p>
+ <p class="textColor">{{ quote.low || "--" }}</p>
+ </div>
+ <div class="flex w-1/2 flex-col justify-between w-177 mt-20">
+ <p class="text-grey">{{ $t("24h成交额(USDT)") }}</p>
+ <p class="textColor">
+ {{ (quote.volume * 1).toFixed(2) || "--" }}
+ </p>
+ </div>
+ </div>
</div>
- <!-- 数据区 -->
- <div :class="{ slide2: animated1, slide1: animated2 }">
- <div>
- <div class="flex flex-1 px-32 mt-40">
- <div class="flex flex-col font-22">
- <p class="font-70 font-600" :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'">
- {{ quote.close || '--' }}</p>
- <p class="font-22 mt-10 textColor">≈ {{ currency.currency_symbol }}{{ quote.close ? (quote.close *
- currency.rate).toFixed(quote.close.toString().split('.')[1] ?
- quote.close.toString().split('.')[1].length : 2) : '--' }}
- <span :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'">{{ quote.change_ratio
- || (quote.change_ratio === 0 ? 0 : '--') }}%</span>
- </p>
- <p class="text-grey mt-10">{{ $t('标记价格') }} {{ quote.open || '--' }}</p>
- </div>
- <div class="flex flex-wrap flex-1 justify-end font-22">
- <div class="flex w-1/2 flex-col justify-between w-177">
- <p class="text-grey">{{ $t('24h最高价') }}</p>
- <p class="textColor">{{ quote.high || '--' }}</p>
- </div>
- <div class="flex w-1/2 flex-col justify-between w-177">
- <p class="text-grey">{{ $t('24h成交量') }}({{ symbol && symbol.toUpperCase() || '--' }})</p>
- <p class="textColor">{{ fixDate(quote.amount * 1, $i18n) || '--' }}</p>
- </div>
- <div class="flex w-1/2 flex-col justify-between w-177 mt-20">
- <p class="text-grey">{{ $t('24h最低价') }}</p>
- <p class="textColor">{{ quote.low || '--' }}</p>
- </div>
- <div class="flex w-1/2 flex-col justify-between w-177 mt-20">
- <p class="text-grey">{{ $t('24h成交额(USDT)') }}</p>
- <p class="textColor">{{ (quote.volume * 1).toFixed(2) || '--' }}</p>
- </div>
- </div>
- </div>
+ </div>
+ <!-- k line-->
+ <div class="mt-35 h-482-px">
+ <kline-charts
+ :update-key="updateKey"
+ :update-data="quote"
+ :isChangeLine="isChangeLine"
+ :symbol="symbol"
+ v-if="symbol"
+ @updataLine="isChangeLine = false"
+ />
+ </div>
+ <div class="w-full h-20 greyBg"></div>
+ <!-- tab 区域-->
+ <div class="pb-180 tabContent">
+ <van-tabs v-model="active">
+ <van-tab :title="$t('委托订单')" name="1">
+ <div class="flex px-32 justify-between px-32">
+ <ul class="flex flex-col flex-1 mr-20">
+ <li class="font-28 text-grey mt-30 mb-15 w-full">
+ <p>{{ $t("买入") }}</p>
+ <p class="flex justify-between items-cener font-22">
+ <span style="margin-right: -10px"
+ >{{ $t("价格") }}(USDT)</span
+ >
+ <span>{{ $t("数量") }}({{ symbol | _symbolName(1) }})</span>
+ </p>
+ </li>
+ <li
+ v-for="(item, index) in bids"
+ :key="index"
+ class="flex justify-between font-26 py-15"
+ :style="{
+ background:
+ `linear-gradient(to left,${
+ theme == 'dark' ? '#121212' : '#ffffff'
+ } 0% ` +
+ (item.amount / bids[bids.length - 1].amount) * 100 +
+ '%,rgba(94,186,137,.1) ' +
+ (item.amount / bids[bids.length - 1].amount) * 100 +
+ '%,rgba(94,186,137,.1) 100%)',
+ }"
+ >
+ <span class="textColor">{{ item.price || "--" }}</span>
+ <span v-if="symbol == 'shib'" class="text-green">{{
+ fixDate(item.amount, $i18n) || "--"
+ }}</span>
+ <span v-else class="text-green">{{
+ item.amount || "--"
+ }}</span>
+ </li>
+ </ul>
+ <ul class="flex-1 flex flex-col ml-20">
+ <li class="font-28 text-grey mt-30 mb-15 w-full">
+ <p>{{ $t("卖出") }}</p>
+ <p class="flex justify-between items-center font-22">
+ <span class="-ml-5">{{ $t("价格") }}(USDT)</span>
+ <span>{{ $t("数量") }}({{ symbol | _symbolName() }})</span>
+ </p>
+ </li>
+ <li
+ v-for="(item, index) in asks"
+ :key="index"
+ class="flex justify-between font-26 py-15"
+ :style="{
+ background:
+ `linear-gradient(to left,${
+ theme == 'dark' ? '#121212' : '#ffffff'
+ } 0% ` +
+ (item.amount / asks[asks.length - 1].amount) * 100 +
+ '%,rgba(246,70,93,.1) ' +
+ (item.amount / asks[asks.length - 1].amount) * 100 +
+ '%,rgba(246,70,93,.1) 100%)',
+ }"
+ >
+ <span class="textColor">{{ item.price || "--" }}</span>
+ <span v-if="symbol == 'shib'" class="text-red">{{
+ fixDate(item.amount, $i18n) || "--"
+ }}</span>
+ <span v-else class="text-red">{{ item.amount || "--" }}</span>
+ </li>
+ </ul>
</div>
- <!-- k line-->
- <div class="mt-35 h-482-px">
- <kline-charts :update-key="updateKey" :update-data="quote" :isChangeLine="isChangeLine" :symbol="symbol"
- v-if="symbol" @updataLine="isChangeLine = false" />
+ </van-tab>
+ <van-tab :title="$t('最新交易')" name="2">
+ <ul class="px-32 font-28 text-grey">
+ <li class="flex justify-between mt-30">
+ <span class="flex-1">{{ $t("时间") }}</span>
+ <span class="flex-1">{{ $t("方向") }}</span>
+ <span class="flex-1">{{ $t("价格") }}(USDT)</span>
+ <span class="flex-1 flex justify-center"
+ >{{ $t("数量") }}({{ symbol.toUpperCase() }})</span
+ >
+ </li>
+ <li
+ v-for="(item, index) in deals"
+ :key="item.ts + item.price + item.amount || index"
+ class="flex justify-between mt-30"
+ >
+ <span class="flex-1">{{
+ item.current_time ? item.current_time : "--"
+ }}</span>
+ <span
+ :class="item.direction === 'buy' ? 'text-green' : 'text-red'"
+ class="flex-1"
+ >{{
+ item.direction === "buy" ? $t("买入") : $t("卖出")
+ }}</span
+ >
+ <span
+ :class="item.direction === 'buy' ? 'text-green' : 'text-red'"
+ class="flex-1 flex-justify-center"
+ >{{ item.price || "--" }}</span
+ >
+ <span class="flex-1 flex justify-center">{{
+ item.amount || "--"
+ }}</span>
+ </li>
+ </ul>
+ </van-tab>
+ <van-tab :title="$t('深度图')" name="3">
+ <div class="buy-sell-box">
+ <div class="buy-item">
+ <div class="bg-line"></div>
+ {{ $t("买盘") }}
+ </div>
+ <div class="sell-item">
+ <div class="bg-line"></div>
+ {{ $t("卖盘") }}
+ </div>
</div>
- <div class="w-full h-20 greyBg"></div>
- <!-- tab 区域-->
- <div class="pb-180 tabContent">
- <van-tabs v-model="active">
- <van-tab :title="$t('委托订单')" name="1">
- <div class="flex px-32 justify-between px-32">
- <ul class="flex flex-col flex-1 mr-20">
- <li class="font-28 text-grey mt-30 mb-15 w-full">
- <p>{{ $t('买入') }}</p>
- <p class="flex justify-between items-cener font-22">
- <span style="margin-right: -10px;">{{ $t('价格') }}(USDT)</span>
- <span>{{ $t('数量') }}({{ symbol.toUpperCase() }})</span>
- </p>
- </li>
- <li v-for="(item, index) in bids" :key="index" class="flex justify-between font-26 py-15"
- :style="{
- 'background': `linear-gradient(to left,${theme == 'dark' ? '#121212' : '#ffffff'} 0% ` +
- (item.amount / bids[bids.length - 1].amount) * 100 + '%,rgba(94,186,137,.1) ' +
- (item.amount / bids[bids.length - 1].amount) * 100 + '%,rgba(94,186,137,.1) 100%)'
- }">
- <span class="textColor">{{ item.price || '--' }}</span>
- <span v-if="symbol == 'shib'" class="text-green">{{ fixDate(item.amount, $i18n) ||
- '--' }}</span>
- <span v-else class="text-green">{{ item.amount || '--' }}</span>
- </li>
- </ul>
- <ul class="flex-1 flex flex-col ml-20">
- <li class="font-28 text-grey mt-30 mb-15 w-full">
- <p>{{ $t('卖出') }}</p>
- <p class="flex justify-between items-center font-22">
- <span class="-ml-5">{{ $t('价格') }}(USDT)</span>
- <span>{{ $t('数量') }}({{ symbol.toUpperCase() }})</span>
- </p>
- </li>
- <li v-for="(item, index) in asks" :key="index" class="flex justify-between font-26 py-15"
- :style="{
- 'background': `linear-gradient(to left,${theme == 'dark' ? '#121212' : '#ffffff'} 0% ` +
- (item.amount / asks[asks.length - 1].amount) * 100 + '%,rgba(246,70,93,.1) ' +
- (item.amount / asks[asks.length - 1].amount) * 100 + '%,rgba(246,70,93,.1) 100%)'
- }">
- <span class="textColor">{{ item.price || '--' }}</span>
- <span v-if="symbol == 'shib'" class="text-red">{{ fixDate(item.amount, $i18n) ||
- '--' }}</span>
- <span v-else class="text-red">{{ item.amount || '--' }}</span>
- </li>
- </ul>
- </div>
- </van-tab>
- <van-tab :title="$t('最新交易')" name="2">
- <ul class="px-32 font-28 text-grey">
- <li class="flex justify-between mt-30">
- <span class="flex-1">{{ $t('时间') }}</span>
- <span class="flex-1">{{ $t('方向') }}</span>
- <span class="flex-1">{{ $t('价格') }}(USDT)</span>
- <span class="flex-1 flex justify-center">{{ $t('数量') }}({{ symbol.toUpperCase() }})</span>
- </li>
- <li v-for="(item, index) in deals" :key="item.ts + item.price + item.amount || index"
- class="flex justify-between mt-30">
- <span class="flex-1">{{ item.current_time ? item.current_time : '--' }}</span>
- <span :class="item.direction === 'buy' ? 'text-green' : 'text-red'" class="flex-1">{{
- item.direction === 'buy' ? $t('买入') : $t('卖出') }}</span>
- <span :class="item.direction === 'buy' ? 'text-green' : 'text-red'"
- class="flex-1 flex-justify-center">{{ item.price || '--' }}</span>
- <span class="flex-1 flex justify-center">{{ item.amount || '--' }}</span>
- </li>
- </ul>
- </van-tab>
- <van-tab :title="$t('深度图')" name="3">
- <div class="buy-sell-box">
- <div class="buy-item">
- <div class="bg-line"></div>
- {{ $t('买盘') }}
- </div>
- <div class="sell-item">
- <div class="bg-line"></div>
- {{ $t('卖盘') }}
- </div>
- </div>
- <div class="deep-chart-box">
- <deep-chart :deepBuy="deepBuy" :deepSell="deepSell"></deep-chart>
- </div>
- </van-tab>
- <!-- <van-tab :title="$t('数据分析')" name="4">
+ <div class="deep-chart-box">
+ <deep-chart :deepBuy="deepBuy" :deepSell="deepSell"></deep-chart>
+ </div>
+ </van-tab>
+ <!-- <van-tab :title="$t('数据分析')" name="4">
<div class="capital-box">
<div class="capital-flows">
<span class="title">资金流向分析</span><van-icon name="warning-o" />
@@ -187,7 +277,7 @@
</div>
</div>
</van-tab> -->
- <!-- <van-tab :title="$t('币种简介')" name="3" class="border-t-color" v-if="this.$te(`${symbol}简介`)">
+ <!-- <van-tab :title="$t('币种简介')" name="3" class="border-t-color" v-if="this.$te(`${symbol}简介`)">
<div class="px-20 py-20 font-40 text-grey">
{{ $t('关于名称', { 'symbol': symbol.toUpperCase() }) }}
</div>
@@ -195,662 +285,715 @@
{{ $t(`${symbol}简介`, { 'symbol': symbol.toUpperCase() }) }}
</div>
</van-tab> -->
- </van-tabs>
- </div>
- <!-- 按钮区 -->
- <div class="flex pl-40 pt-11 pb-11 pr-32 text-white justify-between fixed bottom-108 w-full box-border h-90-px z-10 buttonSafe"
- v-if="!kineType" :class="theme == 'dark' ? 'bg-night1' : 'bg-grey'">
- <div class="flex flex-col mx-30 items-center" @click="onRoute('/exchangeRate')">
- <img src="@/assets/image/icon-rate.png" class="w-38 h-38" />
- <p class="font-25 text-grey mt-8 text-center">{{ $t('汇率') }}</p>
- </div>
- <div ref="toBuy" class="w-270 h-88 bg-green flex justify-center items-center rounded-lg"
- @click="onSubmit('buy')">
- {{ tab == 1 ? $t('开多') : $t('买多') }}
- </div>
- <div ref="toSell" class="w-270 h-88 bg-red flex justify-center items-center rounded-lg"
- @click="onSubmit('sell')">
- {{ tab == 1 ? $t('开空') : $t('买空') }}</div>
- </div>
+ </van-tabs>
+ </div>
+ <!-- 按钮区 -->
+ <div
+ class="flex pl-40 pt-11 pb-11 pr-32 text-white justify-between fixed bottom-108 w-full box-border h-90-px z-10 buttonSafe"
+ v-if="!kineType"
+ :class="theme == 'dark' ? 'bg-night1' : 'bg-grey'"
+ >
+ <div
+ class="flex flex-col mx-30 items-center"
+ @click="onRoute('/exchangeRate')"
+ >
+ <img src="@/assets/image/icon-rate.png" class="w-38 h-38" />
+ <p class="font-25 text-grey mt-8 text-center">{{ $t("汇率") }}</p>
</div>
- <van-popup v-model="show" class="rounded-2xl" :key="initFutrue.session_token">
- <popup-confirm-order :paras="initFutrue.para" :symbol="symbol" :direction="direction"
- :balance="initFutrue.amount" :price="quote.close" @close="onClose" @confirm="onOrderConfirm"
- v-if="popType === 'confirm'" />
- <popup-delivery showBtns :detailData="detailData" :key="detailData.order_no" @close="onClose"
- @continueToBuy="order()" @timeEnd="handleTimeEnd" :price="quote.close" v-else />
- </van-popup>
+ <div
+ ref="toBuy"
+ class="w-270 h-88 bg-green flex justify-center items-center rounded-lg"
+ @click="onSubmit('buy')"
+ >
+ {{ tab == 1 ? $t("开多") : $t("买多") }}
+ </div>
+ <div
+ ref="toSell"
+ class="w-270 h-88 bg-red flex justify-center items-center rounded-lg"
+ @click="onSubmit('sell')"
+ >
+ {{ tab == 1 ? $t("开空") : $t("买空") }}
+ </div>
+ </div>
</div>
+ <van-popup
+ v-model="show"
+ class="rounded-2xl"
+ :key="initFutrue.session_token"
+ >
+ <popup-confirm-order
+ :paras="initFutrue.para"
+ :symbol="symbol"
+ :direction="direction"
+ :balance="initFutrue.amount"
+ :price="quote.close"
+ @close="onClose"
+ @confirm="onOrderConfirm"
+ v-if="popType === 'confirm'"
+ />
+ <popup-delivery
+ showBtns
+ :detailData="detailData"
+ :key="detailData.order_no"
+ @close="onClose"
+ @continueToBuy="order()"
+ @timeEnd="handleTimeEnd"
+ :price="quote.close"
+ v-else
+ />
+ </van-popup>
+ </div>
</template>
<script>
-import { Tab, Tabs, Popup } from 'vant';
-import TradeHead from '@/components/trade-head/index.vue'
-import KlineCharts from '@/components/kline-charts'
-import deepChart from '@/components/deepChart'
-import pieChart from '@/components/pieChart'
-import inflowKline from '@/components/inflow-kline'
-import cylinderChart from '@/components/cylinderChart'
-import { _getHomeList, _collect, _deleteCollect } from '@/API/home.api'
-import { _getBalance, _futrueOrder, _futrueOrderInit, _futrueOrderDetail } from '@/API/trade.api'
-import { mapGetters } from 'vuex';
+import { Tab, Tabs, Popup } from "vant";
+import TradeHead from "@/components/trade-head/index.vue";
+import KlineCharts from "@/components/kline-charts";
+import deepChart from "@/components/deepChart";
+import pieChart from "@/components/pieChart";
+import inflowKline from "@/components/inflow-kline";
+import cylinderChart from "@/components/cylinderChart";
+import { _getHomeList, _collect, _deleteCollect } from "@/API/home.api";
+import {
+ _getBalance,
+ _futrueOrder,
+ _futrueOrderInit,
+ _futrueOrderDetail,
+} from "@/API/trade.api";
+import { mapGetters } from "vuex";
import { fixDate } from "@/utils/utis";
-import { WS_URL } from '@/config';
+import { WS_URL } from "@/config";
import PopupDelivery from "@/components/popup-delivery";
-import PopupConfirmOrder from '@/components/popup-confirm-order'
+import PopupConfirmOrder from "@/components/popup-confirm-order";
export default {
- name: 'TrendDetails',
- components: {
- [Tabs.name]: Tabs,
- [Tab.name]: Tab,
- [Popup.name]: Popup,
- KlineCharts,
- PopupDelivery,
- PopupConfirmOrder,
- TradeHead,
- deepChart,
- pieChart,
- inflowKline,
- cylinderChart
- },
- data() {
- const arr = []
- for (let i = 0; i < 17; i++) {
- arr.push({
- id: i
- })
- }
- return {
- show: false,
- direction: 'buy',
- initFutrue: {},
- detailData: {},
- price: '',
- popType: 'confirm', // confirm / counting
- fixDate,
- tab: '1', // 顶部标签
- symbol: '',
- quoteData: [],
- quote: {},
- active: 1,
- asks: arr, // 卖
- bids: arr, // 买
- deals: arr, // 交易
- sockets: {
- quote: null,
- deals: null,
- askBid: null
- },
- animated1: false,
- animated2: false,
- updateKey: 1,
- collected: '0', // 是否自选
- maxSell: 0, // 卖单最大
- maxBuy: 0, // 买单最大
- order_no: '',
- timer: null,
- isChangeLine: false,
- isReturn: true, //是否有返回
- kineType: '',
- // updateData: {}
- deepBuy: [],
- deepSell: [],
- fromPath: ''
- }
- },
- computed: {
- ...mapGetters({
- currency: 'home/currency',
- userInfo: 'user/userInfo',
- theme: 'home/theme'
- })
- },
- mounted() {
- //this.continueOrder()
- this.kineType = this.$route.query.kineType;
-
- },
- created() {
-
- },
- watch: {
- active(val) { // tab切换
- if (val / 1 === 1 || val / 1 === 3) {
- this.sockets.deals && this.sockets.deals.close()
- this.sockets.deals = null
- if (this.symbol) { // 刚进来可能是null
- this.startAskBidSocket()
- }
- } else {
- this.sockets.askBid && this.sockets.askBid.close()
- this.sockets.askBid = null
- this.startDealsSocket()
- }
- },
- symbol() {
- this.closeSocket()
- }
-
-
- },
- methods: {
- onChangeLine() {
- this.isChangeLine = true
- },
- continueOrder() {
- let direction = this.$route.query.direction
- if (direction) {
- this.symbol = this.$route.params.symbol
- this.tab = '2'
- console.log(this.tab)
- this.onSubmit(direction);
- }
- },
- order() {
- this.onSubmit(this.direction);
- },
- onTab(e) {
- this.tab = e
- // this.$router.go()
- if (e == 1) {
- this.animated1 = true
- this.timer = setTimeout(() => {
- this.animated1 = false
- clearTimeout(this.timer)
- }, 200)
- } else {
- this.animated2 = true
- this.timer = setTimeout(() => {
- this.animated2 = false
- clearTimeout(this.timer)
- }, 200)
- }
- },
-
- onCollect() { // 收藏,取消收藏
- let _api = _collect
- if (this.collected === '1') {
- _api = _deleteCollect
- }
- _api(this.symbol).then(() => {
- this.collected = this.collected === '1' ? '0' : '1'
- if (this.collected === '1') {
- this.$toast.success(this.$t('收藏成功'))
- } else {
- this.$toast.success(this.$t('取消收藏'))
- }
- })
- },
- goHistory() {
- const url = this.topIndex / 1 === 1 ? 'perpetualHistory' : 'deliveryContractHistory'
- this.$router.push({
- path: `/${url}?symbol=${this.symbol}`
- });
- },
- fetchData() {
- this.closeSocket()
- _getHomeList(this.symbol).then(data => {
- // console.log(data[0])
- this.quote = data[0]
- this.$nextTick(() => {
- if (!this.sockets.quote && this.symbol) {
- this.startQuoteScoket()
- }
-
- if ((this.tab === '1' || this.tab === '3') && !this.sockets.askBid && this.symbol) {
- this.startAskBidSocket()
- }
- })
- // this.startDealsSocket()
- })
- },
- startQuoteScoket() {
- this.sockets.quote = new WebSocket(`${WS_URL}/1/${this.symbol}`)
- this.sockets.quote.onmessage = (evt) => {
- const { data } = evt
- const { code, data: _data } = JSON.parse(data)
- if (code / 1 === 0) {
- this.quote = _data[0]
- let str = _data[0] ? _data[0].close.toString() : ''
- if (str.indexOf('.') != -1) {
- this.coinLength = str.split('.')[1].length
- }
- this.updateKey++
- }
- }
- },
- startAskBidSocket() { // 委托
- this.sockets.askBid = new WebSocket(`${WS_URL}/3/${this.symbol}`)
- this.sockets.askBid.onmessage = (evt) => {
- const { data } = evt
- const { code, data: _data } = JSON.parse(data)
- if (code / 1 === 0) {
- let { asks, bids } = _data
- this.deepBuy = bids
- this.deepSell = asks
- asks = asks.sort((prev, next) => prev.price - next.price)
- bids = bids.sort((prev, next) => prev.price - next.price)
- this.asks = asks.slice(0, 17)
- this.bids = bids.reverse().slice(0, 17)
- }
- }
- },
- startDealsSocket() { // 交易
- this.sockets.deals = new WebSocket(`${WS_URL}/2/${this.symbol}`)
- this.sockets.deals.onmessage = (evt) => {
- const { data } = evt
- const { code, data: _data } = JSON.parse(data)
- if (code / 1 === 0) {
- this.deals = _data.data.slice(0, 17)
- }
- }
- },
- onRoute(path) { // 跳转汇率页面
- this.$router.push(path)
- },
- onSubmit(direction) { // TODO: 返回
- if (this.tab === '2') {
- this.popType = 'confirm'
- this.direction = direction
- _futrueOrderInit(this.symbol).then(data => {
- this.initFutrue = data
- this.show = true
- })
- return
- } else {
- let currentType = direction == 'buy' ? 'long' : 'short'
- this.$router.push(`/perpetualContract/${this.symbol}?currentType=${currentType}`)
- }
- },
- onClose() {
- this.show = false
- },
- handleTimeEnd() {
- _futrueOrderDetail(this.order_no).then(data => {
- clearTimeout(this.timeout)
- this.detailData = data
- if (data.state !== 'created') {
- this.timeout = setTimeout(() => {
- this.handleTimeEnd()
- }, 1000)
- }
- })
- },
- onOrderConfirm(e) { // 确认订单
- _futrueOrder({ ...e, symbol: this.symbol, direction: this.direction, session_token: this.initFutrue.session_token }).then(data => {
- // console.log(data)
- this.order_no = data.order_no
- _getBalance().then(data => { // 刷新余额
- this.$store.commit('user/SET_USERINFO', { balance: data.money })
- })
- _futrueOrderDetail(data.order_no).then(data => {
- this.detailData = data
- this.popType = ''
- })
- }).catch(() => {
- setTimeout(() => {
- _futrueOrderInit(this.symbol).then(data => {
- this.order_no = ''
- this.initFutrue = data
- })
- }, 1000);
- })
- },
- closeSocket() {
- this.sockets.quote && this.sockets.quote.close()
- this.sockets.deals && this.sockets.deals.close()
- this.sockets.askBid && this.sockets.askBid.close()
- this.sockets.quote = null
- this.sockets.deals = null
- this.sockets.askBid = null
- },
- onUpdate(symbol) { // 更新
- this.closeSocket()
- this.symbol = symbol;
- this.fetchData()
- },
- openRecord() {
- if (this.fromPath == 'Trade') {
- this.$router.push('/tradeRecord/' + this.symbol)
- } else {
- this.$router.push('/perpetualHistory?symbol=' + this.symbol)
- }
- console.log(this.fromPath)
- }
- },
- activated() {
- // if (!this.sockets.quote && this.symbol) {
- // this.startQuoteScoket()
- // }
- // if (this.tab === '1' && !this.sockets.askBid && this.symbol) {
- // this.startAskBidSocket()
- // }
- if (!this.symbol) {
- this.symbol = this.$route.params.symbol
- this.fetchData()
- this.closeSocket()
- }
- if (this.tab === '2' && !this.sockets.deals && this.symbol) {
- this.startDealsSocket()
- }
- this.continueOrder()
- this.kineType = this.$route.query.kineType
- },
- deactivated() {
- this.closeSocket()
- },
- beforeDestroy() {
- this.sockets.quote && this.sockets.quote.close()
- this.sockets.deals && this.sockets.deals.close()
- this.sockets.askBid && this.sockets.askBid.close()
- this.sockets.quote = null
- this.sockets.deals = null
- this.sockets.askBid = null
- },
- beforeRouteEnter(to, from, next) {
- const { params: { symbol } } = to
- console.log(symbol)
- next(vm => {
- vm.fromPath = from.name
- vm.symbol = symbol
- vm.closeSocket()
- vm.fetchData()
- })
+ name: "TrendDetails",
+ components: {
+ [Tabs.name]: Tabs,
+ [Tab.name]: Tab,
+ [Popup.name]: Popup,
+ KlineCharts,
+ PopupDelivery,
+ PopupConfirmOrder,
+ TradeHead,
+ deepChart,
+ pieChart,
+ inflowKline,
+ cylinderChart,
+ },
+ data() {
+ const arr = [];
+ for (let i = 0; i < 17; i++) {
+ arr.push({
+ id: i,
+ });
}
-}
+ return {
+ show: false,
+ direction: "buy",
+ initFutrue: {},
+ detailData: {},
+ price: "",
+ popType: "confirm", // confirm / counting
+ fixDate,
+ tab: "1", // 顶部标签
+ symbol: "",
+ quoteData: [],
+ quote: {},
+ active: 1,
+ asks: arr, // 卖
+ bids: arr, // 买
+ deals: arr, // 交易
+ sockets: {
+ quote: null,
+ deals: null,
+ askBid: null,
+ },
+ animated1: false,
+ animated2: false,
+ updateKey: 1,
+ collected: "0", // 是否自选
+ maxSell: 0, // 卖单最大
+ maxBuy: 0, // 买单最大
+ order_no: "",
+ timer: null,
+ isChangeLine: false,
+ isReturn: true, //是否有返回
+ kineType: "",
+ // updateData: {}
+ deepBuy: [],
+ deepSell: [],
+ fromPath: "",
+ };
+ },
+ computed: {
+ ...mapGetters({
+ currency: "home/currency",
+ userInfo: "user/userInfo",
+ theme: "home/theme",
+ }),
+ },
+ mounted() {
+ //this.continueOrder()
+ this.kineType = this.$route.query.kineType;
+ },
+ created() {},
+ watch: {
+ active(val) {
+ // tab切换
+ if (val / 1 === 1 || val / 1 === 3) {
+ this.sockets.deals && this.sockets.deals.close();
+ this.sockets.deals = null;
+ if (this.symbol) {
+ // 刚进来可能是null
+ this.startAskBidSocket();
+ }
+ } else {
+ this.sockets.askBid && this.sockets.askBid.close();
+ this.sockets.askBid = null;
+ this.startDealsSocket();
+ }
+ },
+ symbol() {
+ this.closeSocket();
+ },
+ },
+ methods: {
+ onChangeLine() {
+ this.isChangeLine = true;
+ },
+ continueOrder() {
+ let direction = this.$route.query.direction;
+ if (direction) {
+ this.symbol = this.$route.params.symbol;
+ this.tab = "2";
+ console.log(this.tab);
+ this.onSubmit(direction);
+ }
+ },
+ order() {
+ this.onSubmit(this.direction);
+ },
+ onTab(e) {
+ this.tab = e;
+ // this.$router.go()
+ if (e == 1) {
+ this.animated1 = true;
+ this.timer = setTimeout(() => {
+ this.animated1 = false;
+ clearTimeout(this.timer);
+ }, 200);
+ } else {
+ this.animated2 = true;
+ this.timer = setTimeout(() => {
+ this.animated2 = false;
+ clearTimeout(this.timer);
+ }, 200);
+ }
+ },
+
+ onCollect() {
+ // 收藏,取消收藏
+ let _api = _collect;
+ if (this.collected === "1") {
+ _api = _deleteCollect;
+ }
+ _api(this.symbol).then(() => {
+ this.collected = this.collected === "1" ? "0" : "1";
+ if (this.collected === "1") {
+ this.$toast.success(this.$t("收藏成功"));
+ } else {
+ this.$toast.success(this.$t("取消收藏"));
+ }
+ });
+ },
+ goHistory() {
+ const url =
+ this.topIndex / 1 === 1
+ ? "perpetualHistory"
+ : "deliveryContractHistory";
+ this.$router.push({
+ path: `/${url}?symbol=${this.symbol}`,
+ });
+ },
+ fetchData() {
+ this.closeSocket();
+ _getHomeList(this.symbol).then((data) => {
+ // console.log(data[0])
+ this.quote = data[0];
+ this.$nextTick(() => {
+ if (!this.sockets.quote && this.symbol) {
+ this.startQuoteScoket();
+ }
+
+ if (
+ (this.tab === "1" || this.tab === "3") &&
+ !this.sockets.askBid &&
+ this.symbol
+ ) {
+ this.startAskBidSocket();
+ }
+ });
+ // this.startDealsSocket()
+ });
+ },
+ startQuoteScoket() {
+ this.sockets.quote = new WebSocket(`${WS_URL}/1/${this.symbol}`);
+ this.sockets.quote.onmessage = (evt) => {
+ const { data } = evt;
+ const { code, data: _data } = JSON.parse(data);
+ if (code / 1 === 0) {
+ this.quote = _data[0];
+ let str = _data[0] ? _data[0].close.toString() : "";
+ if (str.indexOf(".") != -1) {
+ this.coinLength = str.split(".")[1].length;
+ }
+ this.updateKey++;
+ }
+ };
+ },
+ startAskBidSocket() {
+ // 委托
+ this.sockets.askBid = new WebSocket(`${WS_URL}/3/${this.symbol}`);
+ this.sockets.askBid.onmessage = (evt) => {
+ const { data } = evt;
+ const { code, data: _data } = JSON.parse(data);
+ if (code / 1 === 0) {
+ let { asks, bids } = _data;
+ this.deepBuy = bids;
+ this.deepSell = asks;
+ asks = asks.sort((prev, next) => prev.price - next.price);
+ bids = bids.sort((prev, next) => prev.price - next.price);
+ this.asks = asks.slice(0, 17);
+ this.bids = bids.reverse().slice(0, 17);
+ }
+ };
+ },
+ startDealsSocket() {
+ // 交易
+ this.sockets.deals = new WebSocket(`${WS_URL}/2/${this.symbol}`);
+ this.sockets.deals.onmessage = (evt) => {
+ const { data } = evt;
+ const { code, data: _data } = JSON.parse(data);
+ if (code / 1 === 0) {
+ this.deals = _data.data.slice(0, 17);
+ }
+ };
+ },
+ onRoute(path) {
+ // 跳转汇率页面
+ this.$router.push(path);
+ },
+ onSubmit(direction) {
+ // TODO: 返回
+ if (this.tab === "2") {
+ this.popType = "confirm";
+ this.direction = direction;
+ _futrueOrderInit(this.symbol).then((data) => {
+ this.initFutrue = data;
+ this.show = true;
+ });
+ return;
+ } else {
+ let currentType = direction == "buy" ? "long" : "short";
+ this.$router.push(
+ `/perpetualContract/${this.symbol}?currentType=${currentType}`
+ );
+ }
+ },
+ onClose() {
+ this.show = false;
+ },
+ handleTimeEnd() {
+ _futrueOrderDetail(this.order_no).then((data) => {
+ clearTimeout(this.timeout);
+ this.detailData = data;
+ if (data.state !== "created") {
+ this.timeout = setTimeout(() => {
+ this.handleTimeEnd();
+ }, 1000);
+ }
+ });
+ },
+ onOrderConfirm(e) {
+ // 确认订单
+ _futrueOrder({
+ ...e,
+ symbol: this.symbol,
+ direction: this.direction,
+ session_token: this.initFutrue.session_token,
+ })
+ .then((data) => {
+ // console.log(data)
+ this.order_no = data.order_no;
+ _getBalance().then((data) => {
+ // 刷新余额
+ this.$store.commit("user/SET_USERINFO", { balance: data.money });
+ });
+ _futrueOrderDetail(data.order_no).then((data) => {
+ this.detailData = data;
+ this.popType = "";
+ });
+ })
+ .catch(() => {
+ setTimeout(() => {
+ _futrueOrderInit(this.symbol).then((data) => {
+ this.order_no = "";
+ this.initFutrue = data;
+ });
+ }, 1000);
+ });
+ },
+ closeSocket() {
+ this.sockets.quote && this.sockets.quote.close();
+ this.sockets.deals && this.sockets.deals.close();
+ this.sockets.askBid && this.sockets.askBid.close();
+ this.sockets.quote = null;
+ this.sockets.deals = null;
+ this.sockets.askBid = null;
+ },
+ onUpdate(symbol) {
+ // 更新
+ this.closeSocket();
+ this.symbol = symbol;
+ this.fetchData();
+ },
+ openRecord() {
+ if (this.fromPath == "Trade") {
+ this.$router.push("/tradeRecord/" + this.symbol);
+ } else {
+ this.$router.push("/perpetualHistory?symbol=" + this.symbol);
+ }
+ console.log(this.fromPath);
+ },
+ },
+ activated() {
+ // if (!this.sockets.quote && this.symbol) {
+ // this.startQuoteScoket()
+ // }
+ // if (this.tab === '1' && !this.sockets.askBid && this.symbol) {
+ // this.startAskBidSocket()
+ // }
+ if (!this.symbol) {
+ this.symbol = this.$route.params.symbol;
+ this.fetchData();
+ this.closeSocket();
+ }
+ if (this.tab === "2" && !this.sockets.deals && this.symbol) {
+ this.startDealsSocket();
+ }
+ this.continueOrder();
+ this.kineType = this.$route.query.kineType;
+ },
+ deactivated() {
+ this.closeSocket();
+ },
+ beforeDestroy() {
+ this.sockets.quote && this.sockets.quote.close();
+ this.sockets.deals && this.sockets.deals.close();
+ this.sockets.askBid && this.sockets.askBid.close();
+ this.sockets.quote = null;
+ this.sockets.deals = null;
+ this.sockets.askBid = null;
+ },
+ beforeRouteEnter(to, from, next) {
+ const {
+ params: { symbol },
+ } = to;
+ console.log(symbol);
+ next((vm) => {
+ vm.fromPath = from.name;
+ vm.symbol = symbol;
+ vm.closeSocket();
+ vm.fetchData();
+ });
+ },
+};
</script>
<style lang="scss" scoped>
@import "../../assets/init.scss";
-
@keyframes animate1 {
- 0% {
- opacity: 1;
- transform: translate3d(100%, 0, 0);
- }
+ 0% {
+ opacity: 1;
+ transform: translate3d(100%, 0, 0);
+ }
- // 40% {
- // opacity: 1;
- // transform: translate3d(50%, 0, 0);
- // }
- 100% {
- opacity: 1;
- transform: translate3d(0%, 0, 0);
- }
+ // 40% {
+ // opacity: 1;
+ // transform: translate3d(50%, 0, 0);
+ // }
+ 100% {
+ opacity: 1;
+ transform: translate3d(0%, 0, 0);
+ }
}
@keyframes animate2 {
- 0% {
- opacity: 1;
- transform: translate3d(-100%, 0, 0);
- }
+ 0% {
+ opacity: 1;
+ transform: translate3d(-100%, 0, 0);
+ }
- // 40% {
- // opacity: 1;
- // transform: translate3d(50%, 0, 0);
- // }
- 100% {
- opacity: 1;
- transform: translate3d(0%, 0, 0);
- }
+ // 40% {
+ // opacity: 1;
+ // transform: translate3d(50%, 0, 0);
+ // }
+ 100% {
+ opacity: 1;
+ transform: translate3d(0%, 0, 0);
+ }
}
.slide1 {
- animation: animate1 200ms linear;
+ animation: animate1 200ms linear;
}
.slide2 {
- animation: animate2 200ms linear;
+ animation: animate2 200ms linear;
}
.tabBtn {
- border: 2px solid #EAEDF2;
- border-radius: 9px;
- color: #868D9A;
- ;
+ border: 2px solid #eaedf2;
+ border-radius: 9px;
+ color: #868d9a;
}
.activeBtn {
- @include themify() {
- background: themed("btn_main");
- }
+ @include themify() {
+ background: themed("btn_main");
+ }
- color: #fff;
- border: none;
+ color: #fff;
+ border: none;
}
.pb-180 {
- ::v-deep .van-tab {
- flex: initial;
- padding: 0 32px;
- }
+ ::v-deep .van-tab {
+ flex: initial;
+ padding: 0 32px;
+ }
- ::v-deep .van-tab__text--ellipsis {
- padding: 14px 0;
- }
+ ::v-deep .van-tab__text--ellipsis {
+ padding: 14px 0;
+ }
- ::v-deep .van-tabs__line {
- width: 160px;
- }
+ ::v-deep .van-tabs__line {
+ width: 160px;
+ }
}
.buttonSafe {
- bottom: calc(constant(safe-area-inset-bottom));
- bottom: calc(env(safe-area-inset-bottom));
+ bottom: calc(constant(safe-area-inset-bottom));
+ bottom: calc(env(safe-area-inset-bottom));
}
-
.trend-detail {
- .tabBtn {
- @include themify() {
- border: 2px solid themed("border_color");
- }
+ .tabBtn {
+ @include themify() {
+ border: 2px solid themed("border_color");
}
+ }
- ::v-deep .van-tabs__nav {
- @include themify() {
- background: themed("main_background") !important;
- }
+ ::v-deep .van-tabs__nav {
+ @include themify() {
+ background: themed("main_background") !important;
}
+ }
- ::v-deep .van-tab--active {
- @include themify() {
- color: themed("text_color");
- }
+ ::v-deep .van-tab--active {
+ @include themify() {
+ color: themed("text_color");
}
+ }
- ul li {
- @include themify() {
- background: themed("main_background");
- }
+ ul li {
+ @include themify() {
+ background: themed("main_background");
}
+ }
- .activeBtn {
- border: none !important;
- }
-
+ .activeBtn {
+ border: none !important;
+ }
}
-
.deep-chart-box {
- padding-left: 30px;
- overflow: hidden;
+ padding-left: 30px;
+ overflow: hidden;
}
.capital-box {
- padding: 30px 30px;
+ padding: 30px 30px;
- .capital-flows {
- display: flex;
- align-items: center;
+ .capital-flows {
+ display: flex;
+ align-items: center;
- .title {
- color: #ECF0F8;
- font-size: 16px;
- font-weight: bold;
- margin-right: 10px;
- display: flex;
- }
+ .title {
+ color: #ecf0f8;
+ font-size: 16px;
+ font-weight: bold;
+ margin-right: 10px;
+ display: flex;
+ }
+ }
+
+ .tab-box {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 20px;
+
+ .tab-item {
+ padding: 15px 22px;
+ background: #171a27;
+ border-radius: 2px;
+ color: #ffffff;
+ font-size: 30px;
+ margin-right: 30px;
+ margin-bottom: 20px;
+ font-size: 14px;
+ }
+ }
+
+ .pie-box {
+ background: #161d2b;
+ padding: 50px 0;
+ }
+
+ .order-box {
+ border: 1px dashed #3c3f55;
+ border-radius: 3px;
+ margin-top: 20px;
+ color: #c5cbd8;
+
+ .order-header {
+ display: flex;
}
- .tab-box {
- display: flex;
- flex-wrap: wrap;
- margin-top: 20px;
+ .flex-item {
+ flex: 1;
+ text-align: center;
+ padding: 20px 0;
+ }
+ }
- .tab-item {
- padding: 15px 22px;
- background: #171A27;
- border-radius: 2px;
- color: #FFFFFF;
- font-size: 30px;
- margin-right: 30px;
- margin-bottom: 20px;
- font-size: 14px;
- }
+ .capital-title {
+ padding-top: 30px;
+
+ .title {
+ color: #ecf0f8;
+ font-size: 30px;
+ font-weight: bold;
+ margin-right: 10px;
}
- .pie-box {
- background: #161D2B;
- padding: 50px 0;
+ .text {
+ color: #c5cbd8;
+ font-size: 14px;
+ margin-top: 10px;
}
-
- .order-box {
- border: 1px dashed #3C3F55;
- border-radius: 3px;
- margin-top: 20px;
- color: #C5CBD8;
-
- .order-header {
- display: flex;
- }
-
- .flex-item {
- flex: 1;
- text-align: center;
- padding: 20px 0;
-
- }
- }
-
- .capital-title {
- padding-top: 30px;
-
- .title {
- color: #ECF0F8;
- font-size: 30px;
- font-weight: bold;
- margin-right: 10px;
- }
-
- .text {
- color: #C5CBD8;
- font-size: 14px;
- margin-top: 10px;
- }
- }
+ }
}
.buy-sell-box {
+ display: flex;
+ justify-content: center;
+ margin: 30px 0px;
+
+ .buy-item {
display: flex;
- justify-content: center;
- margin: 30px 0px;
- .buy-item {
- display: flex;
-
- @include themify() {
- color: themed("text_color");
- }
-
- .bg-line {
- width: 40px;
- height: 40px;
- background: #D9001B;
- border-radius: 5px;
- margin-right: 10px;
- }
+ @include themify() {
+ color: themed("text_color");
}
- .sell-item {
- margin-left: 30px;
- display: flex;
-
- @include themify() {
- color: themed("text_color");
- }
-
- .bg-line {
- width: 40px;
- height: 40px;
- background: #2EBD85;
- border-radius: 5px;
- margin-right: 10px;
- }
+ .bg-line {
+ width: 40px;
+ height: 40px;
+ background: #d9001b;
+ border-radius: 5px;
+ margin-right: 10px;
}
+ }
+
+ .sell-item {
+ margin-left: 30px;
+ display: flex;
+
+ @include themify() {
+ color: themed("text_color");
+ }
+
+ .bg-line {
+ width: 40px;
+ height: 40px;
+ background: #2ebd85;
+ border-radius: 5px;
+ margin-right: 10px;
+ }
+ }
}
.bg-white {
- .capital-flows {
- display: flex;
- align-items: center;
+ .capital-flows {
+ display: flex;
+ align-items: center;
- .title {
- color: #000;
- font-size: 16px;
- font-weight: bold;
- margin-right: 10px;
- display: flex;
- }
+ .title {
+ color: #000;
+ font-size: 16px;
+ font-weight: bold;
+ margin-right: 10px;
+ display: flex;
+ }
+ }
+
+ .tab-box {
+ .tab-item {
+ background: #f7f8fa;
+ color: #000;
+ font-size: 14px;
+ }
+ }
+
+ .pie-box {
+ background: #fff;
+ padding: 50px 0;
+ }
+
+ .order-box {
+ border: 1px dashed #000;
+ border-radius: 3px;
+ margin-top: 20px;
+ color: #000;
+ }
+
+ .capital-title {
+ padding-top: 30px;
+
+ .title {
+ color: #000;
+ font-size: 30px;
+ font-weight: bold;
+ margin-right: 10px;
}
-
- .tab-box {
- .tab-item {
- background: #f7f8fa;
- color: #000;
- font-size: 14px;
- }
+ .text {
+ color: #000;
+ font-size: 14px;
+ margin-top: 10px;
}
-
- .pie-box {
- background: #fff;
- padding: 50px 0;
- }
-
- .order-box {
- border: 1px dashed #000;
- border-radius: 3px;
- margin-top: 20px;
- color: #000;
- }
-
- .capital-title {
- padding-top: 30px;
-
- .title {
- color: #000;
- font-size: 30px;
- font-weight: bold;
- margin-right: 10px;
- }
-
- .text {
- color: #000;
- font-size: 14px;
- margin-top: 10px;
- }
- }
+ }
}
::v-deep .van-popup {
- @include themify() {
- background: themed("main_background");
- }
+ @include themify() {
+ background: themed("main_background");
+ }
}
.tabContent {
- ::v-deep .van-tabs__wrap {
- height: 100% !important;
- }
+ ::v-deep .van-tabs__wrap {
+ height: 100% !important;
+ }
}
</style>
--
Gitblit v1.9.3