Browse Source

update5.6

KELECHUAN 3 years ago
parent
commit
129564ca14

+ 11 - 1
components/back/back.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="back" :style="{height: capsuleHeight+ 'px',top:capsuleHighly+'px'}">
-		<u-icon name="arrow-left" :color="color" size="24" @click="backIconHandler"></u-icon>
+		<u-icon name="arrow-left" v-if="show" :color="color" size="24" @click="backIconHandler"></u-icon>
+		<u-icon name="home-fill" v-if="!show" :color="color" size="24" @click="backHomeHandler"></u-icon>
 		<view class="back-text" :style="{color: color}">
 			{{ text }}
 		</view>
@@ -18,6 +19,10 @@
 			color:{
 				type:String,
 				default:'#3B4144'
+			},
+			show:{
+				type:Boolean,
+				default: true
 			}
 		},
 		data() {
@@ -34,6 +39,11 @@
 		methods:{
 			backIconHandler(){
 				uni.navigateBack()
+			},
+			backHomeHandler(){
+				uni.switchTab({
+					url: '/pages/home/home'
+				})
 			},
 			//获取胶囊位置信息
 			getCapsuleSite(){

+ 12 - 9
components/interactive-box/interactive-box.vue

@@ -59,9 +59,9 @@
 					<view class="t-icon t-icon-qingjiashenqing"></view>
 					<text class="chart-info-text">运动睡眠对比</text>
 				</view>
-				<view style=" width:100%;margin-top: -30rpx;height: 450rpx;">
+				<view style=" width:100%;margin-top: -30rpx;height: 420rpx;">
 					<qiun-data-charts type="area" :chartData="exerciseSleepArea" :loadingType="4"
-						tooltipFormat='tooltipHourCom' :canvas2d="true" canvasId="canvasId983131231"/>
+						tooltipFormat='sleepExerciseCom' :canvas2d="true" canvasId="canvasId983131231"/>
 				</view>
 			</view>
 			
@@ -231,7 +231,7 @@
 					{name: '娱乐放松',data: this.historyData.rest}]
 				}
 				//时间
-				studyColumn.categories = this.$getRecentDateArray(7)
+				studyColumn.categories = this.$getRecentDateArray(this.historyData.study.length)
 				//学习记录表数据记录
 				switch (this.cardCurrent) {
 					case 0:
@@ -267,14 +267,17 @@
 				let exerciseSleepArea = {
 					categories: [],
 					series:
-					[{name: "每日锻炼时间",data: []},
-					{name: "每日睡眠时间",data: []}]
+					[{name: "运动睡眠时间比",data: []}]
 				}
-				exerciseSleepArea.categories = studyColumn.categories
-				exerciseSleepArea.series[0].data = this.historyData.exercise
-				exerciseSleepArea.series[1].data = this.historyData.sleep
+				exerciseSleepArea.categories = this.$getRecentDateArray(this.historyData.sleep.length)
+				let tempArr = []
+				for(let i = 0; i<this.historyData.sleep.length ; i++){
+					let num = parseFloat(((this.historyData.exercise[i]/this.historyData.sleep[i])*100).toFixed(1))
+					tempArr.push(num)
+				}
+				console.log(tempArr);
+				exerciseSleepArea.series[0].data = tempArr
 				this.exerciseSleepArea = exerciseSleepArea
-				
 			}
 
 		}

+ 15 - 13
components/todayclass-box/todayclass-box.vue

@@ -3,35 +3,37 @@
 	<view>
 		<!-- 课程列表 -->
 		<view style="margin-bottom: 20rpx;">
+			<!-- 插画 -->
 			<view class="detail-image" v-if="state === 'none'" :style="{backgroundImage:`url(${image.none})`}"></view>
-			<!-- <view class="detail-image" v-if="state === ''" :style="{backgroundImage:`url(${image.class})`}"></view> -->
-			<!-- block -->
+			<!-- 课程列表 -->
 			<view class="class-block" v-for="(classInfo,classIndex) in homeClassList" :key="classIndex"
 				:style="{backgroundColor: classIndex === 1 ? '#FFF' : ''}">
 				<view class="block-title" :style="{color: classIndex === 1 ? '#4169E1' : ''}">{{classInfo.name}}</view>
+				<!-- 老师tag -->
 				<view class="block-tag-box">
 					<view class="block-tag">{{classInfo.teacher}}</view>
 				</view>
 
-				<!-- index -->
+				<!-- 排位 -->
 				<view v-if="state != 'none'">
 					<view class="block-subtitle" v-if="classIndex === 0">{{first}}</view>
 					<view class="block-index" v-if="classIndex === 1">{{second}}</view>
 					<view class="block-subtitle" v-if="classIndex === 2">{{third}}</view>
 				</view>
 
-				<!-- time -->
-				<view class="block-subtitle" :style="{color: classIndex === 1 ? '#4169E1' : ''}" @click="navClass">
+				<!-- 时间 -->
+				<view class="block-subtitle" :style="{color: classIndex === 1 ? '#4169E1' : (classCurrent === -1? '#4169E1' : '')}" @click="navClass">
 					{{classInfo.time}}
 				</view>
-				<!-- activity -->
+				<!-- 操作 -->
 				<u-tag :text="before" :type="beforeType" plain icon="hourglass"
 					v-if="classIndex === 0 && state != 'none'" @click="navVideoBefore(classCurrent-2)"></u-tag>
-				<u-tag :text="now" type="success" icon="play-right" v-if="classIndex === 1"
+				<u-tag :text="now" type="error" icon="play-right" v-if="classIndex === 1"
 					@click="navVideoNow(classCurrent-1)"></u-tag>
-				<u-tag :text="after" type="error"  plain icon="pushpin" v-if="classIndex === 2"></u-tag>
+				<u-tag :text="after" type="info"  plain icon="pushpin" v-if="classIndex === 2"></u-tag>
 			</view>
 		</view>
+		
 	</view>
 </template>
 <script>
@@ -69,7 +71,7 @@
 				now: '查看直播',
 				after: '暂未开始',
 
-				beforeType: 'warning'
+				beforeType: 'success'
 			};
 		},
 		watch: {
@@ -99,8 +101,8 @@
 					this.homeClassList = this.classList.slice(this.classCurrent - 2, this.classCurrent + 1)
 					if (this.classCurrent === this.classList.length) {
 						const arr = {
-							name: '放学',
-							teacher: '完成今日课程',
+							name: '结束',
+							teacher: '完成课程',
 							time: '17:20'
 						}
 						this.third = '时间:'
@@ -112,8 +114,8 @@
 				if (this.classCurrent === 1) {
 					this.state = ''
 					const arr = [{
-						name: '上学',
-						teacher: '开始今日课程',
+						name: '起始',
+						teacher: '开始课程',
 						time: '8:30'
 					}]
 					this.before = '上学打卡'

+ 8 - 12
gradepkg/ability-chart/ability-chart.vue

@@ -13,24 +13,20 @@
 		<!-- 数据分析模块 -->
 		<view class="data-box">
 			<view class="data-box-item" style="background-color: #4169E1;">
-				<view class="item-text">考试成绩波动对比:</view>
+				<view class="item-text">成绩波动对比:</view>
 				<view class="item-text" style="font-size: 50rpx;">{{mainExamUndulate>=quizExamUndulate?'小考稳定':'大考稳定'}}</view>
-				<view class="analysis-box">
-					<view v-if="mainExamUndulate>=quizExamUndulate" class="icon-text-item" style="font-size: 30rpx;">重要考试时沉住气稳住心态</view>
-					<view v-if="mainExamUndulate<quizExamUndulate" class="icon-text-item" style="font-size: 30rpx;">普通考试时也不能掉以轻心</view>
-					<view v-if="mainExamUndulate>=quizExamUndulate" class="t-icon t-icon-jiangbei-4"></view>
-					<view v-if="mainExamUndulate<quizExamUndulate" class="t-icon t-icon-jiangbei-3"></view>
+				<view class="module-item-box">
+					<view v-if="mainExamUndulate>=quizExamUndulate" class="t-icon t-icon-a-bianzu6"></view>
+					<view v-if="mainExamUndulate<quizExamUndulate" class="t-icon t-icon-a-bianzu7"></view>
 				</view>
 			</view>
 
 			<view class="data-box-item" style="background-color: #ff8caf;">
-				<view class="item-text">考试得分能力对比:</view>
+				<view class="item-text">得分能力对比:</view>
 				<view class="item-text" style="font-size: 50rpx;">{{avgMain>=avgquiz?'大考能力强':'小考能力强'}}</view>
-				<view class="analysis-box">
-					<view v-if="avgMain<avgquiz" class="icon-text-item" style="font-size: 30rpx;">重要考试要多证明自己能力</view>
-					<view v-if="avgMain>=avgquiz" class="icon-text-item" style="font-size: 30rpx;">普通考试要注重得分与练习</view>
-					<view v-if="avgMain<avgquiz" class="t-icon t-icon-jiangbei-4"></view>
-					<view v-if="avgMain>=avgquiz" class="t-icon t-icon-jiangbei-3"></view>
+				<view class="module-item-box">
+					<view v-if="avgMain<avgquiz" class="t-icon t-icon-a-bianzu7"></view>
+					<view v-if="avgMain>=avgquiz" class="t-icon t-icon-a-bianzu6"></view>
 				</view>
 			</view>
 		</view>

+ 25 - 22
gradepkg/common/chartpage.scss

@@ -13,38 +13,41 @@
 				margin: 2% 0;
 				display: flex;
 				flex-direction: column;
-				justify-content: space-around;
 				width: 48%;
-				height: 280rpx;
 				border-radius: $card-border-radius;
-				padding-top: 10rpx;
+				overflow: hidden;
+				padding: 20rpx 0;
 		
 				.item-text {
 					margin-left: 20rpx;
 					font-size: 30rpx;
 					font-weight: bold;
 					color: #FFFFFF;
+					z-index: 2;
+					padding: 15rpx 10rpx;
 				}
-				
-				.analysis-box{
-					display: flex;
-					align-items: center;
-					
-					.t-icon {
-						width: 80rpx;
-						height: 80rpx;
-						background-repeat: no-repeat;
-					}
-					.icon-text-item {
-						width: 180rpx;
-						font-size: 35rpx;
-						font-weight: bold;
-						color: #FFFFFF;
-						margin-left: 20rpx;
-						margin-right: 20rpx;
-					}
+				.module-item-box{
+					width: 0rpx;
+					height: 0rpx;
+				}
+				.t-icon {
+					position: relative;
+					width: 200rpx;
+					height: 200rpx;
+					top: -220rpx;
+					right: -165rpx;
+					z-index: 1;
+					background-repeat: no-repeat;
+				}		
+				.icon-text-item {
+					width: 180rpx;
+					font-size: 35rpx;
+					font-weight: bold;
+					color: #FFFFFF;
+					margin-left: 20rpx;
+					margin-right: 20rpx;
+					z-index: 2;
 				}
-				
 			}
 		}
 	.tooltip {

+ 2 - 3
gradepkg/rank-chart/rank-chart.vue

@@ -16,9 +16,8 @@
 				:style="{background: item.color}">
 				<view class="item-text">{{item.title}}</view>
 				<view class="item-text" style="font-size: 50rpx;">{{item.data}}% 学生</view>
-				<view class="analysis-box">
-					<view class="icon-text-item">{{item.data>=40?(item.data>=70?'非常优秀!':'努力提升!'):'要加把劲!'}}</view>
-					<view :class="item.data>=40?(item.data>=70?'t-icon t-icon-jiangbei-3':'t-icon t-icon-jiangbei-4'): 't-icon t-icon-jiangbei-5'"></view>
+				<view class="module-item-box">
+					<view :class="item.data>=40?(item.data>=70?'t-icon t-icon-a-bianzu6':'t-icon t-icon-a-bianzu7'): 't-icon t-icon-a-bianzu8'"></view>
 				</view>
 			</view>
 		</view>

+ 4 - 5
gradepkg/single-chart/single-chart.vue

@@ -14,11 +14,10 @@
 		<view class="data-box">
 			<view class="data-box-item" v-for="(item,index) in analysisData" :key="index"
 				:style="{background: item.color}">
-					<view class="item-text">{{item.title}}</view>
-					<view class="item-text" style="font-size: 50rpx;">{{item.data/0.01}}% 学生</view>
-				<view class="analysis-box">
-					<view class="icon-text-item">{{item.data>=0.4?(item.data>=0.7?'非常优秀!':'努力提升!'):'要加把劲!'}}</view>
-					<view :class="item.data>=0.4?(item.data>=0.7?'t-icon t-icon-jiangbei-3':'t-icon t-icon-jiangbei-4'): 't-icon t-icon-jiangbei-5'"></view>
+				<view class="item-text">{{item.title}}</view>
+				<view class="item-text" style="font-size: 50rpx;">{{item.data/0.01}}% 学生</view>
+				<view class="module-item-box">
+					<view :class="item.data>=0.4?(item.data>=0.7?'t-icon t-icon-a-bianzu6':'t-icon t-icon-a-bianzu7'): 't-icon t-icon-a-bianzu8'"></view>
 				</view>
 			</view>
 		</view>

+ 6 - 9
gradepkg/subject-chart/subject-chart.vue

@@ -9,16 +9,13 @@
 				<view class="children-class">{{childreninfo.class}}</view>
 			</view>
 		</view>
-
 		<!-- 数据分析模块 -->
 		<view class="data-box">
 			<view class="data-box-item" v-for="(item,index) in analysisData" :key="index" :style="{background: item.color}">
-				<view class="item-text">{{item.title}}</view>
-				<view class="item-text" style="font-size: 44rpx;">{{item.data.name}}</view>
-				<view class="item-text" style="font-size: 34rpx;">得分率为:  {{item.data.value}}%</view>
-				<view class="analysis-box">
-					<view class="icon-text-item">{{item.data.value>=40?(item.data.value>=70?'非常优秀!':'努力提升!'):'要加把劲!'}}</view>
-					<view :class="item.data.value>=40?(item.data.value>=70?'t-icon t-icon-jiangbei-3':'t-icon t-icon-jiangbei-4'): 't-icon t-icon-jiangbei-5'"></view>
+				<view class="item-text">{{item.title}} {{item.data.name}}</view>
+				<view class="item-text" style="font-size: 50rpx;">得分率: {{item.data.value}}%</view>
+				<view class="module-item-box">
+					<view :class="item.data.value>=40?(item.data.value>=70?'t-icon t-icon-a-bianzu6':'t-icon t-icon-a-bianzu7'): 't-icon t-icon-a-bianzu8'"></view>
 				</view>
 			</view>
 		</view>
@@ -67,11 +64,11 @@
 				//分析模块数据
 				analysisData: 
 				[{
-					title: '本学期优势科目为:',
+					title: '本学期优势科:',
 					data: '',
 					color: '#4169E1'
 				},{
-					title: '本学期劣势科目为:',
+					title: '本学期劣势科:',
 					data: '',
 					color: '#ff8caf',
 				}]

+ 3 - 2
pages/common/blockmsg.scss

@@ -5,12 +5,13 @@
 	.class-block {
 		display: flex;
 		align-items: center;
-		justify-content: space-around;
+		justify-content: space-between;
 		background-color: #f6f6f6;
 		margin: 10rpx auto 10rpx auto;
 		padding: 5rpx;
-		width: 94%;
+		width: 90%;
 		height: 120rpx;
+		padding: 0 20rpx;
 		border-radius: $card-border-radius;
 	
 		.block-title {

+ 24 - 24
pages/home/home.vue

@@ -25,41 +25,37 @@
 
 			<!-- 今日打卡 -->
 			<view class="card-item" @click="navCalendar">
-				<view class="card-info" style="padding-bottom: 0;">
-					<view :class="icon.isRecord" v-if="attendance==='已打卡'"
-						style="width:140rpx;height: 50rpx;"></view>
-					<view :class="icon.noRecord" v-if="attendance==='未打卡'"
-						style="width:140rpx;height: 50rpx;"></view>
-					<view class="t-icon t-icon-weizhidaka-dakachenggong" v-if="attendance==='已打卡'"
-						style="width:60rpx;height: 60rpx;margin-left: auto;"></view>
-					<view class="t-icon t-icon-weizhidaka-dakacuowu" v-if="attendance==='未打卡'"
-						style="width:60rpx;height: 60rpx;margin-left: auto;"></view>
+				<view class="card-info" style="padding-bottom: 15rpx;">
+					<view class="t-icon t-icon-dakaqiandao"></view>
+					<text class="info-text">今日打卡</text>
 				</view>
-				
 				<view class="state-box">
-					<view class="text-content">今日打卡:</view>
+					<view style="display: flex;align-items: center; width: 100%;">
+						<view class="index" :style="{backgroundColor: attendance==='已打卡'?'#4169E1':'#f9c752'}"></view>
+						<view class="text-content">打卡记录:</view>
+					</view>
 					<view class="flex">
-						<view v-if="attendance==='已打卡'" class="t-icon t-icon-gou" style="width: 65rpx;height: 65rpx;"></view>
-						<view v-if="attendance==='未打卡'" class="t-icon t-icon-jinggao" style="width: 65rpx;height: 65rpx;"></view>
-						<view class="state"
-							:style="{backgroundColor: attendance==='已打卡'?'#4169E1':(attendance === '未打卡'?'#f9c752':'#FFF')}">
+						<view :class="attendance==='已打卡'?'t-icon t-icon-weizhidaka-dakachenggong':'t-icon t-icon-weizhidaka-dakacuowu'" style="width:70rpx;height: 70rpx;"></view>
+						<view class="state" :style="{backgroundColor: attendance==='已打卡'?'#4169E1':(attendance === '未打卡'?'#f9c752':'#FFF')}">
 							<view class="state-text">{{attendance}}</view>
 						</view>
 					</view>
 					
-					<view class="text-content">打卡时间:</view>
+					<view style="display: flex;align-items: center; width: 100%;">
+						<view class="index" :style="{backgroundColor: attendance==='已打卡'?'#4169E1':'#f9c752'}"></view>
+						<view class="text-content">打卡时间:</view>
+					</view>
 					<view class="flex">
-						<view v-if="attendance==='已打卡'" class="t-icon t-icon-shijian1" style="width: 65rpx;height: 65rpx;"></view>
-						<view v-if="attendance==='未打卡'" class="t-icon t-icon-bangzhu" style="width: 65rpx;height: 65rpx;"></view>
-						<view class="state"
-							:style="{backgroundColor: attendance==='已打卡'?'#4169E1':(attendance === '未打卡'?'#f9c752':'#FFF')}">
+						<view :class="attendance==='已打卡'?'t-icon t-icon-weizhidaka-dakachenggong':'t-icon t-icon-weizhidaka-dakacuowu'" style="width:70rpx;height: 70rpx;"></view>
+						<view class="state" :style="{backgroundColor: attendance==='已打卡'?'#4169E1':(attendance === '未打卡'?'#f9c752':'#FFF')}">
 							<view class="state-text">{{attendanceTime}}</view>
 						</view>
 					</view>
-
+					
 				</view>
 			</view>
 
+
 			<!-- 评测 -->
 			<view class="card-item" @click="navHomework(0)">
 				<view class="card-info">
@@ -126,8 +122,6 @@
 				timeStamp: '',
 				//图标
 				icon: {
-					isRecord: 't-icon t-icon-dakaxbeifen',
-					noRecord: 't-icon t-icon-dakaxbeifen-copy',
 					class: 't-icon t-icon-banji',
 					evaluation: 't-icon t-icon-ceping',
 					homework: 't-icon t-icon-bianji1',
@@ -308,7 +302,7 @@
 		font-size: 30rpx;
 		font-weight: bold;
 		color: $color-title;
-		margin: 20rpx auto 20rpx 28rpx;
+		margin: 20rpx auto 20rpx 15rpx;
 	}
 
 	.flex {
@@ -321,4 +315,10 @@
 	.t-icon{
 		background-repeat: no-repeat;
 	}
+	.index{
+		height: 30rpx;
+		width: 10rpx;
+		border-radius: 100rpx;
+		margin-left: 30rpx;
+	}
 </style>

+ 51 - 36
pages/homework/homework.vue

@@ -3,7 +3,7 @@
 		<!-- 头部区域 -->
 		<top-box :timeStamp="timeStamp" />
 		<view class="module-container">
-			<view style="margin: 0 20rpx;">
+			<view style="margin: 0 20rpx">
 				<u-tabs :list="list" :current="current" @change="changeModule"
 					:activeStyle="{color: '#4169E1',fontWeight: 'bold',transform: 'scale(1.08)',}"
 					:inactiveStyle="{fontWeight: 'bold',transform: 'scale(1)'}" lineColor="#4169E1" lineWidth="60">
@@ -20,10 +20,12 @@
 						</view>
 						<view class="box" style="margin: 10rpx 0 0 0;">
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成数量:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{testFinish}}</text>
 							</view>
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成情况:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{list[0].level}}</text>
 							</view>
@@ -40,10 +42,12 @@
 						</view>
 						<view class="box" style="margin: 10rpx 0 0 0;">
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成数量:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{homeworkFinish}}</text>
 							</view>
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成情况:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{list[1].level}}</text>
 							</view>
@@ -60,10 +64,12 @@
 						</view>
 						<view class="box" style="margin: 10rpx 0 0 0;">
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成数量:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{activityFinish}}</text>
 							</view>
 							<view class="flex">
+								<view class="index-box"></view>
 								<text class="card-subtitle">完成情况:</text>
 								<text class="card-subtitle" style="margin-left: 20rpx;">{{list[2].level}}</text>
 							</view>
@@ -71,19 +77,13 @@
 					</view>
 					<view class="image" :style="{backgroundImage:`url(${list[2].image})`}"></view>
 				</view>
-				<!-- 中间标题 -->
-				<view class="flex">
-					<view class="cut-off" v-if="current == 0">评测信息</view>
-					<view class="cut-off" v-if="current == 1">作业信息</view>
-					<view class="cut-off" v-if="current == 2">活动信息</view>
-				</view>
 				<!-- 列表 -->
 				<view class="detail-box">
 					<!-- 图表模块 -->
 					<view class="detail-box-item">
 						<view class="item-info">
 							<view class="t-icon t-icon-ceping"></view>
-							<view class="item-text">近期完成率数据</view>
+							<view class="item-text">完成情况统计</view>
 						</view>
 						<view class="charts-box" v-if="current == 0">
 							<qiun-data-charts type="fin-area" :chartData="assignment.testData" :loadingType="4"
@@ -91,11 +91,11 @@
 						</view>
 						<view class="charts-box" v-if="current == 1">
 							<qiun-data-charts type="fin-area" :chartData="assignment.homeworkData" :loadingType="4"
-								:canvas2d='true' tooltipFormat='HomeworkPercent' canvasId='canvans0933511' />
+								:canvas2d='true' tooltipFormat='HomeworkPercent' canvasId='canvans0933511' :opts="{color:['#ff8caf']}"/>
 						</view>
 						<view class="charts-box" v-if="current == 2">
 							<qiun-data-charts type="fin-area" :chartData="assignment.activityData" :loadingType="4"
-								:canvas2d='true' tooltipFormat='HomeworkPercent' canvasId='canvans0531032' />
+								:canvas2d='true' tooltipFormat='HomeworkPercent' canvasId='canvans0531032' :opts="{color:['#f9c752']}"/>
 						</view>
 					</view>
 					<!-- 详情列表 -->
@@ -111,23 +111,25 @@
 						</view>
 						<view style="margin-bottom: 20rpx;">
 							<view class="block-box" v-for="(item,i) in testData" :key="i">
-								<view class="index" :style="{backgroundColor: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'} "></view>
+								<view class="index"
+									:style="{backgroundColor: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">
+								</view>
 
-								<view class="class-block" style="width: 90%;">
+								<view class="class-block" style="width: 85%;">
 									<view style="width: 40%;">
 										<view class="list-item-title">{{item.examInfo.name}}</view>
 									</view>
 
 									<view style=" display: flex; justify-content: space-between; width: 50%;">
-										<view class="block-tag-box">
-											<view class="block-tag">{{item.examInfo.subjects[0].name}}</view>
+										<view class="block-tag-box" :style="{borderColor: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">
+											<view class="block-tag" :style="{color: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">{{item.examInfo.subjects[0].name}}</view>
 										</view>
-										<view class="block-tag-box">
-											<view class="block-tag">{{item.examInfo.examType.name}}</view>
+										<view class="block-tag-box" :style="{borderColor: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">
+											<view class="block-tag" :style="{color: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">{{item.examInfo.examType.name}}</view>
 										</view>
-										<view class="block-tag-box">
-											<view class="block-tag">
-												{{item.examInfo.progress === 'finish' ? '已完成' : (item.examInfo.progress === 'going' ? '进行中' : '待发布')}}
+										<view class="block-tag-box" :style="{borderColor: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">
+											<view class="block-tag" :style="{color: item.examInfo.progress === 'finish'? '#23b46c':'#4169E1'}">
+												{{item.examInfo.progress === 'finish' ? '已完成' : '进行中'}}
 											</view>
 										</view>
 									</view>
@@ -149,19 +151,21 @@
 						</view>
 						<view style="margin-bottom: 20rpx;">
 							<view class="block-box" v-for="(item,i) in homeworkData" :key="i">
-								<view class="index" :style="{backgroundColor: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}" ></view>
-								<view class="class-block" style="width: 90%;justify-content: flex-start;">
+								<view class="index"
+									:style="{backgroundColor: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}">
+								</view>
+								<view class="class-block" style="width: 85%;justify-content: flex-start;">
 									<view style="display: flex; flex-direction: column;">
 
 										<view style="display: flex;margin-left: 30rpx;align-items: center;">
 											<view class="list-item-title">{{item.work.name}}</view>
-											<view class="block-tag-box" style="margin-left: 40rpx;">
-												<view class="block-tag">{{item.work.scope === 'private' ? '个人':'学校'}}作业
+											<view class="block-tag-box" :style="{marginLeft: 40+'rpx',borderColor: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}">
+												<view class="block-tag" :style="{color: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}">{{item.work.scope === 'private' ? '个人':'学校'}}作业
 												</view>
 											</view>
-											<view class="block-tag-box" style="margin-left: 20rpx;">
-												<view class="block-tag">
-													{{item.work.progress === 'finish' ? '已完成' : (item.work.progress === 'going' ? '进行中' : '待发布')}}
+											<view class="block-tag-box" :style="{marginLeft: 20+'rpx',borderColor: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}">
+												<view class="block-tag" :style="{color: item.work.progress === 'finish'? '#23b46c':'#ff8caf'}">
+													{{item.work.progress === 'finish' ? '已完成' : '进行中'}}
 												</view>
 											</view>
 										</view>
@@ -184,22 +188,24 @@
 						</view>
 						<view style="margin-bottom: 20rpx;">
 							<view class="block-box" v-for="(item,i) in activityData" :key="i">
-								<view class="index" :style="{ backgroundColor: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}" ></view>
-								<view class="class-block" style="width: 90%;justify-content: flex-start;">
+								<view class="index"
+									:style="{ backgroundColor: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}">
+								</view>
+								<view class="class-block" style="width: 85%;justify-content: flex-start;">
 									<view style="display: flex; flex-direction: column;">
 										<view style="display: flex;margin-left: 30rpx;align-items: center;">
 											<view class="list-item-title">
 												{{item.survey.name || item.vote.name}}
 											</view>
 
-											<view class="block-tag-box" style="margin-left: 40rpx;">
-												<view class="block-tag">
+											<view class="block-tag-box" :style="{ marginLeft: 40+'rpx',borderColor: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}">
+												<view class="block-tag" :style="{color: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}">
 													{{item.survey.scope === 'private' ? '个人':'学校' || item.vote.scope === 'private' ? '个人':'学校'}}活动
 												</view>
 											</view>
-											<view class="block-tag-box" style="margin-left: 20rpx;">
-												<view class="block-tag">
-													{{item.survey.progress === 'finish' || item.vote.progress === 'finish' ? '已完成' : (item.survey.progress === 'going' || item.vote.progress === 'going' ? '进行中' : '待发布')}}
+											<view class="block-tag-box" :style="{ marginLeft: 20+'rpx',borderColor: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}">
+												<view class="block-tag" :style="{color: item.survey.progress === 'finish' || item.vote.progress === 'finish'? '#23b46c':'#f9c752'}">
+													{{item.survey.progress === 'finish' || item.vote.progress === 'finish' ? '已完成' : '进行中'}}
 												</view>
 											</view>
 										</view>
@@ -390,7 +396,7 @@
 			justify-content: space-around;
 			margin: 20rpx auto 20rpx auto;
 			height: 220rpx;
-			width: 95%;
+			width: 710rpx;
 			// background: linear-gradient(to right, #ff95007a,#ff8419);
 			border-radius: $card-border-radius;
 
@@ -401,6 +407,7 @@
 			}
 
 			.card-subtitle {
+				margin-left: 20rpx;
 				font-size: 30rpx;
 				color: #FFF;
 			}
@@ -415,7 +422,8 @@
 
 			.image {
 				position: relative;
-				right: -30rpx;
+				top: -90rpx;
+				right: -35rpx;
 				height: 300rpx;
 				width: 300rpx;
 				background-size: 100%;
@@ -444,7 +452,7 @@
 		.detail-box {
 			display: flex;
 			flex-flow: row wrap;
-			margin: 20rpx 20rpx 0 20rpx;
+			margin: 30rpx 20rpx 0 20rpx;
 			justify-content: space-between;
 
 			.detail-box-item {
@@ -475,6 +483,13 @@
 		}
 	}
 
+	.index-box {
+		background-color: #FFF;
+		height: 30rpx;
+		width: 10rpx;
+		border-radius: 100rpx;
+	}
+
 	//图表
 	.charts-box {
 		width: 100%;

+ 4 - 2
pages/my/my.vue

@@ -115,8 +115,8 @@
 		},
 		onLoad() {},
 		methods: {
-			...mapMutations('m_parent', ['updateParentDetail', 'updateParentInfo', 'updateToken']),
-			...mapMutations('m_children', ['updateChildrenInfo', 'updateChildrenSemester']),
+			...mapMutations('m_parent', ['updateParentDetail', 'updateParentInfo', 'updateToken','updateMyData']),
+			...mapMutations('m_children', ['updateChildrenInfo', 'updateChildrenSemester','updateChildrenSemesterList']),
 			//退出登录事件
 			async logout() {
 				const [err, succ] = await uni.showModal({
@@ -129,6 +129,8 @@
 					this.updateParentDetail()
 					this.updateParentInfo()
 					this.updateToken()
+					this.updateMyData()
+					this.updateChildrenSemesterList()
 
 					uni.reLaunch({
 						url: '/subpkg/login/login'

+ 52 - 12
subpkg/calendar/calendar.vue

@@ -4,7 +4,7 @@
 
 		<view class="card-box">
 
-			<view class="card-item" v-if="topInfo === false">
+			<view class="card-item">
 				<view class="total">
 					<view class="total-title">本月打卡</view>
 					<view class="total-content">
@@ -43,7 +43,7 @@
 							<text class="msg-text">{{attendanceTime}}</text>
 						</view>
 						<view class="flex">
-							<text class="msg-text" style="font-weight: normal;font-size: 28rpx;">出勤效率:</text>
+							<text class="msg-text" style="font-weight: normal;font-size: 28rpx;">出勤速度:</text>
 							<text class="msg-text"
 								:style="{color: attendanceQuality==='优秀'?'#4169E1':(attendanceQuality === '良好'?'#f9c752':'#3B4144')}">{{attendanceQuality}}</text>
 						</view>
@@ -57,7 +57,7 @@
 
 <script>
 	import {
-		mapState,
+		mapState, mapMutations
 	} from 'vuex'
 	import zsyCalendar from '@/subpkg/z-calendar/zsy-calendar.vue'
 	export default {
@@ -71,7 +71,6 @@
 		data() {
 			return {
 				// image: 'https://image.meiye.art/pic_1632658822816Dw1wc8QoTOnItNvJI76v6',
-				topInfo: false,
 				//当日打卡信息
 				attendance: '',
 				attendanceTime: '',
@@ -81,20 +80,61 @@
 				monthAttendQuality: '',
 				//当月
 				month: '',
+				calendarMonth: '',
+				//控制事件参数
+				isFirst: false,
+				//当日时间参数
+				todayData: '',
 			};
 		},
+		watch:{
+			calendarMonth(){
+				this.getMonthAttendQuality()
+			}
+		},
 		onLoad(options) {
 			this.getTodayAttendance()
 			this.getMonthAttendQuality()
 		},
 		methods: {
+			...mapMutations('m_children', ['updateNoAttendNum', 'updateIsAttendNum']),
 			//选中日期改变回调
 			change(e) {
-				if(e.month != this.month){
-					this.topInfo = true
-				}else{
-					this.topInfo = false
+				
+				if(this.isFirst === false){
+					this.todayData = e
+					this.isFirst = true
+				}	
+				this.calendarMonth = e.month
+				let isAttendArr = this.records.filter(x => x.month === e.month&&x.year === e.year).length
+				this.updateIsAttendNum(isAttendArr)
+				let monthDays = new Date(e.year, e.month, 0).getDate()
+				//在本年当前月之前
+				if(e.year===this.todayData.year&&e.month<this.todayData.month){
+					let noAttendArr = monthDays - isAttendArr
+					this.updateNoAttendNum(noAttendArr)
+				}
+				//之前年份
+				if(e.year<this.todayData.year){
+					let noAttendArr = monthDays - isAttendArr
+					this.updateNoAttendNum(noAttendArr)
 				}
+				//在本月
+				if(e.year===this.todayData.year&&e.month===this.todayData.month){
+					let noAttendArr = this.todayData.date - isAttendArr
+					this.updateNoAttendNum(noAttendArr)
+				}
+				//在本年当月之后
+				if(e.year===this.todayData.year&&e.month>this.todayData.month){
+					this.updateNoAttendNum('未记录')
+					this.updateIsAttendNum('未记录')
+				}
+				//之后年份
+				if(e.year>this.todayData.year){
+					this.updateNoAttendNum('未记录')
+					this.updateIsAttendNum('未记录')
+				}
+				
 			},
 			//今日打卡
 			getTodayAttendance() {
@@ -119,17 +159,17 @@
 			},
 			//判断本月出勤质量
 			getMonthAttendQuality() {
-				this.monthAttendQuality = this.calendar.noAttendNum <= 3 ? '优秀' : (this.calendar.noAttendNum <= 6 ? '良好' :
-					'较差')
+				this.monthAttendQuality = this.calendar.noAttendNum/30 <= 0.1 ? '优秀' : (this.calendar.noAttendNum/30 <= 0.2 ? '良好' : '较差')
+				if(this.calendar.noAttendNum === '未记录' && this.calendar.isAttendNum === '未记录'){
+					this.monthAttendQuality = '未记录'
+				}
 			},
 			//选择日期
 			chooseDate(dateInfo, dateIndex) {
-				// console.log(dateInfo);
 				if (dateInfo.isAttend === 1) {
 					this.attendance = '已打卡'
 					this.attendanceTime = this.records.filter(x => x.date === dateInfo.date && x.month === dateInfo
 						.month && x.year === x.year)[0].time
-					// console.log(info);
 					this.attendanceQuality = this.attendanceTime <= '08:15' ? '优秀' : (this.attendanceTime <= '08:25' ?
 						'良好' : '较差')
 				}

+ 16 - 6
subpkg/classlist/classlist.vue

@@ -10,12 +10,12 @@
 				</view>
 
 				<view class="home-title-text">
-					<view class="msg">今日课程数:</view>
+					<view class="msg">课程数:</view>
 					<view class="card-content">{{classList.length}}</view>
 					<view style="display: flex; align-items: center; margin-left: auto; margin-right: 30rpx;">
-						<view class="t-icon t-icon-lishi"></view>
-						<view class="msg" style="margin-left: 10rpx;">3月30日</view>
-						<view class="msg" style="margin-left: 10rpx;">星期三</view>
+						<view class="t-icon t-icon-time-square-svgrepo-com"></view>
+						<view class="msg" style="margin-left: 10rpx;">{{today}}</view>
+						<view class="msg" style="margin-left: 10rpx;">{{week}}</view>
 					</view>
 				</view>
 				<!-- 课程列表 -->
@@ -23,7 +23,7 @@
 					<view class="block-box" v-for="(item,index) in classList" :key="index">
 						<view class="index"></view>
 
-						<view class="class-block" style="width: 90%;">
+						<view class="class-block" style="width: 85%;">
 							<view class="block-title">{{item.name}}</view>
 							<view class="block-tag-box">
 								<view class="block-tag">{{item.teacher}}</view>
@@ -136,8 +136,18 @@
 						'周五': '思品',
 					}
 				],
-					
+				today: '',
+				week: ''
 			};
+		},
+		onLoad() {
+			this.getToday()
+		},
+		methods: {
+			getToday(){
+				this.today = (new Date()).format('M-d').replace('-','月')+'日'
+				this.week = "星期" + "日一二三四五六".charAt(new Date().getDay());
+			}
 		}
 	}
 </script>

+ 15 - 6
subpkg/common/detailpage.scss

@@ -17,7 +17,8 @@
 					font-size: 36rpx;
 					line-height: 36rpx;
 					font-weight: bold;
-					margin-left: 15rpx;
+					margin-left: 10rpx;
+					margin-bottom: 4rpx;
 				}
 			}
 
@@ -36,11 +37,18 @@
 			}
 			
 			.content-detail-box{
-				margin: 20rpx 0;
+				margin: 40rpx 0 0 0;
 				padding: 20rpx;
 				background-color: #f6f6f6;
-				border-radius: $card-border-radius;
-				
+				border-radius: 10rpx;
+				.title-box{
+					position: relative;
+					top: -35rpx;
+					width:fit-content;
+					height: 36rpx;
+					border-radius: 10rpx;
+					padding: 5rpx 20rpx;
+				}
 				.content-detail {
 					font-size: 30rpx;
 					font-weight: bold;
@@ -48,8 +56,9 @@
 					word-break: break-all;
 				}
 				.content-subtitle {
-					font-size: 26rpx;
-					color: $color-subtitle;
+					font-size: 25rpx;
+					font-weight: bold;
+					color: #FFF;
 				}
 			}
 		}

File diff suppressed because it is too large
+ 87 - 39
subpkg/common/iconfont-weapp-icon.css


+ 18 - 7
subpkg/common/infopage.scss

@@ -39,7 +39,6 @@
 		.card-box {
 			position: relative;
 			background-color: #FFF;
-			box-shadow: 0 6rpx 10rpx rgba(0, 0, 0, 0.1);
 			top: 50rpx;
 			left: 50rpx;
 			border-radius: 50rpx;
@@ -67,17 +66,19 @@
 			border-radius: $card-border-radius;
 			width: 280rpx;
 			height: 280rpx;
-			box-shadow: $box-shadow-stereo-white;
+			box-shadow: 0 6rpx 10rpx rgba(0, 0, 0, 0.1);
 
-			.item-text {
-				font-size: 30rpx;
+			.item-text {
+				font-weight: bold;
+				font-size: 30rpx;
+				line-height: 30rpx;
 				color: $color-title;
-				margin: 20rpx 0 0 20rpx;
+				margin-left: 15rpx;
 			}
 
 			.t-icon {
-				width: 100rpx;
-				height: 100rpx;
+				width: 130rpx;
+				height: 130rpx;
 			}
 
 			.item-number {
@@ -86,5 +87,15 @@
 				color: #FFF;
 				font-weight: bold;
 			}
+		}
+		.index{
+			height: 30rpx;
+			width: 10rpx;
+			border-radius: 100rpx;
+		}
+		.flex{
+			display: flex;
+			align-items: center;
+			margin: 20rpx;
 		}
 	}

+ 104 - 0
subpkg/common/videopage.scss

@@ -53,6 +53,68 @@
 				color: $color-title;
 			}
 		}
+		.list-name-box{
+			display: flex; 
+			align-items: center; 
+			margin:30rpx 0 30rpx 50rpx;
+			
+			.list-name{
+				margin-left:15rpx; 
+				margin-bottom: 4rpx; 
+				font-size: 36rpx; 
+				font-weight: bold;
+				color: #3B4144; 
+				line-height: 40rpx;
+			}
+		}
+		.video-list{
+			margin: 40rpx 30rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.class-block{
+				display: flex;
+				flex-direction: column;
+				justify-content: center;
+				background-color: #FFF;
+				border-radius: 10rpx;
+				padding: 20rpx;
+				margin-left: 10rpx;
+				height: 60rpx;
+				
+				.content-box{
+					width: 480rpx;
+					display: flex; 
+					align-items: center; 
+					justify-content: space-between;
+					// margin-top: -32rpx;
+				}
+				.content-info {
+					font-size: 30rpx;
+					font-weight: bold;
+					color: $color-title;
+				}
+				.info-time {
+					font-size: 22rpx;
+					color: $color-subtitle;
+				}
+			}
+			.btn{
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-left: 20rpx;
+				height: 70rpx;
+				width: 120rpx;
+				border-radius: 10rpx;
+				
+			}
+			.t-icon{
+				width: 60rpx;
+				height: 60rpx;
+			}
+		}
 		.flex-box{
 			display: flex;
 			justify-content: space-between;
@@ -66,5 +128,47 @@
 			width: 50rpx;
 			height: 50rpx;
 		}
+		.index{
+			height: 40rpx;
+			width: 10rpx;
+			border-radius: 100rpx;
+			background-color: #4169E1;
+		}
+		.content-subtitle {
+			font-size: 25rpx;
+			font-weight: bold;
+			color: #FFF;
+		}
+		.title-box{
+			position: relative;
+			top: -45rpx;
+			width:fit-content;
+			height: 36rpx;
+			border-radius: 10rpx;
+			padding: 5rpx 20rpx;
+		}
+		.u-action-sheet__header__title.data-v-b62b882e{
+			color: $color-title !important;
+		}
+		.flex-icon{
+			display: flex;
+			justify-content: space-between;
+			padding: 80rpx 110rpx 100rpx 110rpx;
+			.t-icon{
+				width: 80rpx;
+				height: 80rpx;
+			}
+			.flex-box{
+				display: flex;
+				justify-content: space-between;
+				flex-direction: column;
+				align-items: center;
+				.text{
+					margin-top: 20rpx;
+					color: $color-title;
+					font-size:30rpx;
+				}
+			}
+		}
 	}
 	

+ 8 - 5
subpkg/detaillist/activitylist.vue

@@ -21,16 +21,13 @@
 					<view class="t-icon t-icon-yiwancheng1"
 						v-if="item.survey.progress === 'finish'||item.vote.progress === 'finish'"
 						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-jinhangzhong"
+					<view class="t-icon t-icon-jinhangzhong-copy"
 						v-if="item.survey.progress === 'going'||item.vote.progress === 'going'"
 						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-daifabu"
-						v-if="item.survey.progress === 'pending'||item.vote.progress === 'pending'"
-						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
 				</view>
 				<!-- 正文 -->
 				<view class="content-box">
-					<view style="display:flex;flex-direction: column;padding: 0 20rpx;">
+					<view style="display:flex;flex-direction: column;padding: 0 30rpx;">
 						<rich-text class="subtitle-info" style="margin-bottom: 15rpx;"
 							:nodes="item.survey.description||item.vote.description">
 						</rich-text>
@@ -49,6 +46,12 @@
 						</view>
 					</view>
 					<view class="content-detail-box">
+						<view class="title-box" :style="{backgroundColor: item.survey.progress === 'finish'||item.vote.progress === 'finish'? '#23b46c': '#f9c752' }" v-if="item.survey">
+							<view class="content-subtitle">问卷详情</view>
+						</view>
+						<view class="title-box" :style="{backgroundColor: item.survey.progress === 'finish'||item.vote.progress === 'finish'? '#23b46c': '#f9c752' }" v-if="item.vote">
+							<view class="content-subtitle">{{item.vote.secret ? '匿名投票':'普通投票'}}</view>
+						</view>
 						<view class="content-detail"></view>
 					</view>
 				</view>

+ 15 - 11
subpkg/detaillist/examlist.vue

@@ -12,20 +12,20 @@
 			<view class="detail-item" v-for="(item,index) in detailList" :key="index">
 				<view class="flex" style="width: 100%;height: 90rpx;">
 					<view class="flex" style="margin: -30rpx 0 0 10rpx;">
-						<view class="index" :style="{backgroundColor: item.examInfo.progress === 'finish'? '#23b46c': '#4169E1' }"></view>
+						<view class="index"
+							:style="{backgroundColor: item.examInfo.progress === 'finish'? '#23b46c': '#4169E1' }">
+						</view>
 						<view class="name">{{item.examInfo.name}}</view>
 					</view>
 
-					<view class="t-icon t-icon-yiwancheng1" v-if="item.examInfo.progress === 'finish'"
-						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-jinhangzhong" v-if="item.examInfo.progress === 'going'"
-						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-daifabu" v-if="item.examInfo.progress === 'pending'"
+					<view
+						:class="item.examInfo.progress === 'finish'?'t-icon t-icon-yiwancheng1':'t-icon t-icon-jinhangzhong'"
 						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
+
 				</view>
 				<!-- 正文 -->
 				<view class="content-box">
-					<view style="display:flex;flex-direction: column;padding: 0 20rpx;">
+					<view style="display:flex;flex-direction: column;padding: 0 30rpx;">
 						<view class="flex" style="margin-bottom: 15rpx;">
 							<view class="block-tag-box">
 								<view class="block-tag">{{item.examInfo.subjects[0].name}}</view>
@@ -38,12 +38,16 @@
 							<view class="subtitle">布置老师:</view>
 							<view class="subtitle-info" style="margin-left: 10rpx;">{{item.examInfo.creatorId}}</view>
 							<view class="subtitle" style="margin-left: 20rpx;">截止时间:</view>
-							<view class="subtitle-info" style="margin-left: 10rpx;">{{$timestampToTime(item.examInfo.endTime)}}</view>
+							<view class="subtitle-info" style="margin-left: 10rpx;">
+								{{$timestampToTime(item.examInfo.endTime)}}</view>
 						</view>
 					</view>
 
 					<view class="content-detail-box">
-						<view class="content-detail">{{item.examInfo.papers[0].name}}</view>
+						<view class="title-box" :style="{backgroundColor: item.examInfo.progress === 'finish'? '#23b46c': '#4169E1' }">
+							<view class="content-subtitle">{{item.examInfo.papers[0].name}}</view>
+						</view>
+						<view class="content-detail"></view>
 					</view>
 				</view>
 
@@ -90,8 +94,8 @@
 					}
 				})
 			}
-			
-			
+
+
 		}
 	}
 </script>

+ 13 - 10
subpkg/detaillist/homeworklist.vue

@@ -18,15 +18,14 @@
 				
 					<view class="t-icon t-icon-yiwancheng1" v-if="item.work.progress === 'finish'"
 						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-jinhangzhong" v-if="item.work.progress === 'going'"
-						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
-					<view class="t-icon t-icon-daifabu" v-if="item.work.progress === 'pending'"
+					<view class="t-icon t-icon-jinhangzhong-copy1" v-if="item.work.progress === 'going'"
 						style="margin-left: auto; width: 90rpx; height: 90rpx;"></view>
+
 				</view>
 				<!-- 正文 -->
 				<view class="content-box">
 
-					<view style="display:flex;flex-direction: column;padding: 0 20rpx;">
+					<view style="display:flex;flex-direction: column;padding: 0 30rpx;">
 						<rich-text class="subtitle-info" style="margin-bottom: 15rpx;" :nodes="item.work.description"></rich-text>
 						<view class="flex">
 							<view class="subtitle">布置老师:</view>
@@ -38,11 +37,14 @@
 					</view>
 
 					<view class="content-detail-box">
-						<view class="attachment-box" @click="openDocument">
+						<view class="title-box" :style="{backgroundColor: item.work.progress === 'finish'? '#23b46c': '#ff8caf' }">
+							<view class="content-subtitle">作业附件</view>
+						</view>
+						<view class="attachment-box" @click="openDocument(item.work.attachments[0].url)">
 							<view class="t-icon t-icon-WORD"></view>
 							<view style="display: flex;flex-direction: column;margin-left: 20rpx;">
 								<view class="content-detail">文件名: {{item.work.attachments[0].name}}</view>
-								<view class="content-subtitle">文件大小: {{item.work.attachments[0].size/8/1024}}KB</view>
+								<view class="content-subtitle" style="color: #aaa;">文件大小: {{item.work.attachments[0].size/8/1024}}KB</view>
 							</view>
 						</view>
 					</view>
