7.10 增加登录页面,事件详情接口对接,我的点赞,关注收藏页面搭建,接口对接

This commit is contained in:
尚政杰
2025-07-10 18:08:16 +08:00
parent c4267a0e27
commit 58b3414bdd
356 changed files with 7710 additions and 978 deletions

View File

@@ -1,22 +1,43 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
const request_api = require("../../../request/api.js");
const utils_util = require("../../../utils/util.js");
const common_assets = require("../../../common/assets.js");
const _sfc_main = {
data() {
return {
navH: common_vendor.inject("navHeight"),
windowWidth: common_vendor.inject("windowWidth"),
eventId: "",
//事件id
eventDetails: null,
//事件详情
categoryList: ["相关标的", "相关概念", "历史事件", "时间传导链分析", "关联数据"],
targetList: [],
//相关标的
conceptList: [],
//相关概念
historyEventList: [],
//历史事件
historyEventRelatedStockList: [],
//历史事件相关股票
selectCategory: 0,
headingList: ["名称代码", "分时图", "开盘价", "最新价", "涨跌幅"]
headingList: ["名称代码", "分时图", "开盘价", "最新价", "涨跌幅"],
getLocaleTime: utils_util.getLocaleTime,
getRateUpOrDown: utils_util.getRateUpOrDown,
getRateStr: utils_util.getRateStr,
scoreTop: "",
eventComment: "",
//事件评论
expectScore: 0
//预期得分
};
},
onLoad(e) {
if (e.id) {
this.eventId = e.id;
this.getEventDetailsData();
this.getEventRelatedStockData();
this.getEventCommentListData();
}
},
methods: {
@@ -26,14 +47,21 @@ const _sfc_main = {
clickCategoryItem(index) {
if (this.selectCategory != index) {
this.selectCategory = index;
if (index == 0) {
this.getEventRelatedStockData();
} else if (index == 1) {
this.getEventRelatedConceptData();
} else if (index == 2) {
this.getEventHistoryEventData();
}
}
},
/**
* 点击查看股票详情
*/
clickStockItem() {
clickStockItem(code) {
common_vendor.index.navigateTo({
url: "/pages/index/stockDetails/stockDetails"
url: "/pages/index/stockDetails/stockDetails?code=" + code
});
},
/**
@@ -44,21 +72,125 @@ const _sfc_main = {
url: "/pages/index/conceptDetails/conceptDetails"
});
},
/**
* 点击查看历史事件的相关股票
*/
clickLookHistoricalEventRelatedStock(item) {
this.historyEventRelatedStockList = item.related_stocks;
this.$refs["stockPopup"].open();
},
/**
* 点击关闭相关股票弹窗
*/
closeRelatedStockPopup() {
this.$refs["stockPopup"].close();
},
/**
* 点击查看超预期得分
*/
clickExpectScore(e) {
this.scoreTop = e.currentTarget.offsetTop + this.navH + (70 + 10 + 20) / 750 * this.windowWidth;
this.$refs["expectScorePopup"].open();
},
/**
* 点击发送事件评论
*/
sendEventComment() {
if (!this.eventComment) {
common_vendor.index.showToast({
title: "请输入评论内容",
icon: "none"
});
return;
}
let eventId = this.eventId;
let param = { content: this.eventComment };
request_api.commentEvent(eventId, param).then((res) => {
}).catch((error) => {
});
},
/**
* 点击评论
*/
clickComment() {
this.$refs["popup"].open();
},
/**
* 点击关闭评论弹窗
*/
closeCommentPopup() {
this.$refs["popup"].close();
},
/**
* 获取事件详情数据
* 点击关注
*/
getEventDetailsData() {
clickFollow() {
let eventId = this.eventId;
request_api.eventDetails(eventId).then((res) => {
followEvent(eventId).then((res) => {
common_vendor.index.showToast({
title: res.message,
icon: "none"
});
}).catch((error) => {
});
},
/**
* 获取事件相关标的数据
*/
getEventRelatedStockData() {
let eventId = this.eventId;
request_api.eventRelatedStock(eventId).then((res) => {
if (res.code == 200) {
this.eventDetails = res.data;
this.targetList = res.data.related_stocks;
} else
common_vendor.index.showToast({
title: res.message,
icon: "none"
});
}).catch((error) => {
});
},
/**
* 获取事件相关概念数据
*/
getEventRelatedConceptData() {
let eventId = this.eventId;
request_api.eventRelatedConcept(eventId).then((res) => {
if (res.code == 200) {
this.conceptList = res.data.related_concepts;
} else
common_vendor.index.showToast({
title: res.message,
icon: "none"
});
}).catch((error) => {
});
},
/**
* 获取事件历史事件数据
*/
getEventHistoryEventData() {
let eventId = this.eventId;
request_api.eventHistoryEvent(eventId).then((res) => {
if (res.code == 200) {
this.expectScore = res.data.invest_score;
this.historyEventList = res.data.historical_events;
} else
common_vendor.index.showToast({
title: res.message,
icon: "none"
});
}).catch((error) => {
});
},
/**
* 获取事件评论列表
*/
getEventCommentListData() {
let eventId = this.eventId;
request_api.eventCommentList(eventId).then((res) => {
this.commentList = res.data.comments;
}).catch((error) => {
});
}
@@ -80,7 +212,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
leftText: "事件详情"
}),
b: common_assets._imports_0,
c: common_vendor.f($data.categoryList, (item, index, i0) => {
c: $data.eventDetails
}, $data.eventDetails ? common_vendor.e({
d: common_vendor.t($data.eventDetails.event_type),
e: common_vendor.t($data.eventDetails.event_title),
f: common_vendor.t($data.eventDetails.event_created_at.substr(0, 16)),
g: common_vendor.t($data.eventDetails.event_desc),
h: common_vendor.f($data.categoryList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: $data.selectCategory == index
@@ -90,33 +228,129 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
e: common_vendor.o(($event) => $options.clickCategoryItem(index), index)
});
}),
d: $data.selectCategory == 0
i: $data.selectCategory == 0
}, $data.selectCategory == 0 ? {
e: common_vendor.f($data.headingList, (item, index, i0) => {
j: common_vendor.f($data.headingList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
})
} : {}, {
f: $data.selectCategory == 0
}, $data.selectCategory == 0 ? {} : {}, {
g: $data.selectCategory == 1
}, $data.selectCategory == 1 ? {
h: common_vendor.o(($event) => $options.clickConceptItem())
k: $data.selectCategory == 0
}, $data.selectCategory == 0 ? {
l: common_vendor.f($data.targetList, (item, index, i0) => {
return {
a: common_vendor.t(item.stock_name),
b: common_vendor.t(item.stock_code),
c: common_vendor.t(item.trade_data.open_price),
d: common_vendor.t(item.trade_data.latest_price),
e: common_vendor.t(item.trade_data.change_pct),
f: common_vendor.n("chg flex1 " + ($data.getRateUpOrDown(item.trade_data.change_pct) ? "down" : "up")),
g: common_vendor.t(item.relation_desc),
h: index,
i: common_vendor.o(($event) => $options.clickStockItem(item.stock_code), index)
};
})
} : {}, {
i: common_vendor.s("top:" + $data.navH + "px;"),
j: common_assets._imports_1$1,
k: common_assets._imports_2$1,
l: common_vendor.o(($event) => $options.clickComment()),
m: common_assets._imports_3$1,
n: common_assets._imports_4$2,
o: common_vendor.o(($event) => $options.closeCommentPopup()),
p: common_assets._imports_5$2,
q: common_assets._imports_6,
r: common_assets._imports_5$2,
s: common_vendor.sr("popup", "6e1a61f1-1"),
t: common_vendor.p({
m: $data.selectCategory == 1
}, $data.selectCategory == 1 ? {
n: common_vendor.f($data.conceptList, (item, index, i0) => {
return {
a: item.first_image,
b: common_vendor.t(item.concept),
c: common_vendor.t(item.reason),
d: index,
e: common_vendor.o(($event) => $options.clickConceptItem(), index)
};
})
} : {}, {
o: $data.selectCategory == 2
}, $data.selectCategory == 2 ? {
p: common_assets._imports_1$4,
q: common_vendor.t($data.expectScore),
r: common_assets._imports_2$6,
s: common_vendor.o(($event) => $options.clickExpectScore($event)),
t: common_vendor.f($data.historyEventList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.title),
b: common_vendor.t(item.content),
c: $data.getRateUpOrDown(item.related_avg_chg)
}, $data.getRateUpOrDown(item.related_avg_chg) ? {
d: common_assets._imports_1$1
} : {
e: common_assets._imports_2$2
}, {
f: common_vendor.t($data.getRateStr(item.related_avg_chg)),
g: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_avg_chg) ? "down" : "up")),
h: $data.getRateUpOrDown(item.related_max_chg)
}, $data.getRateUpOrDown(item.related_max_chg) ? {
i: common_assets._imports_1$1
} : {
j: common_assets._imports_2$2
}, {
k: common_vendor.t($data.getRateStr(item.related_max_chg)),
l: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_max_chg) ? "down" : "up")),
m: common_vendor.o(($event) => $options.clickLookHistoricalEventRelatedStock(item), index),
n: common_vendor.t($data.getLocaleTime(item.event_date)),
o: index
});
}),
v: common_assets._imports_1$4
} : {}, {
w: common_vendor.s("top:" + $data.navH + "px;")
}) : {}, {
x: $data.eventDetails
}, $data.eventDetails ? {
y: common_vendor.o(($event) => $options.sendEventComment()),
z: $data.eventComment,
A: common_vendor.o(($event) => $data.eventComment = $event.detail.value),
B: common_assets._imports_3,
C: common_vendor.t($data.eventDetails.view_count),
D: common_assets._imports_4,
E: common_vendor.t($data.eventDetails.post_count),
F: common_vendor.o(($event) => $options.clickComment()),
G: common_assets._imports_7,
H: common_vendor.t($data.eventDetails.follower_count),
I: common_vendor.o(($event) => $options.clickFollow())
} : {}, {
J: common_assets._imports_8,
K: common_vendor.o(($event) => $options.closeCommentPopup()),
L: common_assets._imports_9,
M: common_assets._imports_10,
N: common_assets._imports_9,
O: common_vendor.sr("popup", "6e1a61f1-1"),
P: common_vendor.p({
type: "bottom"
}),
Q: common_assets._imports_11$1,
R: common_vendor.s("margin-top:" + $data.scoreTop + "px;"),
S: common_vendor.sr("expectScorePopup", "6e1a61f1-2"),
T: common_vendor.p({
type: "top",
["mask-background-color"]: "transparent"
}),
U: common_assets._imports_8,
V: common_vendor.o(($event) => $options.closeRelatedStockPopup()),
W: common_vendor.f($data.historyEventRelatedStockList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.stock_name + "(" + item.stock_code + ")"),
b: common_vendor.t(item.correlation * 100),
c: common_vendor.t(item.sector),
d: $data.getRateUpOrDown(item.daily_change)
}, $data.getRateUpOrDown(item.daily_change) ? {
e: common_assets._imports_1$1
} : {
f: common_assets._imports_2$2
}, {
g: common_vendor.t($data.getRateStr(item.daily_change)),
h: common_vendor.t(item.relation_desc),
i: index,
j: common_vendor.o(($event) => $options.clickStockItem(item.stock_code), index)
});
}),
X: common_vendor.sr("stockPopup", "6e1a61f1-3"),
Y: common_vendor.p({
type: "bottom"
})
});

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@
right: 0;
bottom: calc(20rpx + 70rpx + 20rpx + env(safe-area-inset-bottom));
border-radius: 20rpx 20rpx 0 0;
overflow-y: hidden;
overflow-y: scroll;
}
.eventDetailsC .categoryTitleC {
padding: 0 25rpx;
@@ -33,7 +33,7 @@
font-weight: bold;
color: #222;
}
.eventDetailsC .time {
.eventDetailsC .eventTime {
margin: 20rpx 25rpx 0;
font-size: 22rpx;
font-weight: 500;
@@ -99,14 +99,17 @@
color: #888;
}
.eventDetailsC .targetList .item .nameCodePriceC .price {
font-size: 28rpx;
font-weight: bold;
color: #222;
text-align: center;
}
.eventDetailsC .targetList .item .nameCodePriceC .chg {
text-align: center;
}
.eventDetailsC .targetList .item .nameCodePriceC .chg.up {
color: #FF2929;
}
.eventDetailsC .targetList .item .nameCodePriceC .chg.down {
color: #22C55E;
}
.eventDetailsC .targetList .item .content {
font-size: 20rpx;
font-weight: 500;
@@ -115,8 +118,10 @@
.eventDetailsC .conceptList {
padding: 30rpx 25rpx;
}
.eventDetailsC .conceptList .item {
margin-bottom: 20rpx;
}
.eventDetailsC .conceptList .item .cover {
background-color: red;
display: block;
width: 100%;
height: 350rpx;
@@ -128,6 +133,7 @@
left: 0;
width: 100%;
bottom: 0;
border-radius: ;
color: white;
}
.eventDetailsC .conceptList .item .infoC .title {
@@ -135,14 +141,146 @@
font-weight: bold;
}
.eventDetailsC .conceptList .item .infoC .content {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
margin-top: 10rpx;
font-size: 20rpx;
font-weight: 500;
line-height: 1.2rem;
}
.eventDetailsC .conceptList .item .infoC .content .lookDetails {
right: 0;
color: #F97316;
}
.eventDetailsC .historyEventList {
padding: 34rpx 25rpx;
}
.eventDetailsC .historyEventList .expectScoreC {
background-color: #FBEFE7;
padding: 0 25rpx;
height: 70rpx;
}
.eventDetailsC .historyEventList .expectScoreC .icon {
margin-right: 14rpx;
width: 24rpx;
height: auto;
}
.eventDetailsC .historyEventList .expectScoreC .score {
font-size: 24rpx;
font-weight: 500;
color: #F97316;
}
.eventDetailsC .historyEventList .expectScoreC .tips {
margin-left: 14rpx;
width: 24rpx;
height: auto;
}
.eventDetailsC .historyEventList .list {
padding: 23rpx 0;
}
.eventDetailsC .historyEventList .list .item .eventLineC {
padding: 0 43rpx 0 15rpx;
}
.eventDetailsC .historyEventList .list .item .eventLineC .line {
background-color: #F0F0F0;
width: 1px;
height: 100%;
}
.eventDetailsC .historyEventList .list .item .eventLineC .pointC {
background-color: #F9731680;
top: 0;
left: 5rpx;
width: 20rpx;
height: 20rpx;
border-radius: 50%;
}
.eventDetailsC .historyEventList .list .item .eventLineC .pointC .point {
background-color: #F97316;
width: 10rpx;
height: 10rpx;
border-radius: 50%;
}
.eventDetailsC .historyEventList .list .item .eventInfoC {
box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.07);
margin-bottom: 20rpx;
padding-top: 27rpx;
min-width: 0;
border-radius: 10rpx;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .titleCorrelationC {
padding: 0 24rpx 0 30rpx;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .titleCorrelationC .title {
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30rpx;
font-weight: bold;
color: #222;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .titleCorrelationC .correlation {
background-color: #F973161A;
padding: 0 12rpx;
line-height: 40rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-weight: 500;
color: #F97316;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .content {
margin: 16rpx 30rpx 0;
font-size: 24rpx;
font-weight: 500;
color: #666;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .increaseRateList {
white-space: nowrap;
padding: 0 30rpx;
margin-top: 24rpx;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .increaseRateList .rateItem {
display: inline-block;
margin-right: 15rpx;
line-height: 44rpx;
padding: 0 14rpx;
border-radius: 10rpx;
font-size: 22rpx;
font-weight: bold;
color: white;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .increaseRateList .rateItem .arrow {
width: 15rpx;
height: auto;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .increaseRateList .rateItem.up {
background-color: #C00000;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .increaseRateList .rateItem.down {
background-color: #355422;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .relatedStockTimeC {
padding-right: 28rpx;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .relatedStockTimeC .relatedStockC {
padding: 16rpx 30rpx;
font-size: 24rpx;
font-weight: bold;
color: #F97316;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .relatedStockTimeC .relatedStockC .icon {
margin-right: 13rpx;
width: 24rpx;
height: auto;
}
.eventDetailsC .historyEventList .list .item .eventInfoC .relatedStockTimeC .time {
font-size: 22rpx;
font-weight: 500;
color: #aaa;
text-align: right;
}
.bottomC {
padding: 20rpx 25rpx calc(20rpx + env(safe-area-inset-bottom));
left: 0;
@@ -163,12 +301,13 @@
font-weight: 500;
}
.bottomC .commentLikeNumC .item {
padding: 0 20rpx;
font-size: 26rpx;
font-weight: bold;
color: #666;
text-align: center;
}
.bottomC .commentLikeNumC .item .icon {
margin: 0 20rpx;
width: 35rpx;
height: auto;
}
@@ -201,7 +340,6 @@
display: flex;
}
.popup .list .item .originComment .avatar {
background-color: red;
margin-right: 23rpx;
width: 80rpx;
height: 80rpx;
@@ -271,7 +409,6 @@
border-bottom: solid 1rpx #E4E4E4;
}
.popup .list .item .replyList .replyItem .avatar {
background-color: red;
margin-right: 23rpx;
width: 80rpx;
height: 80rpx;
@@ -332,3 +469,98 @@
font-weight: 500;
color: #333;
}
.expectScorePopup {
background-color: white;
margin-left: calc(100% - 320rpx - 24rpx);
width: 320rpx;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
border-radius: 10rpx;
}
.expectScorePopup .arrow {
top: -13rpx;
right: 38rpx;
width: 26rpx;
height: auto;
}
.expectScorePopup .tips {
padding: 30rpx 22rpx 20rpx;
font-size: 22rpx;
font-weight: 500;
color: #444;
}
.stockPopup {
background-color: white;
border-radius: 20rpx 20rpx 0 0;
}
.stockPopup .titleCloseC {
padding-left: 25rpx;
font-size: 32rpx;
font-weight: bold;
color: #222;
}
.stockPopup .titleCloseC .closeC {
padding: 28rpx;
}
.stockPopup .titleCloseC .closeC .icon {
width: 28rpx;
height: auto;
}
.stockPopup .list {
border-top: solid 1rpx #E4E4E4;
margin: 0 25rpx;
max-height: 800rpx;
overflow-y: scroll;
}
.stockPopup .list .item {
padding: 36rpx 0 28rpx;
border-bottom: solid 1rpx #E4E4E4;
}
.stockPopup .list .item .titleCorrelationC .title {
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30rpx;
font-weight: bold;
color: #222;
}
.stockPopup .list .item .titleCorrelationC .correlation {
background-color: #F973161A;
padding: 0 12rpx;
line-height: 40rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-weight: 500;
color: #F97316;
}
.stockPopup .list .item .sectorRateC .sector {
display: inline-block;
margin-right: 20rpx;
padding: 0 11rpx;
line-height: 30rpx;
border-radius: 5rpx;
border: solid 0.5px #F6604A;
font-size: 20rpx;
font-weight: 500;
color: #F6604A;
}
.stockPopup .list .item .sectorRateC .rateC {
background-color: #C00000;
display: inline-block;
padding: 0 10rpx;
height: 30rpx;
border-radius: 5rpx;
font-size: 20rpx;
font-weight: 500;
color: white;
}
.stockPopup .list .item .sectorRateC .rateC .arrow {
width: 15rpx;
height: auto;
}
.stockPopup .list .item .content {
margin-top: 16rpx;
font-size: 24rpx;
font-weight: 500;
color: #666;
}