Procházet zdrojové kódy

update: 对接孩子信息接口,封装全局api,完成评测分析报告页面与作业详情页面等等

KELECHUAN před 2 roky
rodič
revize
b6535c80aa
100 změnil soubory, kde provedl 1489 přidání a 388 odebrání
  1. binární
      .vs/slnx.sqlite
  2. binární
      .vs/teammodelwxapp/v17/.suo
  3. binární
      .vs/teammodelwxapp/v17/workspaceFileList.bin
  4. 2 5
      components/top-info/top-info.vue
  5. 12 11
      components/top-semester/top-semester.vue
  6. 10 6
      main.js
  7. 4 2
      pages.json
  8. 1 1
      pages/style/tab_pages.scss
  9. 60 61
      pages/tab_home/tab_home.vue
  10. 17 3
      pages/tab_mine/tab_mine.vue
  11. 56 7
      pages/tab_swap/tab_swap.vue
  12. 2 3
      pages/tab_work/tab_work.vue
  13. 31 3
      static/iconfont/iconfont-weapp-icon.css
  14. 3 1
      subpkg/datalist/data_pages.scss
  15. 253 34
      subpkg/datalist/examReport.vue
  16. 361 14
      subpkg/datalist/workReport.vue
  17. 54 20
      subpkg/exam/examPractice.vue
  18. 4 9
      subpkg/exam/total.vue
  19. 18 18
      subpkg/mine/childinfo.vue
  20. 8 9
      subpkg/mine/parentinfo.vue
  21. 31 5
      subpkg/startup/guide.vue
  22. 21 50
      subpkg/startup/login.vue
  23. 1 2
      subpkg/startup/options.vue
  24. 74 2
      uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
  25. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  26. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  27. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/top-info/top-info.js.map
  28. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/top-semester/top-semester.js.map
  29. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_home/tab_home.js.map
  30. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_mine/tab_mine.js.map
  31. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_swap/tab_swap.js.map
  32. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_work/tab_work.js.map
  33. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/datalist/examReport.js.map
  34. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/datalist/workReport.js.map
  35. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/exam/examPractice.js.map
  36. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/exam/total.js.map
  37. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/mine/childinfo.js.map
  38. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/mine/parentinfo.js.map
  39. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/guide.js.map
  40. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/login.js.map
  41. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/options.js.map
  42. 1 1
      unpackage/dist/dev/mp-weixin/common/main.js
  43. 24 3
      unpackage/dist/dev/mp-weixin/common/main.wxss
  44. 3 3
      unpackage/dist/dev/mp-weixin/common/vendor.js
  45. 2 2
      unpackage/dist/dev/mp-weixin/components/loading/loading.js
  46. 2 2
      unpackage/dist/dev/mp-weixin/components/top-info/top-info.js
  47. 1 1
      unpackage/dist/dev/mp-weixin/components/top-info/top-info.wxml
  48. 2 2
      unpackage/dist/dev/mp-weixin/components/top-return/top-return.js
  49. 2 2
      unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.js
  50. 1 1
      unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.wxml
  51. 1 1
      unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.wxss
  52. 2 2
      unpackage/dist/dev/mp-weixin/components/z-calendar/dateBox.js
  53. 2 2
      unpackage/dist/dev/mp-weixin/components/z-calendar/zsy-calendar.js
  54. 1 1
      unpackage/dist/dev/mp-weixin/pages/init/init.js
  55. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_exam/tab_exam.js
  56. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_exam/tab_exam.wxss
  57. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_home/tab_home.js
  58. 14 15
      unpackage/dist/dev/mp-weixin/pages/tab_home/tab_home.wxss
  59. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.js
  60. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.wxml
  61. 14 0
      unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.wxss
  62. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.js
  63. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.wxml
  64. 31 1
      unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.wxss
  65. 1 1
      unpackage/dist/dev/mp-weixin/pages/tab_work/tab_work.js
  66. 3 4
      unpackage/dist/dev/mp-weixin/pages/tab_work/tab_work.wxss
  67. 7 0
      unpackage/dist/dev/mp-weixin/project.private.config.json
  68. 31 3
      unpackage/dist/dev/mp-weixin/static/iconfont/iconfont-weapp-icon.css
  69. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.js
  70. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.wxml
  71. 91 11
      unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.wxss
  72. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/examlist.js
  73. 3 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/examlist.wxss
  74. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/swapReport.js
  75. 3 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/swapReport.wxss
  76. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/swaplist.js
  77. 3 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/swaplist.wxss
  78. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.js
  79. 8 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.json
  80. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.wxml
  81. 141 12
      unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.wxss
  82. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/worklist.js
  83. 3 1
      unpackage/dist/dev/mp-weixin/subpkg/datalist/worklist.wxss
  84. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.js
  85. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.wxml
  86. 19 0
      unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.wxss
  87. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/level.js
  88. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/rank.js
  89. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/single.js
  90. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/subject.js
  91. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/exam/total.js
  92. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/home/classlist.js
  93. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/home/clockstats.js
  94. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/home/courseRecommend.js
  95. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.js
  96. 1 0
      unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.json
  97. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.wxml
  98. 4 2
      unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.wxss
  99. 1 1
      unpackage/dist/dev/mp-weixin/subpkg/mine/msgList.js
  100. 0 0
      unpackage/dist/dev/mp-weixin/subpkg/mine/parentinfo.js

binární
.vs/slnx.sqlite


binární
.vs/teammodelwxapp/v17/.suo


binární
.vs/teammodelwxapp/v17/workspaceFileList.bin


+ 2 - 5
components/top-info/top-info.vue

@@ -1,13 +1,10 @@
 <template>
 	<view>
 		<view class="info-box">
-			<image class="avatar" v-if="childInfo.avatar === '默认'"
-				:src="childInfo.gender==='男'?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'">
-			</image>
-			<image class="avatar" v-if="childInfo.avatar != '默认'" :src="childInfo.avatar"></image>
+			<image class="avatar" :src="childInfo.gender==='M'?'/static/default_icons/boy_avatar.svg':childInfo.gender===null?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'"></image>
 			<view class="flex-column">
 				<view class="info-name">{{childInfo.name}}</view>
-				<view class="info-class">{{childInfo.class}}</view>
+				<view class="info-class">{{childInfo.className}}</view>
 			</view>
 			<view class="capsule-box">
 				<view class="time-stamp">

+ 12 - 11
components/top-semester/top-semester.vue

@@ -4,19 +4,16 @@
 		<view class="flex-row" style="margin: 140rpx 40rpx 0 40rpx;">
 			<view class="info-box">
 				<view class="flex-baseline">
-					<view class="info-title">{{childInfo.semester.split('学年')[0]}}</view>
+					<view class="info-title">{{currentYear}}</view>
 					<view class="info-subtitle">学年</view>
-					<view class="info-title" style="margin-left: 20rpx;">
-						{{childInfo.semester.split('学年')[1].split('学期')[0]}}
-					</view>
-					<view class="info-subtitle">学期</view>
+					<view class="info-title" style="margin-left: 10rpx;">{{childInfo.periodName}}</view>
 				</view>
 				<view class="flex-baseline">
 					<view class="tag" style="margin-left: 0;">
-						<view class="tag-text">{{childInfo.school}}</view>
+						<view class="tag-text">{{childInfo.schoolName}}</view>
 					</view>
 					<view class="tag">
-						<view class="tag-text">{{childInfo.class}}</view>
+						<view class="tag-text">{{childInfo.className}}</view>
 					</view>
 					<view class="tag">
 						<view class="tag-text">{{childInfo.name}}同学</view>
@@ -39,12 +36,16 @@
 		},
 		data() {
 			return {
-
+				currentYear: ''
 			};
 		},
-		onLoad() {},
+		created() {
+			this.getYear()
+		},
 		methods: {
-
+			getYear() {
+				this.currentYear = new Date().getFullYear()
+			}
 		}
 	}
 </script>
@@ -69,7 +70,7 @@
 			font-family: YSfont;
 			color: #FFF;
 			z-index: 2;
-			margin-left: 20rpx;
+			margin-left: 10rpx;
 			text-shadow: 1px -1px 0px #c0c0c0, 2px -2px 0px #b0b0b0, 1px -1px 0px #a0a0a0, 2px -2px 0px #909090;
 		}
 	}

+ 10 - 6
main.js

@@ -1,22 +1,26 @@
-import App from './App';
-import Vue from 'vue';
-import uView from '@/uni_modules/uview-ui';
-import store from '@/store/store.js';
+import App from './App'
+import Vue from 'vue'
+import uView from '@/uni_modules/uview-ui'
+import store from '@/store/store.js'
 import Common from '@/utils/CommonMethods.js'
 import Request from '@/utils/RequestHandler.js'
+import apiTools from '@/utils/Api.js'
 //挂载全局方法
+Date.prototype.format = Common.dateUtil
 Vue.prototype.$noMultipleClicks = Common.noMultipleClicks
 Vue.prototype.$getRecentDateArray = Common.getRecentDateArray
 Vue.prototype.$timeStampToTime = Common.timeStampToTime
 Vue.prototype.$logOut = Common.logOut
-Date.prototype.format = Common.dateUtil
+
 
 Vue.prototype.$initStart = Request.initStart
 Vue.prototype.$initTab = Request.initTab
 Vue.prototype.$initHome = Request.initHome
 Vue.prototype.$initExam = Request.initExam
 Vue.prototype.$initWork = Request.initWork
-Vue.prototype.$initSwap = Request.initSwap
+Vue.prototype.$initSwap = Request.initSwap
+
+Vue.prototype.$api = new apiTools()
 //挂载使用
 Vue.use(uView);
 

+ 4 - 2
pages.json

@@ -86,14 +86,16 @@
 				"path": "mine/childInfo",
 				"style": {
 					"enablePullDownRefresh": true,
-					"navigationStyle": "custom"
+					"navigationStyle": "custom",
+					"disableScroll": true
 				}
 			},
 			{
 				"path": "mine/parentInfo",
 				"style": {
 					"enablePullDownRefresh": true,
-					"navigationStyle": "custom"
+					"navigationStyle": "custom",
+					"disableScroll": true
 				}
 			},
 			{

+ 1 - 1
pages/style/tab_pages.scss

@@ -137,7 +137,7 @@
 
 	.scroll-view-bottom{
 		white-space: nowrap;
-		height: 370rpx;
+		padding-bottom: 40rpx;
 
 		.scroll-item{
 			margin: 0 20rpx;

+ 60 - 61
pages/tab_home/tab_home.vue

@@ -647,10 +647,10 @@
 				})
 			},
 			navTab(index) {
-				let urlArr = 
-				['/pages/tab_exam/tab_exam', 
-				'/pages/tab_work/tab_work', 
-				'/pages/tab_swap/tab_swap']
+				let urlArr = ['/pages/tab_exam/tab_exam',
+					'/pages/tab_work/tab_work',
+					'/pages/tab_swap/tab_swap'
+				]
 				uni.switchTab({
 					url: urlArr[index]
 				})
@@ -765,6 +765,11 @@
 		}
 	}
 
+	.scroll-view-bottom {
+		white-space: nowrap;
+		padding-bottom: 20rpx;
+	}
+
 	.clock-image {
 		margin-top: -160rpx;
 		margin-left: 20rpx;
@@ -776,70 +781,64 @@
 		z-index: 1;
 	}
 
-	.scroll-view-bottom {
-		white-space: nowrap;
-		height: 630rpx;
-
-		.box-container {
-			margin: 0 20rpx;
-			display: inline-block;
-			vertical-align: top;
-			height: 600rpx;
-			width: 84%;
-
-			.clounm-container {
-				height: 180rpx;
+	.box-container {
+		margin: 0 20rpx;
+		display: inline-block;
+		vertical-align: top;
+		width: 84%;
+
+		.clounm-container {
+			height: 180rpx;
+			width: 100%;
+			margin-bottom: 20rpx;
+			border-radius: $border-radius;
+			background-color: #FFF;
+			overflow: hidden;
+
+			.item-box {
+				display: flex;
 				width: 100%;
-				margin-bottom: 20rpx;
-				border-radius: $border-radius;
-				background-color: #FFF;
-				overflow: hidden;
+				height: 100%;
+
+				.thumb {
+					width: 180rpx;
+					height: 180rpx;
+					border-radius: $border-radius;
+					background-size: cover; //背景图片自适应
+					background-repeat: no-repeat;
+					z-index: 50;
+				}
 
-				.item-box {
+				.info-box {
 					display: flex;
-					width: 100%;
-					height: 100%;
-
-					.thumb {
-						width: 180rpx;
-						height: 180rpx;
-						border-radius: $border-radius;
-						background-size: cover; //背景图片自适应
-						background-repeat: no-repeat;
-						z-index: 50;
-					}
-
-					.info-box {
-						display: flex;
-						flex-direction: column;
-						margin: 20rpx 20rpx 20rpx 30rpx;
-						justify-content: space-between;
-						width: 400rpx;
-
-						.tag-fill {
-							background-color: #d8deff;
-							width: fit-content;
-
-							.t-icon {
-								width: 30rpx;
-								height: 30rpx;
-								margin-right: 5rpx;
-							}
-
-							.tag-text {
-								color: #4169E1;
-							}
+					flex-direction: column;
+					margin: 20rpx 20rpx 20rpx 30rpx;
+					justify-content: space-between;
+					width: 400rpx;
+
+					.tag-fill {
+						background-color: #d8deff;
+						width: fit-content;
+
+						.t-icon {
+							width: 30rpx;
+							height: 30rpx;
+							margin-right: 5rpx;
 						}
 
-						.desc {
-							line-height: 26rpx;
-							font-size: 26rpx;
-							color: #909399;
-							white-space: nowrap;
-							overflow: hidden;
-							text-overflow: ellipsis;
+						.tag-text {
+							color: #4169E1;
 						}
 					}
+
+					.desc {
+						line-height: 26rpx;
+						font-size: 26rpx;
+						color: #909399;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+					}
 				}
 			}
 		}

+ 17 - 3
pages/tab_mine/tab_mine.vue

@@ -8,8 +8,8 @@
 			<view class="info-box">
 				<image class="avatar" :src="parentInfo.avatarUrl"></image>
 				<view class="flex-column">
-					<view class="YS-title" style="font-size: 55rpx;">{{parentInfo.nickName}}</view>
-					<view class="YS-subtitle" style="font-size: 40rpx;">{{childInfo.name}}家长</view>
+					<view class="info-title">{{parentInfo.nickName}}</view>
+					<view class="info-subtitle">{{childInfo.name}}家长</view>
 				</view>
 			</view>
 			<!-- 卡片列表 -->
@@ -19,7 +19,7 @@
 						<view class="t-icon t-icon-a-boshimaojiaoyu"></view>
 						<view class="flex-column">
 							<view class="box-title">孩子切换</view>
-							<view class="box-subtitle">查看更多信息</view>
+							<view class="box-subtitle">更多孩子信息</view>
 						</view>
 					</view>
 				</view>
@@ -223,6 +223,20 @@
 				width: 200rpx;
 				height: 120rpx;
 				justify-content: space-around;
+				.info-title{
+					font-size: 55rpx;
+					line-height: 55rpx;
+					color: $title;
+					font-family: YSfont;
+					z-index: 99;
+				}
+				.info-subtitle{
+					font-size: 40rpx;
+					line-height: 40rpx;
+					color: $subtitle;
+					font-family: YSfont;
+					z-index: 99;
+				}
 			}
 		}
 

+ 56 - 7
pages/tab_swap/tab_swap.vue

@@ -87,18 +87,22 @@
 			</view>
 
 			<view class="flex-column" style="margin: 15rpx 0 10rpx 20rpx;">
-				<view class="title" style="font-size: 32rpx;">家校互动</view>
+				<view class="title" style="font-size: 32rpx;">家校共育</view>
 				<view class="bottom-tag"></view>
 			</view>
-<!-- 占位 -->
+			<!-- 占位 -->
 			<view class="flex-row" style="width: 70%;"></view>
 		</view>
 		<scroll-view class="scroll-view-bottom" scroll-x="true" :scroll-with-animation="true" scroll-left="0">
-			<view class="scroll-item"></view>
-			<view class="scroll-item"></view>
-			<view class="scroll-item"></view>
-			<view class="scroll-item"></view>
-			<view class="scroll-item"></view>
+			<view class="scroll-item" v-for="(item,index) in interchangeData" :key="index">
+				<view class="icon-box">
+					<view :class="item.icon"></view>
+					<view class="flex-column">
+						<view class="icon-box-title">{{item.name}}</view>
+						<view class="icon-box-subtitle"></view>
+					</view>
+				</view>
+			</view>
 		</scroll-view>
 	</view>
 </template>
@@ -132,6 +136,19 @@
 					type: 'ring',
 					data: '',
 				}],
+				interchangeData: [{
+					name: '请假申请',
+					icon: 't-icon t-icon-wj-qjd'
+				}, {
+					name: '体温记录',
+					icon: 't-icon t-icon-wj-jzbg'
+				}, {
+					name: '假期表现',
+					icon: 't-icon t-icon-wj-by'
+				}, {
+					name: '缴费概览',
+					icon: 't-icon t-icon-wj-zd'
+				}],
 				image: 'https://ouch-cdn2.icons8.com/LW70TMgW1cGfYeGNSTEp7__kiKVgIhwdZwUmykdLYMY/rs:fit:912:912/czM6Ly9pY29uczgu/b3VjaC1wcm9kLmFz/c2V0cy9wbmcvOTI0/LzU3MWU4ZDZkLTg0/NzEtNGM5YS04MDJk/LTEzNTM5YmZmZTM2/YS5wbmc.png',
 				//完成情况
 				performance: '',
@@ -274,4 +291,36 @@
 	.circle-line3 {
 		background-image: linear-gradient(to right, #FF6D31, #FF6D31), linear-gradient(0deg, #FFF -50%, rgba(255, 255, 255, 0.0));
 	}
+
+	.scroll-item {
+		height: 120rpx !important;
+		width: 260rpx !important;
+
+		.icon-box {
+			display: flex;
+			align-items: center;
+			justify-content: space-around;
+			padding: 0 20rpx;
+			height: 120rpx;
+			width: 220rpx;
+			border-radius: $border-radius;
+			background-image: linear-gradient(to right, #FF6D31, rgba(255,109,49,0.5));
+			.t-icon{
+				width: 55rpx;
+				height: 55rpx;
+			}
+			.icon-box-title{
+				line-height: 40rpx;
+				font-size: 40rpx;
+				color: #FFF;
+				font-family: YSfont;
+			}
+			.icon-box-subtitle{
+				line-height: 30rpx;
+				font-size: 30rpx;
+				color: #FFF;
+				font-family: YSfont;
+			}
+		}
+	}
 </style>

+ 2 - 3
pages/tab_work/tab_work.vue

@@ -246,11 +246,10 @@
 	}
 
 	.scroll-view-bottom {
-		white-space: nowrap;
-		height: 350rpx;
+		margin-top: -10rpx;
 
 		.scroll-item {
-			margin: 4rpx 20rpx 0 20rpx;
+			margin: 10rpx 20rpx 0 20rpx;
 			display: inline-block;
 			vertical-align: top;
 			background-color: #FFF;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 31 - 3
static/iconfont/iconfont-weapp-icon.css


+ 3 - 1
subpkg/datalist/data_pages.scss

@@ -71,6 +71,7 @@
 
 	.report-title {
 		font-size: 75rpx;
+		line-height: 75rpx;
 		font-family: YSfont;
 		color: #FFF;
 		z-index: 99;
@@ -79,7 +80,8 @@
 	.report-subtitle {
 		font-size: 40rpx;
 		font-family: YSfont;
-		margin-top: 30rpx;
+		margin-top: 40rpx;
+		margin-bottom: 20rpx;
 		color: #FFF;
 		z-index: 99;
 	}

+ 253 - 34
subpkg/datalist/examReport.vue

@@ -20,11 +20,10 @@
 				<view class="card-box">
 					<view class="card-image" :style="{backgroundImage:`url(${image3})`}"></view>
 					<view class="flex-column">
-						<view class="title">成绩总分:</view>
-
+						<view class="total-card-title">成绩总分:</view>
 						<view class="flex-row">
-							<view class="YS-title">{{reportData.totalScore}}</view>
-							<view class="title" style="margin: 12rpx 0 0 4rpx;">分</view>
+							<view class="total-card-data">{{reportData.totalScore}}</view>
+							<view class="total-card-title" style="margin: 16rpx 0 0 6rpx;">分</view>
 						</view>
 					</view>
 				</view>
@@ -58,26 +57,26 @@
 							<!-- <uni-th>名次</uni-th> -->
 							<uni-th width="25" align="center">平均分</uni-th>
 							<uni-th width="25" align="center">最高分</uni-th>
-							<uni-th width="25" align="center">差距分</uni-th>
+							<uni-th width="25" align="center">名次</uni-th>
 						</uni-tr>
 						<uni-tr v-for="(item,index) in reportData.tableData" :key="index">
 							<uni-td width="40" align="center">
 								<view class="title">{{item.subject}}</view>
 							</uni-td>
 							<uni-td width="25" align="center">
-								<view class="YS-title" :style="{color: item.grade > item.average ?'#23b46c':'#ff5959'}">
+								<view class="data" :style="{color: item.grade > item.average ?'#23b46c':'#ff5959'}">
 									{{item.grade}}
 								</view>
 							</uni-td>
 							<uni-td width="25" align="center">
-								<view class="YS-title" style="color: #909399;">{{item.average}}</view>
+								<view class="data" style="color: #909399;">{{item.average}}</view>
 							</uni-td>
 							<uni-td width="25" align="center">
-								<view class="YS-title" style="color: #ff8caf;">{{item.top}}</view>
+								<view class="data" style="color: #ff8caf;">{{item.top}}</view>
 							</uni-td>
 							<uni-td width="25" align="center">
-								<view class="YS-title" :style="{color: item.gap === 0 ?'#23b46c':'#f9c752'}">
-									{{item.gap}}
+								<view class="data">
+									{{item.rank}}
 								</view>
 							</uni-td>
 						</uni-tr>
@@ -127,24 +126,73 @@
 							<view class="title-box">
 								<view class="title">班级学生数</view>
 							</view>
-							<view class="YS-title">{{reportData.distributionData[0]}}人</view>
+							<view class="flex-baseline">
+								<view class="data">{{reportData.distributionData[0]}}</view>
+								<view class="unit">人</view>
+							</view>
 						</view>
 						<view class="data-item">
 							<view class="title-box">
 								<view class="title">年级学生数</view>
 							</view>
-							<view class="YS-title">{{reportData.distributionData[1]}}人</view>
+							<view class="flex-baseline">
+								<view class="data">{{reportData.distributionData[1]}}</view>
+								<view class="unit">人</view>
+							</view>
 						</view>
 						<view class="data-item">
 							<view class="title-box">
 								<view class="title">联考学生数</view>
 							</view>
-							<view class="YS-title">{{reportData.distributionData[2]}}人</view>
+							<view class="flex-baseline">
+								<view class="data">{{reportData.distributionData[2]}}</view>
+								<view class="unit">人</view>
+							</view>
 						</view>
 					</view>
 				</view>
 			</view>
 
+			<view class="card-item">
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">近期对比</view>
+				</view>
+				<view class="chart-box" style="height: 550rpx;">
+					<qiun-data-charts type="column" ontouch="true" :chartData="reportData.recentContrastChartData"
+						tooltipFormat='tooltipScore'
+						:opts="{padding:[-10, 20, 20, 10],yAxis:{gridType: 'dash',dashLength: 10},extra:{column:{barBorderCircle: false ,barBorderRadius: [6,6,0,0]}}}" />
+				</view>
+				<view class="cutting-line" />
+
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">诊断分析</view>
+				</view>
+				<view class="analysis-box">
+					<view class="flex-baseline">
+						<view class="subtitle">本次考试中</view>
+						<view class="title">{{advantage.name}}</view>
+						<view class="subtitle">得分率最高,是孩子优势科目;</view>
+					</view>
+					<view class="flex-baseline" style="margin-top: 20rpx;">
+						<view class="title" style="color: #ff5959;margin-left: 0;">{{disadvantage.name}}</view>
+						<view class="subtitle">相较其他科目</view>
+						<view class="title" style="color: #ff5959;">失分率最高</view>
+						<view class="subtitle">是劣势科目;</view>
+					</view>
+					<view class="flex-baseline" style="margin-top: 20rpx;">
+						<view class="subtitle">劣势科目失分率为</view>
+						<view class="title" style="color: #ff5959;">{{(1-disadvantage.score).toFixed(2)*100}}%</view>
+						<view class="subtitle">希望继续努力!</view>
+					</view>
+				</view>
+				<view class="subtitle" style="margin:30rpx;font-size: 26rpx;">#结果由系统维度分析得出,仅供参考#</view>
+				<view class="btn">
+					<view class="btn-text">获取提分方案</view>
+				</view>
+			</view>
+
 			<view class="card-item">
 				<view class="title-box">
 					<view class="title-tag"></view>
@@ -156,9 +204,55 @@
 					</view>
 				</view>
 				<view class="chart-box">
-					<qiun-data-charts type="radar" ontouch="true" :chartData="reportData.advantageChartData" tooltipFormat="meritsRadar"/>
+					<qiun-data-charts type="radar" ontouch="true" :chartData="reportData.advantageChartData"
+						tooltipFormat="meritsRadar" />
+				</view>
+				<view class="cutting-line" />
+
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">偏科分析</view>
+				</view>
+
+				<view class="analysis-box">
+					<view class="flex-baseline">
+						<view class="subtitle">本次考试中</view>
+						<view class="title">{{advantage.name}}</view>
+						<view class="subtitle">得分率最高,是孩子优势科目;</view>
+					</view>
+					<view class="flex-baseline" style="margin-top: 20rpx;">
+						<view class="title" style="color: #ff5959;margin-left: 0;">{{disadvantage.name}}</view>
+						<view class="subtitle">相较其他科目</view>
+						<view class="title" style="color: #ff5959;">失分率最高</view>
+						<view class="subtitle">是劣势科目;</view>
+					</view>
+					<view class="flex-baseline" style="margin-top: 20rpx;">
+						<view class="subtitle">劣势科目失分率为</view>
+						<view class="title" style="color: #ff5959;">{{(1-disadvantage.score).toFixed(2)*100}}%</view>
+						<view class="subtitle">希望继续努力!</view>
+					</view>
+				</view>
+				<view class="subtitle" style="margin:30rpx;font-size: 26rpx;">#结果由系统维度分析得出,仅供参考#</view>
+				<view class="btn">
+					<view class="btn-text">获取提分方案</view>
 				</view>
 			</view>
+
+			<view class="card-item">
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">评测分析报告</view>
+				</view>
+				<view class="btn-box">
+					<view class="subbtn">
+						<view class="subbtn-text">下载报告</view>
+					</view>
+					<view class="subbtn">
+						<view class="subbtn-text">分享报告</view>
+					</view>
+				</view>
+			</view>
+
 		</view>
 	</view>
 </template>
@@ -206,49 +300,49 @@
 							grade: 525,
 							average: 499,
 							top: 521,
-							gap: 38
+							rank: 5
 						},
 						{
 							subject: '语文',
 							grade: 83,
 							average: 80,
 							top: 92,
-							gap: 9
+							rank: 9
 						},
 						{
 							subject: '数学',
 							grade: 93,
 							average: 84,
 							top: 99,
-							gap: 6
+							rank: 6
 						},
 						{
 							subject: '外语',
 							grade: 92,
 							average: 87,
 							top: 96,
-							gap: 4
+							rank: 4
 						},
 						{
 							subject: '思品',
 							grade: 80,
 							average: 83,
 							top: 92,
-							gap: 3
+							rank: 3
 						},
 						{
 							subject: '体育',
 							grade: 99,
 							average: 87,
 							top: 99,
-							gap: 0
+							rank: 1
 						},
 						{
 							subject: '科学',
 							grade: 93,
 							average: 89,
 							top: 96,
-							gap: 3
+							rank: 3
 						}
 					],
 					classNum: 55,
@@ -269,10 +363,10 @@
 					distributionNum: "500-600",
 					distributionData: [12, 130, 333],
 					advantageChartData: {
-						"categories": ["语文", "数学", "英语", "思品", "科学", "体育"],
+						"categories": ["语文", "数学", "英语", "科学", "思品", "体育"],
 						"series": [{
 								"name": "个人得分率",
-								"data": [90, 75, 85, 78, 82, 92]
+								"data": [82, 94, 84, 78, 95, 92]
 							},
 							{
 								"name": "平均得分率",
@@ -283,6 +377,18 @@
 								"data": [96, 92, 94, 91, 89, 90]
 							}
 						]
+					},
+					recentContrastChartData: {
+						"categories": ["语文", "数学", "英语", "科学", "思品", "体育"],
+						series: [{
+								name: "当前测验成绩",
+								data: [82, 94, 84, 78, 95, 92]
+							},
+							{
+								name: "上次测验成绩",
+								data: [88, 84, 97, 92, 89, 93]
+							}
+						],
 					}
 				},
 				contrastList: ['班级', '年级', '联考'],
@@ -292,13 +398,16 @@
 				meritsList: ['班级', '年级', '联考'],
 				meritsCurrent: 0,
 				tableLoading: false,
+				advantage: '',
+				disadvantage: '',
 				image1: 'https://ouch-cdn2.icons8.com/PvGwCISfYx-NAQwl4UsdY2QXtMMiNDB6LllqLZ4jGoA/rs:fit:367:456/czM6Ly9pY29uczgu/b3VjaC1wcm9kLmFz/c2V0cy9wbmcvNzg1/LzhiM2MwZWU2LWFl/ODMtNDM2Mi05MGQy/LTBmMDk0N2M4N2E1/OC5wbmc.png',
 				image2: 'https://ouch-cdn2.icons8.com/I-PEjM-V1LXrgVE1_yaPi7LY2XrgFXgKmEvBD3r1h_Y/rs:fit:484:456/czM6Ly9pY29uczgu/b3VjaC1wcm9kLmFz/c2V0cy9wbmcvMzcy/LzA0ZDY3Y2NlLTM3/YTUtNGE3OC1iZTVi/LTY4MzgyYTQ2YmUz/Zi5wbmc.png',
-				image3: 'https://cdn-icons-png.flaticon.com/512/4524/4524486.png',
+				image3: 'https://cdn-icons-png.flaticon.com/512/4524/4524478.png',
 			};
 		},
 		onLoad(param) {
 			this.index = param.index
+			this.getAnalysisData()
 		},
 		methods: {
 			changeContrast(e) {
@@ -309,6 +418,28 @@
 			},
 			changeMerits(e) {
 				this.meritsCurrent = e
+			},
+			getAnalysisData() {
+				let advantage = {
+					name: '',
+					score: 0
+				}
+				let disadvantage = {
+					name: '',
+					score: 1
+				}
+				this.reportData.gradeData.forEach((item, index) => {
+					if (item.grade / item.score > advantage.score) {
+						advantage.score = item.grade / item.score
+						advantage.name = item.subject
+					}
+					if (item.grade / item.score < disadvantage.score) {
+						disadvantage.score = item.grade / item.score
+						disadvantage.name = item.subject
+					}
+				})
+				this.advantage = advantage
+				this.disadvantage = disadvantage
 			}
 		},
 	}
@@ -321,7 +452,7 @@
 	.bg1 {
 		position: fixed;
 		width: 100%;
-		height: 800rpx;
+		height: 1200rpx;
 		background-size: 100%;
 		background-repeat: no-repeat;
 		background-image: linear-gradient(to top, #f3f4f9, #ff8caf);
@@ -330,7 +461,7 @@
 	.detail-image1 {
 		position: absolute;
 		top: 150rpx;
-		left: 580rpx;
+		left: 560rpx;
 		width: 300rpx;
 		height: 350rpx;
 		background-size: 100%;
@@ -365,15 +496,18 @@
 				height: 100%;
 				justify-content: space-around;
 
-				.title {
+				.total-card-title {
+					line-height: 45rpx;
+					font-size: 45rpx;
 					color: #FFF;
-					font-size: 38rpx;
-					font-weight: 400;
+					font-family: YSfont;
 				}
 
-				.YS-title {
-					font-size: 80rpx;
+				.total-card-data {
 					color: #FFF;
+					font-size: 85rpx;
+					line-height: 45rpx;
+					font-family: YSfont;
 				}
 			}
 
@@ -452,6 +586,13 @@
 				font-size: 30rpx;
 				color: $title;
 			}
+
+			.data {
+				line-height: 32rpx;
+				font-size: 32rpx;
+				font-weight: bold;
+				color: $title;
+			}
 		}
 
 		.msg-box {
@@ -463,9 +604,10 @@
 			background-color: #f3f4f9;
 
 			.title {
+				height: 32rpx;
+				line-height: 32rpx;
 				color: #ff8caf;
 				margin: 0 6rpx;
-				line-height: 30rpx;
 			}
 		}
 
@@ -525,12 +667,89 @@
 						}
 					}
 
-					.YS-title {
+					.data {
 						line-height: 70rpx;
-						font-size: 36rpx;
+						font-size: 35rpx;
+						font-weight: bold;
+						color: #ff8caf;
+					}
+					.unit{
+						margin-left: 4rpx;
+						line-height: 26rpx;
+						font-size: 26rpx;
+						font-weight: bold;
+						color: $subtitle;
 					}
 				}
 			}
 		}
+
+		.cutting-line {
+			margin: 0 50rpx 20rpx 50rpx;
+			height: 1px;
+			background-color: #e6e7eb;
+		}
+
+		.analysis-box {
+			display: flex;
+			flex-direction: column;
+			margin: 10rpx 30rpx;
+
+			.title {
+				margin: 0 10rpx;
+				line-height: 35rpx;
+				font-size: 35rpx;
+				color: $color-pink;
+			}
+
+			.subtitle {
+				line-height: 30rpx;
+				font-size: 30rpx;
+				font-weight: 400;
+				color: $title;
+			}
+		}
+
+		.btn {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			height: 80rpx;
+			margin: 0 30rpx 30rpx 30rpx;
+			background-color: #ff8caf;
+			border-radius: $border-radius;
+			box-shadow: $box-shadow;
+
+			.btn-text {
+				line-height: 38rpx;
+				font-size: 38rpx;
+				color: #FFF;
+				font-family: YSfont;
+			}
+		}
+
+		.btn-box {
+			display: flex;
+			justify-content: space-between;
+			margin: 10rpx 30rpx 30rpx 30rpx;
+
+			.subbtn {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				height: 80rpx;
+				width: 46%;
+				border: 4rpx solid #ff8caf;
+				border-radius: $border-radius;
+				box-shadow: $box-shadow;
+
+				.subbtn-text {
+					line-height: 38rpx;
+					font-size: 38rpx;
+					color: #ff8caf;
+					font-family: YSfont;
+				}
+			}
+		}
 	}
 </style>

+ 361 - 14
subpkg/datalist/workReport.vue

@@ -1,18 +1,124 @@
 <template>
 	<view class="page-view">
 		<top-return color="#FFF"></top-return>
+		<!-- 背景 -->
+		<view class="bg1"></view>
+
 		<view class="flex-row">
 			<view class="flex-column" style="margin: 120rpx 0 0 50rpx;">
 				<view class="report-title">作业</view>
 				<view class="report-title">分析报告</view>
 				<view class="report-subtitle">{{workData[index].work.name}}</view>
 			</view>
-			<view class="bg1"></view>
 			<view class="detail-image" :style="{backgroundImage:`url(${image})`}"></view>
 		</view>
 
 		<view class="card-view">
-			<view class="card-item" style="width: 100%;height: 2300rpx;opacity: 0.9;"></view>
+			<view class="card-item">
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">作业题详情</view>
+				</view>
+				<view class="table-container">
+					<uni-table :loading="tableLoading">
+						<!-- 表头行 -->
+						<uni-tr>
+							<uni-th width="46" align="center">题号</uni-th>
+							<uni-th width="12" align="center">题型</uni-th>
+							<!-- <uni-th>名次</uni-th> -->
+							<uni-th width="25" align="center">作答</uni-th>
+							<uni-th width="25" align="center">答案</uni-th>
+							<uni-th width="25" align="center">更多</uni-th>
+						</uni-tr>
+						<uni-tr v-for="(item,index) in reportData.tableData" :key="index" v-if="index < showTableNum">
+							<uni-td width="46" align="center">
+								<view class="data">{{item.name}}</view>
+							</uni-td>
+							<uni-td width="12" align="center">
+								<view class="subtitle">{{item.type}}</view>
+							</uni-td>
+							<uni-td width="25" align="center">
+								<view v-if="item.answer != '详情'" class="data"
+									:style="{color: item.answer === item.rightAnswer?'#23b46c':'#ff5959'}">
+									{{item.answer}}
+								</view>
+								<view class="table-box" v-if="item.answer === '详情'">
+									<view class="data" style="color: #4169E1">{{item.answer}}
+									</view>
+									<view class="t-icon t-icon-you"></view>
+								</view>
+							</uni-td>
+							<uni-td width="25" align="center">
+								<view v-if="item.rightAnswer != '详情'" class="data">
+									{{item.rightAnswer}}
+								</view>
+								<view class="table-box" v-if="item.rightAnswer === '详情'">
+									<view class="data" style="color: #4169E1">{{item.rightAnswer}}
+									</view>
+									<view class="t-icon t-icon-you"></view>
+								</view>
+							</uni-td>
+							<uni-td width="25" align="center">
+								<view class="table-box">
+									<view class="data" style="color: #4169E1;">解析</view>
+									<view class="t-icon t-icon-you"></view>
+								</view>
+							</uni-td>
+						</uni-tr>
+					</uni-table>
+				</view>
+				<view class="table-btn" v-if="reportData.tableData.length > showTableNum">
+					<view class="btn-text" @click="showTableList">展开全部作业题</view>
+					<u-icon name="arrow-down" color="#616367" @click="showTableList"></u-icon>
+				</view>
+			</view>
+
+			<view class="card-item">
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">知识点分析</view>
+					<view class="subsection">
+						<u-subsection :list="pointList" :current="pointCurrent" @change="changePoint"
+							activeColor="#FFF">
+						</u-subsection>
+					</view>
+				</view>
+				<view class="chart-box" style="height: 700rpx;width: 100%;">
+					<qiun-data-charts type="bar" ontouch="true" :chartData="reportData.pointChartData"
+						:opts="{legend:{position: 'top',float:'left'},xAxis:{format:'xAxisBar'}}" />
+				</view>
+				<view class="point-analyse">
+					<view class="flex-row">
+						<view class="analyse-box1">
+							<view class="analyse-title">知识点</view>
+						</view>
+						<view class="analyse-box2">
+							<view class="analyse-subtitle">掌握程度</view>
+						</view>
+					</view>
+					<view class="flex-row" v-for="(item,index) in reportData.pointData" :key="index">
+						<view class="analyse-box1" style="background-color: #f3f4f9;">
+							<view class="point-box">
+								<view class="point-title" style="margin-left: 30rpx;">{{item.pointName}}</view>
+							</view>
+						</view>
+						<view class="analyse-box2" style="background-color: #f3f4f9;">
+							<view class="circle" :style="{backgroundColor: item.level === '优秀掌握'?'#23b46c': item.level === '部分掌握'? '#f9c752':'#FF6D31'}"></view>
+							<view class="point-title">{{item.level}}</view>
+							<u-icon name="arrow-right" color="#616367" size="15"></u-icon>
+						</view>
+					</view>
+
+
+				</view>
+			</view>
+
+			<view class="card-item">
+				<view class="title-box">
+					<view class="title-tag"></view>
+					<view class="title">作业分趋势</view>
+				</view>
+			</view>
 		</view>
 	</view>
 </template>
@@ -28,6 +134,94 @@
 		data() {
 			return {
 				index: '',
+				reportData: {
+					tableData: [{
+						name: '单选题01',
+						type: '单选',
+						answer: 'A',
+						rightAnswer: 'A',
+					}, {
+						name: '单选题02',
+						type: '单选',
+						answer: 'B',
+						rightAnswer: 'A',
+					}, {
+						name: '单选题03',
+						type: '单选',
+						answer: 'C',
+						rightAnswer: 'C',
+					}, {
+						name: '单选题04',
+						type: '单选',
+						answer: 'A',
+						rightAnswer: 'D',
+					}, {
+						name: '填空题01',
+						type: '填空',
+						answer: '123',
+						rightAnswer: '321',
+					}, {
+						name: '填空题02',
+						type: '填空',
+						answer: '正确',
+						rightAnswer: '错误',
+					}, {
+						name: '解答题01',
+						type: '解答',
+						answer: '详情',
+						rightAnswer: '详情',
+					}, {
+						name: '解答题02',
+						type: '解答',
+						answer: '详情',
+						rightAnswer: '详情',
+					}],
+					pointChartData: {
+						"categories": ["文案居中", "知识点信息", "知识点信息", "知识点信息", "知识点信息", "知识点信息"],
+						"series": [{
+								"name": "个人得分率",
+								"data": [80, 100, 55, 10, 100, 70]
+							},
+							{
+								"name": "班级得分率",
+								"data": [70, 90, 65, 50, 80, 50]
+							}
+						]
+					},
+					pointData: [{
+							pointName: '化学能与热能',
+							level: '未掌握'
+						},
+						{
+							pointName: '化学反应速率与化学平衡',
+							level: '未掌握'
+						},
+						{
+							pointName: '溶液中得离子平衡',
+							level: '部分掌握'
+						},
+						{
+							pointName: '化学能与电能',
+							level: '部分掌握'
+						},
+						{
+							pointName: '化学反应原理综合',
+							level: '部分掌握'
+						},
+						{
+							pointName: '原子结构与性质',
+							level: '优秀掌握'
+						},
+						{
+							pointName: '晶体结构与性质',
+							level: '优秀掌握'
+						}
+					]
+				},
+				showTableNum: 5,
+				tableLoading: false,
+				pointList: ['优势', '短板'],
+				pointCurrent: 0,
 				image: 'https://ouch-cdn2.icons8.com/L7XZ0sgjVoRcfTOPCIQaYDAjSFWSuLHiH__hrCVy_CQ/rs:fit:439:456/czM6Ly9pY29uczgu/b3VjaC1wcm9kLmFz/c2V0cy9wbmcvNTM2/L2M3ZmQyOTdiLTgz/ODEtNGQzYy1hNzk1/LWY1MmY3ZWUyMjIw/YS5wbmc.png'
 			};
 		},
@@ -35,7 +229,12 @@
 			this.index = param.index
 		},
 		methods: {
-
+			showTableList() {
+				this.showTableNum = this.reportData.tableData.length
+			},
+			changePoint(e) {
+				this.pointCurrent = e
+			}
 		},
 	}
 </script>
@@ -43,23 +242,19 @@
 <style lang="scss">
 	@import 'data_pages.scss';
 	@import 'top_info.scss';
-	.page-view {
-		background-color: $color-yellow;
-	}
 
 	.bg1 {
-		position: absolute;
-		top: 200rpx;
-		left: 450rpx;
-		width: 430rpx;
-		height: 430rpx;
-		border-radius: 50%;
-		background-color: #f9da7a;
+		position: fixed;
+		width: 100%;
+		height: 1200rpx;
+		background-size: 100%;
+		background-repeat: no-repeat;
+		background-image: linear-gradient(to top, #f3f4f9, #f9c752);
 	}
 
 	.detail-image {
 		position: absolute;
-		top: 170rpx;
+		top: 140rpx;
 		left: 430rpx;
 		width: 330rpx;
 		height: 360rpx;
@@ -67,4 +262,156 @@
 		background-repeat: no-repeat;
 		z-index: 50;
 	}
+
+	.card-item {
+		width: 100%;
+
+		.title-box {
+			display: flex;
+			align-items: center;
+			padding: 20rpx 0;
+
+			.title-tag {
+				margin-left: -10rpx;
+				margin-right: 20rpx;
+				height: 100%;
+				width: 20rpx;
+				border-radius: 100rpx;
+				background-color: #f9c752;
+				z-index: 99;
+			}
+
+			.title {
+				font-size: 35rpx;
+				line-height: 50rpx;
+			}
+
+			.subsection {
+				width: 300rpx;
+				height: 100%;
+				margin: 0 30rpx 0 auto;
+
+				.u-subsection--button__bar {
+					background-color: #f9c752 !important;
+				}
+			}
+		}
+
+		.table-container {
+			margin-bottom: 20rpx;
+
+			.uni-table-td {
+				padding: 26rpx 10rpx !important;
+			}
+
+			.table-box {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-right: -22rpx;
+			}
+
+			.data {
+				line-height: 28rpx;
+				font-size: 28rpx;
+				font-weight: bold;
+				color: $title;
+			}
+
+			.subtitle {
+				line-height: 24rpx;
+				font-size: 24rpx;
+				font-weight: bold;
+				color: $subtitle;
+			}
+
+			.t-icon {
+				width: 30rpx;
+				height: 30rpx;
+			}
+		}
+
+		.table-btn {
+			width: 100%;
+			height: 50rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			margin-bottom: 40rpx;
+
+			.btn-text {
+				font-size: 26rpx;
+				font-weight: bold;
+				color: #616367;
+				margin-right: 10rpx;
+			}
+		}
+
+		.point-analyse {
+			margin: 0 20rpx 20rpx 20rpx;
+			border-radius: $border-radius;
+			display: flex;
+			flex-direction: column;
+			border-radius: $border-radius;
+			overflow: hidden;
+
+			.analyse-box1 {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background-color: #f9c752;
+				height: 80rpx;
+				width: 70%;
+				.point-box{
+					display: flex;
+					align-items: center;
+					width: 100%;
+					height: 100%;
+				}
+
+				.analyse-title {
+					line-height: 32rpx;
+					font-size: 32rpx;
+					font-weight: bold;
+					color: #FFF;
+				}
+
+				.point-title {
+					line-height: 30rpx;
+					font-size: 30rpx;
+					font-weight: bold;
+					color: #616367;
+				}
+			}
+
+			.analyse-box2 {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background-color: #f9edc6;
+				height: 80rpx;
+				width: 30%;
+				.circle{
+					height: 24rpx;
+					width: 24rpx;
+					border-radius: 50%;
+					margin-right: 10rpx;
+				}
+
+				.analyse-subtitle {
+					line-height: 32rpx;
+					font-size: 32rpx;
+					font-weight: bold;
+					color: $title;
+				}
+
+				.point-title {
+					line-height: 28rpx;
+					font-size: 28rpx;
+					font-weight: bold;
+					color: #616367;
+				}
+			}
+		}
+	}
 </style>

+ 54 - 20
subpkg/exam/examPractice.vue

@@ -1,24 +1,36 @@
 <template>
 	<view>
 		<top-return text="评测练习"></top-return>
-		<!-- 天数选择 -->
-<!-- 		<scroll-view class="week_view" scroll-x="true" :scroll-with-animation="true" scroll-left="0">
-			<view style="margin-top:20rpx;">
-				<view v-for="(item,index) in examPractice[index]" :key="index"
-					:class="isactive == index ? 'week_item_select' : 'week_item' " @click='chooseDay(index,item)'>
-					<view class="item_box">
-						<view class="_title">{{item.weekNum}}</view>
-						<view class="_day">{{item.dayNum}}</view>
-						<view class="tag-fill" v-if="isactive == index">
-							<view class="tag-text" v-if="isactive == index && currentClassList.length != 0">
-								{{currentClassList.length}} 节课
-							</view>
-							<view class="tag-text" v-if="isactive == index && currentClassList.length === 0">无课程</view>
-						</view>
-					</view>
+		<view class="view-box">
+			<view class="trade">
+				<view class="texts" :class="curr==0?'active':''" data-index="0" @tap="setCurr">
+					第一个页面
+				</view>
+				<view class="texts" :class="curr==1?'active':''" data-index="1" @tap="setCurr">
+					第二个页面
+				</view>
+				<view class="texts" :class="curr==2?'active':''" data-index="2" @tap="setCurr">
+					第三个页面
 				</view>
 			</view>
-		</scroll-view> -->
+			<swiper style="height: 80vh;" :current="curr" @change="setCurr">
+				<swiper-item>
+					<scroll-view>
+						aaa
+					</scroll-view>
+				</swiper-item>
+				<swiper-item>
+					<scroll-view>
+						bbb
+					</scroll-view>
+				</swiper-item>
+				<swiper-item>
+					<scroll-view>
+						ccc
+					</scroll-view>
+				</swiper-item>
+			</swiper>
+		</view>
 	</view>
 </template>
 
@@ -32,17 +44,39 @@
 		},
 		data() {
 			return {
-				index: ''
+				index: '',
+				curr: 0
 			}
 		},
 		onLoad(param) {
 			this.index = param.index
 		},
-		methods:{
-			
+		methods: {
+			setCurr(e) {
+				let thisCurr = e.detail.current || e.currentTarget.dataset.index || 0;
+				this.curr = thisCurr;
+			}
 		}
 	}
 </script>
 
-<style>
+<style lang="scss">
+	.view-box{
+		margin-top: 10vh;
+		.trade{
+			width: 100%;
+			color: $title;
+			overflow: auto;
+			height: 5vh;
+		}
+		.trade view{
+			text-align: center;
+			padding-left: 25upx;
+			width: 30%;
+			float: left;
+		}
+		.trade .texts.active{
+			border-bottom: 8upx solid $color-blue;
+		}
+	}
 </style>

+ 4 - 9
subpkg/exam/total.vue

@@ -200,15 +200,13 @@
 				this.totalSemAvg = totalSemAvg
 				let classSemAvg = parseInt((arrSum(this.examChartData.totalChartData[0].series[1].data) / this
 					.examChartData.totalChartData[0].series[1].data.length).toFixed(0))
-				console.log('班级平均总分', classSemAvg);
 				let gradeSemAvg = parseInt((arrSum(this.examChartData.totalChartData[0].series[2].data) / this
 					.examChartData.totalChartData[0].series[2].data.length).toFixed(0))
-				console.log('年级平均总分', gradeSemAvg);
 				if (totalSemAvg > classSemAvg && totalSemAvg > gradeSemAvg) {
 					this.analysisData[0].data = 'top'
-				} else if (totalSemAvg > classSemAvg && totalSemAvg >= gradeSemAvg) {
+				} else if (totalSemAvg > classSemAvg && totalSemAvg <= gradeSemAvg) {
 					this.analysisData[0].data = 'midClass'
-				} else if (totalSemAvg > gradeSemAvg && totalSemAvg >= classSemAvg) {
+				} else if (totalSemAvg > gradeSemAvg && totalSemAvg <= classSemAvg) {
 					this.analysisData[0].data = 'midGrade'
 				} else {
 					this.analysisData[0].data = 'btm'
@@ -223,21 +221,18 @@
 					return cont;
 				}
 				this.analysisData[1].title = this.subjectCurrent + '学期平均分'
-				console.log(this.examChartData.totalChartData[1]);
 				let singleSemAvg = parseInt((arrSum(this.examChartData.totalChartData[1].series[0].data) / this
 					.examChartData.totalChartData[1].series[0].data.length).toFixed(0))
 				this.singleSemAvg = singleSemAvg
 				let classSemSinAvg = parseInt((arrSum(this.examChartData.totalChartData[1].series[1].data) / this
 					.examChartData.totalChartData[1].series[1].data.length).toFixed(0))
-				console.log('班级平均单科总分', classSemSinAvg);
 				let gradeSemSinAvg = parseInt((arrSum(this.examChartData.totalChartData[1].series[2].data) / this
 					.examChartData.totalChartData[1].series[2].data.length).toFixed(0))
-				console.log('年级平均单科总分', gradeSemSinAvg);
 				if (singleSemAvg > classSemSinAvg && singleSemAvg > gradeSemSinAvg) {
 					this.analysisData[1].data = 'top'
-				} else if (singleSemAvg > classSemSinAvg && singleSemAvg >= gradeSemSinAvg) {
+				} else if (singleSemAvg > classSemSinAvg && singleSemAvg <= gradeSemSinAvg) {
 					this.analysisData[1].data = 'midClass'
-				} else if (singleSemAvg > gradeSemSinAvg && singleSemAvg >= classSemSinAvg) {
+				} else if (singleSemAvg > gradeSemSinAvg && singleSemAvg <= classSemSinAvg) {
 					this.analysisData[1].data = 'midGrade'
 				} else {
 					this.analysisData[1].data = 'btm'

+ 18 - 18
subpkg/mine/childinfo.vue

@@ -1,34 +1,32 @@
 <template>
-	<view class="page-view">
+	<view class="page-view" style="width: 100vw;height: 100vh;">
 		<top-return text="孩子名片" color="#FFF"></top-return>
 		<view class="detail-image"
 			:style="{backgroundImage:`linear-gradient(to top, #f3f4f9, rgba(255, 255, 255, 0) 60%),url(${image})`}"></view>
 		<!-- 孩子头部信息 -->
 		<view class="top-info">
-			<image class="top-avatar" v-if="childInfo.avatar === '默认'"
-				:src="childInfo.gender==='男'?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'">
-			</image>
-			<image class="top-avatar" v-if="childInfo.avatar != '默认'" :src="childInfo.avatar"></image>
+			<image class="avatar" :src="childInfo.gender==='M'?'/static/default_icons/boy_avatar.svg':childInfo.gender===null?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'"></image>
 			<view class="top-name">
 				<view class="flex-baseline">
 					<text class="name">{{childInfo.name}}</text>
 					<view class="tag-fill"
 						style="margin-left: 30rpx;">
 						<view class="t-icon t-icon-xueshengziliao"></view>
-						<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.gender}}</view>
+						<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.gender===null?'性别保密':childInfo.gender==='M'?'男孩':'女孩'}}</view>
+					</view>
+				</view>
+				<view class="flex-row">
+					<view class="tag-fill">
+						<view class="t-icon t-icon-xuewei1"></view>
+						<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.periodName}}学段</view>
 					</view>
 					<view class="tag-fill"
 						style="margin-left: 10rpx;">
 						<view class="t-icon t-icon-nongyekeji2">
 						</view>
-						<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.age}}岁</view>
+						<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.stuYear}}入学</view>
 					</view>
 				</view>
-				<view class="tag-fill">
-					<view class="t-icon t-icon-xuewei1"></view>
-					<view class="tag-text" style="color: #4169E1;font-size: 28rpx;">{{childInfo.tmdid}} 绑定学号</view>
-				</view>
-
 			</view>
 		</view>
 		<!-- 卡片信息 -->
@@ -37,21 +35,21 @@
 				<view class="t-icon t-icon-biaoqian"></view>
 				<view class="flex-column">
 					<view class="subtitle">就读学校</view>
-					<view class="title" style="margin-top: 10rpx;">{{childInfo.school}}</view>
+					<view class="title" style="margin-top: 10rpx;">{{childInfo.schoolName}}</view>
 				</view>
 			</view>
 			<view class="flex-row" style="margin-top: 50rpx;">
 				<view class="t-icon t-icon-fenlei1"></view>
 				<view class="flex-column">
 					<view class="subtitle">所在班级</view>
-					<view class="title">{{childInfo.class}}</view>
+					<view class="title">{{childInfo.className}}</view>
 				</view>
 			</view>
 			<view class="flex-row" style="margin-top: 50rpx;">
 				<view class="t-icon t-icon-jiaoyu"></view>
 				<view class="flex-column">
-					<view class="subtitle">当前学期</view>
-					<view class="title">{{childInfo.semester}}</view>
+					<view class="subtitle">主任老师</view>
+					<view class="title">{{childInfo.teacherName}}</view>
 				</view>
 			</view>
 
@@ -121,7 +119,7 @@
 		align-items: center;
 		margin-top: 180rpx;
 
-		.top-avatar {
+		.avatar {
 			margin-left: 50rpx;
 			width: 140rpx;
 			height: 140rpx;
@@ -156,12 +154,14 @@
 	.main-card {
 		display: flex;
 		flex-direction: column;
-		padding: 80rpx;
+		padding: 80rpx 80rpx 0 80rpx;
 		position: relative;
 		background-color: #FFF;
+		height: 100%;
 		top: 80rpx;
 		left: 50rpx;
 		border-radius: 50rpx;
+		border-bottom-left-radius: 0;
 		z-index: 55;
 
 		.title {

+ 8 - 9
subpkg/mine/parentinfo.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="page-view">
+	<view class="page-view" style="width: 100vw;height: 100vh;">
 		<top-return text="个人信息" color="#FFF"></top-return>
 		<view class="detail-image"
 			:style="{backgroundImage:`linear-gradient(to top, #f3f4f9, rgba(255, 255, 255, 0) 60%),url(${image})`}">
@@ -48,20 +48,17 @@
 
 			<view class="card-box">
 				<view class="card" v-for="(item,index) in childrenData" :key="index" @click="navChildInfo(index)">
-					<image class="avatar" v-if="item.avatar === '默认'"
-						:src="item.gender==='男'?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'">
-					</image>
-					<image class="avatar" v-if="item.avatar != '默认'" :src="item.avatar"></image>
+					<image class="avatar" :src="item.gender==='M'?'/static/default_icons/boy_avatar.svg':item.gender===null?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'"></image>
 					<view class="card-info">
 						<view class="flex-baseline">
 							<view class="YS-title">{{item.name}}</view>
-							<view class="card-title">{{item.tmdid}}</view>
+							<view class="card-title">{{item.periodName}}学段</view>
 						</view>
 						<view class="flex-row">
 							<view class="t-icon t-icon-xuewei1"></view>
-							<view class="card-subtitle">{{item.school}}</view>
+							<view class="card-subtitle">{{item.schoolName}}</view>
 							<view class="t-icon t-icon-zhengceguizhang2" style="margin-left: 20rpx;"></view>
-							<view class="card-subtitle">{{item.class}}</view>
+							<view class="card-subtitle">{{item.className}}</view>
 						</view>
 					</view>
 				</view>
@@ -149,12 +146,14 @@
 	.main-card {
 		display: flex;
 		flex-direction: column;
-		padding: 80rpx;
+		padding: 80rpx 80rpx 0 80rpx;
 		position: relative;
 		background-color: #FFF;
+		height: 100%;
 		top: 80rpx;
 		left: 50rpx;
 		border-radius: 50rpx;
+		border-bottom-left-radius: 0;
 		z-index: 55;
 
 		.title {

+ 31 - 5
subpkg/startup/guide.vue

@@ -14,7 +14,8 @@
 
 <script>
 	import {
-		mapState
+		mapState,
+		mapMutations
 	} from 'vuex'
 	//引入解密工具
 	import WXBizDataCrypt from "@/utils/WXBizDataCrypt.js";
@@ -29,9 +30,10 @@
 			}
 		},
 		methods: {
+			...mapMutations('m_parent', ['updateChildrenData', 'updateUserData', 'updatePhoneNumber']),
 			//获取用户手机号
 			async getPhoneNumber(e) {
-				if(this.isClick === false){
+				if (this.isClick === false) {
 					this.isClick = true
 					if (e.detail.errMsg !== "getPhoneNumber:ok") {
 						return uni.showToast({
@@ -41,11 +43,35 @@
 					} else {
 						try {
 							if (this.token) {
-								let proof = await new WXBizDataCrypt('wx5705da8747c77cfe', this.token.session_key)
+								let proof = await new WXBizDataCrypt('wx5705da8747c77cfe',
+									this.token.miniappData.session_key)
 								let numData = await proof.decryptData(e.detail.encryptedData, e.detail.iv)
-								this.$store.commit('m_parent/updatePhoneNumber', numData.phoneNumber);
+								this.updatePhoneNumber(numData.phoneNumber)
+								console.log(numData.phoneNumber);
 								//初始化App
-								await this.$initStart(numData.phoneNumber)
+								// await this.$initStart(numData.phoneNumber)
+								this.$api.getChildrenInfo({
+									mobile: '17711533106'
+								}).then(res => {
+									console.log('返回数据', res);
+									this.updateChildrenData(res.data.guardian.students)
+								}).catch(err => {
+									uni.showToast({
+										title: '加载数据失败~',
+										icon: 'error',
+									})
+								})
+								this.$api.getUserData({
+									phoneNumber: numData.phoneNumber
+								}).then(res => {
+									console.log('返回数据', res);
+									this.updateUserData(res.data)
+								}).catch(err => {
+									uni.showToast({
+										title: '加载数据失败~',
+										icon: 'error',
+									})
+								})
 								uni.navigateTo({
 									url: '/subpkg/startup/options'
 								})

+ 21 - 50
subpkg/startup/login.vue

@@ -22,9 +22,6 @@
 		mapMutations
 	} from 'vuex';
 	export default {
-		onShow() {
-			this.getCode()
-		},
 		data() {
 			return {
 				query: '',
@@ -34,56 +31,31 @@
 		},
 		methods: {
 			...mapMutations('m_parent', ['updateParentInfo', 'updateToken']),
-
-			//换取code方法
-			async getCode() {
-				//调用login()拿到code用于换取token
-				let [err, res] = await uni.login().catch(err => err)
-				//判断调用是否成功
-				if (err || res.errMsg !== 'login:ok') return uni.showToast({
-					title: '登录失败',
-					icon: 'error'
-				});
-				//准备换取token参数
-				this.query = {
-					js_code: res.code
-				}
-			},
-			//调用登录接口换取token
-			async getToken() {
-				await uni.request({
-					url: 'https://test.teammodel.cn/aclassone/get-miniapp-userinfo',
-					data: this.query,
-					method: 'POST',
-					success: (res) => {
-						if (res.statusCode !== 200)
-							return uni.showToast({
-								title: '登录失败',
-								icon: 'error'
-							});
-						console.log(res.data.miniappData);
-						//更新vuex中Token
-						this.updateToken(res.data.miniappData)
-					},
-				})
-			},
 			//获取用户信息事件
 			async getUserInfo() {
 				await uni.getUserProfile({
 					desc: '获取您的基本信息',
-					success: res => {
-						if (res.errMsg === 'getUserProfile:ok') {
-							this.getToken()
-							this.updateParentInfo(res.userInfo)
-							uni.redirectTo({
-								url: '/subpkg/startup/guide'
-							})
-						} else {
-							uni.showToast({
-								title: '获取信息失败',
-								icon: 'error'
-							});
-						}
+					success: infoRes => {
+						uni.login({
+							success: loginRes => {
+								this.$api.getUserToken({
+									js_code: loginRes.code
+								}).then(res => {
+									console.log(res);
+									this.updateToken(res.data)
+									// uni.setStorageSync('tokenKey',res.data.token)
+								}).catch(err => {
+									uni.showToast({
+										title: '加载数据失败~',
+										icon: 'none',
+									})
+								})
+							}
+						})
+						this.updateParentInfo(infoRes.userInfo)
+						uni.redirectTo({
+							url: '/subpkg/startup/guide'
+						})
 					},
 					fail: err => {
 						uni.showToast({
@@ -93,7 +65,6 @@
 					}
 				});
 			},
-
 		}
 	}
 </script>

+ 1 - 2
subpkg/startup/options.vue

@@ -13,8 +13,7 @@
 					<view class="card-title">{{item.name}}</view>
 				</view>
 				<view class="avatar-box">
-						<image class="avatar" v-if="item.avatar === '默认'" :src="item.gender==='男'?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'"></image>
-						<image class="avatar" v-if="item.avatar != '默认'" :src="item.avatar"></image>
+						<image class="avatar" :src="item.gender==='M'?'/static/default_icons/boy_avatar.svg':item.gender===null?'/static/default_icons/boy_avatar.svg':'/static/default_icons/girl_avatar.svg'"></image>
 				</view>
 			</view>
 		</view>

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

@@ -88,13 +88,13 @@ const formatDateTime = (timeStamp, returnType) => {
 const cfu = {
 	//demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可
 	"type": ["pie", "ring", "rose", "arcbar", "line", "column", "area", "radar", "mainline", "mini-line",
-		"mini-area", "mini-column", "mini-rose", "mount"
+		"mini-area", "mini-column", "mini-rose", "mount", "bar"
 	],
 	"range": [],
 	//增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的"demotype"
 	//自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories
 	"categories": ["line", "column", "bar", "area", "radar", "mainline", "mini-line", "mini-area", "mini-column",
-		"mount"
+		"mount", "bar"
 	],
 	//instance为实例变量承载属性,不要删除
 	"instance": {},
@@ -136,6 +136,9 @@ const cfu = {
 		"meritsRadar": function(item, category, index, opts) {
 			return category + ' ' + item.name + ' ' + item.data + ' % '
 		},
+		"xAxisBar": function(val, index, opts) {
+			return parseInt(val).toFixed(0) + '%'
+		},
 	},
 	//这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。
 	//下面是自定义配置,请添加项目所需的通用配置
@@ -598,6 +601,75 @@ const cfu = {
 				"splitLine": false,
 			},
 		}
+	},
+	"bar": {
+		"type": "bar",
+		"timing": "easeOut",
+		"duration": 1000,
+		"rotate": false,
+		"rotateLock": false,
+		"color": color,
+		"padding": [0, 30, 20, 10],
+		"fontSize": 13,
+		"fontColor": "#666666",
+		"dataLabel": false,
+		"dataPointShape": true,
+		"dataPointShapeType": "solid",
+		"touchMoveLimit": 60,
+		"enableScroll": false,
+		"enableMarkLine": false,
+		"xAxis": {
+			"boundaryGap": "justify",
+			"disableGrid": false,
+			"min": 0,
+			"max": 100,
+			"axisLine": false,
+			"disabled": false,
+			"axisLineColor": "#CCCCCC",
+			"calibration": false,
+			"fontColor": "#666666",
+			"fontSize": 13,
+			"rotateLabel": false,
+			"rotateAngle": 45,
+			"itemCount": 5,
+			"splitNumber": 5,
+			"gridColor": "#CCCCCC",
+			"gridType": "dash",
+			"dashLength": 10,
+			"gridEval": 1,
+			"scrollShow": false,
+			"scrollAlign": "left",
+			"scrollColor": "#A6A6A6",
+			"scrollBackgroundColor": "#EFEBEF",
+			"format": ""
+		},
+		"yAxis": {
+			"disabled": false,
+			"disableGrid": false,
+			"splitNumber": 5,
+			"gridType": "solid",
+			"dashLength": 8,
+			"gridColor": "#CCCCCC",
+			"padding": 10,
+			"showTitle": false,
+			"data": []
+		},
+		"extra": {
+			"bar": {
+				"type": "group",
+				"width": 30,
+				"meterBorde": 1,
+				"activeBgOpacity": 0.08,
+				"seriesGap": 2,
+				"categoryGap": 3,
+				"barBorderCircle": false,
+				"barBorderRadius": [6, 6, 6, 6],
+				"linearType": "none",
+				"linearOpacity": 1,
+				"colorStop": 0
+			},
+			"tooltip": tooltip,
+		}
 	}
 }
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/top-info/top-info.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/top-semester/top-semester.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_home/tab_home.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_mine/tab_mine.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_swap/tab_swap.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/tab_work/tab_work.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/datalist/examReport.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/datalist/workReport.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/exam/examPractice.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/exam/total.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/mine/childinfo.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/mine/parentinfo.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/guide.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/login.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/subpkg/startup/options.js.map


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/common/main.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 24 - 3
unpackage/dist/dev/mp-weixin/common/main.wxss


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 3
unpackage/dist/dev/mp-weixin/common/vendor.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/loading/loading.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/top-info/top-info.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/components/top-info/top-info.wxml


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/top-return/top-return.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.wxml


+ 1 - 1
unpackage/dist/dev/mp-weixin/components/top-semester/top-semester.wxss

@@ -16,7 +16,7 @@
   font-family: YSfont;
   color: #FFF;
   z-index: 2;
-  margin-left: 20rpx;
+  margin-left: 10rpx;
   text-shadow: 1px -1px 0px #c0c0c0, 2px -2px 0px #b0b0b0, 1px -1px 0px #a0a0a0, 2px -2px 0px #909090;
 }
 .tag {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/z-calendar/dateBox.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
unpackage/dist/dev/mp-weixin/components/z-calendar/zsy-calendar.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/init/init.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_exam/tab_exam.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_exam/tab_exam.wxss

@@ -121,7 +121,7 @@
 }
 .scroll-view-bottom {
   white-space: nowrap;
-  height: 370rpx;
+  padding-bottom: 40rpx;
 }
 .scroll-view-bottom .scroll-item {
   margin: 0 20rpx;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_home/tab_home.js


+ 14 - 15
unpackage/dist/dev/mp-weixin/pages/tab_home/tab_home.wxss

@@ -121,7 +121,7 @@
 }
 .scroll-view-bottom {
   white-space: nowrap;
-  height: 370rpx;
+  padding-bottom: 40rpx;
 }
 .scroll-view-bottom .scroll-item {
   margin: 0 20rpx;
@@ -270,6 +270,10 @@
   -webkit-transform: skew(-10deg);
           transform: skew(-10deg);
 }
+.scroll-view-bottom {
+  white-space: nowrap;
+  padding-bottom: 20rpx;
+}
 .clock-image {
   margin-top: -160rpx;
   margin-left: 20rpx;
@@ -280,18 +284,13 @@
   opacity: 0.25;
   z-index: 1;
 }
-.scroll-view-bottom {
-  white-space: nowrap;
-  height: 630rpx;
-}
-.scroll-view-bottom .box-container {
+.box-container {
   margin: 0 20rpx;
   display: inline-block;
   vertical-align: top;
-  height: 600rpx;
   width: 84%;
 }
-.scroll-view-bottom .box-container .clounm-container {
+.box-container .clounm-container {
   height: 180rpx;
   width: 100%;
   margin-bottom: 20rpx;
@@ -299,12 +298,12 @@
   background-color: #FFF;
   overflow: hidden;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box {
+.box-container .clounm-container .item-box {
   display: flex;
   width: 100%;
   height: 100%;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .thumb {
+.box-container .clounm-container .item-box .thumb {
   width: 180rpx;
   height: 180rpx;
   border-radius: 12rpx;
@@ -312,27 +311,27 @@
   background-repeat: no-repeat;
   z-index: 50;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .info-box {
+.box-container .clounm-container .item-box .info-box {
   display: flex;
   flex-direction: column;
   margin: 20rpx 20rpx 20rpx 30rpx;
   justify-content: space-between;
   width: 400rpx;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .info-box .tag-fill {
+.box-container .clounm-container .item-box .info-box .tag-fill {
   background-color: #d8deff;
   width: -webkit-fit-content;
   width: fit-content;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .info-box .tag-fill .t-icon {
+.box-container .clounm-container .item-box .info-box .tag-fill .t-icon {
   width: 30rpx;
   height: 30rpx;
   margin-right: 5rpx;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .info-box .tag-fill .tag-text {
+.box-container .clounm-container .item-box .info-box .tag-fill .tag-text {
   color: #4169E1;
 }
-.scroll-view-bottom .box-container .clounm-container .item-box .info-box .desc {
+.box-container .clounm-container .item-box .info-box .desc {
   line-height: 26rpx;
   font-size: 26rpx;
   color: #909399;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.wxml


+ 14 - 0
unpackage/dist/dev/mp-weixin/pages/tab_mine/tab_mine.wxss

@@ -54,6 +54,20 @@
   height: 120rpx;
   justify-content: space-around;
 }
+.content .info-box .flex-column .info-title {
+  font-size: 55rpx;
+  line-height: 55rpx;
+  color: #303133;
+  font-family: YSfont;
+  z-index: 99;
+}
+.content .info-box .flex-column .info-subtitle {
+  font-size: 40rpx;
+  line-height: 40rpx;
+  color: #909399;
+  font-family: YSfont;
+  z-index: 99;
+}
 .content .com-box {
   overflow: hidden;
   border-radius: 12rpx;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.wxml


+ 31 - 1
unpackage/dist/dev/mp-weixin/pages/tab_swap/tab_swap.wxss

@@ -121,7 +121,7 @@
 }
 .scroll-view-bottom {
   white-space: nowrap;
-  height: 370rpx;
+  padding-bottom: 40rpx;
 }
 .scroll-view-bottom .scroll-item {
   margin: 0 20rpx;
@@ -219,4 +219,34 @@
 .circle-line3 {
   background-image: linear-gradient(to right, #FF6D31, #FF6D31), linear-gradient(0deg, #FFF -50%, rgba(255, 255, 255, 0));
 }
+.scroll-item {
+  height: 120rpx !important;
+  width: 260rpx !important;
+}
+.scroll-item .icon-box {
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  padding: 0 20rpx;
+  height: 120rpx;
+  width: 220rpx;
+  border-radius: 12rpx;
+  background-image: linear-gradient(to right, #FF6D31, rgba(255, 109, 49, 0.5));
+}
+.scroll-item .icon-box .t-icon {
+  width: 55rpx;
+  height: 55rpx;
+}
+.scroll-item .icon-box .icon-box-title {
+  line-height: 40rpx;
+  font-size: 40rpx;
+  color: #FFF;
+  font-family: YSfont;
+}
+.scroll-item .icon-box .icon-box-subtitle {
+  line-height: 30rpx;
+  font-size: 30rpx;
+  color: #FFF;
+  font-family: YSfont;
+}
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/tab_work/tab_work.js


+ 3 - 4
unpackage/dist/dev/mp-weixin/pages/tab_work/tab_work.wxss

@@ -121,7 +121,7 @@
 }
 .scroll-view-bottom {
   white-space: nowrap;
-  height: 370rpx;
+  padding-bottom: 40rpx;
 }
 .scroll-view-bottom .scroll-item {
   margin: 0 20rpx;
@@ -223,11 +223,10 @@
   background-image: linear-gradient(to right, #f9c752, #f9c752), linear-gradient(0deg, #FFF -50%, rgba(255, 255, 255, 0));
 }
 .scroll-view-bottom {
-  white-space: nowrap;
-  height: 350rpx;
+  margin-top: -10rpx;
 }
 .scroll-view-bottom .scroll-item {
-  margin: 4rpx 20rpx 0 20rpx;
+  margin: 10rpx 20rpx 0 20rpx;
   display: inline-block;
   vertical-align: top;
   background-color: #FFF;

+ 7 - 0
unpackage/dist/dev/mp-weixin/project.private.config.json

@@ -49,6 +49,13 @@
           "query": "index=0",
           "launchMode": "default",
           "scene": null
+        },
+        {
+          "name": "",
+          "pathName": "subpkg/datalist/workReport",
+          "query": "index=0",
+          "launchMode": "default",
+          "scene": null
         }
       ]
     }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 31 - 3
unpackage/dist/dev/mp-weixin/static/iconfont/iconfont-weapp-icon.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.wxml


+ 91 - 11
unpackage/dist/dev/mp-weixin/subpkg/datalist/examReport.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }
@@ -113,7 +115,7 @@
 .bg1 {
   position: fixed;
   width: 100%;
-  height: 800rpx;
+  height: 1200rpx;
   background-size: 100%;
   background-repeat: no-repeat;
   background-image: linear-gradient(to top, #f3f4f9, #ff8caf);
@@ -121,7 +123,7 @@
 .detail-image1 {
   position: absolute;
   top: 150rpx;
-  left: 580rpx;
+  left: 560rpx;
   width: 300rpx;
   height: 350rpx;
   background-size: 100%;
@@ -154,14 +156,17 @@
   height: 100%;
   justify-content: space-around;
 }
-.card-item .card-box .flex-column .title {
+.card-item .card-box .flex-column .total-card-title {
+  line-height: 45rpx;
+  font-size: 45rpx;
   color: #FFF;
-  font-size: 38rpx;
-  font-weight: 400;
+  font-family: YSfont;
 }
-.card-item .card-box .flex-column .YS-title {
-  font-size: 80rpx;
+.card-item .card-box .flex-column .total-card-data {
   color: #FFF;
+  font-size: 85rpx;
+  line-height: 45rpx;
+  font-family: YSfont;
 }
 .card-item .card-box .card-image {
   position: relative;
@@ -226,6 +231,12 @@
   font-size: 30rpx;
   color: #303133;
 }
+.card-item .table-container .data {
+  line-height: 32rpx;
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #303133;
+}
 .card-item .msg-box {
   margin: 0 20rpx 40rpx 20rpx;
   padding: 20rpx;
@@ -235,9 +246,10 @@
   background-color: #f3f4f9;
 }
 .card-item .msg-box .title {
+  height: 32rpx;
+  line-height: 32rpx;
   color: #ff8caf;
   margin: 0 6rpx;
-  line-height: 30rpx;
 }
 .card-item .chart-box {
   height: 650rpx;
@@ -290,8 +302,76 @@
   font-weight: 400;
   color: #303133;
 }
-.card-item .distribution-box .sutdent-data .data-item .YS-title {
+.card-item .distribution-box .sutdent-data .data-item .data {
   line-height: 70rpx;
-  font-size: 36rpx;
+  font-size: 35rpx;
+  font-weight: bold;
+  color: #ff8caf;
+}
+.card-item .distribution-box .sutdent-data .data-item .unit {
+  margin-left: 4rpx;
+  line-height: 26rpx;
+  font-size: 26rpx;
+  font-weight: bold;
+  color: #909399;
+}
+.card-item .cutting-line {
+  margin: 0 50rpx 20rpx 50rpx;
+  height: 1px;
+  background-color: #e6e7eb;
+}
+.card-item .analysis-box {
+  display: flex;
+  flex-direction: column;
+  margin: 10rpx 30rpx;
+}
+.card-item .analysis-box .title {
+  margin: 0 10rpx;
+  line-height: 35rpx;
+  font-size: 35rpx;
+  color: #ff8caf;
+}
+.card-item .analysis-box .subtitle {
+  line-height: 30rpx;
+  font-size: 30rpx;
+  font-weight: 400;
+  color: #303133;
+}
+.card-item .btn {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 80rpx;
+  margin: 0 30rpx 30rpx 30rpx;
+  background-color: #ff8caf;
+  border-radius: 12rpx;
+  box-shadow: 0 10rpx 20rpx rgba(0, 0, 0, 0.1);
+}
+.card-item .btn .btn-text {
+  line-height: 38rpx;
+  font-size: 38rpx;
+  color: #FFF;
+  font-family: YSfont;
+}
+.card-item .btn-box {
+  display: flex;
+  justify-content: space-between;
+  margin: 10rpx 30rpx 30rpx 30rpx;
+}
+.card-item .btn-box .subbtn {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 80rpx;
+  width: 46%;
+  border: 4rpx solid #ff8caf;
+  border-radius: 12rpx;
+  box-shadow: 0 10rpx 20rpx rgba(0, 0, 0, 0.1);
+}
+.card-item .btn-box .subbtn .subbtn-text {
+  line-height: 38rpx;
+  font-size: 38rpx;
+  color: #ff8caf;
+  font-family: YSfont;
 }
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/examlist.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/examlist.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/swapReport.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/swapReport.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/swaplist.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/swaplist.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.js


+ 8 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.json

@@ -2,6 +2,13 @@
   "enablePullDownRefresh": false,
   "navigationStyle": "custom",
   "usingComponents": {
-    "top-return": "/components/top-return/top-return"
+    "top-return": "/components/top-return/top-return",
+    "uni-table": "/uni_modules/uni-table/components/uni-table/uni-table",
+    "uni-tr": "/uni_modules/uni-table/components/uni-tr/uni-tr",
+    "uni-th": "/uni_modules/uni-table/components/uni-th/uni-th",
+    "uni-td": "/uni_modules/uni-table/components/uni-td/uni-td",
+    "u-icon": "/uni_modules/uview-ui/components/u-icon/u-icon",
+    "u-subsection": "/uni_modules/uview-ui/components/u-subsection/u-subsection",
+    "qiun-data-charts": "/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts"
   }
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.wxml


+ 141 - 12
unpackage/dist/dev/mp-weixin/subpkg/datalist/workReport.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }
@@ -110,21 +112,17 @@
   opacity: 0.8;
   margin-left: 20rpx;
 }
-.page-view {
-  background-color: #f9c752;
-}
 .bg1 {
-  position: absolute;
-  top: 200rpx;
-  left: 450rpx;
-  width: 430rpx;
-  height: 430rpx;
-  border-radius: 50%;
-  background-color: #f9da7a;
+  position: fixed;
+  width: 100%;
+  height: 1200rpx;
+  background-size: 100%;
+  background-repeat: no-repeat;
+  background-image: linear-gradient(to top, #f3f4f9, #f9c752);
 }
 .detail-image {
   position: absolute;
-  top: 170rpx;
+  top: 140rpx;
   left: 430rpx;
   width: 330rpx;
   height: 360rpx;
@@ -132,4 +130,135 @@
   background-repeat: no-repeat;
   z-index: 50;
 }
+.card-item {
+  width: 100%;
+}
+.card-item .title-box {
+  display: flex;
+  align-items: center;
+  padding: 20rpx 0;
+}
+.card-item .title-box .title-tag {
+  margin-left: -10rpx;
+  margin-right: 20rpx;
+  height: 100%;
+  width: 20rpx;
+  border-radius: 100rpx;
+  background-color: #f9c752;
+  z-index: 99;
+}
+.card-item .title-box .title {
+  font-size: 35rpx;
+  line-height: 50rpx;
+}
+.card-item .title-box .subsection {
+  width: 300rpx;
+  height: 100%;
+  margin: 0 30rpx 0 auto;
+}
+.card-item .title-box .subsection .u-subsection--button__bar {
+  background-color: #f9c752 !important;
+}
+.card-item .table-container {
+  margin-bottom: 20rpx;
+}
+.card-item .table-container .uni-table-td {
+  padding: 26rpx 10rpx !important;
+}
+.card-item .table-container .table-box {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-right: -22rpx;
+}
+.card-item .table-container .data {
+  line-height: 28rpx;
+  font-size: 28rpx;
+  font-weight: bold;
+  color: #303133;
+}
+.card-item .table-container .subtitle {
+  line-height: 24rpx;
+  font-size: 24rpx;
+  font-weight: bold;
+  color: #909399;
+}
+.card-item .table-container .t-icon {
+  width: 30rpx;
+  height: 30rpx;
+}
+.card-item .table-btn {
+  width: 100%;
+  height: 50rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-bottom: 40rpx;
+}
+.card-item .table-btn .btn-text {
+  font-size: 26rpx;
+  font-weight: bold;
+  color: #616367;
+  margin-right: 10rpx;
+}
+.card-item .point-analyse {
+  margin: 0 20rpx 20rpx 20rpx;
+  border-radius: 12rpx;
+  display: flex;
+  flex-direction: column;
+  border-radius: 12rpx;
+  overflow: hidden;
+}
+.card-item .point-analyse .analyse-box1 {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: #f9c752;
+  height: 80rpx;
+  width: 70%;
+}
+.card-item .point-analyse .analyse-box1 .point-box {
+  display: flex;
+  align-items: center;
+  width: 100%;
+  height: 100%;
+}
+.card-item .point-analyse .analyse-box1 .analyse-title {
+  line-height: 32rpx;
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #FFF;
+}
+.card-item .point-analyse .analyse-box1 .point-title {
+  line-height: 30rpx;
+  font-size: 30rpx;
+  font-weight: bold;
+  color: #616367;
+}
+.card-item .point-analyse .analyse-box2 {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: #f9edc6;
+  height: 80rpx;
+  width: 30%;
+}
+.card-item .point-analyse .analyse-box2 .circle {
+  height: 24rpx;
+  width: 24rpx;
+  border-radius: 50%;
+  margin-right: 10rpx;
+}
+.card-item .point-analyse .analyse-box2 .analyse-subtitle {
+  line-height: 32rpx;
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #303133;
+}
+.card-item .point-analyse .analyse-box2 .point-title {
+  line-height: 28rpx;
+  font-size: 28rpx;
+  font-weight: bold;
+  color: #616367;
+}
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/worklist.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/subpkg/datalist/worklist.wxss

@@ -61,6 +61,7 @@
 }
 .report-title {
   font-size: 75rpx;
+  line-height: 75rpx;
   font-family: YSfont;
   color: #FFF;
   z-index: 99;
@@ -68,7 +69,8 @@
 .report-subtitle {
   font-size: 40rpx;
   font-family: YSfont;
-  margin-top: 30rpx;
+  margin-top: 40rpx;
+  margin-bottom: 20rpx;
   color: #FFF;
   z-index: 99;
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.wxml


+ 19 - 0
unpackage/dist/dev/mp-weixin/subpkg/exam/examPractice.wxss

@@ -0,0 +1,19 @@
+.view-box {
+  margin-top: 10vh;
+}
+.view-box .trade {
+  width: 100%;
+  color: #303133;
+  overflow: auto;
+  height: 5vh;
+}
+.view-box .trade view {
+  text-align: center;
+  padding-left: 25rpx;
+  width: 30%;
+  float: left;
+}
+.view-box .trade .texts.active {
+  border-bottom: 8rpx solid #4169E1;
+}
+

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/level.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/rank.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/single.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/subject.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/exam/total.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/home/classlist.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/home/clockstats.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/home/courseRecommend.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.js


+ 1 - 0
unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.json

@@ -1,6 +1,7 @@
 {
   "enablePullDownRefresh": true,
   "navigationStyle": "custom",
+  "disableScroll": true,
   "usingComponents": {
     "top-return": "/components/top-return/top-return",
     "u-avatar-group": "/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group"

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.wxml


+ 4 - 2
unpackage/dist/dev/mp-weixin/subpkg/mine/childinfo.wxss

@@ -12,7 +12,7 @@
   align-items: center;
   margin-top: 180rpx;
 }
-.top-info .top-avatar {
+.top-info .avatar {
   margin-left: 50rpx;
   width: 140rpx;
   height: 140rpx;
@@ -43,12 +43,14 @@
 .main-card {
   display: flex;
   flex-direction: column;
-  padding: 80rpx;
+  padding: 80rpx 80rpx 0 80rpx;
   position: relative;
   background-color: #FFF;
+  height: 100%;
   top: 80rpx;
   left: 50rpx;
   border-radius: 50rpx;
+  border-bottom-left-radius: 0;
   z-index: 55;
 }
 .main-card .title {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/dist/dev/mp-weixin/subpkg/mine/msgList.js


+ 0 - 0
unpackage/dist/dev/mp-weixin/subpkg/mine/parentinfo.js


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů