Преглед изворни кода

Merge branch '2025北京诚祥' of https://gogs.mtavip.com/wangguoyu/uniProject into 2025北京诚祥

tanxue пре 2 месеци
родитељ
комит
5d3cbaf02f

+ 1 - 1
components/custom-tabbar/custom-tabbar-client.vue

@@ -42,7 +42,7 @@
 					// 同页面不刷新
 					return;
 				}
-				uni.reLaunch({url: path});
+				uni.navigateTo({url: path});
 			},
 		},
 	}

+ 1 - 1
pages/Login/components/loginBox.vue

@@ -116,7 +116,7 @@
 		// 客户端
 				// #ifdef H5
 				uni.navigateTo({
-					url: `/pages/client/ShouYe/shouye`
+					url: `/pages/admin/ShouYe/shouye`
 				})
 				// #endif
 				

+ 13 - 5
pages/admin/Jiazheng/common/jiazhengUpload.vue

@@ -1,9 +1,11 @@
 <template>
 	<view v-if="changjingType =='shenfenzheng'" class="admin-upload-btn-box" @click="showActionSheet">
-		<text>+</text>
+		<text v-if="!imageUrl">+</text>
+		<image v-else style="width: 100rpx;height: 100rpx;"   :src="imageUrl" mode=""></image>
 	</view>
 	<view v-else class="admin-upload-btn-box" @click="showActionSheet">
-		<text>+</text>
+	<text v-if="!imageUrl">+</text>
+	<image v-else style="width: 100rpx;height: 100rpx;"   :src="imageUrl" mode=""></image>
 	</view>
 	<view v-if="bottomText" class="upload-bottom-text">
 		{{bottomText}}
@@ -15,6 +17,11 @@
 		getAliyunPolicy
 	} from "@/api/jiazheng.js"
 	export default {
+		data(){
+			return {
+				imageUrl:""
+			}
+		},
 		props: {
 			bottomText: { // 试题序号
 				type: String
@@ -62,6 +69,7 @@
 					}
 
 					getAliyunPolicy(req).then(res => {
+						let that   = this
 						if (res.code == 0) {
 							const policyData = res.data;
 							console.log('policyData', policyData);
@@ -87,13 +95,13 @@
 								success(uploadRes) {
 									console.log('uploadRes', uploadRes);
 									if (uploadRes.statusCode === 200) {
-										const imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
+										that.imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
 										uni.showToast({
 											title: '上传成功',
 											icon: 'success'
 										});
-										console.log('imageUrl', imageUrl);
-										//this.$emit('getFileUrl', imageUrl);
+										console.log('imageUrl', that.imageUrl);
+										that.$emit('getFileUrl', that.imageUrl);
 									} else {
 										uni.showToast({
 											title: '上传失败',

+ 101 - 91
pages/admin/Jiazheng/gerenZiliao.vue

@@ -1,105 +1,110 @@
 <template>
 	<view class="jz-content-box">
-			<view class="upload-img-box">
-				<jiazhengUpload changjingType="shenfenzheng"></jiazhengUpload>
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>手机号</view>
-				<uni-easyinput type="number" v-model="formData.phone" placeholder="请输入手机号" maxlength="11" />
-			</view>
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>
-				<uni-easyinput v-model="formData.name" placeholder="请输入姓名" />
-			</view>
+		<view class="upload-img-box">
+			<jiazhengUpload @getFileUrl="getFileUrl" changjingType="shenfenzheng"></jiazhengUpload>
+		</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>手机号</view>
+			<uni-easyinput type="number" v-model="formData.phone" placeholder="请输入手机号" maxlength="11" />
+		</view>
 
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>身份证号</view>
-				<uni-easyinput v-model="formData.idCard" placeholder="请输入身份证号" maxlength="18" />
-			</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>
+			<uni-easyinput v-model="formData.name" placeholder="请输入姓名" />
+		</view>
 
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>生日</view>
-				<uni-datetime-picker v-model="formData.birthday">
-					<view class="form-radio-select">
-						<view>请选择</view><icon></icon>
-					</view>
-				</uni-datetime-picker>
-			</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>身份证号</view>
+			<uni-easyinput v-model="formData.idCard" placeholder="请输入身份证号" maxlength="18" />
+		</view>
 
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>籍贯</view>
-				<uni-data-picker v-model="formData.hometown" placeholder="请选择籍贯" :localdata="hometownData" >
-					{{formData.hometown}}
-				</uni-data-picker>
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>身份证地址</view>
-				<uni-easyinput v-model="formData.idAddress" placeholder="请输入身份证地址" />
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>民族</view>
-				<uni-data-select v-model="formData.ethnic" :localdata="ethnicData" placeholder="请选择民族" />
-			</view>
-			<view class="form-label-radio">
-				<view class="phone-form-label"><text class="form-label-require">*</text>性别</view>
-				<view class="form-radio-group">
-					<view class="form-radio-item" :class="{genderActive: formData.gender===1}" @click="genderSelect(1)">
-						男</view>
-					<view class="form-radio-item" :class="{genderActive: formData.gender===2}" @click="genderSelect(2)">
-						女</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>生日</view>
+			<uni-datetime-picker v-model="formData.birthday">
+				<view class="form-radio-select">
+					<view>请选择</view>
+					<icon></icon>
 				</view>
-			</view>
-			<view class="form-label-radio form-top-margin flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require"></text>学历</view>
-				<dataChecked :list="xueliList" mode="single" :showAdd="false" @change="selectChangeXueliList" />
-			</view>
-			<view class="form-label-radio flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require"></text>婚姻 </view>
-				<dataChecked :list="hunyinList" mode="single" :showAdd="false" @change="selectChangeHunyinList" />
-			</view>
+			</uni-datetime-picker>
+		</view>
 
-			<view class="form-label-input form-top-margin flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require">*</text>详细地址</view>
-				<textarea v-model="formData.currentAddress" placeholder="请输入详细地址" class="form-textarea-box" />
-			</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>籍贯</view>
+			<uni-data-picker v-model="formData.hometown" placeholder="请选择籍贯" :localdata="hometownData">
+				{{formData.hometown}}
+			</uni-data-picker>
+		</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>身份证地址</view>
+			<uni-easyinput v-model="formData.idAddress" placeholder="请输入身份证地址" />
+		</view>
+		<view class="form-label-input">
+			<view class="phone-form-label"><text class="form-label-require">*</text>民族</view>
+			<uni-data-select v-model="formData.ethnic" :localdata="ethnicData" placeholder="请选择民族" />
+		</view>
+		<view class="form-label-radio">
+			<view class="phone-form-label"><text class="form-label-require">*</text>性别</view>
+			<view class="form-radio-group">
+				<view class="form-radio-item" :class="{genderActive: formData.gender===1}" @click="genderSelect(1)">
+					男</view>
+				<view class="form-radio-item" :class="{genderActive: formData.gender===2}" @click="genderSelect(2)">
+					女</view>
+			</view>
+		</view>
+		<view class="form-label-radio form-top-margin flex-start-row">
+			<view class="phone-form-label"><text class="form-label-require"></text>学历</view>
+			<dataChecked :list="xueliList" mode="single" :showAdd="false" @change="selectChangeXueliList" />
+		</view>
+		<view class="form-label-radio flex-start-row">
+			<view class="phone-form-label"><text class="form-label-require"></text>婚姻 </view>
+			<dataChecked :list="hunyinList" mode="single" :showAdd="false" @change="selectChangeHunyinList" />
+		</view>
 
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>星座</view>
-				<picker :range="xingzuoRange" mode='selector' @change="xingzuoChange" @cancel="xingzuoCancel">
-					<view class="form-radio-select">
-						<view>请选择星座</view><icon></icon>
-					</view>
-				</picker>
-			</view>
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>生肖</view>
-				<picker :range="shengxiaoRange" mode='selector' @change="shengxiaoChange" @cancel="shengxiaoCancel">
-					<view class="form-radio-select">
-						<view>请选择生肖</view><icon></icon>
-					</view>
-				</picker>
-			</view>
+		<view class="form-label-input form-top-margin flex-start-row">
+			<view class="phone-form-label"><text class="form-label-require">*</text>详细地址</view>
+			<textarea v-model="formData.currentAddress" placeholder="请输入详细地址" class="form-textarea-box" />
+		</view>
 
-			<view class="form-label-switch">
-				<view class="phone-form-label"> <text class="form-label-require"></text>星座属相展示到简历 </view>
-				<view>展示<switch @change="switchXingzuoChange" color="#3fd2a1" style="transform:scale(0.7)"/></view>
-			</view>
-			<view class="agree-section-box form-top-margin">
-				<checkbox-group @change="handleAgree">
-					<label class="checkbox">
-						<checkbox :checked="formData.agree" color="#3fd2a1" style="transform:scale(0.65)"/>
-						<text>已征得本人同意,将其个人资料信息录入平台</text>
-					</label>
-				</checkbox-group>
-			<button type="default" class="phone-green-btn">下一步</button>
-			</view>
+		<view class="form-label-select">
+			<view class="phone-form-label"><text class="form-label-require"></text>星座</view>
+			<picker :range="xingzuoRange" mode='selector' @change="xingzuoChange" @cancel="xingzuoCancel">
+				<view class="form-radio-select">
+					<view>请选择星座</view>
+					<icon></icon>
+				</view>
+			</picker>
+		</view>
+		<view class="form-label-select">
+			<view class="phone-form-label"><text class="form-label-require"></text>生肖</view>
+			<picker :range="shengxiaoRange" mode='selector' @change="shengxiaoChange" @cancel="shengxiaoCancel">
+				<view class="form-radio-select">
+					<view>请选择生肖</view>
+					<icon></icon>
+				</view>
+			</picker>
+		</view>
+
+		<view class="form-label-switch">
+			<view class="phone-form-label"> <text class="form-label-require"></text>星座属相展示到简历 </view>
+			<view>展示
+				<switch @change="switchXingzuoChange" color="#3fd2a1" style="transform:scale(0.7)" />
+			</view>
+		</view>
+		<view class="agree-section-box form-top-margin">
+			<checkbox-group @change="handleAgree">
+				<label class="checkbox">
+					<checkbox :checked="formData.agree" color="#3fd2a1" style="transform:scale(0.65)" />
+					<text>已征得本人同意,将其个人资料信息录入平台</text>
+				</label>
+			</checkbox-group>
+			<button type="default" @click="goNext" class="phone-green-btn">下一步</button>
+		</view>
 	</view>
 </template>
 
 <script>
 	import dataChecked from './common/dataChecked.vue';
-		import jiazhengUpload from "./common/jiazhengUpload.vue"
+	import jiazhengUpload from "./common/jiazhengUpload.vue"
 	import {
 		getJiazhengXueli,
 		getJiazhengHunyin
@@ -178,20 +183,25 @@
 					console.error('获取技能类型失败:', error);
 				});
 			},
+			getFileUrl(data){
+				console.log('data',data);
+			},
 			selectChangeXueliList() {
 
 			},
 			selectChangeHunyinList() {
 
 			},
-				switchXingzuoChange() {
+			switchXingzuoChange() {
 
 			},
+			goNext() {
+				this.$emit('goNext',0);
+			},
 
 			handleAgree(e) {
 				this.formData.agree = e.detail.value.length > 0
 			},
 		}
 	}
-</script>
-
+</script>

+ 4 - 1
pages/admin/Jiazheng/jiazhengUserManager.vue

@@ -5,7 +5,7 @@
 			<text class="nav-bar-title">家政人员</text>
 		</view>
 		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" class="admin-tab-box"></v-tabs>
-		<gerenZiliao v-show="current ==0"></gerenZiliao>
+		<gerenZiliao @goNext="gerenziliaoNext" v-show="current ==0"></gerenZiliao>
 		<qiuzhiXinxi v-show="current ==1"></qiuzhiXinxi>
 		<zhaopianZiliao v-show="current ==2"></zhaopianZiliao>
 		<banzhengXinxi v-show="current ==3"></banzhengXinxi>
@@ -41,6 +41,9 @@
 				uni.redirectTo({
 					url: `/pages/admin/Jiazheng/jiazhengUserInfo`
 				})
+			},
+			gerenziliaoNext(num){
+				this.current =  num +1
 			}
 		}
 	}

+ 3 - 2
pages/client/Chengji/ksScoreShijuan.vue

@@ -273,7 +273,7 @@
 		if (pages.length>1) {
 			uni.navigateBack()
 		} else {
-			if (data.from == 'chengjiList') {
+			/* if (data.from == 'chengjiList') {
 				uni.redirectTo({
 					url: "/pages/client/Chengji/list"
 				})
@@ -281,7 +281,8 @@
 				uni.redirectTo({
 					url: "/pages/client/Kaoshi/list"
 				})
-			} 
+			} */
+			 history.back();
 		}
 		
 

+ 61 - 44
pages/client/Chengji/list.vue

@@ -1,39 +1,46 @@
 <template>
 	<view class="phone-list-page">
 		<view class="icon-title-navBar-box">
-			<!-- <view @click="goUpPage" class="nav-bar-icon"></view> -->
+			<view @click="goUpPage" class="nav-bar-icon"></view>
 			<text class="nav-bar-title">成绩</text>
 		</view>
 		<!-- 课程列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
-				class="phone-scroll-view">
-				<uni-list class="admin-list-box">
-					<uni-list-item v-for="item in data.list" class="admin-list-item-box">
-						<template v-slot:body>
-							<view class="item-card-row">
-								<!-- 数量 -->
-								<view class="ks-item-top">
-									<view class="ks-name">{{item.zyName}}</view>
-									<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
+		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
+			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
+			class="phone-scroll-view">
+			<uni-list class="admin-list-box">
+				<uni-list-item v-for="item in data.list" class="admin-list-item-box">
+					<template v-slot:body>
+						<view class="item-card-row">
+							<!-- 数量 -->
+							<view class="ks-item-top">
+								<view class="ks-name">{{item.zyName}}</view>
+								<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
+							</view>
+							<!-- 时间 -->
+							<view class="ks-totalTm">
+								<icon class="phone-time-icon" />{{item.answerStartTime}} - {{item.answerEndTime}}
+							</view>
+							<!-- 分数 -->
+							<view class="ks-score-content">
+								<view class="ks-score">
+									<icon class="phone-zongfen-icon" />总分:<text>{{item.ksScore}}</text>
 								</view>
-								<!-- 时间 -->
-								<view class="ks-totalTm"><icon class="phone-time-icon"/>{{item.answerStartTime}} - {{item.answerEndTime}}</view>
-								<!-- 分数 -->
-								<view class="ks-score-content">
-									<view class="ks-score"><icon class="phone-zongfen-icon"/>总分:<text>{{item.ksScore}}</text></view>
-									<view class="ks-okScore"><icon class="phone-jigefen-icon"/>及格分:<text>{{item.okScore}}</text></view>
-									<view class="ks-getScore"><icon class="phone-jigefen-icon"/>得分:<text>{{item.userScore}}</text></view>
+								<view class="ks-okScore">
+									<icon class="phone-jigefen-icon" />及格分:<text>{{item.okScore}}</text>
+								</view>
+								<view class="ks-getScore">
+									<icon class="phone-jigefen-icon" />得分:<text>{{item.userScore}}</text>
 								</view>
-								<button @click="checkKecheng(item)" type="primary" size="mini"
-									class="item-view-btn">查看内容</button>
 							</view>
-						</template>
-					</uni-list-item>
-					<uni-load-more :status="data.state" @click="getMore(0)"
-						:contentText="data.contentText"></uni-load-more>
-				</uni-list>
-			</scroll-view>
+							<button @click="checkKecheng(item)" type="primary" size="mini"
+								class="item-view-btn">查看内容</button>
+						</view>
+					</template>
+				</uni-list-item>
+				<uni-load-more :status="data.state" @click="getMore(0)" :contentText="data.contentText"></uni-load-more>
+			</uni-list>
+		</scroll-view>
 
 		<!-- 页面底端 -->
 		<customTabbarClientVue></customTabbarClientVue>
@@ -53,7 +60,7 @@
 	import {
 		formatDuration
 	} from "@/utils/common.js"
-	
+
 
 	const data = reactive({
 		list: [], // 考试列表
@@ -70,23 +77,32 @@
 	})
 
 	function goUpPage() {
-		if (data.from == 'my') {
-			uni.navigateTo({
-				url: '/pages/client/my/index'
-			})
-		} else if (data.from == 'kaoshi') {
-			uni.navigateTo({
-				url: '/pages/client/Kaoshi/list'
-			})
-		} else if (data.from == 'shouye'){
-			uni.navigateTo({
-				url: '/pages/client/ShouYe/shouye'
-			})
+		const pages = getCurrentPages();
+		if (pages.length > 1) {
+			uni.navigateBack()
 		} else {
-			uni.navigateTo({
-				url: '/pages/client/ShouYe/shouye'
-			})
+			/* if (data.from == 'my') {
+				uni.navigateTo({
+					url: '/pages/client/my/index'
+				})
+			} else if (data.from == 'kaoshi') {
+				uni.navigateTo({
+					url: '/pages/client/Kaoshi/list'
+				})
+			} else if (data.from == 'shouye'){
+				uni.navigateTo({
+					url: '/pages/client/ShouYe/shouye'
+				})
+			} else {
+				uni.navigateTo({
+					url: '/pages/client/ShouYe/shouye'
+				})
+			} */
+			history.back();
 		}
+
+
+
 	}
 
 	function handleSearch() {
@@ -161,7 +177,8 @@
 		})
 	}
 
-	onLoad(() => {
+	onLoad((options) => {
+		data.from = options.from;
 		getMore()
 	})
 </script>

+ 4 - 3
pages/client/Chengji/lxScoreShijuan.vue

@@ -292,9 +292,10 @@
 		if (pages.length>1) {
 			uni.navigateBack()
 		} else {
-			uni.redirectTo({
-				url: "/pages/client/Lianxi/list"
-			})
+			// uni.redirectTo({
+			// 	url: "/pages/client/Lianxi/list"
+			// })
+			 history.back();
 		}
 		
 	}

+ 16 - 8
pages/client/Kaoshi/exam.vue

@@ -82,8 +82,11 @@
 		<!-- 摄像头确认 -->
 		<zhuapaiConfirm ref="zhuapaiConfirmRef" @success="zpConfirmSuccess" @error="zpConfirmError"
 			@cancel="zpConfirmCancel" key="1"></zhuapaiConfirm>
-		<!-- 抓拍 -->
-		<zhuapaiVue ref="zhuapaiRef" @error="zpError" @success="zpSuccess" key="2"></zhuapaiVue>
+		<template v-if="data.zhuapai && data.zhuapai > 0">
+			<!-- 抓拍 -->
+			<zhuapaiVue ref="zhuapaiRef" @error="zpError" @success="zpSuccess" key="2"></zhuapaiVue>
+		</template>
+	
 		<!-- 切屏 -->
 		<qiepingVue ref="qiepingRef" @zhuapai="qpZhuapai" @forceSubmit="forceSubmit" @qiepingToast="qiepingToast"
 			key="3"></qiepingVue>
@@ -481,7 +484,7 @@
 		 if (pages.length>1) {
 			 uni.navigateBack()
 		 } else {
-			 if (data.from == 'shouye') {
+			 /* if (data.from == 'shouye') {
 			 	uni.redirectTo({
 			 		url: "/pages/client/ShouYe/shouye"
 			 	})
@@ -493,7 +496,8 @@
 			 	uni.redirectTo({
 			 		url: "/pages/client/ShouYe/shouye"
 			 	})
-			 }
+			 } */
+			  history.back();
 		 }
 		
 		
@@ -702,10 +706,14 @@
 			// 设置缓存
 			formatKaoshiData();
 			// 设置抓拍监听
-			zhuapaiRef.value.init({
-				zhuapai: zhuapai,
-				operId: operId
-			});
+			
+			if (data.zhuapai && data.zhuapai > 0) {
+				zhuapaiRef.value.init({
+					zhuapai: zhuapai,
+					operId: operId
+				});
+			}
+			
 			// 设置切屏监听
 			qiepingRef.value.init({
 				zhuapaiFlag: true,

+ 80 - 49
pages/client/Kaoshi/list.vue

@@ -1,45 +1,54 @@
 <template>
 	<view class="phone-list-page">
 		<view class="icon-title-bjcolor-navBar-box">
-			 <view @click="goUpPage" class="nav-bar-icon"></view>
+			<view @click="goUpPage" class="nav-bar-icon"></view>
 			<text class="nav-bar-title">考试管理</text>
 		</view>
 		<!-- 考试列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
-				class="phone-scroll-view client-kaoshi-scroll-view">
-				<uni-list class="admin-list-box">
-					<uni-list-item v-for="item in data.list" class="admin-list-item-box">
-						<template v-slot:body>
-							<!-- 考试项 -->
-							<view class="item-card-row">
-								<!-- 考试名 + 等级 -->
-								<view class="ks-item-top">
-									<view class="ks-name">{{item.zyName}}</view>
-									<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
+		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
+			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
+			class="phone-scroll-view client-kaoshi-scroll-view">
+			<uni-list class="admin-list-box">
+				<uni-list-item v-for="item in data.list" class="admin-list-item-box">
+					<template v-slot:body>
+						<!-- 考试项 -->
+						<view class="item-card-row">
+							<!-- 考试名 + 等级 -->
+							<view class="ks-item-top">
+								<view class="ks-name">{{item.zyName}}</view>
+								<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
+							</view>
+							<!-- 时间 -->
+							<view class="ks-totalTm">
+								<icon class="phone-time-icon" />时间:{{item.totalTm}}分钟
+							</view>
+							<view class="ks-totalTm">
+								<icon class="phone-cishu-icon" />次数:{{item.maxTimes ? item.maxTimes:'不限'}}次
+							</view>
+							<!-- 分数 -->
+							<view class="ks-score-content">
+								<view class="ks-score">
+									<icon class="phone-zongfen-icon" />总分:<text>{{item.ksScore}}</text>
 								</view>
-								<!-- 时间 -->
-								<view class="ks-totalTm"><icon class="phone-time-icon"/>时间:{{item.totalTm}}分钟</view>
-								<view class="ks-totalTm"><icon class="phone-cishu-icon"/>次数:{{item.maxTimes ? item.maxTimes:'不限'}}次</view>
-								<!-- 分数 -->
-								<view class="ks-score-content">
-									<view class="ks-score"><icon class="phone-zongfen-icon"/>总分:<text>{{item.ksScore}}</text></view>
-									<view class="ks-okScore"><icon class="phone-jigefen-icon"/>及格分:<text>{{item.okScore}}</text></view>
+								<view class="ks-okScore">
+									<icon class="phone-jigefen-icon" />及格分:<text>{{item.okScore}}</text>
 								</view>
-								<button type="primary" size="mini" @click="checkKsXz(item)" class="item-view-btn">查看内容</button>
 							</view>
-						</template>
-					</uni-list-item>
-					<uni-load-more :status="data.state" @click="getMore(0)"
-						:contentText="data.contentText"></uni-load-more>
-				</uni-list>
-			</scroll-view>
+							<button type="primary" size="mini" @click="checkKsXz(item)"
+								class="item-view-btn">查看内容</button>
+						</view>
+					</template>
+				</uni-list-item>
+				<uni-load-more :status="data.state" @click="getMore(0)" :contentText="data.contentText"></uni-load-more>
+			</uni-list>
+		</scroll-view>
 		<!-- 页面底端 -->
 		<customTabbarClientVue></customTabbarClientVue>
 		<!-- 考试须知 -->
 		<kaoshixuzhiVue ref="ksxzRef" @confirm="handleConfirmKs" key="1"></kaoshixuzhiVue>
 		<!-- 身份确认 -->
-		<identificationVue ref="shenfenRef" @confirm="handleConfirmIdent" @changeData="handleChangeIdentification" key="2"></identificationVue>
+		<identificationVue ref="shenfenRef" @confirm="handleConfirmIdent" @changeData="handleChangeIdentification"
+			key="2"></identificationVue>
 	</view>
 </template>
 
@@ -47,19 +56,26 @@
 	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-client.vue";
 	import kaoshixuzhiVue from "@/components/kaoshixuzhi/kaoshixuzhi.vue";
 	import identificationVue from "@/components/identification/identification.vue";
-	import {useIdentificationTools} from "./examTools.js"
-	
+	import {
+		useIdentificationTools
+	} from "./examTools.js"
+
 	import {
 		ref,
 		reactive
 	} from "vue";
 	import {
-		onLoad, onShow
+		onLoad,
+		onShow
 	} from "@dcloudio/uni-app";
 	import * as kaoshiApi from "@/api/kaoshi.js";
-	
-	const {	saveIdentCache, getIdentCache, removeIdentCache } = useIdentificationTools();
-	
+
+	const {
+		saveIdentCache,
+		getIdentCache,
+		removeIdentCache
+	} = useIdentificationTools();
+
 	const ksxzRef = ref(null);
 	const shenfenRef = ref(null);
 	const activeks = ref(null);
@@ -78,41 +94,53 @@
 		},
 		from: ''
 	})
-	
+
 	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/client/ShouYe/shouye'
-		})
+
+		const pages = getCurrentPages();
+		if (pages.length > 1) {
+			uni.navigateBack()
+		} else {
+			// uni.redirectTo({
+			// 	url: '/pages/client/ShouYe/shouye'
+			// })
+			history.back();
+		}
+
+
 	}
 	// 修改身份
 	function handleChangeIdentification() {
+
 		uni.navigateTo({
-			url:'/pages/client/my/myInfo?from=kaoshiList'
+			url: '/pages/client/my/myInfo?from=kaoshiList'
 		})
 	}
-	
+
 	function handleConfirmIdent(data) {
 		saveIdentCache(activeks.value.ksId, true);
 		ksxzRef.value.showDialog(activeks.value)
 	}
-	
+
 	function handleConfirmKs(data) {
 		checkKaoshi(data)
 	}
-	
+
 	function checkKsXz(data) {
 		activeks.value = data;
 		if (data.status == 3) {
 			// 考试中 直接进入考试
 			checkKaoshi(data)
 			return;
-		} 
-		
+		}
+
 		const result = getIdentCache(data.ksId);
 		if (result) {
 			ksxzRef.value.showDialog(data)
 		} else {
-			kaoshiApi.getClientUserInfo({ksId: data.ksId}).then(res => {
+			kaoshiApi.getClientUserInfo({
+				ksId: data.ksId
+			}).then(res => {
 				shenfenRef.value.showDialog(res.data);
 			})
 		}
@@ -125,7 +153,10 @@
 
 	function checkKaoshi(item) {
 		// #ifdef H5
-		history.replaceState({ ...history.state, newKey: 'newValue' }, '', window.location.href);
+		history.replaceState({
+			...history.state,
+			newKey: 'newValue'
+		}, '', window.location.href);
 		// #endif
 		uni.navigateTo({
 			url: `/pages/client/Kaoshi/exam?ksId=${item.ksId}&zhuapai=${activeks.value.zhuapai}&from=kaoshiList`
@@ -161,7 +192,7 @@
 			} else {
 				data.state = 'no-more';
 				data.loading = false;
-		
+
 			}
 		}).catch(err => {
 			data.state = 'more';
@@ -199,8 +230,8 @@
 	onLoad((options) => {
 		data.from = options.from
 	})
-	
+
 	onShow(() => {
 		getMore()
 	})
-</script>
+</script>

+ 41 - 29
pages/client/Kecheng/list.vue

@@ -5,29 +5,29 @@
 			<text class="nav-bar-title">课程管理</text>
 		</view>
 		<!-- 课程列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
-				class="phone-scroll-view">
-				<uni-list class="admin-list-box">
-					<uni-list-item v-for="item in data.list" class="admin-list-item-box">
-						<template v-slot:body>
-							<view class="item-card-row">
-								<!-- 数量 -->
-								<view class="ks-item-top">
-									<view>{{item.zyName}}</view>
-									<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
-								</view>
-								<view class="ks-totalTm">
-									<icon class="phone-time-icon" />时间:{{formatSecondsToCnhms(item.period, true)}}
-								</view>
-								<button @click="checkKecheng(item)" type="primary" size="mini"  class="item-view-btn">查看内容</button>
+		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
+			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
+			class="phone-scroll-view">
+			<uni-list class="admin-list-box">
+				<uni-list-item v-for="item in data.list" class="admin-list-item-box">
+					<template v-slot:body>
+						<view class="item-card-row">
+							<!-- 数量 -->
+							<view class="ks-item-top">
+								<view>{{item.zyName}}</view>
+								<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
 							</view>
-						</template>
-					</uni-list-item>
-					<uni-load-more :status="data.state" @click="getMore(0)"
-						:contentText="data.contentText"></uni-load-more>
-				</uni-list>
-			</scroll-view>
+							<view class="ks-totalTm">
+								<icon class="phone-time-icon" />时间:{{formatSecondsToCnhms(item.period, true)}}
+							</view>
+							<button @click="checkKecheng(item)" type="primary" size="mini"
+								class="item-view-btn">查看内容</button>
+						</view>
+					</template>
+				</uni-list-item>
+				<uni-load-more :status="data.state" @click="getMore(0)" :contentText="data.contentText"></uni-load-more>
+			</uni-list>
+		</scroll-view>
 
 		<!-- 页面底端 -->
 		<customTabbarClientVue></customTabbarClientVue>
@@ -42,10 +42,13 @@
 		reactive
 	} from "vue";
 	import {
-		onLoad, onShow
+		onLoad,
+		onShow
 	} from "@dcloudio/uni-app";
 	import * as kechengApi from "@/api/kecheng.js"
-	import {formatSecondsToCnhms} from "@/utils/common.js"
+	import {
+		formatSecondsToCnhms
+	} from "@/utils/common.js"
 
 	const data = reactive({
 		zyName: '', // 职业名称
@@ -63,9 +66,18 @@
 	})
 
 	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/client/ShouYe/shouye'
-		})
+
+		const pages = getCurrentPages();
+		if (pages.length > 1) {
+			uni.navigateBack()
+		} else {
+			/* uni.redirectTo({
+				url: '/pages/client/ShouYe/shouye'
+			})	 */
+			history.back();
+		}
+
+
 	}
 
 	function handleSearch() {
@@ -145,10 +157,10 @@
 	onLoad((options) => {
 		data.from = options.from;
 	})
-	
+
 	onShow(() => {
 		getMore()
-	}) 
+	})
 </script>
 
 <style lang="scss" scoped>

+ 3 - 2
pages/client/Kecheng/study.vue

@@ -137,7 +137,7 @@
 				if (pages.length>1) {
 					uni.navigateBack()
 				} else {
-					if (this.from == 'kechengList') {
+					/* if (this.from == 'kechengList') {
 						uni.redirectTo({
 							url: '/pages/client/Kecheng/list'
 						})
@@ -149,7 +149,8 @@
 						uni.redirectTo({
 							url: '/pages/client/ShouYe/shouye'
 						})
-					}
+					} */
+					 history.back();
 				}
 				
 			},

+ 3 - 2
pages/client/Lianxi/exam.vue

@@ -355,7 +355,7 @@
 		if (pages.length>1) {
 			uni.navigateBack()
 		} else {
-			if (data.from == 'shouye') {
+			/* if (data.from == 'shouye') {
 				uni.redirectTo({
 					url: '/pages/client/ShouYe/shouye'
 				})
@@ -367,7 +367,8 @@
 				uni.redirectTo({
 					url: "/pages/client/ShouYe/shouye"
 				})
-			}
+			} */
+			 history.back();
 		}
 		
 	}

+ 58 - 52
pages/client/Lianxi/list.vue

@@ -5,41 +5,40 @@
 			<text class="nav-bar-title">练习管理</text>
 		</view>
 		<!-- 考试列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
-				class="phone-scroll-view">
-				<uni-list class="admin-list-box">
-					<uni-list-item v-for="item in data.list" class="admin-list-item-box">
-						<template v-slot:body>
-							<!-- 考试项 -->
-							<view class="item-card-row">
-								<!-- 考试名 + 等级 -->
-								<view class="ks-item-top">
-									<view class="ks-name">{{item.zyName}}</view>
-									<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
-								</view>
-								<!-- 时间 -->
-								<!-- <view class="ks-totalTm">
+		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
+			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
+			class="phone-scroll-view">
+			<uni-list class="admin-list-box">
+				<uni-list-item v-for="item in data.list" class="admin-list-item-box">
+					<template v-slot:body>
+						<!-- 考试项 -->
+						<view class="item-card-row">
+							<!-- 考试名 + 等级 -->
+							<view class="ks-item-top">
+								<view class="ks-name">{{item.zyName}}</view>
+								<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
+							</view>
+							<!-- 时间 -->
+							<!-- <view class="ks-totalTm">
 									<icon class="phone-time-icon" />时间:{{item.totalTm}}分钟
 								</view> -->
-								<!-- 分数 -->
-								<view class="ks-score-content">
-									<view class="ks-score">
-										<icon class="phone-zongfen-icon" />总分:<text>{{item.ksScore}}</text>
-									</view>
-									<view class="ks-okScore">
-										<icon class="phone-jigefen-icon" />及格分:<text>{{item.okScore}}</text>
-									</view>
+							<!-- 分数 -->
+							<view class="ks-score-content">
+								<view class="ks-score">
+									<icon class="phone-zongfen-icon" />总分:<text>{{item.ksScore}}</text>
+								</view>
+								<view class="ks-okScore">
+									<icon class="phone-jigefen-icon" />及格分:<text>{{item.okScore}}</text>
 								</view>
-								<button type="primary" size="mini" @click="checkKsXz(item)"
-									class="item-view-btn">查看内容</button>
 							</view>
-						</template>
-					</uni-list-item>
-					<uni-load-more :status="data.state" @click="getMore(0)"
-						:contentText="data.contentText"></uni-load-more>
-				</uni-list>
-			</scroll-view>
+							<button type="primary" size="mini" @click="checkKsXz(item)"
+								class="item-view-btn">查看内容</button>
+						</view>
+					</template>
+				</uni-list-item>
+				<uni-load-more :status="data.state" @click="getMore(0)" :contentText="data.contentText"></uni-load-more>
+			</uni-list>
+		</scroll-view>
 		<!-- 页面底端 -->
 		<customTabbarClientVue></customTabbarClientVue>
 		<!-- 考试须知 -->
@@ -56,11 +55,12 @@
 		reactive
 	} from "vue";
 	import {
-		onLoad, onShow
+		onLoad,
+		onShow
 	} from "@dcloudio/uni-app";
-	
+
 	const lxxzRef = ref(null);
-	
+
 	const data = reactive({
 		zyName: '', // 职业名称
 		list: [], // 考试列表
@@ -75,39 +75,46 @@
 		},
 		from: ''
 	})
-	
+
 	function checkKsXz(data) {
 		lxxzRef.value.showDialog(data)
 	}
-	
+
 	function handleConfirmKs(data) {
 		checkKaoshi(data)
 	}
-	
+
 	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/client/ShouYe/shouye'
-		})
+		const pages = getCurrentPages();
+		if (pages.length > 1) {
+			uni.navigateBack()
+		} else {
+			/* uni.redirectTo({
+				url: '/pages/client/ShouYe/shouye'
+			}) */
+			history.back();
+		}
+
 	}
-	
+
 	function handleSearch() {
 		data.page = 0;
 		refreshData();
 	}
-	
+
 	function checkKaoshi(item) {
 		uni.navigateTo({
 			url: `/pages/client/Lianxi/exam?lxId=${item.lxId}&from=lianxiList`
 		})
 	}
-	
+
 	function onRefresh() {
 		data.page = 0;
 		data.list = [];
 		data.loading = true;
 		refreshData();
 	}
-	
+
 	function refreshData() {
 		const opt = {
 			page: 1,
@@ -119,25 +126,25 @@
 		data.state = 'loading';
 		data.page++;
 		opt.page = data.page;
-	
+
 		lianxiApi.getClientLianxiList(opt).then(res => {
 			data.list = data.list.concat(res.data.data);
 			data.loading = false;
-	
+
 			if (res.data.total > data.list.length) {
 				data.state = 'more';
 				data.loading = false;
 			} else {
 				data.state = 'no-more';
 				data.loading = false;
-		
+
 			}
 		}).catch(err => {
 			data.state = 'more';
 			data.loading = false;
 		})
 	}
-	
+
 	function getMore() {
 		const opt = {
 			page: 1,
@@ -151,7 +158,7 @@
 		lianxiApi.getClientLianxiList(opt).then(res => {
 			data.list = data.list.concat(res.data.data);
 			data.loading = false;
-	
+
 			if (res.data.total > data.list.length) {
 				data.state = 'more';
 				data.loading = false;
@@ -164,15 +171,14 @@
 			data.loading = false;
 		})
 	}
-	
+
 	onLoad((options) => {
 		data.from = options.from;
 	})
-	
+
 	onShow(() => {
 		getMore()
 	})
-	
 </script>
 
 <style>

+ 3 - 2
pages/client/my/myInfo.vue

@@ -175,7 +175,7 @@
 		if (pages.length>1) {
 			uni.navigateBack()
 		} else {
-			if (data.from == 'my') {
+			/* if (data.from == 'my') {
 				uni.redirectTo({
 					url: '/pages/client/my/index'
 				})
@@ -187,7 +187,8 @@
 				uni.redirectTo({
 					url: '/pages/client/my/index'
 				})
-			}
+			} */
+			history.back();
 		}
 	}