zzp vor 2 Jahren
Ursprung
Commit
33debd8667
100 geänderte Dateien mit 1895 neuen und 854 gelöschten Zeilen
  1. 10 5
      .hbuilderx/launch.json
  2. 21 5
      config/api.js
  3. 11 1
      pages.json
  4. 6 5
      pages/index/index.vue
  5. 36 4
      pages/news/index.vue
  6. 61 2
      pagesClass/addClassForm.vue
  7. 293 7
      pagesClass/classDetail.vue
  8. 1 1
      pagesClass/classList.vue
  9. 279 0
      pagesClass/updateClassForm.vue
  10. 97 0
      pagesMain/coachReply.vue
  11. 1 1
      pagesMain/communicateForm.vue
  12. 21 3
      pagesMain/evaluateDetail.vue
  13. 1 1
      pagesMain/ratioRank.vue
  14. 7 2
      pagesMain/renewList.vue
  15. 4 2
      pagesMain/signList.vue
  16. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  17. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/news/index.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/index.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/addClassForm.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/classDetail.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/classList.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/courseForm.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/extraLessonsForm.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/extraLessonsStudentList.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/signForm.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/signStudentList.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/timetable.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/updateClassForm.js.map
  33. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/vtCardInfo.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/coachReply.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/communicateForm.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/evaluateDetail.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/evaluateList.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/extraLessonsList.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/leaveLessonsList.js.map
  40. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/ratioRank.js.map
  41. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/renewList.js.map
  42. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/signList.js.map
  43. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/studentInfo.js.map
  44. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-action-sheet/u-action-sheet.js.map
  45. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-avatar/u-avatar.js.map
  46. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-button/u-button.js.map
  47. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-calendar/u-calendar.js.map
  48. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-card/u-card.js.map
  49. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.js.map
  50. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.js.map
  51. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map
  52. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js.map
  53. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-divider/u-divider.js.map
  54. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-form-item/u-form-item.js.map
  55. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-form/u-form.js.map
  56. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-grid-item/u-grid-item.js.map
  57. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-grid/u-grid.js.map
  58. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-icon/u-icon.js.map
  59. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-image/u-image.js.map
  60. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-input/u-input.js.map
  61. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-line-progress/u-line-progress.js.map
  62. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-mask/u-mask.js.map
  63. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-navbar/u-navbar.js.map
  64. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-picker/u-picker.js.map
  65. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-popup/u-popup.js.map
  66. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-radio-group/u-radio-group.js.map
  67. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-radio/u-radio.js.map
  68. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-rate/u-rate.js.map
  69. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-search/u-search.js.map
  70. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-subsection/u-subsection.js.map
  71. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swipe-action/u-swipe-action.js.map
  72. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabs-swiper/u-tabs-swiper.js.map
  73. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-top-tips/u-top-tips.js.map
  74. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-upload/u-upload.js.map
  75. 3 2
      unpackage/dist/dev/mp-weixin/app.json
  76. 32 32
      unpackage/dist/dev/mp-weixin/common/main.js
  77. 36 185
      unpackage/dist/dev/mp-weixin/common/main.wxss
  78. 1 1
      unpackage/dist/dev/mp-weixin/common/runtime.js
  79. 0 0
      unpackage/dist/dev/mp-weixin/common/vendor.js
  80. 59 61
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  81. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  82. 4 16
      unpackage/dist/dev/mp-weixin/pages/index/index.wxss
  83. 55 56
      unpackage/dist/dev/mp-weixin/pages/login/index.js
  84. 94 66
      unpackage/dist/dev/mp-weixin/pages/news/index.js
  85. 2 0
      unpackage/dist/dev/mp-weixin/pages/news/index.json
  86. 0 0
      unpackage/dist/dev/mp-weixin/pages/news/index.wxml
  87. 6 0
      unpackage/dist/dev/mp-weixin/pages/news/index.wxss
  88. 51 52
      unpackage/dist/dev/mp-weixin/pages/user/index.js
  89. 5 21
      unpackage/dist/dev/mp-weixin/pages/user/index.wxss
  90. 140 73
      unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.js
  91. 1 0
      unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.json
  92. 0 0
      unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.wxml
  93. 335 81
      unpackage/dist/dev/mp-weixin/pagesClass/classDetail.js
  94. 7 1
      unpackage/dist/dev/mp-weixin/pagesClass/classDetail.json
  95. 0 0
      unpackage/dist/dev/mp-weixin/pagesClass/classDetail.wxml
  96. 45 6
      unpackage/dist/dev/mp-weixin/pagesClass/classDetail.wxss
  97. 51 32
      unpackage/dist/dev/mp-weixin/pagesClass/classList.js
  98. 56 59
      unpackage/dist/dev/mp-weixin/pagesClass/courseForm.js
  99. 59 62
      unpackage/dist/dev/mp-weixin/pagesClass/extraLessonsForm.js
  100. 2 8
      unpackage/dist/dev/mp-weixin/pagesClass/extraLessonsForm.wxss

+ 10 - 5
.hbuilderx/launch.json

@@ -2,10 +2,15 @@
   // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
     "version": "0.0",
     "configurations": [{
-            "type": "uniCloud",
-            "default": {
-                "launchtype": "local"
-            }
-        }
+     	"default" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"mp-weixin" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"type" : "uniCloud"
+     }
     ]
 }

+ 21 - 5
config/api.js

@@ -1,4 +1,6 @@
-const API_BASE = 'https://xinghuolanqiu.com/newApi'
+// const API_BASE = 'https://xinghuolanqiu.com/newApi'
+const API_BASE = 'http://192.168.1.126:30000'
+// const API_BASE = 'http://192.168.1.117:8089'
 
 module.exports = {
 	//  微信授权登录
@@ -21,7 +23,11 @@ module.exports = {
 	submitClassForm: API_BASE + '/v2/sale/class/create',
 	//  获取班级详情
 	getClassDetail: API_BASE + '/v2/sale/class/getDetail',
-	//  获取教练近况
+	//  班级信息修改
+	classUpdate: API_BASE + '/v2/sale/class/update',
+	//  班级删除
+	deleteById: API_BASE + '/v2/sale/class/deleteById',
+	//  获取班级近况
 	getClassDetailShowList: API_BASE + '/v2/sale/class/getClassDetailShowList',
 	//  教练近况发布
 	insertClassShow: API_BASE + '/v2/sale/class/insertClassShow',
@@ -37,16 +43,26 @@ module.exports = {
 	getOtherSignStudentList: API_BASE + '/v2/sale/class/getOtherSignStudentList',
 	//  提交签到表单
 	submitSignForm: API_BASE + '/v2/sale/class/signSubmit',
-	
+	//  班级详情->扫码
+	classCourseWriteOff: API_BASE + '/v2/sale/class/classCourseWriteOff',
+	//  班级详情->请假详情
+	leaveLessonsInfo: API_BASE + '	/v2/sale/class/leaveLessonsInfo',
+	//  班级详情->续费卡列表
+	stuRenewalCardList: API_BASE + '	/v2/sale/class/stuRenewalCardList',
+	// 班级详情->续费卡->确认
+	openRenewalCard: API_BASE + '	/v2/sale/class/openRenewalCard',
 	
 	//  获取消息通知列表
 	getMessageList: API_BASE + '/v2/coach/message/getMessageList',
-	
-	
+	//  消息请假同意
+	leaveLessonsOk: API_BASE + '/v2/coach/center/leaveLessonsOk',
+		
 	//  获取我的评价列表
 	getEvaluateList: API_BASE + '/v2/coach/center/getRatingList',
 	//  获取我的评价详情
 	getEvaluateInfo: API_BASE + '/v2/coach/center/getRatingDetail',
+	//  教练回复
+	setSignRemark: API_BASE + '/v2/class/setSignRemark',
 	//  获取我的补课记录列表
 	getExtraLessonsList: API_BASE + '/v2/coach/center/getExtraLessonsList',
 	//  获取我的请假记录列表

+ 11 - 1
pages.json

@@ -47,11 +47,16 @@
 				"navigationBarTitleText": "新建班级"
 			}
 		}, {
+			"path": "updateClassForm",
+			"style": {
+				"navigationBarTitleText": "修改班级"
+			}
+		},{
 			"path": "classDetail",
 			"style": {
 				"navigationBarTitleText": "班级详情"
 			}
-		}, {
+		},{
 			"path": "courseForm",
 			"style": {
 				"navigationBarTitleText": "成长历程"
@@ -75,6 +80,11 @@
 	}, {
 		"root": "pagesMain",
 		"pages": [{
+				"path": "coachReply",
+				"style": {
+					"navigationBarTitleText": "教练回复"
+			}
+		}, {
 			"path": "evaluateList",
 			"style": {
 				"navigationBarTitleText": "我的评价"

+ 6 - 5
pages/index/index.vue

@@ -27,11 +27,12 @@
 		},
 		data() {
 			return {
-				cardList: [{
-						icon: 'iconzu4931',
-						label: '我的补课',
-						path: 'extraLessonsForm'
-					},
+				cardList: [
+					// {
+					// 	icon: 'iconzu4931',
+					// 	label: '我的补课',
+					// 	path: 'extraLessonsForm'
+					// },
 					{
 						icon: 'iconwodebanji',
 						label: '我的班级',

+ 36 - 4
pages/news/index.vue

@@ -7,6 +7,9 @@
 				<scroll-view scroll-y class="scroll-box" @scrolltolower="handleLoadMore" :refresher-enabled="true"
 				 :refresher-triggered="triggered" :refresher-threshold="100" refresher-background="white" @refresherrefresh="onRefresh"
 				 @refresherrestore="onRestore">
+				 <view class="filter-box" v-if="current == 3">
+				 	<u-search placeholder="请输入关键字" v-model="filterText" @search="setFilterText" @custom="setFilterText"></u-search>
+				 </view>
 					<u-card :head-border-bottom="false" :foot-border-top="false" padding="0px" margin="10px" borderRadius="40" v-for="(site, index2) in item.tableList"
 					 :key="index2" class="class-card" @click="goToMyClass(site)">
 						<view class="class-content" slot="head" style="padding-top: 10px; display: flex; justify-content: space-between;">
@@ -14,7 +17,11 @@
 							<view class="class-date">{{site.time}}</view>
 						</view>
 						<view class="class-content" slot="body">
-							<view class="class-info-text">{{site.content}}</view>
+							<view class="class-info-text">{{site.content}}({{ site.type == 0 ? '病假' : '事假' }})</view>
+							<!-- type 0病假  4事假-->
+							<view v-if="current == 1 && site.type == 4 && !site.get" style="display: flex;justify-content: flex-end;">
+								<u-button type="warning" :custom-style="{background: mainColor}" size="mini" shape="circle" :ripple="true" @click="handleAgreeClick(site.id)" >同意</u-button>
+							</view>
 						</view>
 					</u-card>
 					<u-divider v-if="item.isOver" bg-color="transparent">没有更多了</u-divider>
@@ -65,6 +72,7 @@
 				}],
 				current: 0,
 				swiperCurrent: 0,
+				filterText: ''
 			}
 		},
 		onLoad() {
@@ -73,7 +81,6 @@
 			this.getTableList(2)
 			this.getTableList(3)
 		},
-		onReady() {},
 		methods: {
 			//  tab页面切换
 			tabsChange(index) {
@@ -91,6 +98,23 @@
 				this.swiperCurrent = current;
 				this.current = current;
 			},
+			// 同意
+			handleAgreeClick(id) {
+				const that = this
+				NET.request(API.leaveLessonsOk, {msgId: id}, 'POST').then(res =>{
+					if(res.status == 10000) {
+						this.tabList[this.current].tableList = []
+						that.getTableList(1)
+					}
+				})
+			},
+			//  过滤搜索
+			setFilterText() {
+				this.tabList[this.current].isOver = false
+				this.tabList[this.current].pageIndex = 1
+				this.tabList[this.current].tableList = []
+				this.getTableList(this.current, 'refresh', this.filterText)
+			},
 			//  下拉刷新
 			onRefresh() {
 				if (!this.triggered) {
@@ -114,11 +138,12 @@
 				}
 			},
 			//  获取列表数据
-			getTableList(index, refresh) {
+			getTableList(index, refresh,name = '') {
 				NET.request(API.getMessageList, {
 					type: index,
 					page: this.tabList[index].pageIndex,
 					size: 10,
+					name: name
 				}, 'POST').then(res => {
 					this.triggered = false
 					this.tabList[index].tableList = this.tabList[index].tableList.concat(res.data.row)
@@ -151,7 +176,14 @@
 
 		.swiper-box {
 			height: calc(100vh - 34px);
-
+			
+			.filter-box {
+				height: 48px;
+				padding: 10px 15px;
+				background-color: #FFFFFF;
+				border-top: 2px solid #f7f7f7;
+			}
+			
 			.swiper-item {
 				height: calc(100vh - 34px);
 

+ 61 - 2
pagesClass/addClassForm.vue

@@ -1,6 +1,12 @@
 <template>
 	<view class="content">
 		<u-form :model="form" ref="form" label-width="140">
+			<u-form-item label="班级种类" prop="className" required>
+				<u-input v-model="form.className" placeholder="请选择班级种类" :select-open="classShow" type="select" @click="classShow = true" />
+			</u-form-item>
+			<u-form-item label="体验班" prop="useLessonsName" required>
+				<u-input v-model="form.useLessonsName" placeholder="是否为体验班" :select-open="lessonsShow" type="select" @click="lessonsShow = true" />
+			</u-form-item>
 			<u-form-item label="班级名称" prop="name" required>
 				<u-input v-model="form.name" placeholder="请输入班级名称" />
 			</u-form-item>
@@ -55,8 +61,12 @@
 		<u-picker mode="time" v-model="endDateShow" :params="cycleParams" @confirm="setEndDate"></u-picker>
 		<u-picker mode="time" v-model="startTimeShow" :params="startTimeParams" @confirm="setStartTime"></u-picker>
 		<u-picker mode="selector" v-model="venueShow" :range="venueList" range-key="name" @confirm="setVenue"></u-picker>
+		<!-- 班级种类 -->
+		<u-action-sheet :list="classTypeList" v-model="classShow" @click="handleClassClick"></u-action-sheet>
+		<!-- 体验班 -->
+		<u-action-sheet :list="lessonsTypeList" v-model="lessonsShow" @click="handleLessonsClick"></u-action-sheet>
 		<view class="handle-fix-box">
-			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="submitForm()">保存</u-button>
+			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="submitForm">保存</u-button>
 		</view>
 		<u-top-tips ref="uTips"></u-top-tips>
 	</view>
@@ -79,6 +89,10 @@
 			return {
 				form: {
 					name: '',
+					classType: 0,
+					className: '',
+					useLessonsType: 1,
+					useLessonsName: '',
 					startDate: '',
 					endDate: '',
 					address: '',
@@ -93,7 +107,20 @@
 					}],
 				},
 				rules: {
-					name: [{
+					className: [
+						{
+						required: true,
+						message: '请选择班级种类',
+						trigger: 'change'
+					}],
+					useLessonsName: [
+						{
+						required: true,
+						message: '请选择是否为体验班',
+						trigger: 'change'
+					}],
+					name: [
+						{
 						required: true,
 						message: '请输入班级名称',
 						trigger: 'change'
@@ -125,6 +152,28 @@
 						trigger: 'change'
 					}],
 				},
+				classShow: false,
+				classTypeList: [
+					{
+						classType: 1,
+						text: '篮球'
+					},
+					{
+						classType: 2,
+						text: '体能'
+					}
+				],
+				lessonsShow: false,
+				lessonsTypeList: [
+					{
+						useLessonsType: 1,
+						text: '是'
+					},
+					{
+						useLessonsType: 2,
+						text: '否'
+					}
+				],
 				selectIndex: 0,
 				selectForm: {
 					week: '',
@@ -201,6 +250,16 @@
 		},
 		onShow() {},
 		methods: {
+			//  选择班级类别
+			handleClassClick(index) {
+				this.form.classType = this.classTypeList[index].classType
+				this.form.className = this.classTypeList[index].text
+			},
+			// 是否为体验班(1是 2否)
+			handleLessonsClick(index) {
+				this.form.useLessonsType = this.lessonsTypeList[index].useLessonsType
+				this.form.useLessonsName = this.lessonsTypeList[index].text
+			},
 			//  弹出设置时间
 			toSetDate(index) {
 				this.selectIndex = index

+ 293 - 7
pagesClass/classDetail.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<u-card :title="classInfo.name" :show-foot="false" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
+		<u-card :title="classInfo.name" :sub-title="classInfo.useLessonsType == 1 ? '体验班' : ''" :show-foot="false" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
 			<view slot="body">
 				<view class="class-info-text">
 					<u-icon name="clock"></u-icon>
@@ -14,9 +14,13 @@
 					<u-icon name="map"></u-icon>
 					{{classInfo.address}}
 				</view>
+				<view style="display: flex;justify-content: flex-end;" v-if="classInfo.state != 0">
+						<u-button type="warning" :custom-style="{background: mainColor}" size="mini" shape="circle" :ripple="true" @click="handleUpdateClassClick">修改</u-button>
+						<u-button v-if="!classInfo.studentSignList.length" type="warning" :custom-style="{background: mainColor,marginLeft: '5px'}" size="mini" shape="circle" :ripple="true" @click="handleDeleteClick">删除</u-button>
+				</view>
 			</view>
 		</u-card>
-		<u-card :title="'学员信息(' + getStudentsNumber() + ')'" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
+		<u-card :title="'学员信息(' + getStudentsNumber(1) + ')'" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
 			<u-grid :col="3" slot="body" :border="false">
 				<u-grid-item v-for="(item, index) in classInfo.studentSignList" :key="index" :custom-style="gridCustomStyle" @click="goToStudentInfo(item)">
 					<view class="class-student-col" :class="item.state ? 'student-active' : ''">
@@ -26,6 +30,33 @@
 				</u-grid-item>
 			</u-grid>
 		</u-card>
+		<u-card margin="0px 0px 10px 0px" :head-style="cardStyle" :show-head="false"  @click="handleScanClick">
+			<view slot="body" style="display: flex;justify-content: space-between;">
+				<view style="font-size: 32rpx;font-weight: bold;color:#000000;">扫码</view>
+				<u-icon name="scan" size="32"></u-icon>
+			</view>
+		</u-card>
+		<u-card :title="'事假(' + getStudentsNumber(2) + ')'" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
+			<u-grid :col="3" slot="body" :border="false">
+				<u-grid-item v-for="(item, index) in classInfo.studentLeaveRecordList" :key="index" :custom-style="gridCustomStyle">
+				<!-- 	<view class="class-student-col" :class="item.agreeType == 1 ? 'student-active' : ''" @click="handleleaveClick(item.leaveRecordId)"> -->
+						<view class="class-student-col" @click="handleleaveClick(item)">
+						{{item.name}}
+						<u-icon :name="item.agreeType == 1 ?  'bookmark-fill' : 'bookmark'" :color="mainColor" size="48"></u-icon>
+					</view>
+				</u-grid-item>
+			</u-grid>
+		</u-card>
+		<u-card :title="'续费卡(' + getStudentsNumber(3) + ')'" title-size="32" margin="0px 0px 10px 0px" :head-style="cardStyle">
+			<u-grid :col="3" slot="body" :border="false">
+				<u-grid-item v-for="(item, index) in classInfo.studentRenewList" :key="index" :custom-style="gridCustomStyle">
+					<view class="class-student-col" :class="item.state ? 'student-active' : ''" @click="handleVtCardClick(item)">
+						{{item.name}}
+						<u-icon name="bookmark" :color="mainColor" size="48"></u-icon>
+					</view>
+				</u-grid-item>
+			</u-grid>
+		</u-card>
 		<u-card title="班级近况" :sub-title="imgEdit ? '完成' : '管理'" :sub-title-color="imgEdit ? '#19be6b' : '#909399'" :show-foot="false"
 		 title-size="32" margin="0px" :head-style="cardStyle" @sub-click="imgEdit = !imgEdit">
 			<view class="class-show-box" slot="body">
@@ -43,9 +74,42 @@
 			</view>
 		</u-card>
 		<view class="handle-fix-box">
-			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="goToSignForm()">立即签到</u-button>
+			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="goToSignForm">立即签到</u-button>
 		</view>
 		<u-action-sheet :list="uploadTypeList" v-model="uploadTypeShow" @click="selectUploadType"></u-action-sheet>
+		<!-- 事假 -->
+		<u-popup v-model="leaveShow" mode="center" border-radius="30" width="600rpx">
+			<view class="common-title">事假</view>
+			<view class="menber-box">
+				<u-form :model="leaveForm" ref="leaveFormRef" label-width="140">
+					<u-form-item label="请假时间" prop="time">
+						<u-input v-model="leaveForm.time" disabled  type="text"  />
+					</u-form-item>
+					<u-form-item label="请假理由" prop="leaveReason">
+						<u-input v-model="leaveForm.leaveReason" disabled type="text" />
+					</u-form-item>
+				</u-form>
+				<view style="height:20px;"></view>
+				<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="handleAgreeClick">同意</u-button>
+			</view>
+		</u-popup>
+		<!-- 续费卡 -->
+		<u-popup v-model="vtCardShow" mode="center" border-radius="30" width="600rpx">
+			<view class="common-title">续费卡</view>
+			<view class="menber-box">
+				<u-radio-group v-model="vtCardValue" @change="handleRadioChange">
+					<u-radio  class="menber-col" v-for="(item,index) in vtCardList" :key="index" :name="item.cardName">
+						<view class="menber-label">卡名:{{ item.cardName }}</view>
+						<!-- <view class="menber-label">售价: ¥ 1111</view> -->
+						<!-- <view class="menber-label">使用时间: 11111</view> -->
+						<!-- <u-checkbox v-model="true" active-color="#ff6e3e">选择</u-checkbox> -->
+						<!-- <view class="menber-icon iconfont iconzu4931"></view> -->
+					</u-radio>
+				</u-radio-group>
+				<view style="height:20px;"></view>
+				<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="handleAffirmClick">确认</u-button>
+			</view>
+		</u-popup>
 		<u-top-tips ref="uTips"></u-top-tips>
 	</view>
 </template>
@@ -66,6 +130,7 @@
 		data() {
 			return {
 				classId: '',
+				studentId: '',
 				classInfo: {
 					name: '',
 					classStartDate: '',
@@ -77,6 +142,8 @@
 					classExtrasList: [],
 					studentSignList: [],
 					showList: [],
+					studentLeaveRecordList: [],
+					studentRenewList: []
 				},
 				classShowList: [],
 				uploadTypeShow: false,
@@ -93,7 +160,13 @@
 				},
 				gridCustomStyle: {
 					padding: '0 2px'
-				}
+				},
+				leaveShow: false,
+				leaveForm: {},
+				vtCardShow: false,
+				vtCardId: '',
+				vtCardValue: '',
+				vtCardList: [],
 			}
 		},
 		onLoad(options) {
@@ -121,7 +194,47 @@
 					})
 				})
 			},
-			//  文件上传成功回调
+			// 扫码
+			handleScanClick() {
+				try {
+					let that = this
+					uni.scanCode({
+						onlyFromCamera: true,
+						success: function (res) {
+							// const studentId = parseInt(res.result)
+							const studentId = 8999
+							const classId = parseInt(that.classId)
+							NET.request(API.classCourseWriteOff, {
+								studentId,classId
+							}, 'POST').then(res => {
+								if(res.status == 10000) {
+									that.$refs.uTips.show({
+										title: res.message,
+										type: 'success',
+									})
+								} else {
+									that.$refs.uTips.show({
+										title: res.message,
+										type: 'warning',
+									})
+								}
+							})
+						},
+						fail: function (res) {
+							that.$refs.uTips.show({
+								title: "调用摄像头失败",
+								type: 'warning',
+								})
+							},
+						});
+					} catch {
+						this.$refs.uTips.show({
+							title: "调用摄像头失败",
+							type: 'warning',
+						})
+					}
+			},
+			//  班级近况
 			getClassShow() {
 				NET.request(API.getClassDetailShowList, {
 					id: this.classId,
@@ -136,9 +249,111 @@
 					})
 				})
 			},
+			// 删除班级(班级内无学员)
+			handleDeleteClick() {
+				NET.request(API.deleteById, {
+					id: parseInt(this.classId)
+				}, 'POST').then( res=> {
+					if(res.status == 10000) {
+						uni.navigateBack({})
+					}
+				})
+			},
 			//  获取学生数量
-			getStudentsNumber() {
-				return this.classInfo.studentSignList.length
+			getStudentsNumber(num) {
+				// 1 学生数晾   2 事假数量   3 续费卡数量
+				switch (num){
+					case 1:
+						return this.classInfo.studentSignList.length
+					case 2: 
+						return this.classInfo.studentLeaveRecordList.length
+					case 3:
+						return this.classInfo.studentRenewList.length
+				}
+			},
+			// 事假信息
+			handleleaveClick(item) {
+				if(agreeType == 1) return
+				NET.request(API.leaveLessonsInfo,{
+					id: parseInt(item.leaveRecordId)
+				},'POST').then(res=> {
+					if(res.status == 10000) {
+						this.leaveForm = { ...res.data }
+						this.leaveShow = true
+					} else {
+						this.$refs.uTips.show({
+							title: res.message,
+							type: 'warning',
+						})
+					}
+				})
+			},
+			//  事假信息->同意
+			handleAgreeClick() {
+				NET.request(API.leaveLessonsOk, {
+					leaveId: parseInt(this.leaveForm.leaveId)
+				}, 'POST').then(res => {
+					if(res.status == 10000) {
+						this.leaveShow = false
+						this.leaveForm = {}
+						this.initialize()
+					} else {
+						this.leaveShow = false
+						this.$refs.uTips.show({
+							title: res.message,
+							type: 'warning',
+						})
+					}
+				})
+			},
+			//  续费卡列表
+			handleVtCardClick(item) {
+				this.studentId = parseInt(item.id)
+				const data = {
+					studentId: parseInt(this.studentId),
+					classId: parseInt(this.classId)
+				}
+				NET.request(API.stuRenewalCardList, data, 'POST').then(res=> {
+						if(res.status == 10000) {
+							this.vtCardList = res.data
+							this.vtCardShow = true
+						} else {
+							this.$refs.uTips.show({
+								title: res.message,
+								type: 'warning',
+							})
+							this.vtCardShow = false
+						}
+					})
+			},
+			//  续费卡切换
+			handleRadioChange(cardName) {
+				this.vtCardId = this.vtCardList.find( item => item.cardName = cardName).id
+				this.vtCardValue = cardName
+			},
+			//  续费卡确认
+			handleAffirmClick() {
+				const data = {
+					cardId: parseInt(this.vtCardId),
+					studentId: parseInt(this.studentId),
+					classId: parseInt(this.classId)
+				}
+				NET.request(API.openRenewalCard, data,'POST').then(res=> {
+					if(res.status == 10000) {
+						this.vtCardShow = false
+						this.$refs.uTips.show({
+							title: res.message,
+							type: 'success',
+						})
+						this.initialize()
+					} else {
+						this.$refs.uTips.show({
+							title: res.message,
+							type: 'warning',
+						})
+						this.vtCardShow = false
+					}
+				})
 			},
 			//  选择上传文件类型
 			selectUploadType(index) {
@@ -214,6 +429,20 @@
 					})
 				})
 			},
+			//  跳转修改班级
+			handleUpdateClassClick() {
+				const form = {
+					classId: this.classId,
+					name: this.classInfo.name,
+					startDate: this.classInfo.classStartDate,
+					endDate: this.classInfo.classEndDate,
+					timeReqList: this.classInfo.classExtrasList,
+					maxStudentCount: this.classInfo.maxStudentCount
+				}
+				uni.navigateTo({
+					url: '/pagesClass/updateClassForm?form=' + encodeURIComponent(JSON.stringify(form))
+				});
+			},
 			//  跳转学生详情
 			goToStudentInfo(item) {
 				uni.navigateTo({
@@ -227,6 +456,12 @@
 					url: '/pagesClass/signForm?id=' + this.classId + '&status=' + this.classInfo.signStatus
 				});
 			},
+			// 跳转续费卡详情
+			jumpVtCardPage(id) {
+				uni.navigateTo({
+					url: `/pagesClass/vtCardInfo?id=${id}`
+				})
+			}
 		},
 	}
 </script>
@@ -317,5 +552,56 @@
 				}
 			}
 		}
+		
+		.menber-box {
+			width: 100%;
+			// float: left;
+			padding: 10px 15px;
+			margin-bottom: 10px;
+			
+			.menber-col {
+				width: 100%;
+				padding: 15px;
+				margin-bottom: 10px;
+				display: inline-block;
+				background-color: #FFFFFF;
+				border-radius: 15px;
+				box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
+				position: relative;
+				overflow: hidden;
+				box-sizing: border-box;
+				
+				.menber-label {
+					width: 100%;
+					margin-bottom: 5px;
+					float: left;
+					font-size: 14px;
+					// line-height: 20px;
+				}
+		
+				.menber-num {
+					width: 100%;
+					float: left;
+					font-size: 26px;
+					line-height: 28px;
+					color: $mainColor;
+				}
+		
+				.menber-icon {
+					font-size: 100px;
+					color: $mainColor;
+					position: absolute;
+					right: -5px;
+					bottom: -30px;
+					opacity: 0.5;
+				}
+			}
+		}
+		.common-title {
+			width:100%;
+			text-align: center;
+			font-size: 20px;
+			margin: 10px 0;
+		}
 	}
 </style>

+ 1 - 1
pagesClass/classList.vue

@@ -154,7 +154,7 @@
 			//  跳转班级详情
 			goToClassDetail(site) {
 				uni.navigateTo({
-					url: '/pagesClass/classDetail?id=' + site.id
+					url: `/pagesClass/classDetail?id=${site.id}`
 				});
 			}
 		},

+ 279 - 0
pagesClass/updateClassForm.vue

@@ -0,0 +1,279 @@
+<template>
+	<view class="content">
+		<u-form :model="form" ref="form" label-width="140">
+			<u-form-item label="班级名称" prop="name" required>
+				<u-input v-model="form.name" placeholder="请输入班级名称" />
+			</u-form-item>
+			<u-form-item label="课程周期开始时间" prop="startDate" right-icon="arrow-right" required @click.native="startDateShow = true">
+				<u-input v-model="form.startDate" placeholder="请选择课程周期开始时间" disabled @click="startDateShow = true" />
+			</u-form-item>
+			<u-form-item label="课程周期结束时间" prop="endDate" right-icon="arrow-right" required @click.native="endDateShow = true">
+				<u-input v-model="form.endDate" placeholder="请选择课程周期结束时间" disabled @click="endDateShow = true" />
+			</u-form-item>
+			<u-form-item label="上课时间" prop="timeReqList" required label-position="top"></u-form-item>
+			<u-swipe-action :index="index" v-for="(item, index) in form.timeReqList" :key="item.id" @click="deleteDate" :options="options">
+				<u-form-item label=" " right-icon="arrow-right" @click.native="toSetDate(index)" label-width="0px">
+					<text :style="{color: item.week ? '' :'#999999'}">{{item.week ? item.week + '&nbsp;&nbsp;' +item.startTime + '&nbsp;&nbsp;' +item.endTime : '请选择上课时间'}}</text>
+				</u-form-item>
+			</u-swipe-action>
+			<u-form-item label=" " label-width="0px">
+				<view style="display: flex; justify-content: space-around;">
+					<u-button type="success" :ripple="true" size="medium" :custom-style="{backgroundColor: '#ff6e3e'}" @click="addDate">新增</u-button>
+				</view>
+			</u-form-item>
+			<u-form-item label="学生数量" prop="maxStudentCount" required>
+				<u-input v-model="form.maxStudentCount" type="number" placeholder="请输入学生数量" />
+			</u-form-item>
+		</u-form>
+		<view class="handle-fix-box">
+			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="submitForm">修改</u-button>
+		</view>
+		<u-popup v-model="classDate" mode="bottom" border-radius="30">
+			<view class="dateForm">
+				<u-form :model="selectForm" ref="selectForm" label-width="140">
+					<u-form-item label="上课时间" prop="week" required>
+						<u-radio-group v-model="selectForm.week">
+							<u-radio v-for="(item, index) in weekList" :key="index" :name="item.name">
+								{{ item.name }}
+							</u-radio>
+						</u-radio-group>
+					</u-form-item>
+					<u-form-item label="上课时间" prop="startTime" right-icon="arrow-right" required @click.native="()=>{startTimeShow = true;timeType = 1}">
+						<u-input v-model="selectForm.startTime" placeholder="请选择上课时间" disabled @click="()=>{startTimeShow = true;timeType = 1}" />
+					</u-form-item>
+					<u-form-item label="下课时间" prop="endTime" right-icon="arrow-right" required @click.native="()=>{startTimeShow = true;timeType = 2}">
+						<u-input v-model="selectForm.endTime" placeholder="请选择下课时间" disabled @click="()=>{startTimeShow = true;timeType = 2}" />
+					</u-form-item>
+				</u-form>
+				<u-button type="warning" :ripple="true" :custom-style="{...customStyle, marginTop: '15px'}" @click="setDate()">确定</u-button>
+			</view>
+		</u-popup>
+		<u-picker mode="time" v-model="startTimeShow" :params="startTimeParams" @confirm="setStartTime"></u-picker>
+		<u-picker mode="time" v-model="startDateShow" :params="cycleParams" @confirm="setStartDate"></u-picker>
+		<u-picker mode="time" v-model="endDateShow" :params="cycleParams" @confirm="setEndDate"></u-picker>
+		<u-top-tips ref="uTips"></u-top-tips>
+	</view>
+</template>
+
+<script>
+	import {
+		mapGetters
+	} from 'vuex'
+	const NET = require('@/utils/request')
+	const API = require('@/config/api')
+	export default {
+		computed: {
+			...mapGetters([
+				'mainColor',
+				'customStyle',
+			])
+		},
+		data() {
+			return {
+				form: {
+					classId: 0,
+					name: '',
+					startDate: '',
+					endDate: '',
+					timeReqList: [{
+						week: '',
+						startTime: '',
+						endTime: '',
+					}],
+					maxStudentCount: ''
+				},
+				rules: {
+					name: [{
+						required: true,
+						message: '请输入班级名称',
+						trigger: 'change'
+					}],
+					startDate: [{
+						required: true,
+						message: '请选择课程周期开始时间',
+						trigger: 'change'
+					}],
+					endDate: [{
+						required: true,
+						message: '请选择课程周期结束时间',
+						trigger: 'change'
+					}],
+					timeReqList: [{
+						type: 'array',
+						required: true,
+						message: '请选择上课时间',
+						trigger: 'change'
+					}],
+					maxStudentCount: {
+						type: 'number',
+						required: true,
+						message: '请输入学生数量',
+						trigger: 'change'
+					},
+				},
+				startTimeShow: false,
+				startTimeParams: {
+					year: false,
+					month: false,
+					day: false,
+					hour: true,
+					minute: true,
+					second: true
+				},
+				startDateShow: false,
+				endDateShow: false,
+				cycleParams: {
+					year: true,
+					month: true,
+					day: true,
+					hour: false,
+					minute: false,
+					second: false
+				},
+				selectForm: {
+					week: '',
+					startTime: '',
+					endTime: '',
+				},
+				classDate: false,
+				weekList: [{
+						name: '星期一'
+					},
+					{
+						name: '星期二'
+					},
+					{
+						name: '星期三'
+					},
+					{
+						name: '星期四'
+					},
+					{
+						name: '星期五'
+					},
+					{
+						name: '星期六'
+					},
+					{
+						name: '星期日'
+					},
+				],
+				options: [{
+					text: '删除',
+					style: {
+						color: '#fa3534'
+					}
+				}]
+			}
+		},
+		onLoad(options) {
+			this.form = JSON.parse(decodeURIComponent(options.form));
+			this.form.id = parseInt(this.form.classId)
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules);
+		},
+		onShow() {},
+		methods: {
+			//  设置课程周期开始时间
+			setStartDate(date) {
+				this.form.startDate = date.year + '-' + date.month + '-' + date.day
+			},
+			//  设置课程周期结束时间
+			setEndDate(date) {
+				this.form.endDate = date.year + '-' + date.month + '-' + date.day
+			},
+			//  设置上课时间
+			setStartTime(date) {
+				if (this.timeType == 1) {
+					this.selectForm.startTime = date.hour + ':' + date.minute + ':' + date.second
+				} else {
+					this.selectForm.endTime = date.hour + ':' + date.minute + ':' + date.second
+				}
+			},
+			//  弹出设置时间
+			toSetDate(index) {
+				this.selectIndex = index
+				this.selectForm = {
+					week: this.form.timeReqList[index].week,
+					startTime: this.form.timeReqList[index].startTime,
+					endTime: this.form.timeReqList[index].endTime,
+				}
+				this.classDate = true
+			},
+			//  删除时间
+			deleteDate(index, index1) {
+				if (index1 == 0) {
+					this.form.timeReqList.splice(index, 1);
+				}
+			},
+			//  设置上课时间
+			setDate() {
+				this.form.timeReqList[this.selectIndex] = {
+					week: this.selectForm.week,
+					startTime: this.selectForm.startTime,
+					endTime: this.selectForm.endTime,
+				}
+				this.classDate = false
+			},
+			//  新增时间
+			addDate() {
+				this.form.timeReqList.push({
+					week: '',
+					startTime: '',
+					endTime: '',
+				})
+			},
+			//  提交表单
+			submitForm() {
+				this.$refs.form.validate(valid => {
+					if (valid) {
+						NET.request(API.classUpdate, {
+							...this.form,
+						}, 'POST').then(res => {
+							uni.removeStorageSync({
+								key: 'extraLessonsUserList'
+							})
+							this.$refs.uTips.show({
+								title: '提交成功',
+								type: 'success',
+							})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '/pagesClass/classList' 
+								})
+							}, 1000)
+						}).catch(error => {
+							this.$refs.uTips.show({
+								title: error.message,
+								type: 'warning',
+							})
+						})
+					}
+				});
+			},
+		},
+	}
+</script>
+
+<style>
+	page {
+		width: 100%;
+		height: 100%;
+		position: relative;
+	}
+</style>
+<style lang="scss" scoped>
+	@import "@/static/css/themes.scss";
+
+	.content {
+		width: 100%;
+		float: left;
+		padding: 0 15px 60px 15px;
+		box-sizing: border-box;
+
+		.dateForm {
+			padding: 20px;
+		}
+	}
+</style>

+ 97 - 0
pagesMain/coachReply.vue

@@ -0,0 +1,97 @@
+<template>
+	<view class="content">
+		<u-form :model="form" ref="form" label-width="140">
+			<u-form-item label="回复" prop="remark" required>
+				<u-input v-model="form.remark" type="text" placeholder="请输入回复" />
+			</u-form-item>
+		</u-form>
+		<view class="handle-fix-box">
+			<u-button type="warning" shape="circle" :ripple="true" :custom-style="customStyle" @click="submitForm()">提交</u-button>
+		</view>
+		<u-top-tips ref="uTips"></u-top-tips>
+	</view>
+</template>
+
+<script>
+	import {
+		mapGetters
+	} from 'vuex'
+	const NET = require('@/utils/request')
+	const API = require('@/config/api')
+	export default {
+		computed: {
+			...mapGetters([
+				'customStyle',
+			])
+		},
+		data() {
+			return {
+				id: '',
+				type: '',
+				form: {
+					signId: 0,
+					classId: 0,
+					isCoach: true,
+					remark: ''
+				},
+				rules: {
+					remark: [{
+						required: true,
+						message: '请输入回复',
+						trigger: 'change'
+					}],
+				},
+			}
+		},
+		onLoad(options) {
+			this.form.signId = options.id
+			this.form.classId = options.classId
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules);
+		},
+		methods: {
+			//  提交表单
+			submitForm() {
+				this.$refs.form.validate(valid => {
+					if (valid) {
+						NET.request(API.setSignRemark, {
+							...this.form
+						}, 'POST').then(res => {
+							this.$refs.uTips.show({
+								title: '提交成功',
+								type: 'success',
+							})
+							setTimeout(() => {
+								uni.navigateBack()
+							}, 1000)
+						}).catch(error => {
+							this.$refs.uTips.show({
+								title: error.message,
+								type: 'warning',
+							})
+						})
+					}
+				});
+			},
+		},
+	}
+</script>
+
+<style>
+	page {
+		width: 100%;
+		height: 100%;
+		position: relative;
+	}
+</style>
+<style lang="scss" scoped>
+	@import "@/static/css/themes.scss";
+
+	.content {
+		width: 100%;
+		float: left;
+		padding: 0 15px 60px 15px;
+		box-sizing: border-box;
+	}
+</style>

+ 1 - 1
pagesMain/communicateForm.vue

@@ -2,7 +2,7 @@
 	<view class="content">
 		<u-form :model="form" ref="form" label-width="140">
 			<u-form-item label="沟通内容" prop="content" required>
-				<u-input v-model="form.content" type="textarea" placeholder="请输入沟通内容" auto-height :height="100" />
+				<u-input v-model="form.content" type="text" placeholder="请输入沟通内容" />
 			</u-form-item>
 		</u-form>
 		<view class="handle-fix-box">

+ 21 - 3
pagesMain/evaluateDetail.vue

@@ -8,10 +8,21 @@
 				<view class="evaluate-list" v-for="(item, index) in evaluateInfo.evaluateDetailResult" :key="index">
 					<view class="evaluate-info">
 						<view class="evaluate-name">{{item.name}}</view>
-						<view>{{item.time}}</view>
+						<view>{{item.userRemarkTime}}</view>
 					</view>
-					<u-rate :count="5" v-model="item.level" :active-color="mainColor" disabled></u-rate>
-					<view style="padding-top: 10px;">{{item.content}}</view>
+					<u-rate :count="10" v-model="item.level" :active-color="mainColor" isClick></u-rate>
+					<view style="padding: 10px 0;">{{item.content}}</view>
+					<template v-if="item.coachRemark">
+						<view class="evaluate-info">
+							<view class="evaluate-name">{{item.coachRemark}}</view>
+							<view>{{item.coachRemarkTime}}</view>
+						</view>
+					</template>
+					<template v-else>
+						<view style="display: flex;justify-content: flex-end;">
+							<u-button type="warning" :custom-style="{background: mainColor}" size="mini" shape="circle" :ripple="true" @click="handleReplayclick(item.id)">回复</u-button>
+						</view>
+					</template>
 				</view>
 			</view>
 		</u-card>
@@ -42,6 +53,8 @@
 		},
 		onLoad(options) {
 			this.classId = options.id
+		},
+		onShow() {
 			this.getData()
 		},
 		onReady() {},
@@ -62,6 +75,11 @@
 						type: 'warning',
 					})
 				})
+			},
+			handleReplayclick(id) {
+				uni.navigateTo({
+					url: `/pagesMain/coachReply?id=${id}&classId=${this.classId}`
+				})
 			}
 		},
 	}

+ 1 - 1
pagesMain/ratioRank.vue

@@ -23,7 +23,7 @@
 								 height="24px" v-if="index2 < 3"></u-image>
 								<text v-else>{{index2 + 1}}</text>
 							</view>
-							<view class="class-info-text">{{site.name}}&nbsp;&nbsp;{{index1 == 1 ? site.residue + '课时' :''}}</view>
+							<view class="class-info-text">{{site.name}}&nbsp;&nbsp;{{index1 == 1 ? site.stuSignNo + '课时' :''}}</view>
 							<view class="class-info-img">
 								<u-avatar :src="site.url" size="100"></u-avatar>
 							</view>

+ 7 - 2
pagesMain/renewList.vue

@@ -52,6 +52,8 @@
 					pageIndex: 1,
 					tableList: [],
 				}],
+				// 请求数据size
+				pageSize: 12,
 				current: 0,
 				swiperCurrent: 0,
 			}
@@ -74,6 +76,7 @@
 			},
 			//  下拉刷新
 			onRefresh() {
+				console.log('下拉刷新');
 				if (!this.triggered) {
 					this.triggered = true
 					this.tabList[this.current].isOver = false
@@ -84,11 +87,13 @@
 			},
 			//  重置下拉刷新状态
 			onRestore() {
+				console.log('重置下拉刷新状态');
 				this.triggered = 'restore'
 				this.triggered = false
 			},
 			//  懒加载
 			handleLoadMore() {
+				console.log('懒加载');
 				if (!this.tabList[this.current].isOver) {
 					this.tabList[this.current].pageIndex++
 					this.getTableList(this.current)
@@ -99,11 +104,11 @@
 				NET.request(API.getRenewList, {
 					type: index,
 					page: this.tabList[index].pageIndex,
-					size: 10,
+					size: this.pageSize,
 				}, 'POST').then(res => {
 					this.triggered = false
 					this.tabList[index].tableList = this.tabList[index].tableList.concat(res.data.row)
-					this.tabList[index].isOver = res.data.row.length != 10
+					this.tabList[index].isOver = res.data.row.length != this.pageSize
 				}).catch(error => {
 					this.triggered = false
 					this.$refs.uTips.show({

+ 4 - 2
pagesMain/signList.vue

@@ -52,6 +52,8 @@
 					pageIndex: 1,
 					tableList: [],
 				}],
+				// 请求数据size
+				pageSize: 12,
 				current: 0,
 				swiperCurrent: 0,
 			}
@@ -99,11 +101,11 @@
 				NET.request(API.getSignList, {
 					type: index,
 					page: this.tabList[index].pageIndex,
-					size: 10,
+					size: this.pageSize,
 				}, 'POST').then(res => {
 					this.triggered = false
 					this.tabList[index].tableList = this.tabList[index].tableList.concat(res.data.row)
-					this.tabList[index].isOver = res.data.row.length != 10
+					this.tabList[index].isOver = res.data.row.length != this.pageSize
 				}).catch(error => {
 					this.triggered = false
 					this.$refs.uTips.show({

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/news/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/addClassForm.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/classDetail.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/classList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/courseForm.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/extraLessonsForm.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/extraLessonsStudentList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/signForm.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/signStudentList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/timetable.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/updateClassForm.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesClass/vtCardInfo.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,sG,6FAFmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAGnBC,UAAU,CAACC,mBAAD,CAAV,C","file":"pagesClass/vtCardInfo.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pagesClass/vtCardInfo.vue'\ncreatePage(Page)"],"sourceRoot":""}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/coachReply.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/communicateForm.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/evaluateDetail.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/evaluateList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/extraLessonsList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/leaveLessonsList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/ratioRank.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/renewList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/signList.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMain/studentInfo.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-action-sheet/u-action-sheet.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-avatar/u-avatar.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-button/u-button.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-calendar/u-calendar.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-card/u-card.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-divider/u-divider.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-form-item/u-form-item.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-form/u-form.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-grid-item/u-grid-item.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-grid/u-grid.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-icon/u-icon.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-image/u-image.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-input/u-input.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-line-progress/u-line-progress.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-mask/u-mask.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-navbar/u-navbar.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-picker/u-picker.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-popup/u-popup.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-radio-group/u-radio-group.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-radio/u-radio.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-rate/u-rate.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-search/u-search.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-subsection/u-subsection.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swipe-action/u-swipe-action.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabs-swiper/u-tabs-swiper.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-top-tips/u-top-tips.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-upload/u-upload.js.map


+ 3 - 2
unpackage/dist/dev/mp-weixin/app.json

@@ -13,6 +13,7 @@
         "extraLessonsStudentList",
         "classList",
         "addClassForm",
+        "updateClassForm",
         "classDetail",
         "courseForm",
         "signForm",
@@ -23,6 +24,7 @@
     {
       "root": "pagesMain",
       "pages": [
+        "coachReply",
         "evaluateList",
         "evaluateDetail",
         "extraLessonsList",
@@ -74,6 +76,5 @@
       "desc": "获取当前区域定位以选取附近场馆"
     }
   },
-  "usingComponents": {},
-  "sitemapLocation": "sitemap.json"
+  "usingComponents": {}
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 32 - 32
unpackage/dist/dev/mp-weixin/common/main.js


+ 36 - 185
unpackage/dist/dev/mp-weixin/common/main.wxss

@@ -180,65 +180,39 @@ text {
   font-size: 34rpx;
 }
 .u-flex {
-
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-
-  -webkit-box-orient: horizontal;
-  -webkit-box-direction: normal;
-  -webkit-flex-direction: row;
-          flex-direction: row;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  flex-direction: row;
+  align-items: center;
 }
 .u-flex-wrap {
-  -webkit-flex-wrap: wrap;
-          flex-wrap: wrap;
+  flex-wrap: wrap;
 }
 .u-flex-nowrap {
-  -webkit-flex-wrap: nowrap;
-          flex-wrap: nowrap;
+  flex-wrap: nowrap;
 }
 .u-col-center {
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 .u-col-top {
-  -webkit-box-align: start;
-  -webkit-align-items: flex-start;
-          align-items: flex-start;
+  align-items: flex-start;
 }
 .u-col-bottom {
-  -webkit-box-align: end;
-  -webkit-align-items: flex-end;
-          align-items: flex-end;
+  align-items: flex-end;
 }
 .u-row-center {
-  -webkit-box-pack: center;
-  -webkit-justify-content: center;
-          justify-content: center;
+  justify-content: center;
 }
 .u-row-left {
-  -webkit-box-pack: start;
-  -webkit-justify-content: flex-start;
-          justify-content: flex-start;
+  justify-content: flex-start;
 }
 .u-row-right {
-  -webkit-box-pack: end;
-  -webkit-justify-content: flex-end;
-          justify-content: flex-end;
+  justify-content: flex-end;
 }
 .u-row-between {
-  -webkit-box-pack: justify;
-  -webkit-justify-content: space-between;
-          justify-content: space-between;
+  justify-content: space-between;
 }
 .u-row-around {
-  -webkit-justify-content: space-around;
-          justify-content: space-around;
+  justify-content: space-around;
 }
 .u-text-left {
   text-align: left;
@@ -250,80 +224,47 @@ text {
   text-align: right;
 }
 .u-flex-col {
-
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-
-  -webkit-box-orient: vertical;
-  -webkit-box-direction: normal;
-  -webkit-flex-direction: column;
-          flex-direction: column;
+  flex-direction: column;
 }
 .u-flex-0 {
-  -webkit-box-flex: 0;
-  -webkit-flex: 0;
-          flex: 0;
+  flex: 0;
 }
 .u-flex-1 {
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
+  flex: 1;
 }
 .u-flex-2 {
-  -webkit-box-flex: 2;
-  -webkit-flex: 2;
-          flex: 2;
+  flex: 2;
 }
 .u-flex-3 {
-  -webkit-box-flex: 3;
-  -webkit-flex: 3;
-          flex: 3;
+  flex: 3;
 }
 .u-flex-4 {
-  -webkit-box-flex: 4;
-  -webkit-flex: 4;
-          flex: 4;
+  flex: 4;
 }
 .u-flex-5 {
-  -webkit-box-flex: 5;
-  -webkit-flex: 5;
-          flex: 5;
+  flex: 5;
 }
 .u-flex-6 {
-  -webkit-box-flex: 6;
-  -webkit-flex: 6;
-          flex: 6;
+  flex: 6;
 }
 .u-flex-7 {
-  -webkit-box-flex: 7;
-  -webkit-flex: 7;
-          flex: 7;
+  flex: 7;
 }
 .u-flex-8 {
-  -webkit-box-flex: 8;
-  -webkit-flex: 8;
-          flex: 8;
+  flex: 8;
 }
 .u-flex-9 {
-  -webkit-box-flex: 9;
-  -webkit-flex: 9;
-          flex: 9;
+  flex: 9;
 }
 .u-flex-10 {
-  -webkit-box-flex: 10;
-  -webkit-flex: 10;
-          flex: 10;
+  flex: 10;
 }
 .u-flex-11 {
-  -webkit-box-flex: 11;
-  -webkit-flex: 11;
-          flex: 11;
+  flex: 11;
 }
 .u-flex-12 {
-  -webkit-box-flex: 12;
-  -webkit-flex: 12;
-          flex: 12;
+  flex: 12;
 }
 .u-font-9 {
   font-size: 9px;
@@ -3068,13 +3009,8 @@ text {
   padding-bottom: 80rpx !important;
 }
 .u-reset-nvue {
-  -webkit-box-orient: horizontal;
-  -webkit-box-direction: normal;
-  -webkit-flex-direction: row;
-          flex-direction: row;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  flex-direction: row;
+  align-items: center;
 }
 .u-type-primary-light {
   color: #ecf5ff;
@@ -3204,12 +3140,8 @@ page {
 /* end--去除webkit的默认样式--end */
 /* start--icon图标外层套一个view,让其达到更好的垂直居中的效果--start */
 .u-icon-wrap {
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 /* end-icon图标外层套一个view,让其达到更好的垂直居中的效果--end */
 /* start--iPhoneX底部安全区定义--start */
@@ -3268,9 +3200,7 @@ page {
 .u-border-top-bottom:after,
 .u-border-top:after,
 .u-border:after {
-
   content: ' ';
-
   position: absolute;
   left: 0;
   top: 0;
@@ -3307,9 +3237,7 @@ page {
 /* start--clearfix--start */
 .u-clearfix:after,
 .clearfix:after {
-
   content: '';
-
   display: table;
   clear: both;
 }
@@ -3322,14 +3250,6 @@ page {
 }
 /* end--高斯模糊tabbar底部处理--end */
 /* start--提升H5端uni.toast()的层级,避免被uView的modal等遮盖--start */
-
-
-
-
-
-
-
-
 /* end--提升H5端uni.toast()的层级,避免被uView的modal等遮盖--end */
 /* start--去除button的所有默认样式--start */
 .u-reset-button {
@@ -3343,102 +3263,35 @@ page {
   border: none;
 }
 /* end--去除button的所有默认样式--end */
-
-
-
-
-
-
-
 /* start--微信小程序编译后页面有组件名的元素,特别处理--start */
 u-td, u-th {
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
-  -webkit-align-self: stretch;
-          align-self: stretch;
+  flex: 1;
+  align-self: stretch;
 }
 .u-td {
   height: 100%;
 }
 u-icon {
-  display: -webkit-inline-box;
-  display: -webkit-inline-flex;
   display: inline-flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 u-grid {
   width: 100%;
-  -webkit-box-flex: 0;
-  -webkit-flex: 0 0 100%;
-          flex: 0 0 100%;
+  flex: 0 0 100%;
 }
 u-line {
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
+  flex: 1;
 }
 u-switch {
-  display: -webkit-inline-box;
-  display: -webkit-inline-flex;
   display: inline-flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 u-dropdown {
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
+  flex: 1;
 }
-
 /* end-微信小程序编译后页面有组件名的元素,特别处理--end */
-
-
-
-
-
 /* start--头条小程序编译后页面有组件名的元素,特别处理--start */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 /* end-头条小程序编译后页面有组件名的元素,特别处理--end */
-
-
-
-
-
-
-
-
-
-
-
 /* 解决头条小程序组件内引入字体不生效的问题 */
 ::-webkit-scrollbar {
   display: none;
@@ -3449,8 +3302,6 @@ u-dropdown {
 }
 u-divider {
   padding-bottom: 10px;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
 }
 

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
unpackage/dist/dev/mp-weixin/common/runtime.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/mp-weixin/common/vendor.js


Datei-Diff unterdrückt, da er zu groß ist
+ 59 - 61
unpackage/dist/dev/mp-weixin/pages/index/index.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.wxml

@@ -1 +1 @@
-<view class="content data-v-57280228"><u-navbar vue-id="8dd740cc-1" back-icon-size="0" title="星火纵横" title-color="{{mainColor}}" title-bold="{{true}}" class="data-v-57280228" bind:__l="__l"></u-navbar><block wx:for="{{cardList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><u-card class="card-box data-v-57280228" vue-id="{{'8dd740cc-2-'+index}}" head-border-bottom="{{false}}" foot-border-top="{{false}}" padding="0px" margin="10px" borderRadius="40" data-event-opts="{{[['^click',[['goToHandle',['$0'],[[['cardList','',index]]]]]]]}}" bind:click="__e" bind:__l="__l" vue-slots="{{['body']}}"><view class="card-content data-v-57280228" slot="body"><view class="{{['iconfont data-v-57280228',item.icon]}}"></view><view class="card-label data-v-57280228">{{item.label}}</view><view class="iconfont iconjinru data-v-57280228"></view></view></u-card></block><u-top-tips vue-id="8dd740cc-3" data-ref="uTips" class="data-v-57280228 vue-ref" bind:__l="__l"></u-top-tips></view>
+<view class="content data-v-57280228"><u-navbar vue-id="8dd740cc-1" back-icon-size="0" title="星火纵横" title-color="{{mainColor}}" title-bold="{{true}}" class="data-v-57280228" bind:__l="__l"></u-navbar><block wx:for="{{cardList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><u-card class="card-box data-v-57280228" vue-id="{{'8dd740cc-2-'+index}}" head-border-bottom="{{false}}" foot-border-top="{{false}}" padding="0px" margin="10px" borderRadius="40" data-event-opts="{{[['^click',[['goToHandle',['$0'],[[['cardList','',index]]]]]]]}}" bind:click="__e" bind:__l="__l" vue-slots="{{['body']}}"><view class="card-content data-v-57280228" slot="body"><view class="{{['iconfont','data-v-57280228',item.icon]}}"></view><view class="card-label data-v-57280228">{{item.label}}</view><view class="iconfont iconjinru data-v-57280228"></view></view></u-card></block><u-top-tips vue-id="8dd740cc-3" data-ref="uTips" class="data-v-57280228 vue-ref" bind:__l="__l"></u-top-tips></view>

+ 4 - 16
unpackage/dist/dev/mp-weixin/pages/index/index.wxss

@@ -51,37 +51,25 @@ page {
 }
 .content .card-box .card-content.data-v-57280228 {
   padding: 20px 15px;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 .content .card-box .card-content .iconfont.data-v-57280228 {
   width: 40px;
   height: 40px;
   font-size: 32px;
   color: #ff6e3e;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 .content .card-box .card-content .card-label.data-v-57280228 {
   font-size: 16px;
   font-weight: bold;
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
+  flex: 1;
   margin-left: 10px;
 }
 .content .card-box .card-content .iconjinru.data-v-57280228 {
   font-size: 22px;
-  -webkit-box-pack: end;
-  -webkit-justify-content: flex-end;
-          justify-content: flex-end;
+  justify-content: flex-end;
 }
 

Datei-Diff unterdrückt, da er zu groß ist
+ 55 - 56
unpackage/dist/dev/mp-weixin/pages/login/index.js


Datei-Diff unterdrückt, da er zu groß ist
+ 94 - 66
unpackage/dist/dev/mp-weixin/pages/news/index.js


+ 2 - 0
unpackage/dist/dev/mp-weixin/pages/news/index.json

@@ -2,7 +2,9 @@
   "navigationBarTitleText": "消息",
   "usingComponents": {
     "u-tabs-swiper": "/uview-ui/components/u-tabs-swiper/u-tabs-swiper",
+    "u-search": "/uview-ui/components/u-search/u-search",
     "u-card": "/uview-ui/components/u-card/u-card",
+    "u-button": "/uview-ui/components/u-button/u-button",
     "u-divider": "/uview-ui/components/u-divider/u-divider",
     "u-top-tips": "/uview-ui/components/u-top-tips/u-top-tips"
   }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/news/index.wxml


+ 6 - 0
unpackage/dist/dev/mp-weixin/pages/news/index.wxss

@@ -49,6 +49,12 @@ page {
 .content .swiper-box.data-v-452e6662 {
   height: calc(100vh - 34px);
 }
+.content .swiper-box .filter-box.data-v-452e6662 {
+  height: 48px;
+  padding: 10px 15px;
+  background-color: #FFFFFF;
+  border-top: 2px solid #f7f7f7;
+}
 .content .swiper-box .swiper-item.data-v-452e6662 {
   height: calc(100vh - 34px);
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 51 - 52
unpackage/dist/dev/mp-weixin/pages/user/index.js


+ 5 - 21
unpackage/dist/dev/mp-weixin/pages/user/index.wxss

@@ -78,15 +78,9 @@
   height: 110px;
   padding: 15px;
   float: left;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
-  -webkit-box-pack: center;
-  -webkit-justify-content: center;
-          justify-content: center;
+  align-items: center;
+  justify-content: center;
 }
 .content .user-handle {
   width: 100vw;
@@ -94,30 +88,20 @@
   float: left;
   padding: 0 15px;
   margin-bottom: 10px;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 .content .user-handle .handle-icon {
   width: 40px;
   height: 40px;
   text-align: center;
   line-height: 40px;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  align-items: center;
 }
 .content .user-handle .handle-label {
   height: 40px;
-  -webkit-box-flex: 1;
-  -webkit-flex: 1;
-          flex: 1;
+  flex: 1;
   margin-left: 10px;
   line-height: 40px;
   font-size: 15px;

Datei-Diff unterdrückt, da er zu groß ist
+ 140 - 73
unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.js


+ 1 - 0
unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.json

@@ -10,6 +10,7 @@
     "u-radio-group": "/uview-ui/components/u-radio-group/u-radio-group",
     "u-radio": "/uview-ui/components/u-radio/u-radio",
     "u-picker": "/uview-ui/components/u-picker/u-picker",
+    "u-action-sheet": "/uview-ui/components/u-action-sheet/u-action-sheet",
     "u-top-tips": "/uview-ui/components/u-top-tips/u-top-tips"
   }
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/mp-weixin/pagesClass/addClassForm.wxml


Datei-Diff unterdrückt, da er zu groß ist
+ 335 - 81
unpackage/dist/dev/mp-weixin/pagesClass/classDetail.js


+ 7 - 1
unpackage/dist/dev/mp-weixin/pagesClass/classDetail.json

@@ -3,11 +3,17 @@
   "usingComponents": {
     "u-card": "/uview-ui/components/u-card/u-card",
     "u-icon": "/uview-ui/components/u-icon/u-icon",
+    "u-button": "/uview-ui/components/u-button/u-button",
     "u-grid": "/uview-ui/components/u-grid/u-grid",
     "u-grid-item": "/uview-ui/components/u-grid-item/u-grid-item",
     "u-image": "/uview-ui/components/u-image/u-image",
-    "u-button": "/uview-ui/components/u-button/u-button",
     "u-action-sheet": "/uview-ui/components/u-action-sheet/u-action-sheet",
+    "u-popup": "/uview-ui/components/u-popup/u-popup",
+    "u-form": "/uview-ui/components/u-form/u-form",
+    "u-form-item": "/uview-ui/components/u-form-item/u-form-item",
+    "u-input": "/uview-ui/components/u-input/u-input",
+    "u-radio-group": "/uview-ui/components/u-radio-group/u-radio-group",
+    "u-radio": "/uview-ui/components/u-radio/u-radio",
     "u-top-tips": "/uview-ui/components/u-top-tips/u-top-tips"
   }
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/mp-weixin/pagesClass/classDetail.wxml


+ 45 - 6
unpackage/dist/dev/mp-weixin/pagesClass/classDetail.wxss

@@ -57,8 +57,6 @@ page {
 }
 .content .class-student-col.data-v-66437308 {
   height: 28px;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
   padding: 0 10px;
   line-height: 28px;
@@ -75,11 +73,8 @@ page {
   color: #FFFFFF;
 }
 .content .class-student-box.data-v-66437308 {
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-justify-content: space-around;
-          justify-content: space-around;
+  justify-content: space-around;
 }
 .content .class-show-box.data-v-66437308 {
   width: 100%;
@@ -112,4 +107,48 @@ page {
   width: 100%;
   height: 30vw;
 }
+.content .menber-box.data-v-66437308 {
+  width: 100%;
+  padding: 10px 15px;
+  margin-bottom: 10px;
+}
+.content .menber-box .menber-col.data-v-66437308 {
+  width: 100%;
+  padding: 15px;
+  margin-bottom: 10px;
+  display: inline-block;
+  background-color: #FFFFFF;
+  border-radius: 15px;
+  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
+  position: relative;
+  overflow: hidden;
+  box-sizing: border-box;
+}
+.content .menber-box .menber-col .menber-label.data-v-66437308 {
+  width: 100%;
+  margin-bottom: 5px;
+  float: left;
+  font-size: 14px;
+}
+.content .menber-box .menber-col .menber-num.data-v-66437308 {
+  width: 100%;
+  float: left;
+  font-size: 26px;
+  line-height: 28px;
+  color: #ff6e3e;
+}
+.content .menber-box .menber-col .menber-icon.data-v-66437308 {
+  font-size: 100px;
+  color: #ff6e3e;
+  position: absolute;
+  right: -5px;
+  bottom: -30px;
+  opacity: 0.5;
+}
+.content .common-title.data-v-66437308 {
+  width: 100%;
+  text-align: center;
+  font-size: 20px;
+  margin: 10px 0;
+}
 

Datei-Diff unterdrückt, da er zu groß ist
+ 51 - 32
unpackage/dist/dev/mp-weixin/pagesClass/classList.js


Datei-Diff unterdrückt, da er zu groß ist
+ 56 - 59
unpackage/dist/dev/mp-weixin/pagesClass/courseForm.js


Datei-Diff unterdrückt, da er zu groß ist
+ 59 - 62
unpackage/dist/dev/mp-weixin/pagesClass/extraLessonsForm.js


+ 2 - 8
unpackage/dist/dev/mp-weixin/pagesClass/extraLessonsForm.wxss

@@ -62,14 +62,8 @@ page {
   height: 128rpx;
   border-radius: 50%;
   border: 1px solid #999999;
-  display: -webkit-box;
-  display: -webkit-flex;
   display: flex;
-  -webkit-box-pack: center;
-  -webkit-justify-content: center;
-          justify-content: center;
-  -webkit-box-align: center;
-  -webkit-align-items: center;
-          align-items: center;
+  justify-content: center;
+  align-items: center;
 }
 

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.