1.28 更换echarts文件

This commit is contained in:
尚政杰
2026-01-28 14:43:26 +08:00
parent 3c6e5392cc
commit da90511b86
421 changed files with 45838 additions and 570 deletions

109
unpackage/dist/dev/mp-weixin/app.js vendored Normal file
View File

@@ -0,0 +1,109 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
const utils_share = require("./utils/share.js");
if (!Math) {
"./pages/index/index.js";
"./pages/invest/invest.js";
"./pages/concept/concept.js";
"./pages/mine/mine.js";
"./pages/mine/basicInfo/basicInfo.js";
"./pages/mine/feedback/feedback.js";
"./pages/mine/commentReply/commentReply.js";
"./pages/mine/investPreference/investPreference.js";
"./pages/index/eventDetails/eventDetails.js";
"./pages/invest/investDetails/investDetails.js";
"./pages/index/stockDetails/stockDetails.js";
"./pages/index/conceptDetails/conceptDetails.js";
"./pages/mine/followCollect/followCollect.js";
"./pages/mine/myLike/myLike.js";
"./pages/login/login.js";
"./pages/login/codeLogin/codeLogin.js";
"./pages/mine/web/web.js";
"./pages/concept/historicalTimeline/historicalTimeline.js";
"./pages/concept/hotStock/hotStock.js";
"./pages/concept/newsDetails/newsDetails.js";
"./pages/concept/reportDetails/reportDetails.js";
"./pages/geGuCenter/geGuCenter.js";
"./pages/ztfx/ztfx.js";
"./pages/geGuCenter/detail.js";
"./pagesMine/vip/vip.js";
"./pagesMine/vipMeal/vipMeal.js";
"./pagesStock/stockCenterDetails/stockCenterDetails.js";
"./pagesStock/stockCenterDetails/cwDetails.js";
"./pagesStock/stockCenterDetails/ztfx.js";
"./pagesStock/stockCenterDetails/bkydmx.js";
}
const _sfc_main = {
onLaunch: function() {
common_vendor.index.__f__("log", "at App.vue:6", "App Launch");
let windowInfo = common_vendor.index.getWindowInfo();
common_vendor.provide("statusHeight", windowInfo.statusBarHeight);
common_vendor.provide("windowWidth", windowInfo.windowWidth);
common_vendor.provide("safeAreaTop", windowInfo.safeArea.top);
var safeAreaBottom = windowInfo.safeAreaInsets.bottom;
let menuButtonInfo = common_vendor.index.getMenuButtonBoundingClientRect();
common_vendor.provide("navHeight", menuButtonInfo.bottom + menuButtonInfo.top - windowInfo.statusBarHeight);
common_vendor.provide("menuTop", menuButtonInfo.top);
common_vendor.provide("menuHeight", menuButtonInfo.height);
common_vendor.provide("isiPhoneX", safeAreaBottom == 34 ? true : false);
},
onShow: function() {
common_vendor.index.__f__("log", "at App.vue:19", "App Show");
this.updateManager();
},
onHide: function() {
common_vendor.index.__f__("log", "at App.vue:23", "App Hide");
},
globalData: {
mobileReg: /^1[3456789][0-9]{9}$/
},
methods: {
updateManager() {
const updateManager = common_vendor.index.getUpdateManager();
updateManager.onCheckForUpdate((res) => {
if (res.hasUpdate) {
common_vendor.index.showModal({
title: "更新提示",
content: "检测到新版本,是否下载新版本并重启小程序?",
success(res2) {
if (res2.confirm) {
updateManager.onUpdateReady(() => {
common_vendor.index.showModal({
title: "更新提示",
content: "新版本已经准备好,即将重启应用",
showCancel: false,
success(res3) {
if (res3.confirm) {
updateManager.applyUpdate();
}
}
});
});
}
},
fail(error) {
}
});
}
updateManager.onUpdateFailed(() => {
common_vendor.index.showModal({
title: "更新提示",
content: "新版本下载失败",
showCancel: false
});
});
});
}
}
};
function createApp() {
const app = common_vendor.createSSRApp(_sfc_main);
app.mixin(utils_share.share);
return {
app
};
}
createApp().app.mount("#app");
exports.createApp = createApp;
//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map

86
unpackage/dist/dev/mp-weixin/app.json vendored Normal file
View File

@@ -0,0 +1,86 @@
{
"pages": [
"pages/index/index",
"pages/invest/invest",
"pages/concept/concept",
"pages/mine/mine",
"pages/mine/basicInfo/basicInfo",
"pages/mine/feedback/feedback",
"pages/mine/commentReply/commentReply",
"pages/mine/investPreference/investPreference",
"pages/index/eventDetails/eventDetails",
"pages/invest/investDetails/investDetails",
"pages/index/stockDetails/stockDetails",
"pages/index/conceptDetails/conceptDetails",
"pages/mine/followCollect/followCollect",
"pages/mine/myLike/myLike",
"pages/login/login",
"pages/login/codeLogin/codeLogin",
"pages/mine/web/web",
"pages/concept/historicalTimeline/historicalTimeline",
"pages/concept/hotStock/hotStock",
"pages/concept/newsDetails/newsDetails",
"pages/concept/reportDetails/reportDetails",
"pages/geGuCenter/geGuCenter",
"pages/ztfx/ztfx",
"pages/geGuCenter/detail"
],
"subPackages": [
{
"root": "pagesMine",
"pages": [
"vip/vip",
"vipMeal/vipMeal"
]
},
{
"root": "pagesStock",
"pages": [
"stockCenterDetails/stockCenterDetails",
"stockCenterDetails/cwDetails",
"stockCenterDetails/ztfx",
"stockCenterDetails/bkydmx"
]
}
],
"window": {
"navigationStyle": "custom",
"backgroundColor": "#F8F8F8"
},
"tabBar": {
"custom": true,
"list": [
{
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png",
"text": "首页",
"pagePath": "pages/index/index"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "投资",
"pagePath": "pages/concept/concept"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "个股中心",
"pagePath": "pages/geGuCenter/geGuCenter"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "投资",
"pagePath": "pages/ztfx/ztfx"
},
{
"iconPath": "/static/icon/tabbar/mine.png",
"selectedIconPath": "/static/icon/tabbar/mine_s.png",
"text": "我的",
"pagePath": "pages/mine/mine"
}
]
},
"usingComponents": {}
}

78
unpackage/dist/dev/mp-weixin/app.wxss vendored Normal file
View File

@@ -0,0 +1,78 @@
/*每个页面公共css */
.flex
{
display: flex;
align-items: center;
}
.flexCenter
{
display: flex;
align-items: center;
justify-content: center;
}
.flexColumn
{
display: flex;
flex-direction: column;
}
.flexColumnCenter
{
display: flex;
flex-direction: column;
align-items: center;
}
.flex1
{
flex: 1;
}
.flexWrap
{
display: flex;
flex-wrap: wrap;
}
.flexStretch
{
display: flex;
align-items: stretch;
}
.between
{
justify-content: space-between;
}
.flexEnd
{
display: flex;
align-items: center;
justify-content: flex-end;
}
.relative
{
position: relative;
}
.absolute
{
position: absolute;
}
.fixed
{
position: fixed;
}
view,input,textarea,scroll-view,swiper
{
box-sizing: border-box;
}
button
{
background-color: transparent;
}
button::after
{
border: none;
}
::-webkit-scrollbar
{
color: transparent;
width: 0;
}
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

View File

@@ -0,0 +1,240 @@
"use strict";
const _imports_0$9 = "/static/image/index/conceptTopBg.png";
const _imports_1$j = "/static/icon/home/conceptCenter/search.png";
const _imports_3$e = "/static/icon/home/conceptCenter/conceptScreenArrow.png";
const _imports_1$i = "/static/icon/home/downArrow.png";
const _imports_2$f = "/static/icon/home/upArrow.png";
const _imports_3$d = "/static/icon/home/browser.png";
const _imports_11$4 = "/static/icon/home/like.png";
const _imports_7$3 = "/static/icon/home/collect.png";
const _imports_2$e = "/static/icon/backBlack.png";
const _imports_9$4 = "/static/icon/home/dateRange.png";
const _imports_10$2 = "/static/icon/home/industrySearch.png";
const _imports_11$3 = "/static/icon/home/industry_s.png";
const _imports_12$3 = "/static/icon/home/level_s.png";
const _imports_2$d = "/static/icon/invest/upArrow.png";
const _imports_4$c = "/static/icon/invest/downArrow.png";
const _imports_4$b = "/static/image/index/noData.png";
const _imports_5$7 = "/static/icon/home/monthLeftArrow.png";
const _imports_6$1 = "/static/icon/home/monthRightArrow.png";
const _imports_2$c = "/static/icon/home/conceptCenter/sortType.png";
const _imports_4$a = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_1$h = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_9$3 = "/static/icon/home/close.png";
const _imports_7$2 = "/static/icon/home/conceptCenter/statistics.png";
const _imports_8$3 = "/static/icon/home/conceptCenter/rank1.png";
const _imports_9$2 = "/static/icon/home/conceptCenter/rank2.png";
const _imports_10$1 = "/static/icon/home/conceptCenter/rank3.png";
const _imports_11$2 = "/static/icon/home/conceptCenter/rankChg.png";
const _imports_12$2 = "/static/icon/home/conceptCenter/calendar.png";
const _imports_13$2 = "/static/icon/home/conceptCenter/browse.png";
const _imports_12$1 = "/static/icon/home/sortArrow.png";
const _imports_0$8 = "/static/icon/home/conceptCenter/pre.png";
const _imports_1$g = "/static/icon/home/conceptCenter/next.png";
const _imports_13$1 = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_14$1 = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_15$1 = "/static/icon/home/conceptCenter/free_s.png";
const _imports_16$1 = "/static/icon/home/conceptCenter/pro_s.png";
const _imports_1$f = "/static/icon/mine/infoArrow.png";
const _imports_2$b = "/static/image/mine/vipBg.png";
const _imports_3$c = "/static/icon/mine/menuArrow.png";
const _imports_4$9 = "/static/image/mine/service.png";
const _imports_1$e = "/static/icon/mine/basicInfo/edit.png";
const _imports_2$a = "/static/icon/mine/basicInfo/downArrow.png";
const _imports_1$d = "/static/icon/home/conceptCenter/lock.png";
const _imports_3$b = "/static/icon/home/expectScore.png";
const _imports_4$8 = "/static/icon/home/expectScoreTips.png";
const _imports_5$6 = "/static/icon/home/expectScoreDot.png";
const _imports_8$2 = "/static/icon/home/eventDetails/like.png";
const _imports_9$1 = "/static/icon/home/eventDetails/collect.png";
const _imports_4$7 = "/static/icon/home/collect_s.png";
const _imports_1$c = "/static/icon/home/like_s.png";
const _imports_0$7 = "/static/image/login/logo.png";
const _imports_3$a = "/static/icon/login/select_s.png";
const _imports_4$6 = "/static/icon/login/select.png";
const _imports_1$b = "/static/icon/login/mobile.png";
const _imports_2$9 = "/static/icon/login/code.png";
const _imports_3$9 = "/static/icon/home/conceptCenter/chgDown.png";
const _imports_4$5 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_5$5 = "/static/icon/home/conceptCenter/newsReport.png";
const _imports_1$a = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_2$8 = "/static/icon/home/conceptCenter/reasonExpand.png";
const _imports_3$8 = "/static/icon/home/conceptCenter/reasonRetract.png";
const _imports_3$7 = "/assets/ydjk-icon.9712ef19.png";
const _imports_5$4 = "/assets/ydjk-zs.f6ba6c32.png";
const _imports_1$9 = "/pagesStock/static/icon/ai-icon.png";
const _imports_2$7 = "/pagesStock/static/icon/ai-icon-1.png";
const _imports_3$6 = "/pagesStock/static/icon/all-icon-3.png";
const _imports_1$8 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_5$3 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_1$7 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_2$6 = "/pagesMine/static/image/vip/noVipTopBg.png";
const _imports_3$5 = "/pagesMine/static/icon/vip/titleLeft_v.png";
const _imports_4$4 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$2 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_6 = "/pagesMine/static/icon/vip/titleRight.png";
const _imports_7$1 = "/pagesMine/static/icon/vip/step1_v.png";
const _imports_8$1 = "/pagesMine/static/icon/vip/step1.png";
const _imports_9 = "/pagesMine/static/icon/vip/step2_v.png";
const _imports_10 = "/pagesMine/static/icon/vip/step2.png";
const _imports_11$1 = "/pagesMine/static/icon/vip/step3_v.png";
const _imports_12 = "/pagesMine/static/icon/vip/step3.png";
const _imports_13 = "/pagesMine/static/icon/vip/step4_v.png";
const _imports_14 = "/pagesMine/static/icon/vip/step4.png";
const _imports_15 = "/pagesMine/static/icon/vip/investQuestion.png";
const _imports_16 = "/pagesMine/static/icon/vip/industrialResearch.png";
const _imports_17 = "/pagesMine/static/icon/vip/operatingDecision.png";
const _imports_7 = "/pagesMine/static/icon/vip/notContain.png";
const _imports_8 = "/pagesMine/static/icon/vip/contain.png";
const _imports_2$5 = "/pagesStock/static/icon/establishedTime.png";
const _imports_3$4 = "/pagesStock/static/icon/registeredCapital.png";
const _imports_4$3 = "/pagesStock/static/icon/location.png";
const _imports_5$1 = "/pagesStock/static/icon/visitWebsite.png";
const _imports_2$4 = "/pagesStock/static/icon/contrast.png";
const _imports_3$3 = "/pagesStock/static/icon/optional.png";
const _imports_4$2 = "/pagesStock/static/icon/share.png";
const _imports_1$6 = "/pagesStock/static/icon/existStatus.png";
const _imports_11 = "/pagesStock/static/icon/yRightArrow.png";
const _imports_1$5 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_1$4 = "/static/icon/back.png";
const _imports_1$3 = "/pagesStock/static/icon/all-icon-2.png";
const _imports_2$3 = "/pagesStock/static/icon/downArrow.png";
const _imports_3$2 = "/pagesStock/static/icon/upArrow.png";
const _imports_0$6 = "/pagesStock/static/icon/female.png";
const _imports_1$2 = "/pagesStock/static/icon/male.png";
const _imports_2$2 = "/pagesStock/static/icon/lookMoreArrow.png";
const _imports_0$5 = "/pagesStock/static/icon/logOffStatus.png";
const _imports_0$4 = "/pagesStock/static/icon/industryRank.png";
const _imports_0$3 = "/pagesStock/static/icon/rightArrow.png";
const _imports_0$2 = "/pagesStock/static/icon/shangJiantou.png";
const _imports_1$1 = "/pagesStock/static/icon/xiaJiantou.png";
const _imports_4$1 = "/pagesStock/static/icon/yuan_shang.png";
const _imports_5 = "/pagesStock/static/icon/yuan_jiang.png";
const _imports_0$1 = "/pagesStock/static/icon/cwfx-1.png";
const _imports_2$1 = "/pagesStock/static/icon/all-icon.png";
const _imports_3$1 = "/pagesStock/static/icon/all-down.png";
const _imports_4 = "/pagesStock/static/icon/cwfx-2.png";
const _imports_0 = "/pagesStock/static/icon/news-search.png";
const _imports_1 = "/pagesStock/static/icon/newsTime.png";
const _imports_2 = "/pagesStock/static/icon/newsEyes.png";
const _imports_3 = "/pagesStock/static/icon/newsFire.png";
exports._imports_0 = _imports_0$9;
exports._imports_0$1 = _imports_0$8;
exports._imports_0$2 = _imports_0$7;
exports._imports_0$3 = _imports_0$6;
exports._imports_0$4 = _imports_0$5;
exports._imports_0$5 = _imports_0$4;
exports._imports_0$6 = _imports_0$3;
exports._imports_0$7 = _imports_0$2;
exports._imports_0$8 = _imports_0$1;
exports._imports_0$9 = _imports_0;
exports._imports_1 = _imports_1$j;
exports._imports_1$1 = _imports_1$i;
exports._imports_1$10 = _imports_1$9;
exports._imports_1$11 = _imports_1$8;
exports._imports_1$12 = _imports_1$7;
exports._imports_1$13 = _imports_1$6;
exports._imports_1$14 = _imports_1$5;
exports._imports_1$15 = _imports_1$4;
exports._imports_1$16 = _imports_1$3;
exports._imports_1$17 = _imports_1$2;
exports._imports_1$18 = _imports_1$1;
exports._imports_1$19 = _imports_1;
exports._imports_1$2 = _imports_1$g;
exports._imports_1$3 = _imports_1$h;
exports._imports_1$4 = _imports_1$f;
exports._imports_1$5 = _imports_1$e;
exports._imports_1$6 = _imports_1$d;
exports._imports_1$7 = _imports_1$c;
exports._imports_1$8 = _imports_1$b;
exports._imports_1$9 = _imports_1$a;
exports._imports_10 = _imports_10$2;
exports._imports_10$1 = _imports_10$1;
exports._imports_10$2 = _imports_10;
exports._imports_11 = _imports_11$4;
exports._imports_11$1 = _imports_11$3;
exports._imports_11$2 = _imports_11$2;
exports._imports_11$3 = _imports_11$1;
exports._imports_11$4 = _imports_11;
exports._imports_12 = _imports_12$3;
exports._imports_12$1 = _imports_12$1;
exports._imports_12$2 = _imports_12$2;
exports._imports_12$3 = _imports_12;
exports._imports_13 = _imports_13$1;
exports._imports_13$1 = _imports_13$2;
exports._imports_13$2 = _imports_13;
exports._imports_14 = _imports_14$1;
exports._imports_14$1 = _imports_14;
exports._imports_15 = _imports_15$1;
exports._imports_15$1 = _imports_15;
exports._imports_16 = _imports_16$1;
exports._imports_16$1 = _imports_16;
exports._imports_17 = _imports_17;
exports._imports_2 = _imports_2$e;
exports._imports_2$1 = _imports_2$f;
exports._imports_2$10 = _imports_2$4;
exports._imports_2$11 = _imports_2$5;
exports._imports_2$12 = _imports_2$3;
exports._imports_2$13 = _imports_2$2;
exports._imports_2$14 = _imports_2$1;
exports._imports_2$15 = _imports_2;
exports._imports_2$2 = _imports_2$d;
exports._imports_2$3 = _imports_2$c;
exports._imports_2$4 = _imports_2$b;
exports._imports_2$5 = _imports_2$a;
exports._imports_2$6 = _imports_2$9;
exports._imports_2$7 = _imports_2$8;
exports._imports_2$8 = _imports_2$7;
exports._imports_2$9 = _imports_2$6;
exports._imports_3 = _imports_3$e;
exports._imports_3$1 = _imports_3$d;
exports._imports_3$10 = _imports_3$3;
exports._imports_3$11 = _imports_3$4;
exports._imports_3$12 = _imports_3$2;
exports._imports_3$13 = _imports_3$1;
exports._imports_3$14 = _imports_3;
exports._imports_3$2 = _imports_3$c;
exports._imports_3$3 = _imports_3$b;
exports._imports_3$4 = _imports_3$a;
exports._imports_3$5 = _imports_3$9;
exports._imports_3$6 = _imports_3$8;
exports._imports_3$7 = _imports_3$7;
exports._imports_3$8 = _imports_3$6;
exports._imports_3$9 = _imports_3$5;
exports._imports_4 = _imports_4$b;
exports._imports_4$1 = _imports_4$c;
exports._imports_4$10 = _imports_4$3;
exports._imports_4$11 = _imports_4$1;
exports._imports_4$12 = _imports_4;
exports._imports_4$2 = _imports_4$a;
exports._imports_4$3 = _imports_4$9;
exports._imports_4$4 = _imports_4$8;
exports._imports_4$5 = _imports_4$7;
exports._imports_4$6 = _imports_4$6;
exports._imports_4$7 = _imports_4$5;
exports._imports_4$8 = _imports_4$4;
exports._imports_4$9 = _imports_4$2;
exports._imports_5 = _imports_5$7;
exports._imports_5$1 = _imports_5$6;
exports._imports_5$2 = _imports_5$5;
exports._imports_5$3 = _imports_5$4;
exports._imports_5$4 = _imports_5$3;
exports._imports_5$5 = _imports_5$2;
exports._imports_5$6 = _imports_5$1;
exports._imports_5$7 = _imports_5;
exports._imports_6 = _imports_6$1;
exports._imports_6$1 = _imports_6;
exports._imports_7 = _imports_7$3;
exports._imports_7$1 = _imports_7$2;
exports._imports_7$2 = _imports_7$1;
exports._imports_7$3 = _imports_7;
exports._imports_8 = _imports_8$3;
exports._imports_8$1 = _imports_8$2;
exports._imports_8$2 = _imports_8$1;
exports._imports_8$3 = _imports_8;
exports._imports_9 = _imports_9$4;
exports._imports_9$1 = _imports_9$3;
exports._imports_9$2 = _imports_9$2;
exports._imports_9$3 = _imports_9$1;
exports._imports_9$4 = _imports_9;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,430 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "LCCalendar",
data() {
return {
weekList: ["日", "一", "二", "三", "四", "五", "六"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: "",
//结束日期
selectYear: "",
Month: "",
calendarApiData: []
// 新增:存储接口返回的日历数据
};
},
created() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01";
this.endDateStr = this.selectDateStr = `${currentYear}-${currentMonth > 9 ? currentMonth : "0" + currentMonth}-${currentDay > 9 ? currentDay : "0" + currentDay}`;
this.getYesterdayDateData();
this.generateMonthDateListData();
this.emitDateChange(currentYear, currentMonth, currentDay, this.getTodayItem(currentYear, currentMonth, currentDay));
},
mounted() {
this.getCalendarCombinedData();
},
methods: {
/**
* 获取当天的item数据合并接口数据
*/
getTodayItem(year, month, day) {
const targetDate = `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day}`;
const currentMonthList = this.monthDateList[this.selectMonthIndex] || [];
const localItem = currentMonthList.find((item) => item.date === targetDate) || null;
if (!localItem)
return null;
const apiData = this.getCalendarItemByDate(targetDate) || {};
return {
...localItem,
zt_count: apiData.zt_count || 0,
top_sector: apiData.top_sector || "-",
// 可补充其他接口字段
zaban_rate: apiData.zaban_rate || "0%"
// 示例:炸板率
};
},
/**
* 触发日期变更事件传递包含接口数据的item
*/
emitDateChange(year, month, day, item) {
const yearMonth = `${year}-${month > 9 ? month : "0" + month}`;
const fullDate = `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day}`;
this.$emit("date-change", {
yearMonth,
fullDate,
item: item || {
// 兜底无item时赋值空对象+默认值
date: fullDate,
year,
month,
day,
zt_count: 0,
top_sector: "-",
zaban_rate: "0%"
},
year,
month,
day
});
},
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
selectDate.getFullYear();
selectDate.getMonth() + 1;
selectDate.getDate();
this.selectYear = selectDate.getFullYear();
this.Month = selectDate.getMonth() + 1;
},
/**
* 根据日期查找接口中的日历数据
* @param {String} dateStr 格式2026-01-01
* @returns {Object} 匹配的日历数据
*/
getCalendarItemByDate(dateStr) {
if (!dateStr || !this.calendarApiData.length)
return null;
const formatDate = dateStr.replace(/-/g, "");
return this.calendarApiData.find((item) => item.date === formatDate) || null;
},
/**
* 根据zt_count和是否休市获取背景色样式类
* @param {Number} count zt_count数值
* @param {Number} index 日期下标(判断是否休市)
* @returns {String} 样式类名
*/
getZtCountBgClass(count, index) {
if (index % 7 === 0 || index % 7 === 6 || count === 0 || count === null || count === void 0) {
return "";
}
if (count >= 80)
return "zt-bg-80";
if (count >= 60)
return "zt-bg-60";
if (count >= 40)
return "zt-bg-40";
return "zt-bg-40-less";
},
/**
* 根据zt_count值获取文字颜色
* @param {Number} count zt_count数值
* @param {Number} index 日期下标(用于判断周末)
* @returns {String} 文字颜色值
*/
getZtCountTextColor(count, index) {
if (index !== void 0 && (index % 7 === 0 || index % 7 === 6)) {
return "#999999";
}
if (count === void 0 || count === null || count === 0) {
return "#2A2A2A";
}
if (count >= 80)
return "#5D288F";
if (count >= 60)
return "#BE1B1B";
if (count >= 40)
return "#F59B38";
return "#2958AA";
},
/**
* 获取日历接口数据
*/
async getCalendarCombinedData() {
try {
let param = {
year: this.selectYear,
month: this.Month
};
const res = await request_api.calendarCombinedData(param);
if (res.success && Array.isArray(res.data)) {
this.calendarApiData = res.data;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:258", "日历数据加载成功", this.calendarApiData);
if (this.selectDateStr) {
const [year, month, day] = this.selectDateStr.split("-").map(Number);
this.emitDateChange(year, month, day, this.getTodayItem(year, month, day));
}
} else {
this.calendarApiData = [];
common_vendor.index.__f__("warn", "at components/LCCalendar/LCCalendar.vue:266", "日历接口返回数据格式异常", res);
}
} catch (error) {
this.calendarApiData = [];
common_vendor.index.__f__("error", "at components/LCCalendar/LCCalendar.vue:270", "获取日历数据失败", error);
}
},
/**
* 生成日期数组
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() + 1;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year: i,
month: newMonth,
day: newDay,
isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false,
isCurrentMonth: true,
isLastDay: newDay == currentMonthDay ? true : false,
timestamp: time
});
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() + 1;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
this.selectYear = year;
this.Month = month;
this.getCalendarCombinedData();
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:405", "点击上个月");
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:434", "点击下个月");
this.selectYear = year;
this.Month = month;
this.getCalendarCombinedData();
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:454", "月份变更");
this.selectYear = selectYear;
this.Month = selectMonth;
this.getCalendarCombinedData();
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item, index) {
if (!item.isCurrentMonth)
return;
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
const apiData = this.getCalendarItemByDate(item.date) || {};
const mergedItem = {
...item,
// 本地日期基础数据
zt_count: apiData.zt_count || 0,
// 涨停家数默认0
top_sector: apiData.top_sector || "-",
// 热门板块,默认'-'
zaban_rate: apiData.zaban_rate || "0%",
// 炸板率,示例字段
isWeekend: index % 7 === 0 || index % 7 === 6
// 是否周末
};
this.chgStockData = mergedItem;
const [year, month, day] = item.date.split("-").map(Number);
this.emitDateChange(year, month, day, mergedItem);
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:482", "点击某天(含接口数据)", mergedItem);
}
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$1,
b: common_vendor.o(($event) => $options.clickPreMonth()),
c: common_assets._imports_1$16,
d: common_vendor.t($data.selectDateStr),
e: common_assets._imports_1$2,
f: common_vendor.o(($event) => $options.clickNextMonth()),
g: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
h: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? common_vendor.e({
b: common_vendor.t(item.day),
c: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : common_vendor.e({
d: ((_a = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _a.zt_count) > 0
}, ((_b = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _b.zt_count) > 0 ? {
e: common_vendor.t((_c = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _c.zt_count),
f: $options.getZtCountTextColor((_d = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _d.zt_count),
g: common_vendor.t(((_e = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _e.top_sector) || "-"),
h: $options.getZtCountTextColor((_f = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _f.zt_count)
} : {}), {
i: common_vendor.n($options.getZtCountBgClass((_g = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _g.zt_count))
}) : common_vendor.e({
j: !item.isCurrentMonth
}, !item.isCurrentMonth ? {} : common_vendor.e({
k: common_vendor.t(item.day),
l: index % 7 == 0 || index % 7 == 6 ? "#999999" : "#2A2A2A",
m: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : common_vendor.e({
n: ((_h = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _h.zt_count) > 0
}, ((_i = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _i.zt_count) > 0 ? {
o: common_vendor.t((_j = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _j.zt_count),
p: $options.getZtCountTextColor((_k = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _k.zt_count),
q: common_vendor.t(((_l = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _l.top_sector) || "-"),
r: $options.getZtCountTextColor((_m = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _m.zt_count)
} : {}), {
s: common_vendor.n($options.getZtCountBgClass((_n = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _n.zt_count))
})), {
t: index,
v: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/LCCalendar/LCCalendar.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{b}}"><image class="icon" src="{{a}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month"><view style="display:flex;align-items:center;justify-content:center"><image style="width:26rpx;height:26rpx;margin-right:10rpx" src="{{c}}" mode="widthFix"></image><view style="color:#2B2B2B;font-size:32rpx;font-weight:bold">{{d}}</view></view></picker></view><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view></view><view style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx;margin:20rpx 0"><view wx:for="{{g}}" wx:for-item="item" wx:key="b" style="display:flex;align-items:center;justify-content:center;font-size:24rpx;color:#292621;font-weight:500">{{item.a}}</view></view><view class="monthDateList" style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="t" class="item" bindtap="{{item.v}}"><block wx:if="{{item.a}}"><view class="{{['date', 'select', item.i]}}">{{item.b}} <view wx:if="{{item.c}}" style="color:#999999;font-size:18rpx">休市 </view><view wx:else style="text-align:center"><view wx:if="{{item.d}}"><view style="{{'font-size:18rpx' + ';' + ('color:' + item.f)}}">{{item.e}}家 </view><view style="{{'font-size:16rpx' + ';' + ('color:' + item.h)}}">{{item.g}}</view></view></view></view></block><block wx:else><block wx:if="{{item.j}}"></block><block wx:else><view class="{{['date', item.s]}}"><view style="{{'color:' + item.l}}">{{item.k}}</view><view wx:if="{{item.m}}" style="color:#999999;font-size:18rpx">休市 </view><view wx:else style="text-align:center"><view wx:if="{{item.n}}"><view style="{{'font-size:18rpx' + ';' + ('color:' + item.p)}}">{{item.o}}家 </view><view style="{{'font-size:16rpx' + ';' + ('color:' + item.r)}}">{{item.q}}</view></view></view></view></block></block></view></view></view>

View File

@@ -0,0 +1,87 @@
.dateC {
background-color: white;
box-shadow: 0 5rpx 10rpx 0 rgba(127, 127, 127, 0.1);
box-sizing: border-box;
}
.dateC .yearMonthC {
height: 70rpx;
border-radius: 35rpx;
}
.dateC .yearMonthC .btn {
padding: 0 32rpx;
}
.dateC .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.dateC .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.dateC .weekList .item {
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.dateC .monthDateList .item .date {
background-color: #f8f8f8;
padding: 10rpx 0;
border-radius: 10rpx;
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100%;
}
.dateC .monthDateList .item .date .chg {
font-size: 18rpx;
}
.dateC .monthDateList .item .date .chg.up {
color: #EC3440;
}
.dateC .monthDateList .item .date .chg.down {
color: #38A169;
}
.dateC .monthDateList .item .date.zt-bg-80 {
background-color: #FAEEFF;
}
.dateC .monthDateList .item .date.zt-bg-60 {
background-color: #FFE9E9;
}
.dateC .monthDateList .item .date.zt-bg-40 {
background-color: #FFF8F0;
}
.dateC .monthDateList .item .date.zt-bg-40-less {
background-color: #EEF4FF;
}
.dateC .monthDateList .item .date.up {
background-color: #FFD6D9;
}
.dateC .monthDateList .item .date.down {
background-color: #CEF1DE;
}
.dateC .monthDateList .item .date.select.up {
background-color: #EC3440;
color: white;
}
.dateC .monthDateList .item .date.select.up .chg {
color: white;
}
.dateC .monthDateList .item .date.select.down {
background-color: #38A169;
color: white;
}
.dateC .monthDateList .item .date.select.down .chg {
color: white;
}
.dateC .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}

View File

@@ -0,0 +1,258 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "LCCalendar",
data() {
return {
weekList: ["日", "一", "二", "三", "四", "五", "六"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: ""
//结束日期
};
},
created() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01";
this.endDateStr = this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.generateMonthDateListData();
},
methods: {
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
let selectYear = selectDate.getFullYear();
let selectMonth = selectDate.getMonth() + 1;
let selectDay = selectDate.getDate();
this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay);
},
/**
* 生成日期数组
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() + 1;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year: i,
month: newMonth,
day: newDay,
isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false,
isCurrentMonth: true,
isLastDay: newDay == currentMonthDay ? true : false,
timestamp: time
});
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() + 1;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:224", "点击上个月");
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:253", "点击下个月");
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:270", "月份变更");
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (!item.isCurrentMonth)
return;
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
this.chgStockData = item;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:281", "点击某天");
}
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$1,
b: common_vendor.o(($event) => $options.clickPreMonth()),
c: common_vendor.t($data.selectMonth),
d: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
e: common_assets._imports_1$2,
f: common_vendor.o(($event) => $options.clickNextMonth()),
g: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
h: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? {
b: common_vendor.t(item.day),
c: common_vendor.n("date select up")
} : common_vendor.e({
d: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
e: common_vendor.t(item.day)
} : {
f: common_vendor.t(item.day),
g: common_vendor.n("date up")
}), {
h: index,
i: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/LCCalendar2/LCCalendar2.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{b}}"><image class="icon" src="{{a}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{d}}"><view style="display:flex;align-items:center;justify-content:center"><view style="color:#2B2B2B;font-size:32rpx;font-weight:bold">{{c}}</view></view></picker></view><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view></view><view style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx;margin:20rpx 0"><view wx:for="{{g}}" wx:for-item="item" wx:key="b" style="display:flex;align-items:center;justify-content:center;font-size:24rpx;color:#292621;font-weight:500">{{item.a}}</view></view><view class="monthDateList" style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="h" class="item" bindtap="{{item.i}}"><block wx:if="{{item.a}}"><view class="{{item.c}}">{{item.b}}</view></block><block wx:else><block wx:if="{{item.d}}"><view class="date notCurrentMonth">{{item.e}}</view></block><block wx:else><view class="{{item.g}}"><view>{{item.f}}</view></view></block></block></view></view></view>

View File

@@ -0,0 +1,78 @@
.dateC {
background-color: white;
box-sizing: border-box;
}
.dateC .yearMonthC {
background-color: #F7F7F7;
height: 70rpx;
border-radius: 35rpx;
}
.dateC .yearMonthC .btn {
padding: 0 32rpx;
}
.dateC .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.dateC .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.dateC .weekList .item {
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.dateC .monthDateList .item {
height: 72rpx;
}
.dateC .monthDateList .item .date {
background-color: #f8f8f8;
padding: 10rpx 0;
border-radius: 10rpx;
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100%;
}
.dateC .monthDateList .item .date .chg {
font-size: 18rpx;
}
.dateC .monthDateList .item .date .chg.up {
color: #EC3440;
}
.dateC .monthDateList .item .date .chg.down {
color: #38A169;
}
.dateC .monthDateList .item .date.up {
background-color: #f8f8f8;
}
.dateC .monthDateList .item .date.down {
background-color: #CEF1DE;
}
.dateC .monthDateList .item .date.select.up {
background-color: #F2C367;
color: white;
}
.dateC .monthDateList .item .date.select.up .chg {
color: white;
}
.dateC .monthDateList .item .date.select.down {
background-color: #38A169;
color: white;
}
.dateC .monthDateList .item .date.select.down .chg {
color: white;
}
.dateC .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}

View File

@@ -0,0 +1,42 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "cwfx-view",
data() {
return {};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$8,
b: common_assets._imports_1$2,
c: common_vendor.f(["净资产收益率(ROE)%", "净资产收益率(扣非)%", "净资产收益率(加权)%", "总资产报酬率(ROA)%", "毛利率%", "净利率%", "营业利润率%", "成本费用利润率%"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
};
}),
d: common_assets._imports_2$14,
e: common_assets._imports_3$13,
f: common_assets._imports_4$12,
g: common_assets._imports_1$2,
h: common_vendor.f(["每股收益(EPS)", "基本每股收益", "稀释每股收益", "扣非每股收益", "每股净资产", "每股经营现金流", "每股资本公积", "每股未分配利润"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
};
}),
i: common_assets._imports_2$14,
j: common_assets._imports_3$13
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/cwfx-view/cwfx-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{a}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">盈利能力</view><image src="{{b}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{c}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{d}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{e}}" mode="widthFix"></image></view></view><view style="height:400rpx;display:flex;align-items:center;justify-content:center;background-color:red"> 柱状图占位 </view></view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{f}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">每股指标</view><image src="{{g}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{i}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{j}}" mode="widthFix"></image></view></view><view style="height:400rpx;display:flex;align-items:center;justify-content:center;background-color:blue"> 柱状图占位 </view></view></view>

View File

@@ -0,0 +1,69 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "cwsj-view",
data() {
return {};
}
};
if (!Array) {
const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
_easycom_l_echart2();
}
const _easycom_l_echart = () => "../../uni_modules/lime-echart/components/l-echart/l-echart.js";
if (!Math) {
_easycom_l_echart();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$8,
b: common_assets._imports_1$2,
c: common_vendor.f(["货币资金", "所有者权益", "关键指标"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
};
}),
d: common_assets._imports_2$14,
e: common_assets._imports_3$13,
f: common_vendor.o(($event) => _ctx.itemClick(0)),
g: common_assets._imports_0$8,
h: common_assets._imports_1$2,
i: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
};
}),
j: common_assets._imports_2$14,
k: common_assets._imports_3$13,
l: common_vendor.o(($event) => _ctx.itemClick(1)),
m: common_assets._imports_0$8,
n: common_assets._imports_1$2,
o: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
};
}),
p: common_assets._imports_2$14,
q: common_assets._imports_3$13,
r: common_assets._imports_2$14,
s: common_assets._imports_3$13,
t: common_vendor.sr("chartRef1", "63ca7cac-0"),
v: common_vendor.o(($event) => _ctx.itemClick(2))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/cwsj-view/cwsj-view.js.map

View File

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"l-echart": "../../uni_modules/lime-echart/components/l-echart/l-echart"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,130 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "cyl-view",
data() {
return {
isShow: false,
center_index: 0,
types: [
{
title: "上游供应链",
count: 0,
desc: "原材料与供应商",
type: "upstream"
},
{
title: "核心企业",
count: 0,
desc: "公司主体与产品",
type: "core"
},
{
title: "下游客户",
count: 0,
desc: "客户与终端市场",
type: "downstream"
}
],
typeIndex: 0
};
},
props: {
valueChainAnalysisInfo: Object,
upstreamList: Array,
//上游供应链
coreEnterpriseList: Array,
//核心企业
downstreamList: Array,
//下游客户
totalNodes: Number
//总节点数
},
watch: {
valueChainAnalysisInfo(newValue) {
this.types[0].count = newValue.upstream_nodes;
this.types[1].count = newValue.company_nodes;
this.types[2].count = newValue.downstream_nodes;
}
},
methods: {
changeCenterIndex(index) {
this.center_index = index;
},
clickAction(item) {
this.$emit("detail", item);
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.t($props.totalNodes),
b: $data.center_index == 0 ? 1 : "",
c: common_vendor.o(($event) => $options.changeCenterIndex(0)),
d: $data.center_index == 1 ? 1 : "",
e: common_vendor.o(($event) => $options.changeCenterIndex(1)),
f: common_vendor.f($data.types, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.title),
b: common_vendor.t(item.count),
c: common_vendor.n("num " + ($data.typeIndex == index ? item.type : "")),
d: common_vendor.t(item.desc),
e: common_vendor.n("contentC flexColumnCenter flex1 " + ($data.typeIndex == index ? item.type : "")),
f: common_vendor.o(($event) => $data.typeIndex = index, index),
g: index != $data.types.length - 1
}, index != $data.types.length - 1 ? {
h: common_assets._imports_0$6
} : {}, {
i: index
});
}),
g: $data.typeIndex == 0
}, $data.typeIndex == 0 ? {
h: common_vendor.f($props.upstreamList, (item, index, i0) => {
return {
a: common_vendor.t(item.node_name),
b: common_vendor.t(item.node_description),
c: common_vendor.t(item.node_type),
d: common_vendor.t(item.market_share),
e: `${item.importance_score}%`,
f: common_vendor.t(item.importance_score),
g: index,
h: common_vendor.o(($event) => $options.clickAction(item), index)
};
})
} : {}, {
i: $data.typeIndex == 1
}, $data.typeIndex == 1 ? {
j: common_vendor.f($props.coreEnterpriseList, (item, index, i0) => {
return {
a: common_vendor.t(item.node_name),
b: common_vendor.t(item.node_description),
c: common_vendor.t(item.node_type),
d: common_vendor.t(item.market_share),
e: `${item.importance_score}%`,
f: common_vendor.t(item.importance_score),
g: index,
h: common_vendor.o(($event) => $options.clickAction(item), index)
};
})
} : {}, {
k: $data.typeIndex == 2
}, $data.typeIndex == 2 ? {
l: common_vendor.f($props.downstreamList, (item, index, i0) => {
return {
a: common_vendor.t(item.node_name),
b: common_vendor.t(item.node_description),
c: common_vendor.t(item.node_type),
d: common_vendor.t(item.market_share),
e: `${item.importance_score}%`,
f: common_vendor.t(item.importance_score),
g: index,
h: common_vendor.o(($event) => $options.clickAction(item), index)
};
})
} : {});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/cyl-view/cyl-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view class="bottom"><view class="type flex"><view wx:for="{{f}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{g}}"><view wx:for="{{h}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{i}}"><view wx:for="{{j}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{k}}"><view wx:for="{{l}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view></view>

View File

@@ -0,0 +1,194 @@
.cyl_view {
padding: 20rpx;
}
.cyl_view .top {
font-weight: 500;
}
.cyl_view .top .child_1 {
color: #2B2B2B;
font-size: 28rpx;
font-weight: bold;
}
.cyl_view .top .child_2 {
color: #71675D;
font-size: 24rpx;
margin: 0 10rpx;
}
.cyl_view .top .child_3 {
border: 1rpx solid #F3C368;
border-radius: 5rpx;
padding: 0 5rpx;
color: #F2C369;
font-size: 24rpx;
}
.cyl_view .center {
margin: 20rpx 0;
display: flex;
align-items: center;
justify-content: space-evenly;
font-weight: 500;
}
.cyl_view .center .child {
background-color: #F5F5F5;
border-radius: 10rpx 10rpx 0 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #939393;
padding: 10rpx 40rpx;
}
.cyl_view .center .child.action {
background-color: #F2C369;
color: #070707;
}
.cyl_view .bottom .type .item {
border-radius: 10rpx;
width: 100%;
padding: 26rpx 0;
}
.cyl_view .bottom .type .item .contentC {
background-color: #FAFAFC;
justify-content: center;
height: 120rpx;
border-radius: 10rpx;
}
.cyl_view .bottom .type .item .contentC .titleNumC {
font-size: 24rpx;
font-weight: bold;
color: #2B2B2B;
}
.cyl_view .bottom .type .item .contentC .titleNumC .num {
background-color: #F2C369;
margin-left: 6rpx;
padding: 0 5rpx;
min-width: 24rpx;
border-radius: 5rpx;
font-weight: 500;
text-align: center;
}
.cyl_view .bottom .type .item .contentC .titleNumC .num.upstream {
background-color: #FF5501;
color: white;
}
.cyl_view .bottom .type .item .contentC .titleNumC .num.core {
background-color: #175CE6;
color: white;
}
.cyl_view .bottom .type .item .contentC .titleNumC .num.downstream {
background-color: #1DB26F;
color: white;
}
.cyl_view .bottom .type .item .contentC .des {
margin-top: 10rpx;
font-size: 22rpx;
font-weight: 500;
color: #999999;
}
.cyl_view .bottom .type .item .contentC.upstream {
background-color: #FFF4EF;
border: solid 1rpx #FF5501;
}
.cyl_view .bottom .type .item .contentC.core {
background-color: #F2F6FD;
border: solid 1rpx #175CE6;
}
.cyl_view .bottom .type .item .contentC.downstream {
background-color: #E7F5F0;
border: solid 1rpx #1DB26F;
}
.cyl_view .bottom .type .item .arrow {
margin: 0 6rpx;
width: 19rpx;
height: auto;
}
.cyl_view .list {
margin-top: 20rpx;
}
.cyl_view .list .item {
background-color: #FAFAFC;
margin-bottom: 20rpx;
border-radius: 10rpx;
padding: 25rpx 20rpx;
}
.cyl_view .list .item .title {
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.cyl_view .list .item .des {
margin-top: 10rpx;
font-size: 24rpx;
font-weight: 500;
color: #999999;
}
.cyl_view .list .item .labelC {
margin-top: 10rpx;
}
.cyl_view .list .item .labelC .label {
margin-right: 10rpx;
padding: 0 10rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 20rpx;
font-weight: 500;
}
.cyl_view .list .item .labelC .label.upstream {
color: #FF5501;
}
.cyl_view .list .item .labelC .label.upstream.type {
background-color: #FFF4EF;
}
.cyl_view .list .item .labelC .label.upstream.market {
border: solid 1rpx #FF5501;
}
.cyl_view .list .item .labelC .label.core {
color: #175CE6;
}
.cyl_view .list .item .labelC .label.core.type {
background-color: #EDF2FD;
}
.cyl_view .list .item .labelC .label.core.market {
border: solid 1rpx #175CE6;
}
.cyl_view .list .item .labelC .label.downstream {
color: #1DB26F;
}
.cyl_view .list .item .labelC .label.downstream.type {
background-color: #E7F5F0;
}
.cyl_view .list .item .labelC .label.downstream.market {
border: solid 1rpx #1DB26F;
}
.cyl_view .list .item .importanceC {
margin-top: 20rpx;
}
.cyl_view .list .item .importanceC .title {
font-size: 22rpx;
font-weight: 500;
color: #71675D;
}
.cyl_view .list .item .importanceC .progressBgC {
background-color: #EFEFEF;
height: 10rpx;
border-radius: 5rpx;
margin: 0 15rpx;
}
.cyl_view .list .item .importanceC .progressBgC .progress {
height: 100%;
border-radius: 5rpx;
}
.cyl_view .list .item .importanceC .progressBgC .progress.upstream {
background: linear-gradient(90deg, #FF8C53 0%, #FF5501 100%);
}
.cyl_view .list .item .importanceC .progressBgC .progress.core {
background: linear-gradient(90deg, #518BFF 0%, #175CE6 100%);
}
.cyl_view .list .item .importanceC .progressBgC .progress.downstream {
background: linear-gradient(90deg, #48D394 0%, #1DB26F 100%);
}
.cyl_view .list .item .importanceC .value {
font-size: 24rpx;
font-weight: 500;
color: #71675D;
}

View File

@@ -0,0 +1,37 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "fzjg-view",
data() {
return {};
},
props: {
branchList: Array
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($props.branchList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.branch_name),
b: item.business_status == "注销"
}, item.business_status == "注销" ? {
c: common_assets._imports_0$4
} : {
d: common_assets._imports_1$13
}, {
e: common_vendor.t(item.business_status),
f: common_vendor.n("statusC flex " + (item.business_status == "注销" ? "logOff" : "exist")),
g: common_vendor.t(item.register_capital),
h: common_vendor.t(item.legal_person),
i: common_vendor.t(item.register_date),
j: common_vendor.t(item.related_company_count),
k: index
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/fzjg-view/fzjg-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="branchList"><view wx:for="{{a}}" wx:for-item="item" wx:key="k" class="item"><view class="titleStatusC flex"><view class="title flex1">{{item.a}}</view><view class="{{item.f}}"><image wx:if="{{item.b}}" class="icon" src="{{item.c}}" mode="widthFix"></image><image wx:else class="icon" src="{{item.d}}" mode="widthFix"></image><view>{{item.e}}</view></view></view><view class="infoC topInfo flex"><view class="infoItem leftInfo flex flex1"><view class="title">注册资本</view><view class="content flex1">{{item.g}}</view></view><view class="infoItem rightInfo flex flex1"><view class="title">法人代表</view><view class="content flex1">{{item.h}}</view></view></view><view class="infoC flex"><view class="infoItem leftInfo flex flex1"><view class="title">成立日期</view><view class="content flex1">{{item.i}}</view></view><view class="infoItem rightInfo flex flex1"><view class="title">关联企业</view><view class="content flex1">{{item.j}}家</view></view></view></view></view>

View File

@@ -0,0 +1,61 @@
.branchList {
margin-top: 38rpx;
padding: 0 20rpx;
}
.branchList .item {
background-color: #FAFAFC;
margin-bottom: 20rpx;
padding: 20rpx;
border-radius: 10rpx;
}
.branchList .item .titleStatusC {
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.branchList .item .titleStatusC .statusC {
padding: 0 10rpx;
line-height: 28rpx;
border-radius: 15rpx;
font-size: 20rpx;
font-weight: 500;
}
.branchList .item .titleStatusC .statusC .icon {
margin-right: 3rpx;
width: 16rpx;
height: auto;
}
.branchList .item .titleStatusC .statusC.exist {
background-color: #FFF7E9;
border: solid 1rpx #F2C369;
color: #F2C369;
}
.branchList .item .titleStatusC .statusC.logOff {
background-color: #FFF1F1;
border: solid 1rpx #EF3535;
color: #EF3535;
}
.branchList .item .infoC {
height: 50rpx;
}
.branchList .item .infoC .infoItem .title {
margin-right: 16rpx;
font-size: 22rpx;
font-weight: 500;
color: #999;
}
.branchList .item .infoC .infoItem .content {
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
text-align: right;
}
.branchList .item .infoC .infoItem.leftInfo {
margin-right: 20rpx;
}
.branchList .item .infoC .infoItem.rightInfo {
margin-left: 20rpx;
}
.branchList .item .infoC.topInfo {
margin-top: 10rpx;
}

View File

@@ -0,0 +1,104 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "fzlc-view",
data() {
return {
getRateUpOrDown: utils_util.getRateUpOrDown
};
},
props: {
keyFactorsInfo: null,
keyFactorsList: Array,
//关键因素数组
timelineInfo: null,
timelineList: Array
//发展时间线数组
},
methods: {
clickAction() {
this.$emit("detail");
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.keyFactorsInfo
}, $props.keyFactorsInfo ? {
b: common_vendor.t($props.keyFactorsInfo.total_factors)
} : {}, {
c: common_vendor.f($props.keyFactorsList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.category_name),
b: common_vendor.t(item.factors.length),
c: item.show
}, item.show ? {
d: common_assets._imports_0$7
} : {
e: common_assets._imports_1$18
}, {
f: item.show
}, item.show ? {
g: common_vendor.f(item.factors, (fitem, findex, i1) => {
return common_vendor.e({
a: common_vendor.t(fitem.factor_name),
b: fitem.impact_direction == "negative"
}, fitem.impact_direction == "negative" ? {} : {}, {
c: fitem.impact_direction == "neutral"
}, fitem.impact_direction == "neutral" ? {} : {}, {
d: fitem.impact_direction == "positive"
}, fitem.impact_direction == "positive" ? {} : {}, {
e: common_vendor.t(fitem.factor_value),
f: common_vendor.t(fitem.factor_unit),
g: common_vendor.n("value " + fitem.impact_direction),
h: $data.getRateUpOrDown(fitem.year_on_year)
}, $data.getRateUpOrDown(fitem.year_on_year) ? {
i: common_assets._imports_2$12
} : {
j: common_assets._imports_3$12
}, {
k: common_vendor.t(fitem.year_on_year ? fitem.year_on_year : 0),
l: common_vendor.n("chgC flex " + ($data.getRateUpOrDown(fitem.year_on_year) ? "down" : "up")),
m: common_vendor.t(fitem.factor_desc),
n: common_vendor.t(fitem.impact_weight),
o: findex
});
})
} : {}, {
h: index,
i: common_vendor.o(($event) => item.show = !item.show, index)
});
}),
d: $props.timelineInfo
}, $props.timelineInfo ? {
e: common_vendor.t($props.timelineInfo.positive_events),
f: common_vendor.t($props.timelineInfo.negative_events)
} : {}, {
g: common_vendor.f($props.timelineList, (item, index, i0) => {
return common_vendor.e({
a: item.impact_metrics.is_positive == 1
}, item.impact_metrics.is_positive == 1 ? {
b: common_assets._imports_4$11
} : {
c: common_assets._imports_5$7
}, {
d: common_vendor.n("line flex1 " + (item.impact_metrics.is_positive == 1 ? "up" : "down")),
e: common_vendor.t(item.event_title),
f: common_vendor.t(item.event_type),
g: common_vendor.n("eventType " + (item.impact_metrics.is_positive == 1 ? "up" : "down")),
h: common_vendor.t(item.event_date),
i: common_vendor.t(item.event_desc),
j: common_vendor.n("progress " + (item.impact_metrics.is_positive == 1 ? "up" : "down")),
k: `${item.impact_metrics.impact_score}%`,
l: common_vendor.t(item.impact_metrics.impact_score),
m: index,
n: common_vendor.o((...args) => $options.clickAction && $options.clickAction(...args), index)
});
})
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/fzlc-view/fzlc-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view style="padding:25rpx 20rpx;box-sizing:border-box"><view wx:if="{{a}}" class="flex" style="font-size:28rpx"><text>关键因素</text><text style="font-size:24rpx;color:#070707;padding:0rpx 10rpx;border-radius:3rpx;background-color:#F2C369;margin-left:10rpx">{{b}}</text></view><view class="keyFactorsList"><view wx:for="{{c}}" wx:for-item="item" wx:key="h" class="item" bindtap="{{item.i}}" style="margin:20rpx 0;background-color:#FAFAFC;border-radius:10rpx;padding:25rpx 20rpx;color:#2B2B2B"><view style="display:flex;align-items:center;justify-content:space-between"><view style="flex:1;font-size:26rpx"><text>{{item.a}}</text><text style="font-size:24rpx;color:#070707;padding:0rpx 10rpx;border-radius:3rpx;background-color:#F2C369;margin-left:10rpx">{{item.b}}</text></view><image wx:if="{{item.c}}" style="width:20rpx;height:12rpx" src="{{item.d}}" mode="widthFix"></image><image wx:else style="width:20rpx;height:12rpx" src="{{item.e}}" mode="widthFix"></image></view><block wx:if="{{item.f}}"><view wx:for="{{item.g}}" wx:for-item="fitem" wx:key="o" class="fitem" style="margin:20rpx 0;padding:20rpx;background-color:white;border-radius:10rpx;border:1rpx solid #E7E7E7;color:#2B2B2B;font-weight:500;font-size:26rpx"><view class="titleImpactC flex between"><view>{{fitem.a}}</view><view wx:if="{{fitem.b}}" class="impact negative">负面</view><view wx:if="{{fitem.c}}" class="impact neutral">中性</view><view wx:if="{{fitem.d}}" class="impact positive">正面</view></view><view class="valueChgC flex" style="margin-top:10rpx"><view class="{{fitem.g}}">{{fitem.e}}{{fitem.f}}</view><view class="{{fitem.l}}"><image wx:if="{{fitem.h}}" class="icon" src="{{fitem.i}}" mode="widthFix"></image><image wx:else class="icon" src="{{fitem.j}}" mode="widthFix"></image><view>{{fitem.k}}%</view></view></view><view style="margin-top:10rpx;color:#999999;font-size:22rpx">{{fitem.m}}</view><view style="margin-top:10rpx;color:#999999;font-size:22rpx">影响权重: {{fitem.n}}</view></view></block></view></view><view wx:if="{{d}}" class="flex" style="font-size:28rpx"><text>发展时间线</text><text style="font-size:24rpx;color:white;padding:0rpx 10rpx;border-radius:3rpx;background-color:#EC3440;margin-left:10rpx">正面 {{e}}</text><text style="font-size:24rpx;color:white;padding:0rpx 10rpx;border-radius:3rpx;background-color:#345423;margin-left:10rpx">负面 {{f}}</text></view><view class="timelineList"><view wx:for="{{g}}" wx:for-item="item" wx:key="m" class="item" bindtap="{{item.n}}"><view class="impactC flexColumnCenter"><image wx:if="{{item.a}}" class="icon" style="margin-top:20rpx" src="{{item.b}}" mode="widthFix"></image><image wx:else class="icon" src="{{item.c}}" mode="widthFix"></image><view class="{{item.d}}"></view></view><view style="flex:1;margin-left:10rpx;background-color:#FAFAFC;padding:24rpx 15rpx;border-radius:10rpx;font-weight:500"><view class="titleTypeC"><text class="title">{{item.e}}</text><text class="{{item.g}}">{{item.f}}</text></view><view style="color:#999999;font-size:20rpx;margin:15rpx 0">{{item.h}}</view><view style="color:#71675D;font-size:22rpx">{{item.i}}</view><view style="display:flex;align-items:center;margin-top:30rpx"><view style="color:#71675D;font-size:22rpx;font-weight:500">影响度</view><view class="progressBgC"><view class="{{item.j}}" style="{{'width:' + item.k}}"></view></view><view style="color:#71675D;font-size:24rpx;font-weight:500">{{item.l}}</view></view></view></view></view></view>

View File

@@ -0,0 +1,105 @@
.keyFactorsList .item .fitem .impact {
border-radius: 5rpx;
padding: 0 10rpx;
font-size: 20rpx;
font-weight: 500;
color: white;
}
.keyFactorsList .item .fitem .impact.negative {
background-color: #345423;
}
.keyFactorsList .item .fitem .impact.neutral {
background-color: #345423;
}
.keyFactorsList .item .fitem .impact.positive {
background-color: #EC3440;
}
.keyFactorsList .item .fitem .valueChgC .value {
font-size: 30rpx;
font-weight: bold;
margin-right: 10rpx;
}
.keyFactorsList .item .fitem .valueChgC .value.negative {
color: #345423;
}
.keyFactorsList .item .fitem .valueChgC .value.neutral {
color: #345423;
}
.keyFactorsList .item .fitem .valueChgC .value.positive {
color: #EC3440;
}
.keyFactorsList .item .fitem .valueChgC .chgC {
padding: 0 10rpx;
border-radius: 5rpx;
font-size: 20rpx;
}
.keyFactorsList .item .fitem .valueChgC .chgC .icon {
margin-right: 5rpx;
width: 11rpx;
height: auto;
}
.keyFactorsList .item .fitem .valueChgC .chgC.down {
border: 1rpx solid #345423;
color: #345423;
}
.keyFactorsList .item .fitem .valueChgC .chgC.up {
border: 1rpx solid #EC3440;
color: #EC3440;
}
.timelineList .item {
display: flex;
margin: 20rpx 0;
border-radius: 10rpx;
}
.timelineList .item .impactC .icon {
width: 30rpx;
height: auto;
}
.timelineList .item .impactC .line {
margin: 10rpx 0 -30rpx;
width: 1rpx;
}
.timelineList .item .impactC .line.up {
border-left: 1rpx dashed #EC3440;
}
.timelineList .item .impactC .line.down {
border-left: 1rpx dashed #345423;
}
.timelineList .item .titleTypeC .title {
margin-right: 10rpx;
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
}
.timelineList .item .titleTypeC .eventType {
padding: 5rpx 10rpx;
border-radius: 5rpx;
font-size: 20rpx;
font-weight: 500;
}
.timelineList .item .titleTypeC .eventType.up {
background-color: #FFE7E9;
color: #EC3440;
}
.timelineList .item .titleTypeC .eventType.down {
background-color: #DEEED6;
color: #345423;
}
.timelineList .item .progressBgC {
background-color: #EFEFEF;
margin: 0 15rpx;
width: 200rpx;
height: 10rpx;
border-radius: 5rpx;
overflow: hidden;
}
.timelineList .item .progressBgC .progress {
height: 100%;
border-radius: 5rpx;
}
.timelineList .item .progressBgC .progress.up {
background: linear-gradient(to right, #FF525D, #EC3440);
}
.timelineList .item .progressBgC .progress.down {
background: linear-gradient(to right, #537D3D, #345423);
}

View File

@@ -0,0 +1,89 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "gltd-view",
data() {
return {
getLastNameStr: utils_util.getLastNameStr,
//获取姓
getAgeByBirthYear: utils_util.getAgeByBirthYear
//获取年龄
};
},
props: {
managementList: Array
},
methods: {
/**
* 点击展开或收起管理团队人员
*/
clickExpandOrRetractManagement(index) {
this.managementList[index].isExpand = !this.managementList[index].isExpand;
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($props.managementList, (item, index, i0) => {
return common_vendor.e({
a: item.list.length > 0
}, item.list.length > 0 ? {
b: common_vendor.t(item.key),
c: common_vendor.t(item.list.length)
} : {}, {
d: item.list.length > 4 && !item.isExpand
}, item.list.length > 4 && !item.isExpand ? {
e: common_vendor.f(item.list.slice(0, 4), (pitem, pindex, i1) => {
return common_vendor.e({
a: common_vendor.t($data.getLastNameStr(pitem.name)),
b: pitem.gender == "女"
}, pitem.gender == "女" ? {
c: common_assets._imports_0$3
} : {
d: common_assets._imports_1$17
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),
g: common_vendor.t(pitem.position_name),
h: common_vendor.t(pitem.start_date),
i: common_vendor.t(pitem.education),
j: common_vendor.t($data.getAgeByBirthYear(pitem.birth_year))
});
}),
f: index
} : {
g: common_vendor.f(item.list, (pitem, pindex, i1) => {
return common_vendor.e({
a: common_vendor.t($data.getLastNameStr(pitem.name)),
b: pitem.gender == "女"
}, pitem.gender == "女" ? {
c: common_assets._imports_0$3
} : {
d: common_assets._imports_1$17
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),
g: common_vendor.t(pitem.position_name),
h: common_vendor.t(pitem.start_date),
i: common_vendor.t(pitem.education),
j: common_vendor.t($data.getAgeByBirthYear(pitem.birth_year))
});
}),
h: index
}, {
i: item.list.length > 4
}, item.list.length > 4 ? {
j: common_vendor.t(item.isExpand ? "收起" : "展开查看"),
k: common_assets._imports_2$13,
l: common_vendor.o(($event) => $options.clickExpandOrRetractManagement(index), index)
} : {}, {
m: index
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/gltd-view/gltd-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="managementTeamList"><block wx:for="{{a}}" wx:for-item="item" wx:key="m"><view wx:if="{{item.a}}" class="positionNumC flex"><view class="position">{{item.b}}</view><view class="num director">{{item.c}}人</view></view><block wx:if="{{item.d}}"><view wx:for="{{item.e}}" wx:for-item="pitem" wx:key="f" class="item flex"><view class="avatarC flexCenter relative director">{{pitem.a}} <view class="{{pitem.e}}"><image wx:if="{{pitem.b}}" class="icon" src="{{pitem.c}}" mode="widthFix"></image><image wx:else class="icon" src="{{pitem.d}}" mode="widthFix"></image></view></view><view class="flex1"><view class="flex"><view class="name">{{pitem.f}}</view><view class="position">{{pitem.g}}</view><view class="date flex1">任职日期:{{pitem.h}}</view></view><view class="educationAgeC flex"><view class="education label">{{pitem.i}}</view><view class="age label">{{pitem.j}}岁</view></view></view></view></block><block wx:else><view wx:for="{{item.g}}" wx:for-item="pitem" wx:key="h" class="item flex"><view class="avatarC flexCenter relative director">{{pitem.a}} <view class="{{pitem.e}}"><image wx:if="{{pitem.b}}" class="icon" src="{{pitem.c}}" mode="widthFix"></image><image wx:else class="icon" src="{{pitem.d}}" mode="widthFix"></image></view></view><view class="flex1"><view class="flex"><view class="name">{{pitem.f}}</view><view class="position">{{pitem.g}}</view><view class="date flex1">任职日期:{{pitem.h}}</view></view><view class="educationAgeC flex"><view class="education label">{{pitem.i}}</view><view class="age label">{{pitem.j}}岁</view></view></view></view></block><view wx:if="{{item.i}}" class="expandMoreC flexCenter" bindtap="{{item.l}}"><view>{{item.j}}</view><image class="arrow" src="{{item.k}}" mode="widthFix"></image></view></block></view>

View File

@@ -0,0 +1,111 @@
.managementTeamList {
padding: 0 20rpx;
}
.managementTeamList .positionNumC {
height: 70rpx;
}
.managementTeamList .positionNumC .position {
margin-right: 11rpx;
font-size: 28rpx;
font-weight: bold;
}
.managementTeamList .positionNumC .num {
padding: 0 14rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 20rpx;
font-weight: bold;
color: white;
}
.managementTeamList .positionNumC .num.director {
background-color: #99AFEC;
}
.managementTeamList .positionNumC .num.supervisor {
background-color: #B499EC;
}
.managementTeamList .positionNumC .num.other {
background-color: #B5B5C9;
}
.managementTeamList .item {
background-color: #FAFAFC;
margin-bottom: 20rpx;
padding: 20rpx 25rpx 20rpx 20rpx;
border-radius: 10rpx;
}
.managementTeamList .item .avatarC {
margin-right: 18rpx;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
font-size: 30rpx;
font-weight: bold;
color: white;
}
.managementTeamList .item .avatarC .sexC {
right: 0;
bottom: 0;
width: 30rpx;
height: 30rpx;
border-radius: 50%;
border: solid 2rpx white;
}
.managementTeamList .item .avatarC .sexC .icon {
width: 16rpx;
height: auto;
}
.managementTeamList .item .avatarC .sexC.female {
background-color: #FA5A93;
}
.managementTeamList .item .avatarC .sexC.male {
background-color: #3E6CFC;
}
.managementTeamList .item .avatarC.director {
background-color: #99AFEC;
}
.managementTeamList .item .avatarC.supervisor {
background-color: #B499EC;
}
.managementTeamList .item .avatarC.other {
background-color: #B5B5C9;
}
.managementTeamList .item .name {
margin-right: 13rpx;
font-size: 24rpx;
font-weight: bold;
color: #666;
}
.managementTeamList .item .position {
font-size: 22rpx;
font-weight: 500;
color: #999;
}
.managementTeamList .item .date {
font-size: 20rpx;
font-weight: 500;
color: #999;
text-align: right;
}
.managementTeamList .item .educationAgeC {
margin-top: 8rpx;
}
.managementTeamList .item .educationAgeC .label {
margin-right: 10rpx;
background-color: #F1F1F1;
line-height: 30rpx;
padding: 0 16rpx;
font-size: 20rpx;
font-weight: 500;
color: #999;
}
.managementTeamList .expandMoreC {
height: 80rpx;
border-bottom: solid 1rpx #E7E7E7;
font-size: 24rpx;
font-weight: 500;
color: #C9C9C9;
}
.managementTeamList .expandMoreC .arrow {
margin-left: 18rpx;
width: 11rpx;
height: auto;
}

View File

@@ -0,0 +1,88 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "gqjg-view",
data() {
return {
getNumStr: utils_util.getNumStr,
getRateUpOrDown: utils_util.getRateUpOrDown,
getRateStr: utils_util.getRateStr
};
},
props: {
actualControlInfo: Object,
//实际控制人信息
concentrationList: Array,
//股权集中度列表
shareholdersList: Array,
//十大股东列表
circulatingShareholdersList: Array,
//十大流通股东列表
competitivePositionInfo: Object
//竞争地位信息
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.actualControlInfo
}, $props.actualControlInfo ? common_vendor.e({
b: common_vendor.t($props.actualControlInfo.actual_controller_name),
c: common_vendor.t($props.actualControlInfo.control_type),
d: common_vendor.t($props.actualControlInfo.end_date),
e: $props.actualControlInfo.holding_ratio
}, $props.actualControlInfo.holding_ratio ? {
f: common_vendor.t($props.actualControlInfo.holding_ratio.toFixed(2))
} : {}, {
g: common_vendor.t($data.getNumStr($props.actualControlInfo.holding_shares))
}) : {}, {
h: $props.concentrationList.length > 0
}, $props.concentrationList.length > 0 ? {
i: common_vendor.t($props.concentrationList[0].end_date)
} : {}, {
j: common_vendor.f($props.concentrationList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.stat_item),
b: common_vendor.t(item.holding_ratio.toFixed(2)),
c: item.ratio_change != 0
}, item.ratio_change != 0 ? common_vendor.e({
d: $data.getRateUpOrDown(item.ratio_change)
}, $data.getRateUpOrDown(item.ratio_change) ? {
e: common_assets._imports_2$12
} : {
f: common_assets._imports_3$12
}, {
g: common_vendor.t($data.getRateStr(item.ratio_change)),
h: common_vendor.n("shengjiang flex " + ($data.getRateUpOrDown(item.ratio_change) ? "down" : "up"))
}) : {}, {
i: index
});
}),
k: common_vendor.f($props.shareholdersList, (item, index, i0) => {
return {
a: common_vendor.t(item.shareholder_name),
b: common_vendor.t(item.shareholder_type ? item.shareholder_type : "-"),
c: common_vendor.t($data.getNumStr(item.holding_shares)),
d: common_vendor.t(item.total_share_ratio),
e: common_vendor.t(item.share_nature),
f: index,
g: index % 2 == 1 ? 1 : ""
};
}),
l: common_vendor.f($props.circulatingShareholdersList, (item, index, i0) => {
return {
a: common_vendor.t(item.shareholder_name),
b: common_vendor.t(item.shareholder_type ? item.shareholder_type : "-"),
c: common_vendor.t($data.getNumStr(item.holding_shares)),
d: common_vendor.t(item.total_share_ratio),
e: common_vendor.t(item.share_nature),
f: index,
g: index % 2 == 1 ? 1 : ""
};
})
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/gqjg-view/gqjg-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="com_list"><view class="item"><view class="flex"><view class="title">实际控制人</view></view><view wx:if="{{a}}" class="com_info"><view class="left"><view class="l_top">{{b}}</view><view class="l_bottom"><view class="l_b_left">{{c}}</view><view class="l_b_right">截至 {{d}}</view></view></view><view class="right"><view class="r_top">控制比例</view><view wx:if="{{e}}" class="r_center">{{f}}%</view><view class="r_bottom">{{g}}股</view></view></view><view class="flex"><view class="title">股权集中度</view></view><view class="guquan"><view wx:if="{{h}}" class="top">{{i}}</view><view class="bottom"><view class="b_item flexWrap"><view wx:for="{{j}}" wx:for-item="item" wx:key="i" class="item_info flex"><view class="left flex1">{{item.a}}</view><view class="right flex"><view class="bili">{{item.b}}%</view><view wx:if="{{item.c}}" class="{{item.h}}"><image wx:if="{{item.d}}" class="icon" src="{{item.e}}" mode="widthFix"></image><image wx:else class="icon" src="{{item.f}}" mode="widthFix"></image><view>{{item.g}}%</view></view></view></view></view></view></view><view class="flex"><view class="title">十大股东</view></view><view class="gudong"><view class="back"><view class="top action"><view class="head">股东名称</view><view class="head">股东类型</view><view class="head" style="text-align:center">持股数量</view><view class="head" style="text-align:center">持股比例</view><view class="head" style="text-align:center">股份性质</view></view><view wx:for="{{k}}" wx:for-item="item" wx:key="f" class="{{['top', item.g && 'action']}}"><view class="child">{{item.a}}</view><view class="child">{{item.b}}</view><view class="child" style="text-align:center">{{item.c}}股</view><view class="child" style="color:#3E87CF;font-weight:bold;text-align:center">{{item.d}}%</view><view class="nature">{{item.e}}</view></view></view></view><view class="flex"><view class="title">十大流通股东 </view></view><view class="gudong"><view class="back"><view class="top action"><view class="head">股东名称</view><view class="head">股东类型</view><view class="head" style="text-align:center">持股数量</view><view class="head" style="text-align:center">流通股比例</view><view class="head" style="text-align:center">股份性质</view></view><view wx:for="{{l}}" wx:for-item="item" wx:key="f" class="{{['top', item.g && 'action']}}"><view class="child">{{item.a}}</view><view class="child">{{item.b}}</view><view class="child" style="text-align:center">{{item.c}}股</view><view class="child" style="color:#893ECF;font-weight:bold;text-align:center">{{item.d}}%</view><view class="nature">{{item.e}}</view></view></view></view></view></view>

View File

@@ -0,0 +1,154 @@
.com_list {
margin-top: 38rpx;
padding: 0 20rpx;
box-sizing: border-box;
}
.com_list .title {
color: #2B2B2B;
font-size: 28rpx;
font-weight: bold;
}
.com_list .item .com_info {
margin: 20rpx 0;
background-color: #FAFAFC;
border-radius: 10rpx;
padding: 25rpx 20rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 500;
}
.com_list .item .com_info .left .l_top {
color: #666666;
font-size: 24rpx;
}
.com_list .item .com_info .left .l_bottom {
display: flex;
align-items: center;
margin-top: 10rpx;
}
.com_list .item .com_info .left .l_bottom .l_b_left {
background-color: #99AFEC;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 20rpx;
padding: 5rpx;
}
.com_list .item .com_info .left .l_bottom .l_b_right {
margin-left: 10rpx;
color: #999999;
font-size: 22rpx;
}
.com_list .item .com_info .right {
color: #71675D;
font-size: 20rpx;
text-align: right;
}
.com_list .item .com_info .right .r_center {
color: #BB8520;
font-size: 28rpx;
font-weight: bold;
margin: 5rpx 0;
}
.com_list .item .guquan {
margin: 25rpx 0;
font-weight: 500;
background-color: #FAFAFC;
border-radius: 10rpx;
padding: 25rpx 13rpx;
box-sizing: border-box;
}
.com_list .item .guquan .top {
color: #999999;
font-size: 22rpx;
}
.com_list .item .guquan .bottom {
display: flex;
}
.com_list .item .guquan .bottom .b_item .item_info {
margin: 15rpx 0;
margin-right: 15rpx;
width: calc((100% - 15rpx)/2);
}
.com_list .item .guquan .bottom .b_item .item_info .left {
color: #666666;
font-size: 20rpx;
}
.com_list .item .guquan .bottom .b_item .item_info .right {
height: 35rpx;
font-size: 20rpx;
}
.com_list .item .guquan .bottom .b_item .item_info .right .bili {
color: #BB8520;
font-weight: bold;
}
.com_list .item .guquan .bottom .b_item .item_info .right .shengjiang {
margin-left: 10rpx;
padding: 0 5rpx;
height: 30rpx;
border-radius: 5rpx;
font-size: 18rpx;
}
.com_list .item .guquan .bottom .b_item .item_info .right .shengjiang .icon {
width: 11rpx;
height: 25rpx;
margin-right: 4rpx;
}
.com_list .item .guquan .bottom .b_item .item_info .right .shengjiang.up {
background-color: #FFDFE1;
color: #EC3440;
}
.com_list .item .guquan .bottom .b_item .item_info .right .shengjiang.down {
background-color: #C6F6D5;
color: #345423;
}
.com_list .item .guquan .bottom .b_item .item_info:nth-child(2n) {
margin-right: 0;
}
.com_list .item .gudong {
margin-top: 25rpx;
}
.com_list .item .gudong .back {
margin: 25rpx 0;
font-weight: 500;
border-radius: 10rpx;
color: #666666;
}
.com_list .item .gudong .back .top {
width: 100%;
display: grid;
align-items: center;
grid-template-columns: 166rpx repeat(4, 1fr);
background-color: white;
height: 60rpx;
}
.com_list .item .gudong .back .top.action {
background-color: #FAFAFC;
}
.com_list .item .gudong .back .top .head {
padding: 0 10rpx;
font-size: 22rpx;
}
.com_list .item .gudong .back .top .child {
padding: 0 10rpx;
font-size: 18rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.com_list .item .gudong .back .top .nature {
background-color: #FFF7E9;
margin: 10rpx;
line-height: 36rpx;
border-radius: 5rpx;
font-size: 18rpx;
color: #E0AC4A;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

View File

@@ -0,0 +1,28 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
name: "gsxx-view",
data() {
return {};
},
props: {
stockBasicInfo: Object
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.stockBasicInfo
}, $props.stockBasicInfo ? {
b: common_vendor.t($props.stockBasicInfo.credit_code),
c: common_vendor.t($props.stockBasicInfo.company_size),
d: common_vendor.t($props.stockBasicInfo.reg_address),
e: common_vendor.t($props.stockBasicInfo.office_address),
f: common_vendor.t($props.stockBasicInfo.accounting_firm),
g: common_vendor.t($props.stockBasicInfo.law_firm),
h: common_vendor.t($props.stockBasicInfo.main_business),
i: common_vendor.t($props.stockBasicInfo.business_scope)
} : {});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/gsxx-view/gsxx-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view wx:if="{{a}}" class="businessInfoList"><view class="section">工商信息</view><view class="infoC"><view class="infoItem flex"><view class="title">统一信用代码</view><view class="content code flex1 rightAlign">{{b}}</view></view><view class="infoItem flex"><view class="title">公司规模</view><view class="content flex1 rightAlign">{{c}}</view></view><view class="infoItem flex"><view class="title">注册地址</view><view class="content flex1 rightAlign">{{d}}</view></view><view class="infoItem flex"><view class="title">办公地址</view><view class="content flex1 rightAlign">{{e}}</view></view></view><view class="section">服务机构</view><view class="infoC"><view class="title infoItem">会计师事务所</view><view class="content infoItem">{{f}}</view><view class="title infoItem">律师事务所</view><view class="content infoItem">{{g}}</view></view><view class="section">主营业务</view><view class="infoC mainBussiness"><text class="title">{{h}}</text></view><view class="section">经营范围</view><view class="infoC"><text class="title">{{i}}</text></view></view>

View File

@@ -0,0 +1,36 @@
.businessInfoList {
padding: 0 20rpx;
}
.businessInfoList .section {
line-height: 72rpx;
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.businessInfoList .infoC {
background-color: #FAFAFC;
border-radius: 10rpx;
padding: 12rpx 20rpx;
}
.businessInfoList .infoC .infoItem {
line-height: 46rpx;
}
.businessInfoList .infoC .title {
font-size: 22rpx;
font-weight: 500;
color: #999;
}
.businessInfoList .infoC .content {
font-size: 24rpx;
font-weight: 500;
color: #2A2A2A;
}
.businessInfoList .infoC .content.code {
color: #BB8520;
}
.businessInfoList .infoC .content.rightAlign {
text-align: right;
}
.businessInfoList .infoC.mainBussiness {
padding: 20rpx;
}

View File

@@ -0,0 +1,125 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
getApp();
const _sfc_main = {
name: "navBar",
data() {
return {
navH: common_vendor.inject("navHeight"),
menuH: common_vendor.inject("menuHeight"),
navBarStyle: "",
backTitleStyle: "",
navTitleStyle: "",
titleColor: this.navTitleColor,
bgColor: this.navBgColor,
num: this.peopleNum
};
},
props: {
leftText: {
type: String,
default: ""
},
backBlack: {
type: Boolean,
default: false
},
navTitle: {
type: String,
default: ""
},
navBgColor: {
type: String,
default: ""
},
navTitleColor: {
type: String,
default: "white"
},
hideBack: {
type: Boolean,
default: false
},
hideNavBg: {
type: Boolean,
default: false
},
backLevel: {
type: Number,
default: 1
},
peopleNum: {
type: Number,
default: 0
}
},
mounted() {
let navHeight = this.navH;
let menuHeight = common_vendor.inject("menuHeight");
let menuTop = common_vendor.inject("menuTop");
let navBarStyle = `background-color:${this.bgColor};height:${navHeight}px;`;
let backTitleStyle = `height:${menuHeight}px;margin-top:${menuTop}px;color:${this.titleColor}`;
let navTitleStyle = `height:${menuHeight}px;line-height:${menuHeight}px;top:${menuTop}px;color:${this.titleColor}`;
this.navBarStyle = navBarStyle;
this.backTitleStyle = backTitleStyle;
this.navTitleStyle = navTitleStyle;
},
watch: {
navTitleColor: {
handler(newVal, oldVal) {
this.titleColor = newVal;
}
},
navBgColor: {
handler(newVal, oldVal) {
this.bgColor = newVal;
}
},
peopleNum: {
handler(newVal, oldVal) {
this.num = newVal;
}
}
},
methods: {
clickBack() {
common_vendor.index.navigateBack({
fail() {
common_vendor.index.switchTab({
url: "/pages/index/index"
});
}
});
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: !$props.hideNavBg
}, !$props.hideNavBg ? {
b: common_assets._imports_0
} : {}, {
c: !$props.hideBack && !$props.backBlack
}, !$props.hideBack && !$props.backBlack ? {
d: common_assets._imports_1$15
} : {}, {
e: !$props.hideBack && $props.backBlack
}, !$props.hideBack && $props.backBlack ? {
f: common_assets._imports_2
} : {}, {
g: common_vendor.t($props.leftText),
h: common_vendor.s($data.backTitleStyle),
i: common_vendor.o((...args) => $options.clickBack && $options.clickBack(...args)),
j: common_vendor.t($props.navTitle),
k: $data.num > 0
}, $data.num > 0 ? {
l: common_vendor.t($data.num)
} : {}, {
m: common_vendor.s($data.navTitleStyle),
n: common_vendor.s($data.navBarStyle)
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/navBar/navBar.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="nav flex fixed" style="{{n}}"><image wx:if="{{a}}" class="bg absolute" src="{{b}}" mode="widthFix"></image><view class="backC relative flex" style="{{h}}" bindtap="{{i}}"><image wx:if="{{c}}" class="icon" src="{{d}}" mode="widthFix"></image><image wx:if="{{e}}" class="icon" src="{{f}}" mode="widthFix"></image><text class="title">{{g}}</text></view><view class="titleC relative" style="{{m}}">{{j}} <view wx:if="{{k}}" class="peopleNum absolute"><view class="num">{{l}}人</view></view></view></view>

View File

@@ -0,0 +1,73 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.nav {
top: 0;
left: 0;
right: 0;
z-index: 99;
overflow: hidden;
}
.nav .bg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.nav .backC {
padding: 0 25rpx;
}
.nav .backC .icon {
margin-right: 12rpx;
width: 32rpx;
height: auto;
}
.nav .title {
font-size: 36rpx;
font-weight: bold;
}
.nav .titleC {
position: absolute;
left: calc((100% - 400rpx) / 2);
width: 400rpx;
white-space: nowrap;
text-overflow: ellipsis;
text-align: center;
font-size: 36rpx;
font-weight: 500;
}
.nav .titleC .peopleNum {
background-color: #3B9174;
top: -15rpx;
left: 270rpx;
height: 30rpx;
border-radius: 15px 15px 15px 0px;
line-height: 30rpx;
font-size: 24rpx;
color: white;
}
.nav .titleC .peopleNum .num {
margin: 0 16rpx;
}

View File

@@ -0,0 +1,82 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "news-view",
data() {
return {
showType: 0,
getChgRateStr: utils_util.getChgRateStr,
getRateUpOrDown: utils_util.getRateUpOrDown
};
},
props: {
// 0 新闻动态 1 公司公告
type: Number,
newsList: Array,
//新闻动态数组
announcementList: Array
//公司公告数组
},
watch: {
type: {
handler(newVal, oldVal) {
this.showType = newVal;
}
}
},
methods: {}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $data.showType == 0
}, $data.showType == 0 ? {
b: common_assets._imports_0$9,
c: common_vendor.f($props.newsList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.title),
b: common_vendor.t(item.view_count),
c: common_vendor.t(item.hot_score),
d: common_vendor.t(item.event_type),
e: common_vendor.t(item.invest_score),
f: common_vendor.f(["C级", "金融监管", "资管行业", "自律管理"], (item2, index2, i1) => {
return {
a: common_vendor.t(item2)
};
}),
g: common_vendor.t(item.description),
h: item.related_avg_chg
}, item.related_avg_chg ? {} : {}, {
i: item.related_avg_chg
}, item.related_avg_chg ? {
j: common_vendor.t($data.getChgRateStr(item.related_avg_chg)),
k: common_vendor.n("chg " + ($data.getRateUpOrDown(item.related_avg_chg) ? "down" : "up")),
l: common_vendor.t($data.getChgRateStr(item.related_max_chg)),
m: common_vendor.n("chg " + ($data.getRateUpOrDown(item.related_max_chg) ? "down" : "up")),
n: common_vendor.t($data.getChgRateStr(item.related_week_chg)),
o: common_vendor.n("chg " + ($data.getRateUpOrDown(item.related_week_chg) ? "down" : "up"))
} : {}, {
p: index
});
}),
d: common_assets._imports_1$19,
e: common_assets._imports_2$15,
f: common_assets._imports_3$14
} : {}, {
g: $data.showType == 1
}, $data.showType == 1 ? {
h: common_vendor.f($props.announcementList, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: common_vendor.t(item.announce_date),
c: common_vendor.t(item.format),
d: common_vendor.t(item.file_size),
e: index
};
})
} : {});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/news-view/news-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view><block wx:if="{{a}}"><view style="padding:20rpx"><view style="background-color:#F3F3F3;display:flex;align-items:center;height:70rpx;border-radius:30rpx;overflow:hidden"><view style="display:flex;align-items:center;justify-content:center;width:62rpx"><image style="width:25rpx;height:24rpx" src="{{b}}" mode="widthFix"></image></view><input style="flex:1;height:100%;font-size:22rpx;color:#999;margin-right:20rpx" type="text" placeholder="搜索相关新闻..."/></view><view class="newsList"><view wx:for="{{c}}" wx:for-item="item" wx:key="p" class="item" style="border:1rpx solid #E7E7E7;border-radius:10rpx;padding:0 27rpx;margin:20rpx 0"><view style="color:#2B2B2B;font-size:26rpx;font-weight:bold;margin-top:20rpx">{{item.a}}</view><view style="display:flex;align-items:center;color:#999999;font-size:22rpx;font-weight:400"><image style="width:20rpx;height:20rpx;margin-right:5rpx" src="{{d}}" mode="widthFix"></image><text>2025/12/16</text><text style="margin:10rpx">|</text><image style="width:18rpx;height:13rpx;margin-right:5rpx" src="{{e}}" mode="widthFix"></image><text>{{item.b}}</text><text style="margin:10rpx">|</text><image style="width:16rpx;height:19rpx;margin-right:5rpx" src="{{f}}" mode="widthFix"></image><text>{{item.c}}</text></view><view class="labelList flexWrap"><view class="label eventType">{{item.d}}</view><view class="label investScore">投资分:{{item.e}}</view><view wx:for="{{item.f}}" wx:for-item="item" style="background-color:#FFFAF0;border-radius:3rpx;padding:2rpx 10rpx;overflow:hidden;font-size:18rpx;color:#E9AE3E;font-weight:400;margin-right:10rpx">{{item.a}}</view></view><view style="margin:20rpx 0;font-size:22rpx;color:#71675D;font-weight:500">{{item.g}}</view><view wx:if="{{item.h}}" style="height:1rpx;background-color:#E7E7E7"></view><view wx:if="{{item.i}}" class="relatedChgC flex"><text style="font-weight:bold;color:#2B2B2B">相关涨跌:</text><text>平均 </text><text class="{{item.k}}">{{item.j}}%</text><text style="margin:0 20rpx">|</text><text>最大 </text><text class="{{item.m}}">{{item.l}}%</text><text style="margin:0 20rpx">|</text><text>周 </text><text class="{{item.o}}">{{item.n}}%</text></view></view></view></view></block><block wx:if="{{g}}"><view wx:for="{{h}}" wx:for-item="item" wx:key="e" style="padding:20rpx"><view style="border:1rpx solid #E7E7E7;border-radius:10rpx;padding:0 27rpx;margin:20rpx 0;display:flex;align-items:center"><view style="flex:1"><view style="color:#2B2B2B;font-size:26rpx;font-weight:bold;margin-top:20rpx">{{item.a}}</view><view style="display:flex;align-items:center;color:#71675D;font-size:22rpx;font-weight:500;margin:20rpx 0"><text style="color:#E9AE3E;font-size:18rpx;background-color:#FFFAF0;border-radius:3rpx;padding:2rpx 10rpx;margin-right:14rpx">公告</text><text>{{item.b}}</text><text style="margin:0 20rpx">|</text><text>{{item.c}}</text><text style="margin:0 20rpx">|</text><text>{{item.d}}KB</text></view></view><view style="padding:4rpx 10rpx;background-color:#F2C369;border-radius:10rpx;color:#2B2B2B;font-size:22rpx;margin-left:10rpx">查看</view></view></view></block></view>

View File

@@ -0,0 +1,28 @@
.newsList .item .labelList .label {
margin-right: 10rpx;
padding: 0 7rpx;
line-height: 28rpx;
border-radius: 3rpx;
font-size: 18rpx;
font-weight: 500;
}
.newsList .item .labelList .eventType {
background-color: #EFF6FF;
color: #60A5FA;
}
.newsList .item .labelList .investScore {
background-color: #F2EEFF;
color: #A78BFA;
}
.newsList .item .relatedChgC {
margin: 20rpx 0;
color: #71675D;
font-size: 22rpx;
font-weight: 500;
}
.newsList .item .relatedChgC .chg.up {
color: #EC3440;
}
.newsList .item .relatedChgC .chg.down {
color: #1DB26F;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
"use strict";
require("../../../common/vendor.js");
makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");
makeMap("a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");
makeMap("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");
makeMap("script,style");
function makeMap(str) {
var obj = {};
var items = str.split(",");
for (var i = 0; i < items.length; i++) {
obj[items[i]] = true;
}
return obj;
}
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/components/ua-markdown/lib/html-parser.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,92 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const components_uaMarkdown_lib_markdownIt_min = require("./lib/markdown-it.min.js");
const components_uaMarkdown_lib_highlight_uniHighlight_min = require("./lib/highlight/uni-highlight.min.js");
require("./lib/html-parser.js");
const _sfc_main = {
__name: "ua-markdown",
props: {
// 解析内容
source: String,
showLine: { type: [Boolean, String], default: true }
},
setup(__props) {
const props = __props;
let copyCodeData = [];
const markdown = components_uaMarkdown_lib_markdownIt_min.mt({
html: true,
highlight: function(str, lang) {
let preCode = "";
try {
preCode = components_uaMarkdown_lib_highlight_uniHighlight_min.$e.highlightAuto(str).value;
} catch (err) {
preCode = markdown.utils.escapeHtml(str);
}
const lines = preCode.split(/\n/).slice(0, -1);
let html = lines.map((item, index) => {
if (item == "") {
return "";
}
return '<li><span class="line-num" data-line="' + (index + 1) + '"></span>' + item + "</li>";
}).join("");
if (props.showLine) {
html = '<ol style="padding: 0px 30px;">' + html + "</ol>";
} else {
html = '<ol style="padding: 0px 7px;list-style:none;">' + html + "</ol>";
}
copyCodeData.push(str);
let htmlCode = `<div class="markdown-wrap">`;
htmlCode += `<pre class="hljs" style="padding:10px 8px 0;margin-bottom:5px;overflow: auto;display: block;border-radius: 5px;"><code>${html}</code></pre>`;
htmlCode += "</div>";
return htmlCode;
}
});
const parseNodes = (value) => {
if (!value)
return;
value = value.replace(/<br>|<br\/>|<br \/>/g, "\n");
value = value.replace(/&nbsp;/g, " ");
let htmlString = "";
if (value.split("```").length % 2) {
let mdtext = value;
if (mdtext[mdtext.length - 1] != "\n") {
mdtext += "\n";
}
htmlString = markdown.render(mdtext);
} else {
htmlString = markdown.render(value);
}
htmlString = htmlString.replace(/<table/g, `<table class="table"`);
htmlString = htmlString.replace(/<tr/g, `<tr class="tr"`);
htmlString = htmlString.replace(/<th>/g, `<th class="th">`);
htmlString = htmlString.replace(/<td/g, `<td class="td"`);
htmlString = htmlString.replace(/<hr>|<hr\/>|<hr \/>/g, `<hr class="hr">`);
return htmlString;
};
const handleItemClick = (e) => {
let { attrs } = e.detail.node;
let { "code-data-index": codeDataIndex, "class": className } = attrs;
if (className == "copy-btn") {
common_vendor.index.setClipboardData({
data: copyCodeData[codeDataIndex],
showToast: false,
success() {
common_vendor.index.showToast({
title: "复制成功",
icon: "none"
});
}
});
}
};
return (_ctx, _cache) => {
return {
a: parseNodes(__props.source),
b: common_vendor.o(handleItemClick)
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-64f4d077"]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/ua-markdown/ua-markdown.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="ua__markdown data-v-64f4d077"><rich-text class="data-v-64f4d077" space="nbsp" nodes="{{a}}" binditemclick="{{b}}"></rich-text></view>

View File

@@ -0,0 +1,314 @@
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.ua__markdown.data-v-64f4d077 {
font-size: 14px;
line-height: 1.5;
word-break: break-all;
}
.ua__markdown h1.data-v-64f4d077, .ua__markdown h2.data-v-64f4d077, .ua__markdown h3.data-v-64f4d077, .ua__markdown h4.data-v-64f4d077, .ua__markdown h5.data-v-64f4d077, .ua__markdown h6.data-v-64f4d077 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.ua__markdown h1.data-v-64f4d077, .ua__markdown h2.data-v-64f4d077, .ua__markdown h3.data-v-64f4d077 {
margin-top: 20px;
margin-bottom: 10px;
}
.ua__markdown h4.data-v-64f4d077, .ua__markdown h5.data-v-64f4d077, .ua__markdown h6.data-v-64f4d077 {
margin-top: 10px;
margin-bottom: 10px;
}
.ua__markdown .h1.data-v-64f4d077, .ua__markdown h1.data-v-64f4d077 {
font-size: 36px;
}
.ua__markdown .h2.data-v-64f4d077, .ua__markdown h2.data-v-64f4d077 {
font-size: 30px;
}
.ua__markdown .h3.data-v-64f4d077, .ua__markdown h3.data-v-64f4d077 {
font-size: 24px;
}
.ua__markdown .h4.data-v-64f4d077, .ua__markdown h4.data-v-64f4d077 {
font-size: 18px;
}
.ua__markdown .h5.data-v-64f4d077, .ua__markdown h5.data-v-64f4d077 {
font-size: 14px;
}
.ua__markdown .h6.data-v-64f4d077, .ua__markdown h6.data-v-64f4d077 {
font-size: 12px;
}
.ua__markdown a.data-v-64f4d077 {
background-color: transparent;
color: #2196f3;
text-decoration: none;
}
.ua__markdown hr.data-v-64f4d077, .ua__markdown.data-v-64f4d077 .hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #e5e5e5;
}
.ua__markdown img.data-v-64f4d077 {
max-width: 35%;
}
.ua__markdown p.data-v-64f4d077 {
margin: 0 0 10px;
}
.ua__markdown em.data-v-64f4d077 {
font-style: italic;
font-weight: inherit;
}
.ua__markdown ol.data-v-64f4d077, .ua__markdown ul.data-v-64f4d077 {
margin-top: 0;
margin-bottom: 10px;
padding-left: 40px;
}
.ua__markdown ol ol.data-v-64f4d077, .ua__markdown ol ul.data-v-64f4d077, .ua__markdown ul ol.data-v-64f4d077, .ua__markdown ul ul.data-v-64f4d077 {
margin-bottom: 0;
}
.ua__markdown ol ol.data-v-64f4d077, .ua__markdown ul ol.data-v-64f4d077 {
list-style-type: lower-roman;
}
.ua__markdown ol ol ol.data-v-64f4d077, .ua__markdown ul ul ol.data-v-64f4d077 {
list-style-type: lower-alpha;
}
.ua__markdown dl.data-v-64f4d077 {
margin-top: 0;
margin-bottom: 20px;
}
.ua__markdown dt.data-v-64f4d077 {
font-weight: 600;
}
.ua__markdown dt.data-v-64f4d077, .ua__markdown dd.data-v-64f4d077 {
line-height: 1.4;
}
.ua__markdown .task-list-item.data-v-64f4d077 {
list-style-type: none;
}
.ua__markdown .task-list-item input.data-v-64f4d077 {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.ua__markdown pre.data-v-64f4d077 {
position: relative;
z-index: 11;
}
.ua__markdown code.data-v-64f4d077, .ua__markdown kbd.data-v-64f4d077, .ua__markdown pre.data-v-64f4d077, .ua__markdown samp.data-v-64f4d077 {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.ua__markdown code.data-v-64f4d077:not(.hljs) {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #ffe7ee;
border-radius: 4px;
}
.ua__markdown code.data-v-64f4d077:empty {
display: none;
}
.ua__markdown pre code.hljs.data-v-64f4d077 {
color: var(--vg__text-1);
border-radius: 16px;
background: var(--vg__bg-1);
font-size: 12px;
}
.ua__markdown .markdown-wrap.data-v-64f4d077 {
font-size: 12px;
margin-bottom: 10px;
}
.ua__markdown pre.code-block-wrapper.data-v-64f4d077 {
background: #2b2b2b;
color: #f8f8f2;
border-radius: 4px;
overflow-x: auto;
padding: 1em;
position: relative;
}
.ua__markdown pre.code-block-wrapper code.data-v-64f4d077 {
padding: auto;
font-size: inherit;
color: inherit;
background-color: inherit;
border-radius: 0;
}
.ua__markdown .code-block-header__copy.data-v-64f4d077 {
font-size: 16px;
margin-left: 5px;
}
.ua__markdown abbr[data-original-title].data-v-64f4d077, .ua__markdown abbr[title].data-v-64f4d077 {
cursor: help;
border-bottom: 1px dotted #777;
}
.ua__markdown blockquote.data-v-64f4d077 {
padding: 10px 20px;
margin: 0 0 20px;
font-size: 17.5px;
border-left: 5px solid #e5e5e5;
}
.ua__markdown blockquote ol.data-v-64f4d077:last-child, .ua__markdown blockquote p.data-v-64f4d077:last-child, .ua__markdown blockquote ul.data-v-64f4d077:last-child {
margin-bottom: 0;
}
.ua__markdown blockquote .small.data-v-64f4d077, .ua__markdown blockquote footer.data-v-64f4d077, .ua__markdown blockquote small.data-v-64f4d077 {
display: block;
font-size: 80%;
line-height: 1.42857143;
color: #777;
}
.ua__markdown blockquote .small.data-v-64f4d077:before, .ua__markdown blockquote footer.data-v-64f4d077:before, .ua__markdown blockquote small.data-v-64f4d077:before {
content: "— ";
}
.ua__markdown .blockquote-reverse.data-v-64f4d077, .ua__markdown blockquote.pull-right.data-v-64f4d077 {
padding-right: 15px;
padding-left: 0;
text-align: right;
border-right: 5px solid #eee;
border-left: 0;
}
.ua__markdown .blockquote-reverse .small.data-v-64f4d077:before, .ua__markdown .blockquote-reverse footer.data-v-64f4d077:before, .ua__markdown .blockquote-reverse small.data-v-64f4d077:before, .ua__markdown blockquote.pull-right .small.data-v-64f4d077:before, .ua__markdown blockquote.pull-right footer.data-v-64f4d077:before, .ua__markdown blockquote.pull-right small.data-v-64f4d077:before {
content: "";
}
.ua__markdown .blockquote-reverse .small.data-v-64f4d077:after, .ua__markdown .blockquote-reverse footer.data-v-64f4d077:after, .ua__markdown .blockquote-reverse small.data-v-64f4d077:after, .ua__markdown blockquote.pull-right .small.data-v-64f4d077:after, .ua__markdown blockquote.pull-right footer.data-v-64f4d077:after, .ua__markdown blockquote.pull-right small.data-v-64f4d077:after {
content: " —";
}
.ua__markdown .footnotes.data-v-64f4d077 {
column-count: 2;
}
.ua__markdown .footnotes-list.data-v-64f4d077 {
padding-left: 2em;
}
.ua__markdown table.data-v-64f4d077, .ua__markdown.data-v-64f4d077 .table {
border-spacing: 0;
border-collapse: collapse;
width: 100%;
max-width: 65em;
overflow: auto;
margin-top: 0;
margin-bottom: 16px;
}
.ua__markdown table tr.data-v-64f4d077, .ua__markdown.data-v-64f4d077 .table .tr {
border-top: 1px solid #e5e5e5;
}
.ua__markdown table th.data-v-64f4d077, .ua__markdown table td.data-v-64f4d077, .ua__markdown.data-v-64f4d077 .table .th, .ua__markdown.data-v-64f4d077 .table .td {
padding: 6px 13px;
border: 1px solid #e5e5e5;
}
.ua__markdown table th.data-v-64f4d077, .ua__markdown.data-v-64f4d077 .table .th {
font-weight: 600;
background-color: #eee;
}
.ua__markdown .hljs[class*=language-].data-v-64f4d077:before {
position: absolute;
z-index: 3;
top: 0.8em;
right: 1em;
font-size: 0.8em;
color: #999;
}
.ua__markdown .hljs[class~=language-js].data-v-64f4d077:before {
content: "js";
}
.ua__markdown .hljs[class~=language-ts].data-v-64f4d077:before {
content: "ts";
}
.ua__markdown .hljs[class~=language-html].data-v-64f4d077:before {
content: "html";
}
.ua__markdown .hljs[class~=language-md].data-v-64f4d077:before {
content: "md";
}
.ua__markdown .hljs[class~=language-vue].data-v-64f4d077:before {
content: "vue";
}
.ua__markdown .hljs[class~=language-css].data-v-64f4d077:before {
content: "css";
}
.ua__markdown .hljs[class~=language-sass].data-v-64f4d077:before {
content: "sass";
}
.ua__markdown .hljs[class~=language-scss].data-v-64f4d077:before {
content: "scss";
}
.ua__markdown .hljs[class~=language-less].data-v-64f4d077:before {
content: "less";
}
.ua__markdown .hljs[class~=language-stylus].data-v-64f4d077:before {
content: "stylus";
}
.ua__markdown .hljs[class~=language-go].data-v-64f4d077:before {
content: "go";
}
.ua__markdown .hljs[class~=language-java].data-v-64f4d077:before {
content: "java";
}
.ua__markdown .hljs[class~=language-c].data-v-64f4d077:before {
content: "c";
}
.ua__markdown .hljs[class~=language-sh].data-v-64f4d077:before {
content: "sh";
}
.ua__markdown .hljs[class~=language-yaml].data-v-64f4d077:before {
content: "yaml";
}
.ua__markdown .hljs[class~=language-py].data-v-64f4d077:before {
content: "py";
}
.ua__markdown .hljs[class~=language-docker].data-v-64f4d077:before {
content: "docker";
}
.ua__markdown .hljs[class~=language-dockerfile].data-v-64f4d077:before {
content: "dockerfile";
}
.ua__markdown .hljs[class~=language-makefile].data-v-64f4d077:before {
content: "makefile";
}
.ua__markdown .hljs[class~=language-javascript].data-v-64f4d077:before {
content: "js";
}
.ua__markdown .hljs[class~=language-typescript].data-v-64f4d077:before {
content: "ts";
}
.ua__markdown .hljs[class~=language-markup].data-v-64f4d077:before {
content: "html";
}
.ua__markdown .hljs[class~=language-markdown].data-v-64f4d077:before {
content: "md";
}
.ua__markdown .hljs[class~=language-json].data-v-64f4d077:before {
content: "json";
}
.ua__markdown .hljs[class~=language-ruby].data-v-64f4d077:before {
content: "rb";
}
.ua__markdown .hljs[class~=language-python].data-v-64f4d077:before {
content: "py";
}
.ua__markdown .hljs[class~=language-bash].data-v-64f4d077:before {
content: "sh";
}
.ua__markdown .hljs[class~=language-php].data-v-64f4d077:before {
content: "php";
}

View File

@@ -0,0 +1,53 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
name: "ywjg-view",
data() {
return {
getRateUpOrDown: utils_util.getRateUpOrDown
};
},
props: {
businessStructureList: Array,
//业务结构分析
businessSegmentList: Array
//业务板块详情
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($props.businessStructureList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.business_name),
b: item.is_hexin
}, item.is_hexin ? {} : {}, {
c: common_vendor.t(item.financial_metrics.revenue_ratio),
d: item.financial_metrics.gross_margin
}, item.financial_metrics.gross_margin ? {
e: common_vendor.t(item.financial_metrics.gross_margin)
} : {}, {
f: common_vendor.t(item.revenue),
g: common_vendor.t(item.revenue_unit),
h: item.growth_metrics.revenue_growth
}, item.growth_metrics.revenue_growth ? {
i: common_vendor.t(item.growth_metrics.revenue_growth),
j: common_vendor.n("growthRate " + ($data.getRateUpOrDown(item.growth_metrics.revenue_growth) ? "down" : "up"))
} : {}, {
k: index
});
}),
b: common_vendor.f($props.businessSegmentList, (item, index, i0) => {
return {
a: common_vendor.t(item.segment_name),
b: common_vendor.t(item.segment_description),
c: common_vendor.t(item.competitive_position),
d: common_vendor.t(item.future_potential),
e: index
};
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/ywjg-view/ywjg-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="ywjg_list"><view><view style="margin:25rpx 20rpx;color:#2B2B2B;font-size:28rpx;font-weight:bold">业务结构分析</view><view wx:for="{{a}}" wx:for-item="item" wx:key="k" class="ywjg_item_1"><view style="display:flex;align-items:center"><view style="font-size:28rpx;font-weight:bold;margin-right:10rpx">{{item.a}}</view><view wx:if="{{item.b}}" style="background-color:#F2C369;border-radius:5rpx;font-size:20rpx;padding:0 5rpx"> 核心业务</view></view><view class="flex between" style="font-weight:500"><view class="flex" style="color:#F2C369;font-size:20rpx"><view style="border:1rpx solid #F2C369;border-radius:5rpx;padding:0 10rpx"> 营收占比:{{item.c}}%</view><view wx:if="{{item.d}}" style="border:1rpx solid #F2C369;border-radius:5rpx;padding:0 10rpx;margin-left:10rpx"> 毛利率:{{item.e}}%</view><view wx:else style="border:1rpx solid #F2C369;border-radius:5rpx;padding:0 10rpx;margin-left:10rpx"> 毛利率:-</view></view><view><view style="color:#999999;font-size:24rpx">营业收入</view><view style="font-weight:bold;font-size:30rpx;color:#BB8520;margin-top:10rpx">{{item.f}}{{item.g}}</view></view></view><view style="display:flex"><view wx:if="{{item.h}}" class="{{item.j}}"> 增长:{{item.i}}% </view><view wx:else class="growthRate down">增长:-</view></view></view><view style="margin:25rpx 20rpx;color:#2B2B2B;font-size:28rpx;font-weight:bold">业务板块详情</view><view style="font-weight:500"><view wx:for="{{b}}" wx:for-item="item" wx:key="e" style="background-color:#FAFAFC;color:#2B2B2B;font-size:22rpx;margin:20rpx;border-radius:10rpx;padding:25rpx 20rpx"><view style="font-size:24rpx">{{item.a}}</view><view style="color:#BB8520;font-weight:bold;margin:10rpx 0">业务描述</view><view style="color:#71675D">{{item.b}}</view><view style="color:#BB8520;font-weight:bold;margin:10rpx 0">竞争地位</view><view style="color:#71675D">{{item.c}}</view><view style="color:#BB8520;font-weight:bold;margin:10rpx 0">未来潜力</view><view style="color:#71675D">{{item.d}}</view></view></view></view></view>

View File

@@ -0,0 +1,27 @@
.ywjg_list {
color: #2B2B2B;
}
.ywjg_list .title {
font-size: 28rpx;
font-weight: bold;
}
.ywjg_list .ywjg_item_1 {
font-weight: 500;
margin: 20rpx;
background-color: #FAFAFC;
border-radius: 10rpx;
padding: 25rpx 20rpx;
}
.ywjg_list .ywjg_item_1 .growthRate {
padding: 0 10rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 20rpx;
color: white;
}
.ywjg_list .ywjg_item_1 .growthRate.up {
background-color: #EC3440;
}
.ywjg_list .ywjg_item_1 .growthRate.down {
background-color: #345423;
}

View File

@@ -0,0 +1,166 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
name: "zlfx-view",
data() {
return {
option: {
title: {
show: false
},
legend: {
show: false
},
tooltip: {
show: true,
triggerOn: "mousemove"
},
radar: {
indicator: [
{ name: "市场地位", max: 100 },
{ name: "技术实力", max: 100 },
{ name: "品牌价值", max: 100 },
{ name: "运营效率", max: 100 },
{ name: "财务健康", max: 100 },
{ name: "创新能力", max: 100 },
{ name: "风险控制", max: 100 },
{ name: "成长潜力", max: 100 }
],
shape: "polygon",
splitNumber: 5,
axisName: {
color: "#54555A"
},
splitLine: {
lineStyle: {
color: ["#CFD2D7"]
}
},
splitArea: {
areaStyle: {
color: ["#F4F6FA", "white"]
}
},
axisLine: {
lineStyle: {
color: "#CFD2D7"
}
}
},
series: [
{
name: "Beijing",
type: "radar",
lineStyle: {
width: 1
},
data: [],
symbol: "circle",
symbolSize: 4,
label: {
show: true
},
itemStyle: {
color: "#5070DD"
},
areaStyle: {
opacity: 0.1
}
}
]
}
};
},
props: {
qualitativeAnalysisInfo: Object,
//定性分析
competitivePositionInfo: Object,
//竞争地位信息
mainCompetitorsList: Array,
//主要竞争对手
industryRankInfo: Object,
//行业排名数据
scoreList: Array,
//
data: Array
},
watch: {
data(newValue) {
common_vendor.index.__f__("log", "at components/zlfx-view/zlfx-view.vue:172", newValue);
this.option.series[0].data = newValue;
this.init();
}
},
methods: {
async init() {
const chart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at components/zlfx-view/zlfx-view.vue:184", chart);
chart.setOption(this.option);
},
clickIndustryRank() {
this.$emit("rank");
}
}
};
if (!Array) {
const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
_easycom_l_echart2();
}
const _easycom_l_echart = () => "../../uni_modules/lime-echart/components/l-echart/l-echart.js";
if (!Math) {
_easycom_l_echart();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.qualitativeAnalysisInfo
}, $props.qualitativeAnalysisInfo ? {
b: common_vendor.t($props.qualitativeAnalysisInfo.core_positioning.one_line_intro)
} : {}, {
c: $props.qualitativeAnalysisInfo
}, $props.qualitativeAnalysisInfo ? {
d: common_vendor.t($props.qualitativeAnalysisInfo.core_positioning.investment_highlights)
} : {}, {
e: $props.qualitativeAnalysisInfo
}, $props.qualitativeAnalysisInfo ? {
f: common_vendor.t($props.qualitativeAnalysisInfo.core_positioning.business_model_desc)
} : {}, {
g: common_assets._imports_0$5,
h: $props.industryRankInfo
}, $props.industryRankInfo ? {
i: common_vendor.t($props.industryRankInfo.industry_rank),
j: common_vendor.t($props.industryRankInfo.total_companies)
} : {}, {
k: common_vendor.o(($event) => $options.clickIndustryRank()),
l: common_vendor.f($props.mainCompetitorsList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
m: common_assets._imports_1$13,
n: common_vendor.f($props.scoreList, (item, index, i0) => {
return {
a: item.icon,
b: common_vendor.t(item.title),
c: common_vendor.n("progress absolute " + item.color),
d: common_vendor.s("width: " + item.score + "%;"),
e: common_vendor.t(item.score),
f: common_vendor.n("item flex " + item.color),
g: index
};
}),
o: common_vendor.sr("chartRef", "332014ba-0"),
p: $props.competitivePositionInfo
}, $props.competitivePositionInfo ? {
q: common_vendor.t($props.competitivePositionInfo.analysis.competitive_advantages)
} : {}, {
r: $props.competitivePositionInfo
}, $props.competitivePositionInfo ? {
s: common_vendor.t($props.competitivePositionInfo.analysis.competitive_disadvantages)
} : {});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/zlfx-view/zlfx-view.js.map

View File

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"l-echart": "../../uni_modules/lime-echart/components/l-echart/l-echart"
}
}

View File

@@ -0,0 +1 @@
<view class="strategicAnalysisList"><view class="section">核心定位</view><view wx:if="{{a}}" class="corePositionC">{{b}}</view><view class="section">投资亮点</view><view wx:if="{{c}}" class="corePositionC">{{d}}</view><view class="section">商业模式</view><view wx:if="{{e}}" class="corePositionC">{{f}}</view><view class="section flex"><view>竞争地位分析</view><view class="industryRankC flex" bindtap="{{k}}"><image class="icon" src="{{g}}" mode="widthFix"></image><view wx:if="{{h}}">行业排名 {{i}}/{{j}}</view></view></view><view class="subSection">主要竞争对手</view><view class="mainCompetitorList flexWrap"><view wx:for="{{l}}" wx:for-item="item" wx:key="b" class="item flex"><image class="icon" src="{{m}}" mode="widthFix"></image><view>{{item.a}}</view></view></view><view class="scoreList"><view wx:for="{{n}}" wx:for-item="item" wx:key="g" class="{{item.f}}"><image class="icon" src="{{item.a}}" mode="widthFix"></image><view class="title">{{item.b}}</view><view class="progressBgC relative flex1"><view class="{{item.c}}" style="{{item.d}}"></view></view><view class="score">{{item.e}}</view></view></view><view style="width:660rpx;height:500rpx"><l-echart class="r" u-r="chartRef" u-i="332014ba-0" bind:__l="__l"></l-echart></view><view wx:if="{{p}}" class="infoC"><view class="title">竞争优势</view><view class="content">{{q}}</view></view><view wx:if="{{r}}" class="infoC"><view class="title">竞争劣势</view><view class="content">{{s}}</view></view></view>

View File

@@ -0,0 +1,155 @@
.strategicAnalysisList {
padding: 0 20rpx;
}
.strategicAnalysisList .section {
line-height: 72rpx;
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.strategicAnalysisList .section .industryRankC {
margin-left: 10rpx;
padding: 0 12rpx;
line-height: 38rpx;
border: solid 1rpx #F2C369;
border-radius: 19rpx;
font-size: 20rpx;
font-weight: 500;
color: #F3C368;
}
.strategicAnalysisList .section .industryRankC .icon {
margin-right: 5rpx;
width: 17rpx;
height: auto;
}
.strategicAnalysisList .corePositionC {
background-color: #FAFAFC;
padding: 20rpx;
font-size: 24rpx;
font-weight: 500;
color: #2A2A2A;
border-radius: 10rpx;
}
.strategicAnalysisList .highlightsList .item {
background-color: #FAFAFC;
margin-bottom: 20rpx;
padding: 20rpx;
border-radius: 10rpx;
}
.strategicAnalysisList .highlightsList .item .icon {
width: 81rpx;
height: auto;
}
.strategicAnalysisList .highlightsList .item .title {
font-size: 22rpx;
font-weight: 500;
color: #999;
}
.strategicAnalysisList .highlightsList .item .content {
font-size: 20rpx;
font-weight: 500;
color: #2A2A2A;
}
.strategicAnalysisList .infoC {
background-color: #FAFAFC;
border-radius: 10rpx;
padding: 12rpx 20rpx;
margin-bottom: 20rpx;
}
.strategicAnalysisList .infoC .infoItem {
line-height: 40rpx;
}
.strategicAnalysisList .infoC .title {
font-size: 22rpx;
font-weight: 500;
color: #2A2A2A;
}
.strategicAnalysisList .infoC .content {
margin-top: 10rpx;
font-size: 20rpx;
font-weight: 500;
color: #999;
}
.strategicAnalysisList .infoC .content.code {
color: #BB8520;
}
.strategicAnalysisList .infoC .content.rightAlign {
text-align: right;
}
.strategicAnalysisList .infoC .labelList {
margin-top: 10rpx;
}
.strategicAnalysisList .infoC .labelList .labelC {
background-color: #FFF7E9;
margin: 0 12rpx 12rpx 0;
padding: 0 10rpx;
line-height: 38rpx;
border: solid 1rpx #F2C369;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: 500;
color: #F3C368;
}
.strategicAnalysisList .infoC .labelList .labelC .icon {
margin-right: 3rpx;
width: 16rpx;
height: auto;
}
.strategicAnalysisList .subSection {
line-height: 60rpx;
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
}
.strategicAnalysisList .mainCompetitorList .item {
background-color: #FFF7E9;
margin: 0 20rpx 20rpx 0;
padding: 0 16rpx;
line-height: 38rpx;
border-radius: 20rpx;
border: solid 1rpx #F2C369;
font-size: 22rpx;
font-weight: 500;
color: #F3C368;
}
.strategicAnalysisList .mainCompetitorList .item .icon {
margin-right: 3rpx;
width: 16rpx;
height: auto;
}
.strategicAnalysisList .scoreList .item {
margin-bottom: 40rpx;
font-size: 24rpx;
}
.strategicAnalysisList .scoreList .item .icon {
margin-right: 10rpx;
width: 24rpx;
height: auto;
}
.strategicAnalysisList .scoreList .item .title {
margin-right: 15rpx;
font-weight: 500;
color: #232323;
}
.strategicAnalysisList .scoreList .item .progressBgC {
background-color: #EFEFEF;
margin-right: 15rpx;
height: 10rpx;
border-radius: 5rpx;
}
.strategicAnalysisList .scoreList .item .progressBgC .progress {
top: 0;
left: 0;
height: 10rpx;
border-radius: 5rpx;
}
.strategicAnalysisList .scoreList .item .progressBgC .progress.blue {
background: linear-gradient(90deg, #4AAFFF 0%, #1F83FD 100%);
}
.strategicAnalysisList .scoreList .item .progressBgC .progress.purple {
background: linear-gradient(90deg, #DD96FC 0%, #C061FD 100%);
}
.strategicAnalysisList .scoreList .item .score {
font-weight: 800;
color: #070707;
}

View File

@@ -0,0 +1,151 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
name: "zysj-view",
data() {
return {
option1: {
xAxis: {
type: "category",
data: []
},
yAxis: [
{
type: "value",
name: "营收(亿)",
position: "left",
alignTicks: true,
axisLine: {
onZero: false
}
},
{
type: "value",
name: "利润(亿)",
position: "right",
alignTicks: true,
axisLine: {
onZero: false
}
}
],
series: [
{
type: "bar",
data: [],
yAxisIndex: 0
},
{
type: "line",
data: [],
yAxisIndex: 1
}
]
},
option2: {
xAxis: {
type: "category",
data: []
},
yAxis: {
type: "value"
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: "pie",
showBackground: true,
backgroundStyle: {
color: "rgba(180, 180, 180, 0.2)"
}
}
]
}
};
},
props: {
// 0 主营数据 1 财务分析 2 财务数据
type: Number,
barCategoryList: Array,
barList: Array,
lineList: Array
},
watch: {
barList(newValue) {
this.option1.series[0].data = newValue;
this.barLineInit();
},
lineList(newValue) {
this.option1.series[1].data = newValue;
this.barLineInit();
}
},
methods: {
/**
* 柱状图,折线图初始化
*/
async barLineInit() {
const chart = await this.$refs.chartRef1.init(echarts);
let that = this;
setTimeout(function() {
chart.setOption(that.option1);
}, 2e3);
},
/**
* 饼状图初始化
*/
async pieInit() {
const chart = await this.$refs.chartRef2.init(echarts);
let that = this;
setTimeout(function() {
chart.setOption(that.option2);
}, 2e3);
},
itemClick(index) {
common_vendor.index.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
});
}
}
};
if (!Array) {
const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
_easycom_l_echart2();
}
const _easycom_l_echart = () => "../../uni_modules/lime-echart/components/l-echart/l-echart.js";
if (!Math) {
_easycom_l_echart();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.sr("chartRef1", "cf18d1d4-0"),
b: common_vendor.sr("chartRef2", "cf18d1d4-1"),
c: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
}, ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0 ? {
c: common_vendor.t(["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index]),
d: index == 0 ? "left" : "center"
} : {}, {
e: index == 0 ? "left" : "center",
f: index == 0 ? "flex-start" : "center"
});
}),
d: common_vendor.f(["零售金融业务", "批发金融业务", "其他业务"], (item, index, i0) => {
return {
a: common_vendor.f([item, "64.53%", "200.57亿", "310.81亿", "712.55亿"], (item2, index2, i1) => {
return {
a: common_vendor.t(item2),
b: index2 == 0 ? "left" : "center"
};
}),
b: index % 2 == 0 ? "#FFFFFF" : "#FAFAFC"
};
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/zysj-view/zysj-view.js.map

View File

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"l-echart": "../../uni_modules/lime-echart/components/l-echart/l-echart"
}
}

