This commit is contained in:
2026-05-13 17:46:25 +08:00
parent f5df65fb75
commit 938a5c06da
+48 -16
View File
@@ -141,24 +141,34 @@
<el-tabs v-model="activeDetailTab" class="detail-tabs"> <el-tabs v-model="activeDetailTab" class="detail-tabs">
<el-tab-pane :label="`涨停板(${limitStocks.length})`" name="limit"> <el-tab-pane :label="`涨停板(${limitStocks.length})`" name="limit">
<el-table :data="limitStocks" border stripe max-height="520"> <el-table :data="limitStocks" border stripe max-height="520">
<el-table-column prop="name" label="股票简称" min-width="120" /> <el-table-column prop="name" label="股票简称" min-width="120" sortable />
<el-table-column prop="ts_code" label="股票代码" min-width="120" /> <el-table-column prop="ts_code" label="股票代码" min-width="120" sortable />
<el-table-column prop="industry" label="行业" min-width="120" show-overflow-tooltip /> <el-table-column prop="industry" label="行业" min-width="120" sortable show-overflow-tooltip />
<el-table-column label="T日最高" width="100" align="right"> <el-table-column prop="first_limit_time" label="首次涨停时间" width="130" align="center" sortable>
<template #default="{ row }">
{{ formatLimitTime(row.first_limit_time) }}
</template>
</el-table-column>
<el-table-column prop="open_times" label="炸板次数" width="100" align="center" sortable>
<template #default="{ row }">
{{ formatOpenTimes(row.open_times) }}
</template>
</el-table-column>
<el-table-column prop="t_high" label="T日最高" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.t_high) }}</template> <template #default="{ row }">{{ formatPrice(row.t_high) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T日收盘" width="100" align="right"> <el-table-column prop="t_close" label="T日收盘" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.t_close) }}</template> <template #default="{ row }">{{ formatPrice(row.t_close) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T+1最高" width="100" align="right"> <el-table-column prop="next_high" label="T+1最高" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.next_high) }}</template> <template #default="{ row }">{{ formatPrice(row.next_high) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T+1盈利" width="100" align="center"> <el-table-column prop="next_intraday_profitable" label="T+1盈利" width="100" align="center" sortable>
<template #default="{ row }"> <template #default="{ row }">
{{ formatProfitFlag(row.next_intraday_profitable) }} {{ formatProfitFlag(row.next_intraday_profitable) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="最高收益" width="110" align="right"> <el-table-column prop="next_high_profit_pct" label="最高收益" width="110" align="right" sortable>
<template #default="{ row }"> <template #default="{ row }">
{{ formatSignedRate(row.next_high_profit_pct) }} {{ formatSignedRate(row.next_high_profit_pct) }}
</template> </template>
@@ -167,24 +177,34 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="`炸板(${breakStocks.length})`" name="break"> <el-tab-pane :label="`炸板(${breakStocks.length})`" name="break">
<el-table :data="breakStocks" border stripe max-height="520"> <el-table :data="breakStocks" border stripe max-height="520">
<el-table-column prop="name" label="股票简称" min-width="120" /> <el-table-column prop="name" label="股票简称" min-width="120" sortable />
<el-table-column prop="ts_code" label="股票代码" min-width="120" /> <el-table-column prop="ts_code" label="股票代码" min-width="120" sortable />
<el-table-column prop="industry" label="行业" min-width="120" show-overflow-tooltip /> <el-table-column prop="industry" label="行业" min-width="120" sortable show-overflow-tooltip />
<el-table-column label="T日最高" width="100" align="right"> <el-table-column prop="first_limit_time" label="首次涨停时间" width="130" align="center" sortable>
<template #default="{ row }">
{{ formatLimitTime(row.first_limit_time) }}
</template>
</el-table-column>
<el-table-column prop="open_times" label="炸板次数" width="100" align="center" sortable>
<template #default="{ row }">
{{ formatOpenTimes(row.open_times) }}
</template>
</el-table-column>
<el-table-column prop="t_high" label="T日最高" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.t_high) }}</template> <template #default="{ row }">{{ formatPrice(row.t_high) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T日收盘" width="100" align="right"> <el-table-column prop="t_close" label="T日收盘" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.t_close) }}</template> <template #default="{ row }">{{ formatPrice(row.t_close) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T+1最高" width="100" align="right"> <el-table-column prop="next_high" label="T+1最高" width="100" align="right" sortable>
<template #default="{ row }">{{ formatPrice(row.next_high) }}</template> <template #default="{ row }">{{ formatPrice(row.next_high) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="T+1盈利" width="100" align="center"> <el-table-column prop="next_intraday_profitable" label="T+1盈利" width="100" align="center" sortable>
<template #default="{ row }"> <template #default="{ row }">
{{ formatProfitFlag(row.next_intraday_profitable) }} {{ formatProfitFlag(row.next_intraday_profitable) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="最高收益" width="110" align="right"> <el-table-column prop="next_high_profit_pct" label="最高收益" width="110" align="right" sortable>
<template #default="{ row }"> <template #default="{ row }">
{{ formatSignedRate(row.next_high_profit_pct) }} {{ formatSignedRate(row.next_high_profit_pct) }}
</template> </template>
@@ -395,6 +415,18 @@ const formatProfitFlag = (value) => {
if (value === false) return "否"; if (value === false) return "否";
return "--"; return "--";
}; };
const formatLimitTime = (value) => {
if (value === null || value === undefined || value === "") return "--";
return String(value);
};
const formatOpenTimes = (value) => {
if (value === null || value === undefined || value === "") return "--";
const number = Number(value);
return Number.isFinite(number) ? number : "--";
};
</script> </script>
<style scoped> <style scoped>