|
|
@@ -2,52 +2,57 @@
|
|
|
<div class="app-echats-kline">
|
|
|
<div class="app-echats-kline__container main">
|
|
|
<ul class="legend">
|
|
|
- <li class="legend-item">开: {{klineDetail ? klineDetail.open : '--'}}</li>
|
|
|
- <li class="legend-item">收: {{klineDetail ? klineDetail.close : '--'}}</li>
|
|
|
- <li class="legend-item">高: {{klineDetail ? klineDetail.highest : '--'}}</li>
|
|
|
- <li class="legend-item">低: {{klineDetail ? klineDetail.lowest : '--'}}</li>
|
|
|
- <li class="legend-item">MA5: {{klineDetail ? klineDetail.ma5 : '--'}}</li>
|
|
|
- <li class="legend-item">MA10: {{klineDetail ? klineDetail.ma10 : '--'}}</li>
|
|
|
- <li class="legend-item">MA15: {{klineDetail ? klineDetail.ma15 : '--'}}</li>
|
|
|
+ <li class="legend-item">开: {{ klineDetail ? klineDetail.open : '--' }}</li>
|
|
|
+ <li class="legend-item">收: {{ klineDetail ? klineDetail.close : '--' }}</li>
|
|
|
+ <li class="legend-item">高: {{ klineDetail ? klineDetail.highest : '--' }}</li>
|
|
|
+ <li class="legend-item">低: {{ klineDetail ? klineDetail.lowest : '--' }}</li>
|
|
|
+ <li class="legend-item">MA5: {{ klineDetail ? klineDetail.ma5 : '--' }}</li>
|
|
|
+ <li class="legend-item">MA10: {{ klineDetail ? klineDetail.ma10 : '--' }}</li>
|
|
|
+ <li class="legend-item">MA15: {{ klineDetail ? klineDetail.ma15 : '--' }}</li>
|
|
|
</ul>
|
|
|
- <app-echarts :option="klineOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading" @ready="mainReady" />
|
|
|
+ <app-echarts :option="klineOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading"
|
|
|
+ @ready="mainReady" />
|
|
|
</div>
|
|
|
<template v-if="showIndicator">
|
|
|
<div class="app-echats-kline__container indicator">
|
|
|
<!-- MACD -->
|
|
|
<section class="section" v-if="activeSeriesType === EChartsSeriesType.MACD">
|
|
|
<ul class="legend">
|
|
|
- <li class="legend-item">MACD: {{macdDetail ? macdDetail.macd : '--'}}</li>
|
|
|
- <li class="legend-item">DIF: {{macdDetail ? macdDetail.dif : '--'}}</li>
|
|
|
- <li class="legend-item">DEA: {{macdDetail ? macdDetail.dea : '--'}}</li>
|
|
|
+ <li class="legend-item">MACD: {{ macdDetail ? macdDetail.macd : '--' }}</li>
|
|
|
+ <li class="legend-item">DIF: {{ macdDetail ? macdDetail.dif : '--' }}</li>
|
|
|
+ <li class="legend-item">DEA: {{ macdDetail ? macdDetail.dea : '--' }}</li>
|
|
|
</ul>
|
|
|
- <app-echarts :option="macdOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading" @ready="indicatorReady" />
|
|
|
+ <app-echarts :option="macdOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading"
|
|
|
+ @ready="indicatorReady" />
|
|
|
</section>
|
|
|
<!-- VOL -->
|
|
|
<section class="section" v-if="activeSeriesType === EChartsSeriesType.VOL">
|
|
|
<ul class="legend">
|
|
|
- <li class="legend-item">VOL: {{volDetail ? volDetail.vol : '--'}}</li>
|
|
|
+ <li class="legend-item">VOL: {{ volDetail ? volDetail.vol : '--' }}</li>
|
|
|
</ul>
|
|
|
- <app-echarts :option="volOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading" @ready="indicatorReady" />
|
|
|
+ <app-echarts :option="volOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading"
|
|
|
+ @ready="indicatorReady" />
|
|
|
</section>
|
|
|
<!-- KDJ -->
|
|
|
<section class="section" v-if="activeSeriesType === EChartsSeriesType.KDJ">
|
|
|
<ul class="legend">
|
|
|
- <li class="legend-item">K: {{kdjDetail ? kdjDetail.k : '--'}}</li>
|
|
|
- <li class="legend-item">D: {{kdjDetail ? kdjDetail.d : '--'}}</li>
|
|
|
- <li class="legend-item">J: {{kdjDetail ? kdjDetail.j : '--'}}</li>
|
|
|
+ <li class="legend-item">K: {{ kdjDetail ? kdjDetail.k : '--' }}</li>
|
|
|
+ <li class="legend-item">D: {{ kdjDetail ? kdjDetail.d : '--' }}</li>
|
|
|
+ <li class="legend-item">J: {{ kdjDetail ? kdjDetail.j : '--' }}</li>
|
|
|
</ul>
|
|
|
- <app-echarts :option="kdjOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading" @ready="indicatorReady" />
|
|
|
+ <app-echarts :option="kdjOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading"
|
|
|
+ @ready="indicatorReady" />
|
|
|
</section>
|
|
|
<!-- CCI -->
|
|
|
<section class="section" v-if="activeSeriesType === EChartsSeriesType.CCI">
|
|
|
<ul class="legend">
|
|
|
- <li class="legend-item">CCI: {{cciDetail ? cciDetail.cci : '--'}}</li>
|
|
|
+ <li class="legend-item">CCI: {{ cciDetail ? cciDetail.cci : '--' }}</li>
|
|
|
</ul>
|
|
|
- <app-echarts :option="cciOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading" @ready="indicatorReady" />
|
|
|
+ <app-echarts :option="cciOption" :empty="showEmpty" v-model:index="dataIndex" v-model:loading="loading"
|
|
|
+ @ready="indicatorReady" />
|
|
|
</section>
|
|
|
</div>
|
|
|
- <app-tabbar theme="menu" :data-source="tabs" @change="tabChange" />
|
|
|
+ <app-tab theme="menu" :data-source="tabs" @change="tabChange" />
|
|
|
</template>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -61,8 +66,7 @@ import { useOptions } from './options'
|
|
|
import moment from 'moment';
|
|
|
import * as echarts from 'echarts'
|
|
|
import AppEcharts from '@/components/base/echarts/index.vue'
|
|
|
-import AppTabbar from '@/components/base/tabbar/index.vue'
|
|
|
-import { Tabbar } from '@/components/base/tabbar/interface'
|
|
|
+import AppTab from '@/components/base/tab/index.vue'
|
|
|
|
|
|
const props = defineProps({
|
|
|
goodsCode: String,
|
|
|
@@ -93,7 +97,7 @@ const volDetail = computed(() => volData.source[dataIndex.value]);
|
|
|
const kdjDetail = computed(() => kdjData.source[dataIndex.value]);
|
|
|
const cciDetail = computed(() => cciData.source[dataIndex.value]);
|
|
|
|
|
|
-const tabs: Tabbar[] = [
|
|
|
+const tabs = [
|
|
|
{ label: 'MACD', value: EChartsSeriesType.MACD },
|
|
|
{ label: 'VOL', value: EChartsSeriesType.VOL },
|
|
|
{ label: 'KDJ', value: EChartsSeriesType.KDJ },
|
|
|
@@ -153,8 +157,8 @@ const initData = () => {
|
|
|
}
|
|
|
|
|
|
// 指标切换
|
|
|
-const tabChange = (item: Tabbar<EChartsSeriesType>) => {
|
|
|
- activeSeriesType.value = item.value;
|
|
|
+const tabChange = (index: number) => {
|
|
|
+ activeSeriesType.value = tabs[index].value;
|
|
|
setTimeout(() => {
|
|
|
initOptions();
|
|
|
}, 0);
|