View File

@@ -0,0 +1 @@
<view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">+12.50%</view><view style="margin-top:10rpx">利润增长</view></view><view><view style="display:flex;align-items:center"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">+8.20%</text><text style="color:#F59B38">(稳健增长)</text></view></view></view><view style="display:flex;align-items:center;font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">16.23%</view><view style="margin-top:10rpx">ROE</view></view><view><view style="display:flex;align-items:center"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="color:#F59B38">良好</text><text style="margin-left:10rpx">净利率 32.56%|毛利率 71.92%</text></view></view></view><view class="flex" style="display:flex;align-items:center;font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">93.52%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view style="display:flex;align-items:center"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="color:#EC3440">风险</text><text style="margin-left:10rpx">流动比率 0.73|研发费用率 5.48%</text></view></view></view><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="cf18d1d4-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="cf18d1d4-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><view style="display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;background-color:#FAFAFC;margin:20rpx;margin-bottom:0;padding:10rpx;box-sizing:border-box"><view wx:for="{{c}}" wx:for-item="item" style="{{'display:flex;align-items:center;justify-content:center;flex-direction:column' + ';' + ('text-align:' + item.e + ';' + ('align-items:' + item.f))}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="{{'font-size:18rpx' + ';' + ('text-align:' + item.d)}}">{{item.c}}</view></view></view><view wx:for="{{d}}" wx:for-item="item" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;margin:0 20rpx;padding:10rpx;box-sizing:border-box' + ';' + ('background-color:' + item.b)}}"><view wx:for="{{item.a}}" wx:for-item="item" style="{{'text-align:' + item.b}}">{{item.a}}</view></view><view style="height:80rpx"></view></view>

View File

@@ -0,0 +1,87 @@
// components/custom-tab-bar/index.js
const app = getApp();
Component({
/**
* 组件的属性列表
*/
properties: {
},
/**
* 组件的初始数据
*/
data: {
color: "#858C9A",
selected:0,
selectedColor: "#F3C368",
list: [
{
"pagePath": "/pages/index/index",
"text": "新闻动量",
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png"
},
{
"pagePath": "/pages/concept/concept",
"text": "概念中心",
"iconPath": "/static/icon/tabbar/concept.png",
"selectedIconPath": "/static/icon/tabbar/concept_s.png"
},
{
"pagePath": "/pages/geGuCenter/geGuCenter",
"text": "个股中心",
"iconPath": "/static/icon/tabbar/gegu.png",
"selectedIconPath": "/static/icon/tabbar/gegu_s.png"
},
{
"pagePath": "/pages/ztfx/ztfx",
"text": "涨停分析",
"iconPath": "/static/icon/tabbar/zt.png",
"selectedIconPath": "/static/icon/tabbar/zt_s.png"
},
{
"pagePath": "/pages/mine/mine",
"text": "个人中心",
"iconPath": "/static/icon/tabbar/mine.png",
"selectedIconPath": "/static/icon/tabbar/mine_s.png"
}
]
},
attached() {
this.setData({
selected:app.globalData.tabIndex
})
},
/**
* 组件的方法列表
*/
methods: {
switchTab(e) {
const data = e.currentTarget.dataset;
const url = data.path;
const index = data.index
if(index==3)
{
//如果是购物车和我的,需要登录
let token = wx.getStorageSync('token')
if (!token) {
wx.navigateTo({
url:'/pages/login/login'
})
return
}
}
app.globalData.tabIndex = index
wx.switchTab({url})
},
navigateTo(e) {
const data = e.currentTarget.dataset;
const url = data.path;
wx.navigateTo({
url: url
})
}
}
})

View File

@@ -0,0 +1,3 @@
{
"component": true
}

View File

@@ -0,0 +1,8 @@
<!--components/custom-tab-bar/index.wxml-->
<view class="tab-bar">
<view wx:for="{{list}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="{{item.jump=='nav'?'navigateTo':'switchTab'}}">
<image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}" mode="heightFix"></image>
<view wx:if="{{item.text}}" class="tab-bar-view"
style="color: {{selected==index?selectedColor:color}};">{{item.text}}</view>
</view>
</view>

View File

@@ -0,0 +1,55 @@
/* components/custom-tab-bar/index.wxss */
.tab-bar {
background-color: black;
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 55px;
display: flex;
padding-bottom: env(safe-area-inset-bottom);
box-sizing: content-box;
/* box-shadow: 0 -1px 5rpx 0 #eee; */
z-index: 99;
}
.tab-bar-item
{
flex: 1;
text-align: center;
display: flex;
align-items: center;
flex-direction: column;
}
.tab-bar-item .image {
margin: 16rpx 0 8rpx 0;
width: auto;
height: 41rpx;
}
.bulge
{
position: relative;
}
.bulge .image
{
position: absolute;
top: -47rpx;
width: 94rpx;
height: 94rpx;
}
.bulge .tab-bar-view
{
margin-top: 60rpx;
}
.tab-bar-item .tab-bar-view {
font-size: 22rpx;
font-weight: 500;
}
.tab-bar .bg
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: auto;
z-index: -1;
}

View File

@@ -0,0 +1,841 @@
"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"),
listTop: "",
sortListTop: "",
keywords: "",
//搜索关键字
newestPriceDate: "",
//最新价格日期
popType: "",
//日期弹窗类型1交易日期2排行榜开始日期3排行榜结束日期
cycleList: ["3天", "7天", "14天", "自定义"],
//统计周期
selectCycleIndex: 0,
//选中周期下标
startDateStr: "",
//统计开始日期
endDateStr: "",
//统计结束日期
selectStartDateStr: "",
//选择的自定义开始日期
selectStartMonthIndex: 0,
//开始日期选中月份下标
selectStartMonth: "",
//结束日期选中年月
selectEndDateStr: "",
//选择的自定义结束日期
selectEndMonthIndex: 0,
//结束日期选中月份下标
selectEndMonth: "",
//结束日期选中年月
rankTabList: [
{
icon: "/static/icon/home/conceptCenter/increaseRate.png",
selectIcon: "/static/icon/home/conceptCenter/increaseRate_s.png",
title: "涨幅榜"
},
{
icon: "/static/icon/home/conceptCenter/decreaseRate.png",
selectIcon: "/static/icon/home/conceptCenter/decreaseRate_s.png",
title: "跌幅榜"
},
{
icon: "/static/icon/home/conceptCenter/active.png",
selectIcon: "/static/icon/home/conceptCenter/active_s.png",
title: "活跃榜"
},
{
icon: "/static/icon/home/conceptCenter/fluctuate.png",
selectIcon: "/static/icon/home/conceptCenter/fluctuate_s.png",
title: "波动榜"
},
{
icon: "/static/icon/home/conceptCenter/continuousRise.png",
selectIcon: "/static/icon/home/conceptCenter/continuousRise_s.png",
title: "连涨榜"
}
],
selectTab: 0,
rankList: [],
//排行榜
sortTypeList: [
{
icon: "/static/icon/home/conceptCenter/chgSort.png",
name: "涨跌幅",
key: "change_pct"
},
{
icon: "/static/icon/home/conceptCenter/correlationSort.png",
name: "相关度",
key: "_score"
},
{
icon: "/static/icon/home/conceptCenter/stockNumSort.png",
name: "股票数量",
key: "stock_count"
},
{
icon: "/static/icon/home/conceptCenter/conceptNameSort.png",
name: "概念名称",
key: "concept_name"
}
],
sortType: "change_pct",
//选择的排序方式
sortTypeStr: "涨跌幅",
//选择的排序方式
weekList: ["一", "二", "三", "四", "五", "六", "日"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
selectTradeDateStr: "",
//交易日期选中日期
selectTradeMonthIndex: 0,
//交易日期选中月份下标
selectTradeMonth: "",
//交易日期选中年月
quickTimeList: ["今天", "昨天", "一周前", "一月前"],
conceptList: [],
page: 1,
isRefreshing: false,
//下拉刷新
loadAll: false,
//是否加载完毕
getRateUpOrDown: utils_util.getRateUpOrDown,
getChgRateStr: utils_util.getChgRateStr,
memberInfo: null
//会员信息
};
},
onLoad() {
this.listTop = this.navH + (20 + 70 + 20 + 30 + 20) / 750 * common_vendor.inject("windowWidth");
this.sortListTop = this.navH + (20 + 70 + 20 + 30 + 20) / 750 * common_vendor.inject("windowWidth");
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = this.selectTradeMonthIndex = this.selectEndMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = this.selectTradeMonth = this.selectEndMonth = currentYear + "年" + currentMonth + "月";
this.selectDateStr = this.selectTradeDateStr = this.endDateStr = this.selectEndDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
let startDate = new Date(currentDate);
startDate.setDate(startDate.getDate() - 3);
let startYear = startDate.getFullYear();
let startMonth = startDate.getMonth() + 1;
let startDay = startDate.getDate();
this.selectStartMonthIndex = (20 + currentYear - startYear) * 12 + startMonth - 1;
this.selectStartMonth = startYear + "年" + startMonth + "月";
this.startDateStr = this.selectStartDateStr = startYear + "-" + (startMonth > 9 ? startMonth : "0" + startMonth) + "-" + (startDay > 9 ? startDay : "0" + startDay);
this.generateMonthDateListData();
this.getNewestPriceDateData();
this.getRankListData();
this.getMemberStatusData();
},
methods: {
/**
* 生成日历数据
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() || 7;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({ date: date2, year: i, month: newMonth, day: newDay, isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false, isCurrentMonth: true, timestamp: time });
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, timestamp: time });
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() || 7;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, timestamp: time });
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 下拉刷新
*/
pullDownRefresh() {
this.isRefreshing = true;
this.clickSearch();
},
/**
* 上拉加载
*/
loadMoreData() {
if (!this.loadAll) {
this.page++;
this.getConceptCenterData();
}
},
/**
* 点击搜索
*/
clickSearch() {
this.page = 1;
this.getConceptCenterData();
},
/**
* 点击排行榜
*/
clickRank() {
this.$refs["rankPopup"].open();
},
/**
* 点击关闭排行榜弹窗
*/
clickRankClose() {
this.$refs["rankPopup"].close();
},
/**
* 点击切换统计周期
*/
clickRankCycleListItem(index) {
if (this.selectCycleIndex != index) {
this.selectCycleIndex = index;
if (index == 3)
;
else {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let selectDate = new Date(currentDate);
if (index == 0) {
selectDate.setDate(selectDate.getDate() - 3);
} else if (index == 1) {
selectDate.setDate(selectDate.getDate() - 7);
} else if (index == 2) {
selectDate.setDate(selectDate.getDate() - 14);
}
let startYear = selectDate.getFullYear();
let startMonth = selectDate.getMonth() + 1;
let startDay = selectDate.getDate();
this.endDateStr = this.selectEndDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.startDateStr = this.selectStartdateStr = startYear + "-" + (startMonth > 9 ? startMonth : "0" + startMonth) + "-" + (startDay > 9 ? startDay : "0" + startDay);
this.getRankListData();
}
}
},
/**
* 点击自定义周期日期
* @param {Object} type
*/
clickCustomDateCycle(type) {
this.popType = type;
if (type == 2) {
this.selectDateStr = this.selectStartDateStr;
this.selectMonth = this.selectStartMonth;
this.selectMonthIndex = this.selectStartMonthIndex;
} else {
this.selectDateStr = this.selectEndDateStr;
this.selectMonth = this.selectEndMonth;
this.selectMonthIndex = this.selectEndMonthIndex;
}
this.$refs["transactionDatePopup"].open();
},
/**
* 点击应用最新日期
*/
clickApply() {
let startTimeStamp = new Date(this.selectStartDateStr);
let endTimeStamp = new Date(this.selectEndDateStr);
if (startTimeStamp > endTimeStamp) {
common_vendor.index.showToast({
title: "开始日期不能晚于结束日期",
icon: "none"
});
return;
}
this.startDateStr = this.selectStartDateStr;
this.endDateStr = this.selectEndDateStr;
this.getRankListData();
},
/**
* 点击切换排行榜分类
* @param {Object} index
*/
clickRankTabItem(index) {
if (this.selectTab != index) {
this.selectTab = index;
this.getRankListData();
}
},
/**
* 点击切换排序方式
*/
clickSortType() {
this.$refs["sortTypePopup"].open();
},
/**
* 点击切换排序方式
* @param {Object} item
*/
clickSortListItem(item) {
this.sortType = item.key;
this.sortTypeStr = item.name;
this.clickSearch();
this.$refs["sortTypePopup"].close();
},
/**
* 点击交易日期
*/
clickTransactionDate() {
this.popType = 1;
this.selectDateStr = this.selectTradeDateStr;
this.selectMonth = this.selectTradeMonth;
this.selectMonthIndex = this.selectTradeMonthIndex;
this.$refs["transactionDatePopup"].open();
},
/**
* 点击取消
*/
clickCancel() {
this.$refs["transactionDatePopup"].close();
},
/**
* 点击确认
*/
clickConfirm() {
this.clickCancel();
if (this.popType == 1) {
this.selectTradeDateStr = this.selectDateStr;
this.selectTradeMonth = this.selectMonth;
this.selectTradeMonthIndex = this.selectMonthIndex;
this.getConceptCenterData();
} else if (this.popType == 2) {
this.selectStartDateStr = this.selectDateStr;
this.selectStartMonth = this.selectMonth;
this.selectStartMonthIndex = this.selectMonthIndex;
} else {
this.selectEndDateStr = this.selectDateStr;
this.selectEndMonth = this.selectMonth;
this.selectEndMonthIndex = this.selectMonthIndex;
}
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
this.selectMonth = year + "年" + month + "月";
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
this.selectMonth = year + "年" + month + "月";
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
},
/**
* 点击选择交易日期
* @param {Object} item
*/
clickSelectDate(item) {
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
}
},
/**
* 点击快捷时间选择
*/
clickQuickTimeItem(index) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
if (index == 0) {
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
} else if (index == 1) {
let yesterday = new Date(currentDate);
yesterday.setDate(yesterday.getDate() - 1);
let yesterdayYear = yesterday.getFullYear();
let yesterdayMonth = yesterday.getMonth() + 1;
let yesterdayDay = yesterday.getDate();
this.selectMonthIndex = (20 - (currentYear - yesterdayYear)) * 12 + yesterdayMonth - 1;
this.selectMonth = yesterdayYear + "年" + yesterdayMonth + "月";
this.selectDateStr = yesterdayYear + "-" + (yesterdayMonth > 9 ? yesterdayMonth : "0" + yesterdayMonth) + "-" + (yesterdayDay > 9 ? yesterdayDay : "0" + yesterdayDay);
} else if (index == 2) {
let weekAgo = new Date(currentDate);
weekAgo.setDate(weekAgo.getDate() - 7);
let weekAgoYear = weekAgo.getFullYear();
let weekAgoMonth = weekAgo.getMonth() + 1;
let weekAgoDay = weekAgo.getDate();
this.selectMonthIndex = (20 - (currentYear - weekAgoYear)) * 12 + weekAgoMonth - 1;
this.selectMonth = weekAgoYear + "年" + weekAgoMonth + "月";
this.selectDateStr = weekAgoYear + "-" + (weekAgoMonth > 9 ? weekAgoMonth : "0" + weekAgoMonth) + "-" + (weekAgoDay > 9 ? weekAgoDay : "0" + weekAgoDay);
} else {
let monthAgo = new Date(currentDate);
monthAgo.setDate(monthAgo.getDate() - 30);
let monthAgoYear = monthAgo.getFullYear();
let monthAgoMonth = monthAgo.getMonth() + 1;
let monthAgoDay = monthAgo.getDate();
this.selectMonthIndex = (20 - (currentYear - monthAgoYear)) * 12 + monthAgoMonth - 1;
this.selectMonth = monthAgoYear + "年" + monthAgoMonth + "月";
this.selectDateStr = monthAgoYear + "-" + (monthAgoMonth > 9 ? monthAgoMonth : "0" + monthAgoMonth) + "-" + (monthAgoDay > 9 ? monthAgoDay : "0" + monthAgoDay);
}
},
/**
* 非vip点击
*/
clickNotVip() {
this.$refs["vipPopup"].open();
},
/**
* 点击稍后再说
*/
clickLater() {
this.$refs["vipPopup"].close();
},
/**
* 点击立即升级
*/
clickUpgradeAtOnce() {
this.clickLater();
},
/**
* 点击查看相关概念
*/
clickConceptItem(name) {
let md5 = common_vendor.CryptoJS.MD5(name).toString();
common_vendor.index.navigateTo({
url: "/pages/index/conceptDetails/conceptDetails?name=" + md5
});
},
/**
* 点击查看更多个股
*/
clickStockMore(item) {
common_vendor.index.navigateTo({
url: "/pages/concept/hotStock/hotStock?id=" + item.concept_id
});
},
/**
* 点击查看历史时间轴
*/
clickHistoricalTimeline(item) {
common_vendor.index.navigateTo({
url: "/pages/concept/historicalTimeline/historicalTimeline?id=" + item.concept_id
});
},
/**
* 获取概念中心数据
*/
getConceptCenterData() {
let dateStr = this.selectDateStr;
let selectDateTimestamp = new Date(this.selectDateStr).getTime();
let newestTimeStamp = new Date(this.newestPriceDate).getTime();
if (selectDateTimestamp > newestTimeStamp) {
dateStr = this.newestPriceDate;
}
let param = { query: this.keywords, size: 10, page: this.page, sort_by: this.sortType, isJson: 1, trade_date: dateStr };
request_api.eventRelatedConcept(param).then((res) => {
this.isRefreshing = false;
if (res.page == 1) {
this.conceptList = res.results;
} else {
this.conceptList = this.conceptList.concat(res.results);
}
if (res.page == res.total_pages) {
this.loadAll = true;
}
}).catch((error) => {
this.isRefreshing = false;
});
},
/**
* 获取最新价格数据
*/
getNewestPriceDateData() {
request_api.newestPriceDate().then((res) => {
this.newestPriceDate = res.latest_trade_date;
this.getConceptCenterData();
}).catch((error) => {
});
},
/**
* 获取会员状态
*/
getMemberStatusData() {
let token = common_vendor.index.getStorageSync("token");
if (!token) {
return;
}
request_api.membershipStatus().then((res) => {
if (res.code == 200) {
this.memberInfo = res.data;
} else
common_vendor.index.showToast({
title: res.message,
icon: "none"
});
}).catch((error) => {
});
},
/**
* 获取排行榜数据
*/
getRankListData() {
var params = {};
if (this.selectCycleIndex == 3) {
params.start_date = this.startDateStr;
params.end_date = this.endDateStr;
} else {
params.days = 3;
if (this.selectCycleIndex == 1) {
params.days = 7;
} else if (this.selectCycleIndex == 2) {
params.days = 14;
}
params.min_stock_count = 3;
}
request_api.conceptRankList(params).then((res) => {
if (this.selectTab == 0) {
this.rankList = res.data.hot_concepts;
} else if (this.selectTab == 1) {
this.rankList = res.data.cold_concepts;
} else if (this.selectTab == 2) {
this.rankList = res.data.active_concepts;
} else if (this.selectTab == 3) {
this.rankList = res.data.volatile_concepts;
} else {
this.rankList = res.data.momentum_concepts;
}
}).catch((error) => {
});
}
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_navBar2 + _easycom_uni_popup2)();
}
const _easycom_navBar = () => "../../components/navBar/navBar.js";
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_navBar + _easycom_uni_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
leftText: "概念中心",
hideNavBg: true,
hideBack: true
}),
b: common_assets._imports_0,
c: common_assets._imports_1,
d: common_vendor.o(($event) => $options.clickSearch()),
e: $data.keywords,
f: common_vendor.o(($event) => $data.keywords = $event.detail.value),
g: common_vendor.o(($event) => $options.clickRank()),
h: common_vendor.t($data.newestPriceDate),
i: common_assets._imports_2$3,
j: common_vendor.t($data.sortTypeStr),
k: common_assets._imports_3,
l: common_vendor.o(($event) => $options.clickSortType()),
m: common_assets._imports_4$2,
n: common_assets._imports_3,
o: common_vendor.o(($event) => $options.clickTransactionDate()),
p: common_vendor.s("top: " + $data.navH + "px;"),
q: common_vendor.f($data.conceptList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.concept),
b: common_vendor.o(($event) => $options.clickConceptItem(item.concept), index),
c: item.price_info
}, item.price_info ? {
d: common_vendor.t($data.getChgRateStr(item.price_info.avg_change_pct)),
e: common_vendor.n("chg " + ($data.getRateUpOrDown(item.price_info.avg_change_pct) ? "down" : "up"))
} : {}, {
f: item.price_info
}, item.price_info ? {
g: common_vendor.t(item.stock_count),
h: common_vendor.n("stockNum " + ($data.getRateUpOrDown(item.price_info.avg_change_pct) ? "down" : "up"))
} : {}, {
i: common_vendor.t(item.description),
j: common_vendor.o(($event) => $options.clickConceptItem(item.concept), index),
k: common_vendor.f(item.stocks.slice(0, 3), (sitem, sindex, i1) => {
return {
a: common_vendor.t(sitem.name),
b: sindex
};
}),
l: common_vendor.t(item.stock_count - 3),
m: common_vendor.o(($event) => $options.clickStockMore(item), index),
n: common_vendor.t(item.price_info ? item.price_info.trade_date : ""),
o: common_vendor.o(($event) => $options.clickHistoricalTimeline(item), index),
p: index
});
}),
r: common_assets._imports_1$3,
s: common_vendor.s("top: " + $data.listTop + "px;"),
t: $data.isRefreshing,
v: common_vendor.o(($event) => $options.pullDownRefresh()),
w: common_vendor.o(($event) => $options.loadMoreData()),
x: common_assets._imports_9$1,
y: common_vendor.o(($event) => $options.clickRankClose()),
z: common_assets._imports_7$1,
A: common_vendor.t($data.startDateStr),
B: common_vendor.t($data.endDateStr),
C: common_vendor.f($data.cycleList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.n("item " + ($data.selectCycleIndex == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickRankCycleListItem(index), index)
};
}),
D: $data.selectCycleIndex == 3
}, $data.selectCycleIndex == 3 ? {
E: common_vendor.t($data.selectStartDateStr),
F: common_vendor.o(($event) => $options.clickCustomDateCycle(2)),
G: common_vendor.t($data.selectEndDateStr),
H: common_vendor.o(($event) => $options.clickCustomDateCycle(3)),
I: common_vendor.o(($event) => $options.clickApply())
} : {}, {
J: common_vendor.f($data.rankTabList, (item, index, i0) => {
return common_vendor.e({
a: $data.selectTab == index
}, $data.selectTab == index ? {
b: item.selectIcon
} : {
c: item.icon
}, {
d: common_vendor.t(item.title),
e: common_vendor.n("item flex1 flexCenter " + ($data.selectTab == index ? "select" : "")),
f: index,
g: common_vendor.o(($event) => $options.clickRankTabItem(index), index)
});
}),
K: common_vendor.f($data.rankList, (item, index, i0) => {
return common_vendor.e({
a: index == 0
}, index == 0 ? {
b: common_assets._imports_8
} : {}, {
c: index == 1
}, index == 1 ? {
d: common_assets._imports_9$2
} : {}, {
e: index == 2
}, index == 2 ? {
f: common_assets._imports_10$1
} : {}, {
g: index > 2
}, index > 2 ? {
h: common_vendor.t(index + 1)
} : {}, {
i: common_vendor.t(item.name),
j: common_vendor.o(($event) => $options.clickConceptItem(item.name), index)
}, $data.selectTab == 3 || $data.selectTab == 4 ? common_vendor.e({
k: $data.selectTab == 3
}, $data.selectTab == 3 ? {
l: common_vendor.t(item.avg_change)
} : {}, {
m: $data.selectTab == 4
}, $data.selectTab == 4 ? {
n: common_vendor.t(item.total_change)
} : {}) : common_vendor.e({
o: $data.selectTab == 0 || $data.selectTab == 1
}, $data.selectTab == 0 || $data.selectTab == 1 ? {
p: common_assets._imports_11$2,
q: common_vendor.t(item.news_count)
} : {}, {
r: common_assets._imports_12$2,
s: common_vendor.t(item.news_count),
t: $data.selectTab == 2
}, $data.selectTab == 2 ? {
v: common_assets._imports_13$1,
w: common_vendor.t(item.report_count)
} : {}), $data.selectTab == 0 ? {
x: common_vendor.t(item.change_pct)
} : {}, $data.selectTab == 1 ? {
y: common_vendor.t(item.change_pct)
} : {}, $data.selectTab == 2 ? {
z: common_vendor.t(item.total_mentions)
} : {}, $data.selectTab == 3 ? {
A: common_vendor.t(item.volatility)
} : {}, $data.selectTab == 4 ? {
B: common_vendor.t(item.consecutive_days)
} : {}, {
C: index
});
}),
L: $data.selectTab == 3 || $data.selectTab == 4,
M: common_vendor.n("icon " + ($data.selectTab == 4 ? "continuousRise" : "")),
N: $data.rankTabList[$data.selectTab].selectIcon,
O: $data.selectTab == 0,
P: $data.selectTab == 1,
Q: $data.selectTab == 2,
R: $data.selectTab == 3,
S: $data.selectTab == 4,
T: common_vendor.sr("rankPopup", "634c6a80-1"),
U: common_vendor.p({
type: "bottom",
safeArea: false
}),
V: common_assets._imports_12$1,
W: common_vendor.f($data.sortTypeList, (item, index, i0) => {
return {
a: item.icon,
b: common_vendor.t(item.name),
c: index,
d: common_vendor.o(($event) => $options.clickSortListItem(item), index)
};
}),
X: common_vendor.s("margin-top:" + $data.sortListTop + "px;"),
Y: common_vendor.sr("sortTypePopup", "634c6a80-2"),
Z: common_vendor.p({
type: "top",
["mask-background-color"]: "transparent",
animation: false
}),
aa: common_vendor.o(($event) => $options.clickCancel()),
ab: common_vendor.o(($event) => $options.clickConfirm()),
ac: common_assets._imports_0$1,
ad: common_vendor.o(($event) => $options.clickPreMonth()),
ae: common_vendor.t($data.selectMonth),
af: common_vendor.o(() => {
}),
ag: common_assets._imports_1$2,
ah: common_vendor.o(($event) => $options.clickNextMonth()),
ai: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
aj: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? {
b: common_vendor.t(item.day)
} : common_vendor.e({
c: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
d: common_vendor.t(item.day)
} : {
e: common_vendor.t(item.day)
}), {
f: index,
g: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
}),
ak: common_vendor.f($data.quickTimeList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index,
c: common_vendor.o(($event) => $options.clickQuickTimeItem(index), index)
};
}),
al: common_vendor.sr("transactionDatePopup", "634c6a80-3"),
am: common_vendor.p({
type: "bottom",
safeArea: false
}),
an: common_assets._imports_13,
ao: common_assets._imports_14,
ap: common_assets._imports_15,
aq: common_assets._imports_15,
ar: common_assets._imports_16,
as: common_assets._imports_16,
at: common_assets._imports_16,
av: common_vendor.o(($event) => $options.clickLater()),
aw: common_vendor.o(($event) => $options.clickUpgradeAtOnce()),
ax: common_vendor.sr("vipPopup", "634c6a80-4"),
ay: common_vendor.p({
type: "center"
})
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/concept/concept.js.map

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../components/navBar/navBar",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,611 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.topC {
margin-top: 20rpx;
left: 0;
right: 0;
}
.topC .searchRankC {
padding: 0 25rpx;
}
.topC .searchRankC .searchC {
background-color: #292929B3;
padding: 0 25rpx;
height: 70rpx;
border-radius: 35rpx;
border: solid 1rpx #363636;
}
.topC .searchRankC .searchC .icon {
margin-right: 12rpx;
width: 25rpx;
height: auto;
}
.topC .searchRankC .searchC input {
font-size: 22rpx;
font-weight: 500;
color: white;
}
.topC .searchRankC .rank {
padding: 0 14rpx;
font-size: 28rpx;
font-weight: 500;
color: #B5B6B6;
}
.topC .dateScreenC {
padding: 20rpx 0 20rpx 27rpx;
font-size: 24rpx;
font-weight: 500;
color: #CCCDD1;
}
.topC .dateScreenC .sortTypeC {
padding: 0 24rpx;
}
.topC .dateScreenC .sortTypeC .icon {
margin-right: 14rpx;
width: 30rpx;
height: auto;
}
.topC .dateScreenC .line {
background-color: #CCCDD1;
width: 1rpx;
height: 25rpx;
}
.topC .dateScreenC .transactionDateC {
padding: 0 17rpx;
}
.topC .dateScreenC .transactionDateC .icon {
margin-right: 10rpx;
width: 23rpx;
height: auto;
}
.topC .dateScreenC .arrow {
margin-left: 7rpx;
width: 11rpx;
height: auto;
}
.conceptList {
left: 0;
right: 0;
bottom: calc(55px + env(safe-area-inset-bottom));
}
.conceptList .list {
padding: 0 25rpx;
}
.conceptList .list .item {
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 24rpx;
border-radius: 10rpx;
}
.conceptList .list .item .titleChgStockNumC {
padding: 24rpx 18rpx 0;
}
.conceptList .list .item .titleChgStockNumC .title {
margin-right: 20rpx;
font-size: 30rpx;
font-weight: bold;
color: #3D3D3D;
word-break: break-all;
}
.conceptList .list .item .titleChgStockNumC .chg {
margin-right: 20rpx;
padding: 0 13rpx;
line-height: 40rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: bold;
color: white;
}
.conceptList .list .item .titleChgStockNumC .chg.up {
background-color: #EC3440;
}
.conceptList .list .item .titleChgStockNumC .chg.down {
background-color: #355422;
}
.conceptList .list .item .titleChgStockNumC .stockNum {
flex-shrink: 0;
padding: 0 16rpx;
line-height: 36rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: bold;
}
.conceptList .list .item .titleChgStockNumC .stockNum.up {
color: #EC3440;
border: solid 2rpx #EC3440;
}
.conceptList .list .item .titleChgStockNumC .stockNum.down {
color: #355422;
border: solid 2rpx #355422;
}
.conceptList .list .item .content {
margin-top: 26rpx;
padding: 0 22rpx;
font-size: 24rpx;
font-weight: 500;
color: #71675D;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.conceptList .list .item .hotStockC {
margin-top: 30rpx;
padding: 0 20rpx;
}
.conceptList .list .item .hotStockC .title {
margin-right: 10rpx;
font-size: 24rpx;
font-weight: bold;
color: #936E5C;
}
.conceptList .list .item .hotStockC .stockList {
font-size: 22rpx;
}
.conceptList .list .item .hotStockC .stockList .stockItem {
background-color: #3D3D3D;
margin-right: 10rpx;
padding: 0 8rpx;
line-height: 36rpx;
border-radius: 5rpx 20rpx 5rpx 20rpx;
color: #EFDDD1;
}
.conceptList .list .item .hotStockC .stockList .more {
color: #936E5C;
line-height: 36rpx;
}
.conceptList .list .item .hotStockC .notVipC {
background-color: #3D3D3D;
padding: 0 21rpx 0 16rpx;
line-height: 36rpx;
border-radius: 5rpx;
font-size: 22rpx;
color: #F3C368;
}
.conceptList .list .item .hotStockC .notVipC .icon {
margin-right: 9rpx;
width: 15rpx;
height: auto;
}
.conceptList .list .item .transactionDateHistoryTimeC {
padding: 20rpx 22rpx 30rpx;
}
.conceptList .list .item .transactionDateHistoryTimeC .transactionDate {
font-size: 20rpx;
font-weight: 500;
color: #666;
}
.conceptList .list .item .transactionDateHistoryTimeC .historyTimeC {
background-color: #F3C368;
padding: 0 10rpx 0 15rpx;
line-height: 36rpx;
border-radius: 10rpx;
font-size: 22rpx;
font-weight: 500;
color: #101213;
}
.conceptList .list .item .transactionDateHistoryTimeC .historyTimeC .icon {
margin-right: 7rpx;
width: 20rpx;
height: auto;
}
.rankPopup {
background-color: white;
padding-bottom: env(safe-area-inset-bottom);
border-radius: 20rpx 20rpx 0 0;
}
.rankPopup .popTitle {
padding-top: 30rpx;
font-size: 36rpx;
font-weight: bold;
color: #333;
text-align: center;
}
.rankPopup .closeC {
padding: 26rpx;
top: 0;
right: 0;
}
.rankPopup .closeC .icon {
width: 20rpx;
height: auto;
}
.rankPopup .statisticsC {
background: linear-gradient(-30deg, #F3C368 0%, #FAD590 100%);
margin: 20rpx 25rpx 0;
padding: 24rpx 30rpx;
border-radius: 10rpx;
}
.rankPopup .statisticsC .titleRangeC .icon {
margin-right: 21rpx;
width: 80rpx;
height: auto;
}
.rankPopup .statisticsC .titleRangeC .title {
font-size: 30rpx;
font-weight: bold;
}
.rankPopup .statisticsC .titleRangeC .range {
font-size: 22rpx;
font-weight: 500;
color: #232323;
}
.rankPopup .statisticsC .cycleC {
margin-top: 20rpx;
}
.rankPopup .statisticsC .cycleC .title {
font-size: 24rpx;
font-weight: bold;
}
.rankPopup .statisticsC .cycleC .list .item {
background-color: #ffffff4D;
margin-right: 15rpx;
padding: 0 15rpx;
line-height: 50rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-weight: 500;
}
.rankPopup .statisticsC .cycleC .list .item.select {
background-color: #ffffff99;
}
.rankPopup .statisticsC .rangeC {
margin-top: 10rpx;
font-size: 26rpx;
}
.rankPopup .statisticsC .rangeC .startDateC {
padding: 0 10rpx;
border: solid 2rpx white;
border-radius: 10rpx;
}
.rankPopup .statisticsC .rangeC .and {
margin: 0 10rpx;
}
.rankPopup .statisticsC .rangeC .endDateC {
padding: 0 10rpx;
border: solid 2rpx white;
border-radius: 10rpx;
}
.rankPopup .statisticsC .rangeC .apply {
padding: 0 10rpx;
}
.rankPopup .tabC {
background-color: #FFF3DD;
margin: 20rpx 25rpx 0;
border-radius: 10rpx 10rpx 0 0;
}
.rankPopup .tabC .item {
height: 60rpx;
font-size: 24rpx;
font-weight: bold;
color: #070707;
}
.rankPopup .tabC .item .icon {
margin-right: 7rpx;
width: 11rpx;
height: auto;
}
.rankPopup .tabC .item.select {
background-color: #FF7722;
color: white;
}
.rankPopup .tabC .item:last-child .icon {
width: 15rpx;
height: auto;
}
.rankPopup .rankList {
margin-top: 22rpx;
padding: 0 25rpx;
max-height: 500rpx;
overflow-y: scroll;
}
.rankPopup .rankList .item {
margin-bottom: 20rpx;
padding: 20rpx 22rpx;
border-radius: 10rpx;
border: solid 1rpx #FCE2B2;
}
.rankPopup .rankList .item .rankIcon {
margin-right: 34rpx;
width: 35rpx;
height: auto;
}
.rankPopup .rankList .item .rankIndex {
background-color: #898989;
margin-right: 34rpx;
width: 36rpx;
line-height: 41rpx;
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
font-size: 24rpx;
color: #F7FAFC;
text-align: center;
}
.rankPopup .rankList .item .title {
font-size: 26rpx;
font-weight: bold;
color: #3D3D3D;
}
.rankPopup .rankList .item .calendarBrowseC {
font-size: 24rpx;
font-weight: 500;
color: #936E5C;
}
.rankPopup .rankList .item .calendarBrowseC .chgC {
margin-right: 30rpx;
}
.rankPopup .rankList .item .calendarBrowseC .chgC .icon {
margin-right: 6rpx;
width: 15rpx;
height: auto;
}
.rankPopup .rankList .item .calendarBrowseC .calendarC {
margin-right: 30rpx;
}
.rankPopup .rankList .item .calendarBrowseC .calendarC .icon {
margin-right: 6rpx;
width: 16rpx;
height: auto;
}
.rankPopup .rankList .item .calendarBrowseC .browseC .icon {
margin-right: 6rpx;
width: 17rpx;
height: auto;
}
.rankPopup .rankList .item .valueC {
background-color: #FF7722;
padding: 0 24rpx;
height: 40rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-weight: 500;
color: white;
}
.rankPopup .rankList .item .valueC .icon {
margin-right: 6rpx;
width: 11rpx;
height: auto;
}
.rankPopup .rankList .item .valueC .icon.continuousRise {
width: 15rpx;
height: auto;
}
.sortTypePopup {
background-color: white;
margin-left: calc(100% - (170rpx + 120rpx));
width: 170rpx;
box-shadow: 0 5rpx 10px 0 rgba(7, 7, 7, 0.15);
border-radius: 10rpx;
}
.sortTypePopup .arrow {
top: -13rpx;
left: 38rpx;
width: 26rpx;
height: auto;
}
.sortTypePopup .list .item {
padding: 20rpx;
font-size: 24rpx;
font-weight: 500;
color: #444;
}
.sortTypePopup .list .item .icon {
margin-right: 11rpx;
width: 20rpx;
height: 20rpx;
}
.transactionDatePopup {
background-color: white;
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
border-radius: 20rpx 20rpx 0 0;
}
.transactionDatePopup .btnTitleC .btn {
padding: 20rpx 26rpx;
font-size: 28rpx;
font-weight: 500;
}
.transactionDatePopup .btnTitleC .btn.cancel {
color: #727A8E;
}
.transactionDatePopup .btnTitleC .btn.confirm {
color: #D79412;
}
.transactionDatePopup .btnTitleC .title {
font-size: 36rpx;
font-weight: bold;
text-align: center;
}
.transactionDatePopup .yearMonthC {
background-color: #F7F7F7;
margin: 0 25rpx;
height: 70rpx;
border-radius: 35rpx;
}
.transactionDatePopup .yearMonthC .btn {
padding: 0 52rpx;
}
.transactionDatePopup .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.transactionDatePopup .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.transactionDatePopup .weekList {
padding: 0 38rpx;
}
.transactionDatePopup .weekList .item {
margin-right: 13rpx;
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.transactionDatePopup .monthDateList {
padding: 0 38rpx;
}
.transactionDatePopup .monthDateList .item {
margin-bottom: 12rpx;
width: calc(100%/7);
}
.transactionDatePopup .monthDateList .item .date {
background-color: #f8f8f8;
width: calc(100% - 10rpx);
line-height: 64rpx;
border-radius: 15rpx;
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
text-align: center;
}
.transactionDatePopup .monthDateList .item .date.select {
background-color: #F2C367;
color: white;
}
.transactionDatePopup .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}
.transactionDatePopup .quickTimeC {
margin-top: 16rpx;
}
.transactionDatePopup .quickTimeC .item {
margin-right: 25rpx;
width: 120rpx;
line-height: 56rpx;
border-radius: 30rpx;
border: solid 2rpx #4E4E4E;
font-size: 24rpx;
font-weight: 500;
color: #4E4E4E;
text-align: center;
}
.transactionDatePopup .quickTimeC .item:last-child {
margin-right: 0;
}
.vipPopup {
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin: 0 95rpx;
padding-bottom: 34rpx;
width: 560rpx;
border-radius: 10rpx;
}
.vipPopup .topIcon {
margin: -60rpx 0 0 calc((100% - 143rpx)/2);
width: 143rpx;
height: auto;
}
.vipPopup .popTitle {
margin-top: 28rpx;
font-size: 40rpx;
font-weight: bold;
color: #101213;
text-align: center;
}
.vipPopup .popSubtitle {
margin-top: 20rpx;
font-size: 24rpx;
font-weight: 500;
color: #493F2B;
text-align: center;
}
.vipPopup .moduleC {
background-color: white;
margin: 0 30rpx 20rpx;
padding-top: 25rpx;
border-radius: 10rpx;
}
.vipPopup .moduleC .section {
padding: 0 25rpx;
font-size: 26rpx;
font-weight: bold;
color: #333;
}
.vipPopup .moduleC .section .version {
margin-left: 18rpx;
padding: 0 15rpx;
line-height: 32rpx;
border-radius: 10rpx;
font-size: 22rpx;
}
.vipPopup .moduleC .section .version.free {
background-color: #3D3D3D;
color: #FEFCFB;
}
.vipPopup .moduleC .section .version.pro {
background-color: #F2C367;
color: #3D3D3D;
}
.vipPopup .moduleC .visitC {
margin: 18rpx 24rpx 0;
height: 60rpx;
}
.vipPopup .moduleC .visitC .line {
background-color: #F2C367;
top: 0;
left: 0;
width: 44rpx;
height: 100%;
border-radius: 7rpx 0 0 7rpx;
}
.vipPopup .moduleC .visitC .contentC {
background-color: #F7F7F7;
margin-left: 6rpx;
padding: 0 15rpx;
height: 100%;
border-radius: 10rpx;
font-size: 24rpx;
font-weight: 500;
color: #3D3D3D;
}
.vipPopup .moduleC .visitC .contentC .icon {
margin-right: 14rpx;
width: 25rpx;
height: auto;
}
.vipPopup .moduleC .list {
padding-bottom: 10rpx;
}
.vipPopup .moduleC .list .item {
padding: 10rpx 25rpx;
font-size: 24rpx;
font-weight: 500;
color: #333;
}
.vipPopup .moduleC .list .item .icon {
margin-right: 13rpx;
width: 27rpx;
height: auto;
}
.vipPopup .moduleC.visit {
margin-top: 20rpx;
padding-bottom: 25rpx;
}
.vipPopup .btnC {
margin: 28rpx 92rpx 0;
}
.vipPopup .btnC .btn {
line-height: 60rpx;
border-radius: 10rpx;
font-size: 24rpx;
font-weight: bold;
text-align: center;
}
.vipPopup .btnC .btn.later {
background-color: #EDEDED;
margin-right: 56rpx;
}
.vipPopup .btnC .btn.upgrade {
background-color: #F2C367;
}

View File

@@ -0,0 +1,402 @@
"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"),
contentTop: "",
conceptId: "",
//概念id
conceptName: "",
weekList: ["一", "二", "三", "四", "五", "六", "日"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: "",
//结束日期
chgStockData: null,
//涨跌幅和股票数据
newsList: [],
//新闻数据
reportList: [],
//研报数据
selectNewsOrReport: 0,
//0新闻1研报
getRateUpOrDown: utils_util.getRateUpOrDown,
getChgRateStr: utils_util.getChgRateStr
};
},
onLoad(e) {
this.contentTop = this.navH + 64 / 750 * common_vendor.inject("windowWidth");
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01";
this.endDateStr = this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.generateMonthDateListData();
if (e.id) {
this.conceptId = e.id;
this.getTimelineData();
}
},
methods: {
getContent(item) {
if (utils_util.isValidJSON(item.content)) {
return JSON.parse(item.content).content;
} else {
return item.content;
}
},
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
let selectYear = selectDate.getFullYear();
let selectMonth = selectDate.getMonth() + 1;
let selectDay = selectDate.getDate();
this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay);
},
/**
* 生成日期数组
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() || 7;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({ date: date2, year: i, month: newMonth, day: newDay, isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false, isCurrentMonth: true, isLastDay: newDay == currentMonthDay ? true : false, timestamp: time });
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time });
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() || 7;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time });
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
this.getTimelineData();
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
this.getTimelineData();
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
this.getTimelineData();
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
this.chgStockData = item;
this.getNewsData();
this.getReportData();
}
},
/**
* 点击切换新闻或研报
* @param {Object} index
*/
clickNewsOrReportItem(index) {
common_vendor.index.__f__("log", "at pages/concept/historicalTimeline/historicalTimeline.vue:332", this.selectNewsOrReport, index);
if (this.selectNewsOrReport != index) {
this.selectNewsOrReport = index;
}
},
/**
* 点击查看新闻详情
* @param {Object} item
*/
clickNewsItem(item) {
common_vendor.index.navigateTo({
url: "/pages/concept/newsDetails/newsDetails?info=" + encodeURIComponent(JSON.stringify(item))
});
},
/**
* 点击查看研报详情
* @param {Object} item
*/
clickReportItem(item) {
common_vendor.index.__f__("log", "at pages/concept/historicalTimeline/historicalTimeline.vue:351", item);
common_vendor.index.navigateTo({
url: "/pages/concept/reportDetails/reportDetails?info=" + encodeURIComponent(JSON.stringify(item))
});
},
/**
* 获取时间序列数据
*/
getTimelineData() {
let param = { start_date: this.startDateStr, end_date: this.endDateStr };
request_api.priceTimeline(this.conceptId, param).then((res) => {
if (res.timeseries) {
this.conceptName = res.concept_name;
let timeseries = res.timeseries;
let monthList = this.monthDateList[this.selectMonthIndex];
for (let item of monthList) {
for (let item1 of timeseries) {
if (item.date == item1.trade_date) {
item.avg_change_pct = item1.avg_change_pct;
item.stock_count = item1.stock_count;
if (item.date == this.selectDateStr) {
this.chgStockData = item;
}
}
}
}
this.getNewsData();
this.getReportData();
}
}).catch((error) => {
});
},
/**
* 获取新闻数据
*/
getNewsData() {
let param = { query: this.conceptName, end_date: this.selectDateStr, exact_match: 1, top_k: 100 };
request_api.conceptNews(param).then((res) => {
this.newsList = res;
}).catch((error) => {
});
},
/**
* 获取时间序列数据
*/
getReportData() {
let param = { query: this.conceptName, start_date: this.selectDateStr, mode: "text", exact_match: 1 };
request_api.conceptReport(param).then((res) => {
for (let item of res.data.results) {
item.content = item.content.replace(/'/g, '"');
}
this.reportList = res.data.results;
}).catch((error) => {
});
}
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
_easycom_navBar2();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
if (!Math) {
_easycom_navBar();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
leftText: "历史时间轴",
hideNavBg: true
}),
b: common_assets._imports_0,
c: common_vendor.t($data.conceptName),
d: common_vendor.s("top: " + $data.navH + "px;"),
e: common_assets._imports_0$1,
f: common_vendor.o(($event) => $options.clickPreMonth()),
g: common_vendor.t($data.selectMonth),
h: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
i: common_assets._imports_1$2,
j: common_vendor.o(($event) => $options.clickNextMonth()),
k: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
l: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? common_vendor.e({
b: common_vendor.t(item.day),
c: item.avg_change_pct
}, item.avg_change_pct ? {
d: common_vendor.t($data.getChgRateStr(item.avg_change_pct))
} : {}, {
e: common_vendor.n("date select " + (item.avg_change_pct ? $data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
}) : common_vendor.e({
f: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
g: common_vendor.t(item.day)
} : common_vendor.e({
h: common_vendor.t(item.day),
i: item.avg_change_pct
}, item.avg_change_pct ? {
j: common_vendor.t($data.getChgRateStr(item.avg_change_pct)),
k: common_vendor.n("chg " + ($data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up"))
} : {}, {
l: common_vendor.n("date " + (item.avg_change_pct ? $data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
})), {
m: index,
n: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
}),
m: common_vendor.t($data.selectDateStr),
n: $data.chgStockData && $data.chgStockData.avg_change_pct
}, $data.chgStockData && $data.chgStockData.avg_change_pct ? common_vendor.e({
o: $data.getRateUpOrDown($data.chgStockData.avg_change_pct)
}, $data.getRateUpOrDown($data.chgStockData.avg_change_pct) ? {
p: common_assets._imports_3$5
} : {
q: common_assets._imports_4$7
}, {
r: common_vendor.t($data.getChgRateStr($data.chgStockData.avg_change_pct)),
s: common_vendor.n("chg " + ($data.getRateUpOrDown($data.chgStockData.avg_change_pct) ? "down" : "up")),
t: common_vendor.t($data.chgStockData.stock_count)
}) : {}, {
v: common_assets._imports_5$2,
w: common_vendor.t($data.newsList.length),
x: common_vendor.n("num " + ($data.selectNewsOrReport == 0 ? "select" : "")),
y: common_vendor.o(($event) => $options.clickNewsOrReportItem(0)),
z: common_vendor.t($data.reportList.length),
A: common_vendor.n("num " + ($data.selectNewsOrReport == 1 ? "select" : "")),
B: common_vendor.o(($event) => $options.clickNewsOrReportItem(1)),
C: $data.selectNewsOrReport == 0
}, $data.selectNewsOrReport == 0 ? {
D: common_vendor.f($data.newsList, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: common_vendor.t(item.detail),
c: index,
d: common_vendor.o(($event) => $options.clickNewsItem(item), index)
};
})
} : {
E: common_vendor.f($data.reportList, (item, index, i0) => {
return {
a: common_vendor.t(item.report_title),
b: common_vendor.t($options.getContent(item)),
c: index,
d: common_vendor.o(($event) => $options.clickReportItem(item), index)
};
})
}, {
F: common_vendor.s("top: " + $data.contentTop + "px;")
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/concept/historicalTimeline/historicalTimeline.js.map

View File

@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../../components/navBar/navBar"
}
}

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="adc20db2-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="timelineTitle fixed" style="{{d}}">{{c}}- 历史时间轴</view><view class="dateStatisticsC fixed" style="{{F}}"><view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{h}}">{{g}}</picker></view><view class="btn" bindtap="{{j}}"><image class="icon" src="{{i}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{k}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{l}}" wx:for-item="item" wx:key="m" class="item flexColumnCenter" bindtap="{{item.n}}"><block wx:if="{{item.a}}"><view class="{{item.e}}">{{item.b}} <view wx:if="{{item.c}}" class="chg">{{item.d}}%</view></view></block><block wx:else><block wx:if="{{item.f}}"><view class="date notCurrentMonth">{{item.g}}</view></block><block wx:else><view class="{{item.l}}">{{item.h}} <view wx:if="{{item.i}}" class="{{item.k}}">{{item.j}}%</view></view></block></block></view></view></view><view class="statisticsC"><view class="date">{{m}}统计</view><view wx:if="{{n}}" class="chgStockNumC flex"><view class="chgC flex flex1"><view class="title">涨跌幅</view><image wx:if="{{o}}" class="icon" src="{{p}}" mode="widthFix"></image><image wx:else class="icon" src="{{q}}" mode="widthFix"></image><view class="{{s}}">{{r}}%</view></view><view class="stockNumC flex flex1"><view class="title">统计股票</view><view class="stockNum">{{t}} 只股票</view></view></view><view class="newsReportC flex"><image class="icon" src="{{v}}" mode="widthFix"></image><text class="{{x}}" bindtap="{{y}}">{{w}} 条新闻 · </text><text class="{{A}}" decode bindtap="{{B}}"> {{z}} 份研报</text></view><view class="list"><block wx:if="{{C}}"><view wx:for="{{D}}" wx:for-item="item" wx:key="c" class="item" bindtap="{{item.d}}"><view class="flex"><view class="type news">新闻</view><view class="title flex1">{{item.a}}</view></view><view class="content">{{item.b}}</view></view></block><block wx:else><view wx:for="{{E}}" wx:for-item="item" wx:key="c" class="item" bindtap="{{item.d}}"><view class="flex"><view class="type report">研报</view><view class="title flex1">{{item.a}}</view></view><view class="content">{{item.b}}</view></view></block></view></view></view></view>

View File

@@ -0,0 +1,205 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.timelineTitle {
background-color: #FFF9F5;
left: 0;
right: 0;
margin: 0 25rpx;
padding: 30rpx 27rpx 0;
border-radius: 10rpx 10rpx 0 0;
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.dateStatisticsC {
background-color: #FFF9F5;
left: 0;
right: 0;
bottom: 86rpx;
margin: 0 25rpx;
padding: 24rpx 25rpx 0;
border-radius: 0 0 10rpx 10rpx;
overflow-y: scroll;
}
.dateStatisticsC .dateC {
background-color: white;
box-shadow: 0 5rpx 10rpx 0 rgba(127, 127, 127, 0.1);
border-radius: 10rpx;
padding: 30rpx 25rpx 0;
}
.dateStatisticsC .dateC .yearMonthC {
background-color: #F7F7F7;
height: 70rpx;
border-radius: 35rpx;
}
.dateStatisticsC .dateC .yearMonthC .btn {
padding: 0 52rpx;
}
.dateStatisticsC .dateC .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.dateStatisticsC .dateC .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.dateStatisticsC .dateC .weekList .item {
margin-right: 13rpx;
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.dateStatisticsC .dateC .monthDateList .item {
margin-bottom: 12rpx;
width: calc(100%/7);
}
.dateStatisticsC .dateC .monthDateList .item .date {
background-color: #f8f8f8;
padding: 4rpx 0;
width: calc(100% - 10rpx);
height: 72rpx;
border-radius: 10rpx;
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
text-align: center;
}
.dateStatisticsC .dateC .monthDateList .item .date .chg {
font-size: 18rpx;
}
.dateStatisticsC .dateC .monthDateList .item .date .chg.up {
color: #EC3440;
}
.dateStatisticsC .dateC .monthDateList .item .date .chg.down {
color: #38A169;
}
.dateStatisticsC .dateC .monthDateList .item .date.up {
background-color: #FFD6D9;
}
.dateStatisticsC .dateC .monthDateList .item .date.down {
background-color: #CEF1DE;
}
.dateStatisticsC .dateC .monthDateList .item .date.select.up {
background-color: #EC3440;
color: white;
}
.dateStatisticsC .dateC .monthDateList .item .date.select.up .chg {
color: white;
}
.dateStatisticsC .dateC .monthDateList .item .date.select.down {
background-color: #38A169;
color: white;
}
.dateStatisticsC .dateC .monthDateList .item .date.select.down .chg {
color: white;
}
.dateStatisticsC .dateC .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}
.dateStatisticsC .statisticsC {
background-color: white;
margin-top: 20rpx;
padding: 28rpx 20rpx 0;
border-radius: 10rpx;
}
.dateStatisticsC .statisticsC .date {
font-size: 30rpx;
font-weight: 500;
text-align: center;
}
.dateStatisticsC .statisticsC .chgStockNumC {
margin-top: 36rpx;
padding: 0 13rpx 28rpx;
border-bottom: solid 1rpx #EDEDED;
font-size: 26rpx;
}
.dateStatisticsC .statisticsC .chgStockNumC .title {
margin-right: 18rpx;
font-weight: 500;
color: #94979C;
}
.dateStatisticsC .statisticsC .chgStockNumC .chgC .icon {
margin-right: 9rpx;
width: 17rpx;
height: auto;
}
.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg {
font-weight: bold;
}
.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.up {
color: #EC3440;
}
.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.down {
color: #38A169;
}
.dateStatisticsC .statisticsC .chgStockNumC .stockNum {
font-weight: bold;
color: #070707;
}
.dateStatisticsC .statisticsC .newsReportC {
padding-top: 20rpx;
font-size: 28rpx;
font-weight: bold;
}
.dateStatisticsC .statisticsC .newsReportC .icon {
margin-right: 20rpx;
width: 24rpx;
height: auto;
}
.dateStatisticsC .statisticsC .newsReportC .num {
color: #333;
}
.dateStatisticsC .statisticsC .newsReportC .num.select {
color: #FF7723;
}
.dateStatisticsC .statisticsC .list .item {
padding: 30rpx 0;
border-bottom: solid 1rpx #EDEDED;
}
.dateStatisticsC .statisticsC .list .item .type {
margin-right: 18rpx;
padding: 0 9rpx;
line-height: 40rpx;
border-radius: 5rpx;
font-size: 22rpx;
font-weight: 500;
}
.dateStatisticsC .statisticsC .list .item .type.news {
background-color: #F2C367;
color: #070707;
}
.dateStatisticsC .statisticsC .list .item .type.report {
background-color: #3D3F3C;
color: #F2C367;
}
.dateStatisticsC .statisticsC .list .item .title {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 26rpx;
font-weight: bold;
color: #070707;
}
.dateStatisticsC .statisticsC .list .item .content {
margin-top: 20rpx;
font-size: 24rpx;
font-weight: 500;
color: #333;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}

View File

@@ -0,0 +1,380 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
const request_api = require("../../../request/api.js");
const common_assets = require("../../../common/assets.js");
const _sfc_main = {
data() {
return {
navH: common_vendor.inject("navHeight"),
listTop: "",
conceptId: "",
//概念id
conceptName: "",
//概念名称
weekList: ["一", "二", "三", "四", "五", "六", "日"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//交易日期选中日期
quickTimeList: ["今天", "昨天", "一周前", "一月前"],
stockList: []
//个股列表
};
},
onLoad(e) {
this.listTop = this.navH + (46 + 22) / 750 * common_vendor.inject("windowWidth");
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.generateMonthDateListData();
if (e.id) {
this.conceptId = e.id;
this.getConceptHotStockData();
}
},
methods: {
/**
* 生成日历数据
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() || 7;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year: i,
month: newMonth,
day: newDay,
isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false,
isCurrentMonth: true,
timestamp: time
});
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
timestamp: time
});
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() || 7;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
timestamp: time
});
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击时间筛选
*/
clickDateScreen() {
this.$refs["datePopup"].open();
},
/**
* 点击展开或收起
* @param {Object} index
*/
clickExpandOrRetract(index) {
this.stockList[index].isExpand = !this.stockList[index].isExpand;
},
/**
* 点击取消
*/
clickCancel() {
this.$refs["datePopup"].close();
},
/**
* 点击确认
*/
clickConfirm() {
this.clickCancel();
this.getConceptHotStockData();
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
this.selectMonth = year + "年" + month + "月";
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
this.selectMonth = year + "年" + month + "月";
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
}
},
/**
* 点击快捷时间选择
*/
clickQuickTimeItem(index) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
if (index == 0) {
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
} else if (index == 1) {
let yesterday = new Date(currentDate);
yesterday.setDate(yesterday.getDate() - 1);
let yesterdayYear = yesterday.getFullYear();
let yesterdayMonth = yesterday.getMonth() + 1;
let yesterdayDay = yesterday.getDate();
this.selectMonthIndex = (20 - (currentYear - yesterdayYear)) * 12 + yesterdayMonth - 1;
this.selectMonth = yesterdayYear + "年" + yesterdayMonth + "月";
this.selectDateStr = yesterdayYear + "-" + (yesterdayMonth > 9 ? yesterdayMonth : "0" + yesterdayMonth) + "-" + (yesterdayDay > 9 ? yesterdayDay : "0" + yesterdayDay);
} else if (index == 2) {
let weekAgo = new Date(currentDate);
weekAgo.setDate(weekAgo.getDate() - 7);
let weekAgoYear = weekAgo.getFullYear();
let weekAgoMonth = weekAgo.getMonth() + 1;
let weekAgoDay = weekAgo.getDate();
this.selectMonthIndex = (20 - (currentYear - weekAgoYear)) * 12 + weekAgoMonth - 1;
this.selectMonth = weekAgoYear + "年" + weekAgoMonth + "月";
this.selectDateStr = weekAgoYear + "-" + (weekAgoMonth > 9 ? weekAgoMonth : "0" + weekAgoMonth) + "-" + (weekAgoDay > 9 ? weekAgoDay : "0" + weekAgoDay);
} else {
let monthAgo = new Date(currentDate);
monthAgo.setDate(monthAgo.getDate() - 30);
let monthAgoYear = monthAgo.getFullYear();
let monthAgoMonth = monthAgo.getMonth() + 1;
let monthAgoDay = monthAgo.getDate();
this.selectMonthIndex = (20 - (currentYear - monthAgoYear)) * 12 + monthAgoMonth - 1;
this.selectMonth = monthAgoYear + "年" + monthAgoMonth + "月";
this.selectDateStr = monthAgoYear + "-" + (monthAgoMonth > 9 ? monthAgoMonth : "0" + monthAgoMonth) + "-" + (monthAgoDay > 9 ? monthAgoDay : "0" + monthAgoDay);
}
},
/**
* 获取概念相关个股数据
*/
getConceptHotStockData() {
let params = {
trade_date: this.selectDateStr
};
request_api.conceptDetails(this.conceptId, params).then((res) => {
this.conceptName = res.concept;
this.stockList = res.stocks;
let codes = this.stockList.map((item) => {
if (item.code != null)
return item.code;
return "";
});
common_vendor.index.__f__("log", "at pages/concept/hotStock/hotStock.vue:383", codes);
request_api.conceptOtherDetails(this.conceptId, {
days: 1,
codes,
isJson: 1
}).then((data) => {
this.stockList = this.stockList.map((item) => {
if (item.code != null) {
item.change_percent = data.data[item.code].stats.change_percent;
}
return item;
});
common_vendor.index.__f__("log", "at pages/concept/hotStock/hotStock.vue:397", "===============");
common_vendor.index.__f__("log", "at pages/concept/hotStock/hotStock.vue:398", this.stockList);
}).catch((error) => {
common_vendor.index.__f__("log", "at pages/concept/hotStock/hotStock.vue:400", "=-=-=-=-=-=-=-=-=");
});
}).catch((error) => {
});
}
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_navBar2 + _easycom_uni_popup2)();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_navBar + _easycom_uni_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.p({
leftText: "热门个股",
hideNavBg: true
}),
b: common_assets._imports_0,
c: common_vendor.t($data.conceptName),
d: common_assets._imports_1$9,
e: common_vendor.o(($event) => $options.clickDateScreen()),
f: common_vendor.s("top:" + $data.navH + "px;"),
g: common_vendor.f($data.stockList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.name),
b: common_vendor.t(item.code),
c: item.change_percent
}, item.change_percent ? {
d: common_vendor.t(item.change_percent >= 0 ? "+" + item.change_percent : item.change_percent)
} : {}, {
e: item.isExpand
}, item.isExpand ? {
f: common_assets._imports_2$7
} : {
g: common_assets._imports_3$6
}, {
h: common_vendor.o(($event) => $options.clickExpandOrRetract(index), index),
i: item.isExpand
}, item.isExpand ? {
j: common_vendor.t(item.reason)
} : {}, {
k: index
});
}),
h: common_vendor.s("top:" + $data.listTop + "px;"),
i: common_vendor.o(($event) => $options.clickCancel()),
j: common_vendor.o(($event) => $options.clickConfirm()),
k: common_assets._imports_0$1,
l: common_vendor.o(($event) => $options.clickPreMonth()),
m: common_vendor.t($data.selectMonth),
n: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
o: common_assets._imports_1$2,
p: common_vendor.o(($event) => $options.clickNextMonth()),
q: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
r: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? {
b: common_vendor.t(item.day)
} : common_vendor.e({
c: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
d: common_vendor.t(item.day)
} : {
e: common_vendor.t(item.day)
}), {
f: index,
g: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
}),
s: common_vendor.f($data.quickTimeList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index,
c: common_vendor.o(($event) => $options.clickQuickTimeItem(index), index)
};
}),
t: common_vendor.sr("datePopup", "0dffb7e7-1"),
v: common_vendor.p({
type: "bottom",
safeArea: false
})
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/concept/hotStock/hotStock.js.map

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../../components/navBar/navBar",
"uni-popup": "../../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="0dffb7e7-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="titleScreenC fixed flex" style="{{f}}"><view class="title flex1">{{c}} - 相关个股</view><view class="screenC flex" bindtap="{{e}}"><view>时间筛选</view><image class="arrow" src="{{d}}" mode="widthFix"></image></view></view><scroll-view scroll-y class="stockList fixed" style="{{h}}"><view class="list"><view wx:for="{{g}}" wx:for-item="item" wx:key="k" class="item"><view class="stockInfoC flex" bindtap="{{item.h}}"><view class="titleCodeC"><view class="title">{{item.a}}</view><view class="code">{{item.b}}</view></view><view wx:if="{{item.c}}" class="chg flex1">{{item.d}}%</view><view wx:else class="chg flex1">-</view><view class="reasonProjectC flex"><view>REASON/项目</view><image wx:if="{{item.e}}" class="arrow expand" src="{{item.f}}" mode="widthFix"></image><image wx:else class="arrow" src="{{item.g}}" mode="widthFix"></image></view></view><view wx:if="{{item.i}}" class="reasonProjectContentC"><view class="reasonC"><text class="title">REASON</text><text>{{item.j}}</text></view><view class="projectC"><text class="title">项目:</text><text>已进入芥末味夏威夷果仁/黑金蒜香茉莉翡翠豆两款产品</text></view></view></view></view></scroll-view><uni-popup wx:if="{{v}}" class="r" u-s="{{['d']}}" u-r="datePopup" u-i="0dffb7e7-1" bind:__l="__l" u-p="{{v}}"><view class="datePopup"><view class="btnTitleC flex"><view class="btn cancel" bindtap="{{i}}">取消</view><view class="title flex1">交易日期</view><view class="btn confirm" bindtap="{{j}}">确认</view></view><view class="yearMonthC flex"><view class="btn" bindtap="{{l}}"><image class="icon" src="{{k}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{n}}"><view>{{m}}</view></picker></view><view class="btn" bindtap="{{p}}"><image class="icon" src="{{o}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{q}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{r}}" wx:for-item="item" wx:key="f" class="item flexColumnCenter" bindtap="{{item.g}}"><block wx:if="{{item.a}}"><view class="date select">{{item.b}}</view></block><block wx:else><block wx:if="{{item.c}}"><view class="date notCurrentMonth">{{item.d}}</view></block><block wx:else><view class="date">{{item.e}}</view></block></block></view></view><view class="quickTimeC flexCenter"><view wx:for="{{s}}" wx:for-item="item" wx:key="b" class="item" bindtap="{{item.c}}">{{item.a}}</view></view></view></uni-popup></view>

View File

@@ -0,0 +1,205 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.titleScreenC {
background-color: #FFF9F5;
left: 0;
right: 0;
margin: 0 25rpx;
padding: 22rpx 25rpx 0;
border-radius: 10rpx 10rpx 0 0;
}
.titleScreenC .title {
font-size: 28rpx;
font-weight: bold;
color: #2B2B2B;
}
.titleScreenC .screenC {
padding: 0 20rpx;
line-height: 42rpx;
border-radius: 23rpx;
border: solid 2rpx #F3C368;
font-size: 22rpx;
color: #E3AA3D;
}
.titleScreenC .screenC .arrow {
margin-left: 7rpx;
width: 12rpx;
height: auto;
}
.stockList {
background-color: #FFF9F5;
left: 0;
width: calc(100% - 50rpx);
bottom: 62rpx;
margin: 0 25rpx;
border-radius: 0 0 10rpx 10rpx;
}
.stockList .list {
padding: 16rpx 25rpx;
}
.stockList .list .item {
background-color: white;
box-shadow: 0 5rpx 10rpx 0 rgba(127, 127, 127, 0.08);
margin-bottom: 20rpx;
padding: 0 20rpx;
border-radius: 10rpx;
}
.stockList .list .item .stockInfoC {
padding: 16rpx 0;
}
.stockList .list .item .stockInfoC .titleCodeC .title {
font-size: 26rpx;
font-weight: bold;
color: #222;
}
.stockList .list .item .stockInfoC .titleCodeC .code {
font-size: 20rpx;
font-weight: 500;
color: #888;
}
.stockList .list .item .stockInfoC .chg {
font-size: 24rpx;
font-weight: bold;
text-align: center;
}
.stockList .list .item .stockInfoC .chg.up {
color: #EC3440;
}
.stockList .list .item .stockInfoC .chg.down {
color: #38A169;
}
.stockList .list .item .stockInfoC .industry {
font-size: 24rpx;
font-weight: 500;
color: #333;
text-align: center;
}
.stockList .list .item .stockInfoC .reasonProjectC {
font-size: 24rpx;
font-weight: 500;
color: #DA9000;
}
.stockList .list .item .stockInfoC .reasonProjectC .arrow {
margin-left: 10rpx;
width: 10rpx;
height: auto;
}
.stockList .list .item .stockInfoC .reasonProjectC .arrow.expand {
margin-left: 6rpx;
width: 14rpx;
height: auto;
}
.stockList .list .item .reasonProjectContentC {
margin: 0 5rpx;
border-top: solid 1rpx #F0F0F0;
padding: 12rpx 9rpx 22rpx;
font-size: 24rpx;
font-weight: 500;
color: #666;
}
.stockList .list .item .reasonProjectContentC .title {
color: #DA9000;
}
.stockList .list .item .reasonProjectContentC .projectC {
margin-top: 6rpx;
}
.datePopup {
background-color: white;
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
border-radius: 20rpx 20rpx 0 0;
}
.datePopup .btnTitleC .btn {
padding: 20rpx 26rpx;
font-size: 28rpx;
font-weight: 500;
}
.datePopup .btnTitleC .btn.cancel {
color: #727A8E;
}
.datePopup .btnTitleC .btn.confirm {
color: #D79412;
}
.datePopup .btnTitleC .title {
font-size: 36rpx;
font-weight: bold;
text-align: center;
}
.datePopup .yearMonthC {
background-color: #F7F7F7;
margin: 0 25rpx;
height: 70rpx;
border-radius: 35rpx;
}
.datePopup .yearMonthC .btn {
padding: 0 52rpx;
}
.datePopup .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.datePopup .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.datePopup .weekList {
padding: 0 38rpx;
}
.datePopup .weekList .item {
margin-right: 13rpx;
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.datePopup .monthDateList {
padding: 0 38rpx;
}
.datePopup .monthDateList .item {
margin-bottom: 12rpx;
width: calc(100%/7);
}
.datePopup .monthDateList .item .date {
background-color: #f8f8f8;
width: calc(100% - 10rpx);
line-height: 64rpx;
border-radius: 15rpx;
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
text-align: center;
}
.datePopup .monthDateList .item .date.select {
background-color: #F2C367;
color: white;
}
.datePopup .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}
.datePopup .quickTimeC {
margin-top: 16rpx;
}
.datePopup .quickTimeC .item {
margin-right: 25rpx;
width: 120rpx;
line-height: 56rpx;
border-radius: 30rpx;
border: solid 2rpx #4E4E4E;
font-size: 24rpx;
font-weight: 500;
color: #4E4E4E;
text-align: center;
}
.datePopup .quickTimeC .item:last-child {
margin-right: 0;
}

View File

@@ -0,0 +1,46 @@
"use strict";
const common_vendor = require("../../../common/vendor.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"),
newsInfo: null,
getLocalTime: utils_util.getLocaleTime
};
},
onLoad(e) {
this.newsInfo = JSON.parse(decodeURIComponent(e.info));
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
const _easycom_ua_markdown2 = common_vendor.resolveComponent("ua-markdown");
(_easycom_navBar2 + _easycom_ua_markdown2)();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
const _easycom_ua_markdown = () => "../../../components/ua-markdown/ua-markdown.js";
if (!Math) {
(_easycom_navBar + _easycom_ua_markdown)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
leftText: "历史时间轴",
hideNavBg: true
}),
b: common_assets._imports_0,
c: $data.newsInfo
}, $data.newsInfo ? {
d: common_vendor.t($data.newsInfo.title),
e: common_vendor.t($data.getLocalTime($data.newsInfo.published_time)),
f: common_vendor.p({
source: $data.newsInfo.detail
}),
g: common_vendor.s("top: " + $data.navH + "px;")
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/concept/newsDetails/newsDetails.js.map

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../../components/navBar/navBar",
"ua-markdown": "../../../components/ua-markdown/ua-markdown"
}
}

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="07f56b32-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="contentC fixed" style="{{g}}"><view class="title">{{d}}</view><view class="labelTimeC"><text class="time">{{e}}</text></view><view class="content"><ua-markdown wx:if="{{f}}" u-i="07f56b32-1" bind:__l="__l" u-p="{{f}}"/></view></view></view>

View File

@@ -0,0 +1,36 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.contentC {
background-color: #FFF9F5;
margin: 20rpx 25rpx 0;
padding: 28rpx 30rpx;
left: 0;
right: 0;
bottom: 100rpx;
border-radius: 10rpx;
overflow-y: scroll;
}
.contentC .title {
margin: 0 10rpx;
font-size: 30rpx;
font-weight: bold;
color: #2B2B2B;
}
.contentC .labelTimeC {
margin: 0 10rpx;
}
.contentC .labelTimeC .time {
font-size: 24rpx;
font-weight: 500;
color: #666;
}
.contentC .content {
margin-top: 30rpx;
}

View File

@@ -0,0 +1,46 @@
"use strict";
const common_vendor = require("../../../common/vendor.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"),
reportInfo: null,
getLocalTime: utils_util.getLocaleTime,
content: ""
};
},
onLoad(e) {
this.reportInfo = JSON.parse(decodeURIComponent(e.info));
this.reportInfo.content = this.reportInfo.content.replace(/'/g, '"');
common_vendor.index.__f__("log", "at pages/concept/reportDetails/reportDetails.vue:34", JSON.parse(this.reportInfo.content));
this.content = JSON.parse(this.reportInfo.content).content;
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
_easycom_navBar2();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
if (!Math) {
_easycom_navBar();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
leftText: "历史时间轴",
hideNavBg: true
}),
b: common_assets._imports_0,
c: $data.reportInfo
}, $data.reportInfo ? {
d: common_vendor.t($data.reportInfo.report_title),
e: common_vendor.t($data.getLocalTime($data.reportInfo.declare_date)),
f: common_vendor.t($data.content ? $data.content : $data.reportInfo.content),
g: common_vendor.s("top: " + $data.navH + "px;")
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/concept/reportDetails/reportDetails.js.map

View File

@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../../components/navBar/navBar"
}
}

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="d1d5b3b6-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="contentC fixed" style="{{g}}"><view class="title">{{d}}</view><view class="labelTimeC"><text class="time">{{e}}</text></view><view class="content"><text>{{f}}</text></view></view></view>

View File

@@ -0,0 +1,36 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.contentC {
background-color: #FFF9F5;
margin: 20rpx 25rpx 0;
padding: 28rpx 30rpx;
left: 0;
right: 0;
bottom: 100rpx;
border-radius: 10rpx;
overflow-y: scroll;
}
.contentC .title {
margin: 0 10rpx;
font-size: 30rpx;
font-weight: bold;
color: #2B2B2B;
}
.contentC .labelTimeC {
margin: 0 10rpx;
}
.contentC .labelTimeC .time {
font-size: 24rpx;
font-weight: 500;
color: #666;
}
.contentC .content {
margin-top: 30rpx;
}

View File

@@ -0,0 +1,88 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
data() {
return {
navH: common_vendor.inject("navHeight"),
contentTop: "",
topLists: [
{
title: "超大盘股",
value: ">1000亿"
},
{
title: "大盘股",
value: "500-1000亿"
},
{
title: "中盘股",
value: "100-500亿"
}
],
list2Index: 0
};
},
onLoad(e) {
this.activeIndex = e.index;
this.contentTop = this.navH + (20 + 70 + 25) / 750 * common_vendor.inject("windowWidth");
},
methods: {}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
_easycom_navBar2();
}
const _easycom_navBar = () => "../../components/navBar/navBar.js";
if (!Math) {
_easycom_navBar();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.p({
leftText: "详情",
hideNavBg: true
}),
b: common_assets._imports_0,
c: common_assets._imports_1,
d: common_vendor.o(($event) => _ctx.clickSearch()),
e: _ctx.keywords,
f: common_vendor.o(($event) => _ctx.keywords = $event.detail.value),
g: common_vendor.s("top:" + $data.navH + "px;"),
h: common_vendor.f($data.topLists, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: $data.list2Index == index ? "#BB8520" : "#070707",
c: common_vendor.t(item.value),
d: $data.list2Index == index ? "#BB8520" : "#070707",
e: common_vendor.o(($event) => $data.list2Index = index, index),
f: index,
g: $data.list2Index == index ? "1rpx solid #F2C369" : "none"
};
}),
i: common_vendor.f(["股票名称", "涨跌幅", "市值", "成交额", "行业"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
j: common_vendor.f(10, (obj, j, i0) => {
return {
a: common_vendor.f(["云南白药", "+0.04%", "996.85 亿元", "4.44 亿元", "医药生物"], (item, index, i1) => {
return common_vendor.e({
a: common_vendor.t(item),
b: index == 0
}, index == 0 ? {} : {}, {
c: index,
d: index == 0 ? "#222222" : index == 1 ? "#EC3440" : "#666666"
});
}),
b: j % 2 == 0 ? "#fff" : "#FAFAFC"
};
}),
k: common_vendor.s("top:" + $data.contentTop + "px;")
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/geGuCenter/detail.js.map

View File

@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../components/navBar/navBar"
}
}

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="1d94e03e-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="searchC fixed flex" style="{{g}}"><image class="icon" src="{{c}}" mode="widthFix"></image><input class="flex1" type="text" placeholder="输入股票代码或名称" placeholder-style="color:#eeeeee" confirm-type="search" bindconfirm="{{d}}" value="{{e}}" bindinput="{{f}}"/></view><scroll-view scroll-y class="stockDetailsC fixed" style="{{k}}"><view><view style="display:grid;grid-template-columns:repeat(3, 1fr);gap:16rpx;margin:0 20rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="f" bindtap="{{item.e}}" style="{{'padding:12rpx' + ';' + ('border-bottom:' + item.g)}}"><view style="{{'font-size:24rpx;color:#070707;font-weight:bold;text-align:center' + ';' + ('color:' + item.b)}}">{{item.a}}</view><view style="{{'font-size:20rpx;font-weight:400;text-align:center' + ';' + ('color:' + item.d)}}">{{item.c}}</view></view></view><view style="height:1rpx;margin:0 20rpx;background-color:#E7E7E7"></view><view style="display:grid;grid-template-columns:repeat(5, 1fr);gap:10rpx;background-color:#FAFAFC;line-height:60rpx;margin:0 20rpx;margin-top:20rpx"><view wx:for="{{i}}" wx:for-item="item" wx:key="b" style="color:#666666;font-size:20rpx;font-weight:500;text-align:center">{{item.a}}</view></view><view wx:for="{{j}}" wx:for-item="obj" style="{{'display:grid;grid-template-columns:repeat(5, 1fr);gap:10rpx;min-height:60rpx;margin:0 20rpx' + ';' + ('background-color:' + obj.b)}}"><view wx:for="{{obj.a}}" wx:for-item="item" wx:key="c" style="{{'padding:10rpx 0;color:#666666;font-size:20rpx;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;flex-direction:column' + ';' + ('color:' + item.d)}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="color:#666666;font-size:20rpx;font-weight:500">000768</view></view></view><view style="height:25rpx"></view></view></scroll-view></view>

View File

@@ -0,0 +1,36 @@
page {
background-color: #070707;
}
.topBg {
top: 0;
left: 0;
width: 100%;
height: auto;
}
.searchC {
background-color: #292929B3;
left: 0;
right: 0;
margin: 20rpx 25rpx 0;
padding: 0 25rpx;
height: 70rpx;
border-radius: 35rpx;
font-size: 22rpx;
font-weight: 500;
}
.searchC .icon {
margin-right: 12rpx;
width: 25rpx;
height: auto;
}
.searchC input {
height: 100%;
color: white;
}
.stockDetailsC {
left: 25rpx;
width: calc(100vw - 50rpx);
bottom: env(safe-area-inset-bottom);
background-color: white;
border-radius: 10rpx;
}

View File

@@ -0,0 +1,268 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
data() {
return {
navH: common_vendor.inject("navHeight"),
contentTop: "",
topLists: [
{
title: "大盘涨跌幅",
value: "+0.31%",
color: "#EC3440",
backIcon: "/static/icon/gegu/gg-top-0.png"
},
{
title: "涨停/跌停",
value: "+0.31%",
color: "#070707",
backIcon: "/static/icon/gegu/gg-top-1.png"
},
{
title: "多空对比",
value: "3572/1855",
color: "#070707",
backIcon: "/static/icon/gegu/gg-top-2.png"
},
{
title: "今日成交额",
value: "1.5万亿",
color: "#070707",
backIcon: "/static/icon/gegu/gg-top-3.png"
},
{
title: "A股总市值",
value: "113.8万亿",
color: "#070707",
backIcon: "/static/icon/gegu/gg-top-4.png"
},
{
title: "连板龙头",
value: "10只",
color: "#F59B38",
backIcon: "/static/icon/gegu/gg-top-5.png"
}
],
topLists2: [
{
title: "超大盘股",
value: ">1000亿"
},
{
title: "大盘股",
value: "500-1000亿"
},
{
title: "中盘股",
value: "100-500亿"
}
],
list2Index: 0,
typeList: [
{
title: "缩量急涨",
backIcon: "/static/icon/gegu/cate-0.png"
},
{
title: "异动",
backIcon: "/static/icon/gegu/cate-1.png"
},
{
title: "急跌",
backIcon: "/static/icon/gegu/cate-2.png"
},
{
title: "急涨",
backIcon: "/static/icon/gegu/cate-3.png"
},
{
title: "放量震荡",
backIcon: "/static/icon/gegu/cate-4.png"
}
]
};
},
onLoad(e) {
this.activeIndex = e.index;
this.contentTop = this.navH + (20 + 70 + 25) / 750 * common_vendor.inject("windowWidth");
this.conceptsDailyTop();
this.marketHeatmap();
this.marketStatistics();
this.marketHotspotOverview();
},
methods: {
conceptsDailyTop() {
request_api.conceptsDailyTop().then((res) => {
}).catch((error) => {
});
},
marketHeatmap() {
request_api.marketHeatmap().then((res) => {
}).catch((error) => {
});
},
marketStatistics() {
request_api.marketStatistics().then((res) => {
}).catch((error) => {
});
},
marketHotspotOverview() {
request_api.marketHotspotOverview().then((res) => {
}).catch((error) => {
});
},
moreAction() {
common_vendor.index.navigateTo({
url: "/pages/geGuCenter/detail"
});
},
allAction(index) {
if (index == 1) {
this.$refs["typePopup"].open();
} else if (index == 2) {
this.$refs["datePopup"].open();
}
},
closeAction(index) {
if (index == 1) {
this.$refs["typePopup"].close();
} else if (index == 2) {
this.$refs["datePopup"].close();
} else if (index == 3) {
this.$refs["detailPopup"].close();
}
},
confirmAction(index) {
if (index == 1) {
this.$refs["typePopup"].close();
} else if (index == 2) {
this.$refs["datePopup"].close();
}
},
bkydAction(item) {
this.$refs["detailPopup"].open();
}
}
};
if (!Array) {
const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
const _easycom_LCCalendar22 = common_vendor.resolveComponent("LCCalendar2");
(_easycom_navBar2 + _easycom_uni_popup2 + _easycom_LCCalendar22)();
}
const _easycom_navBar = () => "../../components/navBar/navBar.js";
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
const _easycom_LCCalendar2 = () => "../../components/LCCalendar2/LCCalendar2.js";
if (!Math) {
(_easycom_navBar + _easycom_uni_popup + _easycom_LCCalendar2)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.p({
leftText: "个股中心",
hideNavBg: true,
hideBack: true
}),
b: common_assets._imports_0,
c: common_assets._imports_1,
d: common_vendor.o(($event) => _ctx.clickSearch()),
e: _ctx.keywords,
f: common_vendor.o(($event) => _ctx.keywords = $event.detail.value),
g: common_vendor.s("top:" + $data.navH + "px;"),
h: common_vendor.f($data.topLists, (item, index, i0) => {
return {
a: item.backIcon,
b: common_vendor.t(item.title),
c: common_vendor.t(item.value),
d: item.color,
e: index
};
}),
i: common_vendor.f($data.topLists2, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: $data.list2Index == index ? "#BB8520" : "#070707",
c: $data.list2Index == index ? "#FFFAF1" : "#FFFFFF",
d: common_vendor.t(item.value),
e: $data.list2Index == index ? "#BB8520" : "#070707",
f: common_vendor.o(($event) => $data.list2Index = index, index),
g: index,
h: `1rpx solid ${$data.list2Index == index ? "#F2C369" : "#D2D2D2"}`
};
}),
j: common_vendor.f(["股票名称", "涨跌幅", "市值", "成交额", "行业"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
k: common_vendor.f(10, (obj, j, i0) => {
return {
a: common_vendor.f(["云南白药", "+0.04%", "996.85 亿元", "4.44 亿元", "医药生物"], (item, index, i1) => {
return common_vendor.e({
a: common_vendor.t(item),
b: index == 0
}, index == 0 ? {} : {}, {
c: index,
d: index == 0 ? "#222222" : index == 1 ? "#EC3440" : "#666666"
});
}),
b: j % 2 == 0 ? "#fff" : "#FAFAFC"
};
}),
l: common_assets._imports_1$2,
m: common_vendor.o((...args) => $options.moreAction && $options.moreAction(...args)),
n: common_assets._imports_3$7,
o: common_assets._imports_4$1,
p: common_vendor.o(($event) => $options.allAction(1)),
q: common_assets._imports_4$1,
r: common_vendor.o(($event) => $options.allAction(2)),
s: common_assets._imports_3$7,
t: common_vendor.f(10, (item, index, i0) => {
return {
a: index,
b: common_vendor.o(($event) => $options.bkydAction(item), index)
};
}),
v: common_assets._imports_5$3,
w: common_vendor.s("top:" + $data.contentTop + "px;"),
x: common_vendor.o(($event) => $options.closeAction(1)),
y: common_vendor.o(($event) => $options.confirmAction(1)),
z: common_vendor.f($data.typeList, (item, index, i0) => {
return {
a: item.backIcon,
b: common_vendor.t(item.title),
c: index
};
}),
A: common_vendor.sr("typePopup", "c7f5c964-1"),
B: common_vendor.p({
type: "bottom",
safeArea: false
}),
C: common_vendor.o(($event) => $options.closeAction(2)),
D: common_vendor.o(($event) => $options.confirmAction(2)),
E: common_vendor.sr("datePopup", "c7f5c964-2"),
F: common_vendor.p({
type: "bottom",
safeArea: false
}),
G: common_assets._imports_9$1,
H: common_vendor.o(($event) => $options.closeAction(3)),
I: common_vendor.f(10, (item, index, i0) => {
return {
a: index % 2 == 0 ? "#fff" : "#FAFAFC"
};
}),
J: common_vendor.sr("detailPopup", "c7f5c964-4"),
K: common_vendor.p({
type: "bottom",
safeArea: false
})
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/geGuCenter/geGuCenter.js.map

Some files were not shown because too many files have changed in this diff Show More