From f7a99184725f7ea0884cf478f169aad4e5b6583c Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sun, 13 Jul 2025 18:27:57 +0800
Subject: [PATCH] 1
---
src/assets/img/rise.png | 0
src/assets/img/descend.png | 0
src/components/pageHead.vue | 68 +
src/locales/jp.json | 35
src/assets/img/cc_jl.png | 0
src/axios/api.js | 12
src/page/home/newList.vue | 76 +
src/locales/cht.json | 35
src/assets/img/钱袋.png | 0
src/page/home/newPage.vue | 208 +-
src/locales/en.json | 35
src/page/login/login.vue | 3
src/locales/ens.json | 35
src/assets/img/zhaobudao2.png | 0
src/page/markets/aiTrading.vue | 142 ++
src/locales/fra.json | 35
src/components/nPagination.vue | 172 +
src/locales/zh.json | 37
src/components/foot.vue | 18
src/page/markets/blockTrading.vue | 199 +++
src/page/markets/ipo.vue | 148 ++
src/page/home/components/echart.vue | 72
src/locales/de.json | 35
src/assets/img/cc_ss.png | 0
src/page/markets/blockTradingOrder.vue | 205 +++
src/page/markets/ipoOrder.vue | 207 +++
src/components/index-component.vue | 87 +
src/page/home/homeIndex.vue | 253 +--
src/router/index.js | 113 +
src/components/stock-list.vue | 171 ++
src/page/markets/aiTradingOrder.vue | 169 ++
src/assets/img/cz.png | 0
src/components/tabHead.vue | 116 +
src/page/trading/TradeNew.vue | 176 ++
src/page/markets/markets.vue | 336 +---
src/main.js | 10
src/assets/img/jl.png | 0
src/assets/img/tx.png | 0
src/axios/api.url.js | 4
src/locales/kor.json | 35
src/page/watchlists/watchlists.vue | 99 +
src/locales/hi.json | 35
src/page/home/components/newsItem.vue | 90 +
src/App.vue | 40
src/locales/th.json | 35
src/page/user/account.vue | 338 +++++
46 files changed, 3,266 insertions(+), 618 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 22efa15..6fdac31 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,12 +1,20 @@
<template>
- <div id="app" :class="`${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`">
+ <div
+ id="app"
+ :class="`${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`"
+ >
<div :class="`header-box`" v-if="hasHeader && title !== $t('hj248')">
<mt-header :title="title">
<mt-button icon="back" slot="left" @click="$router.go(-1)"></mt-button>
<div v-if="!is_Show">
<template v-if="iconRight == 'search'">
- <img slot="right" class="search-right" src="./assets/ico/fangdajing.png" alt />
+ <img
+ slot="right"
+ class="search-right"
+ src="./assets/ico/fangdajing.png"
+ alt
+ />
</template>
<template v-else>
<mt-button icon="more" slot="right"></mt-button>
@@ -41,7 +49,7 @@
components: {
foot,
elalert,
- loginPopup,
+ loginPopup
},
name: "App",
created() {
@@ -89,7 +97,7 @@
console.log("slide-right");
this.transitionName = "slide-right";
}
- },
+ }
},
data() {
return {
@@ -98,7 +106,7 @@
iconRight: "default",
transitionName: "",
is_Show: true,
- is_foot: true,
+ is_foot: true
};
},
methods: {
@@ -109,8 +117,8 @@
},
dialogClose() {
this.$store.commit("dialogVisible", false);
- },
- },
+ }
+ }
};
</script>
@@ -124,10 +132,17 @@
@brown: #ff976a;
@grey: #dddddd;
+/deep/ .no_data {
+ width: 100%;
+ padding-top: 2em;
+ img {
+ width: 50%;
+ }
+}
/deep/ .line-one {
white-space: nowrap;
overflow: hidden;
- text-overflow: ellipsis
+ text-overflow: ellipsis;
}
/deep/ .flex-center {
@@ -159,7 +174,6 @@
justify-content: flex-end;
align-items: center;
}
-
/deep/ .van-list__finished-text {
line-height: 1.925926rem !important;
@@ -275,7 +289,7 @@
/deep/.van-skeleton__row,
.van-skeleton__title {
- background-color: #fff !important;
+ // background-color: #fff !important;
}
}
@@ -309,7 +323,8 @@
color: #000;
}
- /deep/.mint-tab-container {}
+ /deep/.mint-tab-container {
+ }
/deep/.mint-tab-item {
background: #272733;
@@ -334,7 +349,8 @@
position: relative !important;
}
-.topLeft {}
+.topLeft {
+}
/deep/.el-alert {
width: 75% !important;
diff --git a/src/assets/img/cc_jl.png b/src/assets/img/cc_jl.png
new file mode 100644
index 0000000..55d7f3e
--- /dev/null
+++ b/src/assets/img/cc_jl.png
Binary files differ
diff --git a/src/assets/img/cc_ss.png b/src/assets/img/cc_ss.png
new file mode 100644
index 0000000..d3f1d30
--- /dev/null
+++ b/src/assets/img/cc_ss.png
Binary files differ
diff --git a/src/assets/img/cz.png b/src/assets/img/cz.png
new file mode 100644
index 0000000..5d8c320
--- /dev/null
+++ b/src/assets/img/cz.png
Binary files differ
diff --git a/src/assets/img/descend.png b/src/assets/img/descend.png
new file mode 100644
index 0000000..5b112d0
--- /dev/null
+++ b/src/assets/img/descend.png
Binary files differ
diff --git a/src/assets/img/jl.png b/src/assets/img/jl.png
new file mode 100644
index 0000000..e2e1d03
--- /dev/null
+++ b/src/assets/img/jl.png
Binary files differ
diff --git a/src/assets/img/rise.png b/src/assets/img/rise.png
new file mode 100644
index 0000000..216bc1b
--- /dev/null
+++ b/src/assets/img/rise.png
Binary files differ
diff --git a/src/assets/img/tx.png b/src/assets/img/tx.png
new file mode 100644
index 0000000..262ad2f
--- /dev/null
+++ b/src/assets/img/tx.png
Binary files differ
diff --git a/src/assets/img/zhaobudao2.png b/src/assets/img/zhaobudao2.png
new file mode 100644
index 0000000..5091e25
--- /dev/null
+++ b/src/assets/img/zhaobudao2.png
Binary files differ
diff --git "a/src/assets/img/\351\222\261\350\242\213.png" "b/src/assets/img/\351\222\261\350\242\213.png"
new file mode 100644
index 0000000..ba7bb89
--- /dev/null
+++ "b/src/assets/img/\351\222\261\350\242\213.png"
Binary files differ
diff --git a/src/axios/api.js b/src/axios/api.js
index 4364a60..f6adfce 100644
--- a/src/axios/api.js
+++ b/src/axios/api.js
@@ -513,6 +513,11 @@
return get(`/api/news/getNewsList.do?pageNum=1&pageSize=15&type=${type}`, {});
}
+// 查询新闻列表
+export function getNewsList(options) {
+ return get(`/api/news/getNewsList.do`, options);
+}
+
// 查询新闻详情
export function queryNewsDetail(type) {
return get(`/api/news/getDetail.do?id=${type}`, {});
@@ -592,4 +597,9 @@
// 删除银行卡
export function deleteBankCard(options) {
return post("/user/bank/delete.do", options);
-}
\ No newline at end of file
+}
+
+// 获取首页数据
+export function getHomePageData() {
+ return post("/api/stock/getHomePageData.do");
+}
diff --git a/src/axios/api.url.js b/src/axios/api.url.js
index 43fb562..b10c450 100644
--- a/src/axios/api.url.js
+++ b/src/axios/api.url.js
@@ -9,9 +9,9 @@
// baseURL: '/',
// baseURL: 'https://api.coinbtcs.com/',
// 0311
- baseURL: "https://stockapi.yanshiz.com/",
+ baseURL: "https://stockapi.yanshiz.com/",
// 本地
- // baseURL: "http://192.168.10.13:8091/",
+ // baseURL: "http://192.168.10.20:8091/",
util: {
image: "/util/image.html" // 图片上传
}
diff --git a/src/components/foot.vue b/src/components/foot.vue
index 42f308e..f1e10b6 100644
--- a/src/components/foot.vue
+++ b/src/components/foot.vue
@@ -37,6 +37,24 @@
{{ $t("hj61") }}
</div>
</div>
+ <div :class="touch == 7 ? 'footDemos' : 'footDemo'" @click="goRouter('/tradeNew', 7)">
+ <div class="footImgDeft">
+ <img v-show="$store.state.select == '/tradeNew'" src="../assets/foot/transaction-act.png" />
+ <img v-show="$store.state.select != '/tradeNew'" src="../assets/foot/transaction.png" />
+ </div>
+ <div :class="$store.state.select == '/tradeNew' ? 'blueFont' : ''">
+ {{ $t("hj225") }}
+ </div>
+ </div>
+ <div :class="touch == 8 ? 'footDemos' : 'footDemo'" @click="goRouter('/account', 8)">
+ <div class="footImgDeft">
+ <img v-show="$store.state.select == '/account'" src="../assets/foot/account-act.png" />
+ <img v-show="$store.state.select != '/account'" src="../assets/foot/account.png" />
+ </div>
+ <div :class="$store.state.select == '/account' ? 'blueFont' : ''">
+ {{ $t("Account") }}
+ </div>
+ </div>
<div :class="touch == 2 ? 'footDemos' : 'footDemo'" @click="goRouter('/trading-list', 2)">
<div class="footImgDeft">
<img v-show="$store.state.select == '/trading-list'"
diff --git a/src/components/index-component.vue b/src/components/index-component.vue
new file mode 100644
index 0000000..759455c
--- /dev/null
+++ b/src/components/index-component.vue
@@ -0,0 +1,87 @@
+<template>
+ <div class="index_component" :class="dataObj.chg > 0 ? 'bg-green' : 'bg-red'">
+ <div class="item_title line-one">{{ dataObj.name }}</div>
+ <div class="item_price">{{ dataObj.last }}</div>
+ <div class="item_index flex-between">
+ <span>{{ dataObj.chg }}</span>
+ <span>{{ dataObj.chgPct }}</span>
+ </div>
+ <div style="width:100%;flex:1">
+ <Echart :ids="ids" :colorType="dataObj.chg / 1" :data="klist"></Echart>
+ </div>
+ </div>
+</template>
+
+<script>
+import Echart from "@/page/home/components/echart.vue";
+export default {
+ name: "IndexComponent",
+ props: {
+ ids: {
+ type: String,
+ required: true
+ },
+ dataObj: {
+ type: Object,
+ default: () => {
+ return {
+ name: "",
+ last: "",
+ chg: "",
+ chgPct: "",
+ kdata: []
+ };
+ }
+ }
+ },
+ computed: {
+ klist() {
+ return this.dataObj.kdata.map(item => {
+ return item.c;
+ });
+ }
+ },
+ components: {
+ Echart
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@red: #ee0a24;
+
+.bg-red {
+ background-color: rgba(red, 0.1);
+ color: @red;
+}
+
+.bg-green {
+ background-color: rgba(green, 0.1);
+ color: green;
+}
+
+.index_component {
+ width: 100%;
+ height: 100%;
+ border-radius: 0.1em;
+ padding: 0.25em 0;
+ display: flex;
+ flex-direction: column;
+
+ .item_title {
+ padding: 0 0.5em;
+ font-size: 0.4em;
+ }
+
+ .item_price {
+ padding: 0.5em 0.5em;
+ font-size: 0.4em;
+ }
+
+ .item_index {
+ padding: 0 0.5em;
+ font-size: 0.3em;
+ margin-bottom: 0.2em;
+ }
+}
+</style>
diff --git a/src/components/nPagination.vue b/src/components/nPagination.vue
index bcb79e9..be523eb 100644
--- a/src/components/nPagination.vue
+++ b/src/components/nPagination.vue
@@ -1,55 +1,98 @@
<template>
- <div class="n_pagination flex-center">
- <div class="n_pagination_item flex-center prohibited">
- <span>{{ $t('Previous') }}</span>
- </div>
- <div class="n_page_number flex-center">
- <span>1</span>
- <span>/</span>
- <span>300</span>
- </div>
- <div class="n_pagination_item flex-center">
- <span>{{ $t('Next') }}</span>
- </div>
+ <div class="n_pagination flex-center">
+ <div
+ class="n_pagination_item flex-center"
+ @click="prev"
+ :class="pageNo <= 1 ? 'prohibited' : ''"
+ >
+ <span>{{ $t("Previous") }}</span>
</div>
+ <div class="n_page_number flex-center">
+ <span>{{ pageNo }}</span>
+ <span>/</span>
+ <span>{{ totalPage }}</span>
+ </div>
+ <div
+ class="n_pagination_item flex-center"
+ @click="next"
+ :class="pageNo >= totalPage ? 'prohibited' : ''"
+ >
+ <span>{{ $t("Next") }}</span>
+ </div>
+ </div>
</template>
<script>
export default {
- name: 'nPagination',
- props: {
- total: {
- type: Number,
- default: 0
- },
- pageSize: {
- type: Number,
- default: 10
- },
- currentPage: {
- type: Number,
- default: 1
- }
+ name: "nPagination",
+ props: {
+ total: {
+ type: Number,
+ default: 1
},
- data() {
- return {
- pageList: [],
- totalPage: 0,
- currentPage: 1
- }
+ pageSize: {
+ type: Number,
+ default: 10
},
- watch: {
- total() {
- this.init()
- },
- pageSize() {
- this.init()
- },
- currentPage() {
-
- }
+ pageNo: {
+ type: Number,
+ default: 1
+ },
+ // 是否跳转到页面顶部
+ toTop: {
+ type: Boolean,
+ default: true
}
-}
+ },
+ data() {
+ return {
+ pageList: []
+ // totalPage: 0
+ };
+ },
+ watch: {
+ total() {
+ this.init();
+ },
+ pageSize() {
+ this.init();
+ },
+ pageNo() {
+ if (this.toTop) {
+ // 页码变动时跳转到页面顶部
+ window.scrollTo({
+ top: 0,
+ behavior: "smooth"
+ });
+ }
+ }
+ },
+ computed: {
+ totalPage() {
+ return Math.ceil(this.total / this.pageSize);
+ }
+ },
+ methods: {
+ init() {
+ // this.totalPage = Math.ceil(this.total / this.pageSize)
+ // console.log("aaaaaaaaaaaaaaaaaaaaa");
+ // this.pageList = []
+ // for (let i = 1; i <= this.totalPage; i++) {
+ // this.pageList.push(i)
+ // }
+ },
+ next() {
+ if (this.pageNo < this.totalPage) {
+ this.$emit("update:pageNo", this.pageNo + 1);
+ }
+ },
+ prev() {
+ if (this.pageNo > 1) {
+ this.$emit("update:pageNo", this.pageNo - 1);
+ }
+ }
+ }
+};
</script>
<style lang="less" scoped>
@@ -57,32 +100,33 @@
@green: #c4d600;
.n_pagination {
- width: 100%;
- height: 2em;
- color: #646566;
+ width: 100%;
+ height: 2em;
+ color: #646566;
- .n_page_number {
- width: 3em;
+ .n_page_number {
+ width: 3em;
- span {
- font-size: .37em;
- }
+ span {
+ font-size: 0.37em;
}
+ }
- .n_pagination_item {
- border: .01em solid @green2;
- width: 3em;
- height: 1em;
- color: @green;
+ .n_pagination_item {
+ border: 0.01em solid @green2;
+ width: 3em;
+ height: 1em;
+ color: @green;
+ background-color: #fff;
- span {
- font-size: .4em;
- }
+ span {
+ font-size: 0.4em;
}
+ }
- .prohibited {
- background-color: #f7f8fa;
- color: #c4c5c6;
- }
+ .prohibited {
+ background-color: #f7f8fa;
+ color: #c4c5c6;
+ }
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/components/pageHead.vue b/src/components/pageHead.vue
new file mode 100644
index 0000000..999d0d6
--- /dev/null
+++ b/src/components/pageHead.vue
@@ -0,0 +1,68 @@
+<template>
+ <div class="page_head">
+ <div class="head_content flex-between" :class="fixed ? 'fixed' : ''">
+ <div class="head_left flex-start" @click="$router.go(-1)">
+ <van-icon name="arrow-left" size=".4em" />
+ </div>
+ <div class="head_title line-one">{{ title }}</div>
+ <div class="head_right flex-end">
+ <slot name="right"></slot>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "pageHead",
+ props: {
+ title: {
+ type: String,
+ default: ""
+ },
+ fixed: {
+ type: Boolean,
+ default: true
+ }
+ },
+ data() {
+ return {};
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+.page_head {
+ font-size: 10vw;
+ height: 1.22em;
+ position: relative;
+ .fixed {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 999;
+ background: #fff;
+ }
+ .head_content {
+ height: 1.22em;
+ padding: 0 0.25em;
+ border-bottom: 0.01em solid #f5f5f5;
+ & > div {
+ min-width: 1em;
+ }
+
+ .head_left {
+ color: @green;
+ }
+
+ .head_title {
+ font-size: 0.4em;
+ font-weight: 500;
+ width: 60%;
+ text-align: center;
+ }
+ }
+}
+</style>
diff --git a/src/components/stock-list.vue b/src/components/stock-list.vue
new file mode 100644
index 0000000..30656ee
--- /dev/null
+++ b/src/components/stock-list.vue
@@ -0,0 +1,171 @@
+<template>
+ <div class="stock_list">
+ <van-row class="markets_head">
+ <van-col span="12" class="flex-start head_item">{{ $t("Name") }}</van-col>
+ <van-col span="4" class="flex-start head_item">{{ $t("Price") }}</van-col>
+ <van-col span="8" class="flex-end head_item">{{ $t("Change") }}</van-col>
+ </van-row>
+
+ <van-row class="markets_item" v-for="item in stockList" :key="item.id">
+ <van-col span="12" class="item_n">
+ <div class="flex-start">
+ <span class="i_icon">{{ item.stock_type }}</span>
+ <span class="i_hint">{{ item.spell }}</span>
+ </div>
+ <div class="i_name">{{ item.name }}</div>
+ </van-col>
+ <van-col span="4" class="flex-start item_n">{{ item.nowPrice }}</van-col>
+ <van-col span="8" class="item_n">
+ <div class="flex-end" style="margin-bottom: .15em;">
+ {{ item.hcrate }}
+ </div>
+ <div class="flex-end">{{ item.hcrateP }}</div>
+ </van-col>
+
+ <div class="edit flex-end" v-show="editorShow">
+ <span>{{ $t("移除") }}</span>
+ </div>
+ </van-row>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import nPagination from "@/components/nPagination.vue";
+import * as api from "@/axios/api";
+export default {
+ name: "stock_list",
+ components: {
+ nPagination
+ },
+ data() {
+ return {
+ editorShow: false, // 编辑状态
+ pageNum: 1,
+ pageSize: 10,
+ total: 0,
+ stockList: []
+ };
+ },
+ props: {
+ propOption: {
+ type: Object,
+ default: () => {
+ return {};
+ }
+ }
+ },
+ watch: {
+ propOption: {
+ handler(val) {
+ this.getStockList();
+ }
+ },
+ pageNum: {
+ handler(val) {
+ console.log(val);
+ }
+ }
+ },
+ mounted() {
+ this.getStockList();
+ },
+ methods: {
+ onEdit() {
+ this.editorShow = !this.editorShow;
+ },
+ async getStockList() {
+ // 获取数据
+ let opt = {
+ pageNum: this.pageNum,
+ pageSize: this.pageSize,
+ stockPlate: "",
+ keyWords: "",
+ // stockType: '',
+ orderBy: ""
+ };
+
+ opt = { ...opt, ...this.propOption };
+
+ let data = await api.getStockByType(opt);
+ this.stockList = data.data.list;
+ this.total = data.data.total;
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green2: #f0f0f0;
+@dark_green: #07c160;
+@red: #ee0a24;
+
+.stock_list {
+ .markets_head {
+ background-color: @green2;
+ margin-top: 0.25em;
+ height: 1em;
+ padding: 0 0.25em;
+
+ .head_item {
+ font-size: 0.4em;
+ height: 100%;
+ font-weight: 600;
+ }
+ }
+
+ .markets_item {
+ // margin-top: .25em;
+ // height: 1em;
+ padding: 0.5em 0.25em 0.25em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ position: relative;
+
+ .item_n {
+ font-size: 0.4em;
+ min-height: 2em;
+ font-weight: 500;
+
+ .i_icon {
+ border-radius: 0 26em 26em 0;
+ background: @dark_green;
+ color: #fff;
+ padding: 0.1em 0.5em 0.1em 0.4em;
+ margin-right: 0.3em;
+ font-size: 0.8em;
+ }
+
+ .i_name {
+ margin-top: 0.3em;
+ color: #777777;
+ font-size: 0.8em;
+ }
+ }
+
+ .edit {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: linear-gradient(
+ to right,
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0.8)
+ );
+ text-align: end;
+ color: @red;
+ padding-right: 0.25em;
+
+ span {
+ font-size: 0.55em;
+ }
+ }
+ }
+}
+</style>
diff --git a/src/components/tabHead.vue b/src/components/tabHead.vue
index 70e6750..0e845bd 100644
--- a/src/components/tabHead.vue
+++ b/src/components/tabHead.vue
@@ -1,7 +1,10 @@
<template>
<div class="tab_head">
- <div class="icon" @click="searchShow = true">
- <van-icon name="search" size=".5em" />
+ <div class="head_left">
+ <div class="icon" @click="searchShow = true" v-if="leftShow">
+ <van-icon name="search" size=".5em" />
+ </div>
+ <slot name="left"></slot>
</div>
<div class="head_right">
<div class="icon" v-if="rightShow" @click="aRouter1">
@@ -13,17 +16,34 @@
<slot></slot>
</div>
<!-- 搜索弹窗 -->
- <van-popup v-model="searchShow" round position="bottom" :style="{ height: '80%' }">
+ <van-popup
+ v-model="searchShow"
+ round
+ position="bottom"
+ :style="{ height: '80%' }"
+ >
<div class="popup_head">
<van-icon name="arrow-left" size=".5em" @click="searchShow = false" />
<div class="popup_input">
- <van-field v-model="searchValue" :placeholder="$t('hj37')" left-icon="search" clearable />
+ <van-field
+ v-model="searchValue"
+ :placeholder="$t('hj37')"
+ left-icon="search"
+ clearable
+ />
</div>
- <van-button type="primary" round @click="submit">{{ $t("Search") }}</van-button>
+ <van-button type="primary" round @click="submit">{{
+ $t("Search")
+ }}</van-button>
</div>
- <van-list v-model="loading" :finished="finished" :finished-text="$t('hj43')" @load="onLoad"
- v-if="(lists && lists.length > 0) || !finished">
+ <van-list
+ v-model="loading"
+ :finished="finished"
+ :finished-text="$t('hj43')"
+ @load="onLoad"
+ v-if="(lists && lists.length > 0) || !finished"
+ >
<van-cell v-for="item in lists" :key="item.id">
<div class="search_item">
<div class="search_item_left">
@@ -57,35 +77,43 @@
data() {
return {
searchShow: false, // 搜索弹窗
- searchValue: '', // 搜索内容
+ searchValue: "", // 搜索内容
lists: [], // 搜索列表
loading: false, // 是否加载
finished: true, // 是否加载完成
pageNum: 1,
- pageSize: 20,
+ pageSize: 20
};
},
props: {
- rightShow: { // 是否显示客服和设置图标
+ // 是否显示客服和设置图标
+ rightShow: {
+ type: Boolean,
+ default: true
+ },
+ // 是否显示左侧搜索
+ leftShow: {
type: Boolean,
default: true
}
},
watch: {
searchShow() {
- this.searchValue = ''
- this.init()
+ this.searchValue = "";
+ this.init();
}
},
async mounted() {
- this.init()
+ this.init();
this.getInfoSite();
},
methods: {
- aRouter1() { // 跳转客服页面
+ aRouter1() {
+ // 跳转客服页面
window.open(this.onlineService);
},
- async getInfoSite() { // 获取客服地址
+ async getInfoSite() {
+ // 获取客服地址
let data = await api.getInfoSite();
if (data.status === 0) {
this.onlineService = data.data.onlineService;
@@ -93,23 +121,25 @@
} else {
this.$store.commit("elAlertShow", {
elAlertShow: true,
- elAlertText: data.msg,
+ elAlertText: data.msg
});
}
},
- goToTopUp() { // 跳转设置页面
+ goToTopUp() {
+ // 跳转设置页面
this.$router.push("/setting");
},
- onLoad: handleDt.throttle(async function (a, b) { // 搜索列表加载
+ onLoad: handleDt.throttle(async function(a, b) {
+ // 搜索列表加载
this.finished = false;
let opt = {
pageNum: this.pageNum,
pageSize: this.pageSize,
stockPlate: "",
keyWords: this.searchValue,
- stockType: '',
- orderBy: "",
- }
+ stockType: "",
+ orderBy: ""
+ };
let data = await api.getStockByType(opt);
this.loading = false; // 加载状态结束
@@ -118,23 +148,25 @@
this.lists = [...this.lists, ...data.data.list];
}
- if (data.data.list && data.data.list.length <= 0) { // 数据全部加载完成
+ if (data.data.list && data.data.list.length <= 0) {
+ // 数据全部加载完成
this.finished = true;
-
} else {
this.pageNum++;
}
}, 500),
- init() { // 初始化
+ init() {
+ // 初始化
this.pageNum = 1;
this.lists = [];
this.finished = true;
},
- submit() { // 提交搜索
- this.init()
- this.onLoad()
+ submit() {
+ // 提交搜索
+ this.init();
+ this.onLoad();
}
- },
+ }
};
</script>
@@ -144,7 +176,7 @@
.tab_head {
font-size: 10vw;
- padding: .266em;
+ padding: 0.266em;
display: flex;
justify-content: space-between;
align-items: center;
@@ -154,7 +186,7 @@
display: flex;
justify-content: center;
align-items: center;
- padding-top: .5em;
+ padding-top: 0.5em;
img {
width: 65%;
@@ -166,22 +198,22 @@
justify-content: center;
align-items: center;
font-size: 1.5em;
- padding: .5em 0;
+ padding: 0.5em 0;
.search_item_left {
flex: 1;
.search_item_left_hint {
- margin-top: .3em;
+ margin-top: 0.3em;
color: #969799;
- font-size: .8em;
+ font-size: 0.8em;
span {
border-radius: 0 26em 26em 0;
background: @dark_green;
color: #fff;
- padding: 0 .3em;
- margin-right: .1em;
+ padding: 0 0.3em;
+ margin-right: 0.1em;
}
}
}
@@ -193,7 +225,7 @@
color: #969799;
span {
- margin-right: .5em;
+ margin-right: 0.5em;
}
}
}
@@ -202,7 +234,7 @@
display: flex;
justify-content: center;
align-items: center;
- padding: .25em;
+ padding: 0.25em;
/deep/ .van-cell {
background: none;
@@ -222,11 +254,11 @@
@inpH: 1em;
height: @inpH;
flex: 1;
- border-radius: @inpH/2;
+ border-radius: @inpH / 2;
display: flex;
align-items: center;
- margin-left: .5em;
- margin-right: .5em
+ margin-left: 0.5em;
+ margin-right: 0.5em;
}
}
@@ -237,7 +269,7 @@
background: @grey;
display: flex;
justify-content: center;
- align-items: center
+ align-items: center;
}
.head_right {
@@ -247,7 +279,7 @@
.head_right {
.icon {
- margin-left: .266em;
+ margin-left: 0.266em;
}
}
}
diff --git a/src/locales/cht.json b/src/locales/cht.json
index 72b7c3e..87f5556 100644
--- a/src/locales/cht.json
+++ b/src/locales/cht.json
@@ -590,5 +590,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/de.json b/src/locales/de.json
index 8f6b874..5accfff 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -585,5 +585,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/en.json b/src/locales/en.json
index e0cb560..b13db27 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -605,5 +605,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/ens.json b/src/locales/ens.json
index 0c363bc..8909768 100644
--- a/src/locales/ens.json
+++ b/src/locales/ens.json
@@ -599,5 +599,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/fra.json b/src/locales/fra.json
index 412eee8..ba62efe 100644
--- a/src/locales/fra.json
+++ b/src/locales/fra.json
@@ -584,5 +584,38 @@
"Name": "Name",
"Price": "Price",
"Change": "Change",
- "Previous": "Previous"
+ "Previous": "Previous",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/hi.json b/src/locales/hi.json
index dad031d..702565e 100644
--- a/src/locales/hi.json
+++ b/src/locales/hi.json
@@ -604,5 +604,38 @@
"Price": "मुल्य",
"Change": "परिवर्तन",
"Previous": "पिछला",
- "Next": "सो"
+ "Next": "सो",
+ "移除": "निकालें",
+ "编辑": "संपादक",
+ "完成": "संदेश निर्माण",
+ "Worth": "लायक",
+ "Profit": "लाभ",
+ "Cost": "लागत",
+ "Current": "चालू कीमत",
+ "Account": "हिसाब-किताब",
+ "账户变动记录": "खाता परिवर्तन विवरण",
+ "持仓收益": "स्थिति लाभ",
+ "订单": "आदेश",
+ "最低认购金额": "न्यूनतम सदस्यता राशि",
+ "交易成功率": "लेनदेन सफलता दर",
+ "预期收益": "वापसी की अपेक्षित दर",
+ "交易周期": "व्यापारिक चक्र",
+ "AI交易订单": "AI ट्रेडिंग ऑर्डर",
+ "申购金额": "सदस्यता राशि",
+ "实际收益": "वास्तविक प्राप्ति",
+ "状态": "स्थिति",
+ "提交时间": "प्रस्तुत करने का समय",
+ "申购中": "आवेदन में",
+ "交易中": "लेनदेन प्रगति पर है",
+ "成功": "सफलता",
+ "失败": "असफल",
+ "输入编码搜索": "खोज करने के लिए कोड नंबर दर्ज करें",
+ "大宗交易订单": "ब्लॉक ट्रेडिंग ऑर्डर",
+ "待成交": "लंबित सौदा",
+ "已取消": "रद्द",
+ "总金额": "कुल रकम",
+ "待认缴": "लंबित भुगतान",
+ "待转股": "लंबित स्टॉक रूपांतरण",
+ "已转股": "संक्रांत स्टॉक",
+ "未中标": "लेखापरीक्षा पारित नहीं हुई"
}
\ No newline at end of file
diff --git a/src/locales/jp.json b/src/locales/jp.json
index b1a7e14..e3aa00a 100644
--- a/src/locales/jp.json
+++ b/src/locales/jp.json
@@ -586,5 +586,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/kor.json b/src/locales/kor.json
index 9d432f8..b1c6c43 100644
--- a/src/locales/kor.json
+++ b/src/locales/kor.json
@@ -586,5 +586,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/th.json b/src/locales/th.json
index dcee8b6..91ac787 100644
--- a/src/locales/th.json
+++ b/src/locales/th.json
@@ -586,5 +586,38 @@
"Price": "Price",
"Change": "Change",
"Previous": "Previous",
- "Next": "Next"
+ "Next": "Next",
+ "移除": "Remove",
+ "编辑": "Editor",
+ "完成": "Completed",
+ "Worth": "Worth",
+ "Profit": "Profit",
+ "Cost": "Cost",
+ "Current": "Current",
+ "Account": "Account",
+ "账户变动记录": "Account Change Details",
+ "持仓收益": "Position profit",
+ "订单": "Orders",
+ "最低认购金额": "Minim Subscription Amount",
+ "交易成功率": "Transaction Success Rate",
+ "预期收益": "Expected Rate Of Return",
+ "交易周期": "Trading Cycles",
+ "AI交易订单": "AI Trading Orders",
+ "申购金额": "Subscription Amount",
+ "实际收益": "Actual returns",
+ "状态": "Status",
+ "提交时间": "Submission Time",
+ "申购中": "In Application",
+ "交易中": "Transaction in progress",
+ "成功": "Success",
+ "失败": "Failed",
+ "输入编码搜索": "Enter Code No to Search",
+ "大宗交易订单": "Block Trading Orders",
+ "待成交": "Pending Deal",
+ "已取消": "Cancelled",
+ "总金额": "Total Amount",
+ "待认缴": "Pending payment",
+ "待转股": "Pending Stock Conversion",
+ "已转股": "Transferred stock",
+ "未中标": "Audit not passed"
}
\ No newline at end of file
diff --git a/src/locales/zh.json b/src/locales/zh.json
index 0775cad..3b1a095 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -364,7 +364,7 @@
"hj222": "使用手机号登录",
"hj223": "还没有账号?去注册!",
"hj224": "主页",
- "hj225": "贸易",
+ "hj225": "交易",
"hj226": "位置",
"hj227": "我的",
"hj228": "暂无充值信息!",
@@ -590,5 +590,38 @@
"Price": "价格",
"Change": "变动",
"Previous": "上一页",
- "Next": "下一页"
+ "Next": "下一页",
+ "移除": "移除",
+ "编辑": "编辑",
+ "完成": "完成",
+ "Worth": "市值",
+ "Profit": "收益",
+ "Cost": "成本",
+ "Current": "现价",
+ "Account": "账户",
+ "账户变动记录": "账户变动记录",
+ "持仓收益": "持仓收益",
+ "订单": "订单",
+ "最低认购金额": "最低认购金额",
+ "交易成功率": "交易成功率",
+ "预期收益": "预期收益",
+ "交易周期": "交易周期",
+ "AI交易订单": "AI交易订单",
+ "申购金额": "申购金额",
+ "实际收益": "实际收益",
+ "状态": "状态",
+ "提交时间": "提交时间",
+ "申购中": "申购中",
+ "交易中": "交易中",
+ "成功": "成功",
+ "失败": "失败",
+ "输入编码搜索": "输入编码搜索",
+ "大宗交易订单": "大宗交易订单",
+ "待成交": "待成交",
+ "已取消": "已取消",
+ "总金额": "总金额",
+ "待认缴": "待认缴",
+ "待转股": "待转股",
+ "已转股": "已转股",
+ "未中标": "未中标"
}
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index c37b33b..21422b3 100644
--- a/src/main.js
+++ b/src/main.js
@@ -136,9 +136,15 @@
router.beforeEach((to, from, next) => {
store.state.select = to.path;
document.title = to.meta.title;
- console.log(store.state, "store.state", !!store.state.token);
+ console.log(
+ store.state,
+ "store.state",
+ !!store.state.token,
+ to.meta.requireAuth && !!!store.state.token
+ );
if (to.meta.requireAuth && !!!store.state.token) {
- // next("/login");
+ next("/login");
+ return;
//点击管理后台分享的二维码 进入注册页面 会识别未登录 导致进入登录页面
}
// if (!to.query.url && from.query.url) {
diff --git a/src/page/home/components/echart.vue b/src/page/home/components/echart.vue
index 28bffa0..896776e 100644
--- a/src/page/home/components/echart.vue
+++ b/src/page/home/components/echart.vue
@@ -4,16 +4,20 @@
</div>
</template>
<script>
-import * as echarts from 'echarts';
+import * as echarts from "echarts";
export default {
props: {
ids: {
type: String,
- default: '0',
+ default: "0"
},
colorType: {
type: Number,
- default: 0,
+ default: 0
+ },
+ data: {
+ type: Array,
+ default: () => []
}
},
data() {
@@ -21,57 +25,61 @@
myChart: "",
value: Math.random() * 1000,
now: new Date(1997, 9, 3),
- oneDay: 24 * 3600 * 1000,
+ oneDay: 24 * 3600 * 1000
};
},
methods: {
initCharts() {
- let data = []
- for (var i = 0; i < 1000; i++) {
- data.push(this.randomData());
- }
+ // let data = [];
+ // for (var i = 0; i < 1000; i++) {
+ // data.push(this.randomData());
+ // }
- var chartDom = document.getElementById('main' + this.ids);
- var myChart = echarts.init(chartDom, 'dark');
+ // console.log("dadadadad",data);
+
+ var chartDom = document.getElementById("main" + this.ids);
+ var myChart = echarts.init(chartDom, "dark");
var option;
var greenOrRed = "";
var greenOrReds = "";
- console.log(this.colorType)
+ // console.log(this.colorType);
if (this.colorType > 0) {
- greenOrRed = 'rgba(65,172,117,0.6)'
- greenOrReds = 'rgba(65,172,117,0.05)'
+ greenOrRed = "rgba(65,172,117,0.6)";
+ greenOrReds = "rgba(65,172,117,0.05)";
} else {
- greenOrRed = 'rgba(166,10,36,0.6)'
- greenOrReds = 'rgba(166,10,36,0.05)'
+ greenOrRed = "rgba(166,10,36,0.6)";
+ greenOrReds = "rgba(166,10,36,0.05)";
}
option = {
xAxis: {
show: false,
- type: 'category',
- boundaryGap: false,
-
+ type: "category",
+ boundaryGap: false
},
yAxis: {
show: false,
- type: 'value'
+ type: "value",
+ scale: true
},
tooltip: {
show: true,
- extraCssText: '100%;height: 1.5385rem;'
+ extraCssText: "100%;height: 1.5385rem;"
},
- backgroundColor: 'rgba(0,0,0,0)',
+ backgroundColor: "rgba(0,0,0,0)",
color: {
- type: 'linear',
+ type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
- offset: 0, color: greenOrRed // 0% 处的颜色
- },
+ offset: 0,
+ color: greenOrRed // 0% 处的颜色
+ },
{
- offset: 1, color: greenOrReds // 100% 处的颜色
+ offset: 1,
+ color: greenOrReds // 100% 处的颜色
}
],
globalCoord: false // 缺省为 false
@@ -79,8 +87,8 @@
series: [
{
// data: [820, 932, 901, 934, 1000, 900, 1320, 820, 932, 901, 934, 1000, 900,],
- data,
- type: 'line',
+ data: this.data,
+ type: "line",
areaStyle: {}
}
]
@@ -94,7 +102,11 @@
return {
name: this.now.toString(),
value: [
- [this.now.getFullYear(), this.now.getMonth() + 1, this.now.getDate()].join('/'),
+ [
+ this.now.getFullYear(),
+ this.now.getMonth() + 1,
+ this.now.getDate()
+ ].join("/"),
Math.round(this.value)
]
};
@@ -102,9 +114,9 @@
},
mounted() {
this.initCharts();
- window.onresize = function () {
+ window.onresize = function() {
this.myChart.resize();
};
}
-}
+};
</script>
diff --git a/src/page/home/components/newsItem.vue b/src/page/home/components/newsItem.vue
new file mode 100644
index 0000000..ecd86ff
--- /dev/null
+++ b/src/page/home/components/newsItem.vue
@@ -0,0 +1,90 @@
+<template>
+ <div class="news_item flex-between-start" @click="toNewsPage(item.id)">
+ <div class="news_title">{{ item.title }}</div>
+ <img :src="item.imgurl" alt="" />
+ <div class="news_time">{{ item.showTime | gettime }}</div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "newsItem",
+ props: {
+ item: {
+ type: Object,
+ default: () => {}
+ }
+ },
+ filters: {
+ gettime(time) {
+ if (!time) {
+ return "";
+ }
+ var nd = new Date(time);
+ var y = nd.getFullYear();
+ var mm = nd.getMonth() + 1;
+ var d = nd.getDate();
+ var h = nd.getHours();
+ var m = nd.getMinutes();
+ var c = nd.getSeconds();
+ if (mm < 10) {
+ mm = "0" + mm;
+ }
+ if (d < 10) {
+ d = "0" + d;
+ }
+ if (h < 10) {
+ h = "0" + h;
+ }
+ if (m < 10) {
+ m = "0" + m;
+ }
+ if (c < 10) {
+ c = "0" + c;
+ }
+ // 17:35:2922-06-2022
+ return d + "-" + mm + "-" + y + " " + h + ":" + m + ":" + c;
+ }
+ },
+ methods: {
+ toNewsPage(id) {
+ this.$router.push(`/newPage?listid=${id}`);
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+.news_item {
+ width: 100%;
+ padding: 0.25em;
+ border-bottom: 0.02667em solid #f5f5f5;
+ position: relative;
+
+ .news_time {
+ position: absolute;
+ bottom: 0.8em;
+ left: 0.8em;
+ font-size: 0.3em;
+ color: #999;
+ }
+
+ .news_title {
+ font-size: 0.4em;
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 3;
+ line-break: anywhere;
+ -webkit-box-orient: vertical;
+ width: 15.2em;
+ }
+
+ img {
+ width: 2.8em;
+ height: 2em;
+ margin-right: 0.25em;
+ border-radius: 0.1em;
+ }
+}
+</style>
diff --git a/src/page/home/homeIndex.vue b/src/page/home/homeIndex.vue
index f81cb74..03e2198 100644
--- a/src/page/home/homeIndex.vue
+++ b/src/page/home/homeIndex.vue
@@ -1,7 +1,13 @@
<template>
<div class="home_index">
<tab-head>
- <van-popover v-model="languageShow" trigger="click" :actions="actions" @select="onSelect" placement="bottom-end">
+ <van-popover
+ v-model="languageShow"
+ trigger="click"
+ :actions="actions"
+ @select="onSelect"
+ placement="bottom-end"
+ >
<template #reference>
<div class="multilingual">
<img src="../../assets/img/language.svg" alt="" />
@@ -12,33 +18,33 @@
<div class="subheading">
<div class="subheading_title">
- <img src="../../assets/img/shortcut.png" alt="">
- <span>{{ $t('快捷方式') }}</span>
+ <img src="../../assets/img/shortcut.png" alt="" />
+ <span>{{ $t("快捷方式") }}</span>
</div>
<div class="swiper">
- <div class="swiper-wrapper flex-start">
+ <div class="swiper-wrapper flex-between">
<div class="swiper-slide">
- <div class="nav_item flex-center">
- <img src="../../assets/img/home_1.png" alt="">
- <span>AI {{ $t('量化交易') }}</span>
+ <div class="nav_item flex-center" @click="toPage('/aiTrading')">
+ <img src="../../assets/img/home_1.png" alt="" />
+ <span>AI {{ $t("量化交易") }}</span>
</div>
</div>
<div class="swiper-slide">
- <div class="nav_item flex-center">
- <img src="../../assets/img/home_2.png" alt="">
- <span>{{ $t('hj621') }}</span>
+ <div class="nav_item flex-center" @click="toPage('/blockTrading')">
+ <img src="../../assets/img/home_2.png" alt="" />
+ <span>{{ $t("hj621") }}</span>
</div>
</div>
<div class="swiper-slide">
- <div class="nav_item flex-center">
- <img src="../../assets/img/home_3.png" alt="">
+ <div class="nav_item flex-center" @click="toPage('/ipo')">
+ <img src="../../assets/img/home_3.png" alt="" />
<span>IPO</span>
</div>
</div>
<div class="swiper-slide">
<div class="nav_item flex-center">
- <img src="../../assets/img/home_4.png" alt="">
- <span>{{ $t('理财基金') }}</span>
+ <img src="../../assets/img/home_4.png" alt="" />
+ <span>{{ $t("理财基金") }}</span>
</div>
</div>
</div>
@@ -47,60 +53,50 @@
<div class="subheading bg-white">
<div class="subheading_title">
- <img src="../../assets/img/iconmonstr-chart-5.png" alt="">
- <span>{{ $t('美股指数') }}</span>
+ <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
+ <span>{{ $t("美股指数") }}</span>
</div>
<div class="flex-between navs">
- <div class="nav_item" v-for="item in 3" :key="item">
- <div class="item_title line-one">Lidwa gejadw LFwafd Djfajf</div>
- <div class="item_price">44,406.36</div>
- <div class="item_index flex-between">
- <span>-422.17</span>
- <span>-0.94%</span>
- </div>
- <div style="width:100%;height:1em">
- <Echart :ids="'a' + item" :colorType="-1"></Echart>
- </div>
+ <div class="nav_item" v-for="item in usDataStockBeans" :key="item.id">
+ <index-component
+ :ids="'a' + item.id"
+ :dataObj="item"
+ ></index-component>
<!-- <van-skeleton title :row="3" /> -->
</div>
</div>
</div>
- <div class="subheading bg-white" style="margin-top: .25em;">
+ <div class="subheading bg-white" style="margin-top: 0.25em">
<div class="subheading_title">
- <img src="../../assets/img/iconmonstr-chart-5.png" alt="">
- <span>{{ $t('墨西哥指数') }}</span>
+ <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
+ <span>{{ $t("墨西哥指数") }}</span>
</div>
<div class="flex-between navs">
- <div class="nav_item" v-for="item in 3" :key="item">
- <div class="item_title line-one">Lidwa gejadw LFwafd Djfajf</div>
- <div class="item_price">44,406.36</div>
- <div class="item_index flex-between">
- <span>-422.17</span>
- <span>-0.94%</span>
- </div>
- <div style="width:100%;height:1em">
- <Echart :ids="'b' + item" :colorType="-1"></Echart>
- </div>
+ <div class="nav_item" v-for="item in mxDataStockBeans" :key="item.id">
<!-- <van-skeleton title :row="3" /> -->
+ <index-component
+ :ids="'b' + item.id"
+ :dataObj="item"
+ ></index-component>
</div>
</div>
</div>
- <div class="subheading bg-white" style="margin-top: .25em;">
+ <div class="subheading bg-white" style="margin-top: 0.25em">
<div class="subheading_title">
- <img src="../../assets/img/news.png" alt="">
- <span>{{ $t('hj6') }}</span>
+ <img src="../../assets/img/news.png" alt="" />
+ <span>{{ $t("hj6") }}</span>
</div>
- <div class="news_item flex-between-start" v-for="item in 3" :key="item">
- <div class="news_title">Futures lower with Trump tariff deadline in focus - what’s moving markets</div>
- <img src="https://i-invdn-com.investing.com/news/moved_LYNXNPEL51127_L.jpg" alt="">
- <div class="news_time">2022-11-22 09:00:00</div>
- </div>
+ <news-item
+ :item="item"
+ v-for="item in newsList"
+ :key="item.id"
+ ></news-item>
- <div class="more flex-center">
- <span>{{ $t('更多新闻') }}</span>
+ <div class="more flex-center" @click="$router.push('/new-list')">
+ <span>{{ $t("更多新闻") }}</span>
<van-icon name="play" size=".5em" />
</div>
</div>
@@ -109,6 +105,8 @@
<script>
import tabHead from "../../components/tabHead.vue";
+import NewsItem from "./components/newsItem.vue";
+import indexComponent from "../../components/index-component.vue";
import Echart from "./components/echart.vue";
import * as api from "@/axios/api";
export default {
@@ -120,13 +118,13 @@
actions: [
{
text: "English",
- lang: "en",
+ lang: "en"
},
{
text: "简体中文",
- lang: "zh-CN",
+ lang: "zh-CN"
},
- { text: "हिंदी", lang: "hi" },
+ { text: "हिंदी", lang: "hi" }
// {
// text: "Deutsch",
// lang: "de",
@@ -140,27 +138,53 @@
// lang: "ja",
// },
],
- }
+ newsList: [],
+ mxDataStockBeans: [],
+ usDataStockBeans: []
+ };
},
components: {
tabHead,
Echart,
+ indexComponent,
+ NewsItem
},
mounted() {
- // this.getNewsList(1);
+ this.getData();
},
methods: {
- onSelect(e) { // 选择语言
+ // 选择语言
+ onSelect(e) {
window.localStorage.setItem("language", e.lang);
this.$i18n.locale = e.lang;
},
- async getNewsList(type) { // 获取新闻列表
- if (typeof type == "string") type = 1
+ // 获取新闻列表
+ async getNewsList(type) {
+ if (typeof type == "string") type = 1;
// let data = await api.queryNewsList(type);
},
- }
-}
+ // 获取首页数据
+ async getData() {
+ let data = await api.getHomePageData();
+ this.newsList = data.data.newsList;
+ this.mxDataStockBeans = data.data.mxDataStockBeans;
+ this.usDataStockBeans = data.data.usDataStockBeans;
+
+ // console.log(
+ // "home",
+ // this.newsList,
+ // this.mxDataStockBeans,
+ // this.usDataStockBeans
+ // );
+ },
+ // 跳转
+ toPage(url) {
+ if (!url) return;
+ this.$router.push(url);
+ }
+ }
+};
</script>
<style lang="less" scoped>
@@ -177,7 +201,7 @@
.multilingual {
width: 1em;
height: 1em;
- margin-left: .25em;
+ margin-left: 0.25em;
img {
width: 100%;
@@ -186,87 +210,71 @@
}
.subheading {
- padding-bottom: .25em;
+ padding-bottom: 0.25em;
.subheading_title {
display: flex;
align-items: center;
- padding: .35em .25em .35em .25em;
+ padding: 0.35em 0.25em 0.35em 0.25em;
img {
- width: .5em;
- height: .5em;
- margin-right: .25em;
+ width: 0.5em;
+ height: 0.5em;
+ margin-right: 0.25em;
}
span {
- font-size: .5em;
- line-height: .5em;
+ font-size: 0.5em;
+ line-height: 0.5em;
font-weight: 600;
}
}
.navs {
- padding: 0 .25em 0 .25em;
+ padding: 0 0.25em 0 0.25em;
.nav_item {
width: 2.833em;
height: 3em;
- background-color: rgba(red, .1);
- border-radius: .1em;
- padding: .25em 0;
-
- .item_title {
- padding: 0 .5em;
- font-size: .4em;
- }
-
- .item_price {
- padding: .5em .5em;
- color: @red;
- font-size: .4em;
- }
-
- .item_index {
- padding: 0 .5em;
- color: @red;
- font-size: .3em;
- margin-bottom: .2em;
- }
+ // background-color: rgba(red, 0.1);
+ border-radius: 0.1em;
+ // padding: .25em 0;
}
}
.swiper {
- width: 10em;
- // overflow: hidden;
- overflow-x: auto;
+ // width: 10em;
+ // overflow-x: auto;
+ width: 100%;
- &::-webkit-scrollbar {
- display: none;
- }
+ // &::-webkit-scrollbar {
+ // display: none;
+ // }
.swiper-wrapper {
- width: 13.333em;
+ // width: 13.333em;
+ width: 100%;
+ padding: 0 0.25em 0 0.25em;
.swiper-slide {
- width: 3.333em;
- height: 3em;
- padding: 0 .25em 0 .25em;
+ width: 2.1875em;
+ height: 2.1em;
+ // padding: 0 0.25em 0 0.25em;
.nav_item {
background-color: #fff;
- border-radius: .25em;
+ border-radius: 0.25em;
width: 100%;
height: 100%;
flex-direction: column;
img {
- width: 1em;
- margin-bottom: .25em;
+ width: 0.75em;
+ margin-bottom: 0.25em;
}
span {
- font-size: .37em;
+ font-size: 0.25em;
font-weight: 500;
}
}
@@ -275,45 +283,12 @@
}
.more {
- padding: .5em .5em .2em;
+ padding: 0.5em 0.5em 0.2em;
color: @green;
span {
- font-size: .5em;
- margin-right: .3em;
- }
- }
-
- .news_item {
- width: 100%;
- padding: .25em;
- border-bottom: .02667em solid #f5f5f5;
- position: relative;
-
- .news_time {
- position: absolute;
- bottom: .8em;
- left: .8em;
- font-size: .3em;
- color: #999;
- }
-
- .news_title {
- font-size: .4em;
- display: -webkit-box;
- overflow: hidden;
- text-overflow: ellipsis;
- -webkit-line-clamp: 3;
- line-break: anywhere;
- -webkit-box-orient: vertical;
- width: 15.2em;
- }
-
- img {
- width: 2.8em;
- height: 2em;
- margin-right: .25em;
- border-radius: .1em;
+ font-size: 0.5em;
+ margin-right: 0.3em;
}
}
}
diff --git a/src/page/home/newList.vue b/src/page/home/newList.vue
new file mode 100644
index 0000000..3f4414d
--- /dev/null
+++ b/src/page/home/newList.vue
@@ -0,0 +1,76 @@
+<template>
+ <div class="new_list">
+ <page-head :title="$t('hj6')"></page-head>
+
+ <news-item v-for="item in newsList" :key="item.id" :item="item"></news-item>
+
+ <van-skeleton
+ :row="10"
+ v-if="newsList.length == 0"
+ style="margin-top: 1em;"
+ />
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import NewsItem from "./components/newsItem.vue";
+import nPagination from "@/components/nPagination.vue";
+import * as api from "@/axios/api";
+
+export default {
+ name: "newList",
+ components: {
+ PageHead,
+ NewsItem,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 0,
+ newsList: []
+ };
+ },
+ watch: {
+ pageNum() {
+ this.newsList = [];
+ this.getNewsList();
+ }
+ },
+ created() {
+ this.getNewsList();
+ },
+ methods: {
+ // 获取新闻列表
+ async getNewsList() {
+ let options = {
+ pageNum: this.pageNum,
+ pageSize: this.pageSize,
+ type: 1
+ };
+ let data = await api.getNewsList(options);
+
+ this.newsList = data.data.list;
+ this.total = data.data.total;
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+.new_list {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #fff;
+ min-height: 100vh;
+ padding-bottom: 0.1em;
+}
+</style>
diff --git a/src/page/home/newPage.vue b/src/page/home/newPage.vue
index 0387656..39535d1 100644
--- a/src/page/home/newPage.vue
+++ b/src/page/home/newPage.vue
@@ -1,151 +1,159 @@
<template>
- <div :class="` ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`" class="new-page">
- <!-- <div class="head"> -->
-
- <!-- <view>{{ $t('hj238') }}</view> -->
- <!-- </div> -->
+ <!-- <div
+ :class="` ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`"
+ class="new-page"
+ v-if="false"
+ > -->
+ <div class="new-page" v-if="list.title">
+ <page-head :title="list.title"></page-head>
<div class="newsTop">
- <div class="newsTitle">{{list.title}}</div>
- <div class="newDetail-tits">{{ list.showTime| gettime}}</div>
+ <div class="newsTitle">{{ list.title }}</div>
+ <div class="newDetail-tits">{{ list.showTime | gettime }}</div>
</div>
<div class="newsDetail">
- <div>{{list.content}}</div>
+ <div>{{ list.content }}</div>
<div class="newsImg" v-if="list.imgurl">
- <img :src="list.imgurl"/>
+ <img :src="list.imgurl" />
</div>
</div>
+ </div>
+ <div v-else class="new-page" style="padding-top:1em">
+ <page-head></page-head>
+ <van-skeleton title :row="10" />
</div>
</template>
<script>
-import * as api from '@/axios/api'
+import PageHead from "@/components/pageHead.vue";
+import * as api from "@/axios/api";
export default {
- created () {
+ created() {
if (this.$route.query.listid) {
- this.list_id = this.$route.query.listid
+ this.list_id = this.$route.query.listid;
}
- this.getqueryNewsList(this.$route.query.listid)
+ this.getqueryNewsList(this.$route.query.listid);
},
- data () {
+ components: {
+ PageHead
+ },
+ data() {
return {
- list_id: '',
- list: []
- }
+ list_id: "",
+ list: {}
+ };
},
- mounted () {
-
- },
+ mounted() {},
methods: {
- async getqueryNewsList (id) {
- let data = await api.queryNewsDetail(id)
- this.list = data.data
+ async getqueryNewsList(id) {
+ let data = await api.queryNewsDetail(id);
+ this.list = data.data;
}
-
},
filters: {
- gettime (time) {
+ gettime(time) {
if (!time) {
- return ''
+ return "";
}
- var nd = new Date(time)
- var y = nd.getFullYear()
- var mm = nd.getMonth() + 1
- var d = nd.getDate()
- var h = nd.getHours()
- var m = nd.getMinutes()
- var c = nd.getSeconds()
+ var nd = new Date(time);
+ var y = nd.getFullYear();
+ var mm = nd.getMonth() + 1;
+ var d = nd.getDate();
+ var h = nd.getHours();
+ var m = nd.getMinutes();
+ var c = nd.getSeconds();
if (mm < 10) {
- mm = '0' + mm
+ mm = "0" + mm;
}
if (d < 10) {
- d = '0' + d
+ d = "0" + d;
}
if (h < 10) {
- h = '0' + h
+ h = "0" + h;
}
if (m < 10) {
- m = '0' + m
+ m = "0" + m;
}
if (c < 10) {
- c = '0' + c
+ c = "0" + c;
}
// 17:35:2922-06-2022
- return d + '-' + mm + '-' + y + ' ' + h + ':' + m + ':' + c
+ return d + "-" + mm + "-" + y + " " + h + ":" + m + ":" + c;
}
}
-
-}
+};
</script>
<style scoped lang="less">
.new-page {
- height: calc(100% - 72px);
- overflow: hidden;
+ // height: calc(100% - 72px);
+ // overflow: hidden;
+ min-height: 100vh;
.head {
height: 60px;
.mint-header {
height: 60px;
- border-bottom: 1px solid #DDDDDD;
- /deep/ .mintui-back, /deep/ .mint-header-title {
+ border-bottom: 1px solid #dddddd;
+ /deep/ .mintui-back,
+ /deep/ .mint-header-title {
font-size: 28px;
font-weight: 900;
}
}
}
}
- .newDetail-tits{
- margin-top: 0.4rem;
- font-size: 0.4rem;
- margin-bottom: 0.4rem;
- }
- .newsTop {
- border-bottom: 0.01rem solid #cdcdcd;
- padding-top: 0.3rem;
- color: #000;
- width: 96%;
- margin-left: 0;
- margin-right: 0;
- margin: 0 auto;
- }
- .newsTitle {
- font-size: 0.55rem;
- font-weight: 500;
- }
- .newsDetail {
- height: calc(100% - 254px);
- overflow-y: auto;
- width: 96%;
- margin-left: 0;
- margin-right: 0;
- margin: 0 auto;
- margin-top: 0.4rem;
- font-size: 0.35rem;
- line-height: 0.6rem;
- }
- /* 隐藏滚动条但能滚动 */
- .newsDetail {
- overflow: auto;
- /* 隐藏滚动条 */
- scrollbar-width: thin;
- scrollbar-color: transparent transparent;
- }
- /* 隐藏滚动条的样式 */
- .newsDetail::-webkit-scrollbar {
- width: 0px;
- background-color: transparent;
- }
- .newsDetail::-webkit-scrollbar-thumb {
- background-color: transparent;
- }
- .newsDetail::-webkit-scrollbar-track {
- background-color: transparent;
- }
- .newsImg{
- width: 100%;
- margin-top: 0.4rem;
- }
- .newsImg img{
- width: 100%;
- height: 100%;
- }
+.newDetail-tits {
+ margin-top: 0.4rem;
+ font-size: 0.4rem;
+ margin-bottom: 0.4rem;
+}
+.newsTop {
+ border-bottom: 0.01rem solid #cdcdcd;
+ padding-top: 0.3rem;
+ color: #000;
+ width: 96%;
+ margin-left: 0;
+ margin-right: 0;
+ margin: 0 auto;
+}
+.newsTitle {
+ font-size: 0.55rem;
+ font-weight: 500;
+}
+.newsDetail {
+ height: calc(100% - 254px);
+ overflow-y: auto;
+ width: 96%;
+ margin-left: 0;
+ margin-right: 0;
+ margin: 0 auto;
+ margin-top: 0.4rem;
+ font-size: 0.35rem;
+ line-height: 0.6rem;
+}
+/* 隐藏滚动条但能滚动 */
+.newsDetail {
+ overflow: auto;
+ /* 隐藏滚动条 */
+ scrollbar-width: thin;
+ scrollbar-color: transparent transparent;
+}
+/* 隐藏滚动条的样式 */
+.newsDetail::-webkit-scrollbar {
+ width: 0px;
+ background-color: transparent;
+}
+.newsDetail::-webkit-scrollbar-thumb {
+ background-color: transparent;
+}
+.newsDetail::-webkit-scrollbar-track {
+ background-color: transparent;
+}
+.newsImg {
+ width: 100%;
+ margin-top: 0.4rem;
+}
+.newsImg img {
+ width: 100%;
+ height: 100%;
+}
</style>
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index cb0a528..7a36fea 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -135,7 +135,8 @@
Notify({ type: "success", message: this.$t("hj36") });
setTimeout(() => {
- this.$router.push("/home");
+ // this.$router.push("/home");
+ this.$router.push("/home_index");
}, 1000);
} else {
Notify({ type: "warning", message: data.msg });
diff --git a/src/page/markets/aiTrading.vue b/src/page/markets/aiTrading.vue
new file mode 100644
index 0000000..67478ba
--- /dev/null
+++ b/src/page/markets/aiTrading.vue
@@ -0,0 +1,142 @@
+<template>
+ <div class="ai_trading">
+ <page-head :title="`AI ${$t('量化交易')}`">
+ <template slot="right">
+ <div class="head_right" @click="$router.push('/aiTradingOrder')">
+ {{ $t("订单") }}
+ </div>
+ </template>
+ </page-head>
+
+ <div class="trading_card" v-for="i in 5" :key="i">
+ <p class="card_label1 flex-start">
+ <span class="label_icon">US</span>
+ <span>444</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("最低认购金额") }}</span>
+ <span>$ 2,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易成功率") }}</span>
+ <span>100%</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("预期收益") }}</span>
+ <span>3</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易周期") }}</span>
+ <span>1天</span>
+ </p>
+
+ <p class="card_buy flex-center">
+ <van-icon name="add-square" size=".4em" />
+ <span>{{ $t("gm") }}</span>
+ </p>
+ </div>
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1
+ };
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+.ai_trading {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: #969799;
+ font-size: 0.36em;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/aiTradingOrder.vue b/src/page/markets/aiTradingOrder.vue
new file mode 100644
index 0000000..03df934
--- /dev/null
+++ b/src/page/markets/aiTradingOrder.vue
@@ -0,0 +1,169 @@
+<template>
+ <div class="ai_trading_order">
+ <page-head :title="`${$t('AI交易订单')}`"> </page-head>
+
+ <div class="order_tabs">
+ <van-tabs v-model="active" swipe-threshold="1">
+ <van-tab :title="$t('hj160')" :name="0"></van-tab>
+ <van-tab :title="$t('申购中')" :name="1"></van-tab>
+ <van-tab :title="$t('交易中')" :name="2"></van-tab>
+ <van-tab :title="$t('成功')" :name="3"></van-tab>
+ <van-tab :title="$t('失败')" :name="4"></van-tab>
+ </van-tabs>
+ </div>
+
+ <div class="trading_card" v-for="i in 5" :key="i">
+ <p class="card_label1 flex-start">
+ <span class="label_icon">MEX</span>
+ <span> Escaneo de Tendencias</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("申购金额") }}</span>
+ <span>MX$ 5,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("实际收益") }}</span>
+ <span>MX$ 50</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("状态") }}</span>
+ <span class="zt">交易中</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("提交时间") }}</span>
+ <span>11/07/2025 03:08:18 AM</span>
+ </p>
+ </div>
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1,
+ active: 0
+ };
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+.ai_trading_order {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+ padding-top: 1.4em;
+ position: relative;
+ /deep/ .van-tabs--line .van-tabs__wrap {
+ height: 1.2em;
+ }
+ /deep/ .van-tab__text--ellipsis {
+ overflow: visible;
+ }
+ /deep/ .van-tab {
+ font-size: 0.4em;
+ }
+ /deep/ .van-tabs__line {
+ background-color: @green;
+ height: 0.1em;
+ width: 1em;
+ }
+
+ .order_tabs {
+ width: 100%;
+ position: fixed;
+ top: 1.22em;
+ left: 0;
+ z-index: 999;
+ }
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: #969799;
+ font-size: 0.36em;
+ }
+ span.zt {
+ color: @green;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/blockTrading.vue b/src/page/markets/blockTrading.vue
new file mode 100644
index 0000000..57034db
--- /dev/null
+++ b/src/page/markets/blockTrading.vue
@@ -0,0 +1,199 @@
+<template>
+ <div class="block_trading">
+ <page-head :title="`${$t('hj621')}`">
+ <template slot="right">
+ <div class="head_right" @click="$router.push('/blockTradingOrder')">
+ {{ $t("订单") }}
+ </div>
+ </template>
+ </page-head>
+
+ <div class="popup_head">
+ <div class="popup_input">
+ <van-field
+ v-model="searchValue"
+ :placeholder="$t('输入编码搜索')"
+ left-icon="search"
+ clearable
+ />
+ </div>
+ <van-button type="primary" round @click="submit">{{
+ $t("Search")
+ }}</van-button>
+ </div>
+
+ <!-- <div class="trading_card" v-for="i in 5" :key="i">
+ <p class="card_label1 flex-start">
+ <span class="label_icon">US</span>
+ <span>444</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("最低认购金额") }}</span>
+ <span>$ 2,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易成功率") }}</span>
+ <span>100%</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("预期收益") }}</span>
+ <span>3</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易周期") }}</span>
+ <span>1天</span>
+ </p>
+
+ <p class="card_buy flex-center">
+ <van-icon name="add-square" size=".4em" />
+ <span>{{ $t("gm") }}</span>
+ </p>
+ </div> -->
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1,
+ searchValue: ""
+ };
+ },
+ methods: {
+ submit() {
+ console.log(this.searchValue);
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+.block_trading {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+ padding-top: 1.4em;
+
+ .popup_head {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 0.25em;
+ background: #fff;
+ width: 100%;
+ position: fixed;
+ top: 1.22em;
+ z-index: 999;
+
+ /deep/ .van-cell {
+ background: none;
+ }
+
+ /deep/ .van-field__left-icon .van-icon,
+ .van-field__right-icon .van-icon {
+ font-size: 1.5em;
+ }
+
+ /deep/ .van-field__control {
+ font-size: 1.5em;
+ }
+
+ .popup_input {
+ background: #f7f8fa;
+ @inpH: 0.9em;
+ height: @inpH;
+ flex: 1;
+ border-radius: @inpH / 2;
+ display: flex;
+ align-items: center;
+ margin-right: 0.5em;
+ }
+ }
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: #969799;
+ font-size: 0.36em;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/blockTradingOrder.vue b/src/page/markets/blockTradingOrder.vue
new file mode 100644
index 0000000..aa61ddb
--- /dev/null
+++ b/src/page/markets/blockTradingOrder.vue
@@ -0,0 +1,205 @@
+<template>
+ <div class="block_trading_order">
+ <page-head :title="`${$t('大宗交易订单')}`"> </page-head>
+
+ <div class="order_tabs">
+ <van-tabs v-model="active" swipe-threshold="1">
+ <van-tab :title="$t('hj160')" :name="0"></van-tab>
+ <van-tab :title="$t('申购中')" :name="1"></van-tab>
+ <van-tab :title="$t('待成交')" :name="2"></van-tab>
+ <van-tab :title="$t('成功')" :name="3"></van-tab>
+ <van-tab :title="$t('失败')" :name="4"></van-tab>
+ <van-tab :title="$t('已取消')" :name="5"></van-tab>
+ </van-tabs>
+ </div>
+
+ <div class="trading_card" v-for="i in 5" :key="i">
+ <div class="card_label2 flex-between" style="height:1.8em">
+ <div>
+ <p class="flex-start gp">
+ <span>{{ $t("hj52") }}</span>
+ </p>
+ <p class="flex-start">
+ <span class="label_icon">US</span>
+ <span class="label_name line-one">Advance Auto Parts Inc.</span>
+ </p>
+ </div>
+
+ <div class="flex-end">
+ <span class="app">APP</span>
+ <van-icon name="arrow" color="#969799" size=".5em" />
+ </div>
+ </div>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("sl") }}</span>
+ <span>5,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("hj81") }}</span>
+ <span>$ 44.48</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("总金额") }}</span>
+ <span class="zje">MX$ 484,920.96</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("状态") }}</span>
+ <span class="zt">交易中</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("提交时间") }}</span>
+ <span>11/07/2025 03:08:18 AM</span>
+ </p>
+ </div>
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1,
+ active: 0
+ };
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+@grey-two: #969799;
+@red: #ee0a24;
+.block_trading_order {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+ padding-top: 1.4em;
+ position: relative;
+ /deep/ .van-tabs--line .van-tabs__wrap {
+ height: 1.2em;
+ }
+ /deep/ .van-tab__text--ellipsis {
+ overflow: visible;
+ }
+ /deep/ .van-tab {
+ font-size: 0.4em;
+ }
+ /deep/ .van-tabs__line {
+ background-color: @green;
+ height: 0.1em;
+ width: 1em;
+ }
+
+ .order_tabs {
+ width: 100%;
+ position: fixed;
+ top: 1.22em;
+ left: 0;
+ z-index: 999;
+ }
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: @grey-two;
+ font-size: 0.36em;
+ }
+ .gp {
+ margin-bottom: 0.2em;
+ }
+ .app {
+ color: @green;
+ font-size: 0.6em;
+ }
+ .label_name {
+ color: @grey-two;
+ width: 14em;
+ }
+ span.zje {
+ color: @red;
+ font-size: 0.48em;
+ }
+ span.zt {
+ color: @green;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ }
+
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em !important;
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/ipo.vue b/src/page/markets/ipo.vue
new file mode 100644
index 0000000..06d4c57
--- /dev/null
+++ b/src/page/markets/ipo.vue
@@ -0,0 +1,148 @@
+<template>
+ <div class="ipo">
+ <page-head title="IPO">
+ <template slot="right">
+ <div class="head_right" @click="$router.push('/ipoOrder')">
+ {{ $t("订单") }}
+ </div>
+ </template>
+ </page-head>
+
+ <!-- <div class="trading_card" v-for="i in 5" :key="i">
+ <p class="card_label1 flex-start">
+ <span class="label_icon">US</span>
+ <span>444</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("最低认购金额") }}</span>
+ <span>$ 2,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易成功率") }}</span>
+ <span>100%</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("预期收益") }}</span>
+ <span>3</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("交易周期") }}</span>
+ <span>1天</span>
+ </p>
+
+ <p class="card_buy flex-center">
+ <van-icon name="add-square" size=".4em" />
+ <span>{{ $t("gm") }}</span>
+ </p>
+ </div> -->
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1,
+ searchValue: ""
+ };
+ },
+ methods: {
+ submit() {
+ console.log(this.searchValue);
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+.ipo {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: #969799;
+ font-size: 0.36em;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/ipoOrder.vue b/src/page/markets/ipoOrder.vue
new file mode 100644
index 0000000..e98724a
--- /dev/null
+++ b/src/page/markets/ipoOrder.vue
@@ -0,0 +1,207 @@
+<template>
+ <div class="block_trading_order">
+ <page-head :title="`IPO ${$t('订单')}`"> </page-head>
+
+ <div class="order_tabs">
+ <van-tabs v-model="active" swipe-threshold="1">
+ <van-tab :title="$t('hj160')" :name="0"></van-tab>
+ <van-tab :title="$t('申购中')" :name="1"></van-tab>
+ <van-tab :title="$t('hj70')" :name="2"></van-tab>
+ <van-tab :title="$t('待认缴')" :name="3"></van-tab>
+ <van-tab :title="$t('待转股')" :name="4"></van-tab>
+ <van-tab :title="$t('已转股')" :name="5"></van-tab>
+ <van-tab :title="$t('已取消')" :name="6"></van-tab>
+ <van-tab :title="$t('未中标')" :name="7"></van-tab>
+ </van-tabs>
+ </div>
+
+ <div class="trading_card" v-for="i in 5" :key="i">
+ <div class="card_label2 flex-between" style="height:1.8em">
+ <div>
+ <p class="flex-start gp">
+ <span>{{ $t("hj52") }}</span>
+ </p>
+ <p class="flex-start">
+ <span class="label_icon">US</span>
+ <span class="label_name line-one">Advance Auto Parts Inc.</span>
+ </p>
+ </div>
+
+ <div class="flex-end">
+ <span class="app">APP</span>
+ <van-icon name="arrow" color="#969799" size=".5em" />
+ </div>
+ </div>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("sl") }}</span>
+ <span>5,000</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("hj81") }}</span>
+ <span>$ 44.48</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("总金额") }}</span>
+ <span class="zje">MX$ 484,920.96</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("状态") }}</span>
+ <span class="zt">交易中</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("提交时间") }}</span>
+ <span>11/07/2025 03:08:18 AM</span>
+ </p>
+ </div>
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center">
+ <img src="@/assets/img/zhaobudao2.png" alt="" />
+ </div>
+
+ <n-pagination
+ :pageNo.sync="pageNum"
+ :pageSize="pageSize"
+ :total="total"
+ ></n-pagination>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import nPagination from "@/components/nPagination.vue";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ pageNum: 1,
+ pageSize: 10,
+ total: 1,
+ active: 0
+ };
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+@grey-two: #969799;
+@red: #ee0a24;
+.block_trading_order {
+ font-size: 10vw;
+ width: 100%;
+ background-color: #f5f5f5;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+ padding-top: 1.4em;
+ position: relative;
+ /deep/ .van-tabs--line .van-tabs__wrap {
+ height: 1.2em;
+ }
+ /deep/ .van-tab__text--ellipsis {
+ overflow: visible;
+ }
+ /deep/ .van-tab {
+ font-size: 0.4em;
+ }
+ /deep/ .van-tabs__line {
+ background-color: @green;
+ height: 0.1em;
+ width: 1em;
+ }
+
+ .order_tabs {
+ width: 100%;
+ position: fixed;
+ top: 1.22em;
+ left: 0;
+ z-index: 999;
+ }
+
+ .trading_card {
+ width: 9.5em;
+ margin: 0.25em auto 0;
+ border-radius: 0.25em;
+ background: #fff;
+ .card_buy {
+ height: 1.33em;
+ color: @green;
+ box-shadow: 0 -0.05333rem 0.26667rem #0000000d;
+
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ margin-left: 0.2em;
+ }
+ }
+ .card_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ height: 1.1em;
+ color: #323233;
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: @grey-two;
+ font-size: 0.36em;
+ }
+ .gp {
+ margin-bottom: 0.2em;
+ }
+ .app {
+ color: @green;
+ font-size: 0.6em;
+ }
+ .label_name {
+ color: @grey-two;
+ width: 14em;
+ }
+ span.zje {
+ color: @red;
+ font-size: 0.48em;
+ }
+ span.zt {
+ color: @green;
+ }
+ }
+
+ .card_label1 {
+ color: @green;
+ height: 1.33em;
+
+ span {
+ font-size: 0.4em;
+ }
+ }
+
+ .label_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em !important;
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/markets/markets.vue b/src/page/markets/markets.vue
index 690c89c..e66caf3 100644
--- a/src/page/markets/markets.vue
+++ b/src/page/markets/markets.vue
@@ -1,111 +1,104 @@
<template>
- <div class="markets">
- <tab-head :rightShow="false">
- <van-popover v-model="switchShow" trigger="click" :actions="actions" @select="onSelect"
- placement="bottom-end">
- <template #reference>
- <div class="switch flex-center">
- <van-icon name="exchange" size=".45em" />
- <span>{{ switchText }}</span>
- </div>
- </template>
- </van-popover>
- </tab-head>
+ <div class="markets">
+ <tab-head :rightShow="false">
+ <van-popover
+ v-model="switchShow"
+ trigger="click"
+ :actions="actions"
+ @select="onSelect"
+ placement="bottom-end"
+ >
+ <template #reference>
+ <div class="switch flex-center">
+ <van-icon name="exchange" size=".45em" />
+ <span>{{ switchText }}</span>
+ </div>
+ </template>
+ </van-popover>
+ </tab-head>
- <div class="tabs flex-between">
- <div class="tab_item flex-center" :class="{ active: item.value == tab }" v-for="item in tabList"
- :key="item.value" @click="tab = item.value">
- <span>{{ item.name }}</span>
- </div>
- </div>
-
- <div class="markets_echart">
- <div class="markets_echart_title">
- Dow Jones Industrial Average
- </div>
- <div class="markets_echart_price">
- 44,406.36
- </div>
- <div class="markets_echart_index flex-between">
- <span>-422.17</span>
- <span>-0.94%</span>
- </div>
- <div class="markets_echart_e">
- <Echart :ids="'markets-echart'" :colorType="-1"></Echart>
- </div>
-
- <!-- <van-skeleton title :row="3" /> -->
- </div>
-
- <van-row class="markets_head">
- <van-col span="12" class="flex-start head_item">{{ $t('Name') }}</van-col>
- <van-col span="4" class="flex-start head_item">{{ $t('Price') }}</van-col>
- <van-col span="8" class="flex-end head_item">{{ $t('Change') }}</van-col>
- </van-row>
-
- <van-row class="markets_item" v-for="item in 10" :key="item">
- <van-col span="12" class="item_n">
- <div class="flex-start">
- <span class="i_icon">US</span>
- <span class="i_hint">SS</span>
- </div>
- <div class="i_name">shangshi</div>
- </van-col>
- <van-col span="4" class="flex-start item_n">18</van-col>
- <van-col span="8" class="item_n">
- <div class="flex-end" style="margin-bottom: .15em;">18</div>
- <div class="flex-end">18%</div>
- </van-col>
- </van-row>
-
- <n-pagination></n-pagination>
+ <div class="tabs flex-between">
+ <div
+ class="tab_item flex-center"
+ :class="{ active: item.value == tab }"
+ v-for="item in tabList"
+ :key="item.value"
+ @click="tab = item.value"
+ >
+ <span>{{ item.name }}</span>
+ </div>
</div>
+
+ <div class="markets_echart">
+ <index-component :ids="'markets'"></index-component>
+ <!-- <van-skeleton title :row="3" /> -->
+ </div>
+
+ <stock-list :propOption="propOption"></stock-list>
+ </div>
</template>
<script>
+import indexComponent from "@/components/index-component.vue";
import tabHead from "@/components/tabHead.vue";
-import nPagination from "@/components/nPagination.vue";
+import stockList from "@/components/stock-list.vue";
import Echart from "../home/components/echart.vue";
import * as api from "@/axios/api";
export default {
- name: "markets",
- data() {
- return {
- switchShow: false,
- // 切换
- actions: [
- {
- text: this.$t('美国'),
- value: 1,
- name: '美国'
- },
- {
- text: this.$t('墨西哥'),
- value: 2,
- name: '墨西哥'
- },
- ],
- tabList: [{ name: 'Dow Jones', value: 1 }, { name: 'S&P 500', value: 2 }, { name: 'NASDAQ', value: 3 },],
- tab: 1,
- }
- },
- components: {
- tabHead, Echart, nPagination,
- },
- computed: {
- switchText() {
- return this.$t(this.$store.state.marketsSwitch.name) || this.$t('美国');
- }
- },
- mounted() {
- },
- methods: {
- onSelect(e) { // 选择
- this.$store.commit("MARKET_CHANGE", e)
+ name: "markets",
+ data() {
+ return {
+ switchShow: false,
+ // 切换
+ actions: [
+ {
+ text: this.$t("美国"),
+ value: "US",
+ name: "美国"
},
+ {
+ text: this.$t("墨西哥"),
+ value: "MX",
+ name: "墨西哥"
+ }
+ ],
+ tabList: [
+ { name: "Dow Jones", value: 1 },
+ { name: "S&P 500", value: 2 },
+ { name: "NASDAQ", value: 3 }
+ ],
+ tab: 1,
+ pageNum: 1,
+ pageSize: 10
+ };
+ },
+ components: {
+ tabHead,
+ Echart,
+ stockList,
+ indexComponent
+ },
+ computed: {
+ switchText() { // 切换文字
+ return this.$t(this.$store.state.marketsSwitch.name) || this.$t("美国");
+ },
+ propOption() { // 传递给列表组件的类型值
+ return { stockType: this.$store.state.marketsSwitch.value };
}
-}
-
+ },
+ created() {
+ if (!this.$store.state.marketsSwitch.name) { // 如果没有选过,默认选择第一个
+ this.$store.commit("MARKET_CHANGE", this.actions[0]);
+ }
+ },
+ mounted() {},
+ methods: {
+ // 选择
+ onSelect(e) {
+ this.$store.commit("MARKET_CHANGE", e);
+ }
+ }
+};
</script>
<style lang="less" scoped>
@@ -117,126 +110,51 @@
@dark_green: #07c160;
.markets {
- font-size: 10vw;
- width: 100vw;
- min-height: 100vh;
- padding-bottom: 1.5rem;
+ font-size: 10vw;
+ width: 100vw;
+ min-height: 100vh;
+ padding-bottom: 1.5rem;
- .markets_head {
- background-color: @green2;
- margin-top: .25em;
- height: 1em;
- padding: 0 .25em;
+ .markets_echart {
+ width: 100%;
+ height: 3.2em;
+ background: rgba(red, 0.1);
+ color: @red;
+ }
- .head_item {
- font-size: .4em;
- height: 100%;
- font-weight: 600;
- }
+ .tabs {
+ width: 9.5em;
+ height: 1em;
+ background-color: @green2;
+ border-radius: 0.5em;
+ margin: 0.25em auto;
+ padding: 0 0.1em;
+
+ .tab_item {
+ width: 32%;
+ height: 0.8em;
+ border-radius: 0.5em;
+
+ span {
+ font-size: 0.4em;
+ }
}
- .markets_item {
- margin-top: .25em;
- // height: 1em;
- padding: .25em .25em;
- border-bottom: #f5f5f5 solid .01em;
-
- .item_n {
- font-size: .4em;
- min-height: 2em;
- font-weight: 500;
-
-
- .i_icon {
- border-radius: 0 26em 26em 0;
- background: @dark_green;
- color: #fff;
- padding: .1em .5em .1em .4em;
- margin-right: .3em;
- font-size: .8em;
- }
-
- .i_name {
- margin-top: .3em;
- color: #777777;
- font-size: .8em;
- }
- }
+ .active {
+ background-color: @green;
}
+ }
- .markets_echart {
- width: 100%;
- height: 3.2em;
- background: rgba(red, .1);
- color: @red;
- padding-right: .25em;
- padding-top: .3em;
+ .switch {
+ padding: 0.35em 0.5em;
+ background-color: @green;
+ color: @white;
+ border-radius: 1em;
- .markets_echart_title {
- color: @black;
- padding-left: .625em;
- font-size: .4em;
- margin-bottom: .3em;
- }
-
- .markets_echart_price {
- padding-left: .625em;
- font-size: .4em;
- margin-bottom: .4em;
- }
-
- .markets_echart_index {
- padding: 0 .25em;
-
- span {
- font-size: .3em;
- }
- }
-
- .markets_echart_e {
- margin-top: .25em;
- width: 86%;
- height: 3.5em;
- }
-
- &>div:last-child {
- font-size: .37em;
- }
+ span {
+ font-size: 0.35em;
+ margin-left: 0.2em;
}
-
- .tabs {
- width: 9.5em;
- height: 1em;
- background-color: @green2;
- border-radius: .5em;
- margin: .25em auto;
- padding: 0 .1em;
-
- .tab_item {
- width: 32%;
- height: 0.8em;
- border-radius: .5em;
-
- span {
- font-size: .4em;
- }
- }
-
- .active {
- background-color: @green;
- }
- }
-
- .switch {
- padding: .35em .5em;
- background-color: @green;
- color: @white;
- border-radius: 1em;
-
- span {
- font-size: .35em;
- margin-left: .2em;
- }
- }
+ }
}
</style>
diff --git a/src/page/trading/TradeNew.vue b/src/page/trading/TradeNew.vue
new file mode 100644
index 0000000..c7205a8
--- /dev/null
+++ b/src/page/trading/TradeNew.vue
@@ -0,0 +1,176 @@
+<template>
+ <div class="trade_new">
+ <tab-head></tab-head>
+
+ <van-row class="list_head">
+ <van-col span="8" class="flex-start head_item">
+ {{ $t("hj313") }}/{{ $t("Worth") }}
+ </van-col>
+ <van-col span="8" class="flex-start head_item">
+ {{ $t("sl") }}/{{ $t("Profit") }}
+ </van-col>
+ <van-col span="8" class="flex-end head_item">
+ {{ $t("Cost") }}/{{ $t("Current") }}
+ </van-col>
+ </van-row>
+
+ <van-row class="list_item" v-for="item in 10" :key="item">
+ <van-col span="8" class="item_n">
+ <div class="flex-start">
+ <span class="i_icon">US</span>
+ <span class="i_hint">WINVU</span>
+ </div>
+ <div class="i_name">124.1</div>
+ </van-col>
+ <van-col span="8" class="item_n">
+ <p class="flex-start">18</p>
+ <p class="flex-start i_name">24.1 (24.1%)</p>
+ </van-col>
+ <van-col span="8" class="item_n">
+ <div class="flex-end" style="margin-bottom: .15em;">
+ <span>10</span>
+ </div>
+ <div class="flex-end">
+ <span>12.41</span>
+ </div>
+ </van-col>
+ <van-col span="24" class="flex-start transaction_type">
+ <span>AI交易</span>
+ </van-col>
+ <van-col span="24" class="flex-between item_card">
+ <div class="card_label">
+ <p>建仓成本</p>
+ <p>100</p>
+ </div>
+ <div class="card_label">
+ <p>平仓金额</p>
+ <p>90</p>
+ </div>
+ <div class="card_label">
+ <p>预期收益</p>
+ <p>-10</p>
+ </div>
+ </van-col>
+ </van-row>
+ </div>
+</template>
+
+<script>
+import tabHead from "@/components/tabHead.vue";
+
+export default {
+ components: {
+ tabHead
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green2: #f0f0f0;
+@dark_green: #07c160;
+@red: #ee0a24;
+@brown: #ff976a;
+
+.trade_new {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ font-size: 10vw;
+
+ .list_head {
+ background-color: @green2;
+ margin-top: 0.25em;
+ height: 1em;
+ padding: 0 0.25em;
+
+ .head_item {
+ font-size: 0.35em;
+ height: 100%;
+ font-weight: 500;
+ }
+ }
+
+ .list_item {
+ padding: 0.4em 0.25em 0.25em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ position: relative;
+
+ .item_card {
+ background-color: @green2;
+ margin-top: 0.2em;
+ border-radius: 0.2em;
+ padding: 0.25em;
+
+ .card_label {
+ width: 33.33%;
+ text-align: start;
+ color: #999;
+ font-size: 0.35em;
+
+ & > p:last-child {
+ color: #333;
+ margin-top: 0.15em;
+ }
+ }
+ }
+
+ .transaction_type {
+ color: #fff;
+ padding-top: 0.08em;
+ span {
+ font-size: 0.3em;
+ background: @brown;
+ padding: 0.2em 0.3em 0.15em;
+ border-radius: 0.2em;
+ font-weight: 300;
+ }
+ }
+
+ p,
+ span {
+ font-size: 0.9em;
+ }
+
+ .item_n {
+ font-size: 0.4em;
+ min-height: 2em;
+ font-weight: 500;
+
+ .i_icon {
+ border-radius: 0 26em 26em 0;
+ background: @dark_green;
+ color: #fff;
+ padding: 0.1em 0.5em 0.1em 0.4em;
+ margin-right: 0.3em;
+ font-size: 0.8em;
+ }
+
+ .i_name {
+ margin-top: 0.2em;
+ // color: #777777;
+ font-size: 0.9em;
+ }
+ }
+
+ .edit {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: linear-gradient(
+ to right,
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0.8)
+ );
+ text-align: end;
+ color: @red;
+ padding-right: 0.25em;
+
+ span {
+ font-size: 0.55em;
+ }
+ }
+ }
+}
+</style>
diff --git a/src/page/user/account.vue b/src/page/user/account.vue
new file mode 100644
index 0000000..b140d42
--- /dev/null
+++ b/src/page/user/account.vue
@@ -0,0 +1,338 @@
+<template>
+ <div class="account">
+ <tab-head :leftShow="false">
+ <template slot="left">
+ <div class="user flex-start">
+ <img src="@/assets/img/img_log_home.png" alt="" />
+ <div>
+ <p class="real_name">{{ userInfo.realName }}</p>
+ <p class="phone">ID:{{ userInfo.phone }}</p>
+ </div>
+ </div>
+ </template>
+ </tab-head>
+
+ <div class="wallet">
+ <div class="wallet_title flex-start">
+ <img src="@/assets/img/钱袋.png" alt="" />
+ <span>{{ $t("hj244") }}</span>
+ </div>
+
+ <div class="wallet_price flex-between">
+ <span>MX$ 16,407,946.28</span>
+ <span>MX$ 3,247,918.14</span>
+ </div>
+
+ <div class="wallet_price_name flex-between">
+ <span>{{ $t("hometips") }}</span>
+ <span>{{ $t("hj48") }}</span>
+ </div>
+
+ <div class="wallet_record flex-center">
+ <span>{{ $t("账户变动记录") }}</span>
+ <van-icon name="play" size=".5em" />
+ </div>
+ </div>
+
+ <div class="account_tabs flex-between">
+ <div class="tab flex-center ">
+ <img src="@/assets/img/cz.png" alt="" />
+ <span>{{ $t("hj172") }}</span>
+ </div>
+ <div class="tab flex-center ">
+ <img src="@/assets/img/tx.png" alt="" />
+ <span>{{ $t("subdka") }}</span>
+ </div>
+ <div class="tab flex-center ">
+ <img src="@/assets/img/jl.png" alt="" />
+ <span>{{ $t("jl") }}</span>
+ </div>
+ </div>
+
+ <div class="account_card">
+ <div class="held_head flex-between">
+ <div class="flex-center head_left">
+ <span>{{ $t("hj2") }}</span>
+ <img src="@/assets/img/cc_ss.png" alt="" />
+ </div>
+ <div class="flex-center head_right">
+ <span>{{ $t("jl") }}</span>
+ <img src="@/assets/img/cc_jl.png" alt="" />
+ </div>
+ </div>
+
+ <div class="held_item flex-between">
+ <div class="item_left flex-start">
+ <span class="held_icon">MEX</span>
+ <p>{{ $t("Worth") }}</p>
+ </div>
+ <div class="item_right flex-end">
+ 3,010 MXN
+ </div>
+ </div>
+
+ <div class="held_item flex-between">
+ <div class="item_left flex-start">
+ <span class="held_icon">MEX</span>
+ <p>{{ $t("持仓收益") }}</p>
+ </div>
+ <div class="item_right flex-end" :class="'rise'">
+ <img src="@/assets/img/rise.png" alt="" />
+ 2,010 (201%)
+ </div>
+ </div>
+
+ <div class="held_item flex-between">
+ <div class="item_left flex-start">
+ <span class="held_icon2">US</span>
+ <p>{{ $t("Worth") }}</p>
+ </div>
+ <div class="item_right flex-end">
+ 685,059.11 USD
+ </div>
+ </div>
+
+ <div class="held_item flex-between">
+ <div class="item_left flex-start">
+ <span class="held_icon2">US</span>
+ <p>{{ $t("持仓收益") }}</p>
+ </div>
+ <div class="item_right flex-end" :class="'descend'">
+ <img src="@/assets/img/descend.png" alt="" />
+ 191,980.42 (38.94%)
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import tabHead from "@/components/tabHead.vue";
+import * as api from "@/axios/api";
+export default {
+ name: "account",
+ components: {
+ tabHead
+ },
+ data() {
+ return {
+ userInfo: {}
+ };
+ },
+ methods: {
+ async getUserInfo() {
+ // 获取用户信息
+ let data = await api.getUserInfodata();
+ if (data.status === 0) {
+ // 判断是否登录
+ this.$store.commit("dialogVisible", false);
+ this.$store.state.userInfo = data.data;
+ this.userInfo = data.data;
+ } else {
+ this.$store.commit("dialogVisible", true);
+ }
+ }
+ },
+ created() {
+ this.getUserInfo();
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@purple: #3d1152;
+@green: #c4d600;
+@red: #ee0a24;
+@dark_green: #07c160;
+.account {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ font-size: 10vw;
+ padding-top: 0.2em;
+ padding-bottom: 1.4rem;
+
+ .account_card {
+ background-color: #f5f5f5;
+ border-radius: 0.25em;
+ width: 9.5em;
+ margin: 0.5em auto 0;
+
+ .held_item {
+ padding: 0.42em 0;
+ margin: 0 0.25em;
+
+ &:not(:last-child) {
+ border-bottom: 0.01em solid #ddd;
+ }
+
+ .item_left {
+ font-size: 0.4em;
+ font-weight: 300;
+ color: #777;
+
+ .held_icon {
+ background: @green;
+ }
+
+ .held_icon2 {
+ background: @dark_green;
+ }
+
+ .held_icon,
+ .held_icon2 {
+ border-radius: 0 26em 26em 0;
+ color: #fff;
+ padding: 0.1em 0.5em 0.1em 0.4em;
+ margin-right: 0.3em;
+ font-size: 0.8em;
+ }
+ }
+
+ .item_right {
+ font-size: 0.48em;
+
+ img {
+ width: 1em;
+ margin-right: 0.3em;
+ }
+ }
+
+ .rise {
+ color: @dark_green;
+ }
+
+ .descend {
+ color: @red;
+ }
+ }
+
+ .held_head {
+ height: 1.333em;
+ box-shadow: 0 0.05333rem 0.26667rem #0000000d;
+ .head_left,
+ .head_right {
+ width: 50%;
+ height: 100%;
+ }
+ .head_left {
+ color: @green;
+ position: relative;
+
+ &::after {
+ content: " ";
+ position: absolute;
+ right: 0;
+ top: 0.45em;
+ height: 0.5em;
+ width: 0.01em;
+ background-color: #ddd;
+ }
+ }
+ .head_right {
+ color: @red;
+ }
+ img {
+ width: 0.6em;
+ margin-left: 0.1em;
+ }
+ span {
+ font-size: 0.45em;
+ font-weight: 600;
+ }
+ }
+ }
+
+ .account_tabs {
+ box-shadow: 0 -0.26667rem 0.53333rem #1a00394d;
+ width: 100%;
+ padding: 0.4em 0.25em 0.5em;
+ background-color: #f1f1f1;
+
+ .tab {
+ width: 33.33%;
+ flex-direction: column;
+ position: relative;
+
+ &:not(:last-child)::after {
+ content: " ";
+ position: absolute;
+ right: 0;
+ top: 0.7em;
+ height: 1em;
+ width: 0.01em;
+ background-color: #ddd;
+ }
+
+ span {
+ font-size: 0.42em;
+ }
+
+ img {
+ width: 1.6em;
+ margin-bottom: 0.3em;
+ }
+ }
+ }
+
+ .wallet {
+ width: 9.5em;
+ margin: 0.2em auto 0;
+ padding-top: 0.25em;
+ background-color: @purple;
+ border-radius: 0.25em 0.25em 0 0;
+ color: #fff;
+ .wallet_record {
+ color: @green;
+ margin-top: 0.5em;
+ padding: 0.5em;
+ border-top: 0.01em solid rgba(#fff, 0.1);
+ span {
+ font-size: 0.4em;
+ }
+ }
+ .wallet_price_name {
+ padding: 0 0.25em;
+ span {
+ font-size: 0.3em;
+ }
+ }
+ .wallet_price {
+ color: #f7b52b;
+ padding: 0 0.25em;
+ margin-bottom: 0.25em;
+ span {
+ font-size: 0.4em;
+ }
+ }
+
+ .wallet_title {
+ padding: 0 0.25em;
+ margin-bottom: 0.25em;
+ span {
+ font-size: 0.5em;
+ }
+ img {
+ width: 0.75em;
+ }
+ }
+ }
+
+ .user {
+ img {
+ width: 1.2em;
+ height: 1.2em;
+ border-radius: 50%;
+ margin-right: 0.25em;
+ }
+ .real_name {
+ font-size: 0.5em;
+ }
+ .phone {
+ font-size: 0.4em;
+ color: #999;
+ margin-top: 0.1em;
+ }
+ }
+}
+</style>
diff --git a/src/page/watchlists/watchlists.vue b/src/page/watchlists/watchlists.vue
index 6673796..ea3f028 100644
--- a/src/page/watchlists/watchlists.vue
+++ b/src/page/watchlists/watchlists.vue
@@ -1,30 +1,125 @@
<template>
<div class="watchlists">
<tab-head></tab-head>
+
+ <div class="swiper">
+ <div class="swiper-wrapper flex-start">
+ <div class="swiper-slide">
+ <index-component :ids="'watchlists1'"></index-component>
+ </div>
+ <div class="swiper-slide">
+ <index-component :ids="'watchlists2'"></index-component>
+ </div>
+ <div class="swiper-slide">
+ <index-component :ids="'watchlists3'"></index-component>
+ </div>
+ </div>
+ </div>
+
+ <div class="division"></div>
+
+ <div class="subheading">
+ <div class="subheading_title flex-start">
+ <img src="../../assets/img/shortcut.png" alt="">
+ <span style="flex:1">{{ $t('hj61') }}</span>
+ <span class="edit" @click="onEdit">{{ editorShow ? $t('完成') : $t('编辑') }}</span>
+ </div>
+
+ <stock-list ref="stockList"></stock-list>
+ </div>
</div>
</template>
<script>
import tabHead from "@/components/tabHead.vue";
+import indexComponent from "@/components/index-component.vue";
+import stockList from "@/components/stock-list.vue";
export default {
name: 'watchlists',
components: {
- tabHead
+ tabHead, indexComponent, stockList
+ },
+ computed: {
},
data() {
return {
- msg: 'watchlists'
+ msg: 'watchlists',
+ editorShow: false,
+ }
+ },
+ methods: {
+ onEdit() {
+ this.$refs.stockList.onEdit()
+ this.editorShow = !this.editorShow
}
}
}
</script>
<style lang="less" scoped>
+@green: #c4d600;
+
.watchlists {
font-size: 10vw;
width: 100vw;
min-height: 100vh;
padding-bottom: 1.5rem;
+ .subheading {
+ padding-bottom: .25em;
+
+ .subheading_title {
+ display: flex;
+ align-items: center;
+ padding: .35em .25em .35em .25em;
+
+ .edit {
+ color: @green;
+ }
+
+ img {
+ width: .5em;
+ height: .5em;
+ margin-right: .25em;
+ }
+
+ span {
+ font-size: .5em;
+ line-height: .5em;
+ font-weight: 500;
+ }
+ }
+ }
+
+ .division {
+ width: 100%;
+ height: .25em;
+ background-color: #f5f5f5;
+ }
+
+ .swiper {
+ width: 10em;
+ overflow-x: auto;
+ padding-bottom: .25em;
+
+ &::-webkit-scrollbar {
+ display: none;
+ }
+
+ .swiper-wrapper {
+ width: 14.5em;
+ margin-top: .4em;
+ padding-left: .25em;
+
+ .swiper-slide {
+ margin-right: .25em;
+ width: 4.5em;
+ height: 3.2em;
+ background-color: rgba(red, .1);
+ border-radius: .1em;
+ }
+ }
+ }
+
}
</style>
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 9f81204..8c68275 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -94,7 +94,7 @@
routes: [
{
path: "/",
- redirect: "/home"
+ redirect: "/home_index"
},
// #region 7.2 新增路由-------------------------------------
// 新首页
@@ -114,10 +114,82 @@
name: "markets",
meta: {
title: i18n.t("hj62"),
- requireAuth: false,
+ requireAuth: true,
index: 0
},
component: () => import("@/page/markets/markets.vue")
+ },
+ // AI量化交易
+ {
+ path: "/aiTrading",
+ name: "aiTrading",
+ meta: {
+ title: "AI" + i18n.t("量化交易"),
+ requireAuth: true,
+ show: true,
+ index: 1
+ },
+ component: () => import("@/page/markets/aiTrading.vue")
+ },
+ // AI交易订单
+ {
+ path: "/aiTradingOrder",
+ name: "aiTradingOrder",
+ meta: {
+ title: i18n.t("AI交易订单"),
+ requireAuth: true,
+ show: true,
+ index: 2
+ },
+ component: () => import("@/page/markets/aiTradingOrder.vue")
+ },
+ // 大宗交易
+ {
+ path: "/blockTrading",
+ name: "blockTrading",
+ meta: {
+ title: i18n.t("hj621"),
+ requireAuth: true,
+ show: true,
+ index: 1
+ },
+ component: () => import("@/page/markets/blockTrading.vue")
+ },
+ // 大宗交易订单
+ {
+ path: "/blockTradingOrder",
+ name: "blockTradingOrder",
+ meta: {
+ title: i18n.t("大宗交易订单"),
+ requireAuth: true,
+ show: true,
+ index: 2
+ },
+ component: () => import("@/page/markets/blockTradingOrder.vue")
+ },
+ // IPO
+ {
+ path: "/ipo",
+ name: "ipo",
+ meta: {
+ title: "IPO",
+ requireAuth: true,
+ show: true,
+ index: 1
+ },
+ component: () => import("@/page/markets/ipo.vue")
+ },
+ // IPO订单
+ {
+ path: "/ipoOrder",
+ name: "ipoOrder",
+ meta: {
+ title: "IPO" + i18n.t("订单"),
+ requireAuth: true,
+ show: true,
+ index: 2
+ },
+ component: () => import("@/page/markets/ipoOrder.vue")
},
// 自选
{
@@ -125,10 +197,44 @@
name: "watchlists",
meta: {
title: i18n.t("hj61"),
- requireAuth: false,
+ requireAuth: true,
index: 0
},
component: () => import("@/page/watchlists/watchlists.vue")
+ },
+ // 新交易页面
+ {
+ path: "/tradeNew",
+ name: "tradeNew",
+ meta: {
+ title: i18n.t("hj225"),
+ requireAuth: true,
+ index: 0
+ },
+ component: () => import("@/page/trading/TradeNew.vue")
+ },
+ // 新交易页面
+ {
+ path: "/account",
+ name: "account",
+ meta: {
+ title: i18n.t("Account"),
+ requireAuth: true,
+ index: 0
+ },
+ component: () => import("@/page/user/account.vue")
+ },
+ // 新闻列表页面
+ {
+ path: "/new-list",
+ name: "new-list",
+ meta: {
+ title: i18n.t("hj6"),
+ requireAuth: false,
+ show: true,
+ index: 1
+ },
+ component: () => import("@/page/home/newList.vue")
},
//#endregion
//#region 旧路由---------------------------------------------
@@ -199,6 +305,7 @@
// hasHeader: true,
// is_Show: true,
is_Show: false,
+ show: true,
index: 2
},
component: NewPage
--
Gitblit v1.9.3