From 9ca581cca97e9ba95ff808f6b7a08c24a4758dbf Mon Sep 17 00:00:00 2001
From: DESKTOP-CVS3R96\我恁爹 <11>
Date: Fri, 11 Nov 2022 09:55:52 +0800
Subject: [PATCH] 9.55
---
src/page/user/Warehouse.vue | 290 +++++++++++----
src/page/login/register.vue | 15
src/page/login/login.vue | 17
src/page/home/home.vue | 7
src/components/elalert.vue | 25 +
src/store/index.js | 16
src/page/list/trading-list.vue | 264 +++++---------
src/page/kline/index.vue | 9
src/axios/api.js | 10
src/page/trading/buy.vue | 374 +++++++++++++++++++-
src/App.vue | 3
11 files changed, 712 insertions(+), 318 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 19dd37f..bf19587 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -23,14 +23,17 @@
</transition>
</div>
<foot v-if="$route.meta.show !== true"></foot>
+ <elalert></elalert>
</div>
</template>
<script>
+import elalert from "@/components/elalert.vue";
import foot from "@/components/foot.vue";
export default {
components: {
foot,
+ elalert
},
name: "App",
created() {
diff --git a/src/axios/api.js b/src/axios/api.js
index b9a1fdf..0213054 100644
--- a/src/axios/api.js
+++ b/src/axios/api.js
@@ -159,6 +159,16 @@
return post('/user/buyFutures.do', options)
}
+// 挂单
+export function guadan (options) {
+ return post('/user/addOrder.do', options)
+}
+
+// 挂单列表
+export function getorderList (options) {
+ return post('/user/orderList.do', options)
+}
+
// 下单
export function buy (options) {
return post('/user/buy.do', options)
diff --git a/src/components/elalert.vue b/src/components/elalert.vue
index bd677ab..82a2d5e 100644
--- a/src/components/elalert.vue
+++ b/src/components/elalert.vue
@@ -1,7 +1,10 @@
<!-- -->
<template>
- <el-alert v-show="alertShow" :closable="closable" :title="texts" :type="elType" center>
+ <div v-if="$store.state.elAlertShow">
+ <el-alert :closable="closable" :title="$store.state.elAlertText" :type="$store.state.elAlertType" center style="z-index:99999999999999999;position: fixed;top: 0;bottom: 0;margin: auto;">
</el-alert>
+ </div>
+
</template>
<script>
@@ -31,21 +34,22 @@
},
//监听alertShow变成true时,2秒后自动关闭
watch: {
- alertShow: function (val) {
+ // 监听vuex中的elAlertShow变化
+ '$store.state.elAlertShow': function (val) {
if (val) {
setTimeout(() => {
- this.$emit('closeAlert')
+ this.$store.commit('elAlertShow', {'elAlertShow':false});
}, 2000)
}
}
},
//生命周期 - 创建完成(访问当前this实例)
created() {
-
+
},
//生命周期 - 挂载完成(访问DOM元素)
mounted() {
-
+
},
methods:{
//定时调用父组件方法关闭弹窗
@@ -54,7 +58,7 @@
setTimeout(()=>{
this.$emit('closeAlert')
},2000)
- }
+ },
}
}
@@ -75,4 +79,13 @@
/deep/.el-alert__title{
font-size: 0.3rem!important;
}
+/deep/.el-icon-close::before{
+ display: none;
+}
+.tit {
+ width: 1rem;
+ height: 1rem;
+ position: absolute;
+ top: 50%;
+}
</style>
\ No newline at end of file
diff --git a/src/page/home/home.vue b/src/page/home/home.vue
index 9328d66..56be2e9 100644
--- a/src/page/home/home.vue
+++ b/src/page/home/home.vue
@@ -220,9 +220,6 @@
import AllList from "@/page/list/list-all";
import HomeList from "./components/home-list";
import Echart from "./components/echart.vue";
-import {
- Toast
-} from "mint-ui";
import * as api from "@/axios/api";
import Logo from "@/assets/img/icon_home_logo.png";
import Searchs from "@/assets/home/search.png";
@@ -360,7 +357,7 @@
if (result.status === 0) {
this.bannerList = result.data
} else {
- Toast(result.msg)
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': result.msg});
}
},
goOnline() {
@@ -379,7 +376,7 @@
if (data.status === 0) {
this.onlineService = data.data.onlineService
} else {
- Toast(data.msg)
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
},
async getStock() {
diff --git a/src/page/kline/index.vue b/src/page/kline/index.vue
index afc4900..b6561b0 100644
--- a/src/page/kline/index.vue
+++ b/src/page/kline/index.vue
@@ -233,14 +233,14 @@
</div>
<div class="rights">
<div class="buy_btn">
- <div class="top_buy">
+ <div class="top_buy" @click="goBuy(0)">
<span>{{ '卖出' }}</span>
</div>
<div class="bottom_buy">
<span>{{ singDetails.nowPrice }}</span>
</div>
</div>
- <div class="sell_btn" @click="goBuy()">
+ <div class="sell_btn" @click="goBuy(1)">
<div class="top_sell">
<span>{{ '买入' }}</span>
</div>
@@ -362,16 +362,15 @@
handleSc() {
this.scFlag = !this.scFlag;
},
- goBuy() {
+ goBuy(index) {
this.$router.push({
path: "/TradingBuy",
query: {
- t:1,
+ t:index,
code:this.kLineDetails.code,
m:this.singDetails.nowPrice,
type:this.kLineDetails.if_zhishu,
name:this.kLineDetails.name,
-
}
});
}
diff --git a/src/page/list/trading-list.vue b/src/page/list/trading-list.vue
index d90f0e7..cd04a2f 100644
--- a/src/page/list/trading-list.vue
+++ b/src/page/list/trading-list.vue
@@ -11,29 +11,16 @@
<img src="../../assets/img/searchs.png" alt />
</div>
<div class="search_input">
- <input
- type="text"
- class="searchs"
- placeholder="输入品种名称/代码搜索"
- ref="search"
- id="sousuo"
- onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')"
- v-model="gpcode"
- @input="gpinput"
- />
+ <input type="text" class="searchs" placeholder="输入品种名称/代码搜索" ref="search" id="sousuo"
+ onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')" v-model="gpcode" @input="gpinput" />
</div>
</div>
</div>
</div>
<div class="tab_class">
<div class="scroll_tab">
- <div
- class="tab_items"
- v-for="(item, index) in tabsClassArr"
- :key="index"
- :class="index == 0 ? 'mrt' : ''"
- @click="handleTabsItem(item, index)"
- >
+ <div class="tab_items" v-for="(item, index) in tabsClassArr" :key="index" :class="index == 0 ? 'mrt' : ''"
+ @click="handleTabsItem(item, index)">
<span :class="tabsItemIndex === index ? 'active' : ''">{{ item.name }}</span>
</div>
</div>
@@ -61,16 +48,12 @@
</div>
</div>
<div class="list" :class="isToken == '' ? 'listHeight' : 'listHeights'">
- <van-list
- v-model="loading"
- :finished="finished"
- finished-text="没有更多了"
- @load="onLoad"
- :immediate-check="false"
- >
+ <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"
+ :immediate-check="false">
<div class="van-clearfix">
<div class="list_items">
- <div class="item" v-for="(item, index) in listArr" :key="index" @click="handleGoToKlineDetail(item, index)">
+ <div class="item" v-for="(item, index) in listArr" :key="index"
+ @click="handleGoToKlineDetail(item, index)">
<div class="left_title">
<div class="tp">
<span class="collection" @click.stop="options(item)">
@@ -78,73 +61,57 @@
</span>
<span class="title_color">
{{ tabsItemIndex == 3 ? item.futuresName : tabsItemIndex ==
- 2 ? item.name : tabsItemIndex == 0 ? item.name : item.indexName
+ 2 ? item.name : tabsItemIndex == 0 ? item.name : item.indexName
}}
</span>
</div>
<div class="bt">
<span>
{{ tabsItemIndex == 3 ? item.futuresCode : tabsItemIndex == 2 ? item.code : tabsItemIndex
- ==
- 0 ? item.code : item.indexCode
+ ==
+ 0 ? item.code : item.indexCode
}}
</span>
</div>
</div>
<div class="center_price">
<div class="tp">
- <span
- class="price_color"
- v-if="tabsItemIndex == 0 || tabsItemIndex == 2"
- :class="item.hcrate > 0 ? 'green' : 'red'"
- >
+ <span class="price_color" v-if="tabsItemIndex == 0 || tabsItemIndex == 2"
+ :class="item.hcrate > 0 ? 'green' : 'red'">
{{ item.nowPrice
}}
</span>
<span class="price_color" v-else>
{{ tabsItemIndex == 3 ? Number(item.nowPrice).toFixed(2) :
- item.currentPoint
+ item.currentPoint
}}
</span>
</div>
<div class="bt">
- <span
- v-if="tabsItemIndex == 3 || tabsItemIndex == 1"
- >{{ '手续费:' + item.transFee }}</span>
+ <span v-if="tabsItemIndex == 3 || tabsItemIndex == 1">{{ '手续费:' + item.transFee }}</span>
<span v-else>{{ item.today_min }}</span>
</div>
</div>
<div class="right_bs">
<div class="tp">
- <span
- class="price_color"
- v-if="tabsItemIndex == 0 || tabsItemIndex == 2"
- :class="item.hcrate > 0 ? 'green' : 'red'"
- >{{ item.hcrate }}</span>
- <span
- class="price_color"
- v-if="tabsItemIndex == 1"
- :class="item.floatRate > 0 ? 'green' : 'red'"
- >
+ <span class="price_color" v-if="tabsItemIndex == 0 || tabsItemIndex == 2"
+ :class="item.hcrate > 0 ? 'green' : 'red'">{{ item.hcrate }}</span>
+ <span class="price_color" v-if="tabsItemIndex == 1"
+ :class="item.floatRate > 0 ? 'green' : 'red'">
{{
- item.floatRate + '%'
+ item.floatRate + '%'
}}
</span>
- <span
- class="price_color"
- v-if="tabsItemIndex == 3"
- :class="((item.nowPrice - item.lastClose) / item.lastClose * 100).toFixed(2) > 0 ? 'green' : 'red'"
- >
+ <span class="price_color" v-if="tabsItemIndex == 3"
+ :class="((item.nowPrice - item.lastClose) / item.lastClose * 100).toFixed(2) > 0 ? 'green' : 'red'">
{{
- item.lastClose == "" ? 0.00 : ((Number(item.nowPrice) - Number(item.lastClose)) /
- Number(item.lastClose) * 100).toFixed(2) + '%'
+ item.lastClose == "" ? 0.00 : ((Number(item.nowPrice) - Number(item.lastClose)) /
+ Number(item.lastClose) * 100).toFixed(2) + '%'
}}
</span>
</div>
<div class="bt">
- <div
- v-if="tabsItemIndex != 1 && tabsItemIndex != 3"
- >{{ item.stock_type.toUpperCase() }}</div>
+ <div v-if="tabsItemIndex != 1 && tabsItemIndex != 3">{{ item.stock_type.toUpperCase() }}</div>
<!-- class="codeIcon" -->
</div>
</div>
@@ -163,14 +130,8 @@
<img src="../../assets/img/searchs.png" alt />
</div>
<div class="search_input">
- <input
- type="text"
- class="searchs"
- placeholder="输入品种名称/代码搜索"
- onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')"
- v-model="gpcodes"
- @input="gpinputs"
- />
+ <input type="text" class="searchs" placeholder="输入品种名称/代码搜索"
+ onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')" v-model="gpcodes" @input="gpinputs" />
</div>
</div>
</div>
@@ -188,13 +149,8 @@
</div>
<div class="list zxlist">
- <van-list
- v-model="loadings"
- :finished="finisheds"
- finished-text="没有更多了"
- @load="onLoads"
- :immediate-check="false"
- >
+ <van-list v-model="loadings" :finished="finisheds" finished-text="没有更多了" @load="onLoads"
+ :immediate-check="false">
<div class="van-clearfix">
<div class="list_items">
<div class="item" v-for="(item, index) in listArrs" :key="item.indexCode">
@@ -203,15 +159,15 @@
<span class="collection" @click="optionszx(item)">
<span class="shu" :class="item.isOption == '1' ? 'shublue' : ''"></span>
</span>
- <span class="title_color">{{ item.stockName}}</span>
+ <span class="title_color">{{ item.stockName }}</span>
</div>
<div class="bt">
- <span>{{ item.stockCode}}</span>
+ <span>{{ item.stockCode }}</span>
</div>
</div>
<div class="center_price">
<div class="tp">
- <span class="price_color">{{item.nowPrice}}</span>
+ <span class="price_color">{{ item.nowPrice }}</span>
</div>
<div class="bt">
<span>{{ item.addTime }}</span>
@@ -219,10 +175,7 @@
</div>
<div class="right_bs">
<div class="tp">
- <span
- class="price_color"
- :class="item.hcrate > 0 ? 'green' : 'red'"
- >{{ item.hcrate }}</span>
+ <span class="price_color" :class="item.hcrate > 0 ? 'green' : 'red'">{{ item.hcrate }}</span>
</div>
<div class="bt">
<!-- <div>{{ item.stock_type.toUpperCase() }}</div> -->
@@ -241,12 +194,7 @@
<div class="top_title" ref="topTitle">
<div>
<div class="tabs_title">
- <div
- class="tb"
- v-for="(item, index) in tabsArr"
- :key="index"
- @click="handleTabsClick(item, index)"
- >
+ <div class="tb" v-for="(item, index) in tabsArr" :key="index" @click="handleTabsClick(item, index)">
<span :class="index === tabsIndex ? 'active' : ''">{{ item }}</span>
</div>
</div>
@@ -257,38 +205,28 @@
<span>{{ '余额' }}</span>
</div>
<div class="right">
- <span v-if="$store.state.userInfo.userAmt==undefined">¥0.00</span>
- <span v-if="$store.state.userInfo&&tabsItemIndex == 1" style="white-space: nowarp;">
+ <span v-if="$store.state.userInfo.userAmt == undefined">¥0.00</span>
+ <span v-if="$store.state.userInfo && tabsItemIndex == 1" style="white-space: nowarp;">
{{ '¥' + $store.state.userInfo.userIndexAmt
}}
</span>
- <span
- v-if="$store.state.userInfo.userAmt!=undefined&&tabsItemIndex == 0"
- style="white-space: nowarp;"
- >
+ <span v-if="$store.state.userInfo.userAmt != undefined && tabsItemIndex == 0" style="white-space: nowarp;">
{{ '¥ ' + $store.state.userInfo.userAmt
}}
</span>
- <span
- v-if="$store.state.userInfo.userAmt!=undefined&&tabsItemIndex == 2"
- style="white-space: nowarp;"
- >
+ <span v-if="$store.state.userInfo.userAmt != undefined && tabsItemIndex == 2" style="white-space: nowarp;">
{{ '¥ ' + $store.state.userInfo.userAmt
}}
</span>
- <span v-if="$store.state.userInfo&&tabsItemIndex == 3" style="white-space: nowarp;">
+ <span v-if="$store.state.userInfo && tabsItemIndex == 3" style="white-space: nowarp;">
{{
- '¥' + $store.state.userInfo.userFuturesAmt
+ '¥' + $store.state.userInfo.userFuturesAmt
}}
</span>
</div>
<div class="sanjiao">
- <img
- :class="dialogFlag ? 'xuanz' : ''"
- style="transition: all 0.5s;"
- src="../../assets/img/xiala.png"
- alt
- />
+ <img :class="dialogFlag ? 'xuanz' : ''" style="transition: all 0.5s;" src="../../assets/img/xiala.png"
+ alt />
</div>
</div>
<div class="bottom_balance">
@@ -308,26 +246,20 @@
</div>
<div class="bottom_price">
<div>
- <p
- v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
- class="account"
- >
+ <p v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
+ class="account">
¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
- $store.state.userInfo.userIndexAmt).toFixed(2)
+ $store.state.userInfo.userIndexAmt).toFixed(2)
}}
</p>
- <p
- v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
- class="account"
- >
+ <p v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
+ class="account">
¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
- $store.state.userInfo.userFuturesAmt).toFixed(2)
+ $store.state.userInfo.userFuturesAmt).toFixed(2)
}}
</p>
- <p
- v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
- class="account"
- >¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
+ <p v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
+ class="account">¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
<!-- <p
v-else-if="this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
class="account"
@@ -350,26 +282,26 @@
<div>
<span v-show="tabsItemIndex == 1">
{{ $store.state.hide ? '****' :
- Number(($store.state.userInfo.enableIndexAmt +
- $store.state.userInfo.allIndexFreezAmt) * indexSettingInfo.forceSellPercent).toFixed(2)
+ Number(($store.state.userInfo.enableIndexAmt +
+ $store.state.userInfo.allIndexFreezAmt) * indexSettingInfo.forceSellPercent).toFixed(2)
}}
</span>
<span v-show="tabsItemIndex == 0">
{{ $store.state.hide ? '****' : Number(($store.state.userInfo.enableAmt
- +
- $store.state.userInfo.allFreezAmt) * settingInfo.forceStopPercent).toFixed(2)
+ +
+ $store.state.userInfo.allFreezAmt) * settingInfo.forceStopPercent).toFixed(2)
}}
</span>
<span v-show="tabsItemIndex == 2">
{{ $store.state.hide ? '****' : Number(($store.state.userInfo.enableAmt
- +
- $store.state.userInfo.allFreezAmt) * settingInfo.forceStopPercent).toFixed(2)
+ +
+ $store.state.userInfo.allFreezAmt) * settingInfo.forceStopPercent).toFixed(2)
}}
</span>
<span v-show="tabsItemIndex == 3">
{{ $store.state.hide ? '****' :
- Number(($store.state.userInfo.enableFuturesAmt +
- $store.state.userInfo.allFuturesFreezAmt) * futuresSettingInfo.forceSellPercent).toFixed(2)
+ Number(($store.state.userInfo.enableFuturesAmt +
+ $store.state.userInfo.allFuturesFreezAmt) * futuresSettingInfo.forceSellPercent).toFixed(2)
}}
</span>
</div>
@@ -380,8 +312,8 @@
<div>
<span>
{{ tabsItemIndex == 1 ? '指数' : tabsItemIndex == 0 ? '沪深' : tabsItemIndex == 2 ? '科创' :
- tabsItemIndex ==
- 3 ? '期货' : ''
+ tabsItemIndex ==
+ 3 ? '期货' : ''
}}
</span>
<span>{{ '资产' }}</span>
@@ -422,9 +354,7 @@
<span v-show="tabsItemIndex == 1">{{ '¥ ' + $store.state.userInfo.allIndexFreezAmt }}</span>
<span v-show="tabsItemIndex == 0">{{ '¥ ' + $store.state.userInfo.allFreezAmt }}</span>
<span v-show="tabsItemIndex == 2">{{ '¥ ' + $store.state.userInfo.allFreezAmt }}</span>
- <span
- v-show="tabsItemIndex == 3"
- >{{ '¥ ' + $store.state.userInfo.allFuturesFreezAmt }}</span>
+ <span v-show="tabsItemIndex == 3">{{ '¥ ' + $store.state.userInfo.allFuturesFreezAmt }}</span>
</div>
</div>
</div>
@@ -438,20 +368,16 @@
<div>
<span
:class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''"
- v-show="tabsItemIndex == 1"
- >{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose }}</span>
+ v-show="tabsItemIndex == 1">{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose }}</span>
<span
:class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''"
- v-show="tabsItemIndex == 0"
- >{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
+ v-show="tabsItemIndex == 0">{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
<span
:class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''"
- v-show="tabsItemIndex == 2"
- >{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
+ v-show="tabsItemIndex == 2">{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
<span
:class="$store.state.userInfo.allFuturesProfitAndLose > 0 ? 'red' : $store.state.userInfo.allFuturesProfitAndLose < 0 ? ' green' : ''"
- v-show="tabsItemIndex == 3"
- >{{ '¥ '+Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2)}}</span>
+ v-show="tabsItemIndex == 3">{{ '¥' +Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2)}}</span>
</div>
</div>
</div>
@@ -461,13 +387,10 @@
</template>
<script>
-import { Toast } from 'mint-ui'
import * as api from "@/axios/api";
-import elalert from "@/components/elalert.vue";
export default {
name: "trading",
components: {
- elalert
},
data() {
return {
@@ -491,6 +414,8 @@
gpcode: "",
gpcodes: "",
texts: "",
+ elAlertShow: false,
+ elAlertText: "",
tabsClassArr: [
{
name: "沪深京",
@@ -530,6 +455,7 @@
},
mounted() {
+
this.loading = true;
this.getStock();
this.isToken = window.localStorage.getItem("USERTOKEN");
@@ -619,7 +545,7 @@
// this.getProductSetting()
this.$store.state.userInfo = data.data;
} else {
- Toast(data.msg);
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
this.$store.state.user = this.user;
},
@@ -630,7 +556,7 @@
// 成功
this.indexSettingInfo = data.data;
} else {
- Toast(data.msg);
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
},
async getFuturesSetting() {
@@ -640,7 +566,7 @@
// 成功
this.futuresSettingInfo = data.data;
} else {
- Toast(data.msg);
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
},
async getSettingInfo() {
@@ -649,7 +575,7 @@
// 成功
this.settingInfo = data.data;
} else {
- Toast(data.msg);
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
},
async getListMarket() {
@@ -685,14 +611,14 @@
this.finished = true;
}
if (this.tabsItemIndex == 0) {
- if(this.gpcode){
+ if (this.gpcode) {
this.listArr = data.data.list;
- }else{
+ } else {
data.data.list.forEach(element => {
- this.listArr.push(element);
- });
+ this.listArr.push(element);
+ });
}
-
+
}
} else {
this.texts = data.msg;
@@ -714,12 +640,12 @@
this.finished = true;
}
if (this.tabsItemIndex == 2) {
- if(this.gpcode){
+ if (this.gpcode) {
this.listArr = data.data.list;
- }else{
+ } else {
data.data.list.forEach(element => {
- this.listArr.push(element);
- });
+ this.listArr.push(element);
+ });
}
}
} else {
@@ -728,7 +654,7 @@
}
},
handleGoToKlineDetail(item) {
- var codes ="";
+ var codes = "";
var names = "";
var stock_type = "";
var soks = "";
@@ -741,21 +667,21 @@
soks = this.filterSH(item.stock_type);
if_zhishu = '0';
break;
- case 1:
+ case 1:
codes = item.indexGid;
names = item.indexName;
stock_type = 'sh';
if_zhishu = item.indexCode;
soks = 0;
break;
- case 2:
+ case 2:
codes = item.code;
names = item.name;
stock_type = item.stock_type;
soks = this.filterSH(item.stock_type);
if_zhishu = '0';
break;
- case 3:
+ case 3:
codes = item.futuresGid;
names = item.futuresName;
soks = 0;
@@ -765,7 +691,7 @@
default:
break;
}
-
+
this.$router.push({
path: "/kline",
query: {
@@ -773,7 +699,7 @@
stockplate: item.stock_plate,
code: codes,
type: stock_type,
- sok: soks,
+ sok: soks,
if_zhishu: if_zhishu,
}
});
@@ -1046,7 +972,7 @@
height: calc(100% - 1.3rem);
background: #fff;
- > .content {
+ >.content {
width: 100%;
height: 100%;
}
@@ -1065,6 +991,7 @@
justify-content: center;
padding: 0 0.3rem;
position: relative;
+
.search_content {
width: 100%;
height: 90%;
@@ -1127,7 +1054,7 @@
overflow: hidden;
border-radius: 0 0 0.2rem 0.2rem;
- > div {
+ >div {
width: 100%;
height: 1.2821rem;
display: flex;
@@ -1171,7 +1098,7 @@
display: -webkit-box;
white-space: nowrap;
- > div {
+ >div {
display: inline-block;
width: 15%;
height: 100%;
@@ -1261,14 +1188,14 @@
margin-top: -0.5rem;
width: 100%;
- > div {
+ >div {
width: 100%;
height: 1.0256rem;
display: flex;
margin: 0.5rem 0;
- > div {
- > div {
+ >div {
+ >div {
display: flex;
align-items: center;
}
@@ -1310,7 +1237,7 @@
color: #a1a2a4;
display: flex;
- > div {
+ >div {
display: flex;
align-items: center;
}
@@ -1418,6 +1345,7 @@
margin-left: 0.1rem;
margin-right: 0.1rem;
min-width: 1.9rem;
+
span {
font-weight: 600;
text-align: right;
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index e2e12da..d720ffa 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -53,7 +53,7 @@
v-show="alertShow"
:closable="closable"
:title="texts"
- type="warning" center></el-alert>
+ :type="eltype" center></el-alert>
</div>
</template>
<script>
@@ -76,6 +76,7 @@
medium: "medium",
alertShow:false,
closable:false,
+ eltype:'warning',
texts:"",
dengl:false,
loginBtn:false,
@@ -120,11 +121,19 @@
if (data.status === 0) {
this.$store.state.userInfo.phone = this.userName
this.$store.state.userInfo.token = data.data.token
-
+ this.texts=data.msg
+ this.eltype='success'
+ this.alertShow=true
+ setTimeout(()=>{
+ this.alertShow=false
+ this.eltype='warning'
+ this.$router.push('/home')
+ },1000)
+ this.loginBtn = false;
window.localStorage.clear()
window.localStorage.setItem("USERTOKEN", data.data.token);
- this.$router.push('/home')
- this.loginBtn = false;
+
+
} else {
this.texts=data.msg
this.alertShow=true
diff --git a/src/page/login/register.vue b/src/page/login/register.vue
index 00a1170..3576d01 100644
--- a/src/page/login/register.vue
+++ b/src/page/login/register.vue
@@ -30,17 +30,17 @@
<div class="user_name">
<input type="text" placeholder="机构代码" v-model="userName" />
</div> -->
- <el-input :placeholder="placeholder" :size="medium" v-model="phone" clearable @input="handleInput()">
+ <el-input :placeholder="placeholder" size="medium" v-model="phone" clearable @input="handleInput()">
</el-input>
<!-- <el-input style="margin-top: 0.46rem;" :placeholder="verification" :size="medium" v-model="code" clearable>
</el-input> -->
- <el-input style="margin-top: 0.46rem;" show-password placeholder="密码为6~12位数字、字母或符号" :size="medium"
+ <el-input style="margin-top: 0.46rem;" show-password placeholder="密码为6~12位数字、字母或符号" size="medium"
v-model="userPassword" @input="handleInput()">
</el-input>
- <el-input style="margin-top: 0.46rem;" show-password placeholder="请再次确认密码" :size="medium" v-model="rePassword"
+ <el-input style="margin-top: 0.46rem;" show-password placeholder="请再次确认密码" size="medium" v-model="rePassword"
@input="handleInput()">
</el-input>
- <el-input style="margin-top: 0.46rem;" placeholder="邀请码" :size="medium" v-model="userName" clearable
+ <el-input style="margin-top: 0.46rem;" placeholder="邀请码" size="medium" v-model="userName" clearable
@input="handleInput()">
</el-input>
</div>
@@ -187,7 +187,6 @@
setTimeout(() => {
this.alertShow = false
this.elType = "warning"
-
}, 2000)
}
} else {
@@ -279,16 +278,16 @@
}
let data = await api.register(opts)
if (data.status === 0) {
-
this.texts = "注册成功,请登录"
this.elType = "success"
this.alertShow = true
setTimeout(() => {
+ this.$router.push('/login')
this.alertShow = false
this.elType = "warning"
- }, 2000)
+ }, 1000)
this.loginBtn = false;
- this.$router.push('/login')
+
} else {
this.texts = data.msg
this.alertShow = true
diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index d7453a7..766e3de 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -27,13 +27,18 @@
</div>
<div class="rights">
<div class="ese">
- <div class="mr"
- v-for="(item, index) in tradingArr"
- :key="index"
- @click="handleTradingClick(index)"
- :class="tabsCurrentIndex === index ? 'active' : ''"
+ <div class="mc"
+ @click="handleTradingClick(0)"
+ :class="tabsCurrentIndex === 0 ? 'actives' : ''"
>
- <span>{{ item }}</span>
+ <span>卖出</span>
+ </div>
+
+ <div class="mr"
+ @click="handleTradingClick(1)"
+ :class="tabsCurrentIndex === 1 ? 'active' : ''"
+ >
+ <span>买入</span>
</div>
</div>
</div>
@@ -49,28 +54,55 @@
:key="index"
@click="handleTabsClick(item, index)"
:class="priceTabsCurrentIndex === index ? 'active' : ''"
+
>
<span>{{ item }}</span>
</div>
</div>
<div class="tabs_content">
+ <div class="num" v-show="priceTabsCurrentIndex==1">
+ <span>{{ '当价格满足条件时买入' }}</span>
+ </div>
+ <div class="tr_es flexJy" v-show="priceTabsCurrentIndex==1">
+ <div class="top_input">
+ <input type="text" v-model="nums" onkeyup="value=value.replace(/[^\d]/g,'')" >
+ </div>
+ <div class="right_sw flexJy" style="width:auto;">
+ <div class="addorj" @click="gdJian">
+ <img src="@/assets/img/ic_number_jian.png"/>
+ </div>
+ <div class="addorj" ></div>
+ <div class="addorj" @click="typeof nums =='string'?nums = Number((nums.match(/\d+/g))[0])+1:nums++">
+ <img src="@/assets/img/ic_number_add.png"/>
+ </div>
+ </div>
+ </div>
<div class="num">
<span>{{ '交易数量(手)' }}</span>
</div>
- <div class="tr_es">
+ <div class="tr_es flexJy">
<div class="top_input">
- <input type="text" v-model="num">
+ <input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" v-model="num">
</div>
+ <div class="right_sw flexJy" style="width:auto;">
+ <div class="addorj" @click="jyslJian">
+ <img src="@/assets/img/ic_number_jian.png"/>
+ </div>
+ <div class="addorj" ></div>
+ <div class="addorj" @click="typeof num =='string'?num = Number((num.match(/\d+/g))[0])+1:num++">
+ <img src="@/assets/img/ic_number_add.png"/>
+ </div>
+ </div>
</div>
<div class="tr_rs gg" @click="showGg=true">
<div class="top_bzz">
<span>{{ '杠杆' }}</span>
- <span>{{ '200X' }}</span>
+ <span>{{ selectCycle+'X' }}</span>
</div>
- <div class="bottom_bzz">
+ <!-- <div class="bottom_bzz">
<span>{{ }}</span>
<span>{{ }}</span>
- </div>
+ </div> -->
</div>
<div class="tr_rs">
<div class="top_bzz">
@@ -78,6 +110,7 @@
<span>{{ '可用余额(¥)' }}</span>
</div>
<div class="bottom_bzz">
+ <!-- <span>{{ (nowPrice/ selectCycle).toFixed(2) }}</span> -->
<span>{{ (nowPrice/ selectCycle).toFixed(2) }}</span>
<span v-if="$store.state.userInfo.userAmt==undefined">¥0.00</span>
<span
@@ -109,14 +142,14 @@
</div>
<div class="zy" v-show="checkedZy">
<div class="left_zy">
- <input v-model="profitTarget" />
+ <input v-model="profitTarget" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" @input="zyInt"/>
</div>
<div class="right_sw" style="width:auto;">
- <div class="addorj" @click="profitTarget--">
+ <div class="addorj" @click="zYjian">
<img src="@/assets/img/ic_number_jian.png"/>
</div>
<div class="addorj" ></div>
- <div class="addorj" @click="profitTarget++">
+ <div class="addorj" @click="profitTarget=(Number(profitTarget)+1).toFixed(2)">
<img src="@/assets/img/ic_number_add.png"/>
</div>
</div>
@@ -131,45 +164,49 @@
</div>
<div class="zy" v-show="checkedZs">
<div class="left_zy">
- <input v-model="zhisun" />
+ <input v-model="zhisun" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" @input="zsInt"/>
</div>
<div class="right_sw" style="width:auto;">
<div class="addorj" @click="zhisun--">
<img src="@/assets/img/ic_number_jian.png"/>
</div>
<div class="addorj" ></div>
- <div class="addorj" @click="zhisun++">
+ <div class="addorj" @click="zSjia">
<img src="@/assets/img/ic_number_add.png"/>
</div>
</div>
</div>
- <div class="zy">
+ <!-- <div class="zy">
<div class="left_zy">
<span>追踪止损</span>
</div>
<div class="right_sw">
<van-switch v-model="profitArr[2].checked" />
</div>
- </div>
+ </div> -->
</div>
- <div class="btn_buy">
- <div>
- <span>{{ '买入' }}</span>
+ <div class="btn_buy" @click="gdOrSetBuy()" >
+ <div :class="tabsCurrentIndex == 0 ? 'maichu':''">
+ <span>{{ tabsCurrentIndex==0?'卖出':'买入' }}</span>
</div>
</div>
</div>
<van-action-sheet
v-model="showGg"
- :actions="actions"
+ :actions="siteLeverList"
cancel-text="取消"
description="选择杠杆"
close-on-click-action
+ @select="onSelect"
/>
</div>
</template>
<script>
import * as api from "@/axios/api";
+import {
+ Toast
+} from "mint-ui";
export default {
name: 'trBuy',
created() {
@@ -179,6 +216,9 @@
}
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.code){
this.code= this.$route.query.code
@@ -196,7 +236,8 @@
tabsCurrentIndex: 0,
priceTabs: ['市单价', '挂单'],
priceTabsCurrentIndex: 0,
- num: 0.01,
+ num: 1,
+ nums: 1,
profit: false,
nowPrice: 0,
type: 0,
@@ -207,6 +248,7 @@
siteLeverList:[],
checkedZy:false,
checkedZs:false,
+ buying:false,
zhisun:0,
showGg: false,
profitTarget: 0,
@@ -232,8 +274,9 @@
}
},
mounted() {
- this.getSettingInfo();
this.getUserInfo();
+ this.getSettingInfo();
+
},
methods: {
handleBack() {
@@ -245,6 +288,201 @@
handleTabsClick(item, index) {
this.priceTabsCurrentIndex = index;
},
+ jyslJian(){
+ if(typeof this.num =='string'){
+ this.num = 1
+ }else{
+ if(this.num>1){
+ if(typeof this.num =='string'){
+ this.num = Number((this.num.match(/\d+/g))[0])-1
+ }else{
+ this.num--
+ }
+ }else{
+ this.num=1
+ }
+ }
+ },
+ gdJian(){
+ if(typeof this.nums =='string'){
+ this.nums = this.nowPrice
+ }else{
+ if(this.nums>1){
+ if(typeof this.nums =='string'){
+ this.nums = Number((this.nums.match(/\d+/g))[0])-1
+ }else{
+ this.nums--
+ }
+ }else{
+ this.nums=1
+ }
+ }
+ },
+ zYjian(){
+ if((Number(this.profitTarget)-1).toFixed(2)<this.nowPrice){
+ this.profitTarget = this.nowPrice
+ }else{
+ this.profitTarget=(Number(this.profitTarget)-1).toFixed(2)
+ }
+
+ },
+ zSjia(){
+ 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
+ }
+ }
+
+ },
+ 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.gg
+
+ },
+ gdOrSetBuy(){
+ if(this.priceTabsCurrentIndex==0){
+ this.setBuy()
+ }else{
+ this.gdBuy()
+ }
+ },
+ //挂单
+ async gdBuy(){
+ if(this.buying){
+ return;
+ }
+ this.buying = true
+ console.log(this.tabsCurrentIndex,"啊是对啊是给丢啊施工队啊收到过")
+ let opts={
+ stockId:this.code,
+ buyNum:this.num * 100,
+ lever: this.selectCycle ? this.selectCycle : 0,
+ targetPrice:this.nums,
+ }
+ 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('/orderlist?index=2')
+ } else {
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
+ }
+ },
+ //买卖
+ setBuy(){
+ if (!this.$store.state.userInfo.idCard) {
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': '您还未实名认证,请先实名认证了再下单'});
+ this.$router.push('/authentication')
+ return
+ }
+ // if (!this.agree) {
+ // Toast('需同意合作协议才能交易!')
+ // } else if (isNull(this.selectNumber) && isNull(this.autoNumber)) {
+ // Toast('请选择购买手数')
+ // } else if (isNull(this.selectType)) {
+ // Toast('请选择买卖方向')
+ // } else if(isNull(this.subaccountNumber)) {
+ // Toast('请选择子账户')
+ // } else {}
+ 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 * 100, // 单位为手
+ //buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
+ lever: this.selectCycle ? this.selectCycle : 0,
+ }
+ 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.code
+ 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()
+ this.$router.push('/orderlist?index=2')
+ } else {
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
+ }
+ },
+ //指数买入
+ async zsBuy(opts){
+ opts.indexId= this.type
+ 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('/orderlist?index=2')
+ } else {
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
+ }
+ },
async getUserInfo() {
// 获取用户信息
// let showcookie = this.getCookie('USER_TOKEN');
@@ -253,7 +491,7 @@
// this.getProductSetting()
this.$store.state.userInfo = data.data;
} else {
- Toast(data.msg);
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
this.$store.state.user = this.user;
},
@@ -264,8 +502,12 @@
// 成功
this.settingInfo = data.data
// 杠杆倍数
+ //data.data.siteLever根据/分割成数组
+ //this.siteLeverList = data.data.siteLever.split('/')
+
+
this.selectCycle = data.data.siteLever
- if(this.$store.state.userInfo !== undefined && this.$store.state.userInfo !== null && this.$store.state.userInfo.phone !== '' && this.$store.state.userInfo.siteLever !== null){
+ if(this.$store.state.userInfo !== undefined && this.$store.state.userInfo !== null && this.$store.state.userInfo.phone !== '' && this.$store.state.userInfo.siteLever != null){
this.selectCycle = this.$store.state.userInfo.siteLever.split('/')[0]
this.siteLeverList = []
for (let i = 0; i < this.$store.state.userInfo.siteLever.split('/').length; i++) {
@@ -277,13 +519,17 @@
this.selectCycle = data.data.siteLever.split('/')[0]
this.siteLeverList = []
for (let i = 0; i < data.data.siteLever.split('/').length; i++) {
+
let val = data.data.siteLever.split('/')[i]
- let item = { label: val + '倍', value: val }
+ var ccet = (Number(this.nowPrice)/ Number(val)).toFixed(2)
+ //let item = { label: val + '倍', value: val ,bzj:ccet}
+ let item = { name: val + 'X', subname: '需付保证金:' + ccet,gg:val,bzj:ccet}
this.siteLeverList.push(item)
}
}
+
} else {
- Toast(data.msg)
+ this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
}
},
}
@@ -384,7 +630,7 @@
width: 65%;
height: 80%;
display: flex;
- justify-content: space-between;
+ justify-content: center;
> div {
width: 45%;
height: 70%;
@@ -402,6 +648,13 @@
font-weight: 600;
}
}
+ .actives{
+ background: #fff;
+ color: rgb(212,71,78);
+ span {
+ font-weight: 600;
+ }
+ }
}
}
}
@@ -409,7 +662,7 @@
}
.price_tabs {
width: 100%;
- height: 7rem;
+ height: auto;
padding: .2rem .8rem;
background: #fff;
margin-top: .1rem;
@@ -443,14 +696,17 @@
.num {
width: 100%;
height: .5rem;
+ line-height: 0.5rem;
+ position: relative;
+ top: 0.2rem;
}
.tr_es {
width: 100%;
height: 1.3rem;
- margin-top: .3rem;
+ margin-top: .15rem;
border-bottom: 0.05rem solid rgb(236, 236, 236);
.top_input {
- width: 100%;
+ width: 70%;
height: 70%;
font-size: .6615rem;
input {
@@ -484,6 +740,10 @@
}
}
.gg {
+ margin-top: 0!important;
+ height: 1.8rem;
+ display: flex;
+ align-items: center;
font-size: .3803rem;
border-bottom: 0.05rem solid rgb(236, 236, 236);
> div {
@@ -527,6 +787,7 @@
padding: .2rem .8rem;
display: flex;
align-items: flex-end;
+ padding-top: 0.8rem;
> div {
width: 100%;
height: 1.2821rem;
@@ -571,4 +832,53 @@
width: 100%;
height: 100%;
}
+.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: -.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);
+}
+}
+.mc{
+ position: relative;
+ &::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);
+}
+}
</style>
\ No newline at end of file
diff --git a/src/page/user/Warehouse.vue b/src/page/user/Warehouse.vue
index fc3e8ed..504f0ee 100644
--- a/src/page/user/Warehouse.vue
+++ b/src/page/user/Warehouse.vue
@@ -106,23 +106,33 @@
</div>
<div class="prices">
<div class="left_titles">
- <span class="numDemo" v-show="titleIndex == 1">{{ '¥ ' + $store.state.userInfo.allIndexFreezAmt? $store.state.userInfo.allIndexFreezAmt:'0.00'
+ <span class="numDemo" v-show="titleIndex == 1">{{ '¥ ' + $store.state.userInfo.allIndexFreezAmt ?
+ $store.state.userInfo.allIndexFreezAmt : '0.00'
}}</span>
- <span class="numDemo" v-show="titleIndex == 0">{{ '¥ ' + $store.state.userInfo.allFreezAmt?$store.state.userInfo.allFreezAmt :'0.00'}}</span>
- <span class="numDemo" v-show="titleIndex == 2">{{ '¥ ' + $store.state.userInfo.allFuturesFreezAmt?$store.state.userInfo.allFuturesFreezAmt:'0.00'
+ <span class="numDemo" v-show="titleIndex == 0">{{ '¥ ' +
+ $store.state.userInfo.allFreezAmt ? $store.state.userInfo.allFreezAmt : '0.00'
+ }}</span>
+ <span class="numDemo" v-show="titleIndex == 2">{{ '¥ ' +
+ $store.state.userInfo.allFuturesFreezAmt ? $store.state.userInfo.allFuturesFreezAmt : '0.00'
}}</span>
</div>
<div class="right_titles">
<span class="numDemo"
:class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''"
- v-show="titleIndex == 1">{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose?$store.state.userInfo.allIndexProfitAndLose:'0.00' }}</span>
+ v-show="titleIndex == 1">{{ '¥ ' +
+ $store.state.userInfo.allIndexProfitAndLose ? $store.state.userInfo.allIndexProfitAndLose : '0.00'
+ }}</span>
<span class="numDemo"
:class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''"
- v-show="titleIndex == 0">{{ '¥ ' + $store.state.userInfo.allProfitAndLose?$store.state.userInfo.allProfitAndLose:'0.00' }}</span>
+ v-show="titleIndex == 0">{{ '¥ ' +
+ $store.state.userInfo.allProfitAndLose ? $store.state.userInfo.allProfitAndLose : '0.00'
+ }}</span>
<span class="numDemo"
:class="$store.state.userInfo.allFuturesProfitAndLose > 0 ? 'red' : $store.state.userInfo.allFuturesProfitAndLose < 0 ? ' green' : ''"
- v-show="titleIndex == 2">{{ '¥'+$store.state.userInfo.allFuturesProfitAndLose?Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2):'0.00'}}</span>
+ v-show="titleIndex == 2">{{
+ '¥' + $store.state.userInfo.allFuturesProfitAndLose ? Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2) : '0.00'
+ }}</span>
</div>
</div>
@@ -133,51 +143,53 @@
<div class="tabs_top_title">
<div class="title_items" v-for="(item, index) in tabsArr" :key="index"
@click="handleTabsClick(item, index)" :class="index == 0 ? 'kuan' : 'kuan'">
- <span :class="tabsCurrentIndex === index ? 'active' : ''">{{ item }}{{ index == 0 ? '(' + total + ')' : '(' + totals + ')'}}</span>
+ <span :class="tabsCurrentIndex === index ? 'active' : ''">{{ item }}{{ index == 0 ? '(' + total + ')' : index == 1 ? '(' + totalss + ')' :
+ '(' + totals + ')'
+ }}</span>
</div>
</div>
<!-- 持仓 currentIndex: 0 -->
<div class="over">
-
- <van-list v-model="loading" :finished="finished" finished-text="没有更多了" v-show="tabsCurrentIndex === 0&&total != 0" @load="onLoad" :immediate-check="immediate">
- <div class="tabs_o" >
- <div class="tabs_o_items" v-for="(item, index) in tabsPositionNumArr" :key="item.buyOrderId">
- <div class="tabs_o_title">
- <span class="title">{{ item.stockName }}</span>
- <span class="buy_to_sell" :class="item.orderDirection=='买跌'?'maichu':'mairu'">{{ item.orderDirection=="买跌"?'卖出':'买入' }}</span>
- <span class="multiple">{{ item.allProfitAndLose }}</span>
- <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
+ <van-list v-model="loading" :finished="finished" finished-text="没有更多了"
+ v-show="tabsCurrentIndex === 0 && total != 0" @load="onLoad" :immediate-check="immediate">
+ <div class="tabs_o">
+ <div class="tabs_o_items" v-for="(item, index) in tabsPositionNumArr" :key="item.buyOrderId">
+ <div class="tabs_o_title">
+ <span class="title">{{ item.stockName }}</span>
+ <span class="buy_to_sell" :class="item.orderDirection == '买跌' ? 'maichu' : 'mairu'">{{
+ item.orderDirection == "买跌" ? '卖出' : '买入'
+ }}</span>
+ <span class="multiple">{{ item.allProfitAndLose }}</span>
+ <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
+ </div>
+ <div class="center_price">
+ <div class="profit">
+ <span>{{ item.profitAndLose }}</span>
</div>
- <div class="center_price">
- <div class="profit">
- <span>{{ item.profitAndLose }}</span>
- </div>
- <div class="start_price jiantou">
- <span>{{ item.buyOrderPrice }}</span>
- </div>
- <div class="new_price">
- <span>{{ item.now_price }}</span>
- </div>
+ <div class="start_price jiantou">
+ <span>{{ item.buyOrderPrice }}</span>
</div>
- <div class="bottom_price_title">
- <div class="profit_title">
- <span>{{ '浮动净盈亏' }}</span>
- </div>
- <div class="start_price">
- <span>{{ '开仓价格' }}</span>
- </div>
- <div class="new_price">
- <span>{{ '当前价格' }}</span>
- </div>
- </div>
- <div class="right_btn">
- <span>{{ '平仓' }}</span>
+ <div class="new_price">
+ <span>{{ item.now_price }}</span>
</div>
</div>
-
-
- </div>
- </van-list>
+ <div class="bottom_price_title">
+ <div class="profit_title">
+ <span>{{ '浮动净盈亏' }}</span>
+ </div>
+ <div class="start_price">
+ <span>{{ '开仓价格' }}</span>
+ </div>
+ <div class="new_price">
+ <span>{{ '当前价格' }}</span>
+ </div>
+ </div>
+ <div class="right_btn">
+ <span>{{ '平仓' }}</span>
+ </div>
+ </div>
+ </div>
+ </van-list>
<div class="waiting" v-if="total == 0 && tabsCurrentIndex === 0">
<div class="waiting_box">
<div class="img_cont">
@@ -189,7 +201,11 @@
</div>
</div>
</div>
- <div class="waiting" v-if="totals == 0 && tabsCurrentIndex === 1">
+
+
+
+
+ <div class="waiting" v-if="totalss == 0 && tabsCurrentIndex === 1">
<div class="waiting_box">
<div class="img_cont">
<img src="../../assets/img/zhaobudao.png" alt />
@@ -200,29 +216,83 @@
</div>
</div>
</div>
-
- <van-list v-model="loadings" :finished="finisheds" finished-text="没有更多了" @load="onLoads" :immediate-check="immediate" v-show="tabsCurrentIndex === 1&&totals != 0">
- <div class="tabs_o">
- <div class="tabs_o_items oes" v-for="(item, index) in tabsPcArr" :key="index">
- <div class="tabs_o_title">
- <span class="title">{{ item.stockName }}</span>
- <span class="buy_to_sell">{{ item.orderDirection }}</span>
- <span class="multiple">{{ item.allProfitAndLose }}</span>
- <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
- </div>
- <div class="bottom_price_title">
- <div class="profit_res">
- <span>平仓时间: {{ item.buyOrderTime | gettime }}</span>
+ <van-list v-model="loadingss" :finished="finishedss" finished-text="没有更多了"
+ v-show="tabsCurrentIndex === 1 && totalss != 0" @load="onLoad" :immediate-check="immediate">
+ <div class="tabs_o">
+ <div class="tabs_o_items" v-for="(item, index) in tabsOrderList" :key="item.id">
+ <div class="tabs_o_title">
+ <span class="title">{{ item.stockName }}</span>
+ <span class="buy_to_sell" :class="item.buyType == 1 ? 'maichu' : 'mairu'">{{
+ item.buyType == 1 ? '卖出' : '买入'
+ }}</span>
+ <span class="multiple">{{ item.lever }}X</span>
+ <span class="nums">{{ item.buyNum / 100 + '手' }}</span>
+ </div>
+ <div class="center_price">
+
+ <div class="start_price jiantou">
+ <span>{{ item.targetPrice }}</span>
+ </div>
+ <div class="new_price">
+ <span>{{ item.nowPrice }}</span>
+ </div>
+ </div>
+ <div class="bottom_price_title">
+
+ <div class="start_price">
+ <span>{{ '挂单价格' }}</span>
+ </div>
+ <div class="new_price">
+ <span>{{ '当前价格' }}</span>
+ </div>
+ </div>
+ <div class="right_btn">
+ <span>{{ '撤销' }}</span>
</div>
</div>
- <div class="right_count" :class="item.profitAndLose > 0 ? 'red' : item.profitAndLose == 0 ? '' : 'green'">
- <span>{{ item.profitAndLose }}</span>
+ </div>
+ </van-list>
+
+
+
+
+
+ <div class="waiting" v-if="totals == 0 && tabsCurrentIndex === 2">
+ <div class="waiting_box">
+ <div class="img_cont">
+ <img src="../../assets/img/zhaobudao.png" alt />
+ <span class="gd">{{ '当前无挂单' }}</span>
+ <div class="trading" @click="$router.push('/trading-list')">
+ <span>{{ '开始交易' }}</span>
+ </div>
</div>
</div>
</div>
- </van-list>
+
+ <van-list v-model="loadings" :finished="finisheds" finished-text="没有更多了" @load="onLoads"
+ :immediate-check="immediate" v-show="tabsCurrentIndex === 2 && totals != 0">
+ <div class="tabs_o">
+ <div class="tabs_o_items oes" v-for="(item, index) in tabsPcArr" :key="index">
+ <div class="tabs_o_title">
+ <span class="title">{{ item.stockName }}</span>
+ <span class="buy_to_sell">{{ item.orderDirection }}</span>
+ <span class="multiple">{{ item.allProfitAndLose }}</span>
+ <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
+ </div>
+ <div class="bottom_price_title">
+ <div class="profit_res">
+ <span>平仓时间: {{ item.buyOrderTime | gettime }}</span>
+ </div>
+ </div>
+ <div class="right_count"
+ :class="item.profitAndLose > 0 ? 'red' : item.profitAndLose == 0 ? '' : 'green'">
+ <span>{{ item.profitAndLose }}</span>
+ </div>
+ </div>
+ </div>
+ </van-list>
</div>
-
+
</div>
</div>
</div>
@@ -236,7 +306,7 @@
export default {
data() {
return {
- tabsArr: ["持仓", "已平仓"],
+ tabsArr: ["持仓", "挂单", "已平仓"],
tabsCurrentIndex: 0,
titleName: "沪深京账户",
indexSettingInfo: {},
@@ -248,13 +318,18 @@
titleDialog: false,
total: 0,
totals: 0,
+ totalss:0,
loading: false,
finished: false,
- finisheds:false,
+ finisheds: false,
+ finishedss: false,
page: 1,
pages: 1,
- immediate:false,
- loadings:false,
+ pagess: 1,
+ immediate: false,
+ loadings: false,
+ loadingss:false,
+ tabsOrderList:[]
};
},
mounted() {
@@ -264,6 +339,7 @@
this.getSettingInfo();
this.getFuturesSetting();
this.getListDetails();
+ this.getorderList();
},
methods: {
onLoad() {
@@ -279,8 +355,18 @@
onLoads() {
this.pages++;
switch (this.titleIndex) {
- case 1:
+ case 2:
this.getListDetails();
+ break;
+ default:
+ break;
+ }
+ },
+ onLoadss() {
+ this.pagess++;
+ switch (this.titleIndex) {
+ case 1:
+ this.getorderList();
break;
default:
break;
@@ -290,26 +376,29 @@
//账户选项卡
this.titleIndex = index;
this.page = 1;
- this.pages = 1;
- this.finished = false;
- this.finisheds = false;
- this.tabsPositionNumArr = [];
- this.tabsPcArr = [];
+ this.pages = 1;
+ this.finished = false;
+ this.finisheds = false;
+ this.tabsPositionNumArr = [];
+ this.tabsPcArr = [];
switch (index) {
case 0:
this.titleName = "沪深京账户";
this.getListDetail();
this.getListDetails();
+ this.getorderList();
break;
case 1:
this.titleName = "指数账户";
this.getzhishuListDetail();
this.getzhishuListDetails();
+ this.getorderList();
break;
case 2:
this.titleName = "期货账户";
this.getQhListDetail();
this.getQhListDetails();
+ this.getorderList();
break;
default:
break;
@@ -322,6 +411,23 @@
},
handleOpenDialog() {
this.titleDialog = !this.titleDialog;
+ },
+ //挂单
+ async getorderList(){
+ let opts={}
+ let data = await api.getorderList(opts);
+ this.loadingss = false;
+ if (data.status === 0) {
+ if (data.data.length < 15) {
+ this.finishedss = true;
+ }
+ data.data.forEach(element => {
+ this.tabsOrderList.push(element)
+ })
+ this.totalss = data.data.length
+ } else {
+ Toast(data.msg)
+ }
},
async getIndexSettingInfo() {
// 网站设置信息 指数
@@ -449,7 +555,7 @@
let data = await api.getOrderList(opt)
this.loadings = false;
if (data.status === 0) {
- if(data.data.list.length <15){
+ if (data.data.list.length < 15) {
this.finisheds = true;
}
data.data.list.forEach(element => {
@@ -472,9 +578,9 @@
}
let data = await api.getIndexOrderList(opt)
this.loadings = false;
- if(data.data.list.length <15){
- this.finisheds = true;
- }
+ if (data.data.list.length < 15) {
+ this.finisheds = true;
+ }
if (data.status === 0) {
data.data.list.forEach(element => {
this.tabsPcArr.push(element)
@@ -497,7 +603,7 @@
let data = await api.getFuturesOrderList(opt)
this.loadings = false;
if (data.status === 0) {
- if(data.data.list.length <15){
+ if (data.data.list.length < 15) {
this.finisheds = true;
}
data.data.list.forEach(element => {
@@ -548,8 +654,11 @@
display: flex;
justify-content: center;
align-items: center;
-};
+}
+
+;
@topCardColor: #bdbdbd;
+
.warehouse_page {
width: 100%;
height: calc(100% - 1.2974rem);
@@ -817,13 +926,14 @@
.tabs_o {
width: 100%;
margin-top: 0.3rem;
-
+
>.tabs_o_items {
width: 100%;
height: 2.2rem;
position: relative;
border-bottom: 0.01rem solid #ececec;
margin-bottom: 0.1rem;
+
.tabs_o_title {
width: 100%;
height: 0.7179rem;
@@ -841,9 +951,9 @@
}
.buy_to_sell {
-
+
padding: 0.08rem 0.1rem;
-
+
font-weight: 600;
}
@@ -1083,20 +1193,24 @@
font-weight: 500 !important;
;
}
-.maichu{
- color: rgb(225,57,65);
- background: rgb(252,238,240);
+
+.maichu {
+ color: rgb(225, 57, 65);
+ background: rgb(252, 238, 240);
}
-.mairu{
+
+.mairu {
color: rgb(109, 175, 125);
- background: rgb(215, 243, 235);
+ background: rgb(215, 243, 235);
}
-.jiantou{
+
+.jiantou {
position: relative;
}
-.jiantou::before{
+
+.jiantou::before {
content: '';
- background-image: url('../../assets/img/youyou.png') ;
+ background-image: url('../../assets/img/youyou.png');
background-size: 100% 100%;
width: 0.6rem;
height: 0.2rem;
diff --git a/src/store/index.js b/src/store/index.js
index 625bbe1..f9a2643 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -6,7 +6,7 @@
Vue.use(Vuex)
-const state = {
+let state = {
className: 'black',
theme:'red',
userInfo: { // 用户信息
@@ -18,6 +18,9 @@
hide: false,
select: '/home', // 菜单选择
token: 'USER62CCF5221CD752269D47681374DD0916',
+ elAlertShow: false,
+ elAlertText: '',
+ elAlertType: 'warning',
settingForm: { // 产品配置
futuresDisplay: false,
indexDisplay: false,
@@ -29,6 +32,15 @@
export default new Vuex.Store({
state,
actions: {},
- mutations: {},
+ mutations: {
+ elAlertShow(state, payload) {
+ state.elAlertShow = payload.elAlertShow;
+ state.elAlertText = payload.elAlertText;
+ if(payload.elAlertType){
+ state.elAlertType = payload.elAlertType;
+ }
+
+ }
+ },
getters: {}
})
--
Gitblit v1.9.3