@@ -76,10 +78,10 @@
 			})
 		},
 		methods: {
-			openDocument() {
+			openDocument(url) {
 				//下载并打开文档
 				uni.downloadFile({
-					url: 'https://cdn.zhoukaiwen.com/kevin.pdf',
+					url: url,
 					success: function(res) {
 						var filePath = res.tempFilePath;
 						uni.openDocument({
@@ -102,7 +104,8 @@
 	.attachment-box{
 		display: flex;
 		align-items: center;
-		padding: 10rpx;
-		border-radius: $card-border-radius;
+		padding: 15rpx 20rpx;
+		background-color: #FFF;
+		border-radius: 10rpx;
 	}
 </style>

+ 4 - 22
subpkg/guide/accesspage.vue

@@ -44,34 +44,16 @@
 						let proof = await new WXBizDataCrypt('wx5705da8747c77cfe', this.token.session_key)
 						let numData = await proof.decryptData(e.detail.encryptedData, e.detail.iv)
 						console.log(numData.phoneNumber)
-						// const parentDetailData = await uni.$http.post('',numData.phoneNumber)
-						this.updateParentDetail({
-							phoneNumber: numData.phoneNumber,
-							name: '家长姓名',
-							childrenList: [{
-								avatar: '/static/default-icons/boy.png',
-								name: '张三',
-								classid: '0301',
-								class: '三年级一班',
-								tmdid: 'tmdid01',
-								schoolname: '研发学校'
-							}, {
-								avatar: '/static/default-icons/girl.png',
-								name: '张梅',
-								classid: '0504',
-								class: '五年级四班',
-								tmdid: 'tmdid03',
-								schoolname: '研发学校'
-							}, ]
-						})
+						//初始化App
+						this.$initApp(numData.phoneNumber)
 						uni.navigateTo({
 							url:'/subpkg/guide/childrenlist'
 						})
 					}
 				}
 			},
-
-
+			
+			
 		}
 	}
 </script>

+ 0 - 1
subpkg/guide/childrenlist.vue

@@ -38,7 +38,6 @@
 			};
 		},
 		onLoad() {
-			this.$initApp()
 		},
 		methods: {
 			...mapMutations('m_children', ['updateChildrenInfo']),

+ 66 - 11
subpkg/info/childrenpage.vue

@@ -16,7 +16,8 @@
 			<u-cell-group :border="false">
 				<view class="i-item">
 					<view class="t-icon t-icon-tuandui1"></view>
-					<u-cell class="cell-box" size="large" title="班级" :label="childreninfo.class" :border="false"></u-cell>
+					<u-cell class="cell-box" size="large" title="班级" :label="childreninfo.class" :border="false">
+					</u-cell>
 				</view>
 				<view class="i-item">
 					<view class="t-icon t-icon-qinzi"></view>
@@ -28,12 +29,58 @@
 				</view>
 			</u-cell-group>
 			<!-- 横向内容列表 -->
-			<view class="title-box-name">能力卡片</view>
+			<view class="title-box-name">勋章墙</view>
 			<view style="display: flex; flex-wrap: wrap; align-items: center;margin: 0 40rpx 0 40rpx;">
-				<view class="data-box-item"></view>
-				<view class="data-box-item"></view>
-				<view class="data-box-item"></view>
-				<view class="data-box-item"></view>
+				<view class="data-box-item">
+					<view class="flex">
+						<view class="index" :style="{backgroundColor: '#4169E1'}"></view>
+						<view class="item-text">考勤卡片</view>
+					</view>
+					<view class="avatar-box">
+						<view class="t-icon t-icon-xz-de"></view>
+					</view>
+					<view class="flex">
+						<view class="item-text">本月考勤: 优秀</view>
+					</view>
+				</view>
+
+				<view class="data-box-item">
+					<view class="flex">
+						<view class="index" :style="{backgroundColor: '#ff8caf'}"></view>
+						<view class="item-text">成绩卡片</view>
+					</view>
+					<view class="avatar-box">
+						<view class="t-icon t-icon-xunzhang-mei"></view>
+					</view>
+					<view class="flex">
+						<view class="item-text">综合成绩: 优秀</view>
+					</view>
+				</view>
+
+				<view class="data-box-item">
+					<view class="flex">
+						<view class="index" :style="{backgroundColor: '#f9c752'}"></view>
+						<view class="item-text">作业卡片</view>
+					</view>
+					<view class="avatar-box">
+						<view class="t-icon t-icon-xunzhang-zhi"></view>
+					</view>
+					<view class="flex">
+						<view class="item-text">作业完成: 优秀</view>
+					</view>
+				</view>
+				<view class="data-box-item">
+					<view class="flex">
+						<view class="index" :style="{backgroundColor: '#23b46c'}"></view>
+						<view class="item-text">生活卡片</view>
+					</view>
+					<view class="avatar-box">
+						<view class="t-icon t-icon-xunzhang-ti"></view>
+					</view>
+					<view class="flex">
+						<view class="item-text">家庭表现: 优秀</view>
+					</view>
+				</view>
 			</view>
 		</view>
 
@@ -56,21 +103,29 @@
 		},
 		methods: {
 			...mapMutations('m_children', ['updateChildrenInfo']),
-			updateAvatar(){
+			updateAvatar() {
 				uni.chooseImage({
-					count:1,//默认1个图片
+					count: 1, //默认1个图片
 					sourceType: ['album'], //从相册选择
-					success: function(res){
+					success: function(res) {
 						console.log(JSON.stringify(res.tempFilePaths));
 					}
 				})
 			},
-			
-			
+
+
 		},
 	}
 </script>
 
 <style lang="scss">
 	@import '@/subpkg/common/infopage.scss';
+
+	.avatar-box {
+		width: 100%;
+		height: 150rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
 </style>

+ 7 - 3
subpkg/info/parentpage.vue

@@ -32,8 +32,11 @@
 			<!-- 横向内容列表 -->
 			<view class="title-box-name">我的孩子</view>
 			<view style="display: flex; flex-wrap: wrap; align-items: center;margin: 0 40rpx 0 40rpx;">
-				<view class="data-box-item" v-for="(item,index) in parentdetail.childrenList" :key="index">
-					<view class="item-text">{{item.name}}</view>
+				<view class="data-box-item" v-for="(item,index) in parentdetail.childrenList" :key="index">
+					<view class="flex">
+						<view class="index" :style="{backgroundColor: item.gender == '男' ? '#4169E1':'#ff8caf'}"></view>
+						<view class="item-text">{{item.name}}</view>
+					</view>
 					<view class="avatar-box">
 						<u-avatar size="100" class="item-avatar" :src="item.avatar" mode="aspectFill"></u-avatar>
 					</view>
@@ -76,7 +79,8 @@
 		background: linear-gradient($color-blue, $page-background-color);
 	}
 
-	.avatar-box {
+	.avatar-box {
+		margin-top: -10rpx;
 		display: flex;
 		align-items: center;
 		justify-content: center;

+ 116 - 21
subpkg/video/livepage.vue

@@ -1,14 +1,17 @@
 <template>
 	<view class="container">
-		<back text="课程直播"></back>
+		<back text="课程直播" :show="false"></back>
 		<!-- 视频资源 -->
 		<view class="video-box">
-			<video class="video" id="classVideo" :src="videoSrc" controls></video>
+			<video class="video" id="classVideo" :src="classInfo.resource" controls></video>
 		</view>
 		<!-- 信息模块 -->
 		<view class="info-box">
 			<view class="flex-box" style="width: 68%;height: 100%;">
-				<view class="info-name">{{classInfo.title}}</view>
+				<view style="display: flex;align-items: center;">
+					<view class="index"></view>
+					<view class="info-name" style="margin-left: 15rpx;margin-bottom: 4rpx;">{{classInfo.title}}</view>
+				</view>
 				<view style="display: flex;flex-direction: column;">
 					<view class="info-time">课程时间:</view>
 					<view style="display: flex;">
@@ -28,16 +31,61 @@
 					</view>
 				</view>
 
-				<view class="flex" style="margin: 0 10rpx;">
+				<view class="flex" style="margin: 0 20rpx;">
 					<view class="t-icon t-icon-baocun" @click="saveVideo"></view>
 					<view class="t-icon t-icon-fenxiang" @click="shareVideo"></view>
 				</view>
 			</view>
 		</view>
+		<!-- 列表名 -->
+		<view class="list-name-box">
+			<view class="index"></view>
+			<view class="list-name">直播与回放</view>
+		</view>
+		
+		<!-- 视频列表 -->
+		<view class="video-list" v-for="(item,index) in classList" :key="index">
+			<!-- 正文 -->
+			<view class="class-block">
+					<!-- <view class="title-box" :style="{backgroundColor: index<current? '#23b46c':(index===current? '#ff5959':'#aaa') }" >
+						<view class="content-subtitle">{{item.name}}</view>
+					</view> -->
+					<view class="content-box">
+						<view :class="index<current? 't-icon t-icon-tick-square-svgrepo-com':(index===current? 't-icon t-icon-a-play-svgrepo-com1':'t-icon t-icon-time-square-svgrepo-com')"></view>
+						<view class="content-info">{{item.name}}</view>
+						<view class="block-tag-box">
+							<view class="block-tag">{{item.teacher}}</view>
+						</view>
+						<view class="info-time">时间: {{item.time}}</view>
+					</view>
+			</view>
+			<!-- 按钮 -->
+			<view class="btn" :style="{backgroundColor: index<current? '#23b46c':(index===current? '#ff5959':'#aaa') }">
+				<view class="content-subtitle" v-if="index<current" @click="showVideo(index)">观看回放</view>
+				<view class="content-subtitle" v-if="index===current" @click="showLive(index)">正在直播</view>
+				<view class="content-subtitle" v-if="index>current">暂未开始</view>
+			</view>
+		</view>
 		<!-- 缺省区域 -->
-		<view style="margin-top: 150rpx;">
+		<!-- <view style="margin-top: 150rpx;">
 			<u-empty mode="data"></u-empty>
-		</view>
+		</view> -->
+		<u-action-sheet :show="actionShow" @close="actionShow = false" title="——  分享视频到  ——" :round="10">
+			<view class="flex-icon">
+				<view class="flex-box">
+					<view class="t-icon t-icon-weixin" @click="shareToWeixin"></view>
+					<text class="text" @click="shareToWeixin">微信</text>
+				</view>
+				<view class="flex-box">
+					<view class="t-icon t-icon-pengyouquan" @click="shareToPengYouQuan"></view>
+					<text class="text" @click="shareToPengYouQuan">朋友圈</text>
+				</view>
+				<view class="flex-box">
+					<view class="t-icon t-icon-QQ" @click="shareToQQ"></view>
+					<text class="text" @click="shareToQQ">QQ</text>
+				</view>
+			</view>
+		</u-action-sheet>
 	</view>
 </template>
 
@@ -51,12 +99,17 @@
 		},
 		data() {
 			return {
-				videoSrc: 'https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4',
 				classInfo: '',
 				today: '',
+				//当前课程
+				current: '',
+				actionShow: false,
+				//下载临时路径
+				tempFilePath: '',
 			};
 		},
 		onLoad(options) {
+			this.current = parseInt(options.info)
 			this.classInfo = this.classList[options.info]
 			this.getToday()
 			this.videoContext = uni.createVideoContext('classVideo')
@@ -65,31 +118,73 @@
 			getToday() {
 				this.today = (new Date()).format("yyyy-MM-dd")
 			},
-			saveVideo(){
-				console.log('点击保存');
-				uni.saveVideoToPhotosAlbum({
-					filePath: this.videoSrc,
-					success: function() {
-						console.log('保存成功')
+			saveVideo() {
+				uni.downloadFile({
+					url: this.classInfo.resource, //仅为示例,并非真实的资源
+					success: (res) => {
+						if (res.statusCode === 200) {
+							this.tempFilePath = res.tempFilePath
+							console.log('下载成功');
+							uni.saveVideoToPhotosAlbum({
+								filePath: this.tempFilePath,
+								success: function() {
+									console.log('保存成功')
+								}
+							})
+						}
 					}
-				})
+				});
 			},
+			//分享界面
 			shareVideo(){
+				this.actionShow = true
+			},
+			shareToWeixin() {
 				uni.share({
 					provider: "weixin",
 					scene: "WXSceneSession",
-					type: 0,
-					href: "http://uniapp.dcloud.io/",
-					title: "uni-app分享",
-					summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
-					imageUrl: "https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/d8590190-4f28-11eb-b680-7980c8a877b8.png",
-					success: function (res) {
+					type: 4,
+					title: "来自醍摩豆家长端的分享",
+					summary: `孩子正在上${this.classInfo.name}课程,快来围观吧!`,
+					mediaUrl: this.tempFilePath,
+					success: function(res) {
 						console.log("success:" + JSON.stringify(res));
 					},
-					fail: function (err) {
+					fail: function(err) {
 						console.log("fail:" + JSON.stringify(err));
 					}
 				});
+			},
+			shareToPengYouQuan() {
+				uni.share({
+					provider: "weixin",
+					scene: "WXSceneTimeline",
+					type: 4,
+					title: "来自醍摩豆家长端的分享",
+					summary: `孩子正在上${this.classInfo.name}课程,快来围观吧!`,
+					mediaUrl: this.classInfo.resource,
+					success: function(res) {
+						console.log("success:" + JSON.stringify(res));
+					},
+					fail: function(err) {
+						console.log("fail:" + JSON.stringify(err));
+					}
+				});
+			},
+			shareToQQ() {
+			
+			},
+			showVideo(index){
+				uni.navigateTo({
+					url: `/subpkg/video/videopage?info=${index}`
+				})
+			},
+			showLive(index){
+				if(index === this.current){
+					uni.$showMsg('当前正在播放此课程')
+				}else{
+					this.classInfo = this.classList[index]
+				}
 			}
 			
 		}

+ 128 - 24
subpkg/video/videopage.vue

@@ -1,14 +1,18 @@
 <template>
 	<view class="container">
-		<back text="课程回放"></back>
+		<back text="课程回放" :show="false"></back>
 		<!-- 视频资源 -->
 		<view class="video-box">
-			<video class="video" id="classVideo" :src="videoSrc" controls></video>
+			<video class="video" id="classVideo" :src="classInfo.resource" controls></video>
 		</view>
 		<!-- 信息模块 -->
 		<view class="info-box">
 			<view class="flex-box" style="width: 68%;height: 100%;">
-				<view class="info-name">{{classInfo.title}}</view>
+				<view style="display: flex;align-items: center;">
+					<view class="index"></view>
+					<view class="info-name" style="margin-left: 15rpx;margin-bottom: 4rpx;">{{classInfo.title}}</view>
+				</view>
+
 				<view style="display: flex;flex-direction: column;">
 					<view class="info-time">课程时间:</view>
 					<view style="display: flex;">
@@ -28,16 +32,63 @@
 					</view>
 				</view>
 
-				<view class="flex" style="margin: 0 10rpx;">
+				<view class="flex" style="margin: 0 20rpx;">
 					<view class="t-icon t-icon-baocun" @click="saveVideo"></view>
 					<view class="t-icon t-icon-fenxiang" @click="shareVideo"></view>
 				</view>
 			</view>
 		</view>
+		<!-- 列表名 -->
+		<view class="list-name-box">
+			<view class="index"></view>
+			<view class="list-name">直播与回放</view>
+		</view>
+
+		<!-- 视频列表 -->
+		<view class="video-list" v-for="(item,index) in classList" :key="index">
+			<!-- 正文 -->
+			<view class="class-block">
+				<!-- <view class="title-box" :style="{backgroundColor: index<current? '#23b46c':(index===current? '#ff5959':'#aaa') }" >
+					<view class="content-subtitle">{{item.name}}</view>
+				</view> -->
+				<view class="content-box">
+					<view
+						:class="index<current? 't-icon t-icon-tick-square-svgrepo-com':(index===current? 't-icon t-icon-a-play-svgrepo-com1':'t-icon t-icon-time-square-svgrepo-com')">
+					</view>
+					<view class="content-info">{{item.name}}</view>
+					<view class="block-tag-box">
+						<view class="block-tag">{{item.teacher}}</view>
+					</view>
+					<view class="info-time">时间: {{item.time}}</view>
+				</view>
+			</view>
+			<!-- 按钮 -->
+			<view class="btn" :style="{backgroundColor: index<current? '#23b46c':(index===current? '#ff5959':'#aaa') }">
+				<view class="content-subtitle" v-if="index<current" @click="showVideo(index)">观看回放</view>
+				<view class="content-subtitle" v-if="index===current" @click="showLive(index)">正在直播</view>
+				<view class="content-subtitle" v-if="index>current">暂未开始</view>
+			</view>
+		</view>
 		<!-- 缺省区域 -->
-		<view style="margin-top: 150rpx;">
+		<!-- <view style="margin-top: 150rpx;">
 			<u-empty mode="data"></u-empty>
-		</view>
+		</view> -->
+		<u-action-sheet :show="actionShow" @close="actionShow = false" title="——  分享视频到  ——" :round="10">
+			<view class="flex-icon">
+				<view class="flex-box">
+					<view class="t-icon t-icon-weixin" @click="shareToWeixin"></view>
+					<text class="text" @click="shareToWeixin">微信</text>
+				</view>
+				<view class="flex-box">
+					<view class="t-icon t-icon-pengyouquan" @click="shareToPengYouQuan"></view>
+					<text class="text" @click="shareToPengYouQuan">朋友圈</text>
+				</view>
+				<view class="flex-box">
+					<view class="t-icon t-icon-QQ" @click="shareToQQ"></view>
+					<text class="text" @click="shareToQQ">QQ</text>
+				</view>
+			</view>
+		</u-action-sheet>
 	</view>
 </template>
 
@@ -51,12 +102,19 @@
 		},
 		data() {
 			return {
-				videoSrc: 'https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4',
 				classInfo: '',
 				today: '',
+				//当前课程
+				current: '',
+				//正在播放第几个视频
+				tempIndex: '',
+				actionShow: false,
+				//下载临时路径
+				tempFilePath: '',
 			};
 		},
 		onLoad(options) {
+			this.current = parseInt(options.info) + 1
 			this.classInfo = this.classList[options.info]
 			this.getToday()
 			this.videoContext = uni.createVideoContext('classVideo')
@@ -65,33 +123,80 @@
 			getToday() {
 				this.today = (new Date()).format("yyyy-MM-dd")
 			},
-			saveVideo(){
-				console.log('点击保存');
-				uni.saveVideoToPhotosAlbum({
-					filePath: this.videoSrc,
-					success: function() {
-						console.log('保存成功')
+			//保存video
+			saveVideo() {
+				uni.downloadFile({
+					url: this.classInfo.resource, //仅为示例,并非真实的资源
+					success: (res) => {
+						if (res.statusCode === 200) {
+							this.tempFilePath = res.tempFilePath
+							console.log('下载成功');
+							uni.saveVideoToPhotosAlbum({
+								filePath: this.tempFilePath,
+								success: function() {
+									console.log('保存成功')
+								}
+							})
+							
+						}
 					}
-				})
+				});
+			},
+			//分享界面
+			shareVideo() {
+				this.actionShow = true
 			},
-			shareVideo(){
+			shareToWeixin() {
 				uni.share({
 					provider: "weixin",
 					scene: "WXSceneSession",
-					type: 0,
-					href: "http://uniapp.dcloud.io/",
-					title: "uni-app分享",
-					summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
-					imageUrl: "https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/d8590190-4f28-11eb-b680-7980c8a877b8.png",
-					success: function (res) {
+					type: 4,
+					title: "来自醍摩豆家长端的分享",
+					summary: `今日孩子已上${this.classInfo.name}课程,快来围观吧!`,
+					mediaUrl: this.tempFilePath,
+					success: function(res) {
+						console.log("success:" + JSON.stringify(res));
+					},
+					fail: function(err) {
+						console.log("fail:" + JSON.stringify(err));
+					}
+				});
+			},
+			shareToPengYouQuan() {
+				uni.share({
+					provider: "weixin",
+					scene: "WXSceneTimeline",
+					type: 4,
+					title: "来自醍摩豆家长端的分享",
+					summary: `今日孩子已上${this.classInfo.name}课程,快来围观吧!`,
+					mediaUrl: this.classInfo.resource,
+					success: function(res) {
 						console.log("success:" + JSON.stringify(res));
 					},
-					fail: function (err) {
+					fail: function(err) {
 						console.log("fail:" + JSON.stringify(err));
 					}
 				});
+			},
+			shareToQQ() {
+
+			},
+			//切换播放课程
+			showVideo(index) {
+				if (index === this.tempIndex) {
+					uni.$showMsg('当前正在播放此课程')
+				} else {
+					this.classInfo = this.classList[index]
+					this.tempIndex = index
+				}
+			},
+			//切换直播
+			showLive(index) {
+				uni.navigateTo({
+					url: `/subpkg/video/livepage?info=${index}`
+				})
 			}
-			
+
 		}
 	}
 </script>
@@ -99,4 +204,3 @@
 <style lang="scss">
 	@import '@/subpkg/common/videopage.scss';
 </style>
-

+ 1 - 21
subpkg/z-calendar/zsy-calendar.vue

@@ -102,9 +102,6 @@
 				dateCache: {}, // 日期缓存
 				emitTimer: null, // 日期改变向父级传递当前选中日期计时器
 				dateClick: false, // 是否进行了日期的点击选择
-
-				noAttend: [], //缺卡天数暂存
-				isAttend: [], //打卡天数暂存
 			}
 		},
 		computed: {
@@ -193,7 +190,7 @@
 			this.init() // 初始化数据
 		},
 		methods: {
-			...mapMutations('m_children', ['updateNoAttendNum', 'updateIsAttendNum']),
+			...mapMutations('m_children', ['updateNoAttendNum']),
 			// 初始化数据
 			init() {
 				if (this.selectedDate === null) this.selectedDate = this.today // 默认选中日期为当天
@@ -218,8 +215,6 @@
 				const year = this.getAssignDateInfo(false, 0)
 				const month = this.getAssignDateInfo(false, 1)
 				const cur = this.generateCalendar(year, month)
-				this.updateIsAttendNum(this.isAttend)
-				this.updateNoAttendNum(this.noAttend)
 				const prev = this.generateCalendar(month === 1 ? year - 1 : year, month === 1 ? 12 : month - 1)
 				const next = this.generateCalendar(month === 12 ? year + 1 : year, month === 12 ? 1 : month + 1)
 				// 根据current来判断相邻的轮播存放哪些日历数据
@@ -325,21 +320,6 @@
 					//判断是否为周末
 					// if(){}
 				})
-				//未打卡
-				let noAttendArr = calendarDate.filter(x => x.month === currentMonth && x.isAttend === 0 && x.type ===
-					'cur')
-				//打卡
-				let isAttendArr = calendarDate.filter(x => x.month === currentMonth && x.isAttend === 1 && x.type ===
-					'cur')
-				// //前一月打卡
-				// let prevIsAttendArr = calendarDate.filter(x => x.month === currentMonth-1 && x.isAttend === 1 && x.type ===
-				// 	'prev')
-				// let prevNoAttendArr = calendarDate.filter(x => x.month === currentMonth-1 && x.isAttend === 0 && x.type ===
-				// 	'prev')
-				// console.log(prevIsAttendArr);
-				// console.log(prevNoAttendArr);
-				this.noAttend = noAttendArr.length
-				this.isAttend = isAttendArr.length
 
 				return calendarDate
 			},

+ 4 - 4
uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js

@@ -129,13 +129,13 @@ const cfu = {
 		"tooltipHour": function(item, category, index, opts) {
 			return item.name + ': ' + item.data + ' 小时 '
 		},
-		"tooltipHourCom": function(item, category, index, opts) {
-			return item.name + ': ' + item.data.toFixed(2) + ' 小时 '
-		},
 		"pieMinute": function(item, category, index, opts) {
 			return item.name + ': ' + item.data + ' 分钟 '
 		},
-
+		"sleepExerciseCom": function(item, category, index, opts) {
+			let value = item.data <= 20? (item.data >= 10? '科学分配' : '运动量少') : '运动过量'
+			return '运动占睡眠: ' + item.data + '% ' + value
+		},
 	},
 	//这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。
 	//下面是自定义配置,请添加项目所需的通用配置

+ 2 - 1
uni_modules/uview-ui/components/u-tabs/u-tabs.vue

@@ -315,7 +315,8 @@
 
 			&__nav {
 				@include flex;
-				position: relative;
+				position: relative;
+				z-index: 99;
 
 				&__item {
 					padding: 0 11px;

+ 45 - 24
utils/APIHandler.js

@@ -1,5 +1,4 @@
-let testData = [
-	{
+let testData = [{
 	"examInfo": {
 		"owner": "school",
 		"name": "评测-220419-02",
@@ -187,7 +186,7 @@ let testData = [
 		"papers": [{
 			"id": "ddd7342b-05a8-fa99-d5fb-cca53f3fef24",
 			"code": "Paper-hbcn",
-			"name": "精进学习-个人20220228",
+			"name": "精进学习0228",
 			"blob": "/exam/d32d4104-1c1b-4d42-b389-7a5c5b6a64a5/paper/8b94c6b6-2572-41e5-89b9-a82fcf13891e",
 			"scope": "school",
 			"multipleRule": 1,
@@ -465,7 +464,7 @@ let homeworkData = [{
 		"allowComment": true, // 是否允许学生互评
 		"extLimit": [], // 提交作业的文件类型限制
 		"attachments": [{
-			"name": "000222111.png", // 文件名
+			"name": "文件名称313", // 文件名
 			"url": "https://teammodeltest.blob.core.chinacloudapi.cn/hbcn/image/000222111.png", // 文件地址
 			"size": 43360, // 文件大小
 			"createTime": 1626864529474, // 文件创建时间
@@ -516,7 +515,7 @@ let homeworkData = [{
 			"blob": "/image/000222111.png", // 文件地址
 			"hash": null, // 文件hash值
 			"duration": 0 // 文件时长
-		},{
+		}, {
 			"name": "000222111.png", // 文件名
 			"url": "https://teammodeltest.blob.core.chinacloudapi.cn/hbcn/image/000222111.png", // 文件地址
 			"size": 43360, // 文件大小
@@ -584,7 +583,7 @@ let homeworkData = [{
 		"name": "作业活动-04", // 活动名称
 		"description": "<p>富文本11富文本22富文本22富文本22</p>", // 活动描述富文本
 		"creatorId": "张老师", // 创建者id
-		"progress": "pending", // 活动进度 finish 完成  going 进行中  pending 待发布
+		"progress": "going", // 活动进度 finish 完成  going 进行中  pending 待发布
 		"scope": "private", // 活动范围 private 个人 school 学校
 		"classes": [], // 活动班级行政班ID集合
 		"stuLists": [
@@ -759,13 +758,36 @@ let activityData = [{
 	},
 	"status": 200
 }, ]
+//判断完成
 let testFinishData = testData.filter(x => x.examInfo.progress === 'finish')
-
 let homeworkFinishData = homeworkData.filter(x => x.work.progress === 'finish')
 let activityFinishData = activityData.filter(x => x.vote && x.vote.progress === 'finish')
 activityFinishData.push(...activityData.filter(x => x.survey && x.survey.progress === 'finish'))
 //初始化App数据
-function initApp() {
+function initApp(phoneNumber) {
+	//const parentDetailData = await uni.$http.post('',numData.phoneNumber)
+	let parentDetail = {
+		phoneNumber: phoneNumber,
+		name: '家长姓名',
+		childrenList: [{
+			avatar: '/static/default-icons/boy.png',
+			name: '张三',
+			gender: '男',
+			classid: '0301',
+			class: '三年级一班',
+			tmdid: 'tmdid01',
+			schoolname: '研发学校'
+		}, {
+			avatar: '/static/default-icons/girl.png',
+			name: '张梅',
+			gender: '女',
+			classid: '0504',
+			class: '五年级四班',
+			tmdid: 'tmdid03',
+			schoolname: '研发学校'
+		}, ]
+	}
+	this.$store.commit('m_parent/updateParentDetail', parentDetail)
 	let semesterList = [
 		['21学年下学期', '21学年上学期', '20学年下学期', '20学年上学期']
 	]
@@ -802,49 +824,48 @@ function initApp() {
 }
 //获取首页数据
 function initHome() {
-	let classList = 
-	[{
+	let classList = [{
 		title: '文章鉴赏',
 		name: '语文',
 		teacher: '王老师',
 		time: '09:00-09:50',
 		timeFrame: '上午第一节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg2.mp4',
 	}, {
 		title: '计算练习',
 		name: '数学',
 		teacher: '李老师',
 		time: '10:00-10:50',
 		timeFrame: '上午第二节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg1.mp4',
 	}, {
 		title: '阅读文献',
 		name: '外语',
 		teacher: '张老师',
 		time: '11:00-11:50',
 		timeFrame: '上午第三节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg3.mp4',
 	}, {
 		title: '哲学起点',
 		name: '思品',
 		teacher: '史老师',
-		time: '14:00-14:50',
+		time: '11:50-14:50',
 		timeFrame: '下午第一节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg2.mp4',
 	}, {
 		title: '户外锻炼',
 		name: '体育',
 		teacher: '李老师',
 		time: '14:50-15:50',
 		timeFrame: '下午第二节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg1.mp4',
 	}, {
 		title: '学习实验',
 		name: '科学',
 		teacher: '张老师',
-		time: '16:00-20:50',
+		time: '15:55-20:50',
 		timeFrame: '上午第三节',
-		resource: '',
+		resource: 'https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg3.mp4',
 	}]
 	this.$store.commit('m_children/updateClassList', classList)
 	let records = [{
@@ -1161,12 +1182,12 @@ function initGrade(semester, tmdid) {
 				series: [{
 						name: "超过年级中",
 						data: [
-							90,
-							95,
-							92,
-							100,
-							88,
-							99
+							50,
+							75,
+							62,
+							80,
+							68,
+							39
 						]
 					},
 					{