From de00ec5a9c44a11bdce60a2c101c1d5a0a7d2d17 Mon Sep 17 00:00:00 2001
From: chenJinxu <2183691628@qq.com>
Date: Tue, 12 Dec 2023 09:06:34 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=86=85=E9=83=A8?=
=?UTF-8?q?=E5=88=87=E6=8D=A2=E6=83=85=E7=BB=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/health/psychological/index.scss | 42 ++++++++-
src/views/health/psychological/index.vue | 92 ++++++++++++++++++-
.../health/psychological/report/index.vue | 8 +-
3 files changed, 135 insertions(+), 7 deletions(-)
diff --git a/src/views/health/psychological/index.scss b/src/views/health/psychological/index.scss
index bf6ce58..4f2d506 100644
--- a/src/views/health/psychological/index.scss
+++ b/src/views/health/psychological/index.scss
@@ -4,7 +4,7 @@ $newBlue: #638EE4;
width: 100%;
overflow: hidden;
background-color: #fff;
- .tab-bar {
+ .tab-bar{
width: 100%;
position: relative;
.date-tab-con {
@@ -68,9 +68,45 @@ $newBlue: #638EE4;
}
}
}
+ .psy-tab-bar {
+ height: 40px;
+ position: relative;
+ margin: 5px 0;
+ padding: 0 10px;
+ .psy-tab-con {
+ background-color: #EEEEEE;
+ border-top-left-radius: 20px;
+ border-top-right-radius: 20px;
+ border-bottom-left-radius: 20px;
+ border-bottom-right-radius: 20px;
+ .psy-tab-list {
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ color: #fff;
+ height: 40px;
+ width: 100%;
+ /* background-color: red; */
+ .psy-tab-item {
+ position: relative;
+ padding: 0 10px;
+ color: #6D6D6D;
+ height: 100%;
+ width: 100%;
+ font-size: 18px;
+ border-radius: 20px;
+ @include center();
+ &.active {
+ color: #FFFFFF;
+ background-color: #638EE4;
+ }
+ }
+ }
+ }
+ }
.main {
position: relative;
- height: calc(100vh - 90px);
+ height: calc(100vh - 150px);
overflow: scroll;
.top {
flex: 1;
@@ -334,7 +370,7 @@ $newBlue: #638EE4;
}
&.report {
position: relative;
- height: calc(100vh - 90px);
+ height: calc(100vh - 150px);
overflow: scroll;
background-color: #f5f5f5;
.content {
diff --git a/src/views/health/psychological/index.vue b/src/views/health/psychological/index.vue
index 11476d2..c7f62de 100644
--- a/src/views/health/psychological/index.vue
+++ b/src/views/health/psychological/index.vue
@@ -22,6 +22,19 @@
+
+
@@ -261,6 +274,14 @@ export default {
{ name: "month", text: "30天", value: 30 },
{ name: "weekReport", text: "周报", value: 49 }
],
+ // 情绪tab
+ psyList: [
+ {name: 'tiredness', text: '疲劳', value: 0},
+ {name: 'stress', text: '压力', value: 1},
+ {name: 'depression', text: '抑郁', value: 2},
+ ],
+ // 当前情绪下标
+ psyCurrent: 0,
current: 0, // 日期选择标签-当前选中的标签
currentDays: 0, //日期选择标签-日期参数
emotionData: [], //情绪数据,TODO 接口对接
@@ -382,6 +403,9 @@ export default {
moreImg: require("@/assets/img/psychological/more.png"),
noDataImg: require("@/assets/img/no_data_01.png"),
weekList: [],
+ startDate: '', //接口需要的开始时间
+ endDate: '', //接口需要的结束时间
+ currentEmoName: '', //当前情绪名称
};
},
computed: {
@@ -713,6 +737,8 @@ export default {
mounted() {
this.initEchart();
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 = '心理监测';
},
methods: {
@@ -724,6 +750,7 @@ export default {
this.uid = params.uid;
this.routeDate = params.date;
this.params = params;
+ this.currentEmoName = params.name;
if(params.date) {
this.dateList[0].text = this.$dayjs(params.date).format("YYYY-MM-DD") === this.$dayjs(new Date()).format("YYYY-MM-DD") ? '今天' : this.$dayjs(params.date).format("MM-DD");
this.defaultDate = new Date(
@@ -736,6 +763,44 @@ export default {
}
}
},
+ // 计算点击的天数
+ calcDaysByTabClick(value) {
+ let days = '';
+ console.log("value", value);
+ switch(value) {
+ case 0:
+ days = 0;
+ break;
+ case 1:
+ days = 7;
+ break;
+ case 2:
+ days = 30;
+ break;
+ case 3:
+ days = 49;
+ break;
+ default: break;
+ };
+ return days
+ },
+ // 计算psyTab的下标值
+ calcPsyTabindex(type) {
+ let psyIndex = '';
+ switch(type) {
+ case 1:
+ psyIndex = 1;
+ break;
+ case 2:
+ psyIndex = 2;
+ break;
+ case 3:
+ psyIndex = 0;
+ break;
+ default: break;
+ };
+ return psyIndex
+ },
// 获取这个月中有数据的日期,控制日历组件的日期样式
getCalendarData() {
let currentDate = new Date();
@@ -1162,12 +1227,16 @@ export default {
if (value === 7) {
let dateList = this.getPostDate(currentDate, 6, true);
this.getPsychologiclData('', dateList[0], dateList[1]);
+ this.startDate = dateList[0];
+ this.endDate = dateList[1];
} else if (value === 0) {
// 今天
this.defaultOptions.xAxis.data = this.xAxisData;
this.defaultOptions.series = this.defaultSeries;
this.defaultOptions.series[0].data = this.emotionData;
- this.getPsychologiclData(this.selectDate ? this.selectDate : this .$dayjs(currentDate).format("YYYY-MM-DD"));
+ this.getPsychologiclData(this.selectDate ? this.selectDate : this.$dayjs(currentDate).format("YYYY-MM-DD"));
+ this.startDate = this.$dayjs(currentDate).format("YYYY-MM-DD");
+ this.endDate = this.$dayjs(currentDate).format("YYYY-MM-DD");
} else if(value === 30){
// 30天
this.defaultOptions.xAxis.data = this.xAxisData;
@@ -1175,11 +1244,27 @@ export default {
this.defaultOptions.series[0].data = this.emotionData;
let dateList = this.getPostDate(currentDate, 30, true);
this.getPsychologiclData('', dateList[0], dateList[1]);
+ this.startDate = dateList[0];
+ this.endDate = dateList[1];
} else {
// 周报菜单
this.getWeekResult();
}
},
+ // 点击情绪tab
+ onPsyTabClick(name, index) {
+ this.psyCurrent = index;
+ this.emoName = EmotionModel[name].name;
+ this.currentEmoName = name;
+ this.emoType = EmotionModel[name].type;
+ console.log("this.currentDays", this.currentDays);
+ if(this.currentDays === 49) {
+ // 即点击了周报,此时调用获取周报接口
+ this.getWeekResult();
+ } else {
+ this.getPsychologiclData(this.startDate, this.endDate);
+ }
+ },
getCurrentMonthStaAndEnd(currentDate) {
let list = [];
let monthStart = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1); // 获取本月第一天的日期时间
@@ -1336,8 +1421,9 @@ export default {
name: 'psychologicalReport',
query: {
recordId: recordId,
- name: 'depression',
- isShowLeft: true
+ name: this.currentEmoName,
+ isShowLeft: true,
+ uid: this.uid
}
})
}
diff --git a/src/views/health/psychological/report/index.vue b/src/views/health/psychological/report/index.vue
index 4bd8b5d..0b76975 100644
--- a/src/views/health/psychological/report/index.vue
+++ b/src/views/health/psychological/report/index.vue
@@ -920,7 +920,13 @@ export default {
this.pieEcharts.setOption(this.pieOption);
},
onNavBack() {
- this.$router.go(-1);
+ this.$router.push({
+ name: 'psychological',
+ query: {
+ uid: this.params.uid,
+ name: this.params.name
+ }
+ });
},
// 计算字体显示的颜色
calcColor(value) {