Commit 0a614ff2 authored by jiaoyahui's avatar jiaoyahui

策略列表和详情页 接口和历史战绩布局

parent 5c098015
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -12,6 +12,7 @@
"amfe-flexible": "^2.2.1",
"axios": "^0.27.2",
"core-js": "^3.8.3",
"echarts": "^5.5.1",
"lib-flexible": "^0.3.2",
"vant": "^2.13.2",
"vue": "^2.6.14",
......
......@@ -19,13 +19,24 @@ const testApi = {
},
//策略详情
getproduct_strge(params,id) {
return http.get('/invest/admin/pc/smart/product/'+id, params)
// getproduct_strge(params,id) {
// return http.get('/invest/admin/pc/smart/product/2', params)
// },
//今日入选
getselectedToday(params) {
return http.post('/invest/admin/pc/smart/selectedToday', params)
},
//历史战绩
historicalRecord(params) {
return http.post('/invest/admin/pc/smart/historicalRecord', params)
},
//策略历史战绩
gethistoricalRecord(params,id) {
return http.get('/invest/admin/pc/smart/historicalRecord', params)
//历史战绩
pageStockProfitLogList(params) {
return http.post('/invest/admin/pc/smart/pageStockProfitLogList', params)
}
};
......
const router_modular = [
{
path: '/strategyversion',
path: '/',
name: 'strategyversion',
component: () => import('@/views/strategyversion/index')
},
......
......@@ -20,7 +20,7 @@ service.interceptors.request.use(config => {
config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换
config.headers = {
'Content-Type':'application/json' ,//配置请求头
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3MjYyOTc4ODksInN1YiI6IjQ4MjY2NiIsImlhdCI6MTcyNTY5MzA4OX0.iSWtg05FvzN3vXx219-q-zcnAjZc63691GgNxZtC16LrsYqv7f01VY4L2pSDnfIzlwnXUAG5HBCnDMr3s4ED-Q'
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3MjY1Mzk4MjksInN1YiI6IjQ4MjY2NiIsImlhdCI6MTcyNTkzNTAyOX0.DMmSGiAtf4h_mu8mtjUz-f67efeYz4sedzJNaoFnkFicBuAdZM_6fjuAhl5OCum77lrFSMORtc_qst3l06MjLQ'
}
//如有需要:注意使用token的时候需要引入cookie方法或者用本地localStorage等方法,推荐js-cookie
//const token = getCookie('名称');//这里取token之前,你肯定需要先拿到token,存一下
......
......@@ -6,6 +6,7 @@
left-arrow
@click-left="onClickLeft"
/>
<div>
<div class="plog">
<div class="oul">
<div>股票代码</div>
......@@ -70,6 +71,92 @@
</li>
</ul>
</div>
<div class="plog_p">
<div class="oul">
<div>
买入⽇期
<img
src="../../assets/bottom.png"
alt=""
class="oimg_sent"
v-if="is_show"
@click="tab_omg"
/>
<img
src="../../assets/top.png"
alt=""
class="oimg_sent"
v-if="isshow"
@click="tab_img"
/>
</div>
<div>
卖出⽇期
<img
src="../../assets/bottom.png"
alt=""
class="oimg_sent"
v-if="is_show"
@click="tab_omg"
/>
<img
src="../../assets/top.png"
alt=""
class="oimg_sent"
v-if="isshow"
@click="tab_img"
/>
</div>
<div>股票代码</div>
<div>股票名称</div>
<div>盈亏金额</div>
<div>盈亏比例</div>
<!-- <div>
⼊选后最⾼涨幅
<img
src="../../assets/top.png"
alt=""
class="oimg_sent"
v-if="s_show"
@click="tab_sel"
/>
<img
src="../../assets/bottom.png"
alt=""
class="oimg_sent"
v-if="l_show"
@click="tab_let"
/>
</div> -->
<div>持仓天数</div>
</div>
<ul class="user_ul">
<li class="name">
<div class="price">
<div>三祥新材</div>
<div>999</div>
</div>
<div class="se_data">2024-08-28</div>
<div class="se_data">14.5</div>
<div class="se_data_p">+7.71%</div>
<div class="se_data_t">2</div>
</li>
<li class="name">
<div class="price">
<div>三祥新材</div>
<div>999</div>
</div>
<div class="se_data">2024-08-28</div>
<div class="se_data">14.5</div>
<div class="se_data_p">+7.71%</div>
<div class="se_data_t">2</div>
</li>
</ul>
</div>
</div>
</div>
</template>
......@@ -87,22 +174,61 @@ export default {
is_show: false,
s_show: true,
l_show: false,
pageNo:1,
pageSize:10,
codeName:'',
pageStockPro:[]
};
},
created() {},
mounted() {},
created() {
this.detInfo = this.$route.query.detInfo ;
localStorage.getItem('detInfo',this.detInfo)
},
mounted() {
this.get_elected()
this.get_Pro()
},
methods: {
getsent_p(){
get_elected(){
let params={
productId:this.detInfo.id,
pageNo:this.pageNo,
pageSize:this.pageSize
}
this.server.historicalRecord(params).then(res=>{
if(res.data.code == 200){
this.codeName = res.data.data.list
}
this.server.gethistoricalRecord(params).then(res=>{
this.getList = res.data.data.list
console.log(res)
})
},
get_Pro(){
let params={
marketId:this.detInfo.marketId,
pageNo:this.pageNo,
pageSize:this.pageSize
}
this.server.pageStockProfitLogList(params).then(res=>{
if(res.data.code == 200){
this.pageStockPro = res.data.data.list
}
})
},
onClickLeft() {
this.$router.push("../strategy");
localStorage.getItem('detInfo',this.detInfo)
this.$router.push({
path: '../strategy',
query: {detInfo : this.detInfo }
})
},
tab_img: function () {
this.isshow = false;
......@@ -144,6 +270,11 @@ export default {
top: 83px;
width: 100%;
}
.plog_p{
position: fixed;
top: 283px;
width: 100%;
}
.oul div {
color: #4e4a4a;
font-size: 0.18rem;
......
......@@ -10,17 +10,17 @@
/>
<div class="deta">策略详情</div>
</div>
<span>热点精选</span> <span>324⼈订阅</span>
<span>{{this.detInfo.productName}}</span> <span>{{this.detInfo.numberSubscriptions}}⼈订阅</span>
<p class="tab_user">
对热点股票强度深度建模,优选热点持续且潜⼒,持久的成⻓性股票
</p>
<p></p>
<div>
<span>综合胜率:<span>84.43%</span></span>
<span style="margin-left: 41px">平均涨幅:<span>13.04%</span></span>
<span>综合胜率:<span>{{this.detInfo.successPercent}}</span></span>
<span style="margin-left: 41px">平均涨幅:<span>{{this.detInfo.avgIncrease}}</span></span>
</div>
<img
src=""
:src="this.detInfo.url"
alt=""
class="oimg"
style="width: 90px; height: 90px"
......@@ -36,31 +36,24 @@
<div>涨跌幅</div>
</div>
<div class="p_alog">
<div class="oul">
<div class="odiv">
<div>三祥新材</div>
<div>999</div>
</div>
<div class="odiv">2024-08-28</div>
<div class="odiv_p">14.5</div>
<div class="odiv">22</div>
</div>
<div class="oul">
<div class="oul" v-for="(item,index) in codeName" :key="index">
<div class="odiv">
<div>三祥新材</div>
<div>999</div>
<div>{{item.codeName}}</div>
<div>{{item.code}}</div>
</div>
<div class="odiv">2024-08-28</div>
<div class="odiv_p">14.5</div>
<div class="odiv">22</div>
<div class="odiv">{{item.createTime}}</div>
<div class="odiv_p">{{item.price}}</div>
<div class="odiv">{{item.profitLossRatio}}</div>
</div>
<div class="user_con">
<div class="sent">
<img
src="../../assets/sure.png"
alt=""
style="width:8%; height: 36px
margin-left:38%"
margin-left:38%;"
/>
</div>
......@@ -71,30 +64,19 @@
</div>
<div class="usert_n">
<span @click="whole">全部战绩</span>
<span @click="whole(detInfo)">全部战绩</span>
<img src="../../assets/back.png" alt="" style="width: 6px;margin-left: 12px;" />
</div>
<div class="alogn">
<div class="cont">
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="cont" v-for="(item,index) in this.detInfo.pcSmartStockInfoVOList" :key="index">
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="name_u">{{item.code}}</div>
<div class="user_t">{{item.winRate}}</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
</div>
<!-- <div class="uaser_a">
<img src="../../assets/jian.png" alt="" class="tab_img">
......@@ -127,28 +109,83 @@ export default {
const onCdivckLeft = () => history.back();
return {
onCdivckLeft,
productName:'',
};
},
data() {
return {};
return {
detInfo : {},//'订单详情',
pcSmartStockInfoVOList:[],
detInfo:'',
pageNo:1,
pageSize:10,
codeName:[],
detInfo:{},
};
},
created() {
// this.detInfo = JSON.parse(this.$route.query.detInfo) ;
// localStorage.getItem('detInfo',this.detInfo)
this.detInfo = JSON.parse(localStorage.getItem('detInfo'))
console.log(this.detInfo,'ppp12')
},
mounted() {
this.getselected()
},
created() {},
mounted() {},
methods: {
getproduct_s(id){
getselected(){
let params={
productId:this.detInfo.id,
pageNo:this.pageNo,
pageSize:this.pageSize
}
this.server.getselectedToday(params).then(res=>{
if(res.data.code == 200){
this.codeName = res.data.data.list
}
this.server.getproduct_strge(params,id).then(res=>{
this.getList = res.data.data.list
console.log(res)
})
},
get_elected(){
localStorage.getItem('detInfo',this.detInfo)
let params={
productId:this.detInfo.id,
pageNo:2,
pageSize:this.pageSize
}
this.server.historicalRecord(params).then(res=>{
if(res.data.code == 200){
this.codeName = res.data.data.list
}
})
},
tab_oimg: function () {
this.$router.push("../strategyversion");
},
whole: function () {
this.$router.push("../record");
whole: function (detInfo) {
// const detInfo = localStorage.getItem('detInfo',this.detInfo)
// const get_info = JSON.stringify(de_Info)
localStorage.setItem('detInfo', JSON.stringify(detInfo))
console.log(detInfo,'aaaaaaaaaaaaaa2')
this.$router.push({
path: '../record',
query: {detInfo :detInfo }
})
},
},
components: {},
......@@ -243,7 +280,7 @@ export default {
margin-right: 10px;
padding-bottom: 9px;
padding-top: 15px;
display: none;
/* display: none; */
}
.oul .oli {
display: flex;
......@@ -269,6 +306,7 @@ export default {
}
.user_con{
text-align: center;
display: none;
}
.usert_n {
font-size: 0.2rem;
......
......@@ -14,80 +14,34 @@
<van-swipe-item>内容 3</van-swipe-item>
</van-swipe>
</van-notice-bar> -->
<div class="user">
<div class="sre_p" @click="tab_let">
<div class="user" v-for="(item,index) in getList" :key="index">
<div class="sre_p" @click="tab_let(item)">
<div class="uset_a">
<span>热点精选</span>
<span class="num">324⼈订阅</span>
<span>{{item.productName}}</span>
<span class="num">{{item.numberSubscriptions}}⼈订阅</span>
</div>
<div>
<span>综合胜率: <span>84.1%</span></span>
<span style="margin-left:14px">平均涨幅: <span>84.2%</span></span>
<span>综合胜率: <span>{{item.successPercent}}</span></span>
<span style="margin-left:14px">平均涨幅: <span>{{item.avgIncrease}}</span></span>
</div>
<div class="read">解锁订阅</div>
</div>
<div class="cont">
<div class="tab_p">
<div class="tab_p" v-for="(i,index) in item.pcSmartStockInfoVOList" :key="index">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="name_u">{{i.code}}</div>
<div class="user_t">{{i.winRate}}</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
</div>
</div>
<div class="user">
<div class="sre_p" @click="tab_let">
<div class="uset_a">
<span>热点精选</span>
<span class="num">324⼈订阅</span>
</div>
<div>
<span>综合胜率: <span>84.1%</span></span>
<span style="margin-left:14px">平均涨幅: <span>84.2%</span></span>
</div>
<div class="read">解锁订阅</div>
</div>
<div class="cont">
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
<div class="tab_p">
<img src="../../assets/jian.png" alt="" class="tab_img">
<div class="name_u">紫天科技</div>
<div class="user_t">97.06%</div>
<div class="user_se">⼊选最⾼涨幅</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
......@@ -96,7 +50,13 @@
export default {
data() {
return {};
return {
getList:[],
pageNo:1,
pageSize:10,
user_pro:[],
detInfo : {}
};
},
created() {},
mounted() {
......@@ -109,16 +69,24 @@ export default {
}
this.server.getstrge(params).then(res=>{
if(res.code == 200){
this.getList = res.data.data.list
if(res.data.code == 200){
this.getList = res.data.data.list;
this.user_pro = res.data.data.pcSmartStockInfoVOList;
console.log(res)
}
})
},
tab_let() {
this.$router.push("../strategy");
tab_let(item) {
const detInfo = JSON.stringify(item)
console.log(detInfo,'aa')
localStorage.setItem('detInfo', detInfo)
this.$router.push({
path: '../strategy',
query: { detInfo : detInfo }
})
},
onClickLeft() {
this.$router.push("../strategy");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment