Selaa lähdekoodia

'保存一下'

wyling 4 vuotta sitten
vanhempi
commit
3ef44a7e27
78 muutettua tiedostoa jossa 1958 lisäystä ja 825 poistoa
  1. 6 1
      App.vue
  2. 6 1
      api/answer.js
  3. 48 5
      api/applist.js
  4. 1 0
      api/baseurl.js
  5. 4 2
      api/login.js
  6. 33 6
      api/studytime.js
  7. 127 41
      components/home/index.vue
  8. 64 0
      components/skeleton/index/index.vue
  9. 7 4
      pages.json
  10. 46 27
      pages/browserecord/index.vue
  11. 46 27
      pages/collectionList/index.vue
  12. 155 64
      pages/index/components/applist/index.vue
  13. 24 12
      pages/index/components/user/index.vue
  14. 22 3
      pages/question/mockExam.vue
  15. 22 3
      pages/question/random.vue
  16. 23 3
      pages/question/sequential.vue
  17. 22 6
      pages/question/wrongTitle.vue
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/home/index.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/skeleton/index/index.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/square/index.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/xuan-switch/xuan-switch.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/browserecord/index.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/collectionList/index.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/applist/index.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/find/index.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/topic/index.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/user/index.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/mockExam.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/random.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/sequential.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/wrongTitle.js.map
  36. 6 2
      unpackage/dist/dev/mp-weixin/app.json
  37. 12 8
      unpackage/dist/dev/mp-weixin/common/main.js
  38. 3 0
      unpackage/dist/dev/mp-weixin/common/main.wxss
  39. 2 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  40. 290 153
      unpackage/dist/dev/mp-weixin/common/vendor.js
  41. 123 52
      unpackage/dist/dev/mp-weixin/components/home/index.js
  42. 0 0
      unpackage/dist/dev/mp-weixin/components/home/index.wxml
  43. 52 31
      unpackage/dist/dev/mp-weixin/components/home/index.wxss
  44. 155 0
      unpackage/dist/dev/mp-weixin/components/skeleton/index/index.js
  45. 4 0
      unpackage/dist/dev/mp-weixin/components/skeleton/index/index.json
  46. 1 0
      unpackage/dist/dev/mp-weixin/components/skeleton/index/index.wxml
  47. 72 0
      unpackage/dist/dev/mp-weixin/components/skeleton/index/index.wxss
  48. 12 12
      unpackage/dist/dev/mp-weixin/components/square/index.js
  49. 12 12
      unpackage/dist/dev/mp-weixin/components/xuan-switch/xuan-switch.js
  50. 65 49
      unpackage/dist/dev/mp-weixin/pages/browserecord/index.js
  51. 3 1
      unpackage/dist/dev/mp-weixin/pages/browserecord/index.json
  52. 1 1
      unpackage/dist/dev/mp-weixin/pages/browserecord/index.wxml
  53. 2 1
      unpackage/dist/dev/mp-weixin/pages/browserecord/index.wxss
  54. 65 49
      unpackage/dist/dev/mp-weixin/pages/collectionList/index.js
  55. 3 1
      unpackage/dist/dev/mp-weixin/pages/collectionList/index.json
  56. 1 1
      unpackage/dist/dev/mp-weixin/pages/collectionList/index.wxml
  57. 2 1
      unpackage/dist/dev/mp-weixin/pages/collectionList/index.wxss
  58. 153 103
      unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.js
  59. 4 2
      unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.json
  60. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.wxml
  61. 21 17
      unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.wxss
  62. 13 13
      unpackage/dist/dev/mp-weixin/pages/index/components/find/index.js
  63. 12 12
      unpackage/dist/dev/mp-weixin/pages/index/components/topic/index.js
  64. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/components/user/index.js
  65. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/components/user/index.wxml
  66. 15 15
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  67. 45 21
      unpackage/dist/dev/mp-weixin/pages/question/mockExam.js
  68. 0 0
      unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxml
  69. 43 19
      unpackage/dist/dev/mp-weixin/pages/question/random.js
  70. 0 0
      unpackage/dist/dev/mp-weixin/pages/question/random.wxml
  71. 45 21
      unpackage/dist/dev/mp-weixin/pages/question/sequential.js
  72. 0 0
      unpackage/dist/dev/mp-weixin/pages/question/sequential.wxml
  73. 40 19
      unpackage/dist/dev/mp-weixin/pages/question/wrongTitle.js
  74. 0 0
      unpackage/dist/dev/mp-weixin/pages/question/wrongTitle.wxml
  75. 7 0
      unpackage/dist/dev/mp-weixin/sitemap50.json
  76. 7 0
      unpackage/dist/dev/mp-weixin/sitemap53.json
  77. 1 1
      utils/request.js
  78. 9 0
      utils/utils.js

+ 6 - 1
App.vue

@@ -7,12 +7,14 @@
 	export default {
 		onLaunch: function() {
 			console.log('App Launch')
+			wx.getSystemInfo().then(res=>{
+				uni.setStorageSync('sysInfo',res)
+			})
 		},
 		onShow: function() {
 			console.log('App Show')
 		},
 		onHide: function() {
-			removeToken()
 			console.log('App Hide')
 		}
 	}
@@ -29,4 +31,7 @@
 	html{
 		background-color: #F1F1F1;
 	}
+	.night{
+		filter: invert(1) hue-rotate(180deg);
+	}
 </style>

+ 6 - 1
api/answer.js

@@ -1,6 +1,9 @@
 import request from '@/utils/request'
 
-const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
+import {
+	baseUrl
+}
+from '@/api/baseurl'
 
 
 // 获取题库列表
@@ -48,3 +51,5 @@ export function questionErrorDel(ids) {
 		method: 'delete'
 	})
 }
+
+

+ 48 - 5
api/applist.js

@@ -1,14 +1,16 @@
 import request from '@/utils/request'
 
-const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
-
+import {
+	baseUrl
+}
+from '@/api/baseurl'
 
 
 
-// 查询精选商家列表
-export function featuredAppList(params) {
+// 按品类查询商家列表
+export function getTypeAppList(id,params) {
 	return request({
-		url: baseUrl + '/student/applet/customer/getCustomerListByCollectionCount',
+		url: baseUrl + `/student/applet/customer/getCustomerListByProductId/${id}`,
 		method: 'get',
 		params
 	})
@@ -31,3 +33,44 @@ export function getBrowseRecordInfoList(params) {
 		params
 	})
 }
+
+// 查询品类列表
+export function typeList(params) {
+	return request({
+		url: baseUrl + '/student/applet/product/info/list',
+		method: 'get',
+		params
+	})
+}
+
+// 收藏商家
+export function addFavorites(id) {
+	return request({
+		url: baseUrl + `/student/applet/collection/collectionBusiness/${id}`,
+		method: 'put'
+	})
+}
+
+// 删除收藏
+export function delFavorites(ids) {
+	return request({
+		url: baseUrl + `/student/applet/collection/cancelCollection/${ids}`,
+		method: 'delete'
+	})
+}
+
+// 新增记录
+export function BrowseRecordAdd(id) {
+	return request({
+		url: baseUrl + `/student/applet/record/info/insertBrowseRecord/${id}`,
+		method: 'put'
+	})
+}
+
+// 删除记录
+export function BrowseRecordDel(ids) {
+	return request({
+		url: baseUrl + `/student/applet/record/info/${ids}`,
+		method: 'delete'
+	})
+}

+ 1 - 0
api/baseurl.js

@@ -0,0 +1 @@
+export const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';

+ 4 - 2
api/login.js

@@ -1,6 +1,8 @@
 import request from '@/utils/request'
-
-const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
+import {
+	baseUrl
+}
+from '@/api/baseurl'
 
 //微信小程序登录code
 function unilogin() {

+ 33 - 6
api/studytime.js

@@ -1,15 +1,42 @@
 import request from '@/utils/request'
 
-const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
+import {
+	baseUrl
+}
+from '@/api/baseurl'
+
+
 
 
+// 上传学时
+export function addTime(data) {
+	return request({
+		url: baseUrl + '/student/gzpt-train-record',
+		method: 'post',
+		data
+	})
+}
 
+// 查询已完成科目学时
+export function getTime(data) {
+	return request({
+		url: baseUrl + '/student/gzpt-train-record/getTrainFinishKm',
+		method: 'get'
+	})
+}
 
-// 查询精选商家列表
-export function featuredAppList(params) {
+// 查询额定学时
+export function getTimeInfo(data) {
 	return request({
-		url: baseUrl + '/student/applet/customer/getCustomerListByCollectionCount',
-		method: 'get',
-		params
+		url: baseUrl + '/student/gzpt-train-record/getTrainSubjectCredit',
+		method: 'get'
 	})
 }
+
+// 获取学员详细信息
+export function getStudentInfo(data) {
+	return request({
+		url: baseUrl + '/student/gzpt/userInfo',
+		method: 'get'
+	})
+}

+ 127 - 41
components/home/index.vue

@@ -2,24 +2,27 @@
 	<view class="content">
 		<view class="top-box">
 			<van-row>
-				<van-col span="18">
+				<van-col span="24">
 					<view class="timingBox">
 						<view class="classHourStatistics">
+							<view class="unbind" v-if="unbindFlag">
+								<text>未绑定身份证\n前往我的页面绑定</text>
+							</view>
 							<view class="timing-item">
 								<text>科一学时</text>
-								<text class="timing-time">12/23</text>
+								<text class="timing-time">{{infoData.km1+0}}/{{info[0].ration+0}}</text>
 							</view>
 							<view class="timing-item">
 								<text>科二学时</text>
-								<text class="timing-time">12/123</text>
+								<text class="timing-time">{{infoData.km2+0}}/{{info[1].ration+info[2].ration}}</text>
 							</view>
 							<view class="timing-item">
 								<text>科三学时</text>
-								<text class="timing-time">12/80</text>
+								<text class="timing-time">{{infoData.km3+0}}/{{info[3].ration+info[4].ration}}</text>
 							</view>
 							<view class="timing-item">
 								<text>科四学时</text>
-								<text class="timing-time">12/20</text>
+								<text class="timing-time">{{infoData.km4+0}}/{{info[5].ration+0}}</text>
 							</view>
 						</view>
 						<view class="jsbox">
@@ -28,25 +31,26 @@
 								<text>我要计时</text>
 							</view>
 							<view :class="['js',{dh:dhfalg}]">
-								<button class="jsbtn" @click='timeBtn'>{{timeTitle}}</button>
+								<van-button :loading='btnLoading' :loading-text='loadingText' custom-class="jsbtn" @click='timeBtn'>{{timeTitle}}</van-button>
 								<text class="timeText">{{timeText}}</text>
 							</view>
-							<text class="ts">注:退出本小程序即停止计时</text>
+							<text class="ts">注:退出即停止计时,不满60s不计入学时</text>
 						</view>
 					</view>
 				</van-col>
-				<van-col span="6">
+				<!-- <van-col span="6">
 					<square icon='/static/imgs/包过保证icon.png' title='包过保证' @tap='go()' />
 					<square icon='/static/imgs/模拟考试icon.png' title='模拟考试' @tap="go('/pages/question/mockExam')" />
-				</van-col>
+				</van-col> -->
 			</van-row>
 
 			<van-row>
 				<van-col span="6">
-					<square icon='/static/imgs/图标练习icon.png' title='图标练习' @tap='go()' />
+					<!-- <square icon='/static/imgs/图标练习icon.png' title='图标练习' @tap='go()' /> -->
+					<square icon='/static/imgs/模拟考试icon.png' title='模拟考试' @tap="go('/pages/question/mockExam')" />
 				</van-col>
 				<van-col span="6">
-					<square icon='/static/imgs/顺序测试icon.png' title='顺序测试' @tap="go('/pages/question/sequential')"/>
+					<square icon='/static/imgs/顺序测试icon.png' title='顺序测试' @tap="go('/pages/question/sequential')" />
 				</van-col>
 				<van-col span="6">
 					<square icon='/static/imgs/随机测试icon.png' title='随机测试' @tap="go('/pages/question/random')" />
@@ -71,7 +75,7 @@
 					<text class="video-box-tit">考点视频</text>
 					<button class="video-box-btn" @tap='go()'>去观看</button>
 				</view>
-				
+
 				<video class="myVideo" id="myVideo2" src="http://image.jppt.com.cn/zzjs/2021-03-18/media/1616051225707.mp4"
 				 object-fit='fill' controls @play='videoPlay2'></video>
 				<view class="tit-box">
@@ -122,6 +126,14 @@
 
 <script>
 	import square from '@/components/square/index.vue'
+	import {
+		addTime,
+		getTime,
+		getTimeInfo
+	} from '@/api/studytime.js'
+	import {
+		getInfo
+	} from '@/api/login.js'
 	export default {
 		components: {
 			square
@@ -130,18 +142,37 @@
 			return {
 				dhfalg: false,
 				timeText: "00:00:00",
-				timeTitle: '开始计时',
+				timeTitle: '开始',
+				info: [],
+				infoData: {},
+				unbindFlag: false,
 				timeStatus: 0,
-				timeFn: this.timeStart()
+				timeFn: this.timeStart(),
+				btnLoading: false,
+				loadingText: ''
 			}
 		},
 		mounted() {
-			if (uni.getStorageSync('time')) {
-				this.timeText = new Date(uni.getStorageSync('time')).toJSON().slice(11, -5)
-				this.timeTitle = '恢复计时'
-			}
+			this.initInfo()
 		},
 		methods: {
+			async initInfo() {
+				if (uni.getStorageSync('time')) {
+					this.timeText = new Date(uni.getStorageSync('time')).toJSON().slice(11, -5)
+					this.timeTitle = '继续'
+				}
+				let studentInfo = await getInfo()
+				if (studentInfo.data.student.gzptUserId) {
+					let info = await getTimeInfo()
+					this.info = info.rows
+					let infoData = await getTime()
+					this.infoData = infoData.rows[0]
+				} else {
+					//未绑定身份证
+					this.unbindFlag = true
+				}
+
+			},
 			videoPlay(e) {
 				uni.createVideoContext('myVideo2', this).pause();
 			},
@@ -149,21 +180,60 @@
 				uni.createVideoContext('myVideo', this).pause();
 			},
 			go(url) {
-				uni.navigateTo({url});
+				uni.navigateTo({
+					url
+				});
 			},
 			timeBtn(e) {
 				let timeObj = this.timeFn();
 				console.log(timeObj)
 				if (timeObj.timeStatus == 1) {
 					this.dhfalg = true;
-					console.log('开始计时', e)
-					this.timeTitle = '点击上传学时'
+					this.loadingText = '计时中'
+					this.btnLoading = true;
+					setTimeout(() => {
+						this.btnLoading = false;
+						this.timeTitle = '上传学时'
+					}, 1000)
 				}
 				if (timeObj.timeStatus == 2) {
 					this.dhfalg = false;
-					console.log('上传学时')
-					this.timeText = "上传成功"
-					this.timeTitle = '开始计时'
+					this.loadingText = '上传中'
+					this.btnLoading = true;
+					try {
+						let sysInfo = uni.getStorageSync('sysInfo')
+						addTime({
+							beginTime: new Date(timeObj.start).toISOString().slice(0, -5).replace('T', ' '),
+							endTime: new Date(timeObj.end).toISOString().slice(0, -5).replace('T', ' '),
+							isSubmit: 6,
+							pxkm: this.infoData.km1 >= this.info[5].ration ? 4 : 1,
+							classid: '小程序',
+							reason: `小程序&${sysInfo.platform}&${sysInfo.model}`,
+							source: 1,
+							trainType: `小程序`,
+							trainTime: ~~(timeObj.time / 60 / 1000)
+						}).then(res => {
+							if (res.code == 200) {
+								this.btnLoading = false;
+								this.timeText = "上传成功"
+								uni.removeStorageSync('timeStart')
+								uni.removeStorageSync('time')
+								this.timeTitle = '开始'
+							} else {
+								this.btnLoading = false;
+								console.log('上传学时异常!!')
+								this.timeTitle = '恢复'
+							}
+						}, err => {
+							this.btnLoading = false;
+							console.log('上传学时异常!!')
+							this.timeTitle = '恢复'
+						})
+					} catch (e) {
+						this.btnLoading = false;
+						this.timeTitle = '恢复'
+					}
+
 				}
 			},
 			timeStart() {
@@ -190,22 +260,23 @@
 							this.timeText = new Date(time).toJSON().slice(11, -5)
 						}, 100)
 						return {
-							start,
+							start: uni.getStorageSync('timeStart'),
 							time,
 							timeStatus
 						}
 					}
 					if (timeStatus >= 2) {
 						timeStatus = 0;
-						clearInterval(timerID);
-						uni.removeStorageSync('timeStart')
-						uni.removeStorageSync('time')
-						return {
-							start,
+						let timeObj = {
+							start: uni.getStorageSync('timeStart'),
 							end: new Date().getTime(),
-							time,
+							time: uni.getStorageSync('time'),
 							timeStatus: 2
 						}
+						clearInterval(timerID);
+						// uni.removeStorageSync('timeStart')
+						// uni.removeStorageSync('time')
+						return timeObj
 					}
 
 				}
@@ -214,7 +285,7 @@
 	}
 </script>
 
-<style lang="scss" scoped>
+<style lang="scss">
 	.dh {
 		position: relative;
 
@@ -306,8 +377,7 @@
 	.item-box {
 		background-color: #fff;
 		border-radius: 10rpx;
-		margin: 30rpx;
-
+		margin: 10rpx 30rpx;
 
 		.item-titBox {
 			display: flex;
@@ -346,6 +416,7 @@
 				display: flex;
 				justify-content: space-between;
 				padding: 10rpx 0 26rpx;
+
 				.video-box-tit {
 					height: 31rpx;
 					font-size: 20rpx;
@@ -377,7 +448,22 @@
 
 
 	.top-box {
-		margin: 20rpx;
+		margin: 10rpx 20rpx;
+	}
+
+	.unbind {
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		left: 0;
+		top: 0;
+		background-color: rgba(35, 34, 33, 0.2);
+		z-index: 10;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		text-align: center;
+		color: red;
 	}
 
 	.timingBox {
@@ -388,29 +474,29 @@
 		display: flex;
 		flex-direction: column;
 		justify-content: space-between;
-		padding: 5%;
+		padding: 2% 5%;
 		box-sizing: border-box;
-
+		position: relative;
+		overflow: hidden;
+		
 		.classHourStatistics {
 			display: flex;
 			justify-content: space-between;
 
 			.timing-item {
 				height: 80rpx;
-				// box-shadow: -2rpx -2rpx 5rpx #5a5a5a;
+				// box-shadow: -2rpx 2rpx 5rpx #5a5a5a;
 				display: flex;
 				flex-direction: column;
 				justify-content: space-between;
 				align-items: center;
 				font-size: .8rem;
-				padding: 15rpx 5rpx;
+				padding: 25rpx 15rpx;
 				border-radius: 10rpx;
 
 				.timing-time {
 					font-size: .8rem;
-					background-color: #fff;
 					border-radius: 10rpx;
-					// box-shadow: -2px -2px 5px #5a5a5a;
 				}
 			}
 		}

+ 64 - 0
components/skeleton/index/index.vue

@@ -0,0 +1,64 @@
+<template>
+	<view class="skeleton-box">
+		<view v-if="loading" class="skeleton">
+			<text>数据加载中...</text>
+			<!-- <view class="led" :style="{'--i':index,'--all':25}" v-for="(item,index) in 25" :key='index' /> -->
+		</view>
+		<van-transition v-else-if="list.length==0" name="fade-up">
+			<view class="skeleton">
+				暂时没有数据
+			</view>
+		</van-transition>
+		<van-transition v-else name="fade-up">
+			<slot></slot>
+		</van-transition>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			loading: {
+				type: Boolean,
+				default: true
+			},
+			list: {
+				type: Array,
+				default: [1]
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.skeleton {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		padding: 50rpx;
+		height: 320rpx;
+	}
+
+	.led {
+		width: 10rpx;
+		height: 30rpx;
+		border-radius: 10rpx;
+		top: 50rpx;
+		position: absolute;
+		transform: rotate(calc(360deg / var(--all) * var(--i)));
+		transform-origin: 0 160rpx;
+		animation: loading 2s linear infinite;
+		animation-delay: calc(var(--i) * 1s);
+		background-color: green;
+	}
+
+	@keyframes loading {
+		from {
+			opacity: 0;
+		}
+
+		to {
+			opacity: 1;
+		}
+	}
+</style>

+ 7 - 4
pages.json

@@ -74,10 +74,13 @@
 			"van-skeleton": "/wxcomponents/vant/skeleton/index",
 			"van-field": "/wxcomponents/vant/field/index",
 			"van-area": "/wxcomponents/vant/area/index",
-			 "van-button": "/wxcomponents/vant/button/index",
-			 "van-divider": "/wxcomponents/vant/divider/index",
-			 "van-count-down": "/wxcomponents/vant/count-down/index",
-			 "van-dialog": "/wxcomponents/vant/dialog/index"
+			"van-button": "/wxcomponents/vant/button/index",
+			"van-divider": "/wxcomponents/vant/divider/index",
+			"van-count-down": "/wxcomponents/vant/count-down/index",
+			"van-dialog": "/wxcomponents/vant/dialog/index",
+			"van-tab": "/wxcomponents/vant/tab/index",
+			"van-tabs": "/wxcomponents/vant/tabs/index",
+			"van-share-sheet": "/wxcomponents/vant/share-sheet/index"
 		}
 	}
 }

+ 46 - 27
pages/browserecord/index.vue

@@ -1,47 +1,53 @@
 <template>
 	<view class="content">
-
-		<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item.appletAddress)">
-			<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
-				<view class="item-right">
-					<view class="top">
-						<van-icon class="icon" name="/static/imgs/收藏.png" size='15' />
-						<van-icon class="icon" name="/static/imgs/转发.png" size='14' />
-						<van-icon class="icon" name="/static/imgs/不喜欢.png" size='12' />
-					</view>
-					<view class="center">
-						<text class="details">{{item.appletIntroduce}}</text>
-					</view>
-					<view class="bottom">
-						<text class="title">{{item.corporateName}}</text>
-						<view class="right" v-if="false">
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
-								<text>54</text>
-							</view>
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
-								<text>99%</text>
+		<loadSke :loading='loading'>
+			<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item.appletAddress)">
+				<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
+					<view class="item-right">
+						<view class="top">
+							<van-icon class="icon" name="/static/imgs/转发.png" size='14' />
+							<van-icon class="icon" name="/static/imgs/不喜欢.png" @tap.stop='delSc(index)' size='12' />
+						</view>
+						<view class="center">
+							<text class="details">{{item.appletIntroduce}}</text>
+						</view>
+						<view class="bottom">
+							<text class="title">{{item.corporateName}}</text>
+							<view class="right" v-if="false">
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
+									<text>54</text>
+								</view>
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
+									<text>99%</text>
+								</view>
 							</view>
 						</view>
 					</view>
-				</view>
-		</view>
+			</view>
+		</loadSke>
 	</view>
 
 </template>
 
 <script>
+	import loadSke from '@/components/skeleton/index/index.vue'
 	import {
-		getBrowseRecordInfoList
+		getBrowseRecordInfoList,
+		BrowseRecordDel
 	} from '@/api/applist.js'
 	export default {
+		components:{
+			loadSke
+		},
 		data() {
 			return {
 				active: 0,
 				current: 0,
 				mode: 'round',
-				applist: {}
+				applist: {},
+				loading:true
 			}
 		},
 		mounted() {
@@ -55,6 +61,18 @@
 				}).then(res => {
 					console.log(res)
 					this.applist = res.rows
+					this.$nextTick(()=>{
+						this.loading=false
+					})
+				})
+			},
+			delSc(index) {
+				BrowseRecordDel(this.applist[index].id).then(res => {
+					if (res.code == 200) {
+						this.$set(this.applist[index], 'collectionStatus', '0')
+						this.Toast('取消收藏成功!');
+						delete this.applist.splice(index, 1)
+					}
 				})
 			},
 			goMiniApp(appId) {
@@ -158,7 +176,8 @@
 
 			.top {
 				.icon {
-					margin-left: 35rpx;
+					margin-top: -20rpx;
+					padding: 20rpx;
 				}
 
 				display: flex;

+ 46 - 27
pages/collectionList/index.vue

@@ -1,47 +1,53 @@
 <template>
 	<view class="content">
-
-		<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item.appletAddress)">
-			<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
-				<view class="item-right">
-					<view class="top">
-						<van-icon class="icon" name="/static/imgs/收藏.png" size='15' />
-						<van-icon class="icon" name="/static/imgs/转发.png" size='14' />
-						<van-icon class="icon" name="/static/imgs/不喜欢.png" size='12' />
-					</view>
-					<view class="center">
-						<text class="details">{{item.appletIntroduce}}</text>
-					</view>
-					<view class="bottom">
-						<text class="title">{{item.corporateName}}</text>
-						<view class="right" v-if="false">
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
-								<text>54</text>
-							</view>
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
-								<text>99%</text>
+		<loadSke :loading='loading'>
+			<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item.appletAddress)">
+				<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
+					<view class="item-right">
+						<view class="top">
+							<van-icon class="icon" name="/static/imgs/转发.png" size='14' />
+							<van-icon class="icon" name="/static/imgs/不喜欢.png" @tap.stop='delSc(index)' size='12' />
+						</view>
+						<view class="center">
+							<text class="details">{{item.appletIntroduce}}</text>
+						</view>
+						<view class="bottom">
+							<text class="title">{{item.corporateName}}</text>
+							<view class="right" v-if="false">
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
+									<text>54</text>
+								</view>
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
+									<text>99%</text>
+								</view>
 							</view>
 						</view>
 					</view>
-				</view>
-		</view>
+			</view>
+		</loadSke>
 	</view>
 
 </template>
 
 <script>
+	import loadSke from '@/components/skeleton/index/index.vue'
 	import {
-		collectionList
+		collectionList,
+		delFavorites
 	} from '@/api/applist.js'
 	export default {
+		components: {
+			loadSke
+		},
 		data() {
 			return {
 				active: 0,
 				current: 0,
 				mode: 'round',
-				applist: {}
+				applist: {},
+				loading: true
 			}
 		},
 		mounted() {
@@ -55,6 +61,18 @@
 				}).then(res => {
 					console.log(res)
 					this.applist = res.rows
+					this.$nextTick(() => {
+						this.loading = false
+					})
+				})
+			},
+			delSc(index) {
+				delFavorites(this.applist[index].customerId).then(res => {
+					if (res.code == 200) {
+						this.$set(this.applist[index], 'collectionStatus', '0')
+						this.Toast('取消收藏成功!');
+						delete this.applist.splice(index, 1)
+					}
 				})
 			},
 			goMiniApp(appId) {
@@ -158,7 +176,8 @@
 
 			.top {
 				.icon {
-					margin-left: 35rpx;
+					margin-top: -20rpx;
+					padding: 20rpx;
 				}
 
 				display: flex;

+ 155 - 64
pages/index/components/applist/index.vue

@@ -15,72 +15,75 @@
 
 		<view class="sticky">
 			<view class="grid">
-				<view class="grid-item" @click="comname=`xueche`">
-					<van-icon name="/static/imgs/学车.png" size="20px" />
+				<view class="grid-item" :class="{border:listType==0}" @click="listType=0">
+					<!-- <van-icon name="/static/imgs/学车.png" size="40px" /> -->
 					<text class="text">精选</text>
 				</view>
-				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/imgs/买车.png" size="20px" />
-					<text class="text">买车</text>
-				</view>
-				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/imgs/美食.png" size="20px" />
-					<text class="text">美食</text>
-				</view>
-				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/imgs/房产.png" size="20px" />
-					<text class="text">房产</text>
-				</view>
-				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/imgs/宠物.png" size="20px" />
-					<text class="text">宠物</text>
-				</view>
-				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/imgs/影院.png" size="20px" />
-					<text class="text">院线</text>
+				<view class="grid-item" :class="{border:listType==item.id}" @click="listType=item.id" v-for="(item,index) in typeList"
+				 :key='index'>
+					<!-- <van-icon :name="item.fileUrl || '/static/imgs/买车.png'" size="40px" /> -->
+					<text class="text">{{item.productName}}</text>
 				</view>
 			</view>
 		</view>
 
-		<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item.appletAddress)">
-			<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
-				<view class="item-right">
-					<view class="top">
-						<van-icon class="icon" name="/static/imgs/收藏.png" size='15' />
-						<van-icon class="icon" name="/static/imgs/转发.png" size='14' />
-						<van-icon class="icon" name="/static/imgs/不喜欢.png" size='12' />
-					</view>
-					<view class="center">
-						<text class="details">{{item.appletIntroduce}}</text>
-					</view>
-					<view class="bottom">
-						<text class="title">{{item.corporateName}}</text>
-						<view class="right" v-if="false">
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
-								<text>54</text>
-							</view>
-							<view class="flex">
-								<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
-								<text>99%</text>
+		<loadSke :loading='loading' :list='applist'>
+			<view class='list-item' v-for="(item, index) in applist" :key="index" @click="goMiniApp(item)">
+				<image class="avatar" mode="aspectFill" :src="item.appletLogoFileUrl">
+					<view class="item-right">
+						<view class="top">
+							<van-icon class="icon" v-if="item.collectionStatus=='0'" @tap.stop='addSc(index)' name="/static/imgs/收藏.png"
+							 size='15' />
+							<van-icon class="icon" v-else name="/static/imgs/已收藏.png" @tap.stop='delSc(index)' size='15' />
+							<van-icon class="icon" name="/static/imgs/转发.png" @tap.stop='showShare=true' size='14' />
+							<!-- <van-icon class="icon" name="/static/imgs/不喜欢.png" size='12' /> -->
+						</view>
+						<view class="center">
+							<text class="details">{{item.appletIntroduce}}</text>
+						</view>
+						<view class="bottom">
+							<text class="title">{{item.corporateName}}</text>
+							<view class="right" v-if="false">
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
+									<text>54</text>
+								</view>
+								<view class="flex">
+									<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
+									<text>99%</text>
+								</view>
 							</view>
 						</view>
 					</view>
-				</view>
-		</view>
+			</view>
+		</loadSke>
+
+		<van-share-sheet :show="showShare" :options="options" @select="onSelect" @close='shareClose' />
 	</view>
 
 </template>
 
 <script>
+	import loadSke from '@/components/skeleton/index/index.vue'
 	import {
-		featuredAppList
+		debounce
+	} from '@/utils/utils.js'
+	import {
+		typeList,
+		getTypeAppList,
+		addFavorites,
+		delFavorites,
+		BrowseRecordAdd
 	} from '@/api/applist.js'
 	export default {
+		components: {
+			loadSke
+		},
 		data() {
 			return {
 				comname: 'xueche',
 				active: 0,
+				tabActive: 0,
 				info: [{
 						colorClass: 'uni-bg-red',
 						url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg',
@@ -99,27 +102,105 @@
 				],
 				current: 0,
 				mode: 'round',
-				applist: {}
+				applist: [],
+				typeList: {},
+				listType: 0,
+				loading: true,
+				showShare: false,
+				options: [{
+						name: '微信',
+						icon: 'wechat',
+						openType: 'share'
+					},
+					{
+						name: '微博',
+						icon: 'weibo'
+					},
+					{
+						name: 'QQ',
+						icon: 'qq'
+					},
+					{
+						name: '二维码',
+						icon: 'qrcode'
+					},
+				],
 			}
 		},
 		mounted() {
 			this.initAppList()
 		},
+		watch: {
+			listType(val) {
+				this.loading = true
+				getTypeAppList(val, {
+					pageNum: 1,
+					pageSize: 10
+				}).then(res => {
+					this.applist = res.rows
+					this.$nextTick(() => {
+						this.loading = false
+					})
+				})
+			}
+		},
 		methods: {
 			initAppList() {
+				typeList().then(res => {
+					this.typeList = res.rows
+				})
+				getTypeAppList(0, {
+					pageNum: 1,
+					pageSize: 10
+				}).then(res => {
+					this.applist = res.rows
+					this.$nextTick(() => {
+						this.loading = false
+					})
+				})
+			},
+			addSc(index) {
+				addFavorites(this.applist[index].id).then(res => {
+					if (res.code == 200) {
+						this.$set(this.applist[index], 'collectionStatus', '1')
+						this.Toast('收藏成功!');
+					}
+				})
+			},
+			delSc(index) {
+				delFavorites(this.applist[index].id).then(res => {
+					if (res.code == 200) {
+						this.$set(this.applist[index], 'collectionStatus', '0')
+						this.Toast('取消收藏成功!');
+					}
+				})
+			},
+			shareClose() {
+				this.showShare = false;
+			},
+			onSelect(event) {
+				this.Toast(event.detail.name);
+				this.onClose();
+			},
+			getAppList() {
 				featuredAppList({
 					pageNum: 1,
 					pageSize: 10
 				}).then(res => {
 					console.log(res)
 					this.applist = res.rows
+					this.$nextTick(() => {
+						this.loading = false
+					})
 				})
 			},
-			goMiniApp(appId) {
+			goMiniApp(item) {
 				wx.navigateToMiniProgram({
-					appId,
-					success(res) {
+					appId: item.appletAddress,
+					success: (res) => {
 						// 打开成功
+						console.log('打开成功', item)
+						BrowseRecordAdd(item.id)
 					}
 				})
 			}
@@ -142,10 +223,10 @@
 
 	.sticky-top {
 		position: sticky;
-		top: 192rpx;
+		top: 56vw;
 		left: 0;
-		margin: 30rpx 30rpx;
-		border-radius: 20rpx;
+		// margin: 30rpx 30rpx;
+		// border-radius: 20rpx;
 		overflow: hidden;
 		background-color: #4fc08d;
 		z-index: 10;
@@ -163,29 +244,38 @@
 
 	.sticky {
 		position: sticky;
-		top: 295rpx;
+		top: calc(56vw + 100rpx);
 		left: 0;
 		background-color: #fff;
 		z-index: 9;
-		margin: 30rpx 30rpx;
-		border-radius: 20rpx;
+		// margin: 30rpx 30rpx;
+		// border-radius: 20rpx;
 
 		.grid {
 			display: flex;
-			justify-content: space-between;
-			padding: 1% 2%;
-			margin-bottom: 2%;
-			border-bottom-left-radius: 10px;
-			border-bottom-right-radius: 10px;
+			overflow: auto;
+			padding-right: 40rpx;
 
 			.grid-item {
-				width: 50px;
-				height: 60px;
+				flex-shrink: 0;
+				width: 100rpx;
+				height: 80rpx;
 				display: flex;
 				justify-content: center;
 				flex-direction: column;
 				align-items: center;
-				font-size: 12px;
+				font-size: 34rpx;
+				margin: 10rpx;
+				position: relative;
+			}
+
+			.border::after {
+				content: '';
+				position: absolute;
+				bottom: 5rpx;
+				width: 30rpx;
+				height: 5rpx;
+				background-color: red;
 			}
 		}
 	}
@@ -216,7 +306,8 @@
 
 			.top {
 				.icon {
-					margin-left: 35rpx;
+					margin-top: -20rpx;
+					padding: 20rpx;
 				}
 
 				display: flex;

+ 24 - 12
pages/index/components/user/index.vue

@@ -5,7 +5,8 @@
 				<van-image round class='img' width="200rpx" height="200rpx" :src="userData.headImage" />
 				<view class="avatitbox">
 					<text>{{userData.nickName}}</text>
-					<text @click="userData.idCard?null:(idCardShow=!idCardShow)">{{userData.idCard?userData.idCard:'未绑定身份证点击绑定'}}</text>
+					<text v-if="userData.gzptUserId">{{studentInfo.logincode}}</text>
+					<text v-else @click="idCardShow=!idCardShow">未绑定身份证点击绑定</text>
 				</view>
 			</view>
 		</view>
@@ -36,10 +37,10 @@
 				<text>我的信息</text>
 			</view>
 			<van-cell title="我的设置" icon="/static/imgs/我的设置.png" is-link />
-			<button class="server" open-type="contact" :plain='true' >
+			<button class="server" open-type="contact" :plain='true'>
 				<van-cell title="联系客服" icon="/static/imgs/联系客服.png" is-link />
 			</button>
-			
+
 		</view>
 		<van-popup :show="idCardShow" round>
 			<view class="idCard">
@@ -71,6 +72,9 @@
 		getInfo,
 		bindUserCard
 	} from '@/api/login.js'
+	import {
+		getStudentInfo
+	} from '@/api/studytime.js'
 	export default {
 		components: {
 			square
@@ -78,6 +82,7 @@
 		data() {
 			return {
 				userData: {},
+				studentInfo: {},
 				loading: false,
 				idCardShow: false,
 				popup: false,
@@ -110,11 +115,14 @@
 			this.initUserInfo()
 		},
 		methods: {
-			initUserInfo(){
-				getInfo().then((res) => {
+			async initUserInfo() {
+				let userInfo = await getInfo()
+				this.userData = userInfo.data.student
+				if (userInfo.data.student.gzptUserId) {
 					//设置用户信息
-					this.userData = res.data.student
-				})
+					let studentInfo = await getStudentInfo()
+					this.studentInfo = studentInfo.data
+				}
 			},
 			idCardput(e) {
 				this.idCard = e.detail
@@ -157,7 +165,7 @@
 </script>
 
 <style lang="scss" scoped>
-	.server{
+	.server {
 		border: none;
 		background-color: none;
 		margin: 0;
@@ -165,6 +173,7 @@
 		text-align: left;
 		display: flexbox;
 	}
+
 	.idCard {
 		width: 600rpx;
 		padding: 30rpx;
@@ -187,7 +196,7 @@
 	.top {
 		padding-top: 100rpx;
 		background-image: url("/static/imgs/矩形 4(2).png");
-		background-size:100% 100%;
+		background-size: 100% 100%;
 		background-repeat: no-repeat;
 
 		.avabox {
@@ -211,7 +220,7 @@
 	}
 
 
-	
+
 
 	.serviceBox {
 		background-color: #fff;
@@ -222,10 +231,12 @@
 			padding: 26rpx;
 			border-bottom: 1rpx solid #E8E8E8;
 		}
-		.btnBox{
+
+		.btnBox {
 			display: flex;
 			justify-content: space-between;
 			align-items: center;
+
 			.item-box {
 				display: flex;
 				flex-direction: column;
@@ -235,7 +246,8 @@
 				margin-top: 20rpx;
 				padding: 20rpx;
 				border: none;
-				.text{
+
+				.text {
 					font-size: 26rpx;
 					font-family: PingFang SC;
 					font-weight: 400;

+ 22 - 3
pages/question/mockExam.vue

@@ -1,14 +1,17 @@
 <template>
-	<view class="content">
+	<view class="content"  :class="{night:nightFlag}">
 		<view class="top-box">
 			<view class="icon"></view>
-			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
+			<selectSwitch class='btn' @change="changeSwitch" :defaultSwitch='kemu==1'  :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
 			<van-icon class='set' name="/static/imgs/设置.png" size='20' @click='show=true' />
 		</view>
 		<van-popup :show="show" @close="show=false" position="bottom">
 			<van-cell title="选完跳转下一题 " clickable :data-index="index" @click="answerjump=!answerjump">
 				<van-switch slot="right-icon" :checked="answerjump" size="24px" active-color="#16CC16" />
 			</van-cell>
+			<van-cell title="夜间模式" clickable :data-index="index" @click="nightFlag=!nightFlag">
+				<van-switch slot="right-icon" :checked="nightFlag" size="24px" active-color="#16CC16" />
+			</van-cell>
 		</van-popup>
 
 		<van-skeleton class='skeleton' avatar row="6" :row-width="['100%','40%','70%','70%','70%','70%']" avatar-shape='square'
@@ -118,7 +121,8 @@
 				loading: true,
 				answerflag: false,
 				answerjump: true,
-				kemu: 1,
+				nightFlag: false,
+				kemu: uni.getStorageSync('kemu') || 1,
 				completeAnswer: {},
 				show: false,
 				checked: true,
@@ -137,11 +141,19 @@
 				startDate:new Date().getTime(),
 			}
 		},
+		watch: {
+			kemu(val) {
+				uni.setStorageSync('kemu', val)
+				this.pageNum = 1
+				this.listInit()
+			}
+		},
 		mounted() {
 			this.listInit()
 		},
 		methods: {
 			async listInit() {
+				this.loading=true
 				await questionListRandom({
 					num: 5,
 					kemu: this.kemu
@@ -226,6 +238,13 @@
 			calcTime(){
 				let time=new Date().getTime()-this.startDate
 				return new Date(time).toJSON().slice(11,-5)
+			},
+			changeSwitch(e) {
+				if (e) {
+					this.kemu = 1
+				} else {
+					this.kemu = 4
+				}
 			}
 		}
 	}

+ 22 - 3
pages/question/random.vue

@@ -1,8 +1,8 @@
 <template>
-	<view class="content">
+	<view class="content"  :class="{night:nightFlag}">
 		<view class="top-box">
 			<view class="icon"></view>
-			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
+			<selectSwitch class='btn' @change="changeSwitch" :defaultSwitch='kemu==1'  :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
 			<van-icon class='set' name="/static/imgs/设置.png" size='20' @click='show=true' />
 		</view>
 		<van-popup :show="show" @close="show=false" position="bottom">
@@ -19,6 +19,9 @@
 			<van-cell title="错误震动提醒" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell>
+			<van-cell title="夜间模式" clickable :data-index="index" @click="nightFlag=!nightFlag">
+				<van-switch slot="right-icon" :checked="nightFlag" size="24px" active-color="#16CC16" />
+			</van-cell>
 			<!-- 			<van-cell title="主题选择" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell>
@@ -131,7 +134,8 @@
 				loading: true,
 				answerflag: false,
 				answerjump: true,
-				kemu: 1,
+				nightFlag: false,
+				kemu: uni.getStorageSync('kemu') || 1,
 				completeAnswer: {},
 				show: false,
 				checked: true,
@@ -146,11 +150,19 @@
 				shake: 0,
 			}
 		},
+		watch: {
+			kemu(val) {
+				uni.setStorageSync('kemu', val)
+				this.pageNum = 1
+				this.listInit()
+			}
+		},
 		mounted() {
 			this.listInit()
 		},
 		methods: {
 			async listInit() {
+				this.loading=true
 				await questionListRandom({
 					num: 20,
 					kemu: this.kemu
@@ -243,6 +255,13 @@
 				} else {
 					wx.vibrateLong();
 				}
+			},
+			changeSwitch(e) {
+				if (e) {
+					this.kemu = 1
+				} else {
+					this.kemu = 4
+				}
 			}
 		}
 	}

+ 23 - 3
pages/question/sequential.vue

@@ -1,8 +1,9 @@
 <template>
-	<view class="content">
+	<view class="content" :class="{night:nightFlag}">
 		<view class="top-box">
 			<view class="icon"></view>
-			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
+			<selectSwitch class='btn' @change="changeSwitch" :defaultSwitch='kemu==1' :switchList="['科一题目','科四题目']"
+			 checked_bj_color='#E31818' />
 			<van-icon class='set' name="/static/imgs/设置.png" size='20' @click='show=true' />
 		</view>
 		<van-popup :show="show" @close="show=false" position="bottom">
@@ -19,6 +20,9 @@
 			<van-cell title="错误震动提醒" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell>
+			<van-cell title="夜间模式" clickable :data-index="index" @click="nightFlag=!nightFlag">
+				<van-switch slot="right-icon" :checked="nightFlag" size="24px" active-color="#16CC16" />
+			</van-cell>
 			<!-- 			<van-cell title="主题选择" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell>
@@ -129,7 +133,8 @@
 				loading: true,
 				answerflag: false,
 				answerjump: true,
-				kemu: 1,
+				nightFlag: false,
+				kemu: uni.getStorageSync('kemu') || 1,
 				completeAnswer: {},
 				show: false,
 				checked: true,
@@ -144,11 +149,19 @@
 				shake: 0,
 			}
 		},
+		watch: {
+			kemu(val) {
+				uni.setStorageSync('kemu', val)
+				this.pageNum = 1
+				this.listInit()
+			}
+		},
 		mounted() {
 			this.listInit()
 		},
 		methods: {
 			async listInit() {
+				this.loading = true
 				await questionList({
 					pageNum: this.pageNum,
 					pageSize: 10,
@@ -285,6 +298,13 @@
 				} else {
 					wx.vibrateLong();
 				}
+			},
+			changeSwitch(e) {
+				if (e) {
+					this.kemu = 1
+				} else {
+					this.kemu = 4
+				}
 			}
 		}
 	}

+ 22 - 6
pages/question/wrongTitle.vue

@@ -1,8 +1,8 @@
 <template>
-	<view class="content">
+	<view class="content" :class="{night:nightFlag}">
 		<view class="top-box">
 			<view class="icon"></view>
-			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
+			<selectSwitch class='btn' @change="changeSwitch" :defaultSwitch='kemu==1'  :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
 			<van-icon class='set' name="/static/imgs/设置.png" size='20' @click='show=true' />
 		</view>
 		<van-popup :show="show" @close="show=false" position="bottom">
@@ -19,10 +19,10 @@
 			<van-cell title="错误震动提醒" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell>
-			<!-- 			<van-cell title="主题选择" clickable :data-index="index" @click="checked=!checked">
-				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
+			<van-cell title="夜间模式" clickable :data-index="index" @click="nightFlag=!nightFlag">
+				<van-switch slot="right-icon" :checked="nightFlag" size="24px" active-color="#16CC16" />
 			</van-cell>
-			<van-cell title="字体选择" clickable :data-index="index" @click="checked=!checked">
+			<!-- <van-cell title="字体选择" clickable :data-index="index" @click="checked=!checked">
 				<van-switch slot="right-icon" :checked="checked" size="24px" active-color="#16CC16" />
 			</van-cell> -->
 		</van-popup>
@@ -129,7 +129,8 @@
 				loading: true,
 				answerflag: false,
 				answerjump: true,
-				kemu: 1,
+				nightFlag: false,
+				kemu: uni.getStorageSync('kemu') || 1,
 				completeAnswer: {},
 				show: false,
 				checked: true,
@@ -144,11 +145,19 @@
 				shake: 0,
 			}
 		},
+		watch: {
+			kemu(val) {
+				uni.setStorageSync('kemu', val)
+				this.pageNum = 1
+				this.listInit()
+			}
+		},
 		mounted() {
 			this.listInit()
 		},
 		methods: {
 			async listInit() {
+				this.loading=true
 				await questionErrorList({
 					pageNum: this.pageNum,
 					pageSize: 20,
@@ -243,6 +252,13 @@
 				} else {
 					wx.vibrateLong();
 				}
+			},
+			changeSwitch(e) {
+				if (e) {
+					this.kemu = 1
+				} else {
+					this.kemu = 4
+				}
 			}
 		}
 	}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/home/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/skeleton/index/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/square/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/xuan-switch/xuan-switch.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/browserecord/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/collectionList/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/applist/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/find/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/topic/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/user/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/mockExam.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/random.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/sequential.js.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/wrongTitle.js.map


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

@@ -40,6 +40,10 @@
     "van-button": "/wxcomponents/vant/button/index",
     "van-divider": "/wxcomponents/vant/divider/index",
     "van-count-down": "/wxcomponents/vant/count-down/index",
-    "van-dialog": "/wxcomponents/vant/dialog/index"
-  }
+    "van-dialog": "/wxcomponents/vant/dialog/index",
+    "van-tab": "/wxcomponents/vant/tab/index",
+    "van-tabs": "/wxcomponents/vant/tabs/index",
+    "van-share-sheet": "/wxcomponents/vant/share-sheet/index"
+  },
+  "sitemapLocation": "sitemap50.json"
 }

+ 12 - 8
unpackage/dist/dev/mp-weixin/common/main.js

@@ -9,7 +9,7 @@
 "use strict";
 /* WEBPACK VAR INJECTION */(function(createApp) {__webpack_require__(/*! uni-pages */ 4);var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
 var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 5));
-var _toast = _interopRequireDefault(__webpack_require__(/*! @/wxcomponents/vant/toast/toast */ 18));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
+var _toast = _interopRequireDefault(__webpack_require__(/*! @/wxcomponents/vant/toast/toast */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
 _vue.default.config.productionTip = false;
 
 _App.default.mpType = 'app';
@@ -37,8 +37,8 @@ createApp(app).$mount();
 __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 6);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 15);
-/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 17);
+/* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 16);
+/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18);
 var render, staticRenderFns, recyclableRender, components
 var renderjs
 
@@ -88,7 +88,7 @@ __webpack_require__.r(__webpack_exports__);
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
+/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
 var _auth = __webpack_require__(/*! @/utils/auth */ 8);var _default =
 
 
@@ -97,14 +97,17 @@ var _auth = __webpack_require__(/*! @/utils/auth */ 8);var _default =
 {
   onLaunch: function onLaunch() {
     console.log('App Launch');
+    wx.getSystemInfo().then(function (res) {
+      uni.setStorageSync('sysInfo', res);
+    });
   },
   onShow: function onShow() {
     console.log('App Show');
   },
   onHide: function onHide() {
-    (0, _auth.removeToken)();
     console.log('App Hide');
   } };exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
 
 /***/ }),
 /* 8 */,
@@ -114,7 +117,8 @@ var _auth = __webpack_require__(/*! @/utils/auth */ 8);var _default =
 /* 12 */,
 /* 13 */,
 /* 14 */,
-/* 15 */
+/* 15 */,
+/* 16 */
 /*!**********************************************************************!*\
   !*** F:/uniapp/sqxp-uniapp/App.vue?vue&type=style&index=0&lang=css& ***!
   \**********************************************************************/
@@ -123,13 +127,13 @@ var _auth = __webpack_require__(/*! @/utils/auth */ 8);var _default =
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 16);
+/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 17);
 /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
 
 /***/ }),
-/* 16 */
+/* 17 */
 /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/uniapp/sqxp-uniapp/App.vue?vue&type=style&index=0&lang=css& ***!
   \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

+ 3 - 0
unpackage/dist/dev/mp-weixin/common/main.wxss

@@ -273,5 +273,8 @@
 }
 }/*每个页面公共css */page{
 	background-color: #F1F1F1;
+}.night{
+	-webkit-filter: invert(1) hue-rotate(180deg);
+	        filter: invert(1) hue-rotate(180deg);
 }
 

+ 2 - 2
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -105,11 +105,11 @@
 /******/
 /******/
 /******/ 		// mini-css-extract-plugin CSS loading
-/******/ 		var cssChunks = {"pages/index/components/applist/index":1,"pages/index/components/user/index":1,"pages/index/components/find/index":1,"pages/index/components/topic/index":1,"components/xuan-switch/xuan-switch":1,"components/square/index":1,"components/home/index":1};
+/******/ 		var cssChunks = {"pages/index/components/applist/index":1,"pages/index/components/user/index":1,"pages/index/components/find/index":1,"pages/index/components/topic/index":1,"components/skeleton/index/index":1,"components/xuan-switch/xuan-switch":1,"components/square/index":1,"components/home/index":1};
 /******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
 /******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
 /******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
-/******/ 				var href = "" + ({"pages/index/components/applist/index":"pages/index/components/applist/index","pages/index/components/user/index":"pages/index/components/user/index","pages/index/components/find/index":"pages/index/components/find/index","pages/index/components/topic/index":"pages/index/components/topic/index","components/xuan-switch/xuan-switch":"components/xuan-switch/xuan-switch","components/square/index":"components/square/index","components/home/index":"components/home/index"}[chunkId]||chunkId) + ".wxss";
+/******/ 				var href = "" + ({"pages/index/components/applist/index":"pages/index/components/applist/index","pages/index/components/user/index":"pages/index/components/user/index","pages/index/components/find/index":"pages/index/components/find/index","pages/index/components/topic/index":"pages/index/components/topic/index","components/skeleton/index/index":"components/skeleton/index/index","components/xuan-switch/xuan-switch":"components/xuan-switch/xuan-switch","components/square/index":"components/square/index","components/home/index":"components/home/index"}[chunkId]||chunkId) + ".wxss";
 /******/ 				var fullhref = __webpack_require__.p + href;
 /******/ 				var existingLinkTags = document.getElementsByTagName("link");
 /******/ 				for(var i = 0; i < existingLinkTags.length; i++) {

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 290 - 153
unpackage/dist/dev/mp-weixin/common/vendor.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 123 - 52
unpackage/dist/dev/mp-weixin/components/home/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/components/home/index.wxml


+ 52 - 31
unpackage/dist/dev/mp-weixin/components/home/index.wxss

@@ -24,10 +24,10 @@
 /* 垂直间距 */
 /* 透明度 */
 /* 文章场景相关 */
-.dh.data-v-08ae13c6 {
+.dh {
   position: relative;
 }
-.dh.data-v-08ae13c6::after {
+.dh::after {
   content: '';
   background-color: red;
   left: 0;
@@ -35,23 +35,23 @@
   width: 0%;
   height: 100%;
   position: absolute;
-  -webkit-animation: go-data-v-08ae13c6 1s infinite;
-          animation: go-data-v-08ae13c6 1s infinite;
+  -webkit-animation: go 1s infinite;
+          animation: go 1s infinite;
   z-index: 0;
 }
-@-webkit-keyframes go-data-v-08ae13c6 {
+@-webkit-keyframes go {
 to {
     width: 100%;
     background-color: greenyellow;
 }
 }
-@keyframes go-data-v-08ae13c6 {
+@keyframes go {
 to {
     width: 100%;
     background-color: greenyellow;
 }
 }
-.jsbox .bt.data-v-08ae13c6 {
+.jsbox .bt {
   width: 140rpx;
   margin-bottom: 10rpx;
   font-size: 26rpx;
@@ -67,13 +67,13 @@ to {
   -webkit-justify-content: space-between;
           justify-content: space-between;
 }
-.jsbox .ts.data-v-08ae13c6 {
+.jsbox .ts {
   font-size: 22rpx;
   font-family: PingFang SC;
   font-weight: 400;
   color: #E31818;
 }
-.jsbox .js.data-v-08ae13c6 {
+.jsbox .js {
   height: 70rpx;
   background: #F5F5F5;
   border: 1rpx solid #E8E8E8;
@@ -92,7 +92,7 @@ to {
   box-sizing: border-box;
   overflow: hidden;
 }
-.jsbox .js .jsbtn.data-v-08ae13c6 {
+.jsbox .js .jsbtn {
   height: 50rpx;
   background: -webkit-linear-gradient(left, #E31818, #ED3E24, #ED4F24);
   background: linear-gradient(90deg, #E31818, #ED3E24, #ED4F24);
@@ -113,19 +113,19 @@ to {
   margin: 0;
   z-index: 1;
 }
-.jsbox .js .timeText.data-v-08ae13c6 {
+.jsbox .js .timeText {
   z-index: 1;
 }
-.content.data-v-08ae13c6 {
+.content {
   width: 100%;
   padding-bottom: 10rpx;
 }
-.item-box.data-v-08ae13c6 {
+.item-box {
   background-color: #fff;
   border-radius: 10rpx;
-  margin: 30rpx;
+  margin: 10rpx 30rpx;
 }
-.item-box .item-titBox.data-v-08ae13c6 {
+.item-box .item-titBox {
   display: -webkit-box;
   display: -webkit-flex;
   display: flex;
@@ -138,27 +138,27 @@ to {
   padding: 20rpx;
   border-bottom: 1rpx solid #e8e8e8;
 }
-.item-box .item-titBox .item-tit.data-v-08ae13c6 {
+.item-box .item-titBox .item-tit {
   border-left: 8rpx solid #E31818;
   font-size: 30rpx;
   line-height: 58rpx;
   padding: 11rpx;
 }
-.item-box .item-titBox .item-tit-right.data-v-08ae13c6 {
+.item-box .item-titBox .item-tit-right {
   font-size: 26rpx;
   color: #666666;
   line-height: 58rpx;
   padding: 11rpx;
 }
-.item-box .video-box.data-v-08ae13c6 {
+.item-box .video-box {
   padding: 30rpx 20rpx;
 }
-.item-box .video-box .myVideo.data-v-08ae13c6 {
+.item-box .video-box .myVideo {
   width: 650rpx;
   height: 360rpx;
   border-radius: 10rpx;
 }
-.item-box .video-box .tit-box.data-v-08ae13c6 {
+.item-box .video-box .tit-box {
   width: 100%;
   display: -webkit-box;
   display: -webkit-flex;
@@ -168,7 +168,7 @@ to {
           justify-content: space-between;
   padding: 10rpx 0 26rpx;
 }
-.item-box .video-box .tit-box .video-box-tit.data-v-08ae13c6 {
+.item-box .video-box .tit-box .video-box-tit {
   height: 31rpx;
   font-size: 20rpx;
   border: 1rpx solid #E31A19;
@@ -185,7 +185,7 @@ to {
   -webkit-align-items: center;
           align-items: center;
 }
-.item-box .video-box .tit-box .video-box-btn.data-v-08ae13c6 {
+.item-box .video-box .tit-box .video-box-btn {
   margin: 0;
   height: 40rpx;
   background: -webkit-linear-gradient(left, #E31818, #ED3E24, #ED4F24);
@@ -203,10 +203,30 @@ to {
   color: #FFFFFF;
   font-size: 20rpx;
 }
-.top-box.data-v-08ae13c6 {
-  margin: 20rpx;
+.top-box {
+  margin: 10rpx 20rpx;
 }
-.timingBox.data-v-08ae13c6 {
+.unbind {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  background-color: rgba(35, 34, 33, 0.2);
+  z-index: 10;
+  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;
+  text-align: center;
+  color: red;
+}
+.timingBox {
   height: 335rpx;
   background-color: #ffffff;
   margin: 10rpx;
@@ -221,10 +241,12 @@ to {
   -webkit-box-pack: justify;
   -webkit-justify-content: space-between;
           justify-content: space-between;
-  padding: 5%;
+  padding: 2% 5%;
   box-sizing: border-box;
+  position: relative;
+  overflow: hidden;
 }
-.timingBox .classHourStatistics.data-v-08ae13c6 {
+.timingBox .classHourStatistics {
   display: -webkit-box;
   display: -webkit-flex;
   display: flex;
@@ -232,7 +254,7 @@ to {
   -webkit-justify-content: space-between;
           justify-content: space-between;
 }
-.timingBox .classHourStatistics .timing-item.data-v-08ae13c6 {
+.timingBox .classHourStatistics .timing-item {
   height: 80rpx;
   display: -webkit-box;
   display: -webkit-flex;
@@ -248,12 +270,11 @@ to {
   -webkit-align-items: center;
           align-items: center;
   font-size: .8rem;
-  padding: 15rpx 5rpx;
+  padding: 25rpx 15rpx;
   border-radius: 10rpx;
 }
-.timingBox .classHourStatistics .timing-item .timing-time.data-v-08ae13c6 {
+.timingBox .classHourStatistics .timing-item .timing-time {
   font-size: .8rem;
-  background-color: #fff;
   border-radius: 10rpx;
 }
 

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 155 - 0
unpackage/dist/dev/mp-weixin/components/skeleton/index/index.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/components/skeleton/index/index.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/components/skeleton/index/index.wxml

@@ -0,0 +1 @@
+<view class="skeleton-box data-v-a5e1de64"><block wx:if="{{loading}}"><view class="skeleton data-v-a5e1de64"><text class="data-v-a5e1de64">数据加载中...</text></view></block><block wx:else><block wx:if="{{list.length==0}}"><van-transition vue-id="1658ec10-1" name="fade-up" data-com-type="wx" class="data-v-a5e1de64" bind:__l="__l" vue-slots="{{['default']}}"><view class="skeleton data-v-a5e1de64">暂时没有数据</view></van-transition></block><block wx:else><van-transition vue-id="1658ec10-2" name="fade-up" data-com-type="wx" class="data-v-a5e1de64" bind:__l="__l" vue-slots="{{['default']}}"><slot></slot></van-transition></block></block></view>

+ 72 - 0
unpackage/dist/dev/mp-weixin/components/skeleton/index/index.wxss

@@ -0,0 +1,72 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.skeleton.data-v-a5e1de64 {
+  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;
+  padding: 50rpx;
+  height: 320rpx;
+}
+.led.data-v-a5e1de64 {
+  width: 10rpx;
+  height: 30rpx;
+  border-radius: 10rpx;
+  top: 50rpx;
+  position: absolute;
+  -webkit-transform: rotate(calc(360deg / var(--all) * var(--i)));
+          transform: rotate(calc(360deg / var(--all) * var(--i)));
+  -webkit-transform-origin: 0 160rpx;
+          transform-origin: 0 160rpx;
+  -webkit-animation: loading-data-v-a5e1de64 2s linear infinite;
+          animation: loading-data-v-a5e1de64 2s linear infinite;
+  -webkit-animation-delay: calc(var(--i) * 1s);
+          animation-delay: calc(var(--i) * 1s);
+  background-color: green;
+}
+@-webkit-keyframes loading-data-v-a5e1de64 {
+from {
+    opacity: 0;
+}
+to {
+    opacity: 1;
+}
+}
+@keyframes loading-data-v-a5e1de64 {
+from {
+    opacity: 0;
+}
+to {
+    opacity: 1;
+}
+}
+

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 12 - 12
unpackage/dist/dev/mp-weixin/components/square/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 12 - 12
unpackage/dist/dev/mp-weixin/components/xuan-switch/xuan-switch.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 65 - 49
unpackage/dist/dev/mp-weixin/pages/browserecord/index.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/pages/browserecord/index.json

@@ -1,4 +1,6 @@
 {
   "navigationBarTitleText": "浏览足迹",
-  "usingComponents": {}
+  "usingComponents": {
+    "load-ske": "/components/skeleton/index/index"
+  }
 }

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

@@ -1 +1 @@
-<view class="content data-v-76058a57"><block wx:for="{{applist}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goMiniApp',['$0'],[[['applist','',index,'appletAddress']]]]]]]}}" class="list-item data-v-76058a57" bindtap="__e"><image class="avatar data-v-76058a57" mode="aspectFill" src="{{item.appletLogoFileUrl}}"></image><view class="item-right data-v-76058a57"><view class="top data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{'4aac418f-1-'+index}}" name="/static/imgs/收藏.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-76058a57" vue-id="{{'4aac418f-2-'+index}}" name="/static/imgs/转发.png" size="14" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-76058a57" vue-id="{{'4aac418f-3-'+index}}" name="/static/imgs/不喜欢.png" size="12" data-com-type="wx" bind:__l="__l"></van-icon></view><view class="center data-v-76058a57"><text class="details data-v-76058a57">{{item.appletIntroduce}}</text></view><view class="bottom data-v-76058a57"><text class="title data-v-76058a57">{{item.corporateName}}</text><block wx:if="{{false}}"><view class="right data-v-76058a57"><view class="flex data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{'4aac418f-4-'+index}}" name="/static/imgs/评论.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-76058a57">54</text></view><view class="flex data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{'4aac418f-5-'+index}}" name="/static/imgs/好评率.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-76058a57">99%</text></view></view></block></view></view></view></block></view>
+<view class="content data-v-76058a57"><load-ske vue-id="4aac418f-1" loading="{{loading}}" class="data-v-76058a57" bind:__l="__l" vue-slots="{{['default']}}"><block wx:for="{{applist}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goMiniApp',['$0'],[[['applist','',index,'appletAddress']]]]]]]}}" class="list-item data-v-76058a57" bindtap="__e"><image class="avatar data-v-76058a57" mode="aspectFill" src="{{item.appletLogoFileUrl}}"></image><view class="item-right data-v-76058a57"><view class="top data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{('4aac418f-2-'+index)+','+('4aac418f-1')}}" name="/static/imgs/转发.png" size="14" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-76058a57" vue-id="{{('4aac418f-3-'+index)+','+('4aac418f-1')}}" name="/static/imgs/不喜欢.png" size="12" data-event-opts="{{[['^tap',[['delSc',[index]]]]]}}" data-com-type="wx" catch:tap="__e" bind:__l="__l"></van-icon></view><view class="center data-v-76058a57"><text class="details data-v-76058a57">{{item.appletIntroduce}}</text></view><view class="bottom data-v-76058a57"><text class="title data-v-76058a57">{{item.corporateName}}</text><block wx:if="{{false}}"><view class="right data-v-76058a57"><view class="flex data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{('4aac418f-4-'+index)+','+('4aac418f-1')}}" name="/static/imgs/评论.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-76058a57">54</text></view><view class="flex data-v-76058a57"><van-icon class="icon data-v-76058a57" vue-id="{{('4aac418f-5-'+index)+','+('4aac418f-1')}}" name="/static/imgs/好评率.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-76058a57">99%</text></view></view></block></view></view></view></block></load-ske></view>

+ 2 - 1
unpackage/dist/dev/mp-weixin/pages/browserecord/index.wxss

@@ -149,7 +149,8 @@
           justify-content: flex-end;
 }
 .list-item .item-right .top .icon.data-v-76058a57 {
-  margin-left: 35rpx;
+  margin-top: -20rpx;
+  padding: 20rpx;
 }
 .list-item .item-right .center.data-v-76058a57 {
   -webkit-align-self: flex-start;

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 65 - 49
unpackage/dist/dev/mp-weixin/pages/collectionList/index.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/pages/collectionList/index.json

@@ -1,4 +1,6 @@
 {
   "navigationBarTitleText": "我的收藏",
-  "usingComponents": {}
+  "usingComponents": {
+    "load-ske": "/components/skeleton/index/index"
+  }
 }

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

@@ -1 +1 @@
-<view class="content data-v-055be9d8"><block wx:for="{{applist}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goMiniApp',['$0'],[[['applist','',index,'appletAddress']]]]]]]}}" class="list-item data-v-055be9d8" bindtap="__e"><image class="avatar data-v-055be9d8" mode="aspectFill" src="{{item.appletLogoFileUrl}}"></image><view class="item-right data-v-055be9d8"><view class="top data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{'b3bc5ba4-1-'+index}}" name="/static/imgs/收藏.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-055be9d8" vue-id="{{'b3bc5ba4-2-'+index}}" name="/static/imgs/转发.png" size="14" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-055be9d8" vue-id="{{'b3bc5ba4-3-'+index}}" name="/static/imgs/不喜欢.png" size="12" data-com-type="wx" bind:__l="__l"></van-icon></view><view class="center data-v-055be9d8"><text class="details data-v-055be9d8">{{item.appletIntroduce}}</text></view><view class="bottom data-v-055be9d8"><text class="title data-v-055be9d8">{{item.corporateName}}</text><block wx:if="{{false}}"><view class="right data-v-055be9d8"><view class="flex data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{'b3bc5ba4-4-'+index}}" name="/static/imgs/评论.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-055be9d8">54</text></view><view class="flex data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{'b3bc5ba4-5-'+index}}" name="/static/imgs/好评率.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-055be9d8">99%</text></view></view></block></view></view></view></block></view>
+<view class="content data-v-055be9d8"><load-ske vue-id="b3bc5ba4-1" loading="{{loading}}" class="data-v-055be9d8" bind:__l="__l" vue-slots="{{['default']}}"><block wx:for="{{applist}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goMiniApp',['$0'],[[['applist','',index,'appletAddress']]]]]]]}}" class="list-item data-v-055be9d8" bindtap="__e"><image class="avatar data-v-055be9d8" mode="aspectFill" src="{{item.appletLogoFileUrl}}"></image><view class="item-right data-v-055be9d8"><view class="top data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{('b3bc5ba4-2-'+index)+','+('b3bc5ba4-1')}}" name="/static/imgs/转发.png" size="14" data-com-type="wx" bind:__l="__l"></van-icon><van-icon class="icon data-v-055be9d8" vue-id="{{('b3bc5ba4-3-'+index)+','+('b3bc5ba4-1')}}" name="/static/imgs/不喜欢.png" size="12" data-event-opts="{{[['^tap',[['delSc',[index]]]]]}}" data-com-type="wx" catch:tap="__e" bind:__l="__l"></van-icon></view><view class="center data-v-055be9d8"><text class="details data-v-055be9d8">{{item.appletIntroduce}}</text></view><view class="bottom data-v-055be9d8"><text class="title data-v-055be9d8">{{item.corporateName}}</text><block wx:if="{{false}}"><view class="right data-v-055be9d8"><view class="flex data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{('b3bc5ba4-4-'+index)+','+('b3bc5ba4-1')}}" name="/static/imgs/评论.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-055be9d8">54</text></view><view class="flex data-v-055be9d8"><van-icon class="icon data-v-055be9d8" vue-id="{{('b3bc5ba4-5-'+index)+','+('b3bc5ba4-1')}}" name="/static/imgs/好评率.png" size="15" data-com-type="wx" bind:__l="__l"></van-icon><text class="data-v-055be9d8">99%</text></view></view></block></view></view></view></block></load-ske></view>

+ 2 - 1
unpackage/dist/dev/mp-weixin/pages/collectionList/index.wxss

@@ -149,7 +149,8 @@
           justify-content: flex-end;
 }
 .list-item .item-right .top .icon.data-v-055be9d8 {
-  margin-left: 35rpx;
+  margin-top: -20rpx;
+  padding: 20rpx;
 }
 .list-item .item-right .center.data-v-055be9d8 {
   -webkit-align-self: flex-start;

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 153 - 103
unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.js


+ 4 - 2
unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.json

@@ -1,4 +1,6 @@
 {
-  "usingComponents": {},
-  "component": true
+  "component": true,
+  "usingComponents": {
+    "load-ske": "/components/skeleton/index/index"
+  }
 }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.wxml


+ 21 - 17
unpackage/dist/dev/mp-weixin/pages/index/components/applist/index.wxss

@@ -38,10 +38,8 @@
 .sticky-top.data-v-6e03c41f {
   position: -webkit-sticky;
   position: sticky;
-  top: 192rpx;
+  top: 56vw;
   left: 0;
-  margin: 30rpx 30rpx;
-  border-radius: 20rpx;
   overflow: hidden;
   background-color: #4fc08d;
   z-index: 10;
@@ -64,28 +62,23 @@
 .sticky.data-v-6e03c41f {
   position: -webkit-sticky;
   position: sticky;
-  top: 295rpx;
+  top: calc(56vw + 100rpx);
   left: 0;
   background-color: #fff;
   z-index: 9;
-  margin: 30rpx 30rpx;
-  border-radius: 20rpx;
 }
 .sticky .grid.data-v-6e03c41f {
   display: -webkit-box;
   display: -webkit-flex;
   display: flex;
-  -webkit-box-pack: justify;
-  -webkit-justify-content: space-between;
-          justify-content: space-between;
-  padding: 1% 2%;
-  margin-bottom: 2%;
-  border-bottom-left-radius: 10px;
-  border-bottom-right-radius: 10px;
+  overflow: auto;
+  padding-right: 40rpx;
 }
 .sticky .grid .grid-item.data-v-6e03c41f {
-  width: 50px;
-  height: 60px;
+  -webkit-flex-shrink: 0;
+          flex-shrink: 0;
+  width: 100rpx;
+  height: 80rpx;
   display: -webkit-box;
   display: -webkit-flex;
   display: flex;
@@ -99,7 +92,17 @@
   -webkit-box-align: center;
   -webkit-align-items: center;
           align-items: center;
-  font-size: 12px;
+  font-size: 34rpx;
+  margin: 10rpx;
+  position: relative;
+}
+.sticky .grid .border.data-v-6e03c41f::after {
+  content: '';
+  position: absolute;
+  bottom: 5rpx;
+  width: 30rpx;
+  height: 5rpx;
+  background-color: red;
 }
 .list-item.data-v-6e03c41f {
   display: -webkit-box;
@@ -149,7 +152,8 @@
           justify-content: flex-end;
 }
 .list-item .item-right .top .icon.data-v-6e03c41f {
-  margin-left: 35rpx;
+  margin-top: -20rpx;
+  padding: 20rpx;
 }
 .list-item .item-right .center.data-v-6e03c41f {
   -webkit-align-self: flex-start;

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 13 - 13
unpackage/dist/dev/mp-weixin/pages/index/components/find/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 12 - 12
unpackage/dist/dev/mp-weixin/pages/index/components/topic/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/components/user/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/components/user/index.wxml


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 15 - 15
unpackage/dist/dev/mp-weixin/pages/index/index.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 45 - 21
unpackage/dist/dev/mp-weixin/pages/question/mockExam.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxml


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 43 - 19
unpackage/dist/dev/mp-weixin/pages/question/random.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/question/random.wxml


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 45 - 21
unpackage/dist/dev/mp-weixin/pages/question/sequential.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/question/sequential.wxml


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 40 - 19
unpackage/dist/dev/mp-weixin/pages/question/wrongTitle.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/question/wrongTitle.wxml


+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap50.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap53.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 1 - 1
utils/request.js

@@ -16,7 +16,7 @@ import errorCode from '@/utils/errorCode'
 const myAxios = (req) => {
 
 	let query = ''
-
+	
 	req.params && Object.keys(req.params).map((key, index) => {
 		if (index) {
 			query += '&' + key + '=' + encodeURIComponent(req.params[key])

+ 9 - 0
utils/utils.js

@@ -0,0 +1,9 @@
+
+//防抖函数
+export function debounce(func, fnThis,wait) {
+	var timer;
+	return () => {
+		clearTimeout(timer);
+		timer = setTimeout(func.bind(fnThis), wait);
+	};
+}

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä