From 47f06d5eecb62daf23df14987619be4c3dc88d91 Mon Sep 17 00:00:00 2001 From: JinxChen <2183691628@qq.com> Date: Mon, 26 Aug 2024 09:26:37 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E4=BC=98=E5=8C=96=20=E5=91=A8?= =?UTF-8?q?=E6=8A=A5=E6=B1=87=E6=80=BB=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 + src/views/health/psychological-main/index.vue | 1 + src/views/health/psychological/index.scss | 15 +- src/views/health/psychological/index.vue | 18 +- .../psychological/reportDetails/index.scss | 6 +- .../psychological/reportDetails/index.vue | 215 +++++++++++++++--- 6 files changed, 219 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 69771fb..887c8f2 100644 --- a/README.md +++ b/README.md @@ -1174,3 +1174,8 @@ update - 增加 app打开充值h5跳转到话费查询页面 - 增加 app点击订购套餐提示 + + +`2024.8.21` +update +- 优化 周报汇总切换 \ No newline at end of file diff --git a/src/views/health/psychological-main/index.vue b/src/views/health/psychological-main/index.vue index 04c61b8..9fc9999 100644 --- a/src/views/health/psychological-main/index.vue +++ b/src/views/health/psychological-main/index.vue @@ -89,6 +89,7 @@ export default { }, // 加载路由参数 async loadParams() { + this.$toast.loading("数据加载中"); let params = this.$route.query; if (params) { this.uid = params.uid; diff --git a/src/views/health/psychological/index.scss b/src/views/health/psychological/index.scss index c7383a6..097c66b 100644 --- a/src/views/health/psychological/index.scss +++ b/src/views/health/psychological/index.scss @@ -69,7 +69,7 @@ $newBlue: #638EE4; } } .psy-tab-bar { - height: 40px; + height: 30px; position: relative; margin: 5px 0; padding: 0 10px; @@ -84,7 +84,7 @@ $newBlue: #638EE4; justify-content: space-around; align-items: center; color: #fff; - height: 40px; + height: 30px; width: 100%; /* background-color: red; */ .psy-tab-item { @@ -93,12 +93,12 @@ $newBlue: #638EE4; color: #6D6D6D; height: 100%; width: 100%; - font-size: 18px; + font-size: 14px; border-radius: 20px; @include center(); &.active { color: #FFFFFF; - background-color: #638EE4; + background-color: #189B3BFF; } } } @@ -107,7 +107,8 @@ $newBlue: #638EE4; .main { position: relative; height: calc(100vh - 150px); - overflow: scroll; + overflow-y: scroll; + overflow-x: hidden; .top { flex: 1; .title { @@ -149,6 +150,10 @@ $newBlue: #638EE4; height: 106px; width: 106px; } + #pieChartDay { + height: 106px; + width: 106px; + } } .pie-chart-right { height: 150px; diff --git a/src/views/health/psychological/index.vue b/src/views/health/psychological/index.vue index e430c12..c7c0103 100644 --- a/src/views/health/psychological/index.vue +++ b/src/views/health/psychological/index.vue @@ -766,14 +766,19 @@ export default { // 读取路由传过来的参数,根据路由传过来的参数判断是哪种情绪 this.loadParams(); this.initEchartText(); - this.getPieData(); + /* this.getPieData(); */ this.getCalendarData(); this.getPsychologiclData(); this.getWeekResult(); }, mounted() { this.initEchart(); - this.current = Number(this.$store.getters.tabClick) || 0; + if(this.params.current) { + this.current = Number(this.params.current); + } else { + this.current = Number(this.$store.getters.tabClick) || 0; + } + this.currentDays = this.calcDaysByTabClick( Number(this.$store.getters.tabClick) ); @@ -1516,7 +1521,7 @@ export default { }); let array = Object.entries(typeMap); - this.weekResultList = array; + this.weekResultList = array.reverse(); console.log("weekResultLists", this.weekResultList); console.log("typeMap", typeMap); }); @@ -1529,7 +1534,7 @@ export default { : "https://dbmq.rzliot.com/heart"; let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; let reqParams = { - uid: /* this.uid */ '2023101521270090082', + uid: this.uid /* '1929285069986332672' */, type: type || this.emoType, }; return new Promise(resolve => { @@ -1562,7 +1567,7 @@ export default { : "https://dbmq.rzliot.com/heart"; let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; let reqParams = { - uid: /* this.uid */ '2023101521270090082', + uid: this.uid /* '1929285069986332672' */, type: this.emoType, }; axios @@ -1599,7 +1604,8 @@ export default { name: this.currentEmoName, isShowLeft: true, uid: this.uid, - time: item.name + time: item.name, + current: 3, }, }); diff --git a/src/views/health/psychological/reportDetails/index.scss b/src/views/health/psychological/reportDetails/index.scss index 2f16c24..2c56ff5 100644 --- a/src/views/health/psychological/reportDetails/index.scss +++ b/src/views/health/psychological/reportDetails/index.scss @@ -6,7 +6,7 @@ font-family: Source Han Sans CN; .report-details { - height: calc(100vh - 120px); + height: calc(100vh - 88px); overflow: scroll; background-color: #fff; @@ -121,6 +121,10 @@ height: 106px; width: 106px; } + #pieChartDay { + height: 106px; + width: 106px; + } } .pie-chart-right { diff --git a/src/views/health/psychological/reportDetails/index.vue b/src/views/health/psychological/reportDetails/index.vue index 0454320..df91659 100644 --- a/src/views/health/psychological/reportDetails/index.vue +++ b/src/views/health/psychological/reportDetails/index.vue @@ -20,19 +20,6 @@ - -
-
-
-
- {{ item.text }} -
-
-
-
@@ -67,7 +54,7 @@
-
+
@@ -117,9 +104,22 @@
+ +
+
+
+
+ {{ item.text }} +
+
+
+
-
+
@@ -209,7 +209,20 @@
-
+ + +
+
+
+
+ {{ item.text }} +
+
+
+

上周趋势对比

{{ resetDate(weekResult.StartDate, weekResult.EndDate) || "--" }}

@@ -481,6 +494,9 @@ export default { weekResultList: [], //周报新详情周报列表 weekResult: {}, isShowCompare: null, //是否显示周对比 + pieDayEcharts: null, //非周报饼状图 + pieDayData: [], //非周报饼状图 + dayEcharts: null }; }, computed: { @@ -749,6 +765,52 @@ export default { ], }; }, + pieDayOption() { + return { + tooltip: { + trigger: "item", + textStyle: { + fontSize: 14, + }, + position: "right", + }, + legend: { + top: "5%", + left: "center", + show: false, + }, + series: [ + { + type: "pie", + radius: ["40%", "80%"], + avoidLabelOverlap: false, + startAngle: 270, // 设置逆时针渲染 + itemStyle: { + borderRadius: 5, + borderColor: "#fff", + borderWidth: 2, + fontSize: 16, + }, + label: { + show: false, + position: "center", + fontSize: 16, + }, + emphasis: { + label: { + show: false, + fontSize: 16, + fontWeight: "bold", + }, + }, + labelLine: { + show: false, + }, + data: this.pieDayData, + }, + ], + }; + }, titleLeft() { let text = this.emoName === "depression" ? "趋势" : ""; let today = ""; @@ -821,27 +883,88 @@ export default { }, deep: true, }, + pieDayData: { + handler(n, o) { + this.initPieDayEchart(); + }, + deep: true, + } }, created() { // 读取路由传过来的参数,根据路由传过来的参数判断是哪种情绪 this.loadParams(); this.initEchartText(); - this.getPieData(); this.getCalendarData(); + + }, + mounted() { this.getPsychologiclData(); this.getWeekResultDetail(); this.getWeekResult(); - }, - mounted() { - this.initEchart(); - this.current = Number(this.$store.getters.tabClick) || 0; + /* this.initEchart(); */ + if(this.params.current) { + this.current = Number(this.params.current); + } else { + this.current = Number(this.$store.getters.tabClick) || 0; + } this.currentDays = this.calcDaysByTabClick( Number(this.$store.getters.tabClick) ); this.psyCurrent = this.calcPsyTabindex(EmotionModel[this.params.name].type); window.document.title = "心理监测"; + /* window.addEventListener("resize", this.onResize, false); */ }, + destroyed(){ + /* window.removeEventListener("resize", this.onResize, false); */ +}, methods: { + /* onResize(){ + if(this.pieEcharts){ + this.pieEcharts.resize(); + } + if(this.echarts) { + this.echarts.resize(); + } + }, */ + calcWeekImg(cur, last, callBackText) { + let imgurl = ""; + let text = ""; + if (isNotNull(cur) && isNotNull(last) && this.weekAndMonData.length > 0) { + let curNumber = Number(cur); + let latNumber = Number(last); + if (curNumber - latNumber == 0) { + text = "持平"; + } else { + imgurl = curNumber < latNumber ? this.downImg : this.upImg; + text = Math.abs(curNumber - latNumber) + "天"; + } + if (callBackText) { + return text; + } else { + return imgurl; + } + } + }, + // 计算显示是上升or下降的图片 + /** + * + * @param { 本周情绪比例} current + * @param { 上周情绪比例 } last + * @param { 是否返回对比比例 } isCallBackCompare + */ + calcImg(current, last, isCallBackCompare) { + let imgUrl = ""; + let compare = ""; + if (isNotNull(current) && isNotNull(last)) { + compare = Number(current) - Number(last); + imgUrl = compare > 0 ? this.upImg : compare == 0 ? "" : this.downImg; + } + if (isCallBackCompare) { + return compare; + } else { + return imgUrl; + } + }, loadParams() { let params = this.$route.query; if (params) { @@ -1011,7 +1134,7 @@ export default { this.pieRightList.push(Mild); this.pieRightList.push(Moderate); this.pieRightList.push(Severe); - this.pieData = this.pieRightList.map((item) => { + this.pieDayData = this.pieRightList.map((item) => { item.value = item.count; item.itemStyle = { color: item.color, @@ -1305,6 +1428,20 @@ export default { } this.pieEcharts = this.$echarts.init(this.$refs.pieChart); this.pieEcharts.setOption(this.pieOption); + + + + }, + initPieDayEchart() { + if ( + this.pieDayEcharts != null && + this.pieDayEcharts != "" && + this.pieDayEcharts != undefined + ) { + this.pieDayEcharts.dispose(); + } + this.pieDayEcharts = this.$echarts.init(this.$refs.pieChartDay); + this.pieDayEcharts.setOption(this.pieDayOption); }, // 格式化日期显示参数 formatter(day) { @@ -1327,11 +1464,13 @@ export default { }, // 返回 onNavBack() { - this.params.name = ""; this.$router.replace({ - name: "psychologicalMain", + name: "psychological", query: { - ...this.params, + name: this.params.name, + uid: this.params.uid, + pageType: 1, + current: this.params.current }, }); }, @@ -1373,7 +1512,8 @@ export default { } else { // 周报菜单 console.log("点击周报"); - this.getWeekResultDetail() + this.onPsyTabClick(this.psyList[this.psyCurrent].name, this.psyCurrent); + /* this.getWeekResultDetail(); */ } }, @@ -1464,15 +1604,31 @@ export default { }, // 初始化折线图表 initEchart() { - if ( + if(this.current === 3) { + // 周报详情 + if ( this.echarts != null && this.echarts != "" && this.echarts != undefined ) { + this.echarts.resize(); this.echarts.dispose(); } this.echarts = this.$echarts.init(this.$refs.charts); this.echarts.setOption(this.defaultOptions); + } else { + if ( + this.dayEcharts != null && + this.dayEcharts != "" && + this.dayEcharts != undefined + ) { + this.dayEcharts.resize(); + this.dayEcharts.dispose(); + } + this.dayEcharts = this.$echarts.init(this.$refs.dayCharts); + this.dayEcharts.setOption(this.defaultOptions); + } + }, // 点击历史监测,打开日历 onHistory() { @@ -1588,7 +1744,7 @@ export default { : "https://dbmq.rzliot.com/heart"; let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; let reqParams = { - uid: /* this.uid */ '2023101521270090082', + uid: this.uid /* '2023101521270090082' */, type: type || this.emoType, }; @@ -1619,7 +1775,7 @@ export default { : "https://dbmq.rzliot.com/heart"; let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; let reqParams = { - uid: /* this.uid */ '2023101521270090082', + uid: this.uid /* '2023101521270090082' */, type: this.emoType, }; return new Promise(resolve => { @@ -1636,6 +1792,7 @@ export default { .replace(/-/g, ".") .replace(/~/g, "-") === time }); + console.log("selectData", selectData); let recordId = selectData && selectData[0].RecordId; console.log("根据当前日期不同emoType得到的周报列表数据", selectData); this.$toast.success("数据加载完成");