wyling 4 年之前
父节点
当前提交
fd54bc1833
共有 39 个文件被更改,包括 406 次插入235 次删除
  1. 0 1
      App.vue
  2. 1 1
      components/home/index.vue
  3. 3 1
      pages.json
  4. 14 10
      pages/index/components/user/index.vue
  5. 1 2
      pages/index/index.vue
  6. 72 70
      pages/question/mockExam.vue
  7. 3 2
      pages/question/sequential.vue
  8. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  9. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  10. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/home/index.js.map
  11. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/square/index.js.map
  12. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/xuan-switch/xuan-switch.js.map
  13. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map
  14. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/idcard/index.js.map
  15. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/applist/index.js.map
  16. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/find/index.js.map
  17. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/topic/index.js.map
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/user/index.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/mockExam.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/random.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/sequential.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/wrongTitle.js.map
  24. 4 3
      unpackage/dist/dev/mp-weixin/app.json
  25. 0 1
      unpackage/dist/dev/mp-weixin/common/main.js
  26. 179 38
      unpackage/dist/dev/mp-weixin/common/vendor.js
  27. 0 0
      unpackage/dist/dev/mp-weixin/components/home/index.wxml
  28. 14 10
      unpackage/dist/dev/mp-weixin/pages/index/components/user/index.js
  29. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/components/user/index.wxml
  30. 2 3
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  31. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  32. 34 61
      unpackage/dist/dev/mp-weixin/pages/question/mockExam.js
  33. 0 0
      unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxml
  34. 36 0
      unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxss
  35. 5 3
      unpackage/dist/dev/mp-weixin/pages/question/sequential.js
  36. 7 0
      unpackage/dist/dev/mp-weixin/sitemap23.json
  37. 19 6
      utils/auth.js
  38. 1 0
      utils/errorCode.js
  39. 11 23
      utils/request.js

+ 0 - 1
App.vue

@@ -6,7 +6,6 @@
 	} from '@/utils/auth'
 	export default {
 		onLaunch: function() {
-			removeToken()
 			console.log('App Launch')
 		},
 		onShow: function() {

+ 1 - 1
components/home/index.vue

@@ -72,7 +72,7 @@
 					<button class="video-box-btn" @tap='go()'>去观看</button>
 				</view>
 				
-				<video class="myVideo" id="myVideo2" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4"
+				<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">
 					<text class="video-box-tit">3D模拟练车</text>

+ 3 - 1
pages.json

@@ -75,7 +75,9 @@
 			"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-divider": "/wxcomponents/vant/divider/index",
+			 "van-count-down": "/wxcomponents/vant/count-down/index",
+			 "van-dialog": "/wxcomponents/vant/dialog/index"
 		}
 	}
 }

+ 14 - 10
pages/index/components/user/index.vue

@@ -48,7 +48,6 @@
 
 		<van-popup :show="idCardShow" round>
 			<view class="idCard">
-				<van-divider contentPosition="right">绑定身份证信息</van-divider>
 				<van-divider contentPosition="center">绑定身份证信息</van-divider>
 				<van-cell-group>
 					<van-field :value="idCard" @change='idCardput' label="身份证" maxlength='18' placeholder="请输入身份证号" />
@@ -57,7 +56,7 @@
 				</van-cell-group>
 				<view class="btn-box">
 					<van-button @click='idCardShow=!idCardShow' type="default">取消绑定</van-button>
-					<van-button @click='submitBinding' type="info">确认绑定</van-button>
+					<van-button @click='submitBinding' type="info" :loading='loading' loading-text="绑定中..">确认绑定</van-button>
 				</view>
 			</view>
 		</van-popup>
@@ -71,11 +70,7 @@
 <script>
 	import square from '@/components/square/index.vue'
 	import md5 from 'crypto-js/md5'
-	import {
-		setToken,
-		getToken,
-		removeToken
-	} from '@/utils/auth'
+	import Toast from '@/wxcomponents/vant/toast/toast';
 	import {
 		login,
 		getInfo,
@@ -88,6 +83,7 @@
 		data() {
 			return {
 				userData: {},
+				loading: false,
 				idCardShow: false,
 				popup: false,
 				idCard: null,
@@ -116,7 +112,6 @@
 			console.log('App Hide66666')
 		},
 		mounted() {
-			removeToken()
 			getInfo().then((res) => {
 				console.log(res)
 				//设置用户信息
@@ -132,12 +127,21 @@
 			},
 			submitBinding() {
 				console.log(this.areaCode, this.idCard, this.password)
+				this.loading = true
 				bindUserCard({
 					city: this.areaCode,
 					logincode: this.idCard,
 					password: md5(this.password).toString()
-				}).then(() => {
-
+				}).then((res) => {
+					if (res.code == 200) {
+						Toast.success('绑定成功');
+						this.idCardShow = false
+					} else if (res.code == 502) {
+						Toast.fail(res.msg);
+					} else {
+						Toast.fail('系统内部错误');
+					}
+					this.loading = false
 				})
 			},
 			regionSelection(e) {

+ 1 - 2
pages/index/index.vue

@@ -28,8 +28,7 @@
 			我的
 		</van-tabbar-item>
 	</van-tabbar>
-	</view>
-	</view>
+	<van-toast id="van-toast" />
 </template>
 
 <script>

+ 72 - 70
pages/question/mockExam.vue

@@ -6,25 +6,9 @@
 			<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-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'
@@ -40,7 +24,7 @@
 										<van-icon name="star-o" size='20' />
 									</view>
 									<!-- <rich-text class="topic-tit" :nodes="itembox.id+'、'+itembox.question"></rich-text> -->
-									<view  class="topic-tit" v-html="itembox.id+'、'+itembox.question"></view>
+									<view class="topic-tit" v-html="(indexbox+1)+'、'+itembox.question"></view>
 								</view>
 								<video v-if="itembox.videoUrl" class="topic-img" :muted='true' :loop='true' :autoplay='true' :controls='false'
 								 :src="encodeURI(itembox.mediaUrl)"></video>
@@ -48,11 +32,10 @@
 								<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-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"
+												 size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -62,10 +45,10 @@
 								<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-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"
+												 size='20' />
 												<van-radio slot="right-icon" :ref="`checkboxes${itembox.id}`" checked-color="#1464cc" :name="index+1" />
 											</van-cell>
 										</van-cell-group>
@@ -75,21 +58,21 @@
 								<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 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 || completeAnswer[itembox.id]))" slot="icon"
-												 name="/static/img/答题/对@2x.png" size='20' />
+												<van-icon v-if="(itembox.answerTrue.includes(index+1) && (answerflag))" 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>
+									<!-- <button @click="submit(itembox)" class="submit" type="default" v-show="!(answerflag)">提交答案</button> -->
 								</view>
 							</view>
 						</view>
-						<view v-show="answerflag || completeAnswer[itembox.id]">
+						<view v-show="answerflag">
 							<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>
@@ -109,6 +92,11 @@
 					</view>
 				</swiper-item>
 			</swiper>
+			<view class="carryOut" v-if="!answerflag">
+				<van-count-down id='count' :auto-start='false' :time="1 * 60 * 60 * 1000" />
+				<button @click="statistics" class="carryOut-btn" type="default">我要交卷</button>
+			</view>
+			<van-dialog id="van-dialog" />
 		</van-skeleton>
 
 
@@ -117,6 +105,7 @@
 
 <script>
 	import selectSwitch from "@/components/xuan-switch/xuan-switch.vue";
+	import Dialog from '@/wxcomponents/vant/dialog/dialog';
 	import {
 		questionListRandom
 	} from "@/api/answer.js"
@@ -142,6 +131,8 @@
 				shakeIndex: 0,
 				pageNum: 1,
 				shake: 0,
+				trueNum: 0,
+				errorBox: []
 			}
 		},
 		mounted() {
@@ -150,14 +141,21 @@
 		methods: {
 			async listInit() {
 				await questionListRandom({
-					num: 100,
+					num: 5,
 					kemu: this.kemu
 				}).then((res) => {
 					this.questionList = res.rows
 					this.$nextTick(() => {
 						this.loading = false
+						this.selectComponent('#count').start()
 					})
 				})
+				await questionListRandom({
+					num: 95,
+					kemu: this.kemu
+				}).then((res) => {
+					this.questionList = this.questionList.concat(res.rows)
+				})
 			},
 			questionType(index) {
 				switch (index) {
@@ -170,34 +168,7 @@
 				}
 			},
 			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) {
@@ -213,9 +184,10 @@
 					index
 				} = event.currentTarget.dataset;
 				this.$set(this.userAnswer, itembox.id, index)
-				setTimeout(() => {
-					this.submit(itembox)
-				}, 0)
+				if (this.answerjump) {
+					let index = this.swiperIndex
+					this.swiperIndex = ++index % 100
+				}
 			},
 			toggle(event, itembox) {
 				const {
@@ -225,25 +197,55 @@
 				checkbox.toggle();
 			},
 			noop() {},
-			submit(itembox) {
+			submit(itembox, index) {
 				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 % 100
-					}
+					this.trueNum += 1
 				} else {
-					wx.vibrateLong();
+					this.errorBox.push(index + 1)
 				}
+			},
+			statistics() {
+				this.questionList.map((itembox, index) => {
+					this.submit(itembox, index)
+				})
+				Dialog.alert({
+					title: '模拟考试结果',
+					message: `考试结果: ${this.trueNum}分\n\n答错题目: \n${this.errorBox}`,
+					messageAlign: 'left',
+					confirmButtonText: '查看答案及解析'
+				}).then(() => {
+					this.answerflag = true
+				});
 			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
+	.carryOut {
+		position: fixed;
+		bottom: 120rpx;
+		left: 50%;
+		transform: translateX(-50%);
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+
+		.carryOut-btn {
+			height: 80rpx;
+			background: linear-gradient(90deg, #E31818, #ED3E24, #ED4F24);
+			border-radius: 35rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			color: #FFFFFF;
+		}
+	}
+
 	/deep/ .answer .van-cell {
 		background-color: #16CC16 !important;
 		color: #ffffff;

+ 3 - 2
pages/question/sequential.vue

@@ -140,7 +140,7 @@
 				choiceList: ['an1', 'an2', 'an3', 'an4', 'an5', 'an6', 'an7'],
 				swiperIndex: 0,
 				shakeIndex: 0,
-				pageNum: 1,
+				pageNum: uni.getStorageSync('pageNum') || 1,
 				shake: 0,
 			}
 		},
@@ -214,6 +214,7 @@
 						pageSize: 10,
 						kemu: this.kemu
 					}).then((res) => {
+						uni.setStorageSync('pageNum', this.pageNum)
 						this.shake = 0
 						if (ascFlag > 0) {
 							if (e.detail.current == 30) {
@@ -229,7 +230,7 @@
 								this.questionList = this.questionList.slice(0, 10).concat(res.rows).concat(this.questionList.slice(20))
 							}
 						} else {
-							res.rows.reverse()
+							(this.pageNum + ascFlag) > 0 || res.rows.reverse()
 							if (e.detail.current == 0) {
 								this.questionList = this.questionList.slice(0, 20).concat(res.rows).concat(this.questionList.slice(30))
 							}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/home/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/square/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/xuan-switch/xuan-switch.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/idcard/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/applist/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/find/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/topic/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/components/user/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/mockExam.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/random.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/sequential.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/question/wrongTitle.js.map


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

@@ -38,7 +38,8 @@
     "van-field": "/wxcomponents/vant/field/index",
     "van-area": "/wxcomponents/vant/area/index",
     "van-button": "/wxcomponents/vant/button/index",
-    "van-divider": "/wxcomponents/vant/divider/index"
-  },
-  "sitemapLocation": "sitemap46.json"
+    "van-divider": "/wxcomponents/vant/divider/index",
+    "van-count-down": "/wxcomponents/vant/count-down/index",
+    "van-dialog": "/wxcomponents/vant/dialog/index"
+  }
 }

+ 0 - 1
unpackage/dist/dev/mp-weixin/common/main.js

@@ -96,7 +96,6 @@ var _auth = __webpack_require__(/*! @/utils/auth */ 8);var _default =
 
 {
   onLaunch: function onLaunch() {
-    (0, _auth.removeToken)();
     console.log('App Launch');
   },
   onShow: function onShow() {

+ 179 - 38
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -7890,31 +7890,44 @@ module.exports = g;
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.getToken = getToken;exports.setToken = setToken;exports.removeToken = removeToken;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 9));
+/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.getToken = getToken;exports.setToken = setToken;exports.refreshToken = refreshToken;exports.removeToken = removeToken;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 9));
 var _login = __webpack_require__(/*! @/api/login.js */ 12);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}
 
 
 
-var TokenKey = 'Admin-Token';function
+var TokenKey = 'Admin-Token';
 
-getToken() {return _getToken.apply(this, arguments);}function _getToken() {_getToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {var token, res;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:
-            token = uni.getStorageSync(TokenKey);if (!
-            token) {_context.next = 5;break;}return _context.abrupt("return",
-            token);case 5:_context.next = 7;return (
+//获取token
+function getToken() {return _getToken.apply(this, arguments);}
 
-              (0, _login.login)());case 7:res = _context.sent;
-            setToken(res.data.token);return _context.abrupt("return",
-            res.data.token);case 10:case "end":return _context.stop();}}}, _callee);}));return _getToken.apply(this, arguments);}
 
 
 
-function setToken(token) {
-  // return Cookies.set(TokenKey, token)
-  return uni.setStorageSync(TokenKey, token);
+
+
+
+
+
+
+//设置token
+function _getToken() {_getToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {var tokenObj, res;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:tokenObj = uni.getStorageSync(TokenKey);if (!(new Date().getTime() - tokenObj.date < 1000 * 60 * 28)) {_context.next = 5;break;}return _context.abrupt("return", tokenObj.token);case 5:_context.next = 7;return (0, _login.login)();case 7:res = _context.sent;setToken(res.data.token);return _context.abrupt("return", res.data.token);case 10:case "end":return _context.stop();}}}, _callee);}));return _getToken.apply(this, arguments);}function setToken(token) {
+  var tokenObj = {
+    token: token,
+    date: new Date().getTime() };
+
+  return uni.setStorageSync(TokenKey, tokenObj);
 }
 
+//刷新token时间
+function refreshToken(token) {
+  var tokenObj = uni.getStorageSync(TokenKey);
+  if (!tokenObj) return;
+  tokenObj.date = new Date().getTime();
+  return uni.setStorageSync(TokenKey, tokenObj);
+}
+
+//移除token
 function removeToken() {
-  // return Cookies.remove(TokenKey)
   return uni.removeStorageSync(TokenKey);
 }
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
@@ -8841,25 +8854,16 @@ Object.defineProperty(exports, "__esModule", { value: true });exports.default =
 
 
 
+
 var _login = __webpack_require__(/*! @/api/login.js */ 12);
 
 
 var _errorCode = _interopRequireDefault(__webpack_require__(/*! @/utils/errorCode */ 14));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}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;}
 
-//防抖函数
-function 防抖(fn, wait) {
-  var timeID;
-  wait = wait || 1000 * 60 * 25;
-  return function () {
-    timeID && clearTimeout(timeID);
-    timeID = setTimeout(fn, wait);
-  };
-}
-var 定时清除token = 防抖(_auth.removeToken);
 
 /**
-                                        * http请求封装
-                                        */
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * http请求封装
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
 var myAxios = function myAxios(req) {
 
   var query = '';
@@ -8885,9 +8889,7 @@ var myAxios = function myAxios(req) {
 
 
   // 请求拦截器
-  function 请求拦截(_x) {return _.apply(this, arguments);}
-
-
+  function reqMiddleware(_x) {return _reqMiddleware.apply(this, arguments);}
 
 
 
@@ -8898,9 +8900,8 @@ var myAxios = function myAxios(req) {
 
 
   // 响应拦截器
-  function _() {_ = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(config) {var token;return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0: //重置Authorization过期时间,使用防抖函数
-              定时清除token();if (!config.header.isLogin) {_context3.next = 3;break;}return _context3.abrupt("return", config);case 3:_context3.next = 5;return (0, _auth.getToken)();case 5:token = _context3.sent;config.header['Authorization'] = 'Bearer ' + token; // 让每个请求携带自定义token 请根据实际情况自行修改
-              return _context3.abrupt("return", config);case 8:case "end":return _context3.stop();}}}, _callee3);}));return _.apply(this, arguments);}function 返回拦截(_x2) {return _2.apply(this, arguments);}
+  function _reqMiddleware() {_reqMiddleware = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(config) {var token;return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:if (!config.header.isLogin) {_context3.next = 2;break;}return _context3.abrupt("return", config);case 2:_context3.next = 4;return (0, _auth.getToken)();case 4:token = _context3.sent;config.header['Authorization'] = 'Bearer ' + token; // 让每个请求携带自定义token 请根据实际情况自行修改
+              return _context3.abrupt("return", config);case 7:case "end":return _context3.stop();}}}, _callee3);}));return _reqMiddleware.apply(this, arguments);}function resMiddleware(_x2) {return _resMiddleware.apply(this, arguments);}
 
 
 
@@ -8917,15 +8918,15 @@ var myAxios = function myAxios(req) {
 
 
   // 2. 函数内部返回Promise 对象
-  function _2() {_2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4(res) {var code, msg;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:code = res.data.code || 200; // 获取错误信息
-              msg = _errorCode.default[code] || res.data.msg || _errorCode.default['default'];if (!(code === 401)) {_context4.next = 6;break;}console.log('拦截器信息:' + msg); //登录并重发拦截信息
-              _context4.next = 15;break;case 6:if (!(code === 500)) {_context4.next = 10;break;}console.log('拦截器信息:' + msg); // return Promise.reject(new Error(msg))
-              _context4.next = 15;break;case 10:if (!(code !== 200)) {_context4.next = 14;break;}console.log('拦截器信息:' + msg); // return Promise.reject('error')
-              _context4.next = 15;break;case 14:return _context4.abrupt("return", res.data);case 15:return _context4.abrupt("return", res.data);case 16:case "end":return _context4.stop();}}}, _callee4);}));return _2.apply(this, arguments);}return new Promise( /*#__PURE__*/function () {var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(resolve, reject) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return 请求拦截(reqData);case 2:reqData = _context2.sent; // 3.wx.request()  小程序发送请求
-              wx.request(_objectSpread(_objectSpread({}, reqData), {}, {
+  function _resMiddleware() {_resMiddleware = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4(res) {var code, msg;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0: //重置Authorization时间
+              (0, _auth.refreshToken)();code = res.data.code || 200; // 获取错误信息
+              msg = _errorCode.default[code] || res.data.msg || _errorCode.default['default'];if (code === 401) {console.log('拦截器信息:' + msg);} else if (code === 500) {console.log('拦截器信息:' + msg);} else if (code === 502) {console.log('拦截器信息:' + msg);} else if (code !== 200) {console.log('拦截器信息:' + msg);}return _context4.abrupt("return", res.data);case 5:case "end":return _context4.stop();}}}, _callee4);}));return _resMiddleware.apply(this, arguments);}return new Promise( /*#__PURE__*/function () {var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(resolve, reject) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return reqMiddleware(reqData);case 2:reqData = _context2.sent; // 3.wx.request()  小程序发送请求
+              wx.request(_objectSpread(_objectSpread({},
+
+              reqData), {}, {
                 // 请求成功之后调用的函数
                 success: function () {var _success = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(result) {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return (
-                              返回拦截(result));case 2:result = _context.sent;
+                              resMiddleware(result));case 2:result = _context.sent;
                             resolve(result);case 4:case "end":return _context.stop();}}}, _callee);}));function success(_x5) {return _success.apply(this, arguments);}return success;}(),
 
                 // 请求失败之后调用的函数
@@ -8956,6 +8957,7 @@ Object.defineProperty(exports, "__esModule", { value: true });exports.default =
   '401': '认证失败,无法访问系统资源',
   '403': '当前操作没有权限',
   '404': '访问资源不存在',
+  '500': '系统内部错误',
   'default': '系统未知错误,请反馈给管理员' };exports.default = _default;
 
 /***/ }),
@@ -33766,6 +33768,145 @@ function randomFillSync (buf, offset, size) {
 
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 3), __webpack_require__(/*! ./../node-libs-browser/mock/process.js */ 100)))
 
+/***/ }),
+/* 255 */,
+/* 256 */,
+/* 257 */,
+/* 258 */,
+/* 259 */,
+/* 260 */,
+/* 261 */,
+/* 262 */,
+/* 263 */,
+/* 264 */,
+/* 265 */,
+/* 266 */,
+/* 267 */,
+/* 268 */,
+/* 269 */,
+/* 270 */,
+/* 271 */,
+/* 272 */,
+/* 273 */,
+/* 274 */,
+/* 275 */,
+/* 276 */,
+/* 277 */,
+/* 278 */,
+/* 279 */,
+/* 280 */,
+/* 281 */,
+/* 282 */,
+/* 283 */,
+/* 284 */,
+/* 285 */,
+/* 286 */,
+/* 287 */,
+/* 288 */,
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */,
+/* 295 */,
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */
+/*!****************************************************************!*\
+  !*** F:/uniapp/sqxp-uniapp/wxcomponents/vant/dialog/dialog.js ***!
+  \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var queue = [];
+var defaultOptions = {
+  show: false,
+  title: '',
+  width: null,
+  theme: 'default',
+  message: '',
+  zIndex: 100,
+  overlay: true,
+  selector: '#van-dialog',
+  className: '',
+  asyncClose: false,
+  beforeClose: null,
+  transition: 'scale',
+  customStyle: '',
+  messageAlign: '',
+  overlayStyle: '',
+  confirmButtonText: '确认',
+  cancelButtonText: '取消',
+  showConfirmButton: true,
+  showCancelButton: false,
+  closeOnClickOverlay: false,
+  confirmButtonOpenType: '' };
+
+var currentOptions = Object.assign({}, defaultOptions);
+function getContext() {
+  var pages = getCurrentPages();
+  return pages[pages.length - 1];
+}
+var Dialog = function Dialog(options) {
+  options = Object.assign(Object.assign({}, currentOptions), options);
+  return new Promise(function (resolve, reject) {
+    var context = options.context || getContext();
+    var dialog = context.selectComponent(options.selector);
+    delete options.context;
+    delete options.selector;
+    if (dialog) {
+      dialog.setData(
+      Object.assign(
+      {
+        callback: function callback(action, instance) {
+          action === 'confirm' ? resolve(instance) : reject(instance);
+        } },
+
+      options));
+
+
+      wx.nextTick(function () {
+        dialog.setData({ show: true });
+      });
+      queue.push(dialog);
+    } else {
+      console.warn(
+      '未找到 van-dialog 节点,请确认 selector 及 context 是否正确');
+
+    }
+  });
+};
+Dialog.alert = function (options) {return Dialog(options);};
+Dialog.confirm = function (options) {return (
+    Dialog(Object.assign({ showCancelButton: true }, options)));};
+Dialog.close = function () {
+  queue.forEach(function (dialog) {
+    dialog.close();
+  });
+  queue = [];
+};
+Dialog.stopLoading = function () {
+  queue.forEach(function (dialog) {
+    dialog.stopLoading();
+  });
+};
+Dialog.currentOptions = currentOptions;
+Dialog.defaultOptions = defaultOptions;
+Dialog.setDefaultOptions = function (options) {
+  currentOptions = Object.assign(Object.assign({}, currentOptions), options);
+  Dialog.currentOptions = currentOptions;
+};
+Dialog.resetDefaultOptions = function () {
+  currentOptions = Object.assign({}, defaultOptions);
+  Dialog.currentOptions = currentOptions;
+};
+Dialog.resetDefaultOptions();var _default =
+Dialog;exports.default = _default;
+
 /***/ })
 ]]);
 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/components/home/index.wxml


+ 14 - 10
unpackage/dist/dev/mp-weixin/pages/index/components/user/index.js

@@ -233,15 +233,10 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
-
 
 
 var _md = _interopRequireDefault(__webpack_require__(/*! crypto-js/md5 */ 96));
-var _auth = __webpack_require__(/*! @/utils/auth */ 8);
-
-
-
-
+var _toast = _interopRequireDefault(__webpack_require__(/*! @/wxcomponents/vant/toast/toast */ 18));
 var _login = __webpack_require__(/*! @/api/login.js */ 12);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var square = function square() {__webpack_require__.e(/*! require.ensure | components/square/index */ "components/square/index").then((function () {return resolve(__webpack_require__(/*! @/components/square/index.vue */ 278));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default =
 
 
@@ -254,6 +249,7 @@ var _login = __webpack_require__(/*! @/api/login.js */ 12);function _interopRequ
   data: function data() {
     return {
       userData: {},
+      loading: false,
       idCardShow: false,
       popup: false,
       idCard: null,
@@ -282,7 +278,6 @@ var _login = __webpack_require__(/*! @/api/login.js */ 12);function _interopRequ
     console.log('App Hide66666');
   },
   mounted: function mounted() {var _this = this;
-    (0, _auth.removeToken)();
     (0, _login.getInfo)().then(function (res) {
       console.log(res);
       //设置用户信息
@@ -296,14 +291,23 @@ var _login = __webpack_require__(/*! @/api/login.js */ 12);function _interopRequ
     passwordput: function passwordput(e) {
       this.password = e.detail;
     },
-    submitBinding: function submitBinding() {
+    submitBinding: function submitBinding() {var _this2 = this;
       console.log(this.areaCode, this.idCard, this.password);
+      this.loading = true;
       (0, _login.bindUserCard)({
         city: this.areaCode,
         logincode: this.idCard,
         password: (0, _md.default)(this.password).toString() }).
-      then(function () {
-
+      then(function (res) {
+        if (res.code == 200) {
+          _toast.default.success('绑定成功');
+          _this2.idCardShow = false;
+        } else if (res.code == 502) {
+          _toast.default.fail(res.msg);
+        } else {
+          _toast.default.fail('系统内部错误');
+        }
+        _this2.loading = false;
       });
     },
     regionSelection: function regionSelection(e) {

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/components/user/index.wxml


+ 2 - 3
unpackage/dist/dev/mp-weixin/pages/index/index.js

@@ -156,7 +156,6 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
-
 
 
 var _index = _interopRequireDefault(__webpack_require__(/*! @/pages/home/index */ 26));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //
@@ -192,8 +191,8 @@ var _index = _interopRequireDefault(__webpack_require__(/*! @/pages/home/index *
 //
 //
 //
-//
-var applist = function applist() {__webpack_require__.e(/*! require.ensure | pages/index/components/applist/index */ "pages/index/components/applist/index").then((function () {return resolve(__webpack_require__(/*! ./components/applist/index.vue */ 77));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var find = function find() {__webpack_require__.e(/*! require.ensure | pages/index/components/find/index */ "pages/index/components/find/index").then((function () {return resolve(__webpack_require__(/*! ./components/find/index.vue */ 84));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var user = function user() {Promise.all(/*! require.ensure | pages/index/components/user/index */[__webpack_require__.e("common/vendor"), __webpack_require__.e("pages/index/components/user/index")]).then((function () {return resolve(__webpack_require__(/*! ./components/user/index.vue */ 91));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var topic = function topic() {__webpack_require__.e(/*! require.ensure | pages/index/components/topic/index */ "pages/index/components/topic/index").then((function () {return resolve(__webpack_require__(/*! ./components/topic/index.vue */ 257));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default = { components: { xueche: _index.default, applist: applist, find: find, user: user, topic: topic }, data: function data() {return { comname: 'xueche', active: 2, info: [{ colorClass: 'uni-bg-red', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 A' }, { colorClass: 'uni-bg-green', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 B' }, { colorClass: 'uni-bg-blue', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 C' }], current: 1, mode: 'round' };
+var applist = function applist() {__webpack_require__.e(/*! require.ensure | pages/index/components/applist/index */ "pages/index/components/applist/index").then((function () {return resolve(__webpack_require__(/*! ./components/applist/index.vue */ 77));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var find = function find() {__webpack_require__.e(/*! require.ensure | pages/index/components/find/index */ "pages/index/components/find/index").then((function () {return resolve(__webpack_require__(/*! ./components/find/index.vue */ 84));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var user = function user() {Promise.all(/*! require.ensure | pages/index/components/user/index */[__webpack_require__.e("common/vendor"), __webpack_require__.e("pages/index/components/user/index")]).then((function () {return resolve(__webpack_require__(/*! ./components/user/index.vue */ 91));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var topic = function topic() {__webpack_require__.e(/*! require.ensure | pages/index/components/topic/index */ "pages/index/components/topic/index").then((function () {return resolve(__webpack_require__(/*! ./components/topic/index.vue */ 257));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default = { components: { xueche: _index.default, applist: applist, find: find, user: user, topic: topic }, data: function data() {return { comname: 'xueche', active: 2, info: [{ colorClass: 'uni-bg-red', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 A' }, { colorClass: 'uni-bg-green', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 B' }, { colorClass: 'uni-bg-blue', url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/094a9dc0-50c0-11eb-b680-7980c8a877b8.jpg', content: '内容 C' }], current: 1,
+      mode: 'round' };
 
   },
   onLoad: function onLoad() {

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 34 - 61
unpackage/dist/dev/mp-weixin/pages/question/mockExam.js

@@ -171,16 +171,8 @@ var render = function() {
     }
 
     _vm.e2 = function($event) {
-      _vm.answerflag = !_vm.answerflag
-    }
-
-    _vm.e3 = function($event) {
       _vm.answerjump = !_vm.answerjump
     }
-
-    _vm.e4 = function($event) {
-      _vm.checked = !_vm.checked
-    }
   }
 
   _vm.$mp.data = Object.assign(
@@ -331,18 +323,7 @@ Object.defineProperty(exports, "__esModule", { value: true });exports.default =
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
+var _dialog = _interopRequireDefault(__webpack_require__(/*! @/wxcomponents/vant/dialog/dialog */ 300));
 var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}var selectSwitch = function selectSwitch() {__webpack_require__.e(/*! require.ensure | components/xuan-switch/xuan-switch */ "components/xuan-switch/xuan-switch").then((function () {return resolve(__webpack_require__(/*! @/components/xuan-switch/xuan-switch.vue */ 264));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default =
 
 
@@ -367,7 +348,9 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
       swiperIndex: 0,
       shakeIndex: 0,
       pageNum: 1,
-      shake: 0 };
+      shake: 0,
+      trueNum: 0,
+      errorBox: [] };
 
   },
   mounted: function mounted() {
@@ -376,14 +359,21 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
   methods: {
     listInit: function listInit() {var _this = this;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return (
                   (0, _answer.questionListRandom)({
-                    num: 100,
+                    num: 5,
                     kemu: _this.kemu }).
                   then(function (res) {
                     _this.questionList = res.rows;
                     _this.$nextTick(function () {
                       _this.loading = false;
+                      _this.selectComponent('#count').start();
                     });
-                  }));case 2:case "end":return _context.stop();}}}, _callee);}))();
+                  }));case 2:_context.next = 4;return (
+                  (0, _answer.questionListRandom)({
+                    num: 95,
+                    kemu: _this.kemu }).
+                  then(function (res) {
+                    _this.questionList = _this.questionList.concat(res.rows);
+                  }));case 4:case "end":return _context.stop();}}}, _callee);}))();
     },
     questionType: function questionType(index) {
       switch (index) {
@@ -396,34 +386,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
 
     },
     swiperChange: function 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: function onChange(event, itembox) {
       if (this.completeAnswer[itembox.id] || this.answerflag) {
@@ -431,7 +394,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
       }
       this.$set(this.userAnswer, itembox.id, event.detail);
     },
-    singleToggle: function singleToggle(event, itembox) {var _this2 = this;
+    singleToggle: function singleToggle(event, itembox) {
       if (this.completeAnswer[itembox.id] || this.answerflag) {
         return;
       }var
@@ -439,9 +402,10 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
       index =
       event.currentTarget.dataset.index;
       this.$set(this.userAnswer, itembox.id, index);
-      setTimeout(function () {
-        _this2.submit(itembox);
-      }, 0);
+      if (this.answerjump) {
+        var _index = this.swiperIndex;
+        this.swiperIndex = ++_index % 100;
+      }
     },
     toggle: function toggle(event, itembox) {var
 
@@ -451,19 +415,28 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
       checkbox.toggle();
     },
     noop: function noop() {},
-    submit: function submit(itembox) {
+    submit: function submit(itembox, index) {
       this.$set(this.completeAnswer, itembox.id, true);
       var flag = (this.userAnswer[itembox.id] + '').split(',').sort().join('') == itembox.answerTrue.split('').sort().join(
       '');
       if (flag) {
-        wx.vibrateShort();
-        if (this.answerjump) {
-          var index = this.swiperIndex;
-          this.swiperIndex = ++index % 100;
-        }
+        this.trueNum += 1;
       } else {
-        wx.vibrateLong();
+        this.errorBox.push(index + 1);
       }
+    },
+    statistics: function statistics() {var _this2 = this;
+      this.questionList.map(function (itembox, index) {
+        _this2.submit(itembox, index);
+      });
+      _dialog.default.alert({
+        title: '模拟考试结果',
+        message: "\u8003\u8BD5\u7ED3\u679C: ".concat(this.trueNum, "\u5206\n\n\u7B54\u9519\u9898\u76EE: \n").concat(this.errorBox),
+        messageAlign: 'left',
+        confirmButtonText: '查看答案及解析' }).
+      then(function () {
+        _this2.answerflag = true;
+      });
     } } };exports.default = _default;
 
 /***/ }),

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxml


+ 36 - 0
unpackage/dist/dev/mp-weixin/pages/question/mockExam.wxss

@@ -24,6 +24,42 @@
 /* 垂直间距 */
 /* 透明度 */
 /* 文章场景相关 */
+.carryOut.data-v-0c90b6ae {
+  position: fixed;
+  bottom: 120rpx;
+  left: 50%;
+  -webkit-transform: translateX(-50%);
+          transform: translateX(-50%);
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+          flex-direction: column;
+  -webkit-box-pack: center;
+  -webkit-justify-content: center;
+          justify-content: center;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.carryOut .carryOut-btn.data-v-0c90b6ae {
+  height: 80rpx;
+  background: -webkit-linear-gradient(left, #E31818, #ED3E24, #ED4F24);
+  background: linear-gradient(90deg, #E31818, #ED3E24, #ED4F24);
+  border-radius: 35rpx;
+  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;
+  color: #FFFFFF;
+}
 .data-v-0c90b6ae .answer .van-cell {
   background-color: #16CC16 !important;
   color: #ffffff;

+ 5 - 3
unpackage/dist/dev/mp-weixin/pages/question/sequential.js

@@ -224,7 +224,7 @@ __webpack_require__.r(__webpack_exports__);
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 9));
+/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 9));
 
 
 
@@ -366,7 +366,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
       choiceList: ['an1', 'an2', 'an3', 'an4', 'an5', 'an6', 'an7'],
       swiperIndex: 0,
       shakeIndex: 0,
-      pageNum: 1,
+      pageNum: uni.getStorageSync('pageNum') || 1,
       shake: 0 };
 
   },
@@ -440,6 +440,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
           pageSize: 10,
           kemu: this.kemu }).
         then(function (res) {
+          uni.setStorageSync('pageNum', _this2.pageNum);
           _this2.shake = 0;
           if (ascFlag > 0) {
             if (e.detail.current == 30) {
@@ -455,7 +456,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
               _this2.questionList = _this2.questionList.slice(0, 10).concat(res.rows).concat(_this2.questionList.slice(20));
             }
           } else {
-            res.rows.reverse();
+            _this2.pageNum + ascFlag > 0 || res.rows.reverse();
             if (e.detail.current == 0) {
               _this2.questionList = _this2.questionList.slice(0, 20).concat(res.rows).concat(_this2.questionList.slice(30));
             }
@@ -512,6 +513,7 @@ var _answer = __webpack_require__(/*! @/api/answer.js */ 31);function _interopRe
         wx.vibrateLong();
       }
     } } };exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
 
 /***/ }),
 

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

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

+ 19 - 6
utils/auth.js

@@ -5,10 +5,11 @@ import {
 
 const TokenKey = 'Admin-Token'
 
+//获取token
 export async function getToken() {
-	let token = uni.getStorageSync(TokenKey)
-	if (token) {
-		return token
+	let tokenObj = uni.getStorageSync(TokenKey)
+	if (new Date().getTime() - tokenObj.date < 1000 * 60 * 28) {
+		return tokenObj.token
 	} else {
 		let res = await login()
 		setToken(res.data.token)
@@ -16,12 +17,24 @@ export async function getToken() {
 	}
 }
 
+//设置token
 export function setToken(token) {
-	// return Cookies.set(TokenKey, token)
-	return uni.setStorageSync(TokenKey, token)
+	let tokenObj = {
+		token,
+		date: new Date().getTime()
+	}
+	return uni.setStorageSync(TokenKey, tokenObj)
+}
+
+//刷新token时间
+export function refreshToken(token) {
+	let tokenObj = uni.getStorageSync(TokenKey)
+	if (!tokenObj) return
+	tokenObj.date = new Date().getTime()
+	return uni.setStorageSync(TokenKey, tokenObj)
 }
 
+//移除token
 export function removeToken() {
-	// return Cookies.remove(TokenKey)
 	return uni.removeStorageSync(TokenKey)
 }

+ 1 - 0
utils/errorCode.js

@@ -2,5 +2,6 @@ export default {
   '401': '认证失败,无法访问系统资源',
   '403': '当前操作没有权限',
   '404': '访问资源不存在',
+  '500': '系统内部错误',
   'default': '系统未知错误,请反馈给管理员'
 }

+ 11 - 23
utils/request.js

@@ -1,23 +1,14 @@
 import {
 	getToken,
 	setToken,
-	removeToken
+	removeToken,
+	refreshToken
 } from '@/utils/auth'
 import {
 	login
 } from '@/api/login.js'
 import errorCode from '@/utils/errorCode'
 
-//防抖函数
-function 防抖(fn, wait) {
-	let timeID
-	wait = wait || 1000 * 60 * 25
-	return () => {
-		timeID && clearTimeout(timeID)
-		timeID = setTimeout(fn, wait)
-	}
-}
-let 定时清除token = 防抖(removeToken)
 
 /**
  * http请求封装
@@ -26,7 +17,7 @@ const myAxios = (req) => {
 
 	let query = ''
 
-	req.params && Object.keys(req.params).map((key,index) => {
+	req.params && Object.keys(req.params).map((key, index) => {
 		if (index) {
 			query += '&' + key + '=' + encodeURIComponent(req.params[key])
 		} else {
@@ -47,9 +38,7 @@ const myAxios = (req) => {
 	}
 
 	// 请求拦截器
-	async function 请求拦截(config) {
-		//重置Authorization过期时间,使用防抖函数
-		定时清除token()
+	async function reqMiddleware(config) {
 
 		if (config.header.isLogin) {
 			return config
@@ -60,34 +49,33 @@ const myAxios = (req) => {
 	}
 
 	// 响应拦截器
-	async function 返回拦截(res) {
+	async function resMiddleware(res) {
+		//重置Authorization时间
+		refreshToken()
 		const code = res.data.code || 200;
 		// 获取错误信息
 		const msg = errorCode[code] || res.data.msg || errorCode['default']
 		if (code === 401) {
 			console.log('拦截器信息:' + msg)
-			//登录并重发拦截信息
 		} else if (code === 500) {
 			console.log('拦截器信息:' + msg)
-			// return Promise.reject(new Error(msg))
+		} else if (code === 502) {
+			console.log('拦截器信息:' + msg)
 		} else if (code !== 200) {
 			console.log('拦截器信息:' + msg)
-			// return Promise.reject('error')
-		} else {
-			return res.data
 		}
 		return res.data
 	}
 	// 2. 函数内部返回Promise 对象
 	return new Promise(async (resolve, reject) => {
-		reqData = await 请求拦截(reqData)
+		reqData = await reqMiddleware(reqData)
 		// 3.wx.request()  小程序发送请求
 		wx.request({
 			// 把调用axios时传过来的所有参数解构赋值
 			...reqData,
 			// 请求成功之后调用的函数
 			success: async (result) => {
-				result = await 返回拦截(result)
+				result = await resMiddleware(result)
 				resolve(result)
 			},
 			// 请求失败之后调用的函数

部分文件因为文件数量过多而无法显示