From 6bf742b19037b59da70f2bc4119c9c0c68430870 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 19 Jul 2025 18:22:38 +0800
Subject: [PATCH] 1
---
src/locales/jp.json | 12
src/page/kline/index.vue | 90 +
src/axios/api.js | 4
src/page/trading/buy.vue | 1685 +++++++++++++++++++------------------
src/locales/cht.json | 12
src/locales/en.json | 12
src/page/home/vipdetail.vue | 2
src/locales/ens.json | 12
src/locales/fra.json | 12
src/locales/zh.json | 12
src/page/user/loanRecord.vue | 229 +++++
src/page/markets/ipo.vue | 23
src/page/user/recharge-sure.vue | 44
src/locales/de.json | 12
src/page/bankCard/index.vue | 23
src/router/index.js | 26
src/components/stock-list.vue | 22
src/components/tabHead.vue | 20
src/page/trading/TradeNew.vue | 76 +
src/page/user/loan.vue | 234 +++++
src/locales/kor.json | 12
src/locales/hi.json | 12
src/page/kline/kIndex.vue | 16
src/locales/th.json | 12
src/page/user/account.vue | 33
25 files changed, 1,705 insertions(+), 942 deletions(-)
diff --git a/src/axios/api.js b/src/axios/api.js
index 85f7a4c..f1864fb 100644
--- a/src/axios/api.js
+++ b/src/axios/api.js
@@ -663,3 +663,7 @@
export function getMyPositionProfitAndLose(options) {
return get("/user/position/getMyPositionProfitAndLose.do", options);
}
+// 贷款还款
+export function rtDk(options) {
+ return post(`/api/dk/rtDk.do?id=` + options);
+}
diff --git a/src/components/stock-list.vue b/src/components/stock-list.vue
index 36a09df..a2b8ad3 100644
--- a/src/components/stock-list.vue
+++ b/src/components/stock-list.vue
@@ -20,11 +20,21 @@
<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;">
+ <div
+ class="flex-end"
+ style="margin-bottom: .15em;"
+ :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }"
+ >
{{ item.hcrate }}
</div>
- <div class="flex-end">{{ item.hcrateP }}</div>
+ <div
+ class="flex-end"
+ :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }"
+ >
+ {{ item.hcrateP }}
+ </div>
</van-col>
<div
@@ -203,6 +213,14 @@
}
}
+ .up {
+ color: @dark_green;
+ }
+
+ .down {
+ color: @red;
+ }
+
.edit {
width: 100%;
height: 100%;
diff --git a/src/components/tabHead.vue b/src/components/tabHead.vue
index d7c2401..c80aeb5 100644
--- a/src/components/tabHead.vue
+++ b/src/components/tabHead.vue
@@ -44,7 +44,7 @@
@load="onLoad"
v-if="(lists && lists.length > 0) || !finished"
>
- <van-cell v-for="item in lists" :key="item.id">
+ <van-cell v-for="item in lists" :key="item.id" @click="toDetails(item)">
<div class="search_item">
<div class="search_item_left">
<div class="search_item_left_name">{{ item.name }}</div>
@@ -167,7 +167,23 @@
// 提交搜索
this.init();
this.onLoad();
- }
+ },
+ // 点击进入详情
+ toDetails(item) {
+ const obj = {
+ pid: item.code || "",
+ type: item.stock_type || ""
+ };
+ window.localStorage.setItem("kLine", JSON.stringify(obj));
+
+ this.$router.push({
+ path: "/kline",
+ query: {
+ code: item.code,
+ type: item.stock_type
+ }
+ });
+ },
}
};
</script>
diff --git a/src/locales/cht.json b/src/locales/cht.json
index ac409fe..813f1db 100644
--- a/src/locales/cht.json
+++ b/src/locales/cht.json
@@ -641,5 +641,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/de.json b/src/locales/de.json
index 6217b97..3bac7d7 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -636,5 +636,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/en.json b/src/locales/en.json
index 533b44d..2eab1cd 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -656,5 +656,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/ens.json b/src/locales/ens.json
index 49bbe62..93507fd 100644
--- a/src/locales/ens.json
+++ b/src/locales/ens.json
@@ -650,5 +650,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/fra.json b/src/locales/fra.json
index a91faac..ac336b6 100644
--- a/src/locales/fra.json
+++ b/src/locales/fra.json
@@ -635,5 +635,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/hi.json b/src/locales/hi.json
index f159954..c1bfdbe 100644
--- a/src/locales/hi.json
+++ b/src/locales/hi.json
@@ -655,5 +655,15 @@
"购买密码": "पासवर्ड खरीदें",
"最小购买": "न्यूनतम खरीद",
"操作确认": "ऑपरेशन पुष्टिकरण",
- "相关股票": "पर"
+ "相关股票": "पर",
+ "我的贷款": "मेरा ऋण",
+ "待还款金额": "देय राशि",
+ "信用分": "क्रेडिट स्कोर",
+ "剩余贷款额度": "शेष ऋण राशि",
+ "贷款申请": "ऋण आवेदन-पत्र",
+ "还款":"धन वापसी",
+ "确认还款吗":"चुकौती की पुष्टि करें",
+ "日内":"दिन के भीतर",
+ "建仓成本":"धन निर्माण लागत",
+ "已申购":"सदस्यता ली"
}
\ No newline at end of file
diff --git a/src/locales/jp.json b/src/locales/jp.json
index 46cf250..36f715f 100644
--- a/src/locales/jp.json
+++ b/src/locales/jp.json
@@ -637,5 +637,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/kor.json b/src/locales/kor.json
index feea140..b912b83 100644
--- a/src/locales/kor.json
+++ b/src/locales/kor.json
@@ -637,5 +637,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/th.json b/src/locales/th.json
index a52eed0..492e659 100644
--- a/src/locales/th.json
+++ b/src/locales/th.json
@@ -637,5 +637,15 @@
"购买密码": "Buy password",
"最小购买": "Min Buy",
"操作确认": "Operation Confirmation",
- "相关股票": "Related Stocks"
+ "相关股票": "Related Stocks",
+ "我的贷款": "My Loan",
+ "待还款金额": "Amount Due",
+ "信用分": "Credit Score",
+ "剩余贷款额度": "Remaining Loan Amount",
+ "贷款申请": "Loan Application",
+ "还款":"Repayment",
+ "确认还款吗":"Confirm repayment",
+ "日内":"In the meantime",
+ "建仓成本":"Position-building cost",
+ "已申购":"Already purchased"
}
\ No newline at end of file
diff --git a/src/locales/zh.json b/src/locales/zh.json
index fd8d22a..e42bb28 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -641,5 +641,15 @@
"购买密码": "购买密码",
"最小购买": "最小购买",
"操作确认": "操作确认",
- "相关股票": "相关股票"
+ "相关股票": "相关股票",
+ "我的贷款": "我的贷款",
+ "待还款金额": "待还款金额",
+ "信用分": "信用分",
+ "剩余贷款额度": "剩余贷款额度",
+ "贷款申请": "贷款申请",
+ "还款":"还款",
+ "确认还款吗":"确认还款吗",
+ "日内":"日内",
+ "建仓成本":"建仓成本",
+ "已申购":"已申购"
}
\ No newline at end of file
diff --git a/src/page/bankCard/index.vue b/src/page/bankCard/index.vue
index e5bbf71..8443510 100644
--- a/src/page/bankCard/index.vue
+++ b/src/page/bankCard/index.vue
@@ -65,18 +65,16 @@
</div>
</div> -->
- <div class="bank_name" @click.stop="gotodaka" v-if="addBank == true">
+ <!-- <div class="bank_name" @click.stop="gotodaka" v-if="addBank == true"> -->
+ <div class="bank_name" v-if="addBank == true">
<div class="lefts">
<span>{{ $t("hj213") }}</span>
</div>
- <div class="rights" style="justify-content: none;">
+ <!-- <div class="rights" style="justify-content: none;">
{{ name }}
- <!-- <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" /> -->
- <!-- <picker @change="bindPickerChange" :value="index" :range="array">
- <view >{{array[index].name}}</view>
- </picker> -->
- </div>
+ </div> -->
+ <input type="text" :placeholder="$t('hj306')" v-model="name" />
</div>
<div class="bank_name" v-if="addBank == true">
<div class="lefts">
@@ -91,7 +89,7 @@
/>
</div>
</div>
- <div class="bank_name" v-if="addBank == true">
+ <!-- <div class="bank_name" v-if="addBank == true">
<div class="lefts">
<span>{{ $t("hj303") }}</span>
</div>
@@ -103,7 +101,7 @@
:disabled="!addBank"
/>
</div>
- </div>
+ </div> -->
<div class="bank_name" v-if="addBank == true && !_id">
<div class="lefts">
@@ -119,7 +117,7 @@
</div>
</div>
- <div class="bank_name" v-if="addBank == true && !_id">
+ <!-- <div class="bank_name" v-if="addBank == true && !_id">
<div class="lefts">
<span>{{ $t("hj16") }}</span>
</div>
@@ -131,7 +129,7 @@
:disabled="!addBank"
/>
</div>
- </div>
+ </div> -->
<!-- <div class="bank_name" v-if="addBank==false">
<div class="lefts">
<span>{{ $t('hj304') }}123</span>
@@ -264,7 +262,8 @@
}
if (data.status === 0) {
Toast(this.$t("hj220"));
- this.$router.push("/banklist");
+ // this.$router.push("/banklist");
+ this.$router.go(-1);
} else {
Toast(data.msg);
}
diff --git a/src/page/home/vipdetail.vue b/src/page/home/vipdetail.vue
index fba3299..cd8f892 100644
--- a/src/page/home/vipdetail.vue
+++ b/src/page/home/vipdetail.vue
@@ -180,7 +180,7 @@
if (data.status == 0) {
this.$toast(this.$t("hj276"));
this.$router.push({
- path: "/warehouse",
+ path: "/tradeNew",
});
} else {
this.$toast(data.msg);
diff --git a/src/page/kline/index.vue b/src/page/kline/index.vue
index 8c46cb3..407ea4d 100644
--- a/src/page/kline/index.vue
+++ b/src/page/kline/index.vue
@@ -44,7 +44,7 @@
(
Number($store.state.userInfo.userIndexAmt) / 0.9
).toFixed(2)
- : "MX$" + $store.state.userInfo.userIndexAmt
+ : "" + $store.state.userInfo.userIndexAmt
}}
</span>
<span
@@ -55,7 +55,7 @@
style="white-space: nowarp"
>
{{
- "MX$ " +
+ " " +
parseFloat(
$store.state.userInfo.enableAmt.toFixed(2)
).toLocaleString()
@@ -82,7 +82,7 @@
}}</span> -->
<span
:class="singDetails.hcrate > 0 ? 'price green' : 'price red'"
- >MX${{ singDetails.nowPrice }}</span
+ >{{ singDetails.nowPrice }}</span
>
</div>
<div class="bottom_now">
@@ -92,7 +92,7 @@
? '+' : ''
}}{{ (singDetails.nowPrice - singDetails.preclose_px).toFixed(2) }}</span> -->
<span v-else>
- MX${{
+ {{
(singDetails.nowPrice - singDetails.preclose_px).toFixed(2)
}}</span
>
@@ -121,7 +121,7 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX${{ singDetails.open_px }}</span
+ >{{ singDetails.open_px }}</span
>
</div>
<div class="rights topes">
@@ -133,7 +133,7 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX${{ singDetails.today_max }}</span
+ >{{ singDetails.today_max }}</span
>
</div>
</div>
@@ -147,10 +147,10 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX${{ singDetails.preclose_px }}</span
+ >{{ singDetails.preclose_px }}</span
>
</div>
- <div class="rights bots">
+ <div class="rights bots">
<span class="titles">{{ $t("hj75") }}</span>
<!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
singDetails.today_min
@@ -159,7 +159,7 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX${{ singDetails.today_min }}</span
+ >{{ singDetails.today_min }}</span
>
</div>
</div>
@@ -174,9 +174,9 @@
style="display: none"
v-if="
kLineDetails.if_us != 1 &&
- kLineDetails.type != 'hk' &&
- kLineDetails.type != 'hk' &&
- kLineDetails.if_zhishu == 0
+ kLineDetails.type != 'hk' &&
+ kLineDetails.type != 'hk' &&
+ kLineDetails.if_zhishu == 0
"
>
<div class="t_title">
@@ -424,7 +424,7 @@
<img src="../../assets/img/shoucangle.png" alt v-else />
</div>
<div class="right_xx" @click="handleJj()">
- <a href="#"><img src="../../assets/img/xiaoxi.png" alt /></a>
+ <a href="#"><img src="../../assets/img/xiaoxi.png" alt/></a>
</div>
</div>
<div class="rights">
@@ -432,17 +432,17 @@
<div class="top_buy" @click="goBuy(0)">
<span>{{ $t("hj84") }}</span>
</div>
- <div class="bottom_buy">
- <span>MX${{ singDetails.nowPrice }}</span>
- </div>
+ <!-- <div class="bottom_buy">
+ <span>{{ singDetails.nowPrice }}</span>
+ </div> -->
</div>
<div class="sell_btn" @click="goBuy(1)">
<div class="top_sell">
<span>{{ $t("hj85") }}</span>
</div>
- <div class="bottom_sell">
- <span>MX${{ singDetails.nowPrice }}</span>
- </div>
+ <!-- <div class="bottom_sell">
+ <span>{{ singDetails.nowPrice }}</span>
+ </div> -->
</div>
</div>
</div>
@@ -471,11 +471,11 @@
newsdetailList: [],
bayType: "",
timer: null,
- key:0,
+ key: 0
};
},
components: {
- Kline,
+ Kline
},
created() {
@@ -502,7 +502,7 @@
// },
methods: {
async getHknews() {
- await api.queryIndexNews().then((res) => {
+ await api.queryIndexNews().then(res => {
if (res.status === 0) {
this.newsdetailList = res.data.data;
}
@@ -524,13 +524,13 @@
this.optionBtn = false;
this.$message({
message: this.$t("hj97"),
- type: "success",
+ type: "success"
});
} else {
this.optionBtn = false;
this.$message({
message: data.msg,
- type: "warning",
+ type: "warning"
});
}
} else {
@@ -540,12 +540,12 @@
this.optionBtn = false;
this.$message({
message: this.$t("hj96"),
- type: "success",
+ type: "success"
});
} else {
this.$message({
message: data.msg,
- type: "warning",
+ type: "warning"
});
this.optionBtn = false;
}
@@ -569,7 +569,7 @@
},
async getOpation() {
let opts = {
- code: this.$route.query.code,
+ code: this.$route.query.code
};
let data = await api.isOption(opts);
if (data.status === 0) {
@@ -582,9 +582,9 @@
async getSingDetails() {
let opts = {
code: this.kLineDetails.code,
- stockType: this.kLineDetails.type,
+ stockType: this.kLineDetails.type
};
- await api.getSingleStock(opts).then((res) => {
+ await api.getSingleStock(opts).then(res => {
if (res.status === 0) {
this.singDetails = res.data.stock;
this.bayType = res.data.stock.type;
@@ -596,7 +596,7 @@
}
const obj = {
pid: res.data.stock.code,
- type: res.data.stock.type,
+ type: res.data.stock.type
};
window.localStorage.setItem("kLine", JSON.stringify(obj));
// console.log(this.singDetails)
@@ -614,9 +614,9 @@
async getSingDetailUs() {
let opts = {
code: this.kLineDetails.code,
- stockType: this.kLineDetails.type,
+ stockType: this.kLineDetails.type
};
- await api.getUsDetail(opts).then((res) => {
+ await api.getUsDetail(opts).then(res => {
// console.log(res,1111123);
// var that = this
// if(!res){
@@ -660,8 +660,8 @@
this.$router.push({
path: "/newPage",
query: {
- listid: item.id,
- },
+ listid: item.id
+ }
});
},
goBuy(index) {
@@ -678,14 +678,14 @@
spell: this.singDetails.spell,
if_us: this.kLineDetails.if_us,
bayType: this.bayType,
- gid: this.singDetails.gid,
- },
+ gid: this.singDetails.gid
+ }
});
if (navigator.vibrate) {
// 支持
navigator.vibrate([55]);
}
- },
+ }
},
filters: {
getName(spell) {
@@ -747,8 +747,8 @@
.replace(/年|月/g, "-")
.replace(/日/g, " ");
return beijingDatetime; // 2017-03-31 16:02:06
- },
- },
+ }
+ }
};
</script>
@@ -934,7 +934,7 @@
font-size: 25px;
display: flex;
align-items: center;
- font-weight: bold;
+ font-weight: bold;
span {
font-weight: 500;
}
@@ -1167,10 +1167,11 @@
.top_buy {
width: 100%;
- height: 45%;
+ height: 100%;
display: flex;
justify-content: center;
- align-items: flex-end;
+ align-items: center;
+ font-size: 0.4rem;
}
.bottom_buy {
@@ -1192,10 +1193,11 @@
.top_sell {
width: 100%;
- height: 45%;
+ height: 100%;
display: flex;
justify-content: center;
- align-items: flex-end;
+ align-items: center;
+ font-size: 0.4rem;
}
.bottom_sell {
diff --git a/src/page/kline/kIndex.vue b/src/page/kline/kIndex.vue
index 3fc9ab7..b71a4af 100644
--- a/src/page/kline/kIndex.vue
+++ b/src/page/kline/kIndex.vue
@@ -22,14 +22,14 @@
<div class="top_now">
<span
:class="singDetails.hcrate > 0 ? 'price green' : 'price red'"
- >MX$ {{ singDetails.nowPrice }}</span
+ >
+ {{ singDetails.nowPrice }}</span
>
</div>
<div class="bottom_now">
<div>
<span v-if="singDetails.nowPrice === 0">-</span>
<span v-else>
- MX$
{{
(singDetails.nowPrice - singDetails.preclose_px).toFixed(2)
}}</span
@@ -54,7 +54,8 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX$ {{ singDetails.open_px }}</span
+ >
+ {{ singDetails.open_px }}</span
>
</div>
<div class="rights topes">
@@ -63,7 +64,8 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX$ {{ singDetails.today_max }}</span
+ >
+ {{ singDetails.today_max }}</span
>
</div>
</div>
@@ -74,7 +76,8 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX$ {{ singDetails.preclose_px }}</span
+ >
+ {{ singDetails.preclose_px }}</span
>
</div>
<div class="rights bots">
@@ -83,7 +86,8 @@
:class="
singDetails.hcrate > 0 ? 'number green' : 'number red'
"
- >MX$ {{ singDetails.today_min }}</span
+ >
+ {{ singDetails.today_min }}</span
>
</div>
</div>
diff --git a/src/page/markets/ipo.vue b/src/page/markets/ipo.vue
index ecc4d18..90fc58d 100644
--- a/src/page/markets/ipo.vue
+++ b/src/page/markets/ipo.vue
@@ -11,12 +11,12 @@
<div class="trading_card" v-for="i in list" :key="i.id">
<div class="card_label1 flex-between-start">
<div>
- <p class="flex-start gp">
- <span>{{ i.code }}</span>
- </p>
<p class="flex-start">
<span class="label_icon">{{ i.stockType }}</span>
<span class="label_name line-one">{{ i.name }}</span>
+ </p>
+ <p class="flex-start gp">
+ <span>{{ i.code }}</span>
</p>
</div>
@@ -49,8 +49,9 @@
</p>
<p class="card_buy flex-center" @click="buyOpen(i)">
- <van-icon name="add-square" size=".4em" />
- <span>{{ $t("申购") }}</span>
+ <van-icon name="add-square" size=".4em" v-show="i.isBuy == 0" />
+ <span v-if="i.isBuy == 0">{{ $t("申购") }}</span>
+ <span v-else-if="i.isBuy == 1" class="ygm">{{ $t("已申购") }}</span>
</p>
</div>
@@ -119,6 +120,7 @@
methods: {
// 购买弹窗
buyOpen(i) {
+ if (i.isBuy != 0) return;
this.popupData = i;
this.buyShow = true;
},
@@ -129,11 +131,11 @@
applyNums: this.popupData.orderNumber,
password: this.popupData.password,
newlistId: this.popupData.newlistId,
- type: this.popupData.type,
- }
+ type: this.popupData.type
+ };
let data = await api.getNewAdd(opt);
console.log(data.status);
-
+
if (data.status == 0) {
Toast.success();
setTimeout(() => {
@@ -185,6 +187,9 @@
font-size: 0.45em;
font-weight: 600;
margin-left: 0.2em;
+ }
+ .ygm {
+ color: #ddd;
}
}
.card_label2,
@@ -239,7 +244,7 @@
font-size: 0.3em;
}
.gp {
- margin-bottom: 0.2em;
+ margin-top: 0.2em;
}
}
}
diff --git a/src/page/trading/TradeNew.vue b/src/page/trading/TradeNew.vue
index b56beb8..bff737b 100644
--- a/src/page/trading/TradeNew.vue
+++ b/src/page/trading/TradeNew.vue
@@ -2,6 +2,16 @@
<div class="trade_new">
<tab-head></tab-head>
+ <div class="order_tabs">
+ <van-tabs v-model="active" swipe-threshold="1">
+ <van-tab :title="$t('hj160')" name=""></van-tab>
+ <van-tab title="AI" name="4"></van-tab>
+ <van-tab :title="$t('hj621')" name="3"></van-tab>
+ <van-tab title="IPO" name="2"></van-tab>
+ <van-tab :title="$t('日内')" name="0"></van-tab>
+ </van-tabs>
+ </div>
+
<van-row class="list_head">
<van-col span="8" class="flex-start head_item">
{{ $t("hj313") }}/{{ $t("Worth") }}
@@ -26,7 +36,7 @@
<span class="i_hint">{{ i.stockSpell }}</span>
</div>
<div class="i_name">
- {{ i.orderNum * i.now_price }}
+ {{ (i.orderNum * i.now_price).toFixed(2) }}
</div>
</van-col>
<van-col span="8" class="item_n">
@@ -43,23 +53,27 @@
<span>{{ i.now_price }}</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">
+ <van-col span="24" class="flex-start transaction_type">
+ <span>{{ types[i.positionType] }}</span>
+ </van-col>
+ <van-col
+ span="24"
+ class="flex-between-start item_card"
+ v-if="i.positionType == 4"
+ >
<div class="card_label">
- <p>建仓成本</p>
+ <p>{{ $t("建仓成本") }}</p>
<p>{{ i.orderTotalPrice }}</p>
</div>
<div class="card_label">
- <p>平仓金额</p>
- <p>90</p>
+ <p>{{ $t("pcje") }}</p>
+ <p>{{ i.sellOrderTotalPrice }}</p>
</div>
<div class="card_label">
- <p>预期收益</p>
- <p>-10</p>
+ <p>{{ $t("预期收益") }}</p>
+ <p>{{ i.profitAndLose }}</p>
</div>
- </van-col> -->
+ </van-col>
</van-row>
<!-- 无数据时显示 -->
@@ -88,13 +102,24 @@
data() {
return {
pageNum: 1,
- pageSize: 1,
+ pageSize: 15,
total: 1,
- list: []
+ list: [],
+ active: "",
+ types: {
+ 0: this.$t("日内"),
+ 2: "IPO",
+ 3: this.$t("hj621"),
+ 4: "AI"
+ }
};
},
watch: {
pageNum() {
+ this.getList();
+ },
+ active() {
+ this.pageNum = 1;
this.getList();
}
},
@@ -106,6 +131,7 @@
async getList() {
let data = await api.getchicang({
state: 0,
+ positionType: this.active,
pageNum: this.pageNum,
pageSize: this.pageSize
});
@@ -131,6 +157,7 @@
@dark_green: #07c160;
@red: #ee0a24;
@brown: #ff976a;
+@green: #c4d600;
.trade_new {
width: 100%;
@@ -138,6 +165,29 @@
background: #fff;
font-size: 10vw;
padding-bottom: 1.3rem;
+ // padding-top: 1.4em;
+ /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.4em;
+ // left: 0;
+ // z-index: 999;
+ }
.list_head {
background-color: @green2;
diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index ec92d34..1d8fec6 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -19,7 +19,10 @@
<div class="cot">
<div class="lefts">
<div class="top_new">
- <span>MX${{ nowPrice | _toLocaleString }}</span>
+ <span>
+ {{ bayType | currencySymbol }}
+ {{ nowPrice | _toLocaleString }}
+ </span>
</div>
<div class="bottom_es">
<span>{{ $t("hj98") }}</span>
@@ -27,11 +30,19 @@
</div>
<div class="rights">
<div class="ese">
- <div class="mc" @click="handleTradingClick(0)" :class="tabsCurrentIndex === 0 ? 'actives' : ''">
+ <div
+ class="mc"
+ @click="handleTradingClick(0)"
+ :class="tabsCurrentIndex === 0 ? 'actives' : ''"
+ >
<span>Short</span>
</div>
- <div class="mr" @click="handleTradingClick(1)" :class="tabsCurrentIndex === 1 ? 'active' : ''">
+ <div
+ class="mr"
+ @click="handleTradingClick(1)"
+ :class="tabsCurrentIndex === 1 ? 'active' : ''"
+ >
<span>Long</span>
</div>
</div>
@@ -42,8 +53,13 @@
<div class="price_tabs">
<div class="tabs">
- <div class="tab_item" v-for="(item, index) in priceTabs" :key="index" @click="handleTabsClick(item, index)"
- :class="priceTabsCurrentIndex === index ? 'active' : ''">
+ <div
+ class="tab_item"
+ v-for="(item, index) in priceTabs"
+ :key="index"
+ @click="handleTabsClick(item, index)"
+ :class="priceTabsCurrentIndex === index ? 'active' : ''"
+ >
<span>{{ item }}</span>
</div>
</div>
@@ -60,11 +76,14 @@
<img src="@/assets/img/ic_number_jian.png" alt />
</div>
<div class="addorj"></div>
- <div class="addorj" @click="
+ <div
+ class="addorj"
+ @click="
typeof nums == 'string'
? (nums = Number(Number(nums) + 1).toFixed(2))
: (nums = (Number(nums) + 1).toFixed(2))
- ">
+ "
+ >
<img src="@/assets/img/ic_number_add.png" />
</div>
</div>
@@ -74,7 +93,12 @@
</div>
<div class="tr_es flexJy">
<div class="top_input">
- <input type="number" onkeyup="value=value.replace(/[^\d]/g,'')" v-model="num" @input="numInput" />
+ <input
+ type="number"
+ onkeyup="value=value.replace(/[^\d]/g,'')"
+ v-model="num"
+ @input="numInput"
+ />
</div>
<div class="right_sw flexJy" style="width: auto">
<div class="addorj" @click="jyslJian">
@@ -94,42 +118,52 @@
</div>
<div class="tr_rs">
<div class="top_bzz" style="padding-bottom: 0.2rem">
- <span style="text-align: left">
- {{ $t("交易总额") }}(MX$)
- </span>
- <span style="text-align: right">
- {{ $t("hj103") }}(MX$)
- </span>
+ <span style="text-align: left"> {{ $t("交易总额") }}() </span>
+ <span style="text-align: right"> {{ $t("hj103") }}() </span>
</div>
<div class="bottom_bzz">
<span>
- MX${{
- ((nowPrice * selectCycle.replace("X", "")) * num)
+ {{ bayType | currencySymbol }}
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num)
| _toLocaleString
}}
+ <span v-if="bayType == 'US'">
+ ≈ MX$
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num * utm)
+ | _toLocaleString
+ }}
+ </span>
</span>
<span style="white-space: nowarp">
- MX${{ moneyData.availableBalance | _toLocaleString }}
+ MX$ {{ moneyData.availableBalance | _toLocaleString }}
</span>
</div>
</div>
<div class="tr_rs">
<div class="top_bzz" style="padding-bottom: 0.2rem">
- <span style="text-align: left">
- {{ $t("hj44") }}(MX$)
- </span>
- <span style="text-align: right">
- </span>
+ <span style="text-align: left"> {{ $t("hj44") }}() </span>
+ <span style="text-align: right"> </span>
</div>
<div class="bottom_bzz">
<span>
- MX${{(
- ((nowPrice * selectCycle.replace("X", "")) * num)*sxf).toFixed(2)}}
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num * sxf).toFixed(
+ 2
+ )
+ }}
+ <span v-if="bayType == 'US'">
+ ≈ MX$
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num * sxf * utm)
+ | _toLocaleString
+ }}
+ </span>
</span>
- <span style="white-space: nowarp">
- </span>
+ <span style="white-space: nowarp"> </span>
</div>
</div>
</div>
@@ -190,929 +224,938 @@
</div>
</div>
</div>
- <van-action-sheet v-model="showGg" :actions="siteLeverList" :cancel-text="$t('hj106')" :description="$t('hj107')"
- close-on-click-action @select="onSelect" />
+ <van-action-sheet
+ v-model="showGg"
+ :actions="siteLeverList"
+ :cancel-text="$t('hj106')"
+ :description="$t('hj107')"
+ close-on-click-action
+ @select="onSelect"
+ />
</div>
</template>
<script>
- import * as api from "@/axios/api";
- import {
- mapActions
- } from "vuex";
+import * as api from "@/axios/api";
+import { mapActions } from "vuex";
+import { myMixin } from "@/mixins/myMixin";
- export default {
- name: "trBuy",
- created() {
- if (this.$route.query.t) {
- this.tabsCurrentIndex = Number(this.$route.query.t);
- console.log(this.tabsCurrentIndex);
- }
- if (this.$route.query.m) {
- this.nowPrice = Number(this.$route.query.m);
- this.profitTarget = Number(this.$route.query.m);
- this.zhisun = Number(this.$route.query.m);
- this.nums = Number(this.$route.query.m);
- }
- if (this.$route.query.id) {
- this.id = this.$route.query.id;
- }
- if (this.$route.query.code) {
- this.code = this.$route.query.code;
- }
- if (this.$route.query.name) {
- this.name = this.$route.query.name;
- }
- if (this.$route.query.spell) {
- this.spell = this.$route.query.spell;
- }
- if (this.$route.query.type) {
- this.type = this.$route.query.type;
- }
- if (this.$route.query.if_us) {
- this.if_us = this.$route.query.if_us;
- }
- },
- data() {
- return {
- tradingArr: [this.$t("hj84"), this.$t("hj85")],
- tabsCurrentIndex: 0,
- // priceTabs: [this.$t("hj108"), this.$t("hj109")],
- priceTabs: [this.$t("hj108")],
- priceTabsCurrentIndex: 0,
- num: 1,
- nums: 1,
- profit: false,
- nowPrice: 0,
- type: 0,
- code: "",
- name: "",
- spell: "",
- settingInfo: [],
- selectCycle: "1X",
- selectLever: 1,
- siteLeverList: [],
- checkedZy: false,
- checkedZs: false,
- buying: false,
- zhisun: 0,
- showGg: false,
- profitTarget: 0,
- if_us: 0,
- bayType: "",
- sxf:'',
- id: "",
- actions: [{
- name: "100X",
- subname: this.$t("hj102")
- },
- {
- name: "200X",
- subname: this.$t("hj102")
- },
- {
- name: "300X",
- subname: this.$t("hj102")
- },
- ],
- profitArr: [{
- name: this.$t("hj104"),
- checked: false,
- },
- {
- name: this.$t("hj105"),
- checked: false,
- },
- {
- name: this.$t("hj110"),
- checked: false,
- },
- ],
- moneyData: {},
- gid: "",
- };
- },
+export default {
+ name: "trBuy",
+ mixins: [myMixin],
+ created() {
+ if (this.$route.query.t) {
+ this.tabsCurrentIndex = Number(this.$route.query.t);
+ console.log(this.tabsCurrentIndex);
+ }
+ if (this.$route.query.m) {
+ this.nowPrice = Number(this.$route.query.m);
+ this.profitTarget = Number(this.$route.query.m);
+ this.zhisun = Number(this.$route.query.m);
+ this.nums = Number(this.$route.query.m);
+ }
+ if (this.$route.query.id) {
+ this.id = this.$route.query.id;
+ }
+ if (this.$route.query.code) {
+ this.code = this.$route.query.code;
+ }
+ if (this.$route.query.name) {
+ this.name = this.$route.query.name;
+ }
+ if (this.$route.query.spell) {
+ this.spell = this.$route.query.spell;
+ }
+ if (this.$route.query.type) {
+ this.type = this.$route.query.type;
+ }
+ if (this.$route.query.if_us) {
+ this.if_us = this.$route.query.if_us;
+ }
+ },
+ data() {
+ return {
+ tradingArr: [this.$t("hj84"), this.$t("hj85")],
+ tabsCurrentIndex: 0,
+ // priceTabs: [this.$t("hj108"), this.$t("hj109")],
+ priceTabs: [this.$t("hj108")],
+ priceTabsCurrentIndex: 0,
+ num: 1,
+ nums: 1,
+ profit: false,
+ nowPrice: 0,
+ type: 0,
+ code: "",
+ name: "",
+ spell: "",
+ settingInfo: [],
+ selectCycle: "1X",
+ selectLever: 1,
+ siteLeverList: [],
+ checkedZy: false,
+ checkedZs: false,
+ buying: false,
+ zhisun: 0,
+ showGg: false,
+ profitTarget: 0,
+ if_us: 0,
+ bayType: "",
+ sxf: "",
+ id: "",
+ actions: [
+ {
+ name: "100X",
+ subname: this.$t("hj102")
+ },
+ {
+ name: "200X",
+ subname: this.$t("hj102")
+ },
+ {
+ name: "300X",
+ subname: this.$t("hj102")
+ }
+ ],
+ profitArr: [
+ {
+ name: this.$t("hj104"),
+ checked: false
+ },
+ {
+ name: this.$t("hj105"),
+ checked: false
+ },
+ {
+ name: this.$t("hj110"),
+ checked: false
+ }
+ ],
+ moneyData: {},
+ gid: ""
+ };
+ },
- mounted() {
- this.bayType = this.$route.query.bayType;
- this.gid = this.$route.query.gid;
- if (this.bayType == "in") {
- this.priceTabs = [this.$t("hj108"), this.$t("hj109")];
- } else if (this.bayType == "qh") {
- this.priceTabs = [this.$t("hj108")];
+ mounted() {
+ this.bayType = this.$route.query.bayType;
+ this.gid = this.$route.query.gid;
+ if (this.bayType == "in") {
+ this.priceTabs = [this.$t("hj108"), this.$t("hj109")];
+ } else if (this.bayType == "qh") {
+ this.priceTabs = [this.$t("hj108")];
+ }
+ this.setUseInfo();
+ this.getMoneyData();
+ this.getSettingInfo();
+ this.queryStockConfig();
+ },
+ watch: {
+ checkedZy(val) {
+ if (navigator.vibrate) {
+ // 支持
+ navigator.vibrate([55]);
}
- this.setUseInfo();
- this.getMoneyData();
- this.getSettingInfo();
- this.queryStockConfig()
},
- watch: {
- checkedZy(val) {
- if (navigator.vibrate) {
- // 支持
- navigator.vibrate([55]);
- }
- },
- checkedZs(val) {
- if (navigator.vibrate) {
- // 支持
- navigator.vibrate([55]);
- }
- },
+ checkedZs(val) {
+ if (navigator.vibrate) {
+ // 支持
+ navigator.vibrate([55]);
+ }
+ }
+ },
+ methods: {
+ async queryStockConfig() {
+ let data = await api.queryStockConfig();
+ if (data.status === 0) {
+ this.sxf = data.data.cValue;
+ }
},
- methods: {
- async queryStockConfig(){
- let data = await api.queryStockConfig();
- if (data.status === 0) {
- this.sxf=data.data.cValue
- }
- },
- zSjian(){
- var newzishu = (Number(this.zhisun)-1).toFixed(2)
- if(Number(newzishu)<1){
-
- }else{
- this.zhisun = newzishu
- }
- },
- ...mapActions(["setUseInfo"]),
- numInput(e) {
- // this.nowPrice / this.selectCycle.replace("X", "")
- // this.moneyData.availableBalance
- let numbs = Math.floor(
- this.moneyData.availableBalance /
+ zSjian() {
+ var newzishu = (Number(this.zhisun) - 1).toFixed(2);
+ if (Number(newzishu) < 1) {
+ } else {
+ this.zhisun = newzishu;
+ }
+ },
+ ...mapActions(["setUseInfo"]),
+ numInput(e) {
+ // this.nowPrice / this.selectCycle.replace("X", "")
+ // this.moneyData.availableBalance
+ let numbs = Math.floor(
+ this.moneyData.availableBalance /
this.nowPrice /
this.selectCycle.replace("X", "")
- );
- if (e.target.value >= numbs) {
- this.num = numbs;
- }
- // if()
- console.log(e.target.value);
- },
- handleDoubleClick(event) {
- console.log(1);
- // console.log('Input field was double-clicked', event);
- },
- async getMoneyData() {
- let data = await api.getMoney();
- let type = this.bayType === "SZHB" ? "US" : this.bayType;
- if (data.status === 0) {
- const newArr = data.data.filter((item) => item.accectType === type);
+ );
+ if (e.target.value >= numbs) {
+ this.num = numbs;
+ }
+ // if()
+ console.log(e.target.value);
+ },
+ handleDoubleClick(event) {
+ console.log(1);
+ // console.log('Input field was double-clicked', event);
+ },
+ async getMoneyData() {
+ let data = await api.getMoney();
+ let type = this.bayType === "SZHB" ? "US" : this.bayType;
+ if (data.status === 0) {
+ // const newArr = data.data.filter(item => item.accectType === type);
+ // this.moneyData = newArr[0] || {};
- this.moneyData = newArr[0] || {};
- // console.log(this.bayType, newArr);
- // 判断是否登录
- // this.moneyList = data.data;
- }
- },
- handleBack() {
- this.$router.go(-1);
- },
- handleTradingClick(index) {
- this.tabsCurrentIndex = index;
- },
- handleTabsClick(item, index) {
- this.priceTabsCurrentIndex = index;
- },
- jjjisua() {
- let numbs = Math.floor(
- this.moneyData.availableBalance /
+ this.moneyData = data.data[0];
+
+ // console.log(this.bayType, newArr);
+ // 判断是否登录
+ // this.moneyList = data.data;
+ }
+ },
+ handleBack() {
+ this.$router.go(-1);
+ },
+ handleTradingClick(index) {
+ this.tabsCurrentIndex = index;
+ },
+ handleTabsClick(item, index) {
+ this.priceTabsCurrentIndex = index;
+ },
+ jjjisua() {
+ let numbs = Math.floor(
+ this.moneyData.availableBalance /
this.nowPrice /
this.selectCycle.replace("X", "")
- );
- typeof this.num == "string" ?
- (this.num = Number(Number(this.num) + 1)) :
- (this.num = Number(Number(this.num) + 1));
+ );
+ typeof this.num == "string"
+ ? (this.num = Number(Number(this.num) + 1))
+ : (this.num = Number(Number(this.num) + 1));
- console.log(this.num, numbs);
- if (this.num >= numbs) {
- this.num = numbs;
- }
- },
- jyslJian() {
- if (typeof this.num === "string") {
+ console.log(this.num, numbs);
+ if (this.num >= numbs) {
+ this.num = numbs;
+ }
+ },
+ jyslJian() {
+ if (typeof this.num === "string") {
+ this.num = 1;
+ } else {
+ if (this.num > 1) {
+ if (typeof this.num === "string") {
+ this.num = Number(this.num - 1);
+ } else {
+ this.num = Number(this.num - 1);
+ }
+ } else {
this.num = 1;
- } else {
- if (this.num > 1) {
- if (typeof this.num === "string") {
- this.num = Number(this.num - 1);
- } else {
- this.num = Number(this.num - 1);
- }
- } else {
- this.num = 1;
- }
}
- },
- gdJian() {
- if (this.nums > 1) {
- if (typeof this.nums === "string") {
- this.nums = Number(Number(this.nums) - 1).toFixed(2);
- } else {
- this.nums = Number(Number(this.nums) - 1).toFixed(2);
- }
- } else {
- this.nums = this.nowPrice;
- }
- },
- zYjian() {
- var newzishu = (Number(this.profitTarget)-1).toFixed(2)
- if(Number(newzishu)<1){
-
- }else{
- this.profitTarget = newzishu
}
- // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
- // if(this.tabsCurrentIndex==0){
- // console.log( this.nowPrice);
- // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
- // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
- // } else {
- // this.profitTarget = this.nowPrice;
- // }
- // }else{
- // console.log(123);
- // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
- // this.profitTarget = this.nowPrice;
- // } else {
- // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
- // }
- // }
-
-
- },
- zSjia() {
- this.zhisun++;
- // if ((Number(this.zhisun) + 1).toFixed(2) > this.nowPrice) {
- // this.zhisun = this.nowPrice;
- // } else {
- // this.zhisun++;
- // }
- },
- zsInt(e) {
- if (typeof e.target.value === "string") {
+ },
+ gdJian() {
+ if (this.nums > 1) {
+ if (typeof this.nums === "string") {
+ this.nums = Number(Number(this.nums) - 1).toFixed(2);
+ } else {
+ this.nums = Number(Number(this.nums) - 1).toFixed(2);
+ }
+ } else {
+ this.nums = this.nowPrice;
+ }
+ },
+ zYjian() {
+ var newzishu = (Number(this.profitTarget) - 1).toFixed(2);
+ if (Number(newzishu) < 1) {
+ } else {
+ this.profitTarget = newzishu;
+ }
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // if(this.tabsCurrentIndex==0){
+ // console.log( this.nowPrice);
+ // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // } else {
+ // this.profitTarget = this.nowPrice;
+ // }
+ // }else{
+ // console.log(123);
+ // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
+ // this.profitTarget = this.nowPrice;
+ // } else {
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // }
+ // }
+ },
+ zSjia() {
+ this.zhisun++;
+ // if ((Number(this.zhisun) + 1).toFixed(2) > this.nowPrice) {
+ // this.zhisun = this.nowPrice;
+ // } else {
+ // this.zhisun++;
+ // }
+ },
+ zsInt(e) {
+ if (typeof e.target.value === "string") {
+ this.zhisun = this.nowPrice;
+ } else {
+ if (Number(e.target.value) > this.nowPrice) {
this.zhisun = this.nowPrice;
- } else {
- if (Number(e.target.value) > this.nowPrice) {
- this.zhisun = this.nowPrice;
- }
}
- },
- zyInt(e) {
- if (typeof e.target.value === "string") {
- this.profitTarget = this.nowPrice;
- } else {
- if (Number(e.target.value) < Number(this.nowPrice)) {
- this.profitTarget = Number(this.nowPrice);
- }
+ }
+ },
+ zyInt(e) {
+ if (typeof e.target.value === "string") {
+ this.profitTarget = this.nowPrice;
+ } else {
+ if (Number(e.target.value) < Number(this.nowPrice)) {
+ this.profitTarget = Number(this.nowPrice);
}
- },
- onSelect(val) {
- this.selectCycle = val.name;
- this.selectLever = val.label;
- },
- gdOrSetBuy() {
- if (this.priceTabsCurrentIndex == 0) {
+ }
+ },
+ onSelect(val) {
+ this.selectCycle = val.name;
+ this.selectLever = val.label;
+ },
+ gdOrSetBuy() {
+ if (this.priceTabsCurrentIndex == 0) {
+ this.setBuy();
+ } else {
+ this.gdBuy();
+ }
+ if (navigator.vibrate) {
+ // 支持
+ navigator.vibrate([55]);
+ }
+ },
+ // 挂单
+ async gdBuy() {
+ if (this.buying) {
+ return;
+ }
+ this.buying = true;
+ let opts = {
+ stockId: this.code,
+ buyNum: this.num,
+ lever: this.selectLever,
+ targetPrice: this.nums
+ };
+ console.log(this.selectLever, "this.selectLever ");
- this.setBuy();
- } else {
+ if (this.tabsCurrentIndex == 0) {
+ opts.buyType = 1;
+ } else {
+ opts.buyType = 0;
+ }
+ if (this.checkedZy) {
+ // opts.profitTarget = this.profitTarget.substring(0,this.profitTarget.indexOf(".")+3)
+ opts.profitTarget = this.profitTarget;
+ }
+ if (this.checkedZs) {
+ opts.stopTarget = this.zhisun;
+ }
+ let data = await api.guadan(opts);
+ this.buying = false;
+ if (data.status === 0) {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg,
+ elAlertType: "success"
+ });
+ this.getUserInfo();
+ // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
+ this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
+ } else {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg
+ });
+ }
+ },
+ // 买卖
+ setBuy() {
+ if (this.$store.state.userInfo.isActive !== 2) {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: this.$t("hj111")
+ });
+ this.$router.push("/authentications");
+ return;
+ }
- this.gdBuy();
- }
- if (navigator.vibrate) {
- // 支持
- navigator.vibrate([55]);
- }
- },
- // 挂单
- async gdBuy() {
- if (this.buying) {
- return;
- }
- this.buying = true;
- let opts = {
- stockId: this.code,
- buyNum: this.num,
- lever: this.selectLever,
- targetPrice: this.nums,
- };
- console.log(this.selectLever, "this.selectLever ");
+ if (this.buying) {
+ return;
+ }
+ this.buying = true;
+ let opts = {};
+ opts = {
+ // stockId: this.detail.id,
+ // buyNum: this.selectNumber ? this.selectNumber * 100 : 0, // 单位为手
+ // buyType: this.selectType,
+ lever: this.selectCycle ? this.selectCycle : 0,
+ // subaccountNumber:this.subaccountNumber
+ // 买入是买涨buyType:0, 卖出是买跌buyType:1,卖出的状态是0,买入的状态是1
+ buyNum: this.num, // 单位为手
+ // buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
+ lever: this.selectLever
+ };
+ console.log(this.selectLever, "this.selectLever ");
+ if (this.tabsCurrentIndex == 0) {
+ opts.buyType = 1;
+ } else {
+ opts.buyType = 0;
+ }
+ if (this.checkedZy) {
+ // opts.profitTarget = this.profitTarget.substring(0,this.profitTarget.indexOf(".")+3)
+ opts.profitTarget = this.profitTarget;
+ }
+ if (this.checkedZs) {
+ opts.stopLoss = this.zhisun;
+ }
+ if (this.type == 0) {
+ // 股票
+ this.gpBuy(opts);
+ // opts.stockId= this.code,
+ // data = await api.buy(opts)
+ } else {
+ // 指数
+ this.zsBuy(opts);
+ // opts.indexId= this.code,
+ // data = await api.indexBuy(opts)
+ }
+ },
+ // 股票买入
+ async gpBuy(opts) {
+ opts.stockId = this.id;
+ let data = await api.buy(opts);
+ this.buying = false;
+ if (data.status === 0) {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg,
+ elAlertType: "success"
+ });
+ this.getUserInfo();
+ var buyType = "";
if (this.tabsCurrentIndex == 0) {
- opts.buyType = 1;
+ buyType = 1;
} else {
- opts.buyType = 0;
+ buyType = 0;
}
- if (this.checkedZy) {
- // opts.profitTarget = this.profitTarget.substring(0,this.profitTarget.indexOf(".")+3)
- opts.profitTarget = this.profitTarget;
- }
- if (this.checkedZs) {
- opts.stopTarget = this.zhisun;
- }
- let data = await api.guadan(opts);
- this.buying = false;
- if (data.status === 0) {
+ // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
+ this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
+ } else {
+ if (data.msg.indexOf("不在交易时段内") > -1) {
this.$store.commit("elAlertShow", {
elAlertShow: true,
- elAlertText: data.msg,
- elAlertType: "success",
+ elAlertText: this.$t("hj113")
});
- this.getUserInfo();
- this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
} else {
this.$store.commit("elAlertShow", {
elAlertShow: true,
- elAlertText: data.msg,
+ elAlertText: data.msg
});
}
- },
- // 买卖
- setBuy() {
- if (this.$store.state.userInfo.isActive !== 2) {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: this.$t("hj111"),
- });
- this.$router.push("/authentications");
- return;
- }
+ }
+ },
+ // 指数买入
+ async zsBuy(opts) {
+ opts.indexId = this.id;
+ let data = await api.indexBuy(opts);
+ this.buying = false;
+ if (data.status === 0) {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg,
+ elAlertType: "success"
+ });
+ this.getUserInfo();
+ // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
+ this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
+ } else {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg
+ });
+ }
+ },
+ async getUserInfo() {
+ // 获取用户信息
+ // let showcookie = this.getCookie('USER_TOKEN');
+ let data = await api.getUserInfo();
+ if (data.status === 0) {
+ // this.getProductSetting()
+ this.$store.state.userInfo = data.data;
+ } else {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg
+ });
+ }
+ this.$store.state.user = this.user;
+ },
+ async getSettingInfo() {
+ // 网站设置信息
+ let data = await api.getSetting();
+ if (data.status === 0) {
+ // 成功
+ this.settingInfo = data.data;
+ // 杠杆倍数
+ // data.data.siteLever根据/分割成数组
+ // this.siteLeverList = data.data.siteLever.split('/')
- if (this.buying) {
- return;
- }
- this.buying = true;
- let opts = {};
- opts = {
- // stockId: this.detail.id,
- // buyNum: this.selectNumber ? this.selectNumber * 100 : 0, // 单位为手
- // buyType: this.selectType,
- lever: this.selectCycle ? this.selectCycle : 0,
- // subaccountNumber:this.subaccountNumber
+ if (
+ this.$store.state.userInfo !== undefined &&
+ this.$store.state.userInfo !== null &&
+ this.$store.state.userInfo.siteLever != null
+ ) {
+ this.selectCycle =
+ this.$store.state.userInfo.siteLever.split("/")[0] + "X";
- // 买入是买涨buyType:0, 卖出是买跌buyType:1,卖出的状态是0,买入的状态是1
- buyNum: this.num, // 单位为手
- // buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
- lever: this.selectLever,
- };
- console.log(this.selectLever, "this.selectLever ");
- if (this.tabsCurrentIndex == 0) {
- opts.buyType = 1;
- } else {
- opts.buyType = 0;
- }
- if (this.checkedZy) {
- // opts.profitTarget = this.profitTarget.substring(0,this.profitTarget.indexOf(".")+3)
- opts.profitTarget = this.profitTarget;
- }
- if (this.checkedZs) {
- opts.stopLoss = this.zhisun;
- }
- if (this.type == 0) {
- // 股票
- this.gpBuy(opts);
- // opts.stockId= this.code,
- // data = await api.buy(opts)
- } else {
- // 指数
- this.zsBuy(opts);
- // opts.indexId= this.code,
- // data = await api.indexBuy(opts)
- }
- },
- // 股票买入
- async gpBuy(opts) {
- opts.stockId = this.id;
- let data = await api.buy(opts);
- this.buying = false;
- if (data.status === 0) {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- elAlertType: "success",
- });
- this.getUserInfo();
- var buyType = "";
- if (this.tabsCurrentIndex == 0) {
- buyType = 1;
- } else {
- buyType = 0;
- }
- this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
- } else {
- if (data.msg.indexOf("不在交易时段内") > -1) {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: this.$t("hj113"),
- });
- } else {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- });
- }
- }
- },
- // 指数买入
- async zsBuy(opts) {
- opts.indexId = this.id;
- let data = await api.indexBuy(opts);
- this.buying = false;
- if (data.status === 0) {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- elAlertType: "success",
- });
- this.getUserInfo();
- this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
- } else {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- });
- }
- },
- async getUserInfo() {
- // 获取用户信息
- // let showcookie = this.getCookie('USER_TOKEN');
- let data = await api.getUserInfo();
- if (data.status === 0) {
- // this.getProductSetting()
- this.$store.state.userInfo = data.data;
- } else {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- });
- }
- this.$store.state.user = this.user;
- },
- async getSettingInfo() {
- // 网站设置信息
- let data = await api.getSetting();
- if (data.status === 0) {
- // 成功
- this.settingInfo = data.data;
- // 杠杆倍数
- // data.data.siteLever根据/分割成数组
- // this.siteLeverList = data.data.siteLever.split('/')
-
- if (
- this.$store.state.userInfo !== undefined &&
- this.$store.state.userInfo !== null &&
- this.$store.state.userInfo.siteLever != null
+ this.siteLeverList = [];
+ for (
+ let i = 0;
+ i < this.$store.state.userInfo.siteLever.split("/").length;
+ i++
) {
- this.selectCycle =
- this.$store.state.userInfo.siteLever.split("/")[0] + "X";
-
- this.siteLeverList = [];
- for (
- let i = 0; i < this.$store.state.userInfo.siteLever.split("/").length; i++
- ) {
- let val = this.$store.state.userInfo.siteLever.split("/")[i];
- let item = {
- label: val,
- name: val + "X"
- };
- this.siteLeverList.push(item);
- }
- console.log(this.siteLeverList, " this.selectCycle");
+ let val = this.$store.state.userInfo.siteLever.split("/")[i];
+ let item = {
+ label: val,
+ name: val + "X"
+ };
+ this.siteLeverList.push(item);
}
- } else {
- this.$store.commit("elAlertShow", {
- elAlertShow: true,
- elAlertText: data.msg,
- });
+ console.log(this.siteLeverList, " this.selectCycle");
}
- },
- },
- filters: {
- getName(name) {
- if (name.length > 15) {
- return name;
- } else {
- return name;
- }
- },
- },
- };
+ } else {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg
+ });
+ }
+ }
+ },
+ filters: {
+ getName(name) {
+ if (name.length > 15) {
+ return name;
+ } else {
+ return name;
+ }
+ }
+ }
+};
</script>
<style scoped lang="less">
- .buy_page {
- width: 100%;
- min-height: 100vh;
- background-color: #fff;
+.buy_page {
+ width: 100%;
+ min-height: 100vh;
+ background-color: #fff;
- >.content {
- width: 100%;
- height: calc(100% - 1.6rem);
- position: relative;
- background-color: rgb(241, 242, 246);
- }
+ > .content {
+ width: 100%;
+ height: calc(100% - 1.6rem);
+ position: relative;
+ background-color: rgb(241, 242, 246);
}
+}
- .top_cny {
+.top_cny {
+ width: 100%;
+ height: 3.5385rem;
+
+ .top_back {
width: 100%;
- height: 3.5385rem;
+ height: 1.2rem;
+ display: flex;
+ align-items: center;
+ padding: 0 0.1rem;
- .top_back {
- width: 100%;
- height: 1.2rem;
+ .left_back {
+ width: 0.8rem;
+ height: 80%;
display: flex;
align-items: center;
- padding: 0 0.1rem;
- .left_back {
- width: 0.8rem;
- height: 80%;
+ > img {
+ margin-top: 0.2rem;
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+
+ .right_title {
+ width: 3rem;
+ height: 80%;
+
+ .t_t {
+ width: 100%;
+ height: 70%;
display: flex;
align-items: center;
+ font-size: 0.4615rem;
- >img {
- margin-top: 0.2rem;
- width: 0.6rem;
- height: 0.6rem;
+ span {
+ font-weight: 600;
}
}
- .right_title {
- width: 3rem;
- height: 80%;
+ .b_t {
+ width: 100%;
+ height: 30%;
+ font-size: 0.3615rem;
+ display: flex;
+ align-items: flex-start;
+ color: #8c8c8c;
+ }
+ }
+ }
- .t_t {
+ .bottom_buy_price {
+ width: 100%;
+ height: 2rem;
+ display: flex;
+ align-items: center;
+ padding: 0 0.8rem;
+ margin-top: 0.3rem;
+
+ .cot {
+ width: 100%;
+ height: 1.2rem;
+ display: flex;
+
+ .lefts {
+ width: 40%;
+ height: 100%;
+
+ .top_new {
width: 100%;
- height: 70%;
- display: flex;
- align-items: center;
- font-size: 0.4615rem;
+ height: 60%;
+ font-size: 0.5615rem;
+ color: rgb(232, 55, 70);
span {
font-weight: 600;
}
}
- .b_t {
+ .bottom_es {
width: 100%;
- height: 30%;
- font-size: 0.3615rem;
- display: flex;
- align-items: flex-start;
- color: #8c8c8c;
+ height: 40%;
+ color: rgb(173, 173, 173);
}
}
- }
- .bottom_buy_price {
- width: 100%;
- height: 2rem;
- display: flex;
- align-items: center;
- padding: 0 0.8rem;
- margin-top: 0.3rem;
-
- .cot {
- width: 100%;
- height: 1.2rem;
+ .rights {
+ width: 60%;
+ height: 100%;
display: flex;
+ align-items: center;
+ justify-content: flex-end;
- .lefts {
- width: 40%;
- height: 100%;
+ > div {
+ width: 65%;
+ height: 80%;
+ display: flex;
+ justify-content: center;
- .top_new {
- width: 100%;
- height: 60%;
- font-size: 0.5615rem;
- color: rgb(232, 55, 70);
+ > div {
+ width: 45%;
+ height: 70%;
+ background: rgb(236, 236, 236);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 0.1rem;
+ color: rgb(173, 173, 173);
+ }
+
+ .active {
+ background: #fff;
+ color: rgb(110, 169, 118);
span {
font-weight: 600;
}
}
- .bottom_es {
- width: 100%;
- height: 40%;
- color: rgb(173, 173, 173);
- }
- }
+ .actives {
+ background: #fff;
+ color: rgb(212, 71, 78);
- .rights {
- width: 60%;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: flex-end;
-
- >div {
- width: 65%;
- height: 80%;
- display: flex;
- justify-content: center;
-
- >div {
- width: 45%;
- height: 70%;
- background: rgb(236, 236, 236);
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 0.1rem;
- color: rgb(173, 173, 173);
- }
-
- .active {
- background: #fff;
- color: rgb(110, 169, 118);
-
- span {
- font-weight: 600;
- }
- }
-
- .actives {
- background: #fff;
- color: rgb(212, 71, 78);
-
- span {
- font-weight: 600;
- }
+ span {
+ font-weight: 600;
}
}
}
}
}
}
+}
- .price_tabs {
+.price_tabs {
+ width: 100%;
+ height: auto;
+ padding: 0.2rem 0.8rem;
+ background: #fff;
+ margin-top: 0.1rem;
+ border-radius: 0.3rem;
+
+ .tabs {
width: 100%;
- height: auto;
- padding: 0.2rem 0.8rem;
- background: #fff;
- margin-top: 0.1rem;
- border-radius: 0.3rem;
+ height: 0.8205rem;
+ background: rgb(247, 247, 247);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0.15rem;
- .tabs {
- width: 100%;
- height: 0.8205rem;
- background: rgb(247, 247, 247);
- display: flex;
- align-items: center;
- justify-content: center;
+ > div {
+ width: 49%;
+ height: 80%;
border-radius: 0.15rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
- >div {
- width: 49%;
- height: 80%;
- border-radius: 0.15rem;
- display: flex;
- justify-content: center;
- align-items: center;
+ .active {
+ background: #fff;
+
+ span {
+ font-weight: 600;
}
+ }
+ }
- .active {
- background: #fff;
+ .tabs_content {
+ width: 100%;
+ margin-top: 0.3rem;
- span {
+ .num {
+ width: 100%;
+ height: 0.5rem;
+ line-height: 0.5rem;
+ position: relative;
+ top: 0.2rem;
+ }
+
+ .tr_es {
+ width: 100%;
+ height: 1.3rem;
+ margin-top: 0.15rem;
+ border-bottom: 0.05rem solid rgb(236, 236, 236);
+
+ .top_input {
+ width: 70%;
+ height: 70%;
+ font-size: 0.6615rem;
+
+ input {
font-weight: 600;
}
}
}
- .tabs_content {
+ .tr_rs {
width: 100%;
- margin-top: 0.3rem;
+ height: 1.3rem;
+ margin-top: 0.4rem;
- .num {
+ > div {
width: 100%;
- height: 0.5rem;
- line-height: 0.5rem;
- position: relative;
- top: 0.2rem;
- }
-
- .tr_es {
- width: 100%;
- height: 1.3rem;
- margin-top: 0.15rem;
- border-bottom: 0.05rem solid rgb(236, 236, 236);
-
- .top_input {
- width: 70%;
- height: 70%;
- font-size: 0.6615rem;
-
- input {
- font-weight: 600;
- }
- }
- }
-
- .tr_rs {
- width: 100%;
- height: 1.3rem;
- margin-top: 0.4rem;
-
- >div {
- width: 100%;
- height: 50%;
- color: rgb(160, 160, 160);
- display: flex;
- justify-content: space-between;
-
- span {
- font-weight: 600;
- }
- }
-
- .bottom_bzz {
- color: #000;
- font-size: 0.3846rem;
-
- span {
- font-weight: 600;
- }
- }
-
- .top_bzz {
- align-items: center;
- }
- }
-
- .gg {
- margin-top: 0 !important;
- height: 1.8rem;
+ height: 50%;
+ color: rgb(160, 160, 160);
display: flex;
- align-items: center;
- font-size: 0.3803rem;
- border-bottom: 0.05rem solid rgb(236, 236, 236);
+ justify-content: space-between;
- >div {
- color: #000;
+ span {
+ font-weight: 600;
}
+ }
+
+ .bottom_bzz {
+ color: #000;
+ font-size: 0.3846rem;
+
+ span {
+ font-weight: 600;
+ }
+ }
+
+ .top_bzz {
+ align-items: center;
}
}
- }
- .switchs {
- width: 100%;
- height: auto;
- padding: 0 0.8rem;
- background: #fff;
- margin-top: 0.3rem;
- border-radius: 0.3rem 0.3rem 0 0;
- transition: all 0.5s;
-
- .zy {
- transition: all 0.5s;
- width: 100%;
+ .gg {
+ margin-top: 0 !important;
height: 1.8rem;
display: flex;
- justify-content: space-between;
align-items: center;
+ font-size: 0.3803rem;
border-bottom: 0.05rem solid rgb(236, 236, 236);
- >div {
- // width: 20%;
- height: 50%;
- display: flex;
- align-items: center;
- font-size: 0.3346rem;
- }
-
- .right_sw {
- justify-content: flex-end;
+ > div {
+ color: #000;
}
}
}
+}
- .btn_buy {
+.switchs {
+ width: 100%;
+ height: auto;
+ padding: 0 0.8rem;
+ background: #fff;
+ margin-top: 0.3rem;
+ border-radius: 0.3rem 0.3rem 0 0;
+ transition: all 0.5s;
+
+ .zy {
+ transition: all 0.5s;
width: 100%;
- height: auto;
- bottom: 0;
- background: #fff;
- padding: 0.8rem 0.8rem;
- display: flex;
- align-items: flex-end;
- // padding-top: 0.8rem;
-
- >div {
- width: 100%;
- height: 1.2821rem;
- display: flex;
- justify-content: center;
- align-items: center;
- // background: rgb(68, 155, 84);
- color: #fff;
- font-size: 0.3846rem;
- border-radius: 0.15rem;
- }
- }
-
- /deep/.van-action-sheet__name {
- font-size: 0.3846rem;
- color: #000;
- }
-
- /deep/.van-action-sheet__gap {
- height: 0.25rem;
- }
-
- /deep/.van-action-sheet__cancel {
- font-size: 0.4246rem;
- height: 1.3rem;
- color: #000;
- }
-
- /deep/.van-action-sheet__description {
- font-size: 0.3846rem;
- height: 1.45rem;
- line-height: 0.7rem;
- }
-
- .left_zy input {
- font-size: 0.48rem;
- font-weight: 500;
- }
-
- .addorj {
- width: 0.7rem;
- height: 0.7rem;
- color: #000;
- font-weight: 500;
- cursor: pointer;
- }
-
- .addorj img {
- width: 100%;
- height: 100%;
- cursor: pointer;
- }
-
- .flexJy {
+ height: 1.8rem;
display: flex;
justify-content: space-between;
align-items: center;
- }
+ border-bottom: 0.05rem solid rgb(236, 236, 236);
- .top_input input {
+ > div {
+ // width: 20%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ font-size: 0.3346rem;
+ }
+
+ .right_sw {
+ justify-content: flex-end;
+ }
+ }
+}
+
+.btn_buy {
+ width: 100%;
+ height: auto;
+ bottom: 0;
+ background: #fff;
+ padding: 0.8rem 0.8rem;
+ display: flex;
+ align-items: flex-end;
+ // padding-top: 0.8rem;
+
+ > div {
width: 100%;
+ height: 1.2821rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ // background: rgb(68, 155, 84);
+ color: #fff;
+ font-size: 0.3846rem;
+ border-radius: 0.15rem;
}
+}
- .maichu {
- // background-color: rgb(225, 59, 69) !important;
+/deep/.van-action-sheet__name {
+ font-size: 0.3846rem;
+ color: #000;
+}
+
+/deep/.van-action-sheet__gap {
+ height: 0.25rem;
+}
+
+/deep/.van-action-sheet__cancel {
+ font-size: 0.4246rem;
+ height: 1.3rem;
+ color: #000;
+}
+
+/deep/.van-action-sheet__description {
+ font-size: 0.3846rem;
+ height: 1.45rem;
+ line-height: 0.7rem;
+}
+
+.left_zy input {
+ font-size: 0.48rem;
+ font-weight: 500;
+}
+
+.addorj {
+ width: 0.7rem;
+ height: 0.7rem;
+ color: #000;
+ font-weight: 500;
+ cursor: pointer;
+}
+
+.addorj img {
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+}
+
+.flexJy {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.top_input input {
+ width: 100%;
+}
+
+.maichu {
+ // background-color: rgb(225, 59, 69) !important;
+}
+
+.mr {
+ position: relative;
+
+ &::after {
+ content: " ";
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: -0.1rem;
+ z-index: 10000;
+ background: rgba(255, 255, 255, 0);
+ border-left: 0.12rem solid rgb(241, 242, 246);
+ transform-origin: bottom right;
+ -ms-transform: skew(-10deg, 0deg);
+ -webkit-transform: skew(-10deg, 0deg);
+ transform: skew(-10deg, 0deg);
}
+}
- .mr {
- position: relative;
+.mc {
+ position: relative;
- &::after {
- content: " ";
- position: absolute;
- display: block;
- width: 100%;
- height: 100%;
- top: 0;
- left: -0.1rem;
- z-index: 10000;
- background: rgba(255, 255, 255, 0);
- border-left: 0.12rem solid rgb(241, 242, 246);
- transform-origin: bottom right;
- -ms-transform: skew(-10deg, 0deg);
- -webkit-transform: skew(-10deg, 0deg);
- transform: skew(-10deg, 0deg);
- }
+ &::after {
+ content: " ";
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ z-index: 10000;
+ background: rgba(255, 255, 255, 0);
+ border-right: 0.1rem solid rgb(241, 242, 246);
+ transform-origin: bottom left;
+ -ms-transform: skew(-10deg, 0deg);
+ -webkit-transform: skew(-10deg, 0deg);
+ transform: skew(-10deg, 0deg);
}
+}
- .mc {
- position: relative;
+/deep/.van-overlay {
+ z-index: 10000 !important;
+}
- &::after {
- content: " ";
- position: absolute;
- display: block;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- z-index: 10000;
- background: rgba(255, 255, 255, 0);
- border-right: 0.1rem solid rgb(241, 242, 246);
- transform-origin: bottom left;
- -ms-transform: skew(-10deg, 0deg);
- -webkit-transform: skew(-10deg, 0deg);
- transform: skew(-10deg, 0deg);
- }
- }
-
- /deep/.van-overlay {
- z-index: 10000 !important;
- }
-
- /deep/.van-popup {
- z-index: 10001 !important;
- }
+/deep/.van-popup {
+ z-index: 10001 !important;
+}
</style>
diff --git a/src/page/user/account.vue b/src/page/user/account.vue
index c241500..7f62e45 100644
--- a/src/page/user/account.vue
+++ b/src/page/user/account.vue
@@ -49,6 +49,17 @@
</div>
</div>
+ <div class="account_loan flex-between" @click="toPage('/loan')">
+ <div class="loan_left">
+ <p class="loan_left_title">{{ $t("待还款金额") }}</p>
+ <p>MX$ {{ userInfo.refundAmount || 0 }}</p>
+ </div>
+ <div class="flex-end loan_right">
+ {{ $t("我的贷款") }}
+ <van-icon name="play" style="margin-left:.5em" />
+ </div>
+ </div>
+
<div class="account_card">
<div class="held_head flex-between">
<div class="flex-center head_left" @click="toPage('/tradeNew')">
@@ -204,12 +215,32 @@
font-size: 10vw;
padding-top: 0.2em;
padding-bottom: 1.4rem;
+ .account_loan {
+ height: 2em;
+ background-color: #e5eff7;
+ width: 100%;
+ padding: 0 0.5em 0.15em;
+
+ .loan_left {
+ p {
+ font-size: 0.4em;
+ }
+ .loan_left_title {
+ font-size: 0.3em;
+ color: #999;
+ margin-bottom: 0.75em;
+ }
+ }
+ .loan_right {
+ font-size: 0.4em;
+ }
+ }
.account_card {
background-color: #f5f5f5;
border-radius: 0.25em;
width: 9.5em;
- margin: 0.5em auto 0;
+ margin: 0.25em auto 0;
.held_item {
padding: 0.42em 0;
diff --git a/src/page/user/loan.vue b/src/page/user/loan.vue
new file mode 100644
index 0000000..3e32706
--- /dev/null
+++ b/src/page/user/loan.vue
@@ -0,0 +1,234 @@
+<template>
+ <div class="loan">
+ <page-head :title="$t('我的贷款')">
+ <template slot="right">
+ <div class="head_right" @click="$router.push('/loanRecord')">
+ {{ $t("jl") }}
+ </div>
+ </template>
+ </page-head>
+
+ <div class="account_loan flex-between">
+ <van-row style="width:100%">
+ <van-col span="8">
+ <div class="loan_name">{{ $t("待还款金额") }}</div>
+ <div class="loan_num">{{ userInfo.refundAmount || 0 }}</div>
+ </van-col>
+ <van-col span="8">
+ <div class="loan_name">{{ $t("信用分") }}</div>
+ <div class="loan_num">{{ userInfo.creditScore || 0 }}</div>
+ </van-col>
+ <van-col span="8">
+ <div class="loan_name">{{ $t("剩余贷款额度") }}</div>
+ <div class="loan_num">{{ userInfo.loanLimit || 0 }}</div>
+ </van-col>
+ </van-row>
+ </div>
+
+ <div class="flex-center" @click="openUopup">
+ <div class="but flex-center">
+ <span>{{ $t("贷款申请") }}</span>
+ </div>
+ </div>
+
+ <!-- 申请弹窗 -->
+ <van-popup v-model="show" round>
+ <van-form class="buy_popup" @submit="popupSubmit">
+ <div class="popup_title flex-center">
+ <span>{{ $t("贷款申请") }}</span>
+ </div>
+
+ <div class="division"></div>
+
+ <div class="popup_item" style="display: grid;">
+ <p class="flex-start">
+ <span style="color:red">*</span>
+ <span>{{ $t("je") }} (MX$)</span>
+ </p>
+ <van-field
+ v-model="popupPrice"
+ :placeholder="$t('请输入')"
+ type="number"
+ clearable
+ :rules="[{ required: true, message: $t('请输入') }]"
+ />
+ </div>
+
+ <div class="division"></div>
+
+ <div class="buts flex-between">
+ <p class="flex-center" @click="show = false">
+ <span>{{ $t("qx") }}</span>
+ </p>
+ <p class="flex-center" native-type="submit">
+ <!-- <span>{{ $t("qr") }}</span> -->
+ <van-button native-type="submit">{{ $t("qr") }}</van-button>
+ </p>
+ </div>
+ </van-form>
+ </van-popup>
+ </div>
+</template>
+
+<script>
+import PageHead from "@/components/pageHead.vue";
+import * as api from "@/axios/api";
+import { Toast } from "vant";
+
+export default {
+ components: {
+ PageHead
+ },
+ data() {
+ return {
+ userInfo: {},
+ show: false, // 弹窗控制
+ popupPrice: "" // 申请金额
+ };
+ },
+ created() {
+ this.getUserInfo();
+ },
+ 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);
+ }
+ },
+ // 打开申请弹窗
+ openUopup() {
+ this.popupPrice = "";
+ this.show = true;
+ },
+ // 申请提交
+ async popupSubmit() {
+ let opt = {
+ dkMoney: this.popupPrice
+ };
+ let data = await api.BuyDK(opt);
+ if (data.status === 0) {
+ Toast.success();
+ this.getUserInfo();
+ this.show = false;
+ } else {
+ Toast.fail(data.msg);
+ }
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+@red: #ee0a24;
+.loan {
+ font-size: 10vw;
+ width: 100%;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+
+ .buy_popup {
+ width: 8em;
+ /deep/ .van-cell {
+ padding: 0;
+ font-size: 0.4em;
+ }
+ /deep/ .van-field__body {
+ border: 0.01em solid #f5f5f5;
+ height: 2.5em;
+ padding: 0 0.5em;
+ margin-top: 0.5em;
+ }
+ /deep/ .van-button {
+ border: none;
+ font-size: 1em;
+ color: @green;
+ }
+ .division {
+ width: 100%;
+ height: 0.25em;
+ background-color: #f5f5f5;
+ }
+ .popup_title {
+ width: 100%;
+ min-height: 1.22em;
+ font-weight: bold;
+ padding: 0 0.25em;
+ }
+ .popup_name {
+ color: @green;
+ .popup_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ .popup_item {
+ width: 7.5em;
+ margin: 0 auto;
+ padding: 0.35em 0;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ span {
+ font-size: 0.4em;
+ }
+ .buts {
+ width: 100%;
+ height: 1.22em;
+ p {
+ height: 100%;
+ flex: 1;
+ }
+ & > p:last-child {
+ border-left: #f5f5f5 solid 0.01em;
+ color: @green;
+ }
+ }
+ }
+ .but {
+ width: 9em;
+ height: 1.2em;
+ background-color: @green;
+ color: #fff;
+ border-radius: 0.1em;
+ margin-top: 0.25em;
+ span {
+ font-size: 0.4em;
+ }
+ }
+ .account_loan {
+ height: 2em;
+ background-image: linear-gradient(to right, #e8f3ff, #c3dbf4);
+ box-shadow: 0 0 0.26667rem #0000000d;
+ width: 100%;
+ padding: 0 0.5em;
+ width: 100%;
+
+ .loan_name {
+ font-size: 0.32em;
+ color: #999;
+ margin-bottom: 0.3em;
+ font-weight: 300;
+ }
+ .loan_num {
+ font-size: 0.32em;
+ color: @red;
+ }
+ }
+
+ .head_right {
+ color: @green;
+ font-size: 0.4em;
+ }
+}
+</style>
diff --git a/src/page/user/loanRecord.vue b/src/page/user/loanRecord.vue
new file mode 100644
index 0000000..5d08cd0
--- /dev/null
+++ b/src/page/user/loanRecord.vue
@@ -0,0 +1,229 @@
+<template>
+ <div class="loan_record">
+ <page-head :title="$t('dkjl')"> </page-head>
+ <div class="order_tabs">
+ <van-tabs v-model="active" swipe-threshold="1">
+ <van-tab :title="$t('hj160')" name=""></van-tab>
+ <van-tab :title="$t('sqz')" name="0"></van-tab>
+ <van-tab :title="$t('sptg')" name="1"></van-tab>
+ <van-tab :title="$t('审核拒绝')" name="2"></van-tab>
+ </van-tabs>
+ </div>
+
+ <div class="trading_card" v-for="i in list" :key="i.id">
+ <p class="card_label2 flex-between">
+ <span>{{ $t("dkje") }}</span>
+ <span class="je">MX$ {{ i.dkMoney }}</span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("状态") }}</span>
+ <span class="zt sqz" v-if="i.dkState == '0'">{{ $t("sqz") }}</span>
+ <span class="zt tg" v-else-if="i.dkState == '1'">{{ $t("sptg") }}</span>
+ <span class="zt jj" v-else-if="i.dkState == '2'">
+ {{ $t("shjj") }}
+ </span>
+ </p>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("提交时间") }}</span>
+ <span>{{ i.createTime | gettime }}</span>
+ </p>
+
+ <p class="card_label2 flex-between" v-if="i.dkState == '1'">
+ <span>{{ $t("shje") }}</span>
+ <span class="je">MX$ {{ i.spMoney }}</span>
+ </p>
+
+ <p
+ class="card_label2 flex-center"
+ v-if="i.dkState == '1' && i.dkRefundState == 0"
+ >
+ <van-button plain type="primary" round block @click="hk(i)">{{
+ $t("还款")
+ }}</van-button>
+ </p>
+
+ <p
+ class="card_label2 flex-between-start"
+ style="flex-direction: column;"
+ v-if="i.dkState == '2'"
+ >
+ <span style="margin-bottom: .3em;">{{ $t("hj165") }}</span>
+ <span style="word-wrap:break-word;word-break:normal;width:100%;">
+ {{ i.dkMessage }}
+ </span>
+ </p>
+ </div>
+
+ <!-- 无数据时显示 -->
+ <div class="no_data flex-center" v-show="!list || list.length == 0">
+ <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 * as api from "@/axios/api";
+import nPagination from "@/components/nPagination.vue";
+import { Toast, Dialog } from "vant";
+
+export default {
+ components: {
+ PageHead,
+ nPagination
+ },
+ data() {
+ return {
+ active: "",
+ list: [],
+ pageNum: 1,
+ pageSize: 10,
+ total: 1
+ };
+ },
+ created() {
+ this.getRecordList();
+ },
+ watch: {
+ active() {
+ this.pageNum = 1;
+ this.getRecordList();
+ },
+ pageNum: {
+ handler(val) {
+ this.list = [];
+ this.getRecordList();
+ }
+ }
+ },
+ methods: {
+ // 获取记录列表
+ async getRecordList() {
+ let data = await api.getDkJl({
+ state: this.active,
+ pageNum: this.pageNum,
+ pageSize: this.pageSize
+ });
+ if (data.status === 0) {
+ this.list = data.data.list;
+ } else {
+ Toast(data.msg);
+ }
+ },
+ // 还款
+ hk(val) {
+ Dialog.alert({
+ message: this.$t("确认还款吗") + "?",
+ showCancelButton: true,
+ confirmButtonText: this.$t("qr"),
+ cancelButtonText: this.$t("qx")
+ }).then(() => {
+ api.rtDk(val.id).then(res => {
+ if (res.status === 0) {
+ Toast.success();
+ this.getRecordList();
+ } else {
+ Toast.fail(res.msg);
+ }
+ });
+ });
+ }
+ }
+};
+</script>
+
+<style lang="less" scoped>
+@green: #c4d600;
+@red: #ee0a24;
+@dark_green: #07c160;
+.loan_record {
+ font-size: 10vw;
+ width: 100%;
+ min-height: 100vh;
+ padding-bottom: 0.3em;
+ background-color: #f5f5f5;
+ padding-top: 1.22em;
+
+ /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_label2,
+ .card_label1 {
+ margin: 0 auto;
+ width: 9em;
+ border-bottom: #f5f5f5 solid 0.01em;
+ }
+ .card_label2 {
+ min-height: 1.1em;
+ padding: 0.25em 0;
+ color: #323233;
+ /deep/ .van-button__text {
+ font-size: 1.2em;
+ }
+ /deep/ .van-button--plain.van-button--primary {
+ color: @green;
+ border-color: @green;
+ }
+ span {
+ font-size: 0.4em;
+ font-weight: 300;
+ }
+ & > span:last-child {
+ color: #969799;
+ font-size: 0.36em;
+ }
+ span.zt {
+ padding: 0.3em 0.5em;
+ border-radius: 0.2em;
+ font-size: 0.4em;
+ color: #fff;
+ }
+ span.sqz {
+ background-color: @green;
+ }
+ span.tg {
+ background-color: @dark_green;
+ }
+ span.jj {
+ background-color: @red;
+ }
+ span.je {
+ font-size: 0.45em;
+ color: @red;
+ }
+ }
+ }
+}
+</style>
diff --git a/src/page/user/recharge-sure.vue b/src/page/user/recharge-sure.vue
index 5773c17..ad27219 100644
--- a/src/page/user/recharge-sure.vue
+++ b/src/page/user/recharge-sure.vue
@@ -48,7 +48,7 @@
<!-- <van-cell is-link :title="bankCard.bankName || $t('請選擇')" /> -->
<van-cell
is-link
- :title="yhkrechargeSelect.bankName || $t('請選擇')"
+ :title="yhkrechargeSelect.bankName || $t('請選擇')"
@click="yhkshow = true"
/>
<van-action-sheet
@@ -92,7 +92,7 @@
<script>
import { ActionSheet, Notify } from "vant";
import ClipboardJS from "clipboard";
-import _ from 'lodash';
+import _ from "lodash";
import { getBankCard, getMoney, outMoney } from "../../axios/api";
export default {
@@ -102,9 +102,9 @@
value: 0,
paymentSelectData: "IN",
- isclick:false,
+ isclick: false,
show: false,
- yhkshow:false,
+ yhkshow: false,
// 提款聚到
rechargeSelect: {},
yhkrechargeSelect: {},
@@ -116,10 +116,14 @@
// 请选择提款账户
rechargeAccountData: {},
rechargeAccountActions: [
+ // {
+ // name: this.$t("IN"),
+ // key: "IN",
+ // },
{
- name: this.$t("IN"),
- key: "IN",
- },
+ name: "MEX",
+ key: "MEX"
+ }
// {
// name: this.$t("MAS"),
// key: "MAS",
@@ -135,7 +139,7 @@
getMoneyList: [],
assetsType: "",
symbolCode: "",
- yhkid:'',
+ yhkid: ""
};
},
mounted() {
@@ -145,17 +149,17 @@
methods: {
async setOutMoney() {
if (this.isclick) return;
- console.log('11111');
+ console.log("11111");
const res = await outMoney({
amt: this.value,
assetsType: this.accectType,
- bankId:this.yhkid
+ bankId: this.yhkid
});
this.isclick = false;
if (res.status === 0) {
Notify({ type: "success", message: this.$t("hj182") });
// setTimeout(() => {
- this.$router.push("/cashlist");
+ this.$router.push("/cashlist");
// }, 500);
} else {
Notify(res.msg);
@@ -169,9 +173,9 @@
const res = await getBankCard();
if (res.status === 0) {
this.bankCard = res.data;
- this.yhkactions = res.data
- for(var i = 0;i<this.yhkactions.length;i++){
- this.yhkactions[i].name = this.yhkactions[i].bankName
+ this.yhkactions = res.data;
+ for (var i = 0; i < this.yhkactions.length; i++) {
+ this.yhkactions[i].name = this.yhkactions[i].bankName;
}
}
},
@@ -179,7 +183,7 @@
const res = await getMoney();
if (res.status === 0) {
this.getMoneyList = res.data;
- res.data.map((item) => {
+ res.data.map(item => {
if (item.accectType === this.rechargeAccountData.key) {
this.availableBalanceUSD = item.availableBalance;
this.symbolCode = item.symbolCode;
@@ -194,7 +198,7 @@
},
copyText(e, data) {
var clipboard = new ClipboardJS(".copy-button", {
- text: () => data,
+ text: () => data
});
clipboard.on("success", () => {
@@ -209,7 +213,7 @@
},
yhkselect(e) {
this.yhkrechargeSelect = e;
- this.yhkid = e.id
+ this.yhkid = e.id;
console.log(e);
},
select(e) {
@@ -218,7 +222,7 @@
},
rechargeAccountSelect(e) {
this.rechargeAccountData = e;
- (this.getMoneyList || []).map((item) => {
+ (this.getMoneyList || []).map(item => {
if (item.accectType === this.rechargeAccountData.key) {
this.availableBalanceUSD = item.availableBalance;
this.symbolCode = item.symbolCode;
@@ -229,8 +233,8 @@
paymentSelect(e) {
this.paymentSelectData = e.name;
console.log(e);
- },
- },
+ }
+ }
};
</script>
diff --git a/src/router/index.js b/src/router/index.js
index 4a98d02..f9f420b 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -249,7 +249,7 @@
},
component: () => import("@/page/trading/stockRecord.vue")
},
- // 账户页面
+ // 账户
{
path: "/account",
name: "account",
@@ -260,6 +260,30 @@
},
component: () => import("@/page/user/account.vue")
},
+ // 我的贷款
+ {
+ path: "/loan",
+ name: "loan",
+ meta: {
+ title: i18n.t("我的贷款"),
+ requireAuth: true,
+ show: true,
+ index: 1
+ },
+ component: () => import("@/page/user/loan.vue")
+ },
+ // 我的贷款记录
+ {
+ path: "/loanRecord",
+ name: "loanRecord",
+ meta: {
+ title: i18n.t("dkjl"),
+ requireAuth: true,
+ show: true,
+ index: 2
+ },
+ component: () => import("@/page/user/loanRecord.vue")
+ },
// 新闻列表页面
{
path: "/new-list",
--
Gitblit v1.9.3