wyling 4 жил өмнө
parent
commit
dce7fcde47
100 өөрчлөгдсөн 708 нэмэгдсэн , 607 устгасан
  1. 4 3
      api/answer.js
  2. 33 0
      api/applist.js
  3. 15 0
      api/studytime.js
  4. 7 7
      components/home/index.vue
  5. 8 8
      pages.json
  6. 234 0
      pages/browserecord/index.vue
  7. 234 0
      pages/collectionList/index.vue
  8. 0 407
      pages/home/index.vue
  9. 0 67
      pages/idcard/index.vue
  10. 51 23
      pages/index/components/applist/index.vue
  11. 6 4
      pages/index/components/topic/index.vue
  12. 61 42
      pages/index/components/user/index.vue
  13. 7 14
      pages/index/index.vue
  14. 17 10
      pages/question/mockExam.vue
  15. 13 7
      pages/question/random.vue
  16. 5 6
      pages/question/sequential.vue
  17. 13 9
      pages/question/wrongTitle.vue
  18. BIN
      static/img/01.png
  19. BIN
      static/img/home/banner@3x.png
  20. BIN
      static/img/home/三力测试@3x.png
  21. BIN
      static/img/home/专题@3x.png
  22. BIN
      static/img/home/专题灰@3x.png
  23. BIN
      static/img/home/买车@3x.png
  24. BIN
      static/img/home/使用指南@3x.png
  25. BIN
      static/img/home/包过保证icon@3x.png
  26. BIN
      static/img/home/发现-灰@3x.png
  27. BIN
      static/img/home/发现@3x.png
  28. BIN
      static/img/home/图层 5@3x.png
  29. BIN
      static/img/home/图标练习icon@3x.png
  30. BIN
      static/img/home/学车@3x.png
  31. BIN
      static/img/home/定位图标@3x.png
  32. BIN
      static/img/home/宠物@3x.png
  33. BIN
      static/img/home/年龄条件@3x.png
  34. BIN
      static/img/home/形状 4 拷贝@3x.png
  35. BIN
      static/img/home/影院@3x.png
  36. BIN
      static/img/home/成绩查询@3x.png
  37. BIN
      static/img/home/我的@3x.png
  38. BIN
      static/img/home/我的灰@3x.png
  39. BIN
      static/img/home/我要计时@3x.png
  40. BIN
      static/img/home/房产@3x.png
  41. BIN
      static/img/home/搜索@3x.png
  42. BIN
      static/img/home/模拟考试icon@3x.png
  43. BIN
      static/img/home/矩形 4@3x.png
  44. BIN
      static/img/home/组 67@3x.png
  45. BIN
      static/img/home/美食@3x.png
  46. BIN
      static/img/home/设置@2x.png
  47. BIN
      static/img/home/身体条件@3x.png
  48. BIN
      static/img/home/错题收藏icon@3x.png
  49. BIN
      static/img/home/随机测试icon@3x.png
  50. BIN
      static/img/home/顺序测试icon@3x.png
  51. BIN
      static/img/home/驾照有效期@3x.png
  52. BIN
      static/img/home/驾照种类@3x.png
  53. BIN
      static/img/home/驾驶许可@3x.png
  54. BIN
      static/img/专题/作者@2x.png
  55. BIN
      static/img/专题/分享@2x.png
  56. BIN
      static/img/列表/不喜欢@2x.png
  57. BIN
      static/img/列表/好评率@2x.png
  58. BIN
      static/img/列表/已收藏@2x.png
  59. BIN
      static/img/列表/收藏@2x.png
  60. BIN
      static/img/列表/评论@2x.png
  61. BIN
      static/img/列表/转发@2x.png
  62. BIN
      static/img/用户/图层 10@2x.png
  63. BIN
      static/img/用户/意见反馈@2x.png
  64. BIN
      static/img/用户/我的设置@2x.png
  65. BIN
      static/img/用户/收藏@2x.png
  66. BIN
      static/img/用户/浏览足迹@2x.png
  67. BIN
      static/img/用户/矩形 4@2x.png
  68. BIN
      static/img/用户/联系客服@2x.png
  69. BIN
      static/img/答题/对@2x.png
  70. BIN
      static/img/答题/设置@2x.png
  71. BIN
      static/img/答题/错@2x.png
  72. BIN
      static/imgs/banner.png
  73. BIN
      static/imgs/三力测试.png
  74. BIN
      static/imgs/不及格.png
  75. BIN
      static/imgs/不喜欢.png
  76. BIN
      static/imgs/专题、.png
  77. BIN
      static/imgs/专题灰.png
  78. BIN
      static/imgs/中振集市logo.png
  79. BIN
      static/imgs/买车.png
  80. BIN
      static/imgs/作者.png
  81. BIN
      static/imgs/使用指南.png
  82. BIN
      static/imgs/关闭(3).png
  83. BIN
      static/imgs/关闭.png
  84. BIN
      static/imgs/分享.png
  85. BIN
      static/imgs/包过保证icon.png
  86. BIN
      static/imgs/单选选中.png
  87. BIN
      static/imgs/发现-灰.png
  88. BIN
      static/imgs/发现.png
  89. BIN
      static/imgs/向上.png
  90. BIN
      static/imgs/向下.png
  91. BIN
      static/imgs/图层 10.png
  92. BIN
      static/imgs/图层 5(1).png
  93. BIN
      static/imgs/图层 5.png
  94. BIN
      static/imgs/图标练习icon.png
  95. BIN
      static/imgs/圆角矩形 1.png
  96. BIN
      static/imgs/圆角矩形 3(1).png
  97. BIN
      static/imgs/圆角矩形 3.png
  98. BIN
      static/imgs/夜间模式.png
  99. BIN
      static/imgs/夜间模式灰.png
  100. BIN
      static/imgs/头像.png

+ 4 - 3
api/answer.js

@@ -31,11 +31,13 @@ export function questionErrorList(params) {
 }
 
 // 新增错题
-export function questionErrorAdd(data) {
+export function questionErrorAdd(id) {
 	return request({
 		url: baseUrl + '/student/question/error',
 		method: 'post',
-		data
+		data: {
+			questionId: id
+		}
 	})
 }
 
@@ -44,6 +46,5 @@ export function questionErrorDel(ids) {
 	return request({
 		url: baseUrl + `/student/question/error/${ids}`,
 		method: 'delete'
-
 	})
 }

+ 33 - 0
api/applist.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
+
+
+
+
+// 查询精选商家列表
+export function featuredAppList(params) {
+	return request({
+		url: baseUrl + '/student/applet/customer/getCustomerListByCollectionCount',
+		method: 'get',
+		params
+	})
+}
+
+// 查询用户收藏列表
+export function collectionList(params) {
+	return request({
+		url: baseUrl + '/student/applet/collection/collectionList',
+		method: 'get',
+		params
+	})
+}
+
+// 查询用户浏览记录
+export function getBrowseRecordInfoList(params) {
+	return request({
+		url: baseUrl + '/student/applet/record/info/getBrowseRecordInfoList',
+		method: 'get',
+		params
+	})
+}

+ 15 - 0
api/studytime.js

@@ -0,0 +1,15 @@
+import request from '@/utils/request'
+
+const baseUrl = 'http://192.168.8.213:8080/zzjs-admin';
+
+
+
+
+// 查询精选商家列表
+export function featuredAppList(params) {
+	return request({
+		url: baseUrl + '/student/applet/customer/getCustomerListByCollectionCount',
+		method: 'get',
+		params
+	})
+}

+ 7 - 7
components/home/index.vue

@@ -24,7 +24,7 @@
 						</view>
 						<view class="jsbox">
 							<view class="bt">
-								<van-icon name="/static/img/home/我要计时@3x.png" />
+								<van-icon name="/static/imgs/我要计时.png" />
 								<text>我要计时</text>
 							</view>
 							<view :class="['js',{dh:dhfalg}]">
@@ -36,23 +36,23 @@
 					</view>
 				</van-col>
 				<van-col span="6">
-					<square icon='/static/img/home/包过保证icon@3x.png' title='包过保证' @tap='go()' />
-					<square icon='/static/img/home/模拟考试icon@3x.png' title='模拟考试' @tap="go('/pages/question/mockExam')" />
+					<square icon='/static/imgs/包过保证icon.png' title='包过保证' @tap='go()' />
+					<square icon='/static/imgs/模拟考试icon.png' title='模拟考试' @tap="go('/pages/question/mockExam')" />
 				</van-col>
 			</van-row>
 
 			<van-row>
 				<van-col span="6">
-					<square icon='/static/img/home/图标练习icon@3x.png' title='图标练习' @tap='go()' />
+					<square icon='/static/imgs/图标练习icon.png' title='图标练习' @tap='go()' />
 				</van-col>
 				<van-col span="6">
-					<square icon='/static/img/home/顺序测试icon@3x.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/img/home/随机测试icon@3x.png' title='随机测试' @tap="go('/pages/question/random')" />
+					<square icon='/static/imgs/随机测试icon.png' title='随机测试' @tap="go('/pages/question/random')" />
 				</van-col>
 				<van-col span="6">
-					<square icon='/static/img/home/错题收藏icon@3x.png' title='错题收藏' @tap="go('/pages/question/wrongTitle')" />
+					<square icon='/static/imgs/错题收藏icon.png' title='错题收藏' @tap="go('/pages/question/wrongTitle')" />
 				</van-col>
 			</van-row>
 		</view>

+ 8 - 8
pages.json

@@ -8,9 +8,15 @@
 			}
 		},
 		{
-			"path": "pages/home/index",
+			"path": "pages/collectionList/index",
 			"style": {
-				"disableScroll": true
+				"navigationBarTitleText": "我的收藏"
+			}
+		},
+		{
+			"path": "pages/browserecord/index",
+			"style": {
+				"navigationBarTitleText": "浏览足迹"
 			}
 		},
 		{
@@ -40,12 +46,6 @@
 				"navigationBarTitleText": "模拟考试",
 				"disableScroll": true
 			}
-		},
-		{
-			"path": "pages/idcard/index",
-			"style": {
-				"disableScroll": true
-			}
 		}
 	],
 	"globalStyle": {

+ 234 - 0
pages/browserecord/index.vue

@@ -0,0 +1,234 @@
+<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>
+							</view>
+						</view>
+					</view>
+				</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		getBrowseRecordInfoList
+	} from '@/api/applist.js'
+	export default {
+		data() {
+			return {
+				active: 0,
+				current: 0,
+				mode: 'round',
+				applist: {}
+			}
+		},
+		mounted() {
+			this.initAppList()
+		},
+		methods: {
+			initAppList() {
+				getBrowseRecordInfoList({
+					pageNum: 1,
+					pageSize: 10
+				}).then(res => {
+					console.log(res)
+					this.applist = res.rows
+				})
+			},
+			goMiniApp(appId) {
+				wx.navigateToMiniProgram({
+					appId,
+					success(res) {
+						// 打开成功
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		padding-bottom: 1rpx;
+	}
+
+	.swiper-box {
+		position: sticky;
+		top: 0px;
+		left: 0;
+		height: 422rpx;
+		z-index: 9;
+	}
+
+	.sticky-top {
+		position: sticky;
+		top: 192rpx;
+		left: 0;
+		margin: 30rpx 30rpx;
+		border-radius: 20rpx;
+		overflow: hidden;
+		background-color: #4fc08d;
+		z-index: 10;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		// border-top-left-radius: 14px;
+		// border-top-right-radius: 14px;
+		padding-right: 3%;
+
+		.top-search {
+			flex: 1;
+		}
+	}
+
+	.sticky {
+		position: sticky;
+		top: 295rpx;
+		left: 0;
+		background-color: #fff;
+		z-index: 9;
+		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;
+
+			.grid-item {
+				width: 50px;
+				height: 60px;
+				display: flex;
+				justify-content: center;
+				flex-direction: column;
+				align-items: center;
+				font-size: 12px;
+			}
+		}
+	}
+
+	.list-item {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		background-color: #FFFFFF;
+		height: 170rpx;
+		padding: 34rpx 20rpx;
+		margin: 24rpx 30rpx;
+		border-radius: 20rpx;
+
+		.avatar {
+			flex-shrink: 0;
+			width: 161rpx;
+			height: 161rpx;
+			margin-right: 16rpx;
+		}
+
+		.item-right {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			height: 200rpx;
+
+			.top {
+				.icon {
+					margin-left: 35rpx;
+				}
+
+				display: flex;
+				justify-content: flex-end;
+			}
+
+			.center {
+				align-self: flex-start;
+
+				.details {
+					width: 436rpx;
+					height: 70rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #0F0404;
+					display: -webkit-box;
+					margin-bottom: 20rpx;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					word-wrap: break-word;
+					white-space: normal !important;
+					-webkit-line-clamp: 2;
+					-webkit-box-orient: vertical;
+				}
+			}
+
+
+			.bottom {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.title {
+					padding: 3rpx 12rpx;
+					height: 30rpx;
+					background: #FFE6E6;
+					border: 1rpx solid #E31818;
+					border-radius: 2rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #E31818;
+					line-height: 20rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+				}
+
+				.right {
+					width: 170rpx;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #999999;
+					line-height: 35rpx;
+
+					.flex {
+						display: flex;
+						justify-content: center;
+
+						.icon {
+							margin-right: 5rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 234 - 0
pages/collectionList/index.vue

@@ -0,0 +1,234 @@
+<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>
+							</view>
+						</view>
+					</view>
+				</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		collectionList
+	} from '@/api/applist.js'
+	export default {
+		data() {
+			return {
+				active: 0,
+				current: 0,
+				mode: 'round',
+				applist: {}
+			}
+		},
+		mounted() {
+			this.initAppList()
+		},
+		methods: {
+			initAppList() {
+				collectionList({
+					pageNum: 1,
+					pageSize: 10
+				}).then(res => {
+					console.log(res)
+					this.applist = res.rows
+				})
+			},
+			goMiniApp(appId) {
+				wx.navigateToMiniProgram({
+					appId,
+					success(res) {
+						// 打开成功
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		padding-bottom: 1rpx;
+	}
+
+	.swiper-box {
+		position: sticky;
+		top: 0px;
+		left: 0;
+		height: 422rpx;
+		z-index: 9;
+	}
+
+	.sticky-top {
+		position: sticky;
+		top: 192rpx;
+		left: 0;
+		margin: 30rpx 30rpx;
+		border-radius: 20rpx;
+		overflow: hidden;
+		background-color: #4fc08d;
+		z-index: 10;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		// border-top-left-radius: 14px;
+		// border-top-right-radius: 14px;
+		padding-right: 3%;
+
+		.top-search {
+			flex: 1;
+		}
+	}
+
+	.sticky {
+		position: sticky;
+		top: 295rpx;
+		left: 0;
+		background-color: #fff;
+		z-index: 9;
+		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;
+
+			.grid-item {
+				width: 50px;
+				height: 60px;
+				display: flex;
+				justify-content: center;
+				flex-direction: column;
+				align-items: center;
+				font-size: 12px;
+			}
+		}
+	}
+
+	.list-item {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		background-color: #FFFFFF;
+		height: 170rpx;
+		padding: 34rpx 20rpx;
+		margin: 24rpx 30rpx;
+		border-radius: 20rpx;
+
+		.avatar {
+			flex-shrink: 0;
+			width: 161rpx;
+			height: 161rpx;
+			margin-right: 16rpx;
+		}
+
+		.item-right {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			height: 200rpx;
+
+			.top {
+				.icon {
+					margin-left: 35rpx;
+				}
+
+				display: flex;
+				justify-content: flex-end;
+			}
+
+			.center {
+				align-self: flex-start;
+
+				.details {
+					width: 436rpx;
+					height: 70rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #0F0404;
+					display: -webkit-box;
+					margin-bottom: 20rpx;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					word-wrap: break-word;
+					white-space: normal !important;
+					-webkit-line-clamp: 2;
+					-webkit-box-orient: vertical;
+				}
+			}
+
+
+			.bottom {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.title {
+					padding: 3rpx 12rpx;
+					height: 30rpx;
+					background: #FFE6E6;
+					border: 1rpx solid #E31818;
+					border-radius: 2rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #E31818;
+					line-height: 20rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+				}
+
+				.right {
+					width: 170rpx;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #999999;
+					line-height: 35rpx;
+
+					.flex {
+						display: flex;
+						justify-content: center;
+
+						.icon {
+							margin-right: 5rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 0 - 407
pages/home/index.vue

@@ -1,407 +0,0 @@
-<template>
-	<view class="content">
-		<view class="top-box">
-			<view class="icon"></view>
-			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
-			<van-icon class='set' name="/static/img/答题/设置@2x.png" size='20' @click='show=true' />
-		</view>
-		<van-popup :show="show" @close="show=false" position="bottom">
-			<van-cell title="背题模式" clickable :data-index="index" @click="answerflag=!answerflag">
-				<van-switch slot="right-icon" :checked="answerflag" size="24px" active-color="#16CC16" />
-				<!-- <selectSwitch slot="right-icon" @change="changeSwitch" :switchList="['答题模式','背题模式']" checked_bj_color='#E31818' /> -->
-			</van-cell>
-			<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="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>
-			<!-- 			<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> -->
-		</van-popup>
-
-		<van-skeleton class='skeleton' avatar row="6" :row-width="['100%','40%','70%','70%','70%','70%']" avatar-shape='square'
-		 :loading="loading">
-			<swiper class="swiper-box" :current="swiperIndex" @change="swiperChange" circular>
-				<swiper-item v-for="(itembox,indexbox) in questionList" :key='indexbox'>
-					<view class="swiper-item">
-						<view class="topic-box">
-							<view class="topic-right">
-								<view class="topic-top">
-									<view class="topic-left">
-										<text class="topic-type">{{questionType(itembox.type)}}</text>
-										<van-icon name="star-o" size='20' />
-									</view>
-									<text class="topic-tit">{{itembox.id}}、{{itembox.question}}</text>
-								</view>
-								<video v-if="itembox.videoUrl" class="topic-img" :muted='true' :loop='true' :autoplay='true' :controls='false'
-								 :src="encodeURI(itembox.mediaUrl)"></video>
-								<image v-if="itembox.sinaimg" class="topic-img" :src="itembox.mediaUrl" mode="aspectFit"></image>
-								<view class="topic-opt" v-if='itembox.type==2'>
-									<van-radio-group :value="userAnswer[itembox.id]">
-										<van-cell-group>
-											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
-											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
-											 :data-index="index+1" @click="singleToggle($event,itembox)">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
-												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
-											</van-cell>
-										</van-cell-group>
-									</van-radio-group>
-									<!-- <button @click="submit(itembox)" class="submit" type="default" v-show="!(answerflag || completeAnswer[itembox.id])">提交答案</button> -->
-								</view>
-								<view class="topic-opt" v-if='itembox.type==1'>
-									<van-radio-group :value="userAnswer[itembox.id]">
-										<van-cell-group>
-											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
-											 v-for="(item,index) in 2" :key="index" :title="index?'错误':'正确'" clickable :data-index="index+1" @click="singleToggle($event,itembox)">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
-												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
-											</van-cell>
-										</van-cell-group>
-									</van-radio-group>
-									<!-- <button @click="submit(itembox)" class="submit" type="default" v-show="!(answerflag || completeAnswer[itembox.id])">提交答案</button> -->
-								</view>
-								<view class="topic-opt" v-else-if='itembox.type==3'>
-									<van-checkbox-group :value="userAnswer[itembox.id]" @change="onChange($event,itembox)">
-										<van-cell-group>
-											<van-cell title-width='500rpx' :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
-											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
-											 @click='toggle($event,itembox)' :data-index="index">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
-												<van-checkbox shape="square" catch:tap="noop" slot="right-icon" :ref="`checkboxes${itembox.id}`"
-												 checked-color="#1464cc" :name="index+1" />
-											</van-cell>
-										</van-cell-group>
-									</van-checkbox-group>
-									<button @click="submit(itembox)" class="submit" type="default" v-show="!(answerflag || completeAnswer[itembox.id])">提交答案</button>
-								</view>
-							</view>
-						</view>
-						<view v-show="answerflag || completeAnswer[itembox.id]">
-							<view class="flag">
-								<text v-if="itembox.type==2" class="result">正确答案: {{itembox[choiceList[itembox.answerTrue-1]]}}</text>
-								<text v-else-if="itembox.type==1" class="result">正确答案: {{itembox.answerTrue==1?'正确':'错误'}}</text>
-								<text v-else-if="itembox.type==3" class="result">正确答案: {{itembox.answerTrue.split('').map((key)=>{
-									return itembox[choiceList[key-1]]
-								})}}</text>
-							</view>
-							<view class="parsing">
-								<view class="item-titBox">
-									<text class="item-tit">题目解析</text>
-								</view>
-								<view class="parsing-text">
-									<text class="item-tit">{{itembox.explain1}}</text>
-								</view>
-							</view>
-						</view>
-					</view>
-				</swiper-item>
-			</swiper>
-		</van-skeleton>
-
-
-	</view>
-</template>
-
-<script>
-	import selectSwitch from "@/components/xuan-switch/xuan-switch.vue";
-	import {
-		questionList
-	} from "@/api/answer.js"
-	export default {
-		components: {
-			selectSwitch
-		},
-		data() {
-			return {
-				loading: true,
-				answerflag: false,
-				answerjump: true,
-				kemu: 1,
-				completeAnswer: {},
-				show: false,
-				checked: true,
-				radio: null,
-				result: [],
-				userAnswer: {},
-				questionList: {},
-				choiceList: ['an1', 'an2', 'an3', 'an4', 'an5', 'an6', 'an7'],
-				swiperIndex: 0,
-				shakeIndex: 0,
-				pageNum: 1,
-				shake: 0,
-			}
-		},
-		mounted() {
-			questionList({
-				pageNum: this.pageNum,
-				pageSize: 20,
-				kemu: this.kemu
-			}).then((res) => {
-				this.questionList = res.rows
-				this.$nextTick(() => {
-					this.loading = false
-				})
-			})
-		},
-		methods: {
-			questionType(index) {
-				switch (index) {
-					case 1:
-						return '判断';
-					case 2:
-						return '单选';
-					case 3:
-						return '多选';
-				}
-			},
-			swiperChange(e) {
-				console.log(e)
-				let aShake = e.detail.current - this.shakeIndex
-				this.shake += aShake ** 2 != 1 ? -aShake / Math.abs(aShake) : aShake;
-				this.swiperIndex = e.detail.current
-				this.shakeIndex = e.detail.current
-				if (e.detail.current % 10 == 0) {
-					if (Math.abs(this.shake) < 10) {
-						this.shake = 0
-						return
-					}
-					this.pageNum += 1;
-					questionList({
-						pageNum: this.pageNum + 1,
-						pageSize: 10,
-						kemu: this.kemu
-					}).then((res) => {
-						this.shake = 0
-						if (e.detail.current == 20) {
-							this.questionList = res.rows.concat(this.questionList.slice(10))
-						}
-						if (e.detail.current == 10) {
-							this.questionList = this.questionList.slice(0, 20).concat(res.rows)
-						}
-						if (e.detail.current == 0) {
-							this.questionList = this.questionList.slice(0, 10).concat(res.rows).concat(this.questionList.slice(20))
-						}
-					})
-				}
-			},
-			onChange(event, itembox) {
-				if (this.completeAnswer[itembox.id] || this.answerflag) {
-					return
-				}
-				this.$set(this.userAnswer, itembox.id, event.detail)
-			},
-			singleToggle(event, itembox) {
-				if (this.completeAnswer[itembox.id] || this.answerflag) {
-					return
-				}
-				const {
-					index
-				} = event.currentTarget.dataset;
-				this.$set(this.userAnswer, itembox.id, index)
-				setTimeout(() => {
-					this.submit(itembox)
-				}, 0)
-			},
-			toggle(event, itembox) {
-				const {
-					index
-				} = event.currentTarget.dataset;
-				const checkbox = this.$refs[`checkboxes${itembox.id}`][index];
-				checkbox.toggle();
-			},
-			noop() {},
-			submit(itembox) {
-				this.$set(this.completeAnswer, itembox.id, true)
-				let flag = (this.userAnswer[itembox.id] + '').split(',').sort().join('') == itembox.answerTrue.split('').sort().join(
-					'')
-				if (flag) {
-					wx.vibrateShort();
-					if (this.answerjump) {
-						let index = this.swiperIndex
-						this.swiperIndex = ++index % 30
-					}
-				} else {
-					wx.vibrateLong();
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	/deep/ .answer .van-cell {
-		background-color: #16CC16 !important;
-		color: #ffffff;
-	}
-
-	/deep/ .van-cell {
-		// background-color: #16CC16 !important;
-		margin: 10rpx;
-		border-radius: 20rpx;
-	}
-
-	.content {
-		width: 100%;
-		height: 100vh;
-		background-color: #FFFFFF;
-	}
-
-	.skeleton {
-		// margin: 0rpx 20rpx;
-	}
-
-	.swiper-box {
-		height: calc(100vh - 120rpx);
-		margin: 0rpx 20rpx;
-
-		swiper-item {
-			overflow: auto;
-		}
-	}
-
-	.top-box {
-		height: 60rpx;
-		padding: 30rpx;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-
-		.icon {
-			width: 60rpx;
-		}
-
-		.btn {}
-
-		.set {
-			color: red;
-		}
-	}
-
-	.topic-box {
-		// padding: 20rpx;
-		display: flex;
-		justify-content: center;
-
-		// border: 2px solid red;
-		.topic-top {
-			display: flex;
-			// border: 2px solid red;
-			padding: 10rpx;
-
-			.topic-left {
-				display: flex;
-				flex-direction: column;
-
-				.topic-type {
-					background: #E31818;
-					border-radius: 10rpx;
-					// border: 2px solid red;
-					color: #FFFFFF;
-					width: 66rpx;
-					height: 30rpx;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					border-radius: 15px 15px 0px 15px;
-					padding: 10rpx;
-					margin-bottom: 18rpx;
-				}
-			}
-
-			.topic-tit {
-				padding: 10rpx;
-			}
-
-		}
-
-		.topic-right {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			padding: 0 10rpx;
-
-			.topic-img {
-				padding: 10rpx;
-				margin: auto;
-				width: 500rpx;
-				height: 250rpx;
-				// border: 2px solid red;
-			}
-
-			.topic-opt {
-				// border: 2px solid red;
-				padding: 30rpx 5rpx;
-
-				.submit {
-					margin: auto;
-					margin-top: 150rpx;
-
-					height: 80rpx;
-					background: linear-gradient(90deg, #E31818, #ED3E24, #ED4F24);
-					border-radius: 35rpx;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					color: #FFFFFF;
-				}
-			}
-		}
-
-	}
-
-	.flag {
-		// border: 2px solid red;
-		padding: 30rpx 5rpx;
-		display: flex;
-		justify-content: center;
-
-		.result {
-			display: inline-block;
-			background-color: #16CC16;
-			// border: 2px solid red;
-			width: 690rpx;
-			// height: 70rpx;
-			padding: 20rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			border-radius: 20rpx;
-			color: #ffffff;
-		}
-	}
-
-	.item-titBox {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding: 20rpx;
-		border-bottom: 1rpx solid #e8e8e8;
-
-		.item-tit {
-			border-left: 8rpx solid #E31818;
-			font-size: 30rpx;
-			// line-height: 38rpx;
-			padding: 0 11rpx;
-		}
-
-
-	}
-
-	.parsing-text {
-		padding: 30rpx;
-		// border: 2px solid red;
-
-	}
-</style>

+ 0 - 67
pages/idcard/index.vue

@@ -1,67 +0,0 @@
-<template>
-	<view class="idCard">
-		<van-cell-group>
-			<van-field :value="idCard" label="身份证" maxlength='18' placeholder="请输入身份证号"/>
-			<van-field :value="password" type="password" label="密码" placeholder="请输入密码" />
-			<van-cell title="归属驾校地区" :value="area" @click='popup=!popup' />
-		</van-cell-group>
-		<van-button round type="info">提交绑定信息</van-button>
-		<van-popup :show="popup" position="bottom">
-			<van-area :columns-placeholder="['请选择', '请选择']" value="35" @cancel='popup=!popup' @confirm='popup=!popup' :area-list="areaList" @change='regionSelection'
-			 columns-num='2' />
-		</van-popup>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				popup: false,
-				idCard: null,
-				password: null,
-				areaCode: null,
-				area: "请点击选择地区",
-				areaList: {
-					province_list: {
-						35: '福建省',
-					},
-					city_list: {
-						3501: '福州市',
-						3502: '厦门市',
-						3503: '莆田市',
-						3504: '三明市',
-						3505: '泉州市',
-						3506: '漳州市',
-						3507: '南平市',
-						3508: '龙岩市',
-						3509: '宁德市',
-					}
-				}
-			}
-		},
-		methods: {
-			regionSelection(e) {
-				console.log(e)
-				this.area = `${e.detail.values[0].name}  ${e.detail.values[1].name}`
-				this.areaCode = e.detail.values[1].code
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.idCard {
-		width: 600rpx;
-		height: 100vh;
-		margin: auto;
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-	}
-	.btn-box{
-		display: flex;
-		justify-content: space-between;
-	}
-</style>

+ 51 - 23
pages/index/components/applist/index.vue

@@ -7,61 +7,61 @@
 				</view>
 			</swiper-item>
 		</swiper>
-		
+
 		<view class="sticky-top">
 			<van-search class='top-search' shape="round" background="#4fc08d" placeholder="请输入搜索关键词" />
 			<van-icon name="scan" size="30px" @click="scanCode" />
 		</view>
-		
+
 		<view class="sticky">
 			<view class="grid">
 				<view class="grid-item" @click="comname=`xueche`">
-					<van-icon name="/static/img/home/学车@3x.png" size="20px" />
+					<van-icon name="/static/imgs/学车.png" size="20px" />
 					<text class="text">精选</text>
 				</view>
 				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/img/home/买车@3x.png" size="20px" />
+					<van-icon name="/static/imgs/买车.png" size="20px" />
 					<text class="text">买车</text>
 				</view>
 				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/img/home/美食@3x.png" size="20px" />
+					<van-icon name="/static/imgs/美食.png" size="20px" />
 					<text class="text">美食</text>
 				</view>
 				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/img/home/房产@3x.png" size="20px" />
+					<van-icon name="/static/imgs/房产.png" size="20px" />
 					<text class="text">房产</text>
 				</view>
 				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/img/home/宠物@3x.png" size="20px" />
+					<van-icon name="/static/imgs/宠物.png" size="20px" />
 					<text class="text">宠物</text>
 				</view>
 				<view class="grid-item" @click="comname=`applist`">
-					<van-icon name="/static/img/home/影院@3x.png" size="20px" />
+					<van-icon name="/static/imgs/影院.png" size="20px" />
 					<text class="text">院线</text>
 				</view>
 			</view>
 		</view>
 
-		<view class='list-item' v-for="(item, index) in 15" :key="index">
-			<image class="avatar" mode="aspectFit" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png">
+		<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/img/列表/收藏@2x.png" size='15' />
-						<van-icon class="icon" name="/static/img/列表/转发@2x.png" size='14' />
-						<van-icon class="icon" name="/static/img/列表/不喜欢@2x.png" size='12' />
+						<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">牛肉论斤吃!XXXXX资助火锅,单刃仅需998元起!牛肉论斤吃!XXXXX资助火锅,单刃仅需998元起!</text>
+						<text class="details">{{item.appletIntroduce}}</text>
 					</view>
 					<view class="bottom">
-						<text class="title">ABC丑食</text>
+						<text class="title">{{item.corporateName}}</text>
 						<view class="right" v-if="false">
 							<view class="flex">
-								<van-icon class="icon" name="/static/img/列表/评论@2x.png" size='15' />
+								<van-icon class="icon" name="/static/imgs/评论.png" size='15' />
 								<text>54</text>
 							</view>
 							<view class="flex">
-								<van-icon class="icon" name="/static/img/列表/好评率@2x.png" size='15' />
+								<van-icon class="icon" name="/static/imgs/好评率.png" size='15' />
 								<text>99%</text>
 							</view>
 						</view>
@@ -73,6 +73,9 @@
 </template>
 
 <script>
+	import {
+		featuredAppList
+	} from '@/api/applist.js'
 	export default {
 		data() {
 			return {
@@ -96,6 +99,29 @@
 				],
 				current: 0,
 				mode: 'round',
+				applist: {}
+			}
+		},
+		mounted() {
+			this.initAppList()
+		},
+		methods: {
+			initAppList() {
+				featuredAppList({
+					pageNum: 1,
+					pageSize: 10
+				}).then(res => {
+					console.log(res)
+					this.applist = res.rows
+				})
+			},
+			goMiniApp(appId) {
+				wx.navigateToMiniProgram({
+					appId,
+					success(res) {
+						// 打开成功
+					}
+				})
 			}
 		}
 	}
@@ -105,13 +131,15 @@
 	.content {
 		padding-bottom: 1rpx;
 	}
-	.swiper-box{
+
+	.swiper-box {
 		position: sticky;
 		top: 0px;
 		left: 0;
 		height: 422rpx;
 		z-index: 9;
 	}
+
 	.sticky-top {
 		position: sticky;
 		top: 192rpx;
@@ -127,12 +155,12 @@
 		// border-top-left-radius: 14px;
 		// border-top-right-radius: 14px;
 		padding-right: 3%;
-	
+
 		.top-search {
 			flex: 1;
 		}
 	}
-	
+
 	.sticky {
 		position: sticky;
 		top: 295rpx;
@@ -141,7 +169,7 @@
 		z-index: 9;
 		margin: 30rpx 30rpx;
 		border-radius: 20rpx;
-		
+
 		.grid {
 			display: flex;
 			justify-content: space-between;
@@ -168,10 +196,10 @@
 		justify-content: space-between;
 		background-color: #FFFFFF;
 		height: 170rpx;
-		padding: 34rpx;
+		padding: 34rpx 20rpx;
 		margin: 24rpx 30rpx;
 		border-radius: 20rpx;
-		
+
 		.avatar {
 			flex-shrink: 0;
 			width: 161rpx;

+ 6 - 4
pages/index/components/topic/index.vue

@@ -3,7 +3,7 @@
 		<view class="tit-box">
 			<text class="tit-tit">咸蛋黄酱,这是什么神仙食物</text>
 			<view class="author">
-				<van-icon class='icon' name="/static/img/专题/作者@2x.png" size="26rpx" />
+				<van-icon class='icon' name="/static/imgs/作者.png" size="26rpx" />
 				<text class="tit-author">幸福天使&ensp;&ensp;{{new Date().toJSON().slice(0,10)}}</text>
 			</view>
 			<swiper class="swiper-box" :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" circular>
@@ -30,7 +30,7 @@
 		</view>
 		<view class="share">
 			<button class="btn">
-				<van-icon class='icon' name="/static/img/专题/分享@2x.png" size="26px" />
+				<van-icon class='icon' name="/static/imgs/分享.png" size="26px" />
 				分享给好友</button>
 		</view>
 		<view class="comment">
@@ -80,10 +80,12 @@
 			color: #000000;
 			margin-bottom: 24rpx;
 		}
-		.author{
+
+		.author {
 			display: flex;
 			align-items: center;
 			margin-bottom: 43rpx;
+
 			.tit-author {
 				font-size: 26rpx;
 				font-family: PingFang SC;
@@ -92,7 +94,7 @@
 				margin-left: 5rpx;
 			}
 		}
-		
+
 
 		.swiper-box {
 			width: 680rpx;

+ 61 - 42
pages/index/components/user/index.vue

@@ -14,38 +14,33 @@
 			<view class="tit">
 				<text>我的服务</text>
 			</view>
-			<van-row>
-				<van-col span="6">
-					<view class="item-box">
-						<van-icon name="/static/img/用户/收藏@2x.png" size="22px" />
-						<text class="text">我的收藏</text>
-					</view>
-				</van-col>
-				<van-col offset='3' span="6">
-					<view class="item-box">
-						<van-icon name="/static/img/用户/浏览足迹@2x.png" size="22px" />
-						<text class="text">浏览足迹</text>
-					</view>
-				</van-col>
-				<van-col offset='3' span="6">
-					<view class="item-box">
-						<van-icon name="/static/img/用户/意见反馈@2x.png" size="22px" />
-						<text class="text">意见反馈</text>
-					</view>
-				</van-col>
-			</van-row>
+			<view class="btnBox">
+				<button class="item-box" :plain='true' @click="goUrl('/pages/collectionList/index')">
+					<van-icon name="/static/imgs/收藏(1).png" size="22px" />
+					<text class="text">我的收藏</text>
+				</button>
+				<button class="item-box" :plain='true' @click="goUrl('/pages/browserecord/index')">
+					<van-icon name="/static/imgs/浏览足迹.png" size="22px" />
+					<text class="text">浏览足迹</text>
+				</button>
+				<button class="item-box" :plain='true' open-type='feedback'>
+					<van-icon name="/static/imgs/意见反馈.png" size="22px" />
+					<text class="text">意见反馈</text>
+				</button>
+			</view>
+
 		</view>
 
 		<view class="serviceBox">
 			<view class="tit">
 				<text>我的信息</text>
 			</view>
-			<van-cell title="我的设置" icon="/static/img/用户/我的设置@2x.png" is-link />
-			<van-cell title="功能异常" icon="/static/img/用户/联系客服@2x.png" is-link />
-			<van-cell title="产品建议" icon="/static/img/用户/联系客服@2x.png" is-link />
-			<van-cell title="联系客服" icon="/static/img/用户/联系客服@2x.png" is-link />
+			<van-cell title="我的设置" icon="/static/imgs/我的设置.png" is-link />
+			<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">
 				<van-divider contentPosition="center">绑定身份证信息</van-divider>
@@ -112,13 +107,15 @@
 			console.log('App Hide66666')
 		},
 		mounted() {
-			getInfo().then((res) => {
-				console.log(res)
-				//设置用户信息
-				this.userData = res.data.student
-			})
+			this.initUserInfo()
 		},
 		methods: {
+			initUserInfo(){
+				getInfo().then((res) => {
+					//设置用户信息
+					this.userData = res.data.student
+				})
+			},
 			idCardput(e) {
 				this.idCard = e.detail
 			},
@@ -149,9 +146,9 @@
 				this.area = `${e.detail.values[0].name}  ${e.detail.values[1].name}`
 				this.areaCode = e.detail.values[1].code
 			},
-			goIDcard() {
+			goUrl(url) {
 				uni.navigateTo({
-					url: '/pages/idcard/index'
+					url
 				});
 			}
 		}
@@ -160,6 +157,14 @@
 </script>
 
 <style lang="scss" scoped>
+	.server{
+		border: none;
+		background-color: none;
+		margin: 0;
+		padding: 0;
+		text-align: left;
+		display: flexbox;
+	}
 	.idCard {
 		width: 600rpx;
 		padding: 30rpx;
@@ -181,7 +186,8 @@
 
 	.top {
 		padding-top: 100rpx;
-		background-image: url(/static/img/用户/矩形%204@2x.png);
+		background-image: url("/static/imgs/矩形 4(2).png");
+		background-size:100% 100%;
 		background-repeat: no-repeat;
 
 		.avabox {
@@ -205,15 +211,7 @@
 	}
 
 
-	.item-box {
-		display: flex;
-		flex-direction: column;
-		justify-content: space-between;
-		align-items: center;
-		height: 110rpx;
-		margin-top: 20rpx;
-		padding: 20rpx;
-	}
+	
 
 	.serviceBox {
 		background-color: #fff;
@@ -224,5 +222,26 @@
 			padding: 26rpx;
 			border-bottom: 1rpx solid #E8E8E8;
 		}
+		.btnBox{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			.item-box {
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+				align-items: center;
+				width: 200rpx;
+				margin-top: 20rpx;
+				padding: 20rpx;
+				border: none;
+				.text{
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #666666;
+				}
+			}
+		}
 	}
 </style>

+ 7 - 14
pages/index/index.vue

@@ -13,18 +13,18 @@
 	</van-transition>
 	<van-tabbar :active="active" @change="onChange" :placeholder='true' active-color="#0F0404" inactive-color="#999999">
 		<van-tabbar-item>
-			<van-icon slot="icon" name="/static/img/home/发现-灰@3x.png" />
-			<van-icon slot="icon-active" name="/static/img/home/发现@3x.png" />
+			<van-icon slot="icon" name="/static/imgs/发现-灰.png" />
+			<van-icon slot="icon-active" name="/static/imgs/发现.png" />
 			学车
 		</van-tabbar-item>
 		<van-tabbar-item>
-			<van-icon slot="icon" name="/static/img/home/专题灰@3x.png" />
-			<van-icon slot="icon-active" name="/static/img/home/专题@3x.png" />
+			<van-icon slot="icon" name="/static/imgs/专题灰.png" />
+			<van-icon slot="icon-active" name="/static/imgs/专题、.png" />
 			发现
 		</van-tabbar-item>
 		<van-tabbar-item>
-			<van-icon slot="icon" name="/static/img/home/我的灰@3x.png" />
-			<van-icon slot="icon-active" name="/static/img/home/我的@3x.png" />
+			<van-icon slot="icon" name="/static/imgs/我的灰.png" />
+			<van-icon slot="icon-active" name="/static/imgs/我的.png" />
 			我的
 		</van-tabbar-item>
 	</van-tabbar>
@@ -32,14 +32,12 @@
 </template>
 
 <script>
-	import xueche from '@/pages/home/index'
 	import applist from './components/applist/index.vue'
 	import find from './components/find/index.vue'
 	import user from './components/user/index.vue'
 	import topic from './components/topic/index.vue'
 	export default {
 		components: {
-			xueche,
 			applist,
 			find,
 			user,
@@ -101,12 +99,7 @@
 			},
 			change(e) {
 				this.current = e.detail.current;
-			},
-			go() {
-				uni.navigateTo({
-					url: '/pages/home/index'
-				});
-			},
+			}
 		}
 	}
 </script>

+ 17 - 10
pages/question/mockExam.vue

@@ -3,7 +3,7 @@
 		<view class="top-box">
 			<view class="icon"></view>
 			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
-			<van-icon class='set' name="/static/img/答题/设置@2x.png" size='20' @click='show=true' />
+			<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">
@@ -34,7 +34,7 @@
 										<van-cell-group>
 											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag))}' v-for="(item,index) in choiceList"
 											 :key="index" :title="itembox[item]" v-show='itembox[item]' clickable :data-index="index+1" @click="singleToggle($event,itembox)">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/img/答题/对@2x.png"
+												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/imgs/对.png"
 												 size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
@@ -47,7 +47,7 @@
 										<van-cell-group>
 											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag))}' v-for="(item,index) in 2"
 											 :key="index" :title="index?'错误':'正确'" clickable :data-index="index+1" @click="singleToggle($event,itembox)">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/img/答题/对@2x.png"
+												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/imgs/对.png"
 												 size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
@@ -58,10 +58,10 @@
 								<view class="topic-opt" v-else-if='itembox.type==3'>
 									<van-checkbox-group :value="userAnswer[itembox.id]" @change="onChange($event,itembox)">
 										<van-cell-group>
-											<van-cell title-width='500rpx' :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag))}'
-											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
-											 @click='toggle($event,itembox)' :data-index="index">
-												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/img/答题/对@2x.png"
+											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag))}' v-for="(item,index) in choiceList"
+											 :key="index" :title="itembox[item]" v-show='itembox[item]' clickable @click='toggle($event,itembox)'
+											 :data-index="index">
+												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" slot="icon" name="/static/imgs/对.png"
 												 size='20' />
 												<van-checkbox shape="square" catch:tap="noop" slot="right-icon" :ref="`checkboxes${itembox.id}`"
 												 checked-color="#1464cc" :name="index+1" />
@@ -93,7 +93,7 @@
 				</swiper-item>
 			</swiper>
 			<view class="carryOut" v-if="!answerflag">
-				<van-count-down id='count' :auto-start='false' :time="1 * 60 * 60 * 1000" />
+				<van-count-down id='count' :auto-start='false' :time="remainingTime * 60 * 1000" />
 				<button @click="statistics" class="carryOut-btn" type="default">我要交卷</button>
 			</view>
 			<van-dialog id="van-dialog" />
@@ -132,7 +132,9 @@
 				pageNum: 1,
 				shake: 0,
 				trueNum: 0,
-				errorBox: []
+				errorBox: [],
+				remainingTime: 60,
+				startDate:new Date().getTime(),
 			}
 		},
 		mounted() {
@@ -211,14 +213,19 @@
 				this.questionList.map((itembox, index) => {
 					this.submit(itembox, index)
 				})
+				this.selectComponent('#count').pause()
 				Dialog.alert({
 					title: '模拟考试结果',
-					message: `考试结果: ${this.trueNum}分\n\n答错题目: \n${this.errorBox}`,
+					message: `考试结果: ${this.trueNum}分\n答题用时: ${this.calcTime()}\n答错题目: \n${this.errorBox}`,
 					messageAlign: 'left',
 					confirmButtonText: '查看答案及解析'
 				}).then(() => {
 					this.answerflag = true
 				});
+			},
+			calcTime(){
+				let time=new Date().getTime()-this.startDate
+				return new Date(time).toJSON().slice(11,-5)
 			}
 		}
 	}

+ 13 - 7
pages/question/random.vue

@@ -3,7 +3,7 @@
 		<view class="top-box">
 			<view class="icon"></view>
 			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
-			<van-icon class='set' name="/static/img/答题/设置@2x.png" size='20' @click='show=true' />
+			<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="answerflag=!answerflag">
@@ -37,7 +37,7 @@
 								<view class="topic-top">
 									<view class="topic-left">
 										<text class="topic-type">{{questionType(itembox.type)}}</text>
-										<van-icon name="star-o" size='20' />
+										<van-icon name="star-o" size='20' @tap='markQuestion(itembox.id)'/>
 									</view>
 									<!-- <rich-text class="topic-tit" :nodes="itembox.id+'、'+itembox.question"></rich-text> -->
 									<view class="topic-tit" v-html="itembox.id+'、'+itembox.question"></view>
@@ -52,7 +52,7 @@
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -65,7 +65,7 @@
 											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
 											 v-for="(item,index) in 2" :key="index" :title="index?'错误':'正确'" clickable :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -79,7 +79,7 @@
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 @click='toggle($event,itembox)' :data-index="index">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-checkbox shape="square" catch:tap="noop" slot="right-icon" :ref="`checkboxes${itembox.id}`"
 												 checked-color="#1464cc" :name="index+1" />
 											</van-cell>
@@ -118,7 +118,9 @@
 <script>
 	import selectSwitch from "@/components/xuan-switch/xuan-switch.vue";
 	import {
-		questionListRandom
+		questionListRandom,
+		questionErrorAdd,
+		questionErrorDel
 	} from "@/api/answer.js"
 	export default {
 		components: {
@@ -169,8 +171,12 @@
 						return '多选';
 				}
 			},
+			markQuestion(id){
+				questionErrorAdd(id).then((res)=>{
+					
+				})
+			},
 			swiperChange(e) {
-				console.log(e)
 				let aShake = e.detail.current - this.shakeIndex
 				this.shake += aShake ** 2 != 1 ? -aShake / Math.abs(aShake) : aShake;
 				this.swiperIndex = e.detail.current

+ 5 - 6
pages/question/sequential.vue

@@ -3,7 +3,7 @@
 		<view class="top-box">
 			<view class="icon"></view>
 			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
-			<van-icon class='set' name="/static/img/答题/设置@2x.png" size='20' @click='show=true' />
+			<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="answerflag=!answerflag">
@@ -52,7 +52,7 @@
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -65,7 +65,7 @@
 											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
 											 v-for="(item,index) in 2" :key="index" :title="index?'错误':'正确'" clickable :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -75,11 +75,11 @@
 								<view class="topic-opt" v-else-if='itembox.type==3'>
 									<van-checkbox-group :value="userAnswer[itembox.id]" @change="onChange($event,itembox)">
 										<van-cell-group>
-											<van-cell title-width='500rpx' :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
+											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 @click='toggle($event,itembox)' :data-index="index">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-checkbox shape="square" catch:tap="noop" slot="right-icon" :ref="`checkboxes${itembox.id}`"
 												 checked-color="#1464cc" :name="index+1" />
 											</van-cell>
@@ -196,7 +196,6 @@
 				}
 			},
 			swiperChange(e) {
-				console.log(e)
 				let aShake = e.detail.current - this.shakeIndex
 				this.shake += aShake ** 2 != 1 ? -aShake / Math.abs(aShake) : aShake;
 				this.swiperIndex = e.detail.current

+ 13 - 9
pages/question/wrongTitle.vue

@@ -3,7 +3,7 @@
 		<view class="top-box">
 			<view class="icon"></view>
 			<selectSwitch class='btn' @change="changeSwitch" :switchList="['科一题目','科四题目']" checked_bj_color='#E31818' />
-			<van-icon class='set' name="/static/img/答题/设置@2x.png" size='20' @click='show=true' />
+			<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="answerflag=!answerflag">
@@ -52,7 +52,7 @@
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -65,7 +65,7 @@
 											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
 											 v-for="(item,index) in 2" :key="index" :title="index?'错误':'正确'" clickable :data-index="index+1" @click="singleToggle($event,itembox)">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -75,11 +75,11 @@
 								<view class="topic-opt" v-else-if='itembox.type==3'>
 									<van-checkbox-group :value="userAnswer[itembox.id]" @change="onChange($event,itembox)">
 										<van-cell-group>
-											<van-cell title-width='500rpx' :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
+											<van-cell :class='{answer:(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))}'
 											 v-for="(item,index) in choiceList" :key="index" :title="itembox[item]" v-show='itembox[item]' clickable
 											 @click='toggle($event,itembox)' :data-index="index">
 												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												 name="/static/imgs/对.png" size='20' />
 												<van-checkbox shape="square" catch:tap="noop" slot="right-icon" :ref="`checkboxes${itembox.id}`"
 												 checked-color="#1464cc" :name="index+1" />
 											</van-cell>
@@ -118,7 +118,7 @@
 <script>
 	import selectSwitch from "@/components/xuan-switch/xuan-switch.vue";
 	import {
-		questionList
+		questionErrorList
 	} from "@/api/answer.js"
 	export default {
 		components: {
@@ -149,11 +149,16 @@
 		},
 		methods: {
 			async listInit() {
-				await questionList({
+				await questionErrorList({
 					pageNum: this.pageNum,
 					pageSize: 20,
 					kemu: this.kemu
 				}).then((res) => {
+					if (res.rows.length == 0) {
+						res.rows[0] = {
+							question: "暂无错题"
+						}
+					}
 					this.questionList = res.rows
 					this.$nextTick(() => {
 						this.loading = false
@@ -171,7 +176,6 @@
 				}
 			},
 			swiperChange(e) {
-				console.log(e)
 				let aShake = e.detail.current - this.shakeIndex
 				this.shake += aShake ** 2 != 1 ? -aShake / Math.abs(aShake) : aShake;
 				this.swiperIndex = e.detail.current
@@ -234,7 +238,7 @@
 					wx.vibrateShort();
 					if (this.answerjump) {
 						let index = this.swiperIndex
-						this.swiperIndex = ++index % 30
+						this.swiperIndex = ++index % this.questionList.length
 					}
 				} else {
 					wx.vibrateLong();

BIN
static/img/01.png


BIN
static/img/home/banner@3x.png


BIN
static/img/home/三力测试@3x.png


BIN
static/img/home/专题@3x.png


BIN
static/img/home/专题灰@3x.png


BIN
static/img/home/买车@3x.png


BIN
static/img/home/使用指南@3x.png


BIN
static/img/home/包过保证icon@3x.png


BIN
static/img/home/发现-灰@3x.png


BIN
static/img/home/发现@3x.png


BIN
static/img/home/图层 5@3x.png


BIN
static/img/home/图标练习icon@3x.png


BIN
static/img/home/学车@3x.png


BIN
static/img/home/定位图标@3x.png


BIN
static/img/home/宠物@3x.png


BIN
static/img/home/年龄条件@3x.png


BIN
static/img/home/形状 4 拷贝@3x.png


BIN
static/img/home/影院@3x.png


BIN
static/img/home/成绩查询@3x.png


BIN
static/img/home/我的@3x.png


BIN
static/img/home/我的灰@3x.png


BIN
static/img/home/我要计时@3x.png


BIN
static/img/home/房产@3x.png


BIN
static/img/home/搜索@3x.png


BIN
static/img/home/模拟考试icon@3x.png


BIN
static/img/home/矩形 4@3x.png


BIN
static/img/home/组 67@3x.png


BIN
static/img/home/美食@3x.png


BIN
static/img/home/设置@2x.png


BIN
static/img/home/身体条件@3x.png


BIN
static/img/home/错题收藏icon@3x.png


BIN
static/img/home/随机测试icon@3x.png


BIN
static/img/home/顺序测试icon@3x.png


BIN
static/img/home/驾照有效期@3x.png


BIN
static/img/home/驾照种类@3x.png


BIN
static/img/home/驾驶许可@3x.png


BIN
static/img/专题/作者@2x.png


BIN
static/img/专题/分享@2x.png


BIN
static/img/列表/不喜欢@2x.png


BIN
static/img/列表/好评率@2x.png


BIN
static/img/列表/已收藏@2x.png


BIN
static/img/列表/收藏@2x.png


BIN
static/img/列表/评论@2x.png


BIN
static/img/列表/转发@2x.png


BIN
static/img/用户/图层 10@2x.png


BIN
static/img/用户/意见反馈@2x.png


BIN
static/img/用户/我的设置@2x.png


BIN
static/img/用户/收藏@2x.png


BIN
static/img/用户/浏览足迹@2x.png


BIN
static/img/用户/矩形 4@2x.png


BIN
static/img/用户/联系客服@2x.png


BIN
static/img/答题/对@2x.png


BIN
static/img/答题/设置@2x.png


BIN
static/img/答题/错@2x.png


BIN
static/imgs/banner.png


BIN
static/imgs/三力测试.png


BIN
static/imgs/不及格.png


BIN
static/imgs/不喜欢.png


BIN
static/imgs/专题、.png


BIN
static/imgs/专题灰.png


BIN
static/imgs/中振集市logo.png


BIN
static/imgs/买车.png


BIN
static/imgs/作者.png


BIN
static/imgs/使用指南.png


BIN
static/imgs/关闭(3).png


BIN
static/imgs/关闭.png


BIN
static/imgs/分享.png


BIN
static/imgs/包过保证icon.png


BIN
static/imgs/单选选中.png


BIN
static/imgs/发现-灰.png


BIN
static/imgs/发现.png


BIN
static/imgs/向上.png


BIN
static/imgs/向下.png


BIN
static/imgs/图层 10.png


BIN
static/imgs/图层 5(1).png


BIN
static/imgs/图层 5.png


BIN
static/imgs/图标练习icon.png


BIN
static/imgs/圆角矩形 1.png


BIN
static/imgs/圆角矩形 3(1).png


BIN
static/imgs/圆角矩形 3.png


BIN
static/imgs/夜间模式.png


BIN
static/imgs/夜间模式灰.png


BIN
static/imgs/头像.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно