src/App.vue
@@ -28,12 +28,16 @@ }; }, created() { this.getInfoSite(); // this.getInfoSite(); }, methods: { // 跳转客服页面 aRouter1() { window.open(this.onlineService); // window.open(this.onlineService); this.$message({ message: this.$t("kf1"), type: "warning", }); }, // 获取客服地址 async getInfoSite() { src/assets/images/account-icon.pngsrc/assets/images/account-icon_a.pngsrc/assets/images/account_rec.pngsrc/assets/images/account_ret.pngsrc/assets/images/avatar.pngsrc/assets/images/globe-icon.pngsrc/assets/images/logo.pngsrc/assets/images/stocks-icon.pngsrc/assets/images/stocks-icon_a.pngsrc/assets/style/reset.scss
@@ -26,13 +26,14 @@ list-style: none; } a { color: #333; color: #fff; text-decoration: none; } body, html { font: 14px "微软雅黑", Arial; color: #333; color: #fff; background-color: #13161e; } input { outline: none; @@ -59,9 +60,9 @@ } /* 通用样式 */ $s_c: #c4d600; $l_c: #07c160; $s_b: #f5f5f5; $s_c: #287dff; $l_c: #287dff; $s_b: #444; $red: #f00; .sb_b { background: $s_b !important; @@ -119,3 +120,4 @@ width: 1024px; margin: 0 auto; } src/assets/style/variables.scss
@@ -1,7 +1,11 @@ /* 改变主题色变量 */ $--color-primary: #c4d600; $--color-primary: #287dff; /* 改变 icon 字体路径变量,必需 */ $--font-path: '~element-ui/lib/theme-chalk/fonts'; $--font-path: "~element-ui/lib/theme-chalk/fonts"; @import "~element-ui/packages/theme-chalk/src/index"; @import "~element-ui/packages/theme-chalk/src/index"; .el-tabs__item { color: #eee; } src/components/myHead.vue
@@ -25,7 +25,7 @@ <span>{{ $t("hj313") }}</span> </div> <div <!-- <div class="nav-item" @click="toRouter('/aiTrading')" :class="`${$route.path == '/aiTrading' ? 'sc_c' : ''}`" @@ -43,9 +43,9 @@ v-else /> <span>{{ $t("量化交易") }}</span> </div> </div> --> <div <!-- <div class="nav-item" @click="toRouter('/blockTrading')" :class="`${$route.path == '/blockTrading' ? 'sc_c' : ''}`" @@ -63,9 +63,9 @@ v-else /> <span>{{ $t("hj621") }}</span> </div> </div> --> <div <!-- <div class="nav-item" @click="toRouter('/ipo')" :class="`${$route.path == '/ipo' ? 'sc_c' : ''}`" @@ -83,9 +83,9 @@ v-else /> <span>IPO</span> </div> </div> --> <div <!-- <div class="nav-item" @click="toRouter('/fund')" :class="`${$route.path == '/fund' ? 'sc_c' : ''}`" @@ -103,7 +103,7 @@ v-else /> <span>{{ $t("fi1") }}</span> </div> </div> --> <div class="nav-item" @@ -129,12 +129,12 @@ <div class="user-actions"> <template v-if="!$store.state.token"> <el-button round @click="toRouter('/login')">{{ <el-button round type="info" @click="toRouter('/login')">{{ $t("dlan") }}</el-button> <el-button class="register-btn" type="success" type="primary" round @click="toRouter('/register')" > @@ -173,7 +173,7 @@ <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="en">English</el-dropdown-item> <el-dropdown-item command="zh-Hant">中文(繁体)</el-dropdown-item> <el-dropdown-item command="hi">हिंदी</el-dropdown-item> <!-- <el-dropdown-item command="hi">हिंदी</el-dropdown-item> --> </el-dropdown-menu> </el-dropdown> </div> @@ -255,13 +255,14 @@ <style lang="scss" scoped> .header { background-color: white; // background-color: white; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 0 16px; position: sticky; top: 0; z-index: 100; height: 64px; border-bottom: 1px solid #ccc; } .container { @@ -319,7 +320,7 @@ } .av_phone { color: #333; color: #777; font-size: 16px; font-weight: 700; } @@ -337,7 +338,7 @@ } .register-btn { background-color: #c4d600; background-color: #287dff; color: white; border: none; } src/config/index.js
@@ -1,5 +1,5 @@ const dev = "https://ciapi.yanshiz.com"; // 开发环境url const prod = "https://ciapi.yanshiz.com"; // 生产环境url const dev = "https://usapi.yanshiz.com"; // 开发环境url const prod = "https://usapi.yanshiz.com"; // 生产环境url export default { baseURL: process.env.NODE_ENV == "development" ? dev : prod, src/lang/cht.json
@@ -712,5 +712,7 @@ "ni": "印度指數", "hk1": "香港", "tw": "台灣", "id1": "印度" "id1": "印度", "kf1": "需要任何幫助請聯繫您的專屬交易助理或開戶專員", "充值提示": "尊敬的會員您好,充值請聯繫客服" } src/lang/en.json
@@ -712,5 +712,7 @@ "ni":"Indian stock index", "hk1":"Hong Kong", "tw":"Taiwan", "id1":"India" "id1":"India", "kf1": "If you need any assistance, please contact your dedicated trading assistant or account opening specialist.", "充值提示": "Dear member, please contact customer service for recharging" } src/lang/hi.json
@@ -712,5 +712,6 @@ "ni": "भारतीय स्टॉक इंडेक्स", "hk1": "हांगकांग", "tw": "ताइवान", "id1": "भारत" "id1": "भारत", "kf1": "यदि आपको कोई सहायता चाहिए, तो कृपया अपने समर्पित व्यापार सहायक या खाता खोलने विशेषज्ञ से संपर्क करें।" } src/views/account/account.vue
@@ -5,14 +5,14 @@ <div class="overview-header"> <div class="title"> <!-- <i class="el-icon-lock"></i> --> <img src="@/assets/images/fund-icon_b.png" alt="Account" /> <img src="@/assets/images/account-icon.png" alt="Account" /> <span>{{ $t("ao1") }}</span> </div> </div> <div class="flex-between" style="width: 100%"> <div class="action-buttons"> <el-button <!-- <el-button type="success" class="deposit-btn" @click="trasferireVisible = true" @@ -21,18 +21,22 @@ <img src="@/assets/images/account_hz.png" alt="Deposit" /> {{ $t("劃轉") }} </div> </el-button> </el-button> --> <el-button type="success" type="primary" class="deposit-btn" @click="depositDialogVisible = true" @click="depositTip" > <div class="flex-center"> <img src="@/assets/images/account_rec.png" alt="Deposit" /> {{ $t("dep") }} </div> </el-button> <el-button class="withdraw-btn" @click="withdrawVisible = true"> <el-button type="primary" class="withdraw-btn" @click="withdrawVisible = true" > <div class="flex-center"> <img src="@/assets/images/account_ret.png" alt="Withdraw" /> {{ $t("hj177") }} @@ -104,38 +108,6 @@ </div> <div class="market-content"> <div class="market-row"> <div class="market-label"> <span class="market-tag sc_c">US</span> <span>{{ $t("mv1") }}</span> </div> <div class="market-value">{{ positionData.usMarketValue }} USD</div> </div> <div class="market-row"> <div class="market-label"> <span class="market-tag sc_c">US</span> <span>{{ $t("upl1") }}</span> </div> <div class="market-value flex-center" :class="`${positionData.usPositionEarnings < 0 ? 'r_c' : ''} ${ positionData.usPositionEarnings > 0 ? 'lc_c' : '' }`" > <img src="@/assets/images/up.png" alt="" v-if="positionData.usPositionEarnings > 0" /> <img src="@/assets/images/down.png" alt="" v-else-if="positionData.usPositionEarnings < 0" /> {{ positionData.usPositionEarnings }} ({{ positionData.usPositionEarningsParent }}) </div> </div> <div class="market-footer"> <div class="position-btn sc_c" @click="positionOpen('US')"> {{ $t("hj2") }} @@ -146,244 +118,18 @@ </div> </div> </div> <div class="market-section sb_b"> <div class="market-header"> <h3>{{ $t("hk1") }}</h3> </div> <div class="overview-content" v-for="i in moneyData" :key="i.id" v-show="i.accectType == 'HK'" > <div class="overview-item"> <div class="item-label">{{ $t("hj49") }}</div> <div class="item-value">{{ i.symbol }} {{ i.totalMoney }}</div> </div> <div class="overview-item"> <div class="item-label">{{ $t("hj48") }}</div> <div class="item-value"> {{ i.symbol }} {{ i.availableBalance }} </div> </div> <div class="overview-item"> <div class="item-label">{{ $t("ff1") }}</div> <div class="item-value">{{ i.symbol }} {{ i.freezeMoney }}</div> </div> </div> <div class="market-content"> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px"> HK </el-tag> <span>{{ $t("mv1") }}</span> </div> <div class="market-value">{{ positionData.hkMarketValue }} HKD</div> </div> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px" >HK</el-tag > <span>{{ $t("upl1") }}</span> </div> <div class="market-value flex-center" :class="`${positionData.hkPositionEarnings < 0 ? 'r_c' : ''} ${ positionData.hkPositionEarnings > 0 ? 'lc_c' : '' }`" > <img src="@/assets/images/up.png" alt="" v-if="positionData.hkPositionEarnings > 0" /> <img src="@/assets/images/down.png" alt="" v-else-if="positionData.hkPositionEarnings < 0" /> {{ positionData.hkPositionEarnings }} ({{ positionData.hkPositionEarningsParent }}) </div> </div> <div class="market-footer"> <div class="position-btn sc_c" @click="positionOpen('HK')"> {{ $t("hj2") }} </div> <div class="trade-log-btn lc_c" @click="tradeLogOpen('HK')"> {{ $t("hj121") }} </div> </div> </div> </div> </div> <div class="market-data page-w a_card" style="padding-top: 0"> <div class="market-section sb_b"> <div class="market-header"> <h3>{{ $t("tw") }}</h3> </div> <div class="overview-content" v-for="i in moneyData" :key="i.id" v-show="i.accectType == 'TW'" > <div class="overview-item"> <div class="item-label">{{ $t("hj49") }}</div> <div class="item-value">{{ i.symbol }} {{ i.totalMoney }}</div> </div> <div class="overview-item"> <div class="item-label">{{ $t("hj48") }}</div> <div class="item-value"> {{ i.symbol }} {{ i.availableBalance }} </div> </div> <div class="overview-item"> <div class="item-label">{{ $t("ff1") }}</div> <div class="item-value">{{ i.symbol }} {{ i.freezeMoney }}</div> </div> </div> <div class="market-content"> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px"> TW </el-tag> <span>{{ $t("mv1") }}</span> </div> <div class="market-value">{{ positionData.twMarketValue }} TWD</div> </div> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px" >TW</el-tag > <span>{{ $t("upl1") }}</span> </div> <div class="market-value flex-center" :class="`${positionData.twPositionEarnings < 0 ? 'r_c' : ''} ${ positionData.twPositionEarnings > 0 ? 'lc_c' : '' }`" > <img src="@/assets/images/up.png" alt="" v-if="positionData.twPositionEarnings > 0" /> <img src="@/assets/images/down.png" alt="" v-else-if="positionData.twPositionEarnings < 0" /> {{ positionData.twPositionEarnings }} ({{ positionData.twPositionEarningsParent }}) </div> </div> <div class="market-footer"> <div class="position-btn sc_c" @click="positionOpen('TW')"> {{ $t("hj2") }} </div> <div class="trade-log-btn lc_c" @click="tradeLogOpen('TW')"> {{ $t("hj121") }} </div> </div> </div> </div> <div class="market-section sb_b"> <div class="market-header"> <h3>{{ $t("id1") }}</h3> </div> <div class="overview-content" v-for="i in moneyData" :key="i.id" v-show="i.accectType == 'IN'" > <div class="overview-item"> <div class="item-label">{{ $t("hj49") }}</div> <div class="item-value">{{ i.symbol }} {{ i.totalMoney }}</div> </div> <div class="overview-item"> <div class="item-label">{{ $t("hj48") }}</div> <div class="item-value"> {{ i.symbol }} {{ i.availableBalance }} </div> </div> <div class="overview-item"> <div class="item-label">{{ $t("ff1") }}</div> <div class="item-value">{{ i.symbol }} {{ i.freezeMoney }}</div> </div> </div> <div class="market-content"> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px"> IN </el-tag> <span>{{ $t("mv1") }}</span> </div> <div class="market-value">{{ positionData.inMarketValue }} INR</div> </div> <div class="market-row"> <div class="market-label"> <el-tag type="success" size="small" style="margin-right: 8px" >IN</el-tag > <span>{{ $t("upl1") }}</span> </div> <div class="market-value flex-center" :class="`${positionData.inPositionEarnings < 0 ? 'r_c' : ''} ${ positionData.inPositionEarnings > 0 ? 'lc_c' : '' }`" > <img src="@/assets/images/up.png" alt="" v-if="positionData.inPositionEarnings > 0" /> <img src="@/assets/images/down.png" alt="" v-else-if="positionData.inPositionEarnings < 0" /> {{ positionData.inPositionEarnings }} ({{ positionData.inPositionEarningsParent }}) </div> </div> <div class="market-footer"> <div class="position-btn sc_c" @click="positionOpen('IN')"> {{ $t("hj2") }} </div> <div class="trade-log-btn lc_c" @click="tradeLogOpen('IN')"> {{ $t("hj121") }} </div> </div> </div> </div> </div> <!-- 账户变更详情 --> <div class="account-details page-w a_card"> <div class="account-details-left"> <div <!-- <div class="nav_item" :class="`${nav == 1 ? 'active' : ''}`" @click="navChange(1)" > {{ $t("账户变动记录") }} </div> </div> --> <div class="nav_item" :class="`${nav == 2 ? 'active' : ''}`" @@ -391,34 +137,34 @@ > {{ $t("dawr") }} </div> <div <!-- <div class="nav_item" :class="`${nav == 3 ? 'active' : ''}`" @click="navChange(3)" > {{ $t("aqt1") }} </div> <div </div> --> <!-- <div class="nav_item" :class="`${nav == 4 ? 'active' : ''}`" @click="navChange(4)" > {{ $t("大宗交易订单") }} </div> <div </div> --> <!-- <div class="nav_item" :class="`${nav == 5 ? 'active' : ''}`" @click="navChange(5)" > {{ $t("io1") }} </div> <div </div> --> <!-- <div class="nav_item" :class="`${nav == 6 ? 'active' : ''}`" @click="navChange(6)" > {{ $t("基金订单") }} </div> </div> --> <div class="nav_item" :class="`${nav == 7 ? 'active' : ''}`" @@ -544,10 +290,9 @@ }, data() { return { nav: 1, nav: 2, moneyData: [], // 账户金额 userInfo: {}, // 用户信息 positionData: {}, // 账户持仓数据 depositAmount: "", // 存款金额 depositMethod: "Bank Transfer", // 存款方式 depositDialogVisible: false, // 存款弹窗显示状态 @@ -574,7 +319,6 @@ init() { this.getMoney(); this.getInfo(); this.getMyPositionProfitAndLose(); }, // 获取账户金额 async getMoney() { @@ -587,13 +331,6 @@ async getInfo() { let data = await api.getUserInfo(); this.userInfo = data.data; }, // 获取账户持仓数据 async getMyPositionProfitAndLose() { let data = await api.getMyPositionProfitAndLose(); if (data.data) { this.positionData = data.data; } }, // 交易列表弹窗打开 positionOpen(type) { @@ -611,12 +348,19 @@ this.nav = val; } }, // 存款提示 depositTip() { this.$message({ message: this.$t("充值提示"), type: "warning", }); }, }, }; </script> <style lang="scss" scoped> $s_c: #c4d600; $s_c: #287dff; $l_c: #07c160; // .account-container {} ::v-deep .el-drawer__header > :first-child { @@ -673,7 +417,7 @@ } .item-label { color: #666; color: #ccc; font-size: 14px; margin-bottom: 10px; } @@ -681,7 +425,7 @@ .item-value { font-size: 20px; font-weight: bold; color: #333; color: #eee; } .action-buttons { @@ -697,8 +441,6 @@ } .deposit-btn { background-color: $l_c !important; border-color: $l_c !important; margin-right: 10px; height: 40px; padding: 0 20px; @@ -710,11 +452,6 @@ color: #fff !important; height: 40px; padding: 0 20px; } .deposit-btn:hover, .withdraw-btn:hover { opacity: 0.5; } .loan-info { @@ -785,7 +522,7 @@ background-color: #fff; border-radius: 16px; overflow: hidden; border: 1px solid #e1e1e1; border: 1px solid #777; } .market-header { @@ -861,12 +598,12 @@ /* 账户变更详情样式 */ .account-details { background-color: #fff; // background-color: #fff; border-radius: 8px; display: flex; gap: 24px; padding: 32px; border-top: 1px solid #f5f5f5; border-top: 1px solid #555; .account-details-right { flex: 3; src/views/account/components/Deposit.vue
@@ -77,17 +77,17 @@ <style lang="scss" scoped> ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked+.el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/account/components/LoanApplication.vue
@@ -66,17 +66,17 @@ <style lang="scss" scoped> ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked + .el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/account/components/Position.vue
@@ -10,6 +10,7 @@ <el-table :data="tableData" style="width: 100%; flex: 1" height="250" empty-text="No Data" > <el-table-column prop="stockSpell" :label="$t('hj313')"> @@ -86,7 +87,8 @@ {{ scope.row.now_price }} </span> <div v-if="scope.row.stockGid != $mc"> ≈ $ {{ (scope.row.now_price * rate(scope.row.stockGid)).toFixed(2) }} ≈ $ {{ (scope.row.now_price * rate(scope.row.stockGid)).toFixed(2) }} </div> </template> </el-table-column> @@ -113,7 +115,9 @@ export default { data() { return { opt: {}, // 列表参数,必须是opt和myMixins混入配合使用 opt: { state: 0, }, // 列表参数,必须是opt和myMixins混入配合使用 }; }, mixins: [mixins], @@ -129,7 +133,7 @@ }, watch: {}, async created() { await this.getExchangeRate(); // 获取汇率 // await this.getExchangeRate(); // 获取汇率 this.opt.stockType = this.type; this.apiInterface = api.getchicang; // 赋值接口 this.init(); // 获取记录列表 src/views/account/components/TradeLog.vue
@@ -25,6 +25,7 @@ <el-table :data="tableData" style="width: 100%; flex: 1" height="250" empty-text="No Data" fit > @@ -169,7 +170,7 @@ }, watch: {}, async created() { await this.getExchangeRate(); // 获取汇率 // await this.getExchangeRate(); // 获取汇率 this.opt.stockType = this.type; this.apiInterface = api.getchicang; // 赋值接口 this.init(); // 获取记录列表 src/views/account/components/Trasferire.vue
@@ -265,17 +265,17 @@ } ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked + .el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/account/components/Withdraw.vue
@@ -101,9 +101,9 @@ }, options: [ { name: "US", value: "USD" }, { name: "HK", value: "HKD" }, { name: "IN", value: "INR" }, { name: "TW", value: "TWD" }, // { name: "HK", value: "HKD" }, // { name: "IN", value: "INR" }, // { name: "TW", value: "TWD" }, ], actions: [{ name: this.$t("hj215"), value: "YHK" }], yhkactions: [], @@ -174,17 +174,17 @@ flex-direction: column; } ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked + .el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/account/components/acd.vue
@@ -7,7 +7,12 @@ <el-tab-pane :label="$t('hj44')" name="HANDLING_CHARGE"></el-tab-pane> </el-tabs> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="amount" :label="$t('je')"> <template slot-scope="scope"> <span :class="`${scope.row.amount > 0 ? 'sc_c' : 'r_c'}`"> src/views/account/components/aqt.vue
@@ -8,7 +8,12 @@ <el-tab-pane :label="$t('失败')" name="notPass"></el-tab-pane> </el-tabs> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="stockName" :label="$t('hj313')"> <template slot-scope="scope"> <el-tag src/views/account/components/bc.vue
@@ -8,7 +8,12 @@ </el-col> </el-row> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="bankName" :label="$t('hj213')"> </el-table-column> <el-table-column prop="bankNo" :label="$t('hj215')"> </el-table-column> @@ -179,7 +184,7 @@ } } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } </style> src/views/account/components/bto.vue
@@ -7,7 +7,12 @@ <el-tab-pane :label="$t('失败')" name="2"></el-tab-pane> </el-tabs> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="stockName" :label="$t('hj313')"> <template slot-scope="scope"> <el-tag src/views/account/components/dawr.vue
@@ -2,7 +2,12 @@ <div class="dawr"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane :label="$t('dep')" name="1"> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="payAmt" :label="$t('je')"> <template slot-scope="scope"> <span class="sc_c"> @@ -33,7 +38,12 @@ </el-table> </el-tab-pane> <el-tab-pane :label="$t('subdka')" name="2"> <el-table :data="tableData" style="width: 100%"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="withAmt" :label="$t('je')"> </el-table-column> <el-table-column prop="withFee" :label="$t('hj44')"> </el-table-column> src/views/account/components/fnv.vue
@@ -174,17 +174,17 @@ <style lang="scss" scoped> ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked + .el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/account/components/fo.vue
@@ -4,7 +4,12 @@ <el-tab-pane label="All" name="all"></el-tab-pane> </el-tabs> --> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="title" label="name"> </el-table-column> <el-table-column prop="buyTime" :label="$t('hj273')"> </el-table-column> src/views/account/components/io.vue
@@ -10,7 +10,12 @@ <el-tab-pane :label="$t('已上市')" name="6"></el-tab-pane> </el-tabs> <el-table :data="tableData" style="width: 100%" empty-text="No Data"> <el-table height="250" :data="tableData" style="width: 100%" empty-text="No Data" > <el-table-column prop="newName" :label="$t('hj313')"> <template slot-scope="scope"> <el-tag src/views/account/components/lp.vue
@@ -84,17 +84,17 @@ <style lang="scss" scoped> ::v-deep .el-radio__input.is-checked .el-radio__inner { border-color: #c4d600; background: #c4d600; border-color: #287dff; background: #287dff; } ::v-deep .el-radio__input.is-checked + .el-radio__label { color: #c4d600; color: #287dff; } .submit { background-color: #c4d600 !important; border-color: #c4d600 !important; background-color: #287dff !important; border-color: #287dff !important; } .ts { src/views/home/components/HomeLtl.vue
@@ -3,9 +3,9 @@ <div class="tabs_box"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="United States" name="US"></el-tab-pane> <el-tab-pane label="Hong Kong" name="HK"></el-tab-pane> <!-- <el-tab-pane label="Hong Kong" name="HK"></el-tab-pane> <el-tab-pane label="Taiwan" name="TW"></el-tab-pane> <el-tab-pane label="India" name="IN"></el-tab-pane> <el-tab-pane label="India" name="IN"></el-tab-pane> --> </el-tabs> </div> src/views/home/components/HomeLtr.vue
@@ -1205,7 +1205,8 @@ SetChartStyle() { EastMoney.HQData.SetMinuteChartCoordinate(); var blackStyle = HQChart.Chart.HQChartStyle.GetStyleConfig( HQChart.Chart.STYLE_TYPE_ID.WHITE_ID // HQChart.Chart.STYLE_TYPE_ID.WHITE_ID // 白色风格 HQChart.Chart.STYLE_TYPE_ID.BLACK_ID // 黑色风格 ); // 读取黑色风格配置 blackStyle.UpBarColor = "#449b54"; //上涨 @@ -1308,14 +1309,14 @@ #hqchart_minute { height: 0; flex: 1; background-color: #fff; // background-color: #fff; position: relative; } #hqchart_kline { height: 0; flex: 1; background-color: #fff; // background-color: #fff; position: relative; } } src/views/home/components/HomeRight.vue
@@ -268,14 +268,14 @@ } .position_list { background-color: #f7f7f7; background-color: #555; padding: 10px; border-radius: 8px; display: flex; flex-direction: column; gap: 10px; .position_item { background-color: #fff; background-color: #777; padding: 10px; border-radius: 8px; display: flex; @@ -283,7 +283,7 @@ align-items: center; font-size: 12px; cursor: pointer; border: 1px solid #fff; border: 1px solid #eee; .total { font-size: 16px; @@ -291,8 +291,8 @@ } .position_item_active { border: 1px solid #c4d600; background-color: #e6f9ef; border: 1px solid #287dff; background-color: #444; } .title { src/views/login.vue
@@ -1,191 +1,201 @@ <template> <div class="login-container page-w page-content"> <div class="login-left"> <div class="logo-container flex-center"> <img src="@/assets/images/logo.png" alt="Kuspit Pro" class="logo" /> </div> <div class="slogan"> <div class="login-container page-w page-content"> <div class="login-left"> <div class="logo-container flex-center"> <img src="@/assets/images/logo.png" alt="Kuspit Pro" class="logo" /> </div> <!-- <div class="slogan"> <h1>Purchase, Trading</h1> <h2>All here</h2> </div> </div> <div class="login-right"> <div class="login-form"> <h2>{{ $t('dlan') }}</h2> <el-form :model="loginForm" :rules="rules" ref="loginForm"> <el-form-item prop="phone"> <label>{{ $t('hj27') }}</label> <el-input v-model="loginForm.phone" placeholder=""></el-input> </el-form-item> <el-form-item prop="userPwd"> <label>{{ $t('Password') }}</label> <el-input v-model="loginForm.userPwd" type="password" placeholder="" show-password></el-input> </el-form-item> <el-form-item> <el-button type="primary" class="login-button" @click="submitForm('loginForm')" :loading="isloading"> {{ $t('dlan') }} </el-button> </el-form-item> <div class="login-options"> <span>{{ $t('hj14') }}?</span> <router-link to="/register" class="register-link">{{ $t('ar1') }}</router-link> </div> </el-form> </div> </div> </div> --> </div> <div class="login-right"> <div class="login-form"> <h2>{{ $t("dlan") }}</h2> <el-form :model="loginForm" :rules="rules" ref="loginForm"> <el-form-item prop="phone"> <label>{{ $t("hj27") }}</label> <el-input v-model="loginForm.phone" placeholder=""></el-input> </el-form-item> <el-form-item prop="userPwd"> <label>{{ $t("Password") }}</label> <el-input v-model="loginForm.userPwd" type="password" placeholder="" show-password ></el-input> </el-form-item> <el-form-item> <el-button type="primary" class="login-button" @click="submitForm('loginForm')" :loading="isloading" > {{ $t("dlan") }} </el-button> </el-form-item> <div class="login-options"> <span>{{ $t("hj14") }}?</span> <router-link to="/register" class="register-link">{{ $t("ar1") }}</router-link> </div> </el-form> </div> </div> </div> </template> <script> import * as api from '@/axios/api.js' import * as api from "@/axios/api.js"; export default { name: "LoginView", data() { return { loginForm: { phone: "", userPwd: "" }, rules: { phone: [ { required: true, message: this.$t('请输入'), trigger: "blur" } ], userPwd: [ { required: true, message: this.$t('请输入'), trigger: "blur" } ] }, isloading: false, }; }, methods: { // 提交表单 登录 submitForm(formName) { this.$refs[formName].validate(async (valid) => { if (valid) { // 登录逻辑 this.isloading = true; // 显示加载状态 let data = await api.login(this.loginForm); name: "LoginView", data() { return { loginForm: { phone: "", userPwd: "", }, rules: { phone: [ { required: true, message: this.$t("请输入"), trigger: "blur" }, ], userPwd: [ { required: true, message: this.$t("请输入"), trigger: "blur" }, ], }, isloading: false, }; }, methods: { // 提交表单 登录 submitForm(formName) { this.$refs[formName].validate(async (valid) => { if (valid) { // 登录逻辑 this.isloading = true; // 显示加载状态 let data = await api.login(this.loginForm); if (data.status == 0) { this.$store.commit("undataToken", data.data.token); // 存储token,vuex window.localStorage.setItem("USERTOKEN", data.data.token); // 存储token,浏览器 this.$router.replace({ path: "/" }); // 跳转到首页 } this.isloading = false; // 隐藏加载状态 } else { console.log("error submit!!"); return false; } }); if (data.status == 0) { this.$store.commit("undataToken", data.data.token); // 存储token,vuex window.localStorage.setItem("USERTOKEN", data.data.token); // 存储token,浏览器 this.$router.replace({ path: "/" }); // 跳转到首页 } this.isloading = false; // 隐藏加载状态 } else { console.log("error submit!!"); return false; } } }); }, }, }; </script> <style lang="scss" scoped> ::v-deep .el-input__inner { background: none; color: #fff; border: none; border-radius: 0; border-bottom: #ccc solid 1px; } .login-container { display: flex; height: 100vh; width: 100%; background-color: #fff; display: flex; height: 100vh; width: 100%; // background-color: #fff; } .login-left { flex: 1; display: flex; flex-direction: column; justify-content: center; background-color: #f5f5f5; flex: 1; display: flex; flex-direction: column; justify-content: center; background-color: #333; } .logo-container { margin-bottom: 40px; margin-bottom: 40px; } .logo { width: 200px; width: 200px; } .slogan { margin: 0 auto; margin: 0 auto; h1 { font-size: 36px; color: #333; margin-bottom: 10px; font-weight: bold; } h1 { font-size: 36px; color: #333; margin-bottom: 10px; font-weight: bold; } h2 { font-size: 36px; color: #c8d405; font-weight: bold; } h2 { font-size: 36px; color: #287dff; font-weight: bold; } } .login-right { flex: 1; display: flex; justify-content: center; align-items: center; flex: 1; display: flex; justify-content: center; align-items: center; } .login-form { width: 70%; max-width: 400px; width: 70%; max-width: 400px; h2 { font-size: 24px; margin-bottom: 30px; font-weight: normal; h2 { font-size: 24px; margin-bottom: 30px; font-weight: normal; } label { display: block; margin-bottom: 8px; color: #606266; } .el-form-item { margin-bottom: 25px; } .el-input { width: 100%; } .login-button { width: 100%; height: 50px; font-size: 16px; border-radius: 25px; margin-top: 10px; } .login-options { text-align: center; margin-top: 15px; font-size: 14px; color: #606266; .register-link { color: #287dff; margin-left: 5px; text-decoration: none; &:hover { text-decoration: underline; } } label { display: block; margin-bottom: 8px; color: #606266; } .el-form-item { margin-bottom: 25px; } .el-input { width: 100%; } .login-button { width: 100%; height: 50px; background-color: #c8d405; border-color: #c8d405; font-size: 16px; border-radius: 25px; margin-top: 10px; &:hover, &:focus { background-color: #b8c205; border-color: #b8c205; } } .login-options { text-align: center; margin-top: 15px; font-size: 14px; color: #606266; .register-link { color: #c8d405; margin-left: 5px; text-decoration: none; &:hover { text-decoration: underline; } } } } } </style> </style> src/views/register.vue
@@ -1,225 +1,241 @@ <template> <div class="register-container page-w page-content"> <div class="register-left"> <div class="logo-container flex-center"> <img src="@/assets/images/logo.png" alt="Kuspit Pro" class="logo" /> </div> <div class="slogan"> <div class="register-container page-w page-content"> <div class="register-left"> <div class="logo-container flex-center"> <img src="@/assets/images/logo.png" alt="Kuspit Pro" class="logo" /> </div> <!-- <div class="slogan"> <h1>Purchase, Trading</h1> <h2>All here</h2> </div> </div> <div class="register-right"> <div class="register-form"> <h2>{{ $t('hj15') }}</h2> <el-form :model="registerForm" :rules="rules" ref="registerForm"> <el-form-item prop="phone"> <label>{{ $t('hj27') }}</label> <el-input v-model="registerForm.phone" placeholder=""></el-input> </el-form-item> <el-form-item prop="userPwd"> <label>{{ $t('Password') }}</label> <el-input v-model="registerForm.userPwd" type="password" placeholder="" show-password></el-input> </el-form-item> <el-form-item prop="confirmPwd"> <label>{{ $t('Confirm Password') }}</label> <el-input v-model="registerForm.confirmPwd" type="password" placeholder="" show-password></el-input> </el-form-item> <el-form-item prop="inviteCode"> <label>{{ $t('hj21') }}</label> <el-input v-model="registerForm.inviteCode" placeholder=""></el-input> </el-form-item> <el-form-item> <el-button type="primary" class="register-button" @click="submitForm('registerForm')" :loading="isloading"> {{ $t('hj15') }} </el-button> </el-form-item> <div class="register-options"> <span>{{ $t('hj23') }}?</span> <router-link to="/login" class="login-link">{{ $t('Go to login') }}</router-link> </div> </el-form> </div> </div> </div> --> </div> <div class="register-right"> <div class="register-form"> <h2>{{ $t("hj15") }}</h2> <el-form :model="registerForm" :rules="rules" ref="registerForm"> <el-form-item prop="phone"> <label>{{ $t("hj27") }}</label> <el-input v-model="registerForm.phone" placeholder=""></el-input> </el-form-item> <el-form-item prop="userPwd"> <label>{{ $t("Password") }}</label> <el-input v-model="registerForm.userPwd" type="password" placeholder="" show-password ></el-input> </el-form-item> <el-form-item prop="confirmPwd"> <label>{{ $t("Confirm Password") }}</label> <el-input v-model="registerForm.confirmPwd" type="password" placeholder="" show-password ></el-input> </el-form-item> <el-form-item prop="inviteCode"> <label>{{ $t("hj21") }}</label> <el-input v-model="registerForm.inviteCode" placeholder="" ></el-input> </el-form-item> <el-form-item> <el-button type="primary" class="register-button" @click="submitForm('registerForm')" :loading="isloading" > {{ $t("hj15") }} </el-button> </el-form-item> <div class="register-options"> <span>{{ $t("hj23") }}?</span> <router-link to="/login" class="login-link">{{ $t("Go to login") }}</router-link> </div> </el-form> </div> </div> </div> </template> <script> import * as api from '@/axios/api.js' import * as api from "@/axios/api.js"; export default { name: "RegisterView", data() { // 确认密码验证 const validateConfirmPwd = (rule, value, callback) => { if (value === '') { callback(new Error(this.$t('请输入'))); } else if (value !== this.registerForm.userPwd) { callback(new Error(this.$t('两次输入密码不一致'))); } else { callback(); } }; return { registerForm: { phone: "", userPwd: "", confirmPwd: "", inviteCode: "", code: '6666' }, rules: { phone: [ { required: true, message: this.$t('请输入'), trigger: "blur" } ], userPwd: [ { required: true, message: this.$t('请输入'), trigger: "blur" } ], confirmPwd: [ { required: true, validator: validateConfirmPwd, trigger: "blur" } ], inviteCode: [ { required: true, message: this.$t('请输入'), trigger: "blur" } ] }, isloading: false, }; }, methods: { // 提交表单 注册 submitForm(formName) { this.$refs[formName].validate(async (valid) => { if (valid) { // 注册逻辑 this.isloading = true; // 显示加载状态 const params = { phone: this.registerForm.phone, userPwd: this.registerForm.userPwd, yzmCode: this.registerForm.code, agentCode: this.registerForm.inviteCode }; let data = await api.register(params); name: "RegisterView", data() { // 确认密码验证 const validateConfirmPwd = (rule, value, callback) => { if (value === "") { callback(new Error(this.$t("请输入"))); } else if (value !== this.registerForm.userPwd) { callback(new Error(this.$t("两次输入密码不一致"))); } else { callback(); } }; return { registerForm: { phone: "", userPwd: "", confirmPwd: "", inviteCode: "", code: "6666", }, rules: { phone: [ { required: true, message: this.$t("请输入"), trigger: "blur" }, ], userPwd: [ { required: true, message: this.$t("请输入"), trigger: "blur" }, ], confirmPwd: [ { required: true, validator: validateConfirmPwd, trigger: "blur" }, ], inviteCode: [ { required: true, message: this.$t("请输入"), trigger: "blur" }, ], }, isloading: false, }; }, methods: { // 提交表单 注册 submitForm(formName) { this.$refs[formName].validate(async (valid) => { if (valid) { // 注册逻辑 this.isloading = true; // 显示加载状态 const params = { phone: this.registerForm.phone, userPwd: this.registerForm.userPwd, yzmCode: this.registerForm.code, agentCode: this.registerForm.inviteCode, }; let data = await api.register(params); if (data.status == 0) { this.$message.success(this.$t('注册成功')); this.$router.replace({ path: "/login" }); // 跳转到登录页 } this.isloading = false; // 隐藏加载状态 } else { console.log("error submit!!"); return false; } }); if (data.status == 0) { this.$message.success(this.$t("注册成功")); this.$router.replace({ path: "/login" }); // 跳转到登录页 } this.isloading = false; // 隐藏加载状态 } else { console.log("error submit!!"); return false; } } }); }, }, }; </script> <style lang="scss" scoped> ::v-deep .el-input__inner { background: none; color: #fff; border: none; border-radius: 0; border-bottom: #ccc solid 1px; } .register-container { display: flex; height: 100vh; width: 100%; background-color: #fff; display: flex; height: 100vh; width: 100%; // background-color: #fff; } .register-left { flex: 1; display: flex; flex-direction: column; justify-content: center; background-color: #f5f5f5; flex: 1; display: flex; flex-direction: column; justify-content: center; background-color: #333; } .logo-container { margin-bottom: 40px; margin-bottom: 40px; } .logo { width: 200px; width: 200px; } .slogan { margin: 0 auto; margin: 0 auto; h1 { font-size: 36px; color: #333; margin-bottom: 10px; font-weight: bold; } h1 { font-size: 36px; color: #333; margin-bottom: 10px; font-weight: bold; } h2 { font-size: 36px; color: #c8d405; font-weight: bold; } h2 { font-size: 36px; color: #287dff; font-weight: bold; } } .register-right { flex: 1; display: flex; justify-content: center; align-items: center; flex: 1; display: flex; justify-content: center; align-items: center; } .register-form { width: 70%; max-width: 400px; width: 70%; max-width: 400px; h2 { font-size: 24px; margin-bottom: 30px; font-weight: normal; h2 { font-size: 24px; margin-bottom: 30px; font-weight: normal; } label { display: block; margin-bottom: 8px; color: #606266; } .el-form-item { margin-bottom: 25px; } .el-input { width: 100%; } .register-button { width: 100%; height: 50px; font-size: 16px; border-radius: 25px; margin-top: 10px; } .register-options { text-align: center; margin-top: 15px; font-size: 14px; color: #606266; .login-link { color: #287dff; margin-left: 5px; text-decoration: none; &:hover { text-decoration: underline; } } label { display: block; margin-bottom: 8px; color: #606266; } .el-form-item { margin-bottom: 25px; } .el-input { width: 100%; } .register-button { width: 100%; height: 50px; background-color: #c8d405; border-color: #c8d405; font-size: 16px; border-radius: 25px; margin-top: 10px; &:hover, &:focus { background-color: #b8c205; border-color: #b8c205; } } .register-options { text-align: center; margin-top: 15px; font-size: 14px; color: #606266; .login-link { color: #c8d405; margin-left: 5px; text-decoration: none; &:hover { text-decoration: underline; } } } } } </style> </style>