Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
X
xzf_uniapp-wechat-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李智书
xzf_uniapp-wechat-web
Commits
2a5c403c
Commit
2a5c403c
authored
Jul 06, 2022
by
aifen@azjy1.onexmail.com
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
181687dd
5400418d
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1542 additions
and
369 deletions
+1542
-369
src/pages/SchoolReport/SchoolReport.vue
src/pages/SchoolReport/SchoolReport.vue
+1542
-369
src/static/images/breakfastTimeBg.png
src/static/images/breakfastTimeBg.png
+0
-0
src/static/images/consumeOpenbgm.png
src/static/images/consumeOpenbgm.png
+0
-0
src/static/images/consumerAdvice.png
src/static/images/consumerAdvice.png
+0
-0
src/static/images/consumerRationality.png
src/static/images/consumerRationality.png
+0
-0
src/static/images/mealPal.png
src/static/images/mealPal.png
+0
-0
src/static/images/noAttendanceReportDatailData.png
src/static/images/noAttendanceReportDatailData.png
+0
-0
src/static/images/progress.png
src/static/images/progress.png
+0
-0
src/static/images/progressIcon.png
src/static/images/progressIcon.png
+0
-0
src/static/images/timeTrends.png
src/static/images/timeTrends.png
+0
-0
No files found.
src/pages/SchoolReport/SchoolReport.vue
View file @
2a5c403c
<
template
>
<
template
>
<view
class=
"tainer"
:style=
"
{height:containerHeight+'rpx'}">
<view
class=
"tainer"
:style=
"
{height:containerHeight+'rpx'}">
<view
v-if=
"showReport"
>
<view
v-if=
"showReport"
>
<view
class=
"school-report-header-bg"
>
</view>
<view
class=
"school-report-header-position"
>
<view
class=
"school-report-header"
>
<view
class=
"school-report-header"
>
<view
class=
"school-report-header-item"
>
<view
class=
"school-report-header-item"
>
<view
class=
"user-avatar"
>
<view
class=
"user-avatar"
>
...
@@ -18,7 +21,8 @@
...
@@ -18,7 +21,8 @@
<view
class=
"school-report-screen"
>
<view
class=
"school-report-screen"
>
<view
class=
"school-report-screen-item"
>
<view
class=
"school-report-screen-item"
>
<view
class=
"school-report-type"
>
<view
class=
"school-report-type"
>
<picker
@
change=
"schoolReportChange"
:value=
"reportTypeIndex"
:range=
"reportTypeArr"
>
<picker
@
change=
"schoolReportChange"
:value=
"reportTypeIndex"
:range=
"reportTypeArr"
>
<view
class=
"uni-input"
>
{{
reportTypeArr
[
reportTypeIndex
]
}}
</view>
<view
class=
"uni-input"
>
{{
reportTypeArr
[
reportTypeIndex
]
}}
</view>
</picker>
</picker>
</view>
</view>
...
@@ -38,20 +42,25 @@
...
@@ -38,20 +42,25 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
class=
"school-report-context"
>
<view
class=
"school-report-context-tab"
>
<view
class=
"school-report-context-tab"
>
<view
class=
"school-report-context-tab-item"
>
<view
class=
"school-report-context-tab-item"
>
<view
v-if=
"isService"
class=
"school-report-context-tab-item-one"
<view
v-if=
"isService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==1?'active':''"
@
tap=
"tabTap(1)"
>
:class=
"tabIndex==1?'active':''"
@
tap=
"tabTap(1)"
>
<text>
消费报告
</text>
<view
class=
"tab-title"
><text>
消费报告
</text></view>
<view
:class=
"tabIndex==1?'active-bottomline':''"
>
</view>
</view>
</view>
<view
v-if=
"isAttendanceService"
class=
"school-report-context-tab-item-one"
<view
v-if=
"isAttendanceService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==2?'active':''"
@
tap=
"tabTap(2)"
>
:class=
"tabIndex==2?'active':''"
@
tap=
"tabTap(2)"
>
<text>
出入校报告
</text>
<view
class=
"tab-title"
><text>
出入校报告
</text></view>
<view
:class=
"tabIndex==2?'active-bottomline':''"
>
</view>
</view>
</view>
<view
v-if=
"isPubTalkService"
class=
"school-report-context-tab-item-one"
<view
v-if=
"isPubTalkService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==3?'active':''"
@
tap=
"tabTap(3)"
>
:class=
"tabIndex==3?'active':''"
@
tap=
"tabTap(3)"
>
<text>
公话报告
</text>
<view
class=
"tab-title"
><text>
公话报告
</text></view>
<view
:class=
"tabIndex==3?'active-bottomline':''"
>
</view>
</view>
</view>
</view>
</view>
<view
class=
"school-report-context-tab-item-two"
>
<view
class=
"school-report-context-tab-item-two"
>
...
@@ -64,10 +73,13 @@
...
@@ -64,10 +73,13 @@
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-if=
"tabIndex"
class=
"school-report-context"
>
<view
:class=
"['consumer-report-bgImg','attendance-report-bgImg','pubTalk-report-bgImg'][tabIndex-1]"
>
<view
:class=
"['consumer-report-bgImg','attendance-report-bgImg','pubTalk-report-bgImg'][tabIndex-1]"
>
</view>
</view>
<view
class=
"school-report-context-card"
>
<view
class=
"school-report-context-card"
>
<view
class=
"school-report-context-card-one"
:style=
"
{height:[598,256,525][tabIndex-1]+'rpx'}">
<view
class=
"school-report-context-card-one"
:style=
"
{height:[804,256,pubTalkSummaryHeight][tabIndex-1]+'rpx'}">
<view
:class=
"['consumer-report-img','attendance-report-img','pubTalk-report-img'][tabIndex-1]"
>
<view
:class=
"['consumer-report-img','attendance-report-img','pubTalk-report-img'][tabIndex-1]"
>
</view>
</view>
<!-- 消费报告 -->
<!-- 消费报告 -->
...
@@ -109,8 +121,7 @@
...
@@ -109,8 +121,7 @@
的同学
<text
v-if=
"isReasonable"
>
,请及时评估生活费是否合理
</text>
的同学
<text
v-if=
"isReasonable"
>
,请及时评估生活费是否合理
</text>
</view>
</view>
</view>
</view>
<view
<view
class=
"school-report-context-card-one-context-item"
>
class=
"school-report-context-card-one-context-item school-report-context-card-one-context-item-last"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
</view>
...
@@ -121,12 +132,41 @@
...
@@ -121,12 +132,41 @@
<text
v-else
>
每日消费金额较稳定,继续保持哦
</text>
<text
v-else
>
每日消费金额较稳定,继续保持哦
</text>
</view>
</view>
</view>
</view>
<view
class=
"school-report-context-card-one-context-item"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
</view>
<view
v-if=
"!abnormalStr"
class=
"school-report-context-card-one-context-txt"
>
早、中、晚餐就餐时间较稳定,按时吃饭,自律如昔,你就赢了大多数人
</view>
<view
v-else
class=
"school-report-context-card-one-context-txt"
>
<text
class=
"txt-important"
>
{{
abnormalStr
}}
</text>
的就餐时间跟同班同学相差超20分钟,如果快乐很难,那么按时吃饭
</view>
</view>
<view
class=
"school-report-context-card-one-context-item school-report-context-card-one-context-item-last"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
</view>
<view
v-if=
"!mealPalArr.length"
class=
"school-report-context-card-one-context-txt"
>
独立的
<text
class=
"txt-important"
>
{{
userInfo
.
userName
}}
</text>
很棒,偶尔也可以叫上朋友一起吃饭哦
</text>
</view>
<view
v-else-if=
"mealPalArr.length==1"
class=
"school-report-context-card-one-context-txt"
>
最佳饭友非
<text
class=
"txt-important"
>
{{
mealPalStr
}}
</text>
莫属,有饭友吃嘛嘛香
</text>
</view>
<view
v-else
class=
"school-report-context-card-one-context-txt"
>
最佳干饭组合,赶快叫上
<text
class=
"txt-important"
>
{{
mealPalStr
}}
</text>
一起吃饭吧
</text>
</view>
</view>
</view>
</view>
<!-- 出入校报告 -->
<!-- 出入校报告 -->
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-one-context"
>
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-one-context"
>
<view
class=
"attendance-report-context-card-one-context-item"
>
<view
class=
"attendance-report-context-card-one-context-item"
>
<text
v-if=
"attendanceReport.abnormalNum&&attendanceReport.abnormalNum!=-1"
>
共
<text
<text
v-if=
"attendanceReport.abnormalNum&&attendanceReport.abnormalNum!=-1"
>
共
<text
class=
"txt-important"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
勤
异常,请及时关注
</text>
class=
"txt-important"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
入
异常,请及时关注
</text>
<text
v-else-if=
"attendanceReport.abnormalNum==-1"
>
风雨无阻上学路,继续加油哦
</text>
<text
v-else-if=
"attendanceReport.abnormalNum==-1"
>
风雨无阻上学路,继续加油哦
</text>
<text
v-else
>
恭喜
<text
<text
v-else
>
恭喜
<text
class=
"txt-important"
>
{{
userInfo
.
userName
}}
</text>
荣获全勤好学生,风雨无阻上学路
</text>
class=
"txt-important"
>
{{
userInfo
.
userName
}}
</text>
荣获全勤好学生,风雨无阻上学路
</text>
...
@@ -260,7 +300,7 @@
...
@@ -260,7 +300,7 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-three"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-three"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
消费偏好
</text>
<text>
消费偏好
</text>
...
@@ -277,7 +317,7 @@
...
@@ -277,7 +317,7 @@
<view
id=
"consumer-preferences-pie"
>
<view
id=
"consumer-preferences-pie"
>
</view>
</view>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-four"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-four"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
生活费额度
</text>
<text>
生活费额度
</text>
...
@@ -329,7 +369,7 @@
...
@@ -329,7 +369,7 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-five"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-five"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
消费趋势
</text>
<text>
消费趋势
</text>
...
@@ -360,17 +400,173 @@
...
@@ -360,17 +400,173 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-show=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-six"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
就餐时间趋势
</text>
</view>
</view>
<view
class=
"school-report-context-card-six-conclusion"
>
<view
class=
"school-report-context-card-six-conclusion-item"
>
<text
v-if=
"!abnormalStr"
>
早、中、晚餐就餐时间较稳定,按时吃饭,自律如昔,你就赢了大多数人
</text>
<text
v-else
>
<text
class=
"abnormal-date"
>
{{
abnormalStr
}}
</text>
的就餐时间跟同班同学相差超20分钟,如果快乐很难,那么按时吃饭
</text>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(1)!=-1"
class=
"mealtime-trends"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
早餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(1)!=-1"
id=
"breakfast-time-line"
>
</view>
<view
v-if=
"mealtypeArr.indexOf(2)!=-1"
class=
"mealtime-trends"
style=
"position: relative;top:-134rpx"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
中餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(2)!=-1"
id=
"lunch-time-line"
>
</view>
<view
v-if=
"mealtypeArr.indexOf(3)!=-1"
class=
"mealtime-trends"
style=
"position: relative;top:-286rpx"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
晚餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(3)!=-1"
id=
"dinner-time-line"
>
</view>
</view>
<view
v-show=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-seven"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
饭友分析
</text>
</view>
</view>
<view
class=
"school-report-context-card-seven-conclusion"
>
<view
class=
"school-report-context-card-seven-conclusion-item"
>
<text
v-if=
"!mealPalArr.length"
>
独立的
<text
class=
"abnormal-date"
>
{{
userInfo
.
userName
}}
</text>
很棒,偶尔也可以叫上朋友一起吃饭哦
</text>
</text>
<text
v-else-if=
"mealPalArr.length==1"
>
最佳饭友非
<text
class=
"abnormal-date"
>
{{
mealPalStr
}}
</text>
莫属,有饭友吃嘛嘛香
</text>
</text>
<text
v-else
>
最佳干饭组合,赶快叫上
<text
class=
"abnormal-date"
>
{{
mealPalStr
}}
</text>
一起吃饭吧
</text>
</text>
</view>
</view>
<view
class=
"meal-pal-bar-unit"
>
<view
class=
"meal-pal-bar-unit-item"
>
<view
class=
"meal-pal-bar-icon"
>
</view>
<view
class=
"meal-pal-bar-txt"
>
<text>
一起就餐天数
</text>
</view>
</view>
</view>
<view
id=
"meal-pal-bar"
>
</view>
</view>
<!-- 出入校报告 -->
<!-- 出入校报告 -->
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-two"
>
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-two"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
出
勤
情况
</text>
<text>
出
入校
情况
</text>
</view>
</view>
</view>
</view>
<view
class=
"attendance-report-context-card-two-conclusion"
>
<view
class=
"attendance-report-context-card-two-conclusion"
>
<view
class=
"attendance-report-context-card-two-conclusion-txt"
>
<view
class=
"attendance-report-context-card-two-conclusion-txt"
>
<text
v-if=
"attendanceReport.abnormalNum!=-1"
>
本
{{
[
'
月
'
,
'
周
'
][
reportTypeIndex
]
}}
共
<text
<text
v-if=
"attendanceReport.abnormalNum!=-1"
>
本
{{
[
'
月
'
,
'
周
'
][
reportTypeIndex
]
}}
共
<text
class=
"abnormal-days"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
勤
异常
</text>
class=
"abnormal-days"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
入
异常
</text>
</view>
</view>
<view
class=
"attendance-report-context-card-two-conclusion-logo"
>
<view
class=
"attendance-report-context-card-two-conclusion-logo"
>
<view
class=
"attendance-report-context-card-two-conclusion-logo-item"
>
<view
class=
"attendance-report-context-card-two-conclusion-logo-item"
>
...
@@ -397,14 +593,16 @@
...
@@ -397,14 +593,16 @@
<template
#top-info
="
item
"
>
<template
#top-info
="
item
"
>
<span
v-if=
"item.topInfo=='请假'"
class=
"mark-green"
>
请假
</span>
<span
v-if=
"item.topInfo=='请假'"
class=
"mark-green"
>
请假
</span>
<span
v-if=
"item.topInfo=='迟到'"
class=
"mark-orange"
>
迟到
</span>
<span
v-if=
"item.topInfo=='迟到'"
class=
"mark-orange"
>
迟到
</span>
<span
v-if=
"item.topInfo=='
旷课'"
class=
"mark-orange"
>
旷课
</span>
<span
v-if=
"item.topInfo=='
未到校'"
class=
"mark-orange"
>
未到校
</span>
<span
v-if=
"item.topInfo=='早退'"
class=
"mark-orange"
>
早退
</span>
<span
v-if=
"item.topInfo=='早退'"
class=
"mark-orange"
>
早退
</span>
<span
v-if=
"item.topInfo=='冠军'"
class=
"mark-yellow"
>
冠军
</span>
<span
v-if=
"item.topInfo=='冠军'"
class=
"mark-yellow"
>
冠军
</span>
<span
v-if=
"item.topInfo=='进步'"
class=
"mark-yellow"
>
进步
</span>
</
template
>
</
template
>
</van-calendar>
</van-calendar>
</view>
</view>
</view>
</view>
<view
v-if=
"tabIndex==2&&attendanceReportDatail.length"
class=
"attendance-report-context-details"
>
<view
v-if=
"tabIndex==2&&isAttendanceOpen"
class=
"attendance-report-context-details"
:style=
"{height:attendanceReportDatail.length?858:620+'rpx',overflow:attendanceReportDatail.length?'scroll':'none',top:attendanceReportDatail.length?-30:0+'rpx'}"
>
<view
v-for=
"(detailItem,detailIndex) in attendanceReportDatail"
:key=
"detailIndex"
>
<view
v-for=
"(detailItem,detailIndex) in attendanceReportDatail"
:key=
"detailIndex"
>
<view
v-if=
"detailItem.attendIntervalType&&detailItem.attendIntervalType!=-1"
<view
v-if=
"detailItem.attendIntervalType&&detailItem.attendIntervalType!=-1"
class=
"attendance-report-context-card-two-details"
>
class=
"attendance-report-context-card-two-details"
>
...
@@ -428,6 +626,8 @@
...
@@ -428,6 +626,8 @@
class=
"attendance-report-context-card-two-details"
>
class=
"attendance-report-context-card-two-details"
>
<view
class=
"attendance-report-context-card-two-details-item"
>
<view
class=
"attendance-report-context-card-two-details-item"
>
<view
class=
"attendance-report-context-card-two-details-time"
>
<view
class=
"attendance-report-context-card-two-details-time"
>
<view
class=
"attendance-report-context-card-two-details-time-img"
>
</view>
<view
class=
"attendance-report-context-card-two-details-time-txt txt-details"
>
<view
class=
"attendance-report-context-card-two-details-time-txt txt-details"
>
<text>
未设置考勤时间
</text>
<text>
未设置考勤时间
</text>
</view>
</view>
...
@@ -437,7 +637,7 @@
...
@@ -437,7 +637,7 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
class=
"attendance-report-context-card-three"
>
<view
v-if=
"attendanceReportDatail.length"
class=
"attendance-report-context-card-three"
>
<view
v-for=
"(item,index) in detailItem.attendDetailReportDTOList"
:key=
"index"
>
<view
v-for=
"(item,index) in detailItem.attendDetailReportDTOList"
:key=
"index"
>
<view
class=
"attendance-report-details"
>
<view
class=
"attendance-report-details"
>
<view
class=
"dashed-line-box"
>
<view
class=
"dashed-line-box"
>
...
@@ -469,17 +669,26 @@
...
@@ -469,17 +669,26 @@
<text>
早到冠军
</text>
<text>
早到冠军
</text>
</view>
</view>
</view>
</view>
<view
v-else-if=
"item.describeContent=='非常不错哦,比昨天早到'"
class=
"early-champions"
style=
"width: 368rpx"
>
<view
class=
"progress-img"
>
</view>
<view
class=
"early-champions-txt"
>
<text>
非常不错哦,比昨天早到
</text>
</view>
</view>
</view>
</view>
</view>
<view
class=
"attendance-report-details-img-item"
>
<view
class=
"attendance-report-time-details"
>
<view
class=
"attendance-report-time-details"
>
<view
v-if=
"item.describeContent!='当日早到冠军'"
<view
v-if=
"item.describeContent!='当日早到冠军'&&item.describeContent!='非常不错哦,比昨天早到'"
class=
"attendance-report-time-details-item"
>
class=
"attendance-report-time-details-item"
>
<text>
{{item.describeContent}}
</text>
<text>
{{item.describeContent}}
</text>
</view>
</view>
<view
class=
"attendance-report-time-details-icon"
>
<view
class=
"attendance-report-time-details-icon"
>
</view>
</view>
</view>
</view>
</view>
<view
class=
"attendance-report-details-img-item"
>
<view
class=
"attendance-report-details-img-box"
>
<view
class=
"attendance-report-details-img-box"
>
<image
v-if=
"item.attendImage"
:src=
"item.attendImage"
mode=
""
<image
v-if=
"item.attendImage"
:src=
"item.attendImage"
mode=
""
@
click=
"imageClick(item.attendImage)"
>
@
click=
"imageClick(item.attendImage)"
>
...
@@ -491,6 +700,24 @@
...
@@ -491,6 +700,24 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-if=
"!attendanceReportDatail.length"
class=
"noAttendanceReportDatail"
>
<view
class=
"attendance-report-context-card-two-details"
>
<view
class=
"attendance-report-context-card-two-details-item"
>
<view
class=
"attendance-report-context-card-two-details-time"
>
<view
class=
"attendance-report-context-card-two-details-time-img"
>
</view>
<view
class=
"attendance-report-context-card-two-details-time-txt txt-details"
>
<text>
未设置考勤时间
</text>
</view>
</view>
<view
class=
"attendance-report-context-card-two-details-date"
>
<text>
{{attendanceSituations.attendanceDate}}
</text>
</view>
</view>
</view>
<view
class=
"noAttendanceReportDatailImg"
>
</view>
</view>
</view>
</view>
<van-dialog
v-model=
"imageDialogShow"
width=
"620rpx"
>
<van-dialog
v-model=
"imageDialogShow"
width=
"620rpx"
>
<view
class=
"image-dialog"
>
<view
class=
"image-dialog"
>
...
@@ -548,7 +775,7 @@
...
@@ -548,7 +775,7 @@
<view
id=
"leave-message-bar"
>
<view
id=
"leave-message-bar"
>
</view>
</view>
</view>
</view>
<view
v-if=
"
isOpen||isPubTalkOpen||isAttendanceOpen
"
class=
"school-report-footer"
>
<view
v-if=
"
tabIndex&&flag!=tabIndex
"
class=
"school-report-footer"
>
<view
class=
"school-report-footer-item"
>
<view
class=
"school-report-footer-item"
>
<view
class=
"school-report-footer-item-txt"
>
<view
class=
"school-report-footer-item-txt"
>
<text>
到期后将无法查看完整报告
</text>
<text>
到期后将无法查看完整报告
</text>
...
@@ -566,8 +793,8 @@
...
@@ -566,8 +793,8 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-if=
"flag==tabIndex"
class=
"no-open"
<view
v-if=
"
tabIndex&&
flag==tabIndex"
class=
"no-open"
:style=
"{height:[9
15,845,891][tabIndex-1]+'rpx',top:[1425,1099,1260
][tabIndex-1]+'rpx'}"
>
:style=
"{height:[9
92,845,891][tabIndex-1]+'rpx',top:[1620,1099,pubTalkNoopenHeight
][tabIndex-1]+'rpx'}"
>
<view
class=
"no-open-solution"
@
tap=
"equityPay"
>
<view
class=
"no-open-solution"
@
tap=
"equityPay"
>
<view
class=
"no-open-solution-txt"
>
<view
class=
"no-open-solution-txt"
>
<text>
最低{{memberInfo.leastAmount}}元/天开通,查看完整{{['消费','出入校','公话'][tabIndex-1]}}报告
</text>
<text>
最低{{memberInfo.leastAmount}}元/天开通,查看完整{{['消费','出入校','公话'][tabIndex-1]}}报告
</text>
...
@@ -576,66 +803,110 @@
...
@@ -576,66 +803,110 @@
</view>
</view>
</view>
</view>
<view
class=
"open-results"
>
<view
class=
"open-results"
>
<view
class=
"open-results-title"
>
<!-- 消费报告 -->
<view
v-if=
"tabIndex==1"
class=
"open-results-title consume-open-results-title"
>
<text>
开通后,掌握消费动态、更省心
</text>
</view>
<view
v-else
class=
"open-results-title"
>
<text>
开通后,你将解锁
</text>
<text>
开通后,你将解锁
</text>
</view>
</view>
<view
class=
"open-results-items"
>
<view
class=
"open-results-items"
:class=
"tabIndex==1?'consume-open-results-items':''"
>
<view
class=
"open-results-items-summary"
>
<view
v-if=
"tabIndex==2||tabIndex==3"
class=
"open-results-items-summary"
>
<view
class=
"summary-item"
>
<view
class=
"summary-item"
>
<text>
{{['
月度消费报告','实时推送','音视频通话'][tabIndex-1
]}}
</text>
<text>
{{['
实时推送','音视频通话'][tabIndex-2
]}}
</text>
</view>
</view>
<view
class=
"summary-item-icon"
<view
class=
"summary-item-icon"
:class=
"['
consumer-report-icon','attendance-report-icon','pubTalk-report-icon'][tabIndex-1
]"
>
:class=
"['
attendance-report-icon','pubTalk-report-icon'][tabIndex-2
]"
>
<text>
+
</text>
<text>
+
</text>
</view>
</view>
<view
class=
"summary-item"
>
<view
class=
"summary-item"
>
<text>
{{['
消费总结','月度出入校报告','月度公话报告'][tabIndex-1
]}}
</text>
<text>
{{['
月度出入校报告','月度公话报告'][tabIndex-2
]}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"open-results-items-details"
>
<!-- 消费报告 -->
<!-- 消费报告 -->
<view
v-if=
"tabIndex==1"
>
<view
v-if=
"tabIndex==1"
class=
"consume-open-results-items-details"
>
<view
class=
"open-results-items-details-item"
>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子是否缺餐?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"dining-situations-img"
>
<view
class=
"dining-situations-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<view
class=
"details-item-down
-txt"
>
<text>
就餐情况分析
</text>
<text>
【就餐情况】告诉你
</text>
</view>
</view>
<view
class=
"consumer-rationality-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
消费合理性
</text>
</view>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子在校交友了?
</text>
</view>
</view>
<view
class=
"open-results-items-details-item
"
>
<view
class=
"details-item-down
"
>
<view
class=
"consumer-preference
-img"
>
<view
class=
"meal-pal
-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<view
class=
"details-item-down
-txt"
>
<text>
消费偏好分析
</text>
<text>
【饭友分析】告诉你
</text>
</view>
</view>
<view
class=
"consumer-advice-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
消费建议
</text>
</view>
</view>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
消费偏高还是偏低?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-num-img"
>
<view
class=
"consumer-num-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<view
class=
"details-item-down
-txt"
>
<text>
生活费额度分析
</text>
<text>
【生活费额度】直观看
</text>
</view>
</view>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子正餐超市消费多?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-preference-img"
>
</view>
<view
class=
"details-item-down-txt"
>
<text>
【消费偏好】直观看
</text>
</view>
</view>
</view>
</view>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
担心孩子被迫高额消费?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-trend-img"
>
<view
class=
"consumer-trend-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<view
class=
"details-item-down-txt"
>
<text>
消费趋势分析
</text>
<text>
【消费趋势】告诉你
</text>
</view>
</view>
</view>
</view>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子是否准时就餐?
</text>
</view>
</view>
<view
class=
"details-item-down"
>
<view
class=
"time-trends-img"
>
</view>
<view
class=
"details-item-down-txt"
>
<text>
【就餐时间趋势】告诉你
</text>
</view>
</view>
</view>
</view>
</view>
<view
v-else
class=
"open-results-items-details"
>
<!-- 出入校报告 -->
<!-- 出入校报告 -->
<view
v-
else-
if=
"tabIndex==2"
>
<view
v-if=
"tabIndex==2"
>
<view
class=
"open-results-items-details-item"
>
<view
class=
"open-results-items-details-item"
>
<view
class=
"admission-notice-img"
>
<view
class=
"admission-notice-img"
>
</view>
</view>
...
@@ -645,7 +916,7 @@
...
@@ -645,7 +916,7 @@
<view
class=
"admission-analysis-img"
>
<view
class=
"admission-analysis-img"
>
</view>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<view
class=
"open-results-items-details-item-txt"
>
<text>
出
勤
情况分析
</text>
<text>
出
入
情况分析
</text>
</view>
</view>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
<view
class=
"open-results-items-details-item"
>
...
@@ -719,7 +990,7 @@
...
@@ -719,7 +990,7 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-else
class=
"nodata"
>
<view
v-else
class=
"nodata"
@
click=
"nodataClick"
>
<view
class=
"nodataImg"
>
<view
class=
"nodataImg"
>
<img
style=
"width: 100%"
<img
style=
"width: 100%"
src=
"https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/purchaseChart.gif"
/>
src=
"https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/purchaseChart.gif"
/>
...
@@ -728,8 +999,20 @@
...
@@ -728,8 +999,20 @@
<text>
当前为使用高峰期,请稍后再试
</text>
<text>
当前为使用高峰期,请稍后再试
</text>
</view>
</view>
</view>
</view>
<van-dialog
class=
"htmlCanvas"
id=
"htmlCanvas"
ref=
"imgCanvas"
v-model=
"dialogShow"
confirm-button-text=
'长按保存'
<van-dialog
v-model=
"dialogShow"
:showConfirmButton=
"false"
close-on-click-overlay
close-on-click-overlay
style=
"width: 100%; max-height: 80% !important;overflow: scroll"
>
style=
"width: 90%;background: linear-gradient(225deg, #0ADD80 0%, #04B871 100%);margin: 100rpx 0 0;"
>
<view
class=
"htmlCanvasTxt"
>
<view
class=
"htmlCanvasTxt1"
>
<text>
长按下方图片分享
</text>
</view>
<view
class=
"htmlCanvasTxt2"
>
<text>
您可以分享给好友,或者保存到手机
</text>
</view>
</view>
<view
class=
"htmlCanvasBox"
>
<view
class=
"htmlCanvas"
id=
"htmlCanvas"
ref=
"imgCanvas"
>
</view>
</view>
</van-dialog>
</van-dialog>
</view>
</view>
</view>
</view>
...
@@ -777,7 +1060,7 @@
...
@@ -777,7 +1060,7 @@
maxDate
:
new
Date
(),
maxDate
:
new
Date
(),
imgUrl
:
''
,
// 存储base64图片
imgUrl
:
''
,
// 存储base64图片
dialogShow
:
false
,
dialogShow
:
false
,
tabIndex
:
1
,
tabIndex
:
0
,
// 就餐情况
// 就餐情况
diningSituations
:
{
diningSituations
:
{
diningSituationsDate
:
''
,
diningSituationsDate
:
''
,
...
@@ -802,6 +1085,16 @@
...
@@ -802,6 +1085,16 @@
consumerTrend
:
{},
consumerTrend
:
{},
isAbnormal
:
false
,
isAbnormal
:
false
,
lineDatas
:
[],
lineDatas
:
[],
// 饭友分析
mealPalData
:
[],
mealPalArr
:
[],
mealPalStr
:
''
,
// 就餐时间趋势
breakfastAbnormalStr
:
''
,
lunchAbnormalStr
:
''
,
dinnerAbnormalStr
:
''
,
mealtypeArr
:
[],
mealtimeTrendsData
:
[],
// 出入校报告数据
// 出入校报告数据
attendanceSituations
:
{
attendanceSituations
:
{
attendanceDate
:
''
,
attendanceDate
:
''
,
...
@@ -842,10 +1135,34 @@
...
@@ -842,10 +1135,34 @@
differDay
:
''
differDay
:
''
},
},
containerHeight
:
''
,
containerHeight
:
''
,
pubTalkSummaryHeight
:
275
,
pubTalkNoopenHeight
:
1260
,
isnodataClick
:
false
}
},
computed
:
{
abnormalStr
()
{
if
(
this
.
mealtypeArr
.
length
)
{
var
breakfastAbnormalStr
=
this
.
mealtimeAbnormalDate
(
1
);
var
lunchAbnormalStr
=
this
.
mealtimeAbnormalDate
(
2
);
var
dinnerAbnormalStr
=
this
.
mealtimeAbnormalDate
(
3
);
var
str1
=
breakfastAbnormalStr
?
breakfastAbnormalStr
+
'
早餐
'
:
''
;
var
str2
=
lunchAbnormalStr
?
lunchAbnormalStr
+
'
中餐
'
:
''
;
var
str3
=
dinnerAbnormalStr
?
dinnerAbnormalStr
+
'
晚餐
'
:
''
;
var
str
=
str1
?
(
str1
+
(
str2
?
(
'
、
'
+
str2
+
(
str3
?
'
、
'
+
str3
:
''
))
:
(
str3
?
'
、
'
+
str3
:
''
)))
:
(
str2
?
(
str2
+
(
str3
?
'
、
'
+
str3
:
''
))
:
(
str3
?
str3
:
''
));
}
else
{
var
str
=
''
}
return
str
;
}
}
},
},
mounted
()
{
mounted
()
{
if
(
this
.
isPeakPeriod
())
{
this
.
init
()
},
methods
:
{
init
()
{
if
(
this
.
isPeakPeriod
()
&&
!
this
.
isnodataClick
)
{
this
.
showReport
=
false
;
this
.
showReport
=
false
;
return
return
}
}
...
@@ -863,7 +1180,8 @@
...
@@ -863,7 +1180,8 @@
// 有无进出校、公话入口
// 有无进出校、公话入口
this
.
queryMemberServcieItem
().
then
(()
=>
{
this
.
queryMemberServcieItem
().
then
(()
=>
{
if
(
this
.
queryMemberServcieItemList
.
length
)
{
if
(
this
.
queryMemberServcieItemList
.
length
)
{
this
.
isAttendanceService
=
this
.
queryMemberServcieItemList
.
indexOf
(
3002
)
==
-
1
?
false
:
true
;
this
.
isAttendanceService
=
this
.
queryMemberServcieItemList
.
indexOf
(
3002
)
==
-
1
?
false
:
true
;
this
.
isPubTalkService
=
this
.
queryMemberServcieItemList
.
indexOf
(
2002
)
==
-
1
?
false
:
true
;
this
.
isPubTalkService
=
this
.
queryMemberServcieItemList
.
indexOf
(
2002
)
==
-
1
?
false
:
true
;
}
}
})
})
...
@@ -873,19 +1191,58 @@
...
@@ -873,19 +1191,58 @@
this
.
queryMemberValidTime
(
1002
).
then
(
e
=>
{
this
.
queryMemberValidTime
(
1002
).
then
(
e
=>
{
if
(
new
Date
(
this
.
memberInfo
.
invalidDate
).
getTime
()
<=
new
Date
(
'
2022/06/30
'
)
if
(
new
Date
(
this
.
memberInfo
.
invalidDate
).
getTime
()
<=
new
Date
(
'
2022/06/30
'
)
.
getTime
())
{
.
getTime
())
{
this
.
isOpen
=
true
;
this
.
flag
=
0
;
this
.
flag
=
0
;
this
.
tabIndex
=
1
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
containerHeight
=
4200
;
this
.
containerHeight
=
4200
;
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
}
else
{
this
.
tabIndex
=
1
;
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
});
});
}
}
})
})
...
@@ -893,16 +1250,36 @@
...
@@ -893,16 +1250,36 @@
if
(
new
Date
().
getTime
()
<=
new
Date
(
'
2022/06/30
'
).
getTime
())
{
if
(
new
Date
().
getTime
()
<=
new
Date
(
'
2022/06/30
'
).
getTime
())
{
this
.
isOpen
=
true
;
this
.
isOpen
=
true
;
this
.
flag
=
0
;
this
.
flag
=
0
;
this
.
tabIndex
=
1
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
containerHeight
=
4200
;
this
.
containerHeight
=
4200
;
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
}
else
{
this
.
tabIndex
=
1
;
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryConsumerSummaryAmount
();
this
.
queryConsumerSummaryAmount
();
this
.
queryDayConsumerTrend
();
this
.
queryDayConsumerTrend
();
});
this
.
queryMealPalAnalyse
();
this
.
queryRepastTimeTrend
();
})
}
}
}
}
});
});
...
@@ -930,22 +1307,26 @@
...
@@ -930,22 +1307,26 @@
this
.
queryNotRepastDetails
(
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
this
.
dataRangeArr
[
this
this
.
queryNotRepastDetails
(
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
).
then
(()
=>
{
.
dataRangeIndex
].
endDate
).
then
(()
=>
{
if
(
this
.
diningSituations
.
notRepastDetailsDTOS
)
{
if
(
this
.
diningSituations
.
notRepastDetailsDTOS
)
{
let
today
=
this
.
diningSituations
.
notRepastDetailsDTOS
.
filter
(
e
=>
e
.
repastDate
===
tmpDate
)[
let
today
=
this
.
diningSituations
.
notRepastDetailsDTOS
.
filter
(
e
=>
e
.
repastDate
===
tmpDate
)[
0
];
0
];
this
.
diningSituations
.
notRepastDetails
=
today
;
this
.
diningSituations
.
notRepastDetails
=
today
;
}
else
{
}
else
{
this
.
diningSituations
.
notRepastDetails
=
{};
this
.
diningSituations
.
notRepastDetails
=
{};
}
}
});
});
if
(
this
.
isPubTalkService
)
{
this
.
getPubTalkReport
();
}
},
},
methods
:
{
// 当天11:00 ~ 13:00属于高峰期
// 当天6:30 ~ 9:00,11:30 ~ 12:00, 17:30 ~ 19:00属于高峰期
isPeakPeriod
()
{
isPeakPeriod
()
{
let
first
=
this
.
timeIn
(
"
06:30:00
"
,
"
09:00:00
"
);
let
first
=
this
.
timeIn
(
"
11:00:00
"
,
"
13:00:00
"
);
let
second
=
this
.
timeIn
(
"
11:00:00
"
,
"
12:00:00
"
);
return
first
;
let
three
=
this
.
timeIn
(
"
17:30:00
"
,
"
19:00:00
"
);
},
console
.
log
(
first
,
"
first
"
,
second
,
"
second
"
,
three
,
"
three
"
);
nodataClick
:
function
()
{
return
first
||
second
||
three
;
this
.
isnodataClick
=
true
this
.
init
()
},
},
/*在某段时间内*/
/*在某段时间内*/
timeIn
(
s
,
e
)
{
timeIn
(
s
,
e
)
{
...
@@ -987,11 +1368,30 @@
...
@@ -987,11 +1368,30 @@
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
}
else
{
this
.
queryConsumerSummaryAmount
();
this
.
queryConsumerSummaryAmount
();
this
.
queryDayConsumerTrend
();
this
.
queryDayConsumerTrend
();
}
}
})
})
}
else
if
(
num
==
2
)
{
}
else
if
(
num
==
2
)
{
if
(
flag
)
{
if
(
flag
)
{
this
.
attendanceSituations
.
attendanceDate
=
this
.
formatDate
(
this
.
minDate
);
this
.
attendanceSituations
.
attendanceDate
=
this
.
formatDate
(
this
.
minDate
);
...
@@ -1010,7 +1410,7 @@
...
@@ -1010,7 +1410,7 @@
if
(
this
.
attendanceReportDatail
.
length
)
{
if
(
this
.
attendanceReportDatail
.
length
)
{
this
.
containerHeight
=
2762
;
this
.
containerHeight
=
2762
;
}
else
{
}
else
{
this
.
containerHeight
=
190
4
;
this
.
containerHeight
=
252
4
;
}
}
});
});
}
}
...
@@ -1037,23 +1437,21 @@
...
@@ -1037,23 +1437,21 @@
this
.
memberInfo
.
differDay
=
''
;
this
.
memberInfo
.
differDay
=
''
;
this
.
memberInfo
.
invalidDateStr
=
''
;
this
.
memberInfo
.
invalidDateStr
=
''
;
this
.
memberInfo
.
leastAmount
=
''
;
this
.
memberInfo
.
leastAmount
=
''
;
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
queryIsDredgeMember
(
2002
).
then
(
e
=>
{
this
.
queryIsDredgeMember
(
2002
).
then
(
e
=>
{
if
(
this
.
isPubTalkOpen
)
{
if
(
this
.
isPubTalkOpen
)
{
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
callNumberBarchart
();
this
.
callNumberBarchart
();
this
.
callDurationBarchart
();
this
.
callDurationBarchart
();
this
.
leaveMessageBarchart
();
this
.
leaveMessageBarchart
();
})
})
})
}
else
{
}
else
{
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
callNumberBarchart
();
this
.
callNumberBarchart
();
})
})
})
}
}
})
})
})
}
}
}
}
},
},
...
@@ -1061,6 +1459,10 @@
...
@@ -1061,6 +1459,10 @@
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
html2cancas
(
document
.
getElementsByClassName
(
"
tainer
"
)[
0
],
{
html2cancas
(
document
.
getElementsByClassName
(
"
tainer
"
)[
0
],
{
useCORS
:
true
,
useCORS
:
true
,
// 解决截图不完整问题
scale
:
1
,
height
:
document
.
getElementsByClassName
(
"
tainer
"
)[
0
].
scrollHeight
,
windowHeight
:
document
.
getElementsByClassName
(
"
tainer
"
)[
0
].
scrollHeight
}).
then
((
canvas
)
=>
{
}).
then
((
canvas
)
=>
{
let
htmlCanvas
=
document
.
getElementById
(
'
htmlCanvas
'
);
let
htmlCanvas
=
document
.
getElementById
(
'
htmlCanvas
'
);
let
url
=
canvas
.
toDataURL
(
'
image/png
'
);
let
url
=
canvas
.
toDataURL
(
'
image/png
'
);
...
@@ -1068,7 +1470,8 @@
...
@@ -1068,7 +1470,8 @@
let
img
=
document
.
createElement
(
"
img
"
);
let
img
=
document
.
createElement
(
"
img
"
);
img
.
setAttribute
(
'
src
'
,
this
.
imgUrl
);
img
.
setAttribute
(
'
src
'
,
this
.
imgUrl
);
img
.
setAttribute
(
'
class
'
,
'
htmlCanvasImg
'
);
img
.
setAttribute
(
'
class
'
,
'
htmlCanvasImg
'
);
img
.
style
.
width
=
'
100vw
'
;
img
.
style
.
width
=
'
83vw
'
;
img
.
style
.
borderRadius
=
'
15px
'
;
htmlCanvas
.
appendChild
(
img
);
htmlCanvas
.
appendChild
(
img
);
})
})
})
})
...
@@ -1139,7 +1542,7 @@
...
@@ -1139,7 +1542,7 @@
const
lunchTxt
=
item
.
lunchStatus
?
''
:
'
中
'
;
const
lunchTxt
=
item
.
lunchStatus
?
''
:
'
中
'
;
const
supperTxt
=
item
.
supperStatus
?
''
:
'
晚
'
;
const
supperTxt
=
item
.
supperStatus
?
''
:
'
晚
'
;
day
.
topInfo
=
breakfastTxt
+
lunchTxt
+
supperTxt
;
day
.
topInfo
=
breakfastTxt
+
lunchTxt
+
supperTxt
;
if
(
day
.
topInfo
)
{
if
(
day
.
topInfo
)
{
day
.
className
=
'
notice-day
'
day
.
className
=
'
notice-day
'
}
}
}
}
...
@@ -1151,10 +1554,11 @@
...
@@ -1151,10 +1554,11 @@
.
abnomalType
==
3
||
e
.
abnomalType
==
5
);
.
abnomalType
==
3
||
e
.
abnomalType
==
5
);
const
leaveList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
4
);
const
leaveList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
4
);
const
championList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
6
);
const
championList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
6
);
// 迟到 早退 旷课
const
progressList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
7
);
// 迟到 早退 未到校
abnomalList
.
forEach
(
item
=>
{
abnomalList
.
forEach
(
item
=>
{
if
(
sum
==
item
.
attendDate
.
slice
(
0
,
10
))
{
if
(
sum
==
item
.
attendDate
.
slice
(
0
,
10
))
{
var
topInfo
=
item
.
abnomalType
==
5
?
'
旷课
'
:
item
.
abnomaleName
;
var
topInfo
=
item
.
abnomalType
==
5
?
'
未到校
'
:
item
.
abnomaleName
;
day
.
topInfo
=
topInfo
;
day
.
topInfo
=
topInfo
;
day
.
className
=
'
late-day
'
;
day
.
className
=
'
late-day
'
;
}
}
...
@@ -1173,6 +1577,13 @@
...
@@ -1173,6 +1577,13 @@
day
.
className
=
'
champion-day
'
;
day
.
className
=
'
champion-day
'
;
}
}
})
})
// 进步
progressList
.
forEach
(
item
=>
{
if
(
sum
==
item
.
attendDate
.
slice
(
0
,
10
))
{
day
.
topInfo
=
item
.
abnomaleName
;
day
.
className
=
'
progress-day
'
;
}
})
}
}
}
}
return
day
;
return
day
;
...
@@ -1376,6 +1787,324 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1376,6 +1787,324 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
myLineChart
.
resize
();
myLineChart
.
resize
();
})
})
},
},
// 就餐时间趋势
breakfastTimeLinechart
:
function
(
num
,
eleId
,
mealtype
)
{
var
mySize
=
document
.
getElementById
(
eleId
);
mySize
.
style
.
width
=
350
+
'
px
'
;
mySize
.
style
.
height
=
260
+
'
px
'
;
var
myBreakfastTimeLineChart
=
echarts
.
init
(
mySize
);
var
cateringList
=
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
mealtype
)[
0
].
cateringList
;
var
breakfastTimeData
=
JSON
.
parse
(
JSON
.
stringify
(
cateringList
));
var
breakfastTimeDataTwo
=
JSON
.
parse
(
JSON
.
stringify
(
cateringList
));
breakfastTimeData
.
forEach
(
e
=>
{
if
(
'
itemStyle
'
in
e
)
delete
e
.
itemStyle
;
if
(
'
symbol
'
in
e
)
delete
e
.
symbol
;
if
(
'
symbolSize
'
in
e
)
delete
e
.
symbolSize
;
if
(
e
.
classmealtime
.
indexOf
(
'
2022/07/01
'
)
==
-
1
)
{
e
.
classmealtime
=
"
2022/07/01
"
+
e
.
classmealtime
}
e
.
value
=
e
.
classmealtime
;
});
breakfastTimeDataTwo
.
forEach
(
e
=>
{
if
(
'
itemStyle
'
in
e
)
delete
e
.
itemStyle
;
if
(
'
symbol
'
in
e
)
delete
e
.
symbol
;
if
(
'
symbolSize
'
in
e
)
delete
e
.
symbolSize
;
if
(
e
.
usermealtime
.
indexOf
(
'
2022/07/01
'
)
==
-
1
)
{
e
.
usermealtime
=
"
2022/07/01
"
+
e
.
usermealtime
}
e
.
value
=
e
.
usermealtime
;
});
var
xInterval
=
this
.
reportTypeIndex
?
0
:
6
;
var
yMidPoint
=
"
2022/07/01
"
+
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
1
)[
0
].
earliestTime
;
var
maxDate
=
new
Date
(
yMidPoint
).
setHours
(
new
Date
(
yMidPoint
).
getHours
()
==
23
?
'
00
'
:
new
Date
(
yMidPoint
).
getHours
()
+
1
);
var
minDate
=
new
Date
(
yMidPoint
).
setHours
(
new
Date
(
yMidPoint
).
getHours
()
==
0
?
23
:
new
Date
(
yMidPoint
).
getHours
()
-
1
);
var
xdata
=
breakfastTimeData
.
map
(
e
=>
e
.
repasttime
.
slice
(
5
));
var
year
=
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
.
slice
(
0
,
4
);
var
month
=
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
.
slice
(
5
,
7
);
var
saturdayList
=
this
.
getMonthSaturdayDate
(
year
,
month
);
var
seriesDataOne
=
[];
var
seriesDataTwo
=
[];
switch
(
num
)
{
case
0
:
// 月报
breakfastTimeData
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
// 第1/2/3/4周的最后一天+月末最后一天
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
else
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
});
breakfastTimeDataTwo
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
else
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
});
break
;
case
1
:
// 周报
breakfastTimeData
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
});
breakfastTimeDataTwo
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
});
break
;
}
var
option
=
{
xAxis
:
{
type
:
'
category
'
,
data
:
xdata
,
axisLabel
:
{
interval
:
xInterval
},
},
yAxis
:
{
type
:
'
time
'
,
axisLabel
:
{
margin
:
2
,
formatter
:
function
(
value
)
{
return
(
moment
(
value
).
format
(
'
YYYY-MM-DD HH:mm
'
)).
slice
(
11
)
}
},
max
:
function
(
value
)
{
if
(
new
Date
(
maxDate
).
getMinutes
()
>
0
&&
new
Date
(
maxDate
).
getMinutes
()
<
30
)
{
return
new
Date
(
maxDate
).
setMinutes
(
30
);
}
else
{
return
maxDate
;
}
},
min
:
minDate
,
minInterval
:
2400
*
1000
,
maxInterval
:
2400
*
1000
},
series
:
[{
data
:
seriesDataOne
,
type
:
'
line
'
,
smooth
:
true
,
lineStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
}
},
{
data
:
seriesDataTwo
,
type
:
'
line
'
,
smooth
:
true
,
lineStyle
:
{
color
:
'
#0BDB7E
'
}
},
],
tooltip
:
{
trigger
:
'
axis
'
,
axisPointer
:
{
type
:
'
shadow
'
,
shadowStyle
:
{
color
:
'
transparent
'
}
},
extraCssText
:
`width:150px;height:30px;line-height:33rpx;background: no-repeat center/100% url(./static/images/breakfastTimeBg.png);
font-size:24rpx;font-family: PingFangSC-Medium, PingFang SC;font-weight: 500;
color: #FF8646;padding:23px 0 30px 12px;box-sizing:border-box;`
,
confine
:
true
,
position
:
function
(
pt
)
{
return
[
pt
[
0
]
-
30
,
pt
[
1
]
-
5
];
},
formatter
:
function
(
data
)
{
if
(
data
[
0
].
data
.
repastType
==
2
&&
data
[
0
].
data
.
symbolSize
)
{
return
`
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getMonth
()
+
1
}
月
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getDate
()}
日就餐时间较晚`
;
}
else
if
(
data
[
0
].
data
.
repastType
==
3
&&
data
[
0
].
data
.
symbolSize
)
{
return
`
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getMonth
()
+
1
}
月
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getDate
()}
日就餐时间较早`
;
}
}
},
};
option
&&
myBreakfastTimeLineChart
.
setOption
(
option
);
window
.
addEventListener
(
'
resize
'
,
function
()
{
myBreakfastTimeLineChart
.
resize
();
})
},
mealPalBarchart
:
function
()
{
var
mySize
=
document
.
getElementById
(
'
meal-pal-bar
'
);
mySize
.
style
.
width
=
300
+
'
px
'
;
mySize
.
style
.
height
=
280
+
'
px
'
;
var
myMealPalBarchart
=
echarts
.
init
(
mySize
);
var
ydata
=
this
.
mealPalArr
;
var
seriesData
=
this
.
mealPalData
.
map
(
v
=>
v
.
mealnumber
);
var
seriesDataMax
=
Math
.
max
(...
seriesData
);
var
option
=
{
xAxis
:
{
type
:
'
value
'
,
interval
:
Math
.
ceil
(
seriesDataMax
/
5
),
axisLabel
:
{
formatter
:
'
{value}天
'
},
splitLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
'
#979797
'
],
width
:
0.5
,
type
:
'
solid
'
}
}
},
yAxis
:
{
type
:
'
category
'
,
data
:
ydata
,
axisLabel
:
{
show
:
true
,
textStyle
:
{
color
:
'
#000000
'
,
fontSize
:
12
},
},
axisLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
'
#979797
'
],
width
:
0.5
,
type
:
'
solid
'
}
}
},
series
:
[{
data
:
seriesData
,
type
:
'
bar
'
,
itemStyle
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
1
,
0
,
[{
offset
:
0
,
color
:
'
#04B871
'
},
{
offset
:
1
,
color
:
'
#07D66A
'
}
]),
barBorderRadius
:
[
0
,
8
,
8
,
0
],
},
label
:
{
show
:
true
,
position
:
'
right
'
,
color
:
'
#04B871
'
,
fontSize
:
'
14px
'
,
formatter
:
(
params
)
=>
{
return
params
.
value
+
'
天
'
;
}
},
barWidth
:
25
}]
};
option
&&
myMealPalBarchart
.
setOption
(
option
);
window
.
addEventListener
(
'
resize
'
,
function
()
{
myMealPalBarchart
.
resize
();
})
},
callNumberBarchart
:
function
()
{
callNumberBarchart
:
function
()
{
var
mySize
=
document
.
getElementById
(
'
call-number-bar
'
);
var
mySize
=
document
.
getElementById
(
'
call-number-bar
'
);
mySize
.
style
.
width
=
350
+
'
px
'
;
mySize
.
style
.
width
=
350
+
'
px
'
;
...
@@ -1755,11 +2484,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1755,11 +2484,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
title
:
data
.
msg
title
:
data
.
msg
})
})
return
return
}
}
if
(
!
data
.
obj
)
return
;
if
(
!
data
.
obj
)
return
;
if
(
data
.
obj
.
length
)
{
if
(
data
.
obj
.
length
)
{
const
tmpObj
=
data
.
obj
[
0
];
const
tmpObj
=
data
.
obj
[
0
];
this
.
isEatLow
=
tmpObj
.
canteenamount
/
tmpObj
.
consumergrossamount
<
0.5
?
true
:
false
;
this
.
isEatLow
=
tmpObj
.
canteenamount
/
tmpObj
.
consumergrossamount
<
0.5
?
true
:
false
;
if
(
num
)
{
if
(
num
)
{
this
.
pieDatas
=
[
this
.
pieDatas
=
[
[{
[{
...
@@ -1788,12 +2519,17 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1788,12 +2519,17 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
name
:
'
gradeAverageHeight
'
,
name
:
'
gradeAverageHeight
'
,
num
:
this
.
consumerAmountObj
.
gradeavgamount
num
:
this
.
consumerAmountObj
.
gradeavgamount
});
});
const
tempArr
=
[
this
.
consumerAmountObj
.
schoolavgamount
,
this
.
consumerAmountObj
const
tempArr
=
[
this
.
consumerAmountObj
.
schoolavgamount
,
this
.
consumerAmountObj
.
consumergrossamount
,
.
consumergrossamount
,
this
.
consumerAmountObj
.
gradeavgamount
this
.
consumerAmountObj
.
gradeavgamount
];
];
const
heightArr
=
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
1
?
[
139
,
139
,
139
]
:
(
const
heightArr
=
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
1
?
[
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
2
?
[
139
,
139
,
160
]
:
[
139
,
160
,
192
]
139
,
139
,
139
]
:
(
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
2
?
[
139
,
139
,
160
]
:
[
139
,
160
,
192
]
);
);
sortArr
.
forEach
(
e
=>
{
sortArr
.
forEach
(
e
=>
{
this
[
e
.
name
]
=
heightArr
[
e
.
tag
]
this
[
e
.
name
]
=
heightArr
[
e
.
tag
]
...
@@ -1862,6 +2598,106 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1862,6 +2598,106 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
})
}
}
},
},
// 饭友分析
async
queryMealPalAnalyse
()
{
try
{
let
data
=
await
this
.
$http
.
get
({
url
:
gHost
+
'
/report-push/campus-consumer-report/queryMealPalAnalyse
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
studentId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
timeType
:
this
.
dataRangeIndex
==
0
?
2
:
1
})
if
(
data
.
code
!=
200
)
{
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
data
.
message
})
return
}
this
.
mealPalData
=
data
.
obj
||
[];
this
.
mealPalArr
=
this
.
mealPalData
.
map
(
v
=>
v
.
mealpalname
.
slice
(
0
,
1
)
+
'
**
'
);
this
.
mealPalStr
=
this
.
mealPalArr
.
join
(
'
、
'
);
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
e
.
message
})
}
},
// 异常就餐日期
mealtimeAbnormalDate
(
mealtype
)
{
// mealtype 1 早餐 2 中餐 3 晚餐
var
breakfastArr
=
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
mealtype
);
var
breakfastAbnormalArr
=
[];
var
breakfastAbnormalStr
=
''
;
if
(
breakfastArr
&&
breakfastArr
[
0
].
cateringList
)
{
breakfastAbnormalArr
=
breakfastArr
[
0
].
cateringList
.
filter
(
e
=>
e
.
repastType
==
2
||
e
.
repastType
==
3
)
.
map
(
e
=>
e
.
repasttime
.
slice
(
8
,
9
)
?
e
.
repasttime
.
slice
(
8
)
:
e
.
repasttime
.
slice
(
8
,
9
))
if
(
breakfastAbnormalArr
.
length
>
1
)
{
for
(
var
i
=
0
;
i
<
breakfastAbnormalArr
.
length
-
1
;
i
++
)
{
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
i
]
+
'
日、
'
;
}
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
breakfastAbnormalArr
.
length
-
1
]
+
'
日
'
;
}
else
if
(
breakfastAbnormalArr
.
length
==
1
)
{
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
breakfastAbnormalArr
.
length
-
1
]
+
'
日
'
;
}
}
return
breakfastAbnormalStr
;
},
// 就餐时间趋势
async
queryRepastTimeTrend
()
{
try
{
let
data
=
await
this
.
$http
.
get
({
url
:
gHost
+
'
/report-push/campus-consumer-report/queryRepastTimeTrend
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
timeType
:
this
.
dataRangeIndex
==
0
?
2
:
1
})
if
(
data
.
code
!=
200
)
{
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
data
.
message
})
return
}
if
(
data
.
obj
)
{
this
.
mealtimeTrendsData
=
data
.
obj
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
1
)
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
1
)[
0
]
.
cateringList
)
{
this
.
mealtypeArr
.
push
(
1
)
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
2
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
2
)[
0
]
.
cateringList
))
{
this
.
mealtypeArr
.
push
(
2
)
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
3
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
3
)[
0
]
.
cateringList
))
{
this
.
mealtypeArr
.
push
(
3
)
}
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
e
.
message
})
}
},
// 获取公话报告
// 获取公话报告
async
getPubTalkReport
()
{
async
getPubTalkReport
()
{
try
{
try
{
...
@@ -1871,8 +2707,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1871,8 +2707,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
},
{
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
schoolId
:
getQueryParams
(
'
schoolId
'
),
studentId
:
getQueryParams
(
'
userId
'
),
studentId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
.
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
endDate
,
})
})
if
(
data
.
code
!=
0
)
{
if
(
data
.
code
!=
0
)
{
uni
.
showToast
({
uni
.
showToast
({
...
@@ -1883,6 +2721,15 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1883,6 +2721,15 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
return
return
}
}
this
.
pubTalkReport
=
data
.
data
||
{};
this
.
pubTalkReport
=
data
.
data
||
{};
if
(
!
this
.
pubTalkReport
.
talkText5
&&
!
this
.
pubTalkReport
.
talkText9
)
{
this
.
pubTalkSummaryHeight
=
275
;
}
else
if
(
this
.
pubTalkReport
.
talkText5
&&
!
this
.
pubTalkReport
.
talkText9
)
{
this
.
pubTalkSummaryHeight
=
387
;
}
else
{
this
.
pubTalkSummaryHeight
=
525
;
}
}
catch
(
e
)
{
}
catch
(
e
)
{
//TODO handle the exception
//TODO handle the exception
console
.
log
(
e
);
console
.
log
(
e
);
...
@@ -1903,8 +2750,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1903,8 +2750,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
},
{
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
userId
:
getQueryParams
(
'
userId
'
),
startTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
startTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
endTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
.
startDate
,
endTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
endDate
,
classId
:
this
.
userInfo
.
classId
classId
:
this
.
userInfo
.
classId
})
})
if
(
data
.
code
!=
200
)
{
if
(
data
.
code
!=
200
)
{
...
@@ -1926,7 +2775,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1926,7 +2775,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
})
}
}
},
},
// 出
勤
情况明细
// 出
入
情况明细
async
attendanceReprotDatail
(
currentDate
)
{
async
attendanceReprotDatail
(
currentDate
)
{
try
{
try
{
let
data
=
await
this
.
$http
.
post
({
let
data
=
await
this
.
$http
.
post
({
...
@@ -1949,10 +2798,14 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1949,10 +2798,14 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
var
tempList
=
data
.
data
;
var
tempList
=
data
.
data
;
if
(
tempList
&&
tempList
.
length
)
{
if
(
tempList
&&
tempList
.
length
)
{
tempList
.
forEach
(
e
=>
{
tempList
.
forEach
(
e
=>
{
if
(
e
.
attendDetailReportDTOList
&&
e
.
attendDetailReportDTOList
.
length
)
{
if
(
e
.
attendDetailReportDTOList
&&
e
e
.
attendDetailReportDTOList
.
forEach
(
c
=>
{
.
attendDetailReportDTOList
.
length
)
{
c
.
border
=
c
.
describeContent
&&
c
e
.
attendDetailReportDTOList
.
forEach
(
.
describeContent
!=
'
当日早到冠军
'
?
c
=>
{
c
.
border
=
c
.
describeContent
&&
c
.
describeContent
!=
'
当日早到冠军
'
?
'
4rpx solid #F9793F
'
:
'
4rpx solid #F9793F
'
:
'
4rpx solid rgba(0, 0, 0, 0.25)
'
'
4rpx solid rgba(0, 0, 0, 0.25)
'
})
})
...
@@ -1993,32 +2846,41 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -1993,32 +2846,41 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
switch
(
serviceItemCode
)
{
switch
(
serviceItemCode
)
{
case
1002
:
case
1002
:
this
.
isOpen
=
data
.
obj
.
status
;
this
.
isOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
!
this
.
isOpen
)
{
if
(
!
this
.
isOpen
)
{
this
.
flag
=
1
;
this
.
flag
=
1
;
}
}
break
;
break
;
case
2002
:
case
2002
:
this
.
isPubTalkOpen
=
data
.
obj
.
status
;
this
.
isPubTalkOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
this
.
isPubTalkOpen
)
{
if
(
this
.
isPubTalkOpen
)
{
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
containerHeight
=
3290
;
this
.
containerHeight
=
2765
+
this
.
pubTalkSummaryHeight
;
this
.
flag
=
0
;
this
.
flag
=
0
;
}
else
{
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
queryMemberConsumerAmount
(
this
.
containerHeight
=
2130
;
serviceItemCode
);
this
.
containerHeight
=
1605
+
this
.
pubTalkSummaryHeight
;
this
.
pubTalkNoopenHeight
=
735
+
this
.
pubTalkSummaryHeight
;
this
.
flag
=
3
;
this
.
flag
=
3
;
}
}
break
;
break
;
case
3002
:
case
3002
:
this
.
isAttendanceOpen
=
data
.
obj
.
status
;
this
.
isAttendanceOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
this
.
isAttendanceOpen
)
{
if
(
this
.
isAttendanceOpen
)
{
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
containerHeight
=
2762
;
this
.
containerHeight
=
2762
;
this
.
flag
=
0
;
this
.
flag
=
0
;
}
else
{
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
queryMemberConsumerAmount
(
this
.
containerHeight
=
1944
;
serviceItemCode
);
this
.
containerHeight
=
1974
;
this
.
flag
=
2
;
this
.
flag
=
2
;
}
}
break
;
break
;
...
@@ -2029,7 +2891,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2029,7 +2891,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
this
.
containerHeight
=
4200
;
this
.
containerHeight
=
4200
;
this
.
flag
=
0
;
this
.
flag
=
0
;
}
else
{
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
2340
;
this
.
containerHeight
=
2340
;
}
}
}
}
...
@@ -2063,7 +2926,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2063,7 +2926,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
const
tempList
=
data
.
obj
||
[];
const
tempList
=
data
.
obj
||
[];
if
(
tempList
.
length
)
{
if
(
tempList
.
length
)
{
this
.
queryMemberServcieItemList
=
tempList
.
map
(
e
=>
e
.
serviceCode
);
this
.
queryMemberServcieItemList
=
tempList
.
map
(
e
=>
e
.
serviceCode
);
}
else
{
}
else
{
this
.
queryMemberServcieItemList
=
[];
this
.
queryMemberServcieItemList
=
[];
}
}
...
@@ -2084,7 +2948,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2084,7 +2948,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
url
:
gHost
+
url
:
gHost
+
'
/report-push/member-info/queryMemberConsumerAmount
'
'
/report-push/member-info/queryMemberConsumerAmount
'
},
{
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
userId
:
getQueryParams
(
'
userId
'
),
serviceItemCode
serviceItemCode
})
})
...
@@ -2096,7 +2961,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2096,7 +2961,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
})
return
return
}
}
this
.
memberInfo
.
leastAmount
=
data
.
obj
.
leastAmount
;
this
.
memberInfo
.
leastAmount
=
data
.
obj
.
leastAmount
;
}
catch
(
e
)
{
}
catch
(
e
)
{
//TODO handle the exception
//TODO handle the exception
console
.
log
(
e
);
console
.
log
(
e
);
...
@@ -2114,8 +2980,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2114,8 +2980,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
url
:
gHost
+
url
:
gHost
+
'
/report-push/member-info/queryMemberValidTime
'
'
/report-push/member-info/queryMemberValidTime
'
},
{
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
schoolId
:
getQueryParams
(
userId
:
getQueryParams
(
'
userId
'
),
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
serviceItemCode
serviceItemCode
})
})
if
(
data
.
code
!=
200
)
{
if
(
data
.
code
!=
200
)
{
...
@@ -2126,17 +2994,24 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2126,17 +2994,24 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
})
return
return
}
}
this
.
memberInfo
.
differDay
=
data
.
obj
.
differDay
;
this
.
memberInfo
.
differDay
=
data
.
obj
this
.
memberInfo
.
invalidDate
=
data
.
obj
.
invalidDate
;
.
differDay
;
this
.
memberInfo
.
invalidDate
=
data
.
obj
.
invalidDate
;
if
(
data
.
obj
.
invalidDate
)
{
if
(
data
.
obj
.
invalidDate
)
{
let
month
=
data
.
obj
.
invalidDate
.
slice
(
5
,
6
)
==
0
?
data
let
month
=
data
.
obj
.
invalidDate
.
slice
(
.
obj
.
invalidDate
.
slice
(
6
,
7
)
:
data
.
obj
5
,
6
)
==
0
?
data
.
obj
.
invalidDate
.
slice
(
6
,
7
)
:
data
.
obj
.
invalidDate
.
slice
(
5
,
7
);
.
invalidDate
.
slice
(
5
,
7
);
let
date
=
data
.
obj
.
invalidDate
.
slice
(
8
,
9
)
==
0
?
data
.
obj
let
date
=
data
.
obj
.
invalidDate
.
slice
(
8
,
9
)
==
0
?
data
.
obj
.
invalidDate
.
slice
(
9
)
:
data
.
obj
.
invalidDate
.
slice
(
9
)
:
data
.
obj
.
invalidDate
.
slice
(
8
);
.
invalidDate
.
slice
(
8
);
this
.
memberInfo
.
invalidDateStr
=
data
.
obj
.
invalidDate
this
.
memberInfo
.
invalidDateStr
=
data
.
slice
(
0
,
4
)
+
'
年
'
+
month
+
'
月
'
+
date
+
'
日
'
;
.
obj
.
invalidDate
.
slice
(
0
,
4
)
+
'
年
'
+
month
+
'
月
'
+
date
+
'
日
'
;
}
else
{
}
else
{
this
.
memberInfo
.
invalidDateStr
=
''
;
this
.
memberInfo
.
invalidDateStr
=
''
;
}
}
...
@@ -2159,7 +3034,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2159,7 +3034,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
fail
:
function
fail
(
_fail
)
{
fail
:
function
fail
(
_fail
)
{
console
.
warn
(
_fail
);
console
.
warn
(
_fail
);
uni
.
showModal
({
uni
.
showModal
({
content
:
JSON
.
stringify
(
_fail
)
content
:
JSON
.
stringify
(
_fail
)
});
});
}
}
});
});
...
@@ -2196,12 +3073,60 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2196,12 +3073,60 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
.htmlCanvasTxt
{
height
:
154rpx
;
width
:
100%
;
padding
:
42rpx
0
20rpx
29rpx
;
box-sizing
:
border-box
;
.htmlCanvasTxt1
{
font-size
:
32rpx
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-weight
:
600
;
color
:
#FFFFFF
;
line-height
:
44rpx
;
}
.htmlCanvasTxt2
{
font-size
:
26rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#FFFFFF
;
line-height
:
44rpx
;
}
}
.htmlCanvasBox
{
overflow
:
scroll
;
height
:
943rpx
;
border-radius
:
30rpx
;
margin
:
0
24rpx
25rpx
;
}
.tainer
{
.tainer
{
position
:
relative
;
.school-report-header-bg
{
height
:
292rpx
;
}
.school-report-header-position
{
height
:
292rpx
;
padding
:
72rpx
0
0
30rpx
;
box-sizing
:
border-box
;
position
:
fixed
;
top
:
0
;
left
:
0
;
background
:
#FFFFFF
;
z-index
:
1000
;
.school-report-header
{
.school-report-header
{
height
:
88rpx
;
height
:
88rpx
;
margin
:
72rpx
0
48rpx
40rpx
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
position
:
relative
;
margin
:
0
0
48rpx
;
.school-report-header-item
{
.school-report-header-item
{
display
:
flex
;
display
:
flex
;
...
@@ -2289,10 +3214,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2289,10 +3214,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
.school-report-context
{
.school-report-context-tab
{
.school-report-context-tab
{
height
:
84rpx
;
height
:
84rpx
;
padding-left
:
40rpx
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
...
@@ -2306,14 +3229,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2306,14 +3229,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
border-radius
:
20rpx
20rpx
0rpx
0rpx
;
border-radius
:
20rpx
20rpx
0rpx
0rpx
;
font-size
:
30rpx
;
font-size
:
30rpx
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-weight
:
600
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
flex-direction
:
column
;
&
.active
{
&
.active
{
background
:
#E4F9F2
;
background
:
#E4F9F2
;
font-weight
:
600
;
}
.tab-title
{
margin
:
20rpx
0
10rpx
;
}
.active-bottomline
{
width
:
49rpx
;
height
:
7rpx
;
background
:
#04B871
;
border-radius
:
4rpx
;
}
}
}
}
}
}
...
@@ -2348,6 +3282,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2348,6 +3282,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
}
.school-report-context
{
.consumer-report-bgImg
{
.consumer-report-bgImg
{
width
:
100%
;
width
:
100%
;
height
:
452rpx
;
height
:
452rpx
;
...
@@ -2390,7 +3327,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2390,7 +3327,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
background
:
#E5F8F1
;
background
:
#E5F8F1
;
padding
:
0
30rpx
;
padding
:
0
30rpx
;
position
:
absolute
;
position
:
absolute
;
top
:
65
0rpx
;
top
:
72
0rpx
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
.school-report-context-card-one
{
.school-report-context-card-one
{
...
@@ -2884,19 +3821,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -2884,19 +3821,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
height
:
88rpx
;
height
:
88rpx
;
margin-left
:
10rpx
;
margin-left
:
10rpx
;
}
}
/
deep
/
.progress-day
{
color
:
#DAA000
;
background
:
url(../../static/images/progress.png)
no-repeat
-2rpx
center
/
100%
;
border-radius
:
22rpx
;
width
:
88rpx
;
height
:
88rpx
;
margin-left
:
10rpx
;
}
}
}
}
}
.attendance-report-context-details
{
.attendance-report-context-details
{
height
:
858rpx
;
overflow
:
scroll
;
.attendance-report-context-card-two-details
{
.attendance-report-context-card-two-details
{
position
:
relative
;
position
:
relative
;
top
:
-30rpx
;
height
:
146rpx
;
height
:
146rpx
;
background
:
#F5F7F7
;
background
:
#F5F7F7
;
padding
:
57
rpx
39rpx
0
34rpx
;
padding
:
28
rpx
39rpx
0
34rpx
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
.attendance-report-context-card-two-details-item
{
.attendance-report-context-card-two-details-item
{
...
@@ -3002,13 +3945,16 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3002,13 +3945,16 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
.attendance-report-details-item-box
{
.attendance-report-details-item-box
{
width
:
83
.5%
;
width
:
83
.5%
;
height
:
156rpx
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-betwee
n
;
flex-direction
:
colum
n
;
position
:
absolute
;
position
:
absolute
;
margin-left
:
71rpx
;
margin-left
:
71rpx
;
.attendance-report-details-item
{
.attendance-report-details-item
{
height
:
40rpx
;
height
:
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
.attendance-report-time
{
.attendance-report-time
{
display
:
flex
;
display
:
flex
;
...
@@ -3018,6 +3964,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3018,6 +3964,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
line-height
:
40rpx
;
.attendance-report-time-txt
{
width
:
56rpx
;
}
.attendance-report-time-item
{
.attendance-report-time-item
{
color
:
#F9793F
;
color
:
#F9793F
;
margin
:
0
21rpx
0
15rpx
;
margin
:
0
21rpx
0
15rpx
;
...
@@ -3039,6 +3989,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3039,6 +3989,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
margin-right
:
2rpx
;
margin-right
:
2rpx
;
}
}
.progress-img
{
width
:
30rpx
;
height
:
29rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/progressIcon.png)
;
margin-right
:
2rpx
;
}
.early-champions-txt
{
.early-champions-txt
{
font-size
:
24rpx
;
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
...
@@ -3047,12 +4004,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3047,12 +4004,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
}
}
}
.attendance-report-details-img-item
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
flex-end
;
.attendance-report-time-details
{
.attendance-report-time-details
{
width
:
212rpx
;
width
:
212rpx
;
...
@@ -3077,15 +4028,22 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3077,15 +4028,22 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
width
:
21rpx
;
width
:
21rpx
;
height
:
12rpx
;
height
:
12rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/arrowUp.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/arrowUp.png)
;
margin-left
:
30rpx
;
//
margin-left: 30rpx;
}
}
}
}
}
.attendance-report-details-img-item
{
display
:
flex
;
justify-content
:
flex-end
;
width
:
100%
;
height
:
95rpx
;
margin
:
14rpx
0
0
;
.attendance-report-details-img-box
{
.attendance-report-details-img-box
{
width
:
155rpx
;
width
:
155rpx
;
height
:
95rpx
;
height
:
95rpx
;
display
:
flex
;
justify-content
:
flex-end
;
image
{
image
{
width
:
100%
;
width
:
100%
;
...
@@ -3096,6 +4054,21 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3096,6 +4054,21 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
}
}
.noAttendanceReportDatail
{
height
:
620rpx
;
background
:
#F5F7F7
;
margin
:
-40rpx
0
0
;
border-radius
:
0
0
16rpx
16rpx
;
.noAttendanceReportDatailImg
{
margin
:
78rpx
0
0
107rpx
;
width
:
474rpx
;
height
:
235rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/noAttendanceReportDatailData.png)
;
}
}
}
}
.image-dialog
{
.image-dialog
{
...
@@ -3339,6 +4312,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3339,6 +4312,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
height
:
634rpx
;
height
:
634rpx
;
background
:
#FFFFFF
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
position
:
relative
;
position
:
relative
;
.school-report-context-card-five-conclusion
{
.school-report-context-card-five-conclusion
{
...
@@ -3408,6 +4382,172 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3408,6 +4382,172 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
.school-report-context-card-six
{
height
:
1590rpx
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
.school-report-context-card-six-conclusion
{
margin
:
40rpx
0
57rpx
;
.school-report-context-card-six-conclusion-item
{
margin
:
0
40rpx
0
30rpx
;
height
:
120rpx
;
font-size
:
28rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
.abnormal-date
{
color
:
#04B871
;
}
}
}
.mealtime-trends
{
.mealtime-trends-theme
{
height
:
42rpx
;
padding
:
0
49rpx
0
30rpx
;
box-sizing
:
border-box
;
display
:
flex
;
.meal-type
{
font-size
:
30rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
42rpx
;
}
.user-meal-time
{
width
:
144rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin
:
0
32rpx
0
143rpx
;
}
.class-meal-time
{
width
:
234rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.user-meal-time-logo
{
display
:
flex
;
align-items
:
center
;
margin-right
:
10rpx
;
.user-meal-time-logo-left
,
.user-meal-time-logo-right
{
width
:
8rpx
;
height
:
1rpx
;
background
:
#0BDA7D
;
}
.user-meal-time-logo-middle
{
width
:
12rpx
;
height
:
12rpx
;
background
:
#FFFFFF
;
border
:
3rpx
solid
#0BDB7E
;
border-radius
:
12rpx
;
}
}
.user-meal-time-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#8C8C8C
;
}
}
}
#breakfast-time-line
{
position
:
relative
;
top
:
-95rpx
;
left
:
24rpx
;
z-index
:
100
;
}
#lunch-time-line
{
position
:
relative
;
top
:
-228rpx
;
left
:
24rpx
;
z-index
:
100
;
}
#dinner-time-line
{
position
:
relative
;
top
:
-376rpx
;
left
:
24rpx
;
z-index
:
100
;
}
}
.school-report-context-card-seven
{
height
:
645rpx
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
.school-report-context-card-seven-conclusion
{
margin
:
40rpx
0
50rpx
;
.school-report-context-card-seven-conclusion-item
{
margin
:
0
40rpx
0
30rpx
;
height
:
40rpx
;
font-size
:
28rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
.abnormal-date
{
color
:
#04B871
;
}
}
}
.meal-pal-bar-unit
{
height
:
33rpx
;
display
:
flex
;
justify-content
:
center
;
.meal-pal-bar-unit-item
{
width
:
180rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.meal-pal-bar-icon
{
width
:
20rpx
;
height
:
20rpx
;
background
:
linear-gradient
(
360deg
,
#04B871
0%
,
#07D66A
100%
);
border-radius
:
4rpx
;
}
.meal-pal-bar-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#8C8C8C
;
line-height
:
33rpx
;
}
}
}
#meal-pal-bar
{
position
:
relative
;
top
:
-106rpx
;
left
:
18rpx
;
z-index
:
100
;
}
}
.school-report-footer
{
.school-report-footer
{
height
:
169rpx
;
height
:
169rpx
;
margin
:
40rpx
0
43rpx
;
margin
:
40rpx
0
43rpx
;
...
@@ -3511,6 +4651,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3511,6 +4651,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
&
.consume-open-results-title
{
background
:
url(../../static/images/consumeOpenbgm.png)
center
/
100%
no-repeat
;
}
}
}
.open-results-items
{
.open-results-items
{
...
@@ -3521,6 +4665,12 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3521,6 +4665,12 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
padding
:
32rpx
0
43rpx
73rpx
;
padding
:
32rpx
0
43rpx
73rpx
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
&
.consume-open-results-items
{
padding
:
44rpx
0
0
34rpx
;
box-sizing
:
border-box
;
height
:
473rpx
;
}
.open-results-items-summary
{
.open-results-items-summary
{
width
:
100%
;
width
:
100%
;
height
:
45rpx
;
height
:
45rpx
;
...
@@ -3540,10 +4690,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3540,10 +4690,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
line-height
:
45rpx
;
line-height
:
45rpx
;
}
}
.consumer-report-icon
{
margin
:
0
45rpx
0
70rpx
;
}
.attendance-report-icon
{
.attendance-report-icon
{
margin
:
0
35rpx
0
134rpx
;
margin
:
0
35rpx
0
134rpx
;
}
}
...
@@ -3553,62 +4699,89 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
...
@@ -3553,62 +4699,89 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
.open-results-items-details
{
.consume-open-results-items-details
{
.open-results-items-details-item
{
.consume-open-results-items-details-item
{
width
:
100%
;
height
:
40rpx
;
margin
:
0
0
24rpx
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
height
:
80rpx
;
margin
:
0
0
55rpx
;
.open-results-items-details-item-txt
{
.details-item-left
{
width
:
313rpx
;
.details-item-up
{
font-size
:
28rpx
;
font-size
:
28rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
4
00
;
font-weight
:
5
00
;
color
:
#13664C
;
color
:
#13664C
;
line-height
:
40rpx
;
line-height
:
40rpx
;
}
}
.details-item-down
{
display
:
flex
;
align-items
:
center
;
.details-item-down-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
rgba
(
19
,
102
,
76
,
0
.7
);
line-height
:
33rpx
;
}
.dining-situations-img
{
.dining-situations-img
{
width
:
34
rpx
;
width
:
26
rpx
;
height
:
27
rpx
;
height
:
21
rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/repast.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/repast.png)
;
margin-right
:
22rpx
;
}
}
.consumer-rationality-img
{
.meal-pal-img
{
width
:
34rpx
;
width
:
26rpx
;
height
:
34rpx
;
height
:
22rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerRationality.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/mealPal.png)
;
margin
:
0
22rpx
0
108rpx
;
}
.consumer-num-img
{
width
:
22rpx
;
height
:
25rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerNum.png)
;
}
}
.consumer-preference-img
{
.consumer-preference-img
{
width
:
30
rpx
;
width
:
25
rpx
;
height
:
27
rpx
;
height
:
23
rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerPreference.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerPreference.png)
;
margin-right
:
24rpx
;
}
}
.consumer-advice-img
{
.consumer-trend-img
{
width
:
31rpx
;
width
:
24rpx
;
height
:
31rpx
;
height
:
21rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerAdvice.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerTrend.png)
;
margin
:
0
24rpx
0
112rpx
;
}
}
.consumer-num-img
{
.time-trends-img
{
width
:
30rpx
;
width
:
25rpx
;
height
:
34rpx
;
height
:
25rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerNum.png)
;
background
:
no-repeat
center
/
100%
url(../../static/images/timeTrends.png)
;
margin-right
:
24rpx
;
}
}
}
}
}
}
.consumer-trend-img
{
.open-results-items-details
{
width
:
28rpx
;
.open-results-items-details-item
{
height
:
25rpx
;
width
:
100%
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerTrend.png)
;
height
:
40rpx
;
margin-right
:
25rpx
;
margin
:
0
0
24rpx
;
display
:
flex
;
align-items
:
center
;
.open-results-items-details-item-txt
{
font-size
:
28rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#13664C
;
line-height
:
40rpx
;
}
}
// 出入校报告
// 出入校报告
...
...
src/static/images/breakfastTimeBg.png
0 → 100644
View file @
2a5c403c
19.5 KB
src/static/images/consumeOpenbgm.png
0 → 100644
View file @
2a5c403c
6.69 KB
src/static/images/consumerAdvice.png
deleted
100644 → 0
View file @
181687dd
1.07 KB
src/static/images/consumerRationality.png
deleted
100644 → 0
View file @
181687dd
2.74 KB
src/static/images/mealPal.png
0 → 100644
View file @
2a5c403c
2.16 KB
src/static/images/noAttendanceReportDatailData.png
0 → 100644
View file @
2a5c403c
77.3 KB
src/static/images/progress.png
0 → 100644
View file @
2a5c403c
5.77 KB
src/static/images/progressIcon.png
0 → 100644
View file @
2a5c403c
2.5 KB
src/static/images/timeTrends.png
0 → 100644
View file @
2a5c403c
2.01 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment