wangxy 1 month ago
parent
commit
74c1ddef60
65 changed files with 6 additions and 15293 deletions
  1. 2 1
      common/styles/global/pages.scss
  2. 4 175
      pages.json
  3. 0 192
      pages/Login/components/adminloginBox.vue
  4. 0 6
      pages/Login/index.vue
  5. 0 466
      pages/admin/Chengji/ksScoreShijuan.vue
  6. 0 257
      pages/admin/Chengji/list.vue
  7. 0 499
      pages/admin/Jiazheng/banzhengXinxi.vue
  8. 0 91
      pages/admin/Jiazheng/banzhengXinxiList.vue
  9. 0 607
      pages/admin/Jiazheng/bf/banzhengXinxi.vue
  10. 0 100
      pages/admin/Jiazheng/bf/banzhengXinxiList.vue
  11. 0 247
      pages/admin/Jiazheng/bf/common/dataChecked.vue
  12. 0 145
      pages/admin/Jiazheng/bf/common/jiazhengPdfUpload.vue
  13. 0 282
      pages/admin/Jiazheng/bf/common/jiazhengUpload.vue
  14. 0 104
      pages/admin/Jiazheng/bf/common/kechengLeixing.vue
  15. 0 113
      pages/admin/Jiazheng/bf/common/search.vue
  16. 0 42
      pages/admin/Jiazheng/bf/common/search2.vue
  17. 0 148
      pages/admin/Jiazheng/bf/common/share.vue
  18. 0 711
      pages/admin/Jiazheng/bf/gerenZiliao.vue
  19. 0 516
      pages/admin/Jiazheng/bf/index.vue
  20. 0 204
      pages/admin/Jiazheng/bf/jiazhengUserInfo.vue
  21. 0 801
      pages/admin/Jiazheng/bf/jiazhengUserManager.vue
  22. 0 306
      pages/admin/Jiazheng/bf/kechengBind.vue
  23. 0 288
      pages/admin/Jiazheng/bf/qiuzhiXinxi.vue
  24. 0 286
      pages/admin/Jiazheng/bf/zhaopianZiliao.vue
  25. 0 259
      pages/admin/Jiazheng/common/dataChecked.vue
  26. 0 145
      pages/admin/Jiazheng/common/jiazhengPdfUpload.vue
  27. 0 282
      pages/admin/Jiazheng/common/jiazhengUpload.vue
  28. 0 104
      pages/admin/Jiazheng/common/kechengLeixing.vue
  29. 0 113
      pages/admin/Jiazheng/common/search.vue
  30. 0 42
      pages/admin/Jiazheng/common/search2.vue
  31. 0 148
      pages/admin/Jiazheng/common/share.vue
  32. 0 711
      pages/admin/Jiazheng/gerenZiliao.vue
  33. 0 516
      pages/admin/Jiazheng/index.vue
  34. 0 204
      pages/admin/Jiazheng/jiazhengUserInfo.vue
  35. 0 680
      pages/admin/Jiazheng/jiazhengUserManager.vue
  36. 0 306
      pages/admin/Jiazheng/kechengBind.vue
  37. 0 288
      pages/admin/Jiazheng/qiuzhiXinxi.vue
  38. 0 286
      pages/admin/Jiazheng/zhaopianZiliao.vue
  39. 0 484
      pages/admin/Kaoshi/exam.vue
  40. 0 186
      pages/admin/Kaoshi/list.vue
  41. 0 103
      pages/admin/Kecheng/components/kechengLeixing.vue
  42. 0 42
      pages/admin/Kecheng/components/search.vue
  43. 0 255
      pages/admin/Kecheng/list.vue
  44. 0 185
      pages/admin/Kecheng/study.vue
  45. 0 485
      pages/admin/Lianxi/lianxi.vue
  46. 0 186
      pages/admin/Lianxi/list.vue
  47. 0 288
      pages/admin/ShouYe/shouye.vue
  48. 0 179
      pages/admin/banzheng/filter.vue
  49. 0 338
      pages/admin/banzheng/list.vue
  50. 0 113
      pages/admin/banzheng/search.vue
  51. 0 46
      pages/admin/my/imageDialog.vue
  52. 0 172
      pages/admin/my/index.vue
  53. 0 202
      pages/admin/my/myInfo.vue
  54. 0 103
      pages/admin/my/passwordDialog.vue
  55. 0 53
      pages/admin/tongzhi/details.vue
  56. 0 157
      pages/admin/tongzhi/list.vue
  57. 0 172
      pages/admin/yishou/yishou.vue
  58. 0 67
      pages/admin/zijiazheng/banzhengshuliang.vue
  59. 0 99
      pages/admin/zijiazheng/index.vue
  60. 0 22
      pages/admin/zijiazheng/jiazhengrenyuan.vue
  61. 0 68
      pages/admin/zijiazheng/yibanzhengshuliang.vue
  62. 0 127
      pages/admin/zizhanghao/components/addUserDl.vue
  63. 0 123
      pages/admin/zizhanghao/components/editorUserDl.vue
  64. 0 120
      pages/admin/zizhanghao/components/resetPassword.vue
  65. 0 247
      pages/admin/zizhanghao/list.vue

+ 2 - 1
common/styles/global/pages.scss

@@ -197,7 +197,8 @@
 		font-size: 24rpx;color: #333;
 		.index-icon{width: 100rpx;height: 100rpx;@include ezy-no-repeat-cover;margin-bottom: 6rpx;}
 	}
-	.card-item-box:nth-child(5) ~ *{margin-top: 30rpx;}
+	//  FIXME 小程序不识别 ~ 符号
+	// .card-item-box:nth-child(5) ~ *{margin-top: 30rpx;}
 	.jz-icon{background-image: url("@/static/images/index/jz-icon.png");}
 	.zzh-icon{background-image: url("@/static/images/index/zzh-icon.png");}
 	.kz-icon{background-image: url("@/static/images/index/kz-icon.png");}

+ 4 - 175
pages.json

@@ -1,73 +1,18 @@
 {
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/Login/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
 			"path": "pages/Login/clientIndex",
 			"style": {
 				"navigationStyle": "custom"
 			}
-		},
-		{
-			"path": "pages/admin/ShouYe/shouye",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/client/ShouYe/shouye",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/admin/Jiazheng/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/admin/Jiazheng/jiazhengUserInfo",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/admin/Jiazheng/kechengBind",
-			"style": {
-				"navigationStyle": "custom"
-			}
 		},{
-			"path": "pages/client/jiazheng/shareImage",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/admin/Jiazheng/jiazhengUserManager",
+			"path": "pages/client/ShouYe/shouye",
 			"style": {
 				"navigationStyle": "custom"
 			}
-		},
+		}, 
 		{
-			"path": "pages/admin/Kaoshi/list",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/Kaoshi/exam",
-			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"softinputMode": "adjustResize",
-					"softinputNavBar": "none"
-				}
-			}
-
-		},
-		{
-			"path": "pages/admin/Kecheng/list",
+			"path": "pages/client/jiazheng/shareImage",
 			"style": {
 				"navigationStyle": "custom"
 			}
@@ -80,28 +25,6 @@
 			}
 		},
 		{
-			"path": "pages/admin/Kecheng/study",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/Lianxi/list",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/Lianxi/lianxi",
-			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"softinputMode": "adjustResize",
-					"softinputNavBar": "none"
-				}
-			}
-		},
-		{
 			"path": "pages/client/Kaoshi/list",
 			"style": {
 				"navigationStyle": "custom"
@@ -154,12 +77,6 @@
 			}
 		},
 		{
-			"path": "pages/admin/Chengji/ksScoreShijuan",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
 			"path": "pages/client/Chengji/list",
 			"style": {
 				"navigationStyle": "custom"
@@ -172,102 +89,18 @@
 			}
 		},
 		{
-			"path": "pages/admin/my/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/Chengji/list",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
 			"path": "pages/client/my/myInfo",
 			"style": {
 				"navigationStyle": "custom"
 			}
 		},
 		{
-			"path": "pages/admin/my/myInfo",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
 			"path": "pages/client/Kecheng/study",
 			"style": {
 				"navigationStyle": "custom"
 			}
 		},
 		{
-			"path": "pages/admin/tongzhi/list",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/tongzhi/details",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/banzheng/list",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path": "pages/admin/banzheng/filter",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/zizhanghao/list",
-			"style" : 
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/yishou/yishou",
-			"style" : 
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/zijiazheng/index",
-			"style" :
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/zijiazheng/banzhengshuliang",
-			"style" : 
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/zijiazheng/yibanzhengshuliang",
-			"style" : 
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
-			"path" : "pages/admin/zijiazheng/jiazhengrenyuan",
-			"style" : 
-			{
-				"navigationStyle": "custom"
-			}
-		},
-		{
 			"path" : "pages/demo/demo2",
 			"style" :
 			{
@@ -275,10 +108,6 @@
 			}
 		}
 	],
-	"tabBar": {
-		"custom": true,
-		"list": []
-	},
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "",
@@ -295,7 +124,7 @@
 		"current": 0, //当前激活的模式(list 的索引项)
 		"list": [{
 			"name": "login", //模式名称
-			"path": "pages/Login/index", //启动页面,必选
+			"path": "pages/Login/clientIndex", //启动页面,必选
 			"query": "" //启动参数,在页面的onLoad函数里面得到
 		}]
 	}

+ 0 - 192
pages/Login/components/adminloginBox.vue

@@ -1,192 +0,0 @@
-<template>
-	<view class="phone-login-page">
-		<view class="login-wrap-box">
-			<view class="bjcx-head-box">
-				<icon class="bjcx-logo-box"></icon>
-				<view class="bjcx-logo-title">家政学</view>
-			</view>
-			
-			<view class="login-input-box">
-				<icon class="user-icon"></icon>
-				<input class="login-input" type="text" v-model="userName" placeholder="请输入手机号" @input="userInputChange">
-				<view class="close-btn" v-if="clearTelIcon" @click="clearTel"></view>
-			</view>
-			<view class="login-input-box">
-				<icon class="tel-icon"></icon>
-				<input class="login-input" placeholder="请输入密码" v-model="password" :password="showPassword" 
-				 @input="passwordInputChange"/>
-				<text class="login-eye" :class="[!showPassword ? 'uni-eye-active' : '']"
-					@click="changePassword"></text>
-				<view class="close-btn" v-if="clearPwIcon" @click="clearPw"></view>
-			</view>
-			<button type="default" @click="handleLogin" class="phone-green-btn login-btn">登录</button>
-		<!-- 已加密的:{{lliPassword}} -->
-		</view>
-		<passwordLli ref="passLLiRef" :password="password" @lli-password="onLliPassword" />
-		<tip-dialog ref="tipDialogRef" :title="tipTitle" :content="tipContent"></tip-dialog>
-		
-		<!-- 安卓强制升级 -->
-		<shengJiDialog ref="tipDialogRef2" :closeFlag='false' :title="tipTitle" @confirm-btn="BanbenConfirmBtn" :showTip="true"
-			:notClose="true" :content="tipContentAndroid">
-		</shengJiDialog>
-	</view>
-</template>
-
-<script setup>
-	import {onShow} from '@dcloudio/uni-app';
-	import cacheManager from '@/utils/cacheManager.js'
-	import * as httpApi from "@/api/login.js"
-	import passwordLli from "@/components/password-lli/password-lli.vue";
-	import {ref} from "vue"
-	import {toast} from "@/utils/common";
-	import {useIsCanBack} from "@/store/isCanBack.js"
-	import config from '../../../config.js'
-	import tipDialog from '@/components/dialog/tipDialog.vue';
-	import shengJiDialog from '@/components/dialog/shengJiDialog.vue';
-	import {
-		useVersionUpdate
-	} from "@/utils/versionUpdate.js";
-	
-	const userName = ref('') // 用户名
-	const password = ref('') // 密码
-	const lliPassword = ref('') // 加密后的密码
-	const passLLiRef = ref(null)
-	const showPassword= ref(true)
-	const clearTelIcon= ref(false)
-	const clearPwIcon= ref(false)
-	
-	const store = useIsCanBack();
-	const version = config.appInfo.version;
-	const tipDialogRef = ref(null);
-	const tipTitle = '升级提醒';
-	const tipContent = '您的APP不是最新版本,部分功能不能使用,请升级至最新版本!';
-	const tipContentAndroid = '您的APP不是最新版本,部分功能不能使用,请升级至最新版本!'
-	
-	const tipDialogRef2 = ref(null)
-	const updateUrl = ref(null)
-	
-	const {
-		initDownload
-	} = useVersionUpdate()
-	
-	function BanbenConfirmBtn() {
-		const systemInfo = uni.getSystemInfoSync();
-			if (systemInfo.platform == 'ios') {
-
-			} else {
-				initDownload(updateUrl.value)
-			}
-	}	
-	
-	// 加密
-	function handleUpdateLLiPassword() {
-		passLLiRef.value.lliPassword();
-	}
-	function onLliPassword(password) {
-		console.log('onLliPassword',password)
-		lliPassword.value = password;
-	}
-	
-	// 手机号校验
-	function userInputChange(event){
-		if (event.detail.value.length > 0) {
-			clearTelIcon.value = true;
-		} else {
-			clearTelIcon.value = false;
-		}
-	}
-	
-	// 密码校验
-	function passwordInputChange(event){
-		if (event.detail.value.length > 0) {
-			clearPwIcon.value = true;
-		} else {
-			clearPwIcon.value = false;
-		}
-	}
-	
-	// 清除手机号
-	function clearTel(){
-		userName.value = '';
-		clearTelIcon.value = false;
-	}
-	
-	// 清除密码
-	function clearPw(){
-		password.value = '';
-		clearPwIcon.value = false;
-	}
-
-	// 密码显隐
-	function changePassword() {
-      showPassword.value = !showPassword.value;
-    }
-	
-	// 登录
-	function handleLogin() {
-		if(userName.value.length ===0){
-			toast('请输入手机号!')
-			return
-		}
-		
-		if(password.value.length ===0){
-			toast('请输入密码!')
-			return
-		}
-		
-		// 去除 userName 两端的空格
-		const trimmedUserName = userName.value;
-		const trimmedPassword = lliPassword.value;
-		
-	
-		httpApi.login({
-			// type 1app 2为H5
-			type:1,
-			userName: trimmedUserName,
-			password: lliPassword.value,
-		}).then(res => {
-			// 2为家政管理员
-			if(res.data.type ===2 ||res.data.type ===5){
-				cacheManager.set('auth', res.data)
-				store.setIsCanBack(false)
-				// 页面跳转
-				gotoPage();
-			}else{
-				toast('登录失败,您的身份有误,请联系管理员。')
-			}
-		}).catch(err => {
-			store.setIsCanBack(true)
-		})
-	}
-	
-	// 跳转
-	function gotoPage(){
-        uni.navigateTo({
-          url: `/pages/admin/ShouYe/shouye`
-        })
-		}
-		
-	function getLoginInit(){
-		httpApi.getVersion({}).then(res => {
-	
-			if (version != res.data.version) {
-				updateUrl.value = res.data.updateUrl
-				
-				const systemInfo = uni.getSystemInfoSync();
-				if (systemInfo.platform == 'ios') {
-				
-				} else {
-					tipDialogRef2.value.handleShow();
-				}
-			}
-		})
-	}
-	
-	onShow(() => {
-		getLoginInit()
-	})	
-</script>
-
-<style>
-
-</style>

+ 0 - 6
pages/Login/index.vue

@@ -1,6 +0,0 @@
-<template>
-	<AdminloginBox></AdminloginBox>
-</template>
-<script setup>
-	import AdminloginBox from './components/adminloginBox.vue'
-</script>

+ 0 - 466
pages/admin/Chengji/ksScoreShijuan.vue

@@ -1,466 +0,0 @@
-<template>
-	<view class="phone-score-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{data.ksName}}</text>
-		</view>
-		<!-- 上方区域 -->
-		<topCard v-if="data.ksName" @openCard="handleOpenCard" :name="data.ksName" :zyLevelName="data.zyLevelName"
-			:userScore="data.userScore" :Score="data.ksScore"></topCard>
-
-		<!-- 段落 -->
-		<view class="score-shiti-content">
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-			</view>
-			<!-- 解析 -->
-			<view v-if="activeSt" class="score-answer-box">
-				<view class="phone-question-answer-box" v-if="activeSt.stTypeId != 4">
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:<text>{{answerRes.result}}</text></view>
-					<view class="ndda-row">您的答案:<text>{{answerRes.reply}}</text></view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-				<view class="phone-question-answer-box" v-else>
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:
-						<view v-for="(item,index) in answerRes.result">{{`填空${index+1}`}} : {{item}}</view>
-					</view>
-					<view class="ndda-row">您的答案:
-						<view v-for="(item,index) in answerRes.reply"> {{`填空${index+1}`}}: {{item}}</view>
-					</view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 上下按钮 -->
-		<view v-if="activeSt" class="score-bottom-box">
-			<view @click="handleOpenCard" class="score-num-box">
-				<icon class="score-num-icon"></icon>
-				<text
-					class="active-num">{{activeSt && activeSt.onlyNum||0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<view>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handlePrev" v-if="!isFistStId">上一题</button>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleNext" v-if="!isLastStId">下一题</button>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleBack" v-if="isLastStId">完成</button>
-			</view>
-		</view>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-
-	</view>
-</template>
-
-<script setup>
-	import topCard from "@/components/score/topCard.vue"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		ref,
-		reactive,
-		computed
-	} from "vue"
-	import * as ksApi from "@/api/kaoshi.js"
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex
-	} = useQuestionTools();
-
-
-	const hisId = ref(null)
-	const popupRef = ref(null)
-
-	const data = reactive({
-		ksId: null,
-		ksName: '',
-		stTotal: 0,
-		zyLevelName: '',
-		userScore: '',
-		ksScore: 0,
-		StListForSearch: [],
-		duanluo: []
-	})
-
-	const questionData = ref([]);
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const answerRes = computed(() => {
-		const qa = activeSt.value;
-		let score = qa.score;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		} else {
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-
-	onLoad((options) => {
-		hisId.value = options.hisId;
-		initPage()
-	})
-
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-	}
-	
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Chengji/list"
-		})
-	}
-
-
-	function formatDuanluoList() {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-		}
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-
-
-	function initPage() {
-		ksApi.getAdminKsChengjiView({
-			hisId: hisId.value
-		}).then(res => {
-			const {
-				duanluoList,
-				ksName,
-				zyLevelName,
-				userScore,
-				ksScore
-			} = res.data;
-			data.ksName = ksName;
-			data.zyLevelName = zyLevelName;
-			data.userScore = userScore;
-			data.ksScore = ksScore;
-			data.duanluo = duanluoList;
-
-			formatDuanluoList();
-		})
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handleOpenCard() {
-		popupRef.value.open('top')
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 257
pages/admin/Chengji/list.vue

@@ -1,257 +0,0 @@
-<template>
-	<view class="phone-list-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">成绩</text>
-			<view class="nav-bar-icon-box">
-				<uni-icons class="nav-bar-right-icon" type="search" size="22" color="#666"
-					@click="toggle('top')"></uni-icons>
-			</view>
-		</view>
-		<!-- 查询职业 -->
-		<!-- <view class="phone-search-box">
-			<input class="search-input" placeholder="请输入职业名称" v-model="data.zyName" />
-			<view class="search-icon" @click="handleSearch">
-				<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			</view>
-		</view> -->
-		
-		<view>
-			<search-dialog ref="searchDialogRef" 
-				@search-btn="dialogSearchBtn"
-				@reset-search="dialogSearchReset"></search-dialog>
-		</view>
-		
-		<!-- 课程列表 -->
-		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh" @scrolltolower="onScrolltolower"
-				class="admin-phone-tabbar-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.ksName}}</view>
-									<view class="ks-zyLevelName">{{item.zyLevelName}}</view>
-								</view>
-								
-								<view class="ks-totalTm-row">
-									<view class="ks-totalTm">
-										<icon class="phone-user-icon" />姓名:{{item.realName}} 
-									</view>
-									<view class="ks-totalTm">
-										<icon class="phone-tel-icon" />手机号:{{item.userName}} 
-									</view>
-								</view>
-								<view class="ks-totalTm">
-									<icon class="phone-time-icon" />{{item.answerStartTime}} - {{item.answerEndTime}}
-								</view>
-								<!-- <view class="ks-totalTm">
-									<icon class="phone-time-icon" /> {{item.userScore}} / {{item.okScore}}/{{item.ksScore}}
-								</view> -->
-								<!-- 分数 -->
-								<view class="ks-score-content">
-									<view class="ks-score">
-										<icon class="phone-zongfen-icon" />总分:<text>{{item.ksScore}}</text>
-									</view>
-									<view class="ks-okScore cj-okScore">
-										<icon class="phone-jigefen-icon" />及格分:<text>{{item.okScore}}</text>
-									</view>
-									<view class="ks-getScore">
-										<icon class="phone-defen-icon" />得分:<text>{{item.userScore}}</text>
-									</view>
-								</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>
-
-		<!-- 页面底端 -->
-		<customTabbarAdminVue :current-tab="0"></customTabbarAdminVue>
-	</view>
-</template>
-
-<script setup>
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as kaoshiApi from "@/api/kaoshi.js"
-	import {
-		formatDuration
-	} from "@/utils/common.js"
-	import searchDialog from "@/pages/admin/jiazheng/common/search.vue";
-	
-
-	const data = reactive({
-		zyName: '', // 职业名称
-		list: [], // 考试列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		},
-		userName: '',
-		realName: '',
-	})
-	
-	const searchDialogRef = ref(null);
-	
-	function dialogSearchReset() {
-		data.userName = '';
-		data.realName = '';
-	}
-	
-	function dialogSearchBtn(name, searchData) {
-		switch (name) {
-			case '姓名':
-				dialogSearchReset();
-				data.realName = searchData.value;
-				break;
-			case '手机号':
-				data.userName = searchData.value;
-				break;
-		}
-		onRefresh();
-	}
-	
-	const toggle = (data, index) => {
-		searchDialogRef.value.handleShow();
-	}
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function checkKecheng(item) {
-		uni.navigateTo({
-			url: `/pages/admin/Chengji/ksScoreShijuan?hisId=${item.hisId}`
-		})
-	}
-	
-	function onScrolltolower() {
-		getMore()
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function refreshData() {
-		const opt = {
-			page: 1,
-			size: 10, // 固定查询10条
-			userName: data.userName,
-			realName: data.realName
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		kaoshiApi.getAdminKsChengjiList(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,
-			size: 10, // 固定查询10条
-			userName: data.userName,
-			realName: data.realName
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		kaoshiApi.getAdminKsChengjiList(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;
-		})
-	}
-
-	onLoad(() => {
-		getMore()
-	})
-</script>
-
-<style lang="scss" scoped>
-	.phone-kecheng-page {
-		background-color: #ccc;
-		box-sizing: border-box;
-	}
-
-	.phone-search-content {
-		position: relative;
-		background-color: #fff;
-		height: 42px;
-
-		.search-input {
-			height: 42px;
-			line-height: 40px;
-			border-radius: 20px;
-			border: 1px solid #ccc;
-			padding: 0 70px 0 20px;
-		}
-
-		.search-icon {
-			position: absolute;
-			right: 5px;
-			top: 4px;
-			padding: 6px;
-			background-color: #ccc;
-			border-radius: 20px;
-			width: 50px;
-			text-align: center;
-		}
-	}
-</style>

+ 0 - 499
pages/admin/Jiazheng/banzhengXinxi.vue

@@ -1,499 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="content-body-box">
-				<view v-if="status =='add'" class="bzsm-tip-box form-top-margin">
-					<view class="title-btn-box">
-						<view class="phone-line-title">说明</view>
-						<view @click="resetFun" class="reset-btn">重置</view>
-					</view>
-					<view class="tip-content-box">1.如果不需要办理证书,可直接点击保存按钮。</view>
-					<view class="tip-content-box">2.点击重置按钮,只重置办证信息,其他信息不改变。</view>
-				</view>
-				<!-- 报证机构(picker 实现下拉选择) -->
-				<view class="form-label-select form-top-margin">
-					<view class="phone-form-label"><text class="form-label-require">*</text>报证机构</view>
-					<picker :disabled="(status =='edit'&&localStatus=='')" mode="selector" :range="jigouNames"
-						@change="jigouChange" class="select-picker-box">
-						<view class="form-radio-select"
-							:class="{'form-radio-disabled': (status =='edit'&&localStatus=='')}">
-							<view>{{ formData.baozhengJigouName || '请选择报证机构' }}</view>
-							<icon></icon>
-						</view>
-					</picker>
-				</view>
-				<view v-if="formData.banzhengInfoFlag" class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require">*</text>参训时间</view>
-					<uni-datetime-picker class="form-radio-picker" v-model="formData.canxunshijian" type="date"
-						@change="canxunShijianChange">
-						<view class="form-radio-select">
-							<view>{{formData.canxunshijian}}</view>
-							<icon></icon>
-						</view>
-					</uni-datetime-picker>
-				</view>
-
-				<view v-if="formData.banzhengInfoFlag" class="form-label-input">
-					<view class="phone-form-label"><text class="form-label-require">*</text>实操成绩</view>
-					<input v-model="formData.shicaochengji" placeholder="请填写实操成绩" />
-				</view>
-				<view v-if="formData.banzhengInfoFlag" class="form-label-input">
-					<view class="phone-form-label"><text class="form-label-require">*</text>总课时</view>
-					<input v-model="formData.zongkeshi" placeholder="请填写总课时" />
-				</view>
-				<view v-if="formData.needFlag" class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require"></text>需要考试</view>
-					<radio-group @change="kaoshiChange">
-						<label class="radio-label">
-							<radio :value="'true'" :checked="formData.needKaoshi == 'true'" color="#3fd2a1"
-								style="transform:scale(0.65)" />
-							<text>是</text>
-						</label>
-						<label class="radio-label">
-							<radio :value="'false'" :checked="formData.needKaoshi == 'false'" color="#3fd2a1"
-								style="transform:scale(0.65)" />
-							<text>否</text>
-						</label>
-					</radio-group>
-				</view>
-				<view class="form-label-input">
-					<view class="phone-form-label"><text class="form-label-require">*</text>职业名称</view>
-					<view @click="selectZy" class="input-text-row text-ellipsis-row">
-						<!-- wgy看这  v-for去掉换成一个数组或字符串 -->
-						<view class="text-ellipsis" v-if="zyNameAndLevel">{{zyNameAndLevel}}</view>
-						<view class="text-ellipsis" v-else>请选择职业名称</view>
-						<icon></icon>
-					</view>
-				</view>
-				<view class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require">*</text>职业等级</view>
-					<picker mode="selector" :disabled="isZyFlag" :style="isZyFlag?'color:#999':''" :range="zhiyeLevels"
-						@change="levelChange" class="select-picker-box">
-						<view class="form-radio-select">
-							<view>{{ formData.zhiyeLevelName || '请选择等级' }}</view>
-							<icon></icon>
-						</view>
-					</picker>
-				</view>
-				<view v-if="isZijiazheng !='true'" class="page-btn-box">
-					<button type="default" v-if="isZijiazheng !='true'" @click="goBack"
-						class="phone-white-btn">返回</button>
-					<button type="default" v-if="isZijiazheng !='true'" @click="addSaveFormPiliang"
-						class="phone-green-btn">添加</button>
-				</view>
-
-			</view>
-			<selectZyLevel ref="selectRef" @confirm-btn="selectZyLevelConfirm" :mode=modeControl
-				:id="formData.baozhengJigouId"></selectZyLevel>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getBaozhengJigou,
-		getJiazhengLevel,
-		getJiazhengZhiye,
-		getJiazhengBanzhengCheckKc
-	} from "@/api/jiazheng.js"
-	import dayjs from "dayjs";
-	import selectZyLevel from "@/components/selectZyLevel/index.vue"
-	export default {
-		data() {
-			return {
-				formData: {
-					baozhengJigouId: '',
-					baozhengJigouName: '',
-					baozhengJigouType: '',
-					banzhengInfoFlag: false,
-					zhiyeName: '',
-					zhiyeId: '',
-					zhiyeLevelName: '',
-					zhiyeLevelId: '',
-					canxunshijian: '',
-					shicaochengji: '',
-					zongkeshi: '',
-					needKecheng: 'false', // 默认选中"是"
-					needKaoshi: 'false', // 默认选中"是"
-					kcDisabled: false,
-					needFlag: false,
-					id: '',
-					createTime: ''
-				},
-				baozhengJigouOpt: [
-
-				],
-				zhiyelevelsOpt: [],
-				zhiyeNameOpt: [
-
-				],
-				localStatus: '',
-				currentIndex: '',
-				isJgFlag: true,
-				isZyFlag: true,
-				piliang: '',
-				piliangArray: [],
-				zyNameAndLevel: ''
-			};
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-
-		},
-		components: {
-			selectZyLevel
-		},
-		computed: {
-			jigouNames() {
-				return this.baozhengJigouOpt.map(item => item.name);
-			},
-			zhiyeNames() {
-				return this.zhiyeNameOpt.map(item => item.name);
-			},
-			zhiyeLevels() {
-				return this.zhiyelevelsOpt.map(item => item.name);
-			},
-			modeControl() {
-				if (this.localStatus == 'addEdit') {
-					return 'danxuan'
-				} else if (this.status == 'add') {
-					return 'duoxuan'
-				} else if (this.localStatus == 'editAdd') {
-					return 'duoxuan'
-				} else {
-					return 'danxuan'
-				}
-			}
-		},
-		created() {
-			this.getJigou()
-			this.localStatus = this.status
-
-		},
-		methods: {
-			selectZy() {
-				if (this.formData.baozhengJigouId == '') {
-					uni.showToast({
-						title: '请选择报证机构',
-						icon: 'none'
-					});
-					return false
-				}
-				console.log('this.piliangArray', this.piliangArray);
-
-				let newArray = this.piliangArray.map(item => {
-					return {
-						zyId: item.id,
-						zyName: item.name,
-					};
-				});
-				this.$refs.selectRef.handleShow(newArray)
-			},
-			selectZyLevelConfirm(data) {
-				console.log('data', data);
-				this.piliangArray = [...data]
-				this.zyNameAndLevel = data.map(item => `${item.name}`).join(',');
-				console.log('this.piliangArray', this.piliangArray);
-				this.zhiyeChange(this.piliangArray)
-				//234
-			},
-			// 提交表单
-			addSaveFormPiliang() {
-				let req = {
-					zyLevelName: this.formData.zhiyeLevelName,
-					zyLevel: this.formData.zhiyeLevelId,
-					canxunshijian: this.formData.canxunshijian,
-					jgId: this.formData.baozhengJigouId,
-					needKaoshi: this.formData.needKaoshi,
-					needKecheng: this.formData.needKecheng,
-					shicaochengji: this.formData.shicaochengji,
-					zongkeshi: this.formData.zongkeshi,
-					jgType: this.formData.baozhengJigouType,
-					jgName: this.formData.baozhengJigouName,
-					id: this.formData.id,
-					createTime: dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				let mergedArray = this.piliangArray.map(item => {
-					return {
-						...req, // 展开req的所有属性
-						zyId: item.id,
-						zyName: item.name,
-					};
-				});
-				console.log('this.mergedArray', mergedArray);
-
-				if (req.jgId == '') {
-					uni.showToast({
-						title: '请选择报证机构',
-						icon: 'none'
-					});
-					return false
-				}
-				if (this.piliangArray.length == 0) {
-					uni.showToast({
-						title: '请选择职业名称',
-						icon: 'none'
-					});
-					return false
-				}
-				if (!req.zyLevel) {
-					uni.showToast({
-						title: '请选择职业等级',
-						icon: 'none'
-					});
-					return false
-				}
-				// 验证机构类型为1时的必填字段
-				if (this.formData.baozhengJigouType == 1 &&
-					(this.formData.shicaochengji == '' ||
-						this.formData.zongkeshi == '' ||
-						this.formData.canxunshijian == '')) {
-					uni.showToast({
-						title: '请填写参训时间,实操成绩,总课时',
-						icon: 'none'
-					});
-					return false
-				}
-
-				console.log('this.status', this.status);
-				console.log('this.localStatus', this.localStatus);
-				console.log('this.mergedArray', mergedArray);
-				if (this.localStatus == 'addEdit') {
-					this.$emit('addEdit', mergedArray[0], 'addEdit', this.currentIndex);
-				} else if (this.status == 'add') {
-					this.$emit('addSave', mergedArray);
-				} else if (this.localStatus == 'editAdd') {
-					this.$emit('editSave', mergedArray, 'editAdd');
-				} else {
-					this.$emit('editSave', mergedArray[0], 'edit', this.currentIndex);
-				}
-			},
-			goBack() {
-				this.isJgFlag = true
-				this.isZyFlag = true
-				this.piliangArray = []
-				this.$emit('goBack');
-			},
-			editinfo(data, index) {
-				this.piliangArray = []
-				this.$nextTick(() => {
-					if (!data) {
-						return false
-					}
-					console.log('index', index);
-					console.log('data', data);
-					this.currentIndex = index
-					this.zyNameAndLevel = data.zyName
-					this.formData.baozhengJigouName = data.jgName;
-					this.formData.baozhengJigouId = data.jgId;
-					this.formData.id = data.id;
-					this.formData.baozhengJigouType = data.jgType;
-					this.formData.banzhengInfoFlag = data.jgType == 1;
-					this.formData.zhiyeName = data.zyName;
-					this.formData.zhiyeId = data.zyId;
-					this.formData.zhiyeLevelName = data.zyLevelName;
-					this.formData.zhiyeLevelId = data.zyLevel;
-					if (this.formData.baozhengJigouId) {
-						this.isJgFlag = false
-					}
-					if (this.formData.baozhengJigouId && this.formData.zhiyeId) {
-						this.isZyFlag = false
-						let req = {
-							jgId: this.formData.baozhengJigouId,
-							zyId: this.formData.zhiyeId,
-						}
-						getJiazhengLevel(req).then(res => {
-							console.log('res', res);
-							this.zhiyelevelsOpt = res.data
-						})
-					}
-
-					this.formData.canxunshijian = data.canxunshijian;
-					this.formData.zongkeshi = data.zongkeshi;
-					this.formData.shicaochengji = data.shicaochengji;
-					this.formData.needKecheng = data.needKecheng ? data.needKecheng.toString() : 'false';
-					this.formData.needKaoshi = data.needKaoshi ? data.needKaoshi.toString() : 'false';
-					if (this.formData.banzhengInfoFlag) {
-						this.formData.needFlag = false
-					} else {
-						this.formData.needFlag = true
-					}
-					this.piliangArray = [{
-						id: data.zyId,
-						name: data.zyName,
-						zyLevel: data.zyLevel,
-						zyLevelName: data.zyLevelName
-					}]
-				})
-			},
-			getJigou() {
-				getBaozhengJigou({}).then(res => {
-					console.log('res', res);
-					this.baozhengJigouOpt = res.data
-				})
-			},
-			getZhiye() {
-				this.zhiyeNameOpt = []
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				getJiazhengZhiye({
-					id: this.formData.baozhengJigouId
-				}).then(res => {
-					console.log('res', res);
-					this.zhiyeNameOpt = res.data
-				})
-			},
-			getZhiyeLevel() {
-				this.zhiyelevelsOpt = []
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				let req = {
-					jgId: this.formData.baozhengJigouId,
-					zyId: this.formData.zhiyeId,
-
-				}
-				getJiazhengLevel(req).then(res => {
-					console.log('res', res);
-					this.zhiyelevelsOpt = res.data
-				})
-			},
-			resetData() {
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				this.formData.canxunshijian = ''
-				this.formData.shicaochengji = ''
-				this.formData.zongkeshi = ''
-				this.isJgFlag = true
-				this.isZyFlag = true
-				this.zyNameAndLevel = ''
-				this.piliangArray = []
-			},
-			resetFun() {
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				this.formData.canxunshijian = ''
-				this.formData.shicaochengji = ''
-				this.formData.zongkeshi = ''
-				this.formData.baozhengJigouName = ''
-				this.formData.baozhengJigouId = ''
-				this.formData.baozhengJigouName = ''
-				this.formData.needKecheng = 'false'
-				this.formData.needKaoshi = 'false'
-				this.formData.needFlag = false
-				this.formData.kcDisabled = false
-				this.formData.banzhengInfoFlag = false
-				this.isJgFlag = true
-				this.isZyFlag = true
-				this.piliangArray = []
-				this.zyNameAndLevel = ''
-
-			},
-			// 报证机构选择
-			jigouChange(e) {
-				this.formData.baozhengJigouName = this.baozhengJigouOpt[e.detail.value].name;
-				this.formData.baozhengJigouId = this.baozhengJigouOpt[e.detail.value].jgId;
-				this.formData.baozhengJigouType = this.baozhengJigouOpt[e.detail.value].jgType;
-				this.formData.banzhengInfoFlag = this.baozhengJigouOpt[e.detail.value].jgType == 1;
-				// 每一次都重置
-				this.resetData()
-
-				console.log('this.formData.banzhengInfoFlag', this.formData.banzhengInfoFlag);
-				if (this.formData.banzhengInfoFlag) {
-					this.formData.needFlag = false
-					this.formData.needKaoshi = 'false'
-					this.formData.needKecheng = 'false'
-				} else {
-					this.formData.needFlag = true
-					this.formData.needKaoshi = 'true'
-					this.formData.needKecheng = 'false'
-				}
-				if (this.formData.baozhengJigouId) {
-					this.isJgFlag = false //开启
-					//this.getZhiye()
-				}
-			},
-
-			// 职业等级选择
-			levelChange(e) {
-				this.formData.zhiyeLevelId = this.zhiyelevelsOpt[e.detail.value].id;
-				this.formData.zhiyeLevelName = this.zhiyelevelsOpt[e.detail.value].name;
-			},
-			checkKc() {
-				let req = {
-					zyId: this.formData.zhiyeId,
-					zyLevel: this.formData.zhiyeLevelId
-				}
-				getJiazhengBanzhengCheckKc(req).then(res => {
-					console.log('res', res);
-					if (res.data.pass.toString() == 'true') {
-						this.formData.kcDisabled = false
-						this.formData.needKecheng = 'true'
-					} else {
-						uni.showToast({
-							title: res.data.msg,
-							icon: 'none'
-						});
-						this.formData.needKecheng = 'false'
-						this.formData.kcDisabled = true
-					}
-					//	this.zhiyelevelsOpt = res.data
-				})
-			},
-			// 职业名称选择
-			zhiyeChange(data) {
-				//123
-				//	this.formData.zhiyeName = this.zhiyeNameOpt[e.detail.value].name;
-				this.formData.zhiyeId = data[0].id;
-				if (this.formData.baozhengJigouId && this.formData.zhiyeId) {
-					this.isZyFlag = false
-					this.getZhiyeLevel()
-				}
-			},
-			canxunShijianChange(e) {
-				console.log('e', e);
-				this.formData.canxunshijian = e
-			},
-
-			// 需要课程选择
-			kechengChange(e) {
-				this.formData.needKecheng = e.detail.value.toString();
-				console.log('this.formData.needKecheng', this.formData.needKecheng);
-				if (this.formData.needKecheng == 'true') {
-					if (this.formData.zhiyeId && this.formData.zhiyeLevelId) {
-						this.checkKc()
-					} else {
-						uni.showToast({
-							title: '请选择职业以及职业等级',
-							icon: 'none'
-						});
-						setTimeout(() => {
-							this.formData.needKecheng = 'false'
-						}, 1000)
-
-						return false
-					}
-				}
-			},
-
-			// 需要考试选择
-			kaoshiChange(e) {
-				this.formData.needKaoshi = e.detail.value.toString();
-			},
-			currentMove(data) {
-				console.log('data', data);
-				// currentMove 编辑状态下的新增
-				this.localStatus = data
-				console.log('localStatus', this.localStatus);
-			}
-		}
-	};
-</script>

+ 0 - 91
pages/admin/Jiazheng/banzhengXinxiList.vue

@@ -1,91 +0,0 @@
-<template>
-	<view class="bzxx-list-page">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view  class="bz-new-btn-box" v-if="list.length>0">
-				<button type="default" class="phone-green-btn" @click="addBanzheng">添加</button>
-			</view>
-			<view class="bzxx-wrap-box" v-if="list.length>0">
-				<view v-for="(item,index) in list" :key="index" class="bzxx-card-box">
-					<view class="name-btn-box">
-						<view class="jg-name">报证机构:{{item.jgName}}</view>
-						<view class="name-btn editer-btn" @click="goEdit(item,index)">编辑</view>
-						<view class="name-btn delete-btn" @click="deleteFun(item,index)">删除</view>
-					</view>
-					<view class="bzxx-zy-row">
-						<icon class="zy-icon"></icon>职业名称:<text>{{item.zyName}}</text>
-					</view>
-					<view class="bzxx-zy-row">
-						<icon class="zydj-icon"></icon>职业等级:<text>{{item.zyLevelName}}</text>
-					</view>
-					<view class="bzxx-time-row">
-						<icon class="time-icon"></icon><text>申报时间:{{item.createTime}}</text>
-					</view>
-				</view>
-			</view>
-			<view v-if="list.length==0" class="bzxx-add-btn-box">
-				<view @click="addBanzheng" class="bzxx-add-btn"><text>+</text>添加办证信息</view>
-			</view>
-			<view v-if="status =='add'&&isZijiazheng !='true'" class="bzxx-btn-box">
-				<button type="default" @click="saveBanzheng" class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getBaozhengJigou,
-		getJiazhengLevel,
-		getJiazhengZhiye,
-		getJiazhengBanzhengCheckKc
-	} from "@/api/jiazheng.js"
-	import {
-		toast
-	} from "@/utils/common";
-	export default {
-		data() {
-			return {
-
-			};
-		},
-		props: {
-			list: {
-				type: Array,
-				default: () => []
-			},
-			status: {
-				type: String,
-			}
-		},
-		computed: {
-
-		},
-		created() {
-
-		},
-		methods: {
-			addBanzheng() {
-				this.$emit('addBanzheng');
-			},
-			saveBanzheng() {
-				this.$emit('saveBanzheng');
-			},
-			goEdit(item, index) {
-
-				console.log('item', item);
-				if (item.statusBanzheng != '未办证' && this.status == 'edit') {
-					toast("已提交办证申请,禁止修改")
-					return false
-				}
-				this.$emit('editBanzheng', item, index);
-			},
-			deleteFun(item, index) {
-				if (item.statusBanzheng != '未办证' && this.status == 'edit') {
-					toast("已提交办证申请,禁止删除")
-					return false
-				}
-				this.$emit('deleteBanzheng', item, index);
-			}
-		}
-	};
-</script>

+ 0 - 607
pages/admin/Jiazheng/bf/banzhengXinxi.vue

@@ -1,607 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="content-body-box">
-				<view v-if="status =='add'" class="bzsm-tip-box form-top-margin">
-					<view class="title-btn-box">
-						<view class="phone-line-title">说明</view>
-						<view @click="resetFun" class="reset-btn">重置</view>
-					</view>
-					<view class="tip-content-box">1.如果不需要办理证书,可直接点击保存按钮。</view>
-					<view class="tip-content-box">2.点击重置按钮,只重置办证信息,其他信息不改变。</view>
-				</view>
-				<!-- 报证机构(picker 实现下拉选择) -->
-				<view class="form-label-select form-top-margin">
-					<view class="phone-form-label"><text class="form-label-require">*</text>报证机构</view>
-					<picker :disabled="(status =='edit'&&localStatus=='')" mode="selector" :range="jigouNames"
-						@change="jigouChange" class="select-picker-box">
-						<view class="form-radio-select"
-							:class="{'form-radio-disabled': (status =='edit'&&localStatus=='')}">
-							<view>{{ formData.baozhengJigouName || '请选择报证机构' }}</view>
-							<icon></icon>
-						</view>
-					</picker>
-				</view>
-				<!-- 职业名称(picker 实现下拉选择) -->
-				<view class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require">*</text>职业名称</view>
-					<picker mode="selector" :disabled="isJgFlag" :style="isJgFlag?'color:#999':''" :range="zhiyeNames"
-						range-key="name" @change="zhiyeChange" class="select-picker-box">
-						<view class="form-radio-select">
-							<view>{{ formData.zhiyeName || '请选择职业名称' }}</view>
-							<icon></icon>
-						</view>
-					</picker>
-				</view>
-				<!-- 职业等级(picker 实现下拉选择) -->
-				<view class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require">*</text>职业等级</view>
-					<picker mode="selector" :disabled="isZyFlag" :style="isZyFlag?'color:#999':''" :range="zhiyeLevels"
-						@change="levelChange" class="select-picker-box">
-						<view class="form-radio-select">
-							<view>{{ formData.zhiyeLevelName || '请选择等级' }}</view>
-							<icon></icon>
-						</view>
-					</picker>
-				</view>
-
-				<view v-if="formData.banzhengInfoFlag" class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require">*</text>参训时间</view>
-					<uni-datetime-picker class="form-radio-picker" v-model="formData.canxunshijian" type="date"
-						@change="canxunShijianChange">
-						<view class="form-radio-select">
-							<view>{{formData.canxunshijian}}</view>
-							<icon></icon>
-						</view>
-					</uni-datetime-picker>
-				</view>
-
-				<view v-if="formData.banzhengInfoFlag" class="form-label-input">
-					<view class="phone-form-label"><text class="form-label-require">*</text>实操成绩</view>
-					<input v-model="formData.shicaochengji" placeholder="请填写实操成绩" />
-				</view>
-				<view v-if="formData.banzhengInfoFlag" class="form-label-input">
-					<view class="phone-form-label"><text class="form-label-require">*</text>总课时</view>
-					<input v-model="formData.zongkeshi" placeholder="请填写总课时" />
-				</view>
-				<view v-if="formData.needFlag" class="form-label-select">
-					<view class="phone-form-label"><text class="form-label-require"></text>需要考试</view>
-					<radio-group @change="kaoshiChange">
-						<label class="radio-label">
-							<radio :value="'true'" :checked="formData.needKaoshi == 'true'" color="#3fd2a1"
-								style="transform:scale(0.65)" />
-							<text>是</text>
-						</label>
-						<label class="radio-label">
-							<radio :value="'false'" :checked="formData.needKaoshi == 'false'" color="#3fd2a1"
-								style="transform:scale(0.65)" />
-							<text>否</text>
-						</label>
-					</radio-group>
-				</view>
-				<view v-if="isZijiazheng !='true'" class="page-btn-box">
-					<button type="default" v-if="piliang !=1&&isZijiazheng !='true'" @click="goBack"
-						class="phone-white-btn">返回</button>
-					<button type="default" v-if="piliang ==1&&isZijiazheng !='true'" @click="piliangBaocun"
-						class="phone-green-btn">确认</button>
-					<button type="default" v-if="piliang !=1&&isZijiazheng !='true'" @click="addSaveForm"
-						class="phone-green-btn">添加</button>
-				</view>
-				<view v-if="piliangArray.length>0" v-for="(item,index) in piliangArray" :key="index"
-					class="bzsm-tip-box form-top-margin">
-					<view class="title-btn-box">
-						<view class="phone-line-title">{{item.jgName}}</view>
-						<view class="reset-btn" @click="piliangDelete(item,index)">删除</view>
-					</view>
-					<view class="tip-content-box">{{item.zyName}} {{item.zyLevelName}}</view>
-					<!-- 				<view class="tip-content-box">职业名称:{{item.zyName}}</view>
-				<view class="tip-content-box">职业等级:{{item.zyLevelName}}</view> -->
-				</view>
-
-
-			</view>
-			<view v-if="isZijiazheng !='true' &&piliang ==1" class="page-btn-box content-footer-box">
-				<button type="default" v-if="piliang ==1&&isZijiazheng !='true'" @click="goBack"
-					class="phone-white-btn">返回</button>
-				<button type="default" v-if="piliang ==1&&isZijiazheng !='true'" @click="addSaveFormPiliang"
-					class="phone-green-btn">添加</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getBaozhengJigou,
-		getJiazhengLevel,
-		getJiazhengZhiye,
-		getJiazhengBanzhengCheckKc
-	} from "@/api/jiazheng.js"
-	import dayjs from "dayjs";
-	export default {
-		data() {
-			return {
-				formData: {
-					baozhengJigouId: '',
-					baozhengJigouName: '',
-					baozhengJigouType: '',
-					banzhengInfoFlag: false,
-					zhiyeName: '',
-					zhiyeId: '',
-					zhiyeLevelName: '',
-					zhiyeLevelId: '',
-					canxunshijian: '',
-					shicaochengji: '',
-					zongkeshi: '',
-					needKecheng: 'false', // 默认选中"是"
-					needKaoshi: 'false', // 默认选中"是"
-					kcDisabled: false,
-					needFlag: false,
-					id: '',
-					createTime: ''
-				},
-				baozhengJigouOpt: [
-
-				],
-				zhiyelevelsOpt: [],
-				zhiyeNameOpt: [
-
-				],
-				localStatus: '',
-				currentIndex: '',
-				isJgFlag: true,
-				isZyFlag: true,
-				piliang: '',
-				piliangArray: []
-			};
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-
-		},
-		computed: {
-			jigouNames() {
-				return this.baozhengJigouOpt.map(item => item.name);
-			},
-			zhiyeNames() {
-				return this.zhiyeNameOpt.map(item => item.name);
-			},
-			zhiyeLevels() {
-				return this.zhiyelevelsOpt.map(item => item.name);
-			},
-		},
-		created() {
-			this.getJigou()
-			this.localStatus = this.status
-
-		},
-		methods: {
-			piliangDelete(item, index) {
-				this.piliangArray.splice(index, 1);
-			},
-			isPiliang(data) {
-				this.piliang = data
-				if (data == 0) {
-					this.piliangArray = []
-				}
-			},
-			goBack() {
-				this.isJgFlag = true
-				this.isZyFlag = true
-				this.piliangArray = []
-				this.$emit('goBack');
-			},
-			editinfo(data, index) {
-				this.piliangArray = []
-				console.log('123123', data);
-				this.$nextTick(() => {
-					if (!data) {
-						return false
-					}
-					console.log('datssssa', data);
-					this.currentIndex = index
-					this.formData.baozhengJigouName = data.jgName;
-					this.formData.baozhengJigouId = data.jgId;
-					this.formData.id = data.id;
-					this.formData.baozhengJigouType = data.jgType;
-					this.formData.banzhengInfoFlag = data.jgType == 1;
-					this.formData.zhiyeName = data.zyName;
-					this.formData.zhiyeId = data.zyId;
-					this.formData.zhiyeLevelName = data.zyLevelName;
-					this.formData.zhiyeLevelId = data.zyLevel;
-					if (this.formData.baozhengJigouId) {
-						this.isJgFlag = false
-						getJiazhengZhiye({
-							id: this.formData.baozhengJigouId
-						}).then(res => {
-							console.log('res', res);
-							this.zhiyeNameOpt = res.data
-						})
-					}
-					if (this.formData.baozhengJigouId && this.formData.zhiyeId) {
-						this.isZyFlag = false
-						let req = {
-							jgId: this.formData.baozhengJigouId,
-							zyId: this.formData.zhiyeId,
-
-						}
-						getJiazhengLevel(req).then(res => {
-							console.log('res', res);
-							this.zhiyelevelsOpt = res.data
-						})
-					}
-					this.formData.canxunshijian = data.canxunshijian;
-					this.formData.zongkeshi = data.zongkeshi;
-					this.formData.shicaochengji = data.shicaochengji;
-					this.formData.needKecheng = data.needKecheng ? data.needKecheng.toString() : 'false';
-					this.formData.needKaoshi = data.needKaoshi ? data.needKaoshi.toString() : 'false';
-
-					if (this.formData.banzhengInfoFlag) {
-						this.formData.needFlag = false
-
-					} else {
-						this.formData.needFlag = true
-
-					}
-				})
-			},
-			getJigou() {
-				getBaozhengJigou({}).then(res => {
-					console.log('res', res);
-					this.baozhengJigouOpt = res.data
-				})
-			},
-			getZhiye() {
-				this.zhiyeNameOpt = []
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				getJiazhengZhiye({
-					id: this.formData.baozhengJigouId
-				}).then(res => {
-					console.log('res', res);
-					this.zhiyeNameOpt = res.data
-				})
-			},
-			getZhiyeLevel() {
-				this.zhiyelevelsOpt = []
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				let req = {
-					jgId: this.formData.baozhengJigouId,
-					zyId: this.formData.zhiyeId,
-
-				}
-				getJiazhengLevel(req).then(res => {
-					console.log('res', res);
-					this.zhiyelevelsOpt = res.data
-				})
-			},
-			resetData() {
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				this.formData.canxunshijian = ''
-				this.formData.shicaochengji = ''
-				this.formData.zongkeshi = ''
-				this.isJgFlag = true
-				this.isZyFlag = true
-			},
-			resetFun() {
-				this.formData.zhiyeName = ''
-				this.formData.zhiyeId = ''
-				this.formData.zhiyeLevelName = ''
-				this.formData.zhiyeLevelId = ''
-				this.formData.canxunshijian = ''
-				this.formData.shicaochengji = ''
-				this.formData.zongkeshi = ''
-				this.formData.baozhengJigouName = ''
-				this.formData.baozhengJigouId = ''
-				this.formData.baozhengJigouName = ''
-				this.formData.needKecheng = 'false'
-				this.formData.needKaoshi = 'false'
-				this.formData.needFlag = false
-				this.formData.kcDisabled = false
-				this.formData.banzhengInfoFlag = false
-				this.isJgFlag = true
-				this.isZyFlag = true
-					this.piliangArray = []
-
-			},
-			// 报证机构选择
-			jigouChange(e) {
-				this.formData.baozhengJigouName = this.baozhengJigouOpt[e.detail.value].name;
-				this.formData.baozhengJigouId = this.baozhengJigouOpt[e.detail.value].jgId;
-				this.formData.baozhengJigouType = this.baozhengJigouOpt[e.detail.value].jgType;
-				this.formData.banzhengInfoFlag = this.baozhengJigouOpt[e.detail.value].jgType == 1;
-				// 每一次都重置
-				this.resetData()
-
-				console.log('this.formData.banzhengInfoFlag', this.formData.banzhengInfoFlag);
-				if (this.formData.banzhengInfoFlag) {
-					this.formData.needFlag = false
-					this.formData.needKaoshi = 'false'
-					this.formData.needKecheng = 'false'
-				} else {
-					this.formData.needFlag = true
-					this.formData.needKaoshi = 'true'
-					this.formData.needKecheng = 'false'
-				}
-				if (this.formData.baozhengJigouId) {
-					this.isJgFlag = false //开启
-					this.getZhiye()
-				}
-			},
-
-			// 职业等级选择
-			levelChange(e) {
-				this.formData.zhiyeLevelId = this.zhiyelevelsOpt[e.detail.value].id;
-				this.formData.zhiyeLevelName = this.zhiyelevelsOpt[e.detail.value].name;
-			},
-			checkKc() {
-				let req = {
-					zyId: this.formData.zhiyeId,
-					zyLevel: this.formData.zhiyeLevelId
-				}
-				getJiazhengBanzhengCheckKc(req).then(res => {
-					console.log('res', res);
-					if (res.data.pass.toString() == 'true') {
-						this.formData.kcDisabled = false
-						this.formData.needKecheng = 'true'
-					} else {
-						uni.showToast({
-							title: res.data.msg,
-							icon: 'none'
-						});
-						this.formData.needKecheng = 'false'
-						this.formData.kcDisabled = true
-					}
-					//	this.zhiyelevelsOpt = res.data
-				})
-			},
-			// 职业名称选择
-			zhiyeChange(e) {
-				this.formData.zhiyeName = this.zhiyeNameOpt[e.detail.value].name;
-				this.formData.zhiyeId = this.zhiyeNameOpt[e.detail.value].id;
-				if (this.formData.baozhengJigouId && this.formData.zhiyeId) {
-					this.isZyFlag = false
-					this.getZhiyeLevel()
-				}
-			},
-			canxunShijianChange(e) {
-				console.log('e', e);
-				this.formData.canxunshijian = e
-			},
-
-			// 需要课程选择
-			kechengChange(e) {
-				this.formData.needKecheng = e.detail.value.toString();
-				console.log('this.formData.needKecheng', this.formData.needKecheng);
-				if (this.formData.needKecheng == 'true') {
-					if (this.formData.zhiyeId && this.formData.zhiyeLevelId) {
-						this.checkKc()
-					} else {
-						uni.showToast({
-							title: '请选择职业以及职业等级',
-							icon: 'none'
-						});
-						setTimeout(() => {
-							this.formData.needKecheng = 'false'
-						}, 1000)
-
-						return false
-					}
-				}
-			},
-
-			// 需要考试选择
-			kaoshiChange(e) {
-				this.formData.needKaoshi = e.detail.value.toString();
-			},
-			currentMove(data) {
-				console.log('data', data);
-				// currentMove 编辑状态下的新增
-				this.localStatus = data
-				console.log('localStatus', this.localStatus);
-			},
-			piliangBaocun() {
-				let req = {
-					canxunshijian: this.formData.canxunshijian,
-					jgId: this.formData.baozhengJigouId,
-					needKaoshi: this.formData.needKaoshi,
-					needKecheng: this.formData.needKecheng,
-					shicaochengji: this.formData.shicaochengji,
-					zongkeshi: this.formData.zongkeshi,
-					zyId: this.formData.zhiyeId,
-					zyLevel: this.formData.zhiyeLevelId,
-					jgType: this.formData.baozhengJigouType,
-					jgName: this.formData.baozhengJigouName,
-					zyName: this.formData.zhiyeName,
-					zyLevelName: this.formData.zhiyeLevelName,
-					id: this.formData.id,
-					createTime: dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				if (this.status == 'add' || this.localStatus == 'editadd' || this.localStatus == 'addEdit') {
-					req.createTime = dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				if (req.jgId == '' || req.zyId == '' || req.zyLevel == '') {
-					uni.showToast({
-						title: '请选择保证机构,职业名称,职业等级',
-						icon: 'none'
-					});
-					return false
-				}
-				if (this.formData.baozhengJigouType == 1 && (this.formData.shicaochengji == '' || this.formData
-						.zongkeshi ==
-						'' || this.formData.canxunshijian == '')) {
-					uni.showToast({
-						title: '请填写参训时间,实操成绩,总课时',
-						icon: 'none'
-					});
-					return false
-				}
-				// 检查重复数据 - 新增的重复检查逻辑
-				const isDuplicate = this.piliangArray.some(item =>
-					item.jgId === req.jgId &&
-					item.zyId === req.zyId &&
-					item.zyLevel === req.zyLevel
-				);
-
-				if (isDuplicate) {
-					uni.showToast({
-						title: '该机构、职业和等级已存在,无法重复添加',
-						icon: 'none'
-					});
-					return false;
-				}
-
-				//console.log('req', req);
-				this.piliangArray.push(req)
-				console.log('this.piliangArray', this.piliangArray);
-			},
-			// 提交表单
-			addSaveFormPiliang() {
-				let req = {
-					canxunshijian: this.formData.canxunshijian,
-					jgId: this.formData.baozhengJigouId,
-					needKaoshi: this.formData.needKaoshi,
-					needKecheng: this.formData.needKecheng,
-					shicaochengji: this.formData.shicaochengji,
-					zongkeshi: this.formData.zongkeshi,
-					zyId: this.formData.zhiyeId,
-					zyLevel: this.formData.zhiyeLevelId,
-					jgType: this.formData.baozhengJigouType,
-					jgName: this.formData.baozhengJigouName,
-					zyName: this.formData.zhiyeName,
-					zyLevelName: this.formData.zhiyeLevelName,
-					id: this.formData.id,
-					createTime: dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				if (this.status == 'add' || this.localStatus == 'editadd' || this.localStatus == 'addEdit') {
-					req.createTime = dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				if (req.jgId == '' || req.zyId == '' || req.zyLevel == '') {
-					uni.showToast({
-						title: '请选择保证机构,职业名称,职业等级',
-						icon: 'none'
-					});
-					return false
-				}
-				if (this.formData.baozhengJigouType == 1 && (this.formData.shicaochengji == '' || this.formData
-						.zongkeshi ==
-						'' || this.formData.canxunshijian == '')) {
-					uni.showToast({
-						title: '请填写参训时间,实操成绩,总课时',
-						icon: 'none'
-					});
-					return false
-				}
-
-
-				console.log('this.status', this.status);
-				console.log('this.localStatus', this.localStatus);
-
-				if (this.localStatus == 'editAdd') {
-					if (this.piliangArray.length == 0) {
-						this.$emit('editSavePiliang', req);
-					} else {
-						console.log('this.piliangArray', this.piliangArray);
-						this.$emit('editSavePiliang', this.piliangArray)
-					}
-
-				} else if (this.status == 'add') {
-					if (this.piliangArray.length == 0) {
-						this.$emit('addSavePiliang', req);
-					} else {
-						console.log('this.piliangArray', this.piliangArray);
-						this.$emit('addSavePiliang', this.piliangArray)
-					}
-				}
-			
-
-			},
-			// 提交表单
-			addSaveForm() {
-				//debugger
-
-				console.log('statusstatusstatus', this.status);
-
-				let req = {
-					canxunshijian: this.formData.canxunshijian,
-					jgId: this.formData.baozhengJigouId,
-					needKaoshi: this.formData.needKaoshi,
-					needKecheng: this.formData.needKecheng,
-					shicaochengji: this.formData.shicaochengji,
-					zongkeshi: this.formData.zongkeshi,
-					zyId: this.formData.zhiyeId,
-					zyLevel: this.formData.zhiyeLevelId,
-					jgType: this.formData.baozhengJigouType,
-					jgName: this.formData.baozhengJigouName,
-					zyName: this.formData.zhiyeName,
-					zyLevelName: this.formData.zhiyeLevelName,
-					id: this.formData.id,
-					createTime: dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				console.log('req', req);
-				if (this.status == 'add' || this.localStatus == 'editadd' || this.localStatus == 'addEdit') {
-					req.createTime = dayjs().format("YYYY-MM-DD HH:mm:ss")
-				}
-				if (req.jgId == '' || req.zyId == '' || req.zyLevel == '') {
-					uni.showToast({
-						title: '请选择保证机构,职业名称,职业等级',
-						icon: 'none'
-					});
-					return false
-				}
-				if (this.formData.baozhengJigouType == 1 && (this.formData.shicaochengji == '' || this.formData
-						.zongkeshi ==
-						'' || this.formData.canxunshijian == '')) {
-					uni.showToast({
-						title: '请填写参训时间,实操成绩,总课时',
-						icon: 'none'
-					});
-					return false
-				}
-				console.log('req123123123', req);
-				if (req.jgId && req.zyId && req.zyLevel) {
-					if (this.localStatus == 'addEdit') {
-						this.$emit('addEdit', req, 'addEdit', this.currentIndex);
-					} else if (this.status == 'add') {
-						this.$emit('addSave', req);
-					} else if (this.localStatus == 'editAdd') {
-						this.$emit('editSave', req, 'editAdd');
-					} else {
-						this.$emit('editSave', req, 'edit', this.currentIndex);
-					}
-
-				} else if (req.jgId == '' && req.zyId == '' && req.zyLevel == '') {
-					if (this.status == 'add') {
-						this.$emit('addSave', '');
-					} else if (this.localStatus == 'editAdd') {
-						//this.$emit('editSave', '');
-						// uni.showToast({
-						// 	title: '请选择保证机构,职业名称,职业等级',
-						// 	icon: 'none'
-						// });
-
-						// return false
-					} else {
-
-					}
-				} else {
-					uni.showToast({
-						title: '请选择保证机构,职业名称,职业等级',
-						icon: 'none'
-					});
-
-					return false
-				}
-			}
-		}
-	};
-</script>

+ 0 - 100
pages/admin/Jiazheng/bf/banzhengXinxiList.vue

@@ -1,100 +0,0 @@
-<template>
-	<view class="bzxx-list-page">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view  class="bz-new-btn-box" v-if="list.length>0">
-				<button type="default" class="phone-white-btn" @click="addBanzheng">添加</button>
-				<button type="default" class="phone-green-btn" @click="addBanzhengPiliang">批量添加</button>
-			</view>
-			<view class="bzxx-wrap-box" v-if="list.length>0">
-				<view v-for="(item,index) in list" :key="index" class="bzxx-card-box">
-					<view class="name-btn-box">
-						<view class="jg-name">报证机构:{{item.jgName}}</view>
-						<view class="name-btn editer-btn" @click="goEdit(item,index)">编辑</view>
-						<view class="name-btn delete-btn" @click="deleteFun(item,index)">删除</view>
-					</view>
-					<view class="bzxx-zy-row">
-						<icon class="zy-icon"></icon>职业名称:<text>{{item.zyName}}</text>
-					</view>
-					<view class="bzxx-zy-row">
-						<icon class="zydj-icon"></icon>职业等级:<text>{{item.zyLevelName}}</text>
-					</view>
-					<view class="bzxx-time-row">
-						<icon class="time-icon"></icon><text>申报时间:{{item.createTime}}</text>
-					</view>
-				</view>
-			</view>
-		<!-- 	<view v-if="list.length>0 && status!='edit'" class="bzxx-btn-box">
-				<button type="default" v-if="status!='edit'&&isZijiazheng !='true'" @click="saveBanzheng" class="phone-green-btn">保存</button>
-			</view> -->
-			<view v-if="list.length==0" class="bzxx-add-btn-box">
-				<view @click="addBanzheng" class="bzxx-add-btn"><text>+</text>添加办证信息</view>
-				<view @click="addBanzhengPiliang" class="bzxx-add-btn"><text>+</text>批量添加办证信息</view>
-
-			</view>
-			<view v-if="status =='add'&&isZijiazheng !='true'" class="bzxx-btn-box">
-				<button type="default" @click="saveBanzheng" class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getBaozhengJigou,
-		getJiazhengLevel,
-		getJiazhengZhiye,
-		getJiazhengBanzhengCheckKc
-	} from "@/api/jiazheng.js"
-	import {
-		toast
-	} from "@/utils/common";
-	export default {
-		data() {
-			return {
-
-			};
-		},
-		props: {
-			list: {
-				type: Array,
-				default: () => []
-			},
-			status: {
-				type: String,
-			}
-		},
-		computed: {
-
-		},
-		created() {
-
-		},
-		methods: {
-			addBanzheng() {
-				this.$emit('addBanzheng');
-			},
-			addBanzhengPiliang() {
-				this.$emit('addBanzhengPiliang');
-			},
-			saveBanzheng() {
-				this.$emit('saveBanzheng');
-			},
-			goEdit(item, index) {
-
-				console.log('item', item);
-				if (item.statusBanzheng != '未办证' && this.status == 'edit') {
-					toast("已提交办证申请,禁止修改")
-					return false
-				}
-				this.$emit('editBanzheng', item, index);
-			},
-			deleteFun(item, index) {
-				if (item.statusBanzheng != '未办证' && this.status == 'edit') {
-					toast("已提交办证申请,禁止删除")
-					return false
-				}
-				this.$emit('deleteBanzheng', item, index);
-			}
-		}
-	};
-</script>

+ 0 - 247
pages/admin/Jiazheng/bf/common/dataChecked.vue

@@ -1,247 +0,0 @@
-<template>
-	<view class="phone-radio-group data-check-radio-group">
-		<!-- 技能块展示 -->
-		<view v-for="item in displayedList" :key="item.id" class="phone-radio-item"
-			:class="{ radioActive: isSelected(item.id) }" @click="toggleSelect(item)">
-			{{ item.name }}
-		</view>
-		<!-- 添加按钮 -->
-		<view v-if="showAddButton" class="radio-add-btn" @click="handleAdd">
-			+ 添加
-		</view>
-
-		<!-- 展开/收起按钮 -->
-		<view class="radio-btn-box label-radio-btn-box">
-			<view v-if="showExpandButton" :class="[{ 'radio-btn': true }, showAll ? 'collapsed-btn' : 'expanded-btn']"
-				@click="toggleExpand">
-				{{ showAll ? '收起' : `展开` }}
-			</view>
-		</view>
-
-
-		<!-- 	<view v-if="showExpandButton" class="expand-button" @click="toggleExpand">
-			{{ showAll ? '收起' : `展开剩余${remainingCount}项` }}
-		</view> -->
-
-		<!-- 添加弹窗 -->
-		<uni-popup ref="addPopup" type="dialog" :animation="false" :is-mask-click="false">
-			<view class="phone-common-dialog">
-				<view class="common-body-box">
-					<view class="common-title">新增技能</view>
-					<view class="common-input-box">
-						<input v-model="newName" placeholder="请输入技能名称" class="common-input-margin" />
-					</view>
-				</view>
-				<view class="common-btn-box">
-					<view class="not-confirm-btn" @click="cancelAdd">取消</view>
-					<view class="confirm-btn" @click="confirmAdd">确认</view>
-				</view>
-			</view>
-		</uni-popup>
-	</view>
-</template>
-
-<script>
-	export default {
-		name: 'SkillSelector',
-		props: {
-			// 技能列表(必须包含id和name字段)
-			list: {
-				type: Array,
-				required: true,
-				default: () => []
-			},
-			// 默认显示数量
-			defaultCount: {
-				type: Number,
-				default: 10
-			},
-			// 是否显示添加功能
-			showAdd: {
-				type: Boolean,
-				default: true
-			},
-			// 新增模式选择
-			mode: {
-				type: String,
-				default: 'multiple', // 'single' | 'multiple'
-				validator: (value) => ['single', 'multiple'].includes(value)
-			},
-			// 外部传入的已选id(单选时为单个id,多选时为id数组)
-			selectedIds: {
-				type: [Array, Number,String],
-				default: () => []
-			},
-			selectedNames: {
-				type: String,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				showAll: false,
-				selectedData: [],
-				newName: ''
-			};
-		},
-		computed: {
-			displayedList() {
-				return this.showAll ? this.list : this.list.slice(0, this.defaultCount);
-			},
-			remainingCount() {
-				return this.list.length - this.defaultCount;
-			},
-			showExpandButton() {
-				return this.list.length > this.defaultCount;
-			},
-			showAddButton() {
-				if (!this.showAdd) return false;
-				return this.showAll || this.list.length < this.defaultCount;
-			}
-		},
-		watch: {
-			// 监听外部传入的selectedIds变化,更新selectedData
-			selectedIds: {
-
-				handler(newVal) {
-					if (this.mode === 'single') {
-						// 单选模式
-						const selectedItem = this.list.find(item => item.id == newVal);
-						this.selectedData = selectedItem ? [selectedItem] : [];
-					} else {
-						// 多选模式
-						this.selectedData = this.list.filter(item => newVal.includes(item.id));
-					}
-				}
-			},
-			// 监听外部传入的selectedNames变化,更新selectedData
-			selectedNames: {
-				immediate: true,
-				handler(newVal) {
-					if (!newVal) {
-						this.selectedData = [];
-						return;
-					}
-					// 将字符串解析为名称数组
-					const names = newVal.split(',').map(name => name.trim());
-					// 根据名称从list中找到对应的数据
-					this.selectedData = this.list.filter(item => names.includes(item.name));
-				}
-			}
-		},
-		methods: {
-			isSelected(id) {
-				return this.selectedData.some(item => item.id === id);
-			},
-
-
-			toggleSelect(data) {
-				if (this.mode == 'single') {
-					this.handleSingleSelect(data);
-				} else {
-					this.handleMultipleSelect(data);
-				}
-				this.$emit('change', this.selectedData);
-			},
-			// 单选处理逻辑
-			handleSingleSelect(data) {
-				const isSelected = this.selectedData.some(item => item.id == data.id);
-				if (isSelected) {
-					// 取消选择
-					this.selectedData = [];
-				} else {
-					// 替换选择
-					this.selectedData = [data];
-				}
-			},
-			// 多选处理逻辑
-			handleMultipleSelect(data) {
-				const index = this.selectedData.findIndex(item => item.id == data.id);
-				if (index === -1) {
-					this.selectedData.push(data);
-				} else {
-					this.selectedData.splice(index, 1);
-				}
-			},
-			toggleExpand() {
-				this.showAll = !this.showAll;
-			},
-
-			handleAdd() {
-				this.$refs.addPopup.open();
-			},
-
-			confirmAdd() {
-				if (!this.newName.trim()) {
-					uni.showToast({
-						title: '请输入技能名称',
-						icon: 'none'
-					});
-					return;
-				}
-
-				const newObject = {
-					id: this.list.length,
-					name: this.newName
-				};
-				console.log('list', this.list);
-				console.log('newObject', newObject);
-
-				this.$emit('add', newObject);
-				this.newName = '';
-				this.$refs.addPopup.close();
-			},
-
-			cancelAdd() {
-				this.newName = '';
-				this.$refs.addPopup.close();
-			}
-		}
-	};
-</script>
-
-<style scoped>
-	.add-block {
-		background: transparent;
-		border: 1px dashed #007aff;
-		color: #007aff;
-	}
-
-	.expand-button {
-		margin-top: 30rpx;
-		color: #007aff;
-		font-size: 28rpx;
-		text-align: center;
-	}
-
-	.add-popup {
-		padding: 40rpx;
-		background: #fff;
-		border-radius: 16rpx;
-	}
-
-	.add-input {
-		width: 100%;
-		padding: 20rpx;
-		border: 1px solid #eee;
-		border-radius: 8rpx;
-		margin-bottom: 40rpx;
-	}
-
-	.button-group {
-		display: flex;
-		gap: 20rpx;
-	}
-
-	.confirm-button {
-		flex: 1;
-		background: #007aff;
-		color: #fff;
-	}
-
-	.cancel-button {
-		flex: 1;
-		background: #ff3b30;
-		color: #fff;
-	}
-</style>

+ 0 - 145
pages/admin/Jiazheng/bf/common/jiazhengPdfUpload.vue

@@ -1,145 +0,0 @@
-<template>
-  <view>
-    <!-- 触发按钮 -->
-    <slot name="trigger" :uploading="uploading">
-      <button 
-        :disabled="uploading"
-        @click="choosePdf"
-        class="upload-btn"
-      >
-        {{ uploading ? '上传中...' : '上传PDF' }}
-      </button>
-    </slot>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'PdfUploader',
-  props: {
-    // 上传接口地址
-    uploadUrl: {
-      type: String,
-      required: true
-    },
-    // 最大文件大小(单位:MB)
-    maxSize: {
-      type: Number,
-      default: 50
-    }
-  },
-  data() {
-    return {
-      uploading: false
-    }
-  },
-  methods: {
-    // 选择PDF文件
-    async choosePdf() {
-      if (this.uploading) return
-      
-      try {
-        const [file] = await this.selectFile()
-        await this.verifyFile(file)
-        const result = await this.uploadFile(file)
-        this.$emit('success', result)
-      } catch (error) {
-        this.$emit('error', error)
-        this.showToast(error.message)
-      }
-    },
-
-    // 选择文件
-    selectFile() {
-      return new Promise((resolve, reject) => {
-        uni.chooseFile({
-          count: 1,
-          type: 'file',
-          extension: ['pdf'],
-          success: res => resolve(res.tempFiles),
-          fail: () => reject(new Error('取消选择'))
-        })
-      })
-    },
-
-    // 验证文件
-    verifyFile(file) {
-      const maxBytes = this.maxSize * 1024 * 1024
-      
-      if (!file.type.includes('pdf')) {
-        throw new Error('请选择PDF文件')
-      }
-      
-      if (file.size > maxBytes) {
-        throw new Error(`文件大小不能超过${this.maxSize}MB`)
-      }
-      
-      return true
-    },
-
-    // 执行上传
-    uploadFile(file) {
-      this.uploading = true
-      
-      return new Promise((resolve, reject) => {
-        uni.uploadFile({
-          url: this.uploadUrl,
-          filePath: file.path,
-          name: 'file',
-          formData: {
-            filename: file.name
-          },
-          success: (res) => {
-            if (res.statusCode === 200) {
-              resolve(JSON.parse(res.data))
-            } else {
-              reject(new Error('上传失败'))
-            }
-          },
-          fail: () => reject(new Error('网络错误')),
-          complete: () => (this.uploading = false)
-        })
-      })
-    },
-
-    // 显示提示
-    showToast(message) {
-      uni.showToast({
-        title: message,
-        icon: 'none',
-        duration: 3000
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-.upload-btn {
-  background-color: #007AFF;
-  color: white;
-  padding: 10px 20px;
-  border-radius: 5px;
-  font-size: 14px;
-}
-
-.upload-btn[disabled] {
-  background-color: #cccccc;
-}
-</style>
-<!--  <SimplePdfUploader
-      upload-url="https://your-api.com/upload"
-      :max-size="30"
-      @success="handleSuccess"
-      @error="handleError"
-    >
-      <!-- 自定义触发按钮 -->
-      <template v-slot:trigger="{ uploading }">
-        <button 
-          :disabled="uploading"
-          class="custom-btn"
-        >
-          {{ uploading ? '正在上传...' : '选择PDF文件' }}
-        </button>
-      </template>
-    </SimplePdfUploader> -->

+ 0 - 282
pages/admin/Jiazheng/bf/common/jiazhengUpload.vue

@@ -1,282 +0,0 @@
-<template>
-	<view v-if="changjingType =='shenfenzheng'" class="sfz-upload-box" @click="showActionSheet">
-		<view v-if="!imageUrl" class="sfz-content"><text>+</text> 添加身份证</view>
-		<image class="sfz-image" v-else :src="imageUrl" mode=""></image>
-	</view>
-
-	<view v-else-if="changjingType =='more'" class="admin-upload-btn-box" @click="showActionSheet">
-		<text>+</text>
-	</view>
-	<view v-else class="admin-upload-btn-box" @click="showActionSheet">
-		<text v-if="!imageUrl">+</text>
-		<image v-else class="other-image" :src="imageUrl" mode=""></image>
-	</view>
-	<view v-if="bottomText" class="upload-bottom-text">
-		{{bottomText}}
-	</view>
-</template>
-
-<script>
-	import axios from 'axios';
-	import {
-		getAliyunPolicy
-	} from "@/api/jiazheng.js"
-		import cacheManager from "@/utils/cacheManager.js";
-	export default {
-		emits: ['getFileUrl'], // 声明自定义事件
-		data() {
-			return {
-				imageUrl: ""
-			}
-		},
-		props: {
-			bottomText: { // 试题序号
-				type: String
-			},
-			changjingType: {
-				type: String,
-				default: ''
-			},
-			img: {
-				type: String,
-				default: ''
-			}
-		},
-		watch: {
-			img: {
-				handler(newVal) {
-					this.imageUrl = newVal
-				}
-			},
-
-		},
-		methods: {
-			showActionSheet() {
-
-				// 判断是否是H5环境
-				// #ifdef H5
-				this.chooseImage('album'); // H5环境下直接选择相册
-				// #endif
-
-				// #ifndef H5
-				uni.showActionSheet({
-					itemList: ['拍照', '从相册选择'],
-					success: (res) => {
-						if (res.tapIndex === 0) {
-							this.chooseImage('camera');
-						} else if (res.tapIndex === 1) {
-							this.chooseImage('album');
-						}
-					}
-				});
-				// #endif
-
-			},
-			chooseImage(sourceType) {
-				uni.chooseImage({
-					count: 1, // 只能选择一张图片
-					sourceType: [sourceType], // 'camera' 或 'album'
-					success: (res) => {
-						console.log('res', res);
-
-						// #ifndef H5
-						const filePath = res.tempFilePaths[0];
-						this.uploadFileToAliyun(filePath);
-						// #endif
-						// #ifdef H5
-						const filePath = res.tempFiles[0];
-						this.uploadFileToAliyun(filePath);
-						// #endif
-					}
-				});
-			},
-			uploadFileToAliyun(filePath) {
-				console.log('filePath', filePath);
-
-				const loading = uni.showLoading({
-					title: '上传中...',
-					mask: true
-				});
-				try {
-
-					// #ifdef H5
-					const suffixList = filePath.name.split('.');
-					let req = {
-						prefix: 'resource/',
-						suffix: suffixList[suffixList.length - 1],
-					}
-					// #endif
-					// #ifndef H5
-					const suffix = filePath.split('.').pop();
-					let req = {
-						prefix: 'resource/',
-						suffix: suffix
-					}
-					// #endif
-					getAliyunPolicy(req).then(res => {
-						let that = this;
-						if (res.code == 0) {
-							const policyData = res.data;
-							console.log('policyData', policyData);
-
-							// #ifdef H5
-							const formData = new FormData();
-							formData.append('key', policyData.key);
-							formData.append('policy', policyData.policy);
-							formData.append('OSSAccessKeyId', policyData.accessid);
-							formData.append('signature', policyData.signature);
-							formData.append('success_action_status', '200');
-							formData.append('file', filePath);
-
-							axios.post(policyData.uploadUrl, formData)
-								.then(alRes => {
-									if (alRes.status === 200) {
-										that.imageUrl =
-											`${policyData.downloadUrl}/${policyData.key}`;
-										uni.showToast({
-											title: '上传成功',
-											icon: 'success'
-										});
-										that.$emit('getFileUrl', that.imageUrl);
-									} else {
-										uni.showToast({
-											title: '上传失败',
-										});
-									}
-								})
-							// #endif
-
-							// #ifndef H5
-							console.log('appappappappappapp');
-							// 非 H5 环境下使用 uni.uploadFile 上传
-							uni.uploadFile({
-								url: policyData.uploadUrl,
-								filePath: filePath,
-								name: 'file',
-								formData: {
-									key: policyData.key,
-									policy: policyData.policy,
-									OSSAccessKeyId: policyData.accessid,
-									signature: policyData.signature,
-									success_action_status: '200'
-								},
-								header: {
-									'Content-Type': 'multipart/form-data'
-								},
-								success(uploadRes) {
-									console.log('uploadRes', uploadRes);
-									if (uploadRes.statusCode === 200) {
-										that.imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
-										uni.showToast({
-											title: '上传成功',
-											icon: 'success'
-										});
-										that.$emit('getFileUrl', that.imageUrl);
-									} else {
-										uni.showToast({
-											title: '上传失败',
-										});
-									}
-								},
-								fail(err) {
-									console.log('err', err);
-								}
-							});
-							// #endif
-
-						} else {
-							uni.showToast({
-								title: '获取凭证失败',
-							});
-						}
-					});
-				} catch (error) {
-					uni.showToast({
-						title: '上传失败',
-						icon: 'none'
-					});
-					console.error('上传失败:', error);
-				} finally {
-					uni.hideLoading();
-				}
-			}
-			// uploadFileToAliyun(filePath) {
-			// 	console.log('filePath', filePath);
-			// 	const loading = uni.showLoading({
-			// 		title: '上传中...',
-			// 		mask: true
-			// 	});
-
-			// 	try {
-			// 		const suffix = filePath.split('.').pop();
-			// 		let req = {
-			// 			prefix: 'resource/',
-			// 			suffix: suffix
-			// 		}
-
-			// 		getAliyunPolicy(req).then(res => {
-			// 			let that = this
-			// 			if (res.code == 0) {
-			// 				const policyData = res.data;
-			// 				console.log('policyData', policyData);
-			// 				const formData = {
-			// 					key: policyData.key,
-			// 					policy: policyData.policy,
-			// 					OSSAccessKeyId: policyData.accessid,
-			// 					signature: policyData.signature,
-			// 					success_action_status: '200',
-			// 					file: {
-			// 						name: policyData.key,
-			// 						uri: filePath
-			// 					}
-			// 				};
-			// 				uni.uploadFile({
-			// 					url: policyData.uploadUrl,
-			// 					filePath: filePath,
-			// 					name: 'file',
-			// 					formData: formData,
-			// 					header: {
-			// 						'Content-Type': 'multipart/form-data'
-			// 					},
-			// 					success(uploadRes) {
-			// 						console.log('uploadRes', uploadRes);
-			// 						if (uploadRes.statusCode === 200) {
-			// 							that.imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
-			// 							uni.showToast({
-			// 								title: '上传成功',
-			// 								icon: 'success'
-			// 							});
-			// 							console.log('imageUrl', that.imageUrl);
-			// 							that.$emit('getFileUrl', that.imageUrl);
-			// 						} else {
-			// 							uni.showToast({
-			// 								title: '上传失败',
-			// 							});
-			// 							return false
-			// 						}
-			// 					},
-			// 					fail(err) {
-			// 						console.log('err', err);
-			// 					}
-			// 				});
-
-			// 			} else {
-			// 				uni.showToast({
-			// 					title: '获取凭证失败',
-			// 				});
-			// 				return false
-			// 			}
-			// 		})
-			// 	} catch (error) {
-			// 		uni.showToast({
-			// 			title: '上传失败',
-			// 			icon: 'none'
-			// 		});
-			// 		console.error('上传失败:', error);
-			// 	} finally {
-			// 		uni.hideLoading();
-			// 	}
-			// },
-		}
-	};
-</script>

+ 0 - 104
pages/admin/Jiazheng/bf/common/kechengLeixing.vue

@@ -1,104 +0,0 @@
-<template>
-	<uni-popup ref="popupKechengLeixingRef" type="top" :animation="false" :is-mask-click="false"
-		mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-filter-page">
-			<view class="icon-title-navBar-box">
-				<view @click="goUpPage" class="nav-bar-icon"></view>
-				<text class="nav-bar-title">筛选</text>
-			</view>
-			<view class="filter-body-box">
-				<radio-group @change="handleChange">
-					<!-- 报证机构 -->
-					<view class="filter-body-radio" v-for="item in data.list">
-						<label class="radio-name-box"
-							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
-							<radio :value="`${item.id}`" :checked="item.checked" activeBackgroundColor="#3fd2a1" style="transform:scale(0.8)"/>
-							{{item.lable}}
-						</label>
-						<view class="phone-radio-group filter-radio-group">
-							<view class="phone-radio-item" v-for="citem in item.children"
-								:class="{radioActive: activeSelect && activeSelect.id == citem.id}"
-								@click.stop="handleSelect(citem,item)">
-								{{citem.lable}}
-							</view>
-						</view>
-					</view>
-				</radio-group>
-			</view>
-			<view class="filter-btn-box">
-				<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
-				<button type="default" class="phone-green-btn filter-btn" @click="handleConfirm">筛选</button>
-			</view>
-		</view>
-	</uni-popup>
-
-
-</template>
-
-<script setup>
-	import {
-		reactive,
-		ref
-	} from "vue";
-
-	const emits = defineEmits(['select', 'reset']);
-	const data = reactive({
-		list: []
-	})
-	const activeSelect = ref(null);
-
-	const popupKechengLeixingRef = ref(null);
-
-	function goUpPage() {
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleConfirm() {
-		emits('select', activeSelect.value)
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleReset() {
-		activeSelect.value = null;
-		emits('reset')
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleChange(myData) {
-		const activeD = myData.detail.value;
-		data.list.forEach(item => {
-			if (item.id != activeD) {
-				item.checked = false
-			} else {
-				item.checked = true;
-				activeSelect.value = item;
-			}
-
-		})
-	}
-
-	function handleSelect(myData) {
-		data.list.forEach(item => {
-			item.checked = false
-		})
-		activeSelect.value = myData;
-	}
-
-	function showPopup({
-		data: myData
-	}) {
-		data.list = myData;
-		popupKechengLeixingRef.value.open('top')
-	}
-
-
-	defineExpose({
-		showPopup
-	})
-</script>
-
-<style lang="scss">
-	.active {
-		color: red
-	}
-</style>

+ 0 - 113
pages/admin/Jiazheng/bf/common/search.vue

@@ -1,113 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <view class="select-jt-box" @click="toggleMenu">
-				<view class="selected-item">{{ selectedOption.label }}</view>
-				<view class="arrow" :class="{ 'arrow-up': isMenuOpen, 'arrow-down': !isMenuOpen }"></view>
-			  </view>
-			  <view class="select-list-box" v-if="isMenuOpen">
-				<view
-				  v-for="(option, index) in options"
-				  :key="option.value"
-				  class="menu-item"
-				  @click="selectOption(option)"
-				>
-				  {{ option.label }}
-				</view>
-			  </view>
-			  <input type="text" class="search-input" v-model="searchInput" :placeholder="searchPlaceholder" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-		<view class="search-clear-box" v-if="searchInput" @click="searchReset">
-			<icon></icon>
-			<text>清空搜索</text>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn','reset-search'])
-const searchPopup = ref(null); // 索引
-
-
-const options = ref([
-	  { label: '全部', value: 1 },
-	  { label: '姓名', value: 2 },
-	  { label: '手机号', value: 3 }
-	]);
-const searchPlaceholder= ref('请输入姓名、手机号等关键字');
-const searchInput= ref('');
-// 存储当前选中的选项对象
-const selectedOption = ref(options.value[0]);
- 
-// 存储菜单是否打开的状态
-const isMenuOpen = ref(false);
- 
-// 切换菜单打开/关闭状态的函数
-const toggleMenu = () => {
-  isMenuOpen.value = !isMenuOpen.value;
-};
- 
-// 选择选项的函数
-const selectOption = (option) => {
-  selectedOption.value = option;
-  searchInput.value = '';
-  if(option.label==="全部"){
-	  searchPlaceholder.value = '请输入姓名、手机号等关键字';
-  }else{
-	  searchPlaceholder.value = '请输入'+ option.label;
-  }
-  
-  isMenuOpen.value = false; // 选择后关闭菜单
-};
-
-function validatePhoneNumber(value){
-	const phoneRegex = /^1[3-9]\d{9}$/;
-	if (phoneRegex.test(value)) {
-		return '手机号';
-	} else {
-		return '姓名';
-	}
-}
-
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	let searchKey = '';
-	if(selectedOption.value.label==="全部"){
-		searchKey = validatePhoneNumber(searchInput.value)
-	}else{
-		searchKey = selectedOption.value.label;
-	}
-	// 搜索 key和 data
-	$emit('search-btn',searchKey,searchInput);
-	searchPopup.value.close();
-}
-
-// 清空搜索
-function searchReset(){
-	searchInput.value = '';
-	$emit('reset-search');
-}
-
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 42
pages/admin/Jiazheng/bf/common/search2.vue

@@ -1,42 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <input type="text" class="search-input" v-model="searchInput" placeholder="请输入课程名称" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn'])
-const searchPopup = ref(null); // 索引
-
-const searchInput= ref('');
- 
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	$emit('search-btn',searchInput);
-	searchPopup.value.close();
-}
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 148
pages/admin/Jiazheng/bf/common/share.vue

@@ -1,148 +0,0 @@
-<template>
-	<button @click="showShareMenu" type="default" class="phone-white-btn bz-tel-btn fx-btn-box">分享</button>
-	<!-- 答题卡 -->
-	<uni-popup ref="downPopupRef" background-color="#fff" :animation="false" :is-mask-click="true" :mask-click="false">
-		<view class="share-haibao-box">
-			<view class="phone-line-title">分享</view>
-			<view class="share-list-box">
-				<view class="share-item-box" @click="getImage">
-					<view class="share-icon-box">
-						<icon></icon>
-					</view>
-					<text>下载图片</text>
-				</view>
-			</view>
-		</view>
-	</uni-popup>
-
-</template>
-
-<script>
-	import {
-		jiazhengSharePic
-	} from "@/api/jiazheng.js"
-	export default {
-		data() {
-			return {
-				imageUrl: ''
-			};
-		},
-		props: {
-			id: {
-				type: Number,
-
-			}
-		},
-		methods: {
-
-			showShareMenu() {
-				this.$refs.downPopupRef.open('bottom')
-			},
-
-			getImage() {
-				console.log('id', this.id);
-				jiazhengSharePic({
-					id: this.id
-				}).then(res => {
-					console.log('res', res);
-					if (res.code == 0 && res.data) {
-						this.imageUrl = res.data
-						this.downloadImage()
-					} else {
-						uni.showToast({
-							title: '获取图片失败',
-							icon: 'none'
-						});
-						return false
-					}
-				})
-			},
-
-
-			downloadImage() {
-				// #ifdef H5
-				this.downloadImageForH5();
-				// #endif
-
-				// #ifdef APP-PLUS
-				this.downloadImageForApp();
-				// #endif
-			},
-
-
-			downloadImageForH5() {
-
-				const link = document.createElement('a');
-				link.href = this.imageUrl;
-				link.download = 'image.jpg';
-				document.body.appendChild(link);
-				link.click();
-				document.body.removeChild(link);
-				uni.showToast({
-					title: '图片已下载,请手动保存到相册。',
-					icon: 'none'
-				});
-			},
-
-			downloadImageForApp() {
-				uni.showLoading({
-					title: '下载中...',
-					mask: true
-				});
-
-				uni.downloadFile({
-					url: this.imageUrl,
-					success: (res) => {
-						if (res.statusCode === 200) {
-							const tempFilePath = res.tempFilePath; // 下载后的临时文件路径
-							this.saveImageToAlbum(tempFilePath); // 保存到相册
-						} else {
-							uni.showToast({
-								title: '下载失败',
-								icon: 'none'
-							});
-						}
-					},
-					fail: (err) => {
-						console.error('下载失败:', err);
-						uni.showToast({
-							title: '下载失败',
-							icon: 'none'
-						});
-					},
-					complete: () => {
-						uni.hideLoading();
-					}
-				});
-			},
-
-
-			saveImageToAlbum(tempFilePath) {
-				// #ifdef APP-PLUS
-				this.saveImage(tempFilePath);
-				// #endif
-			},
-			saveImage(tempFilePath) {
-				uni.saveImageToPhotosAlbum({
-					filePath: tempFilePath,
-					success: () => {
-						uni.showToast({
-							title: '保存成功',
-							icon: 'success'
-						});
-							this.$refs.downPopupRef.close()
-					},
-					fail: (err) => {
-						console.error('保存失败:', err);
-						uni.showToast({
-							title: '保存失败',
-							icon: 'none'
-						});
-							this.$refs.downPopupRef.close()
-					}
-				});
-			}
-		}
-	};
-</script>
-

+ 0 - 711
pages/admin/Jiazheng/bf/gerenZiliao.vue

@@ -1,711 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<!-- 涂层 子家政公司使用 -->
-		<view :class="isZijiazheng=='true'?'mask-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 :disabled="!statusFlag && status=='edit'" type="number" v-model="formData.userName"
-					placeholder="请输入手机号" maxlength="11" />
-			</view>
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>
-				<uni-easyinput :disabled="!statusFlag && status=='edit'" v-model="formData.realName"
-					placeholder="请输入姓名" />
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label">
-					<text class="form-label-require">*</text>
-					<text v-if="formData.idtype ==1">身份证号</text>
-					<text v-if="formData.idtype ==2">护照号</text>
-					<icon @click="idCardChange" class="change-icon">切换</icon>
-				</view>
-				<uni-easyinput :disabled="!statusFlag && status=='edit'" @blur="idCardBlur" v-model="formData.idcard"
-					placeholder="请输入身份证号或护照号" maxlength="18" />
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>生日</view>
-				<uni-datetime-picker type="line" v-model="formData.birthday">
-					<view class="form-radio-select">
-						<view>{{formData.birthday}}</view>
-						<icon></icon>
-					</view>
-				</uni-datetime-picker>
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>籍贯</view>
-				<picker mode="multiSelector" :range="multiArray" :range-key="'label'" :value="multiIndex"
-					@columnchange="bindMultiPickerColumnChange" @change="onPickerConfirm" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>
-							{{formData.jiguanShengName === formData.jiguanShiName ? formData.jiguanShengName  : `${formData.jiguanShengName} ${formData.jiguanShiName}`}}
-						</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>身份证地址</view>
-				<uni-easyinput v-model="formData.hujiDizhi" placeholder="请输入身份证地址" />
-			</view>
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>民族</view>
-				<picker :range="minzuList" mode='selector' :value="formData.minzuIndex" range-key="name"
-					@change="minzuChange" @cancel="minzuCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.minzu.name }}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</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" :selectedIds='formData.xueli.id' 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" :selectedIds='formData.hunyin.id' :showAdd="false"
-					@change="selectChangeHunyinList" />
-			</view>
-
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require"></text>通讯地址</view>
-				<view @click="openMap" class="input-text-row">
-					<view v-if="formData.jingdu&&formData.weidu">{{formData.juzhuDizhi}}</view>
-					<view v-if="formData.jingdu ==''&&formData.weidu ==''">{{formData.juzhuDizhi}} <text
-							v-if="formData.juzhuDizhi" style="color: #3fd2a1;">(无经纬度)</text></view>
-					<icon></icon>
-				</view>
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>星座</view>
-				<picker :range="xingzuoList" mode='selector' :value="formData.xingzuoIndex" range-key="name"
-					@change="xingzuoChange" @cancel="xingzuoCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.xingzuo.name  }}</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="shuxiangList" mode='selector' :value="formData.shuxiangIndex" range-key="name"
-					@change="shuxiangChange" @cancel="shuxiangCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.shuxiang.name  }}</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" :checked="formData.xingzuoFlag" 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" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext" class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit' &&isZijiazheng !='true'" @click="editSave" class="phone-green-btn">保存</button>
-			</view>
-			<uni-popup ref="popupMap" background-color="#fff" :is-mask-click="false" :mask-click="false">
-				<customMap style="100vh" @xuanzeAdress="xuanzeAdress" @currentWeizhi="currentWeizhi" @close="mapClose">
-				</customMap>
-			</uni-popup>
-		</view>
-	</view>
-</template>
-
-<script>
-	import dataChecked from './common/dataChecked.vue';
-	import jiazhengUpload from "./common/jiazhengUpload.vue"
-	import customMap from "@/components/customMap/customMap.vue"
-	import {
-		toast
-	} from "@/utils/common";
-	import {
-		getJiazhengXueli,
-		getJiazhengHunyin,
-		getJiazhengMinzu,
-		getJiazhengShuxiang,
-		getJiazhengXingzuo,
-		getJiazhengJiguan,
-		jiazhengIdcard,
-		jiazhengCheck
-	} from "@/api/jiazheng.js";
-	export default {
-		components: {
-			dataChecked,
-			jiazhengUpload,
-			customMap
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			statusFlag: {
-				type: Boolean,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-			
-		},
-		data() {
-			return {
-				formData: {
-					userName: '',
-					realName: '',
-					idcard: '',
-					icon: '',
-					birthday: '',
-					hujiDizhi: '',
-					idtype: '1',
-					gender: '',
-					juzhuDizhi: '',
-					jingdu: '',
-					weidu: '',
-					shenfenzhengUrl: '',
-					minzu: {},
-					shuxiang: {
-
-					},
-					xingzuo: {
-
-					},
-					hunyin: {
-						name: '',
-
-					},
-					xueli: {
-
-					},
-					jiguanObj: {},
-					jiguanShengId: '',
-					jiguanShiId: '',
-					jiguanShiName: '',
-					jiguanShengName: '',
-					agree: false,
-					xingzuoIndex: 0,
-					minzuIndex: 0,
-					shuxiangIndex: 0,
-					xingzuoFlag: false
-
-				},
-				selectedIds: [],
-				ceshidata: '',
-				xueliList: [],
-				hunyinList: [],
-				shuxiangList: [],
-				xingzuoList: [],
-				minzuList: [],
-				//	areaTree: [],
-				multiArray: [
-					[],
-					[]
-				], // 初始化两列数据
-				multiIndex: [0, 0], // 初始化选中索引
-				allData: [], // 存储后端返回的完整数据
-
-			}
-		},
-		created() {
-
-			console.log('statusFlag', this.statusFlag);
-			uni.showLoading({
-				title: '加载中'
-			});
-			this.initRequests()
-		},
-		methods: {
-			xuanzeAdress(data) {
-				console.log('data', data);
-				this.formData.juzhuDizhi = data
-				this.mapClose()
-			},
-			currentWeizhi(data) {
-				console.log('data', data);
-				this.formData.jingdu = data.lng
-				this.formData.weidu = data.lat
-				this.mapClose()
-			},
-			openMap() {
-				this.$refs.popupMap.open('top')
-			},
-			mapClose() {
-				this.$refs.popupMap.close()
-			},
-			idCardBlur() {
-				let req = {
-					idcard: this.formData.idcard,
-				};
-				jiazhengCheck(req).then(res => {
-					if (res.code == 0) {
-						console.log(res);
-						if (res.data.userId != 0) {
-							this.$nextTick(() => {
-								this.formData.userName = res.data.userName
-								this.formData.realName = res.data.realName
-								this.formData.idcard = res.data.idcard
-								this.formData.idtype = res.data.idtype
-								this.formData.jiguanObj.jiguanShengId = res.data.jiguanShengId
-								this.formData.jiguanShengName = res.data.jiguanShengName
-								this.formData.jiguanObj.jiguanShiId = res.data.jiguanShiId
-								this.formData.jiguanShiName = res.data.jiguanShiName
-								this.formData.juzhuDizhi = res.data.juzhuDizhi
-								this.formData.birthday = res.data.birthday
-								this.formData.minzu = this.dataForId(this.minzuList, res.data.minzu) || ''
-								this.formData.gender = res.data.gender
-								this.formData.xueli = this.dataForId(this.xueliList, res.data.xueli) || ''
-								this.formData.hunyin = this.dataForId(this.hunyinList, res.data.hunyin) ||
-									''
-								this.formData.hujiDizhi = res.data.hujiDizhi
-								this.formData.juzhuDizhi = res.data.juzhuDizhi
-								this.formData.xingzuo = this.dataForId(this.xingzuoList, res.data
-									.xingzuo) || ''
-								this.formData.shuxiang = this.dataForId(this.shuxiangList, res.data
-									.xingzuo) || ''
-								this.formData.xingzuoFlag = res.data.xingzuoFlag
-								this.$emit('idCardBlur', res.data);
-							});
-						} else {
-
-						}
-					} else {
-						this.$message.error('');
-						return false;
-					}
-				});
-			},
-
-
-			async initRequests() {
-				try {
-					await Promise.all([
-						this.getXueli(),
-						this.getHunyin(),
-						this.getMinzu(),
-						this.getXingzuo(),
-						this.getShuxiang(),
-						this.getJiguan(),
-					]);
-					uni.hideLoading();
-					if (this.status == 'edit') {
-						this.$emit('finishDom', 'gerenZiliao');
-					}
-				} catch (e) {
-					uni.hideLoading();
-					uni.showToast({
-						title: `请求失败!`,
-						icon: 'none',
-						duration: 2000
-					})
-				}
-			},
-			editinfo(data) {
-				this.$nextTick(() => {
-					this.formData.userName = data.userName
-					this.formData.realName = data.realName
-					this.formData.idcard = data.idcard
-					this.formData.jingdu = data.jingdu
-					this.formData.weidu = data.weidu
-					this.formData.idtype = data.idtype
-					this.formData.jiguanObj.jiguanShengId = data.jiguanShengId
-					this.formData.jiguanShengName = data.jiguanShengName
-					this.formData.jiguanObj.jiguanShiId = data.jiguanShiId
-					this.formData.jiguanShiName = data.jiguanShiName
-					this.formData.juzhuDizhi = data.juzhuDizhi
-					this.formData.birthday = data.birthday
-					this.formData.minzu = this.dataForId(this.minzuList, data.minzu) || ''
-					this.formData.gender = data.gender
-					this.formData.xueli = this.dataForId(this.xueliList, data.xueli) || ''
-					this.formData.hunyin = this.dataForId(this.hunyinList, data.hunyin) || ''
-					this.formData.hujiDizhi = data.hujiDizhi
-					this.formData.juzhuDizhi = data.juzhuDizhi
-					this.formData.xingzuo = this.dataForId(this.xingzuoList, data.xingzuo) || ''
-					this.formData.shuxiang = this.dataForId(this.shuxiangList, data.xingzuo) || ''
-					this.formData.xingzuoFlag = data.xingzuoFlag
-
-				})
-			},
-			dataForId(list, id) {
-				return list.find(item => item.id == id);
-			},
-
-			idCardChange(data) {
-				this.formData.idtype = this.formData.idtype == 1 ? 2 : 1;
-			},
-			getJiguan() {
-				getJiazhengJiguan({}).then(res => {
-					//	this.areaTree = res.data
-					//	this.pickerData = this.formatData(res.data);
-					this.allData = res.data;
-					const provinces = this.allData.map(province => ({
-						label: province.lable,
-						value: province.id,
-						children: province.children,
-					}));
-
-					const cities = this.allData[0].children.map(city => ({
-						label: city.lable,
-						value: city.id,
-					}));
-					// 回显已选中的城市(假设已选中的城市 id 是 1301)
-					//this.setSelectedCity(1301);
-
-					this.multiArray = [provinces, cities];
-					//console.log('this.pickerData', this.pickerData);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-
-
-
-			bindMultiPickerColumnChange(e) {
-				const {
-					column,
-					value
-				} = e.detail;
-
-				// 更新 multiIndex
-				this.multiIndex[column] = value;
-
-				// 如果是第一列(省份)发生变化,更新第二列(城市)
-				if (column === 0) {
-					const selectedProvince = this.multiArray[0][value];
-					const cities = selectedProvince.children.map(city => ({
-						label: city.lable,
-						value: city.id,
-					}));
-
-					// 更新 multiArray 和 multiIndex
-					this.multiArray[1] = cities;
-					this.multiIndex[1] = 0; // 重置城市列为第一个选项
-				}
-
-				// 强制更新视图
-				//this.$forceUpdate();
-			},
-			// 确认选择时获取完整数据
-			onPickerConfirm() {
-				const [provinceIndex, cityIndex] = this.multiIndex;
-
-				const selectedProvince = this.multiArray[0][provinceIndex];
-				const selectedCity = this.multiArray[1][cityIndex];
-				console.log("选中的省份完整数据:", selectedProvince);
-				console.log("选中的城市完整数据:", selectedCity);
-				this.formData.jiguanShengId = selectedProvince ? selectedProvince.value : ''
-				this.formData.jiguanShiId = selectedCity ? selectedCity.value : ''
-				this.formData.jiguanShiName = selectedCity ? selectedCity.label : ''
-				this.formData.jiguanShengName = selectedProvince ? selectedProvince.label : ''
-				this.formData.jiguanObj.jiguanShengId = selectedProvince ? selectedProvince.value : ''
-				this.formData.jiguanObj.jiguanShiId = selectedCity ? selectedCity.value : ''
-
-			},
-			setSelectedCity(cityId) {
-				for (let i = 0; i < this.allData.length; i++) {
-					const province = this.allData[i];
-					for (let j = 0; j < province.children.length; j++) {
-						const city = province.children[j];
-						if (city.id === cityId) {
-							// 设置选中的省份和城市索引
-							this.multiIndex = [i, j];
-
-							// 更新 multiArray 的第二列(城市)
-							const cities = province.children.map(city => ({
-								label: city.lable,
-								value: city.id,
-							}));
-							this.multiArray[1] = cities;
-
-							// 强制更新视图
-							this.$forceUpdate();
-							return;
-						}
-					}
-				}
-			},
-
-			checkAllFields() {
-				const requiredFields = [{
-						key: 'userName',
-						name: '手机号'
-					},
-					{
-						key: 'realName',
-						name: '姓名'
-					},
-					{
-						key: 'idcard',
-						name: '身份证号'
-					},
-					{
-						key: 'birthday',
-						name: '生日'
-					},
-					// {
-					// 	key: 'hometown',
-					// 	name: '家乡',
-					// 	type: 'array'
-					// },
-					// {
-					// 	key: 'hujiDizhi',
-					// 	name: '身份证地址'
-					// },
-					{
-						key: 'gender',
-						name: '性别'
-					},
-					// {
-					// 	key: 'juzhuDizhi',
-					// 	name: '通讯地址'
-					// },
-					{
-						key: 'minzu',
-						name: '民族',
-						type: 'object'
-					},
-					{
-						key: 'jiguanObj',
-						name: '籍贯',
-						type: 'object'
-					},
-					{
-						key: 'xueli',
-						name: '学历',
-						type: 'object'
-					},
-					// {
-					// 	key: 'shuxiang',
-					// 	name: '属相',
-					// 	type: 'object'
-					// },
-					// {
-					// 	key: 'xingzuo',
-					// 	name: '星座',
-					// 	type: 'object'
-					// },
-				]
-
-				for (const field of requiredFields) {
-					const value = this.formData[field.key]
-
-					// 根据不同类型进行存在验证
-					if (field.type === 'array' && !value?.length) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (field.type === 'object' && !Object.keys(value).length) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (field.type === 'boolean' && value !== true) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (!field.type && !value?.toString().trim()) {
-						this.showAlert(field.name)
-						return false
-					}
-				}
-				return true
-			},
-			showAlert(fieldName) {
-				uni.showToast({
-					title: `${fieldName}不能为空`,
-					icon: 'none',
-					duration: 2000
-				})
-			},
-
-			getXueli() {
-				getJiazhengXueli({}).then(res => {
-					this.xueliList = res.data
-					//	console.log('xueliList', this.xueliList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getXingzuo() {
-				getJiazhengXingzuo({}).then(res => {
-					this.xingzuoList = res.data
-					//			console.log('xingzuoList', this.xingzuoList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getShuxiang() {
-				getJiazhengShuxiang({}).then(res => {
-					this.shuxiangList = res.data
-					//		console.log('shuxiangList', this.shuxiangList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getHunyin() {
-				getJiazhengHunyin({}).then(res => {
-					this.hunyinList = res.data
-					//	console.log('hunyinList', this.hunyinList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getMinzu() {
-				getJiazhengMinzu({}).then(res => {
-					this.minzuList = res.data
-					//		console.log('minzuList', this.minzuList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getFileUrl(data) {
-				this.formData.shenfenzhengUrl = data
-				console.log('data', data);
-				jiazhengIdcard({
-					url: this.formData.shenfenzhengUrl
-				}).then(res => {
-					console.log('res', res);
-					if (res.code == 0) {
-
-
-
-
-						this.formData.realName = res.data.name
-						this.formData.idtype = '1'
-						this.formData.gender = res.data.genderId
-						this.formData.minzu.name = res.data.minzuName
-						this.formData.minzu.id = res.data.minzuId
-						this.formData.birthday = res.data.birthDate
-						this.formData.hujiDizhi = res.data.address
-						this.formData.idcard = res.data.idNumber
-						this.formData.shuxiang.id = res.data.shuxiangId
-						this.formData.shuxiang.name = res.data.shuxiangName
-						this.formData.xingzuo.id = res.data.xingzuoId
-						this.formData.xingzuo.name = res.data.xingzuoName
-						this.formData.jiguanShengId = res.data.jiguanShengId
-						this.formData.jiguanShiId = res.data.jiguanShiId
-						this.formData.jiguanShengName = res.data.jiguanShengName
-						this.formData.jiguanShiName = res.data.jiguanShiName
-						this.formData.jiguanObj.jiguanShengId = res.data.jiguanShengId
-						this.formData.jiguanObj.jiguanShiId = res.data.jiguanShiId
-					}
-				})
-			},
-			minzuChange(e) {
-				const index = e.detail.value
-				this.formData.minzu = this.minzuList[index]
-				//console.log('this.formData.minzu', this.formData.minzu);
-
-			},
-			minzuCancel() {
-				this.formData.minzuIndex = 0
-			},
-			xingzuoChange(e) {
-				const index = e.detail.value
-				this.formData.xingzuo = this.xingzuoList[index]
-				//	console.log('this.formData.xingzuo', this.formData.xingzuo);
-
-			},
-			xingzuoCancel() {
-				this.formData.xingzuoIndex = 0
-			},
-			shuxiangChange(e) {
-				const index = e.detail.value
-				this.formData.shuxiang = this.shuxiangList[index]
-				//console.log('this.formData.shuxiang', this.formData.shuxiang);
-
-			},
-			shuxiangCancel() {
-				this.formData.shuxiangIndex = 0
-			},
-			selectChangeXueliList(data) {
-				if (data.length > 0) {
-					this.formData.xueli = data[0]
-				} else {
-					this.formData.xueli = {}
-				}
-			},
-			genderSelect(data) {
-				if (!this.statusFlag && this.status == 'edit ') {
-					toast("非未办证状态,禁止修改")
-					return false
-				}
-				this.formData.gender = data
-			},
-			selectChangeHunyinList(data) {
-				console.log('data', data[0]);
-				if (data.length > 0) {
-					this.formData.hunyin = data[0]
-				} else {
-					this.formData.hunyin = {}
-				}
-
-			},
-			switchXingzuoChange(e) {
-				this.formData.xingzuoFlag = e.detail.value
-			},
-			goNext() {
-				console.log('formData', this.formData);
-
-				if (!this.checkAllFields()) {
-					return false
-				}
-				if (!this.formData.agree) {
-					uni.showToast({
-						title: "请勾选本人同意!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$emit('goNext', this.formData, 0);
-			},
-			editSave() {
-				console.log('formData', this.formData);
-
-				if (!this.checkAllFields()) {
-					return false
-				}
-				if (!this.formData.agree) {
-					uni.showToast({
-						title: "请勾选本人同意!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$emit('editSave', this.formData);
-			},
-
-			handleAgree(e) {
-				this.formData.agree = e.detail.value.length > 0
-			},
-		}
-	}
-</script>

+ 0 - 516
pages/admin/Jiazheng/bf/index.vue

@@ -1,516 +0,0 @@
-<template>
-	<view class="admin-jiazheng-list">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-			<uni-icons class="nav-bar-right-icon bar-ml10" type="search" size="20" @click="toggle('top')"></uni-icons>
-		</view>
-		<view v-if="isZijiazhengFlag !='true'" class="jiazheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text class="select-text">{{data.zyName}}</text>
-				<icon :class="allJtClass" />
-			</view>
-
-			<view class="jiazheng-search-right">
-				<!--  当前点击 增加 saixuan-active-->
-				<view @click="updateTimeClick" :class="shaixuanStyleUpdate">
-					<text>更新时间</text>
-					<icon :class="updataJtClass" />
-				</view>
-				<view @click="luruTimeClick" :class="shaixuanStyleluru">
-					<!-- class切换  saixuan-jt-default  saixuan-jt-click-->
-					<text>录入时间</text>
-					<icon :class="luruJtClass" />
-				</view>
-				<view @click="juliClick" :class="shaixuanStylejuli">
-					<!-- class切换  saixuan-jt-default  saixuan-jt-click-->
-					<text :class="data.weizhiFlag?'':'saixuan-disabled'">距离排序</text>
-					<icon :class="juliJtClass" />
-				</view>
-			</view>
-		</view>
-		<view class="all-type-box" v-show="isOpen" @click="clickAlltype">
-			<dataChecked :list="allType" mode="single" :defaultCount="99" :showAdd="false"
-				@change="selectChangeSkill" />
-		</view>
-		<view v-if="isZijiazhengFlag !='true'" class="jz-new-btn-box">
-			<button type="default" class="phone-green-btn" @click="addJiazhengRenyuan">新增人员</button>
-		</view>
-		<view>
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" @scrolltolower="onScrolltolower" refresher-background="transparent"
-				@refresherrefresh="onRefresh" class="jz-scroll-view">
-				<uni-list class="admin-list-box">
-
-					<uni-list-item v-for="item in data.list" class="jz-list-item-box">
-						<template v-slot:body>
-							<view v-if="isZijiazhengFlag !='true'" class="card-head-row">
-								<view class="head-name">{{item.realName}}</view>
-								<button type="default" class="phone-green-btn bz-bind-btn"
-									@click.stop="kechengBind(item)">课程绑定</button>
-								<button type="default" class="phone-green-btn bz-tel-btn"
-									@click.stop="telephone(item)">打电话</button>
-								<share :id="item.id" ref="shareRef">分享</share>
-
-							</view>
-							<view @click="lookUserInfo(item)" class="card-body-row">
-								<view class="card-img-box">
-									<img :src="item.icon" v-if="item.icon">
-									<icon class="phone-default-userImg" v-else></icon>
-								</view>
-								<view class="body-content-row">
-									<view class="content-text-row">
-										<view> {{item.age}}岁<text v-if="item.jingyan"> | {{item.jingyan}}经验</text>
-										</view>
-										<view class="text-status">{{item.zhuangtai}}</view>
-									</view>
-									<view class="content-text-row">
-										{{item.jiguanShengName === item.jiguanShiName ? item.jiguanShengName  : `${item.jiguanShengName} ${item.jiguanShiName}`}}人
-									</view>
-
-									<view v-if="item.zyNames.length>0" class="content-lx-box">
-										<view class="content-lx-item" v-for="item2 in item.zyNames" :key="item2">
-											{{item2}}
-										</view>
-									</view>
-									<!-- <view class="content-text-row">{{item.jiguan}}</view> -->
-								</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>
-		<view>
-			<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn"
-				@reset-search="dialogSearchReset"></search-dialog>
-		</view>
-		<customTabbarAdminVue :current-tab="1"></customTabbarAdminVue>
-	</view>
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		getJiazhengList,
-		getJiazhengJineng,
-		getJiazhengZhiyeAll,
-		getJiazhengLeixing
-	} from "@/api/jiazheng.js"
-	import dataChecked from './common/dataChecked.vue';
-	import searchDialog from "./common/search.vue";
-	import share from "./common/share.vue";
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	const searchDialogRef = ref(null);
-	const shareRef = ref(null);
-	let allType = ref([])
-	let data = reactive({
-		zyId: '',
-		zyName: '全部职业',
-		page: 0,
-		size: 10,
-		realName: '',
-		sortRule: '', //排序规则(1降序,2升序
-		sortRule: '', //排序类型(1更新时间,2录入时间)
-		userName: '',
-		weidu: '',
-		jingdu: '',
-		weizhiFlag: false,
-		id: '',
-		list: [], // 考试列表
-		loading: false,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		}
-	})
-	let isOpen = ref(false)
-	let isZijiazhengFlag = ref('false')
-	let defauleImg = ref('@/static/images/my/user-default-img.png')
-	const allJtClass = 'select-jt-default';
-	let updataJtClass = ref('');
-	let luruJtClass = ref('');
-	let juliJtClass = ref('');
-	let shaixuanStyleUpdate = ref('saixuan-item-box');
-	let shaixuanStyleluru = ref('saixuan-item-box');
-	let shaixuanStylejuli = ref('saixuan-item-box');
-	const isOpenSelect = ref(false);
-	const selectedOption = ref('');
-	let isFirstClickUpdate = ref('true')
-	let isFirstClickluru = ref('true')
-	let isFirstClickjuli = ref('true')
-	let userIdList = ref(null)
-	let listIds = ref(null)
-	let startDate = ref(null)
-	let endDate = ref(null)
-	let from = ref(null)
-	let jzId = ref(null)
-
-	function updateTimeClick() {
-		data.sortType = 1
-		const isFirst = isFirstClickUpdate.value == 'true';
-		const isSecond = isFirstClickUpdate.value == 'false';
-		if (isFirst) {
-			shaixuanStyleUpdate.value = 'saixuan-item-box saixuan-active';
-			updataJtClass.value = 'saixuan-jt-default';
-			isFirstClickUpdate.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStyleUpdate.value = 'saixuan-item-box saixuan-active';
-			updataJtClass.value = 'saixuan-jt-click';
-			isFirstClickUpdate.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStyleUpdate.value = 'saixuan-item-box';
-			updataJtClass.value = '';
-			isFirstClickUpdate.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function onScrolltolower() {
-		getMore()
-	}
-
-
-	function luruTimeClick() {
-		data.sortType = 2
-		const isFirst = isFirstClickluru.value == 'true';
-		const isSecond = isFirstClickluru.value == 'false';
-		if (isFirst) {
-			shaixuanStyleluru.value = 'saixuan-item-box saixuan-active';
-			luruJtClass.value = 'saixuan-jt-default';
-			isFirstClickluru.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStyleluru.value = 'saixuan-item-box saixuan-active';
-			luruJtClass.value = 'saixuan-jt-click';
-			isFirstClickluru.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStyleluru.value = 'saixuan-item-box';
-			luruJtClass.value = '';
-			isFirstClickluru.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function juliClick() {
-		if (!data.weizhiFlag) {
-			uni.showToast({
-				title: `当前位置经纬度获取失败,请重新进入该页面!`,
-				icon: 'none',
-				duration: 2000
-			})
-			return false
-		}
-		data.sortType = 3
-		const isFirst = isFirstClickjuli.value == 'true';
-		const isSecond = isFirstClickjuli.value == 'false';
-		if (isFirst) {
-			shaixuanStylejuli.value = 'saixuan-item-box saixuan-active';
-			juliJtClass.value = 'saixuan-jt-default';
-			isFirstClickjuli.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStylejuli.value = 'saixuan-item-box saixuan-active';
-			juliJtClass.value = 'saixuan-jt-click';
-			isFirstClickjuli.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStylejuli.value = 'saixuan-item-box';
-			juliJtClass.value = '';
-			isFirstClickjuli.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function dialogSearchBtn(name, searchData) {
-		switch (name) {
-			case '姓名':
-				dialogSearchReset();
-				data.realName = searchData.value;
-				break;
-			case '手机号':
-				data.userName = searchData.value;
-				break;
-		}
-		data.page = 0;
-		refreshData();
-
-	}
-
-	function dialogSearchReset() {
-		data.userName = '';
-		data.realName = '';
-	}
-	const clickAlltype = (data) => {
-		isOpen.value = !isOpen.value;
-	}
-
-	const toggle = (data, index) => {
-		searchDialogRef.value.handleShow();
-	}
-	const addJiazhengRenyuan = () => {
-		let pageInfo = {
-			status: 'add'
-		}
-		uni.redirectTo({
-			url: "/pages/admin/Jiazheng/jiazhengUserManager?pageInfo=" + JSON.stringify(pageInfo)
-		})
-	}
-	const lookUserInfo = (data) => {
-		let pageInfo = {
-			status: 'edit',
-			id: data.id,
-			userId: data.userId,
-			isZijiazheng: isZijiazhengFlag.value,
-			from: from.value,
-			endDate: endDate.value,
-			startDate: startDate.value,
-			jzId: jzId.value,
-			userIdList: userIdList.value ? userIdList.value : "",
-			listIds: listIds.value ? listIds.value : "",
-			
-		}
-		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/jiazhengUserInfo?pageInfo=` + JSON.stringify(pageInfo)
-		})
-	}
-
-	function goUpPage() {
-		if (from.value == 'zijiazhenggongsi') {
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/index?${originalParams}`
-			})
-		}else if (from.value == 'banzhengshuliang'){
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&listIds=${listIds.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/banzhengshuliang?${originalParams}`
-			})
-		}else if (from.value == 'yibanzhengshuliang'){
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&listIds=${listIds.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/yibanzhengshuliang?${originalParams}`
-			})
-		} else {
-			uni.redirectTo({
-				url: `/pages/admin/ShouYe/shouye`
-			})
-		}
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function telephone(data) {
-		console.log('data', data);
-		if (data.userName) {
-			uni.makePhoneCall({
-				phoneNumber: data.userName
-			});
-		} else {
-			uni.showToast({
-				title: `无电话号`,
-				icon: 'none',
-				duration: 2000
-			})
-			return false
-		}
-
-	}
-
-	function kechengBind(data) {
-		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/kechengBind?id=` + data.id
-		})
-	}
-
-	function selectChangeSkill(item) {
-		if (item.length > 0) {
-			data.zyId = item[0].id
-			data.zyName = item[0].name
-			console.log('selectChangeSkill', item);
-			data.page = 0;
-			refreshData()
-		}
-	}
-	const convertToArray = (str) => str.split(',').map(item => item.trim());
-
-	function refreshData() {
-		const opt = {
-			"zyId": data.zyId == '全部职业' ? '' : data.zyId,
-			"page": 1,
-			"realName": data.realName,
-			"size": 10,
-			"sortRule": data.sortRule,
-			"sortType": data.sortType,
-			"userName": data.userName,
-			"jingdu": data.jingdu,
-			"weidu": data.weidu,
-			"jzId": jzId.value,
-			"userIdList": userIdList.value ? convertToArray(userIdList.value) : []
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getJiazhengList(opt).then(res => {
-			data.list = data.list.concat(res.data.data);
-			data.list = data.list.map(item => {
-				const newItem = {
-					...item
-				};
-				if (item.zyNames == '') {
-					newItem.zyNames = []
-				} else {
-					newItem.zyNames = item.zyNames.split(',');
-				}
-				return newItem;
-			})
-			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 = {
-			"zyId": data.zyId == '全部职业' ? '' : data.zyId,
-			"page": 1,
-			"realName": data.realName,
-			"size": 10,
-			"sortRule": data.sortRule,
-			"sortType": data.sortType,
-			"userName": data.userName,
-			"jingdu": data.jingdu,
-			"weidu": data.weidu,
-			"jzId": jzId.value,
-			"userIdList": userIdList.value ? convertToArray(userIdList.value) : []
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getJiazhengList(opt).then(res => {
-
-			data.list = data.list.concat(res.data.data);
-			data.list = data.list.map(item => {
-				const newItem = {
-					...item
-				};
-				// if(item.zyNames ==''){
-				// 	newItem.zyNames = []
-				// }else{
-				// newItem.zyNames = item.zyNames.split(',');
-				// }
-				// 处理 zyNames 字段
-				if (typeof newItem.zyNames !== 'string') {
-					newItem.zyNames = [];
-				} else {
-					newItem.zyNames = newItem.zyNames.trim() == '' ? [] : newItem.zyNames.split(',');
-				}
-				return newItem;
-			})
-			console.log('data.list', data.list);
-			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 getLeixing() {
-		let req = {}
-		getJiazhengZhiyeAll(req).then(res => {
-			res.data.unshift({
-				id: '',
-				name: '全部职业'
-			});
-			allType = res.data
-			//	allType = dataConversionObject(res.data)
-			console.log('allType', allType);
-		})
-	}
-
-	function dataConversionObject(data) {
-		let newList
-		newList = data.map((name, index) => ({
-			id: index,
-			name: name
-		}));
-		return newList
-	}
-
-	function getCurrentWeizhi() {
-		console.log('1231231');
-		uni.getLocation({
-			type: 'wgs84',
-			success: function(res) {
-				console.log('res', res)
-				data.jingdu = res.longitude
-				data.weidu = res.latitude
-				data.weizhiFlag = true
-				console.log('当前位置的经度:' + res.longitude);
-				console.log('当前位置的纬度:' + res.latitude);
-			}
-		});
-	}
-	onLoad((options) => {
-		if (options && options.isZijiazheng == 'true') {
-			isZijiazhengFlag.value = 'true'
-			userIdList.value = options.userIdList
-			listIds.value = options.listIds
-			startDate.value = options.startDate
-			endDate.value = options.endDate
-			from.value = options.from
-			jzId.value = options.jzId
-			console.log('userIdList.value', userIdList.value);
-		}
-		getMore()
-		getLeixing()
-		getCurrentWeizhi()
-	})
-</script>

+ 0 - 204
pages/admin/Jiazheng/bf/jiazhengUserInfo.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="phone-jianli-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员信息</text>
-			<!-- 删除↓ wgy看这 -->
-			<i class="nav-bar-right-icon right-icon-delete-btn" @click="deleteUser"></i>
-		</view>
-		<view class="jianli-wrap-box">
-			<view class="jianli-head-box">
-				<view class="head-img-box">
-					<img class="head-img" :src="jianliInfo.icon" v-if="jianliInfo.icon">
-					<icon class="phone-default-userImg" v-else></icon>
-					<view class="head-status" v-if="jianliInfo.zhuangtai">{{jianliInfo.zhuangtai}}</view>
-				</view>
-				<view class="head-content-box">
-					<view class="name-row">{{jianliInfo.realName}}</view>
-					<view>
-						{{jianliInfo.jiguanShengName === jianliInfo.jiguanShiName ? jianliInfo.jiguanShengName  : `${jianliInfo.jiguanShengName} ${jianliInfo.jiguanShiName}`}}人
-					</view>
-					<view>
-						<text>{{jianliInfo.nianling}}岁</text>
-						<text v-if="jianliInfo.jingyan"> | {{jianliInfo.jingyan}}</text>
-					</view>
-				</view>
-			</view>
-
-			<view class="jianli-body-box">
-				<view v-if="jianliInfo.zyNames" class="leixing-row">
-					<view class="jbxx-label">职 业:</view>
-					<text class="leixing-content">{{jianliInfo.zyNames}}</text>
-				</view>
-				<view class="body-jbxx-box">
-					<view class="jbxx-title">基本信息</view>
-					<view>
-						<view class="jbxx-label">学 历:</view>{{jianliInfo.xueli}}
-					</view>
-					<view>
-						<view class="jbxx-label">民 族:</view>{{jianliInfo.minzu}}
-					</view>
-					<view v-if="jianliInfo.xingzuoFla =='true'">
-						<view class="jbxx-label">属 相:</view>{{jianliInfo.shuxiang}}
-					</view>
-					<view v-if="jianliInfo.xingzuoFla =='true'">
-						<view class="jbxx-label">星 座:</view>{{jianliInfo.xingzuo}}
-					</view>
-					<view>
-						<view class="jbxx-label">性 别:</view>{{jianliInfo.gender}}
-					</view>
-					<view>
-						<view class="jbxx-label">婚姻状况:</view>{{jianliInfo.hunyin}}
-					</view>
-					<view>
-						<view class="jbxx-label">现住地址:</view>{{jianliInfo.juzhuDizhi}}
-					</view>
-					<view>
-						<view class="jbxx-label">家政公司:</view>{{jianliInfo.jzName}}
-					</view>
-				</view>
-			</view>
-			<view class="jbxx-tip">{{jianliInfo.tips}} </view>
-			<view class="jianli-bottom-box">
-				<view @click="goJiazhengManage">
-					<icon class="bottom-icon zl-icon"></icon>
-					<text class="bottom-text">资料编辑</text>
-				</view>
-				<view @click="callPhone">
-					<icon class="bottom-icon tel-icon"></icon>
-					<text class="bottom-text">拨打电话</text>
-				</view>
-			</view>
-		</view>
-		<common-dialog ref="deleteDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-	</view>
-</template>
-<script>
-	import {
-		ref
-	} from "vue";
-	import {
-		getJiazhengJianli,
-		jiazhengUserDelete
-	} from "@/api/jiazheng.js";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	export default {
-		data() {
-			return {
-				pageInfo: {},
-				jianliInfo: {},
-				deleteConcent: '你确定要执行这个操作吗?',
-				deleteTitle: '删除',
-				deleteIndex: '',
-			}
-		},
-		components: {
-			commonDialog
-		},
-		onLoad(options) {
-			let data = JSON.parse(options.pageInfo)
-			this.pageInfo.status = data.status
-			this.pageInfo.id = data.id
-			this.pageInfo.userId = data.userId
-			this.pageInfo.from = data.from
-			this.pageInfo.isZijiazheng = data.isZijiazheng
-			this.pageInfo.userIdList = data.userIdList
-			this.pageInfo.listIds = data.listIds
-			this.pageInfo.startDate = data.startDate
-			this.pageInfo.endDate = data.endDate
-			this.pageInfo.from = data.from
-			this.pageInfo.jzId = data.jzId
-			this.getJianliInfo()
-		},
-		methods: {
-			deleteUser() {
-				this.$refs.deleteDialogRef.handleShow()
-			},
-			deleteQuerenBtn() {
-				jiazhengUserDelete({
-					ids: [this.pageInfo.id]
-				}).then(res => {
-					if (res.code == 0) {
-						uni.showToast({
-							title: "成功",
-							icon: 'none',
-							duration: 2000
-						})
-						this.goUpPage()
-					}
-				})
-			},
-			getJianliInfo() {
-				let req = {
-					id: this.pageInfo.id,
-					userId: this.pageInfo.userId
-				}
-				getJiazhengJianli(req).then(res => {
-					console.log('res', res);
-					if (res.code == 0) {
-						this.jianliInfo = {
-							...res.data
-						};
-						// if(this.jianliInfo.zyNames){
-							
-						// }
-					}
-				})
-			},
-			callPhone() {
-				if (this.jianliInfo.userName) {
-					uni.makePhoneCall({
-						phoneNumber: this.jianliInfo.userName
-					});
-				} else {
-					uni.showToast({
-						title: `无电话号`,
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-
-			},
-			goJiazhengManage() {
-				let pageInfo = {
-					status: 'edit',
-					id: this.pageInfo.id,
-					userId: this.pageInfo.userId,
-					isZijiazheng:this.pageInfo.isZijiazheng,
-					userIdList:this.pageInfo.userIdList,
-					listIds:this.pageInfo.listIds,
-					startDate:this.pageInfo.startDate,
-					endDate:this.pageInfo.endDate,
-					from:this.pageInfo.from,
-					jzId:this.pageInfo.jzId,
-				}
-				uni.redirectTo({
-					url: "/pages/admin/Jiazheng/jiazhengUserManager?pageInfo=" + JSON.stringify(pageInfo)
-				})
-			},
-			goUpPage() {
-				if (this.pageInfo.from == 'banzheng') {
-					uni.redirectTo({
-						url: "/pages/admin/banzheng/list"
-					})
-				} else {
-					uni.redirectTo({
-					  url: "/pages/admin/Jiazheng/index" +
-					       "?isZijiazheng=" + this.pageInfo.isZijiazheng +
-					       "&userIdList=" + this.pageInfo.userIdList+
-					       "&listIds=" + this.pageInfo.listIds+
-					       "&startDate=" + this.pageInfo.startDate+
-					       "&endDate=" + this.pageInfo.endDate+
-					       "&from=" + this.pageInfo.from+
-					       "&jzId=" + this.pageInfo.jzId
-					})
-
-				}
-
-			},
-
-		}
-	}
-</script>

+ 0 - 801
pages/admin/Jiazheng/bf/jiazhengUserManager.vue

@@ -1,801 +0,0 @@
-<template>
-	<view class="admin-jiazheng-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-		</view>
-		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" field="name"
-			class="admin-tab-box"></v-tabs>
-		<gerenZiliao ref="gerenZiliao" :status='status' :isZijiazheng='isZijiazheng' :statusFlag="statusFlag"
-			@idCardBlur="idCardBlur" @finishDom='finishDom' @editSave="editSaveGerenziliao" @goNext="gerenziliaoNext"
-			v-show="current ==0">
-		</gerenZiliao>
-		<qiuzhiXinxi ref="qiuzhiXinxi" :isZijiazheng='isZijiazheng' :status='status' @editSave="editSaveQiuzhixinxi"
-			@goNext="goNextQiuzhixinxi" v-show="current ==1">
-		</qiuzhiXinxi>
-		<zhaopianZiliao ref="zhaopianZiliao" :isZijiazheng='isZijiazheng' :status='status' :statusFlag="statusFlag"
-			@editSave="editSaveZhaopianziliao" @goNext="goNextZhaopianZiliao" v-show="current ==2"></zhaopianZiliao>
-		<banzhengXinxi ref="banzhengXinxi" :isZijiazheng='isZijiazheng' :status='status' @goBack="goBack"
-			@addEdit='addEdit' @addSave="addSave" @addSavePiliang="addSavePiliang" @editSave="editSave"
-			@editSavePiliang="editSavePiliang" v-show="banzhengXinxiFlag">
-		</banzhengXinxi>
-		<banzhengXinxiList :isZijiazheng='isZijiazheng' :status='status' :list="editInfo.kaozhengList"
-			v-show="current ==3&&!banzhengXinxiFlag&&!banzhengXinxiFlagPiliang" @saveBanzheng="saveBanzheng"
-			@editBanzheng="editBanzheng" @addBanzheng="addBanzheng" @addBanzhengPiliang="addBanzhengPiliang"
-			@deleteBanzheng="deleteBanzheng" ref="banzhengXinxiList">
-		</banzhengXinxiList>
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-	</view>
-</template>
-
-<script>
-	import {
-		ref
-	} from "vue";
-	import banzhengXinxi from './banzhengXinxi.vue';
-	import banzhengXinxiList from './banzhengXinxiList.vue';
-	import qiuzhiXinxi from './qiuzhiXinxi.vue';
-	import zhaopianZiliao from './zhaopianZiliao.vue';
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import gerenZiliao from './gerenZiliao.vue';
-	import {
-		getJiazhengInfo,
-		jiazhengAdd,
-		jiazhengUpdate,
-		jiazhengKaozhengAdd,
-		jiazhengKaozhengAdds,
-		jiazhengKaozhengDelete,
-		jiazhengKaozhengUpdate
-	} from "@/api/jiazheng.js";
-	export default {
-		data() {
-			return {
-				current: 0,
-				//	tabs: ['个人资料', '求职信息', '照片资料', '办证信息']
-				tabs: [],
-				allData: {
-					"birthday": "",
-					"gender": '',
-					"hujiDizhi": "",
-					"hunyin": '',
-					"icon": "",
-					"idcard": "",
-					"idcardUrl1": "",
-					"idcardUrl2": "",
-					"idtype": '',
-					"jiankangDate": "",
-					"jibiexinzi": "",
-					"jiguanShengId": '',
-					"jiguanShiId": '',
-					"jineng": "",
-					"jingli": "",
-					"jingyan": "",
-					"juzhuDizhi": "",
-					"kaozhengList": [],
-					//"leixing": "",
-					"minzu": '',
-					"qiwangxinzi": "",
-					"realName": "",
-					"shenghuoUrls": "",
-					"shuxiang": '',
-					"tijianDate": "",
-					"tijianUrls": "",
-					"userId": '',
-					"userName": "",
-					"xingzuo": '',
-					"xingzuoFlag": false,
-					"xueli": '',
-					"zhengshuUrls": "",
-					"zhuangtai": '',
-					"jingdu": '',
-					"weidu": ''
-
-				},
-				status: '',
-				isPiliang: '',
-				id: '',
-				userId: '',
-				banzhengXinxiFlag: false,
-				banzhengXinxiFlagPiliang: false,
-				editInfo: {},
-				deleteConcent: '你确定要执行这个操作吗?',
-				deleteTitle: '删除',
-				deleteIndex: '',
-				deleteId: '',
-				from: '',
-				statusFlag: null,
-				isZijiazheng: "false",
-				userIdList: '',
-				listIds: '',
-				startDate: '',
-				endDate: '',
-				jzId: '',
-			}
-		},
-		components: {
-			banzhengXinxi,
-			banzhengXinxiList,
-			qiuzhiXinxi,
-			gerenZiliao,
-			commonDialog,
-			zhaopianZiliao
-		},
-		watch: {
-			// 监听外部传入的selectedIds变化,更新selectedData
-			current: {
-				handler(newVal) {
-					console.log('newValnewValnewVal', this.current);
-					if (newVal == 1 && this.status == 'add') {
-						console.log('this.$refs.qiuzhiXinxi', this.$refs.qiuzhiXinxi);
-						this.$refs.qiuzhiXinxi.zhuangtai = 1
-					}
-
-				}
-			},
-
-		},
-		onLoad(options) {
-			let pageInfo = JSON.parse(options.pageInfo)
-			this.status = pageInfo.status
-			this.from = pageInfo.from
-			this.isZijiazheng = pageInfo.isZijiazheng
-			this.userIdList = pageInfo.userIdList
-			this.listIds = pageInfo.listIds
-			this.startDate = pageInfo.startDate
-			this.endDate = pageInfo.endDate
-			this.jzId = pageInfo.jzId
-			this.dataHandle(pageInfo)
-		},
-		methods: {
-			goBack() {
-				this.banzhengXinxiFlag = false
-			},
-			editBanzheng(data, index) {
-				console.log('dataasdf', data);
-				this.current = 3
-				this.banzhengXinxiFlag = true
-				this.$refs.banzhengXinxi.isPiliang(0)
-				if (this.status == 'edit') {
-					this.$refs.banzhengXinxi.editinfo(data, index)
-					this.$refs.banzhengXinxi.currentMove('edit')
-				} else {
-					this.$refs.banzhengXinxi.editinfo(data, index)
-					this.$refs.banzhengXinxi.currentMove('addEdit')
-				}
-
-			},
-			addBanzheng(data, index) {
-				if (this.allData.icon == '') {
-					uni.showToast({
-						title: "当录入办证信息时候,头像必填",
-						icon: 'none',
-						duration: 2000
-					});
-					this.allData.kaozhengList = []
-					return false;
-				}
-				this.banzhengXinxiFlag = true
-				this.$refs.banzhengXinxi.resetFun()
-				this.$refs.banzhengXinxi.isPiliang(0)
-				//this.current = 3
-				//	this.$refs.banzhengXinxi.resetFun()
-				if (this.status == 'edit') {
-					this.$refs.banzhengXinxi.currentMove('editAdd')
-				}
-
-			},
-			addBanzhengPiliang(data, index) {
-				if (this.allData.icon == '') {
-					uni.showToast({
-						title: "当录入办证信息时候,头像必填",
-						icon: 'none',
-						duration: 2000
-					});
-					this.allData.kaozhengList = []
-					return false;
-				}
-				this.banzhengXinxiFlag = true
-				this.$refs.banzhengXinxi.resetFun()
-				this.$refs.banzhengXinxi.isPiliang(1)
-				//this.current = 3
-				//	this.$refs.banzhengXinxi.resetFun()
-				if (this.status == 'edit') {
-					this.$refs.banzhengXinxi.currentMove('editAdd')
-				}
-
-			},
-
-			deleteBanzheng(data, index) {
-				this.deleteId = data.id
-				this.deleteIndex = index
-				if (data.statusBanzheng == '办证完成') {
-					uni.showToast({
-						title: "办证状态为办证完成禁止删除	",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$refs.commonDialogRef.handleShow()
-
-			},
-			deleteQuerenBtn() {
-				if (this.status == 'add') {
-					this.allData.kaozhengList.splice(this.deleteIndex, 1)
-					this.editInfo.kaozhengList.splice(this.deleteIndex, 1)
-				} else {
-					jiazhengKaozhengDelete({
-						ids: [this.deleteId]
-					}).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "成功",
-								icon: 'none',
-								duration: 2000
-							})
-							this.editInfo.kaozhengList.splice(this.deleteIndex, 1);
-							if (this.editInfo.kaozhengList.length == 0) {
-								this.banzhengXinxiFlag = true
-								this.$refs.banzhengXinxi.resetFun()
-								this.allData.kaozhengList = []
-								this.$refs.banzhengXinxi.isPiliang(0)
-							}
-						}
-					})
-				}
-
-			},
-			idCardBlur(data) {
-				if (this.status == 'edit') {
-					this.$refs.qiuzhiXinxi.editinfo(data)
-					this.$refs.zhaopianZiliao.editinfo(data)
-				}
-			},
-			dataHandle(pageInfo) {
-				if (this.status == 'add') {
-					this.tabs = [{
-							id: 1,
-							name: '个人资料',
-							disabled: false
-						},
-						{
-							id: 2,
-							name: '求职信息',
-							disabled: true
-						},
-						{
-							id: 3,
-							name: '照片资料',
-							disabled: true
-						},
-						{
-							id: 4,
-							name: '办证信息',
-							disabled: true
-						},
-					]
-				} else {
-					this.id = pageInfo.id
-					this.userId = pageInfo.userId
-					this.tabs = [{
-							id: 1,
-							name: '个人资料',
-							disabled: false
-						},
-						{
-							id: 2,
-							name: '求职信息',
-							disabled: false
-						},
-						{
-							id: 3,
-							name: '照片资料',
-							disabled: false
-						},
-						{
-							id: 4,
-							name: '办证信息',
-							disabled: false
-						},
-					]
-
-				}
-			},
-			finishDom() {
-				let req = {
-					id: this.id,
-					userId: this.userId
-				}
-				getJiazhengInfo(req).then(res => {
-					if (res.code == 0) {
-						this.$nextTick(() => {
-							this.$refs.gerenZiliao.editinfo(res.data)
-							this.editInfo = JSON.parse(JSON.stringify(res.data));
-							this.allData = JSON.parse(JSON.stringify(res.data));
-							this.allData.id = this.id
-							if (res.data.kaozhengList.length == 0) {
-								this.statusFlag = true
-							} else {
-								this.statusFlag = this.checkStatus(res.data.kaozhengList)
-							}
-							// 新增 手机端,家政人员编辑,修改为导出后不能修改
-							//this.statusFlag = this.checkStatus(res.data.kaozhengList)
-							console.log('this.checkStatus(res.data.kaozhengList)', this.checkStatus(res
-								.data.kaozhengList));
-							console.log('this.allData this.allData ', this.allData);
-						})
-					} else {
-						uni.showToast({
-							icon: 'none',
-							title: '获取详情失败'
-						})
-						return false
-					}
-				})
-			},
-			checkStatus(kaozhengList) {
-				if (!kaozhengList || !Array.isArray(kaozhengList) || kaozhengList.length == 0) {
-					return false;
-				}
-				return kaozhengList.every(item => item.statusBanzheng == "未办证");
-			},
-			changeTab(data) {
-
-				this.banzhengXinxiFlag = false
-
-				if (this.$refs.zhaopianZiliao) {
-					this.$refs.zhaopianZiliao.zhankaiFlag = false
-				}
-				if (this.status == 'add') {
-
-					if (this.current >= 0) {
-						this.current--;
-						this.updateTabs();
-					}
-				}
-				this.current = data
-				if (this.status != 'edit') {
-					return false
-				}
-				switch (Number(data)) {
-					case 0:
-						this.$refs.gerenZiliao.editinfo(this.editInfo)
-						break;
-					case 1:
-						this.$refs.qiuzhiXinxi.editinfo(this.editInfo)
-						break;
-					case 2:
-						this.$refs.zhaopianZiliao.editinfo(this.editInfo)
-						break;
-					case 3:
-						// if (this.editInfo.kaozhengList.length > 0) {
-						// 	this.banzhengXinxiFlag = false
-						// } else {
-						// 	this.banzhengXinxiFlag = false
-						// }
-						this.banzhengXinxiFlag = false
-						this.$refs.banzhengXinxi.editinfo()
-						break;
-					default:
-						break;
-				}
-
-
-			},
-			gerenZiliaoDataHandle(data, flag) {
-				console.log('gerenZiliaoDataHandle', data);
-				console.log('gerenZiliaoDataHandle', data.hunyin.id);
-				this.allData.userName = data.userName
-				this.allData.realName = data.realName
-				this.allData.idcard = data.idcard
-				this.allData.idtype = data.idtype
-				this.allData.jiguanShengId = data.jiguanObj.jiguanShengId
-				this.allData.jiguanShiId = data.jiguanObj.jiguanShiId
-				this.allData.juzhuDizhi = data.juzhuDizhi
-				this.allData.birthday = data.birthday
-				this.allData.minzu = data.minzu.id
-				this.allData.gender = data.gender
-				this.allData.xueli = data.xueli.id
-				this.allData.hunyin = data.hunyin.id
-				this.allData.hujiDizhi = data.hujiDizhi
-				this.allData.xingzuo = data.xingzuo.id
-				this.allData.shuxiang = data.shuxiang.id
-				this.allData.xingzuoFlag = data.xingzuoFlag
-				this.allData.jingdu = data.jingdu
-				this.allData.weidu = data.weidu
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			gerenziliaoNext(data, num) {
-				this.gerenZiliaoDataHandle(data)
-				// this.current = num + 1
-				// this.tabs = this.tabs.map((item, i) => {
-				// 	if (i == this.current) item.disabled = false
-				// 	return item
-				// })
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-
-			},
-			editSaveGerenziliao(data) {
-				this.gerenZiliaoDataHandle(data, 'edit')
-			},
-			qiuzhiXinxiDataHandle(data, flag) {
-				//	this.allData.leixing = data.leixing
-				this.allData.jingyan = data.jingyan
-				this.allData.jineng = data.jineng
-				this.allData.zhuangtai = data.zhuangtai
-				this.allData.jibiexinzi = data.jibiexinzi
-				this.allData.qiwangxinzi = data.qiwangxinzi
-				this.allData.jingli = data.jingli
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			goNextQiuzhixinxi(data, num) {
-				this.qiuzhiXinxiDataHandle(data)
-
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-
-
-
-				// this.current = num + 1
-				// this.tabs = this.tabs.map((item, i) => {
-				// 	if (i == this.current) item.disabled = false
-				// 	return item
-				// })
-			},
-			updateTabs() {
-				console.log('this.tabsthis.tabs', this.tabs);
-				console.log('this.current', this.tabs);
-
-				this.tabs = this.tabs.map((item, i) => {
-					// 当前页签及之前的页签 disabled 为 false,之后的页签 disabled 为 true
-					item.disabled = i >= this.current;
-					return item;
-				});
-			},
-			editSaveQiuzhixinxi(data) {
-				this.qiuzhiXinxiDataHandle(data, 'edit')
-			},
-
-			goNextZhaopianZiliao(data, num) {
-				this.zhaopianziliaoDataHandle(data)
-				// this.current = num + 1
-				// this.tabs = this.tabs.map((item, i) => {
-				// 	if (i == this.current) item.disabled = false
-				// 	return item
-				// })
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-
-			},
-			zhaopianziliaoDataHandle(data, flag) {
-				this.allData.icon = data.icon
-				this.allData.idcardUrl1 = data.idcardUrl1
-				this.allData.idcardUrl2 = data.idcardUrl2
-				this.allData.shenghuoUrls = data.shenghuoUrls
-				this.allData.zhengshuUrls = data.zhengshuUrls
-				this.allData.tijianDate = data.tijianDate
-				this.allData.jiankangDate = data.jiankangDate
-				this.allData.tijianUrls = data.tijianUrls
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			editSaveZhaopianziliao(data) {
-				this.zhaopianziliaoDataHandle(data, 'edit')
-			},
-			addSavePiliang(data) {
-				console.log('data', data);
-				//  有可能是一个数组
-				this.submitJiazheng(data)
-			},
-			addSave(data) {
-				// if (this.status == 'add') {
-				// 	this.submitJiazheng(data)
-				// } else {
-
-				// }
-
-				this.submitJiazheng(data)
-			},
-			submitJiazheng(data) {
-				console.log('this.allData', this.allData);
-
-				// 处理数组情况
-				const dataToProcess = Array.isArray(data) ? data : [data];
-
-				// 检查重复项
-				for (const item of dataToProcess) {
-					if (this.allData.kaozhengList.length > 0) {
-						const isDuplicate = this.allData.kaozhengList.some(existingItem => {
-							return existingItem.jgId == item.jgId &&
-								existingItem.zyLevelName == item.zyLevelName &&
-								existingItem.zyName == item.zyName;
-						});
-
-						if (isDuplicate) {
-							uni.showToast({
-								title: '此用户的职业等级系统已存在,如想继续添加,请联系管理员处理!',
-								icon: 'none',
-								duration: 2000
-							});
-							return false;
-						}
-					}
-				}
-
-				// 检查头像是否为空(如果有数据要添加)
-				if (dataToProcess.length > 0 && this.allData.icon == '') {
-					uni.showToast({
-						title: "当录入办证信息时候,头像必填",
-						icon: 'none',
-						duration: 2000
-					});
-					this.allData.kaozhengList = []
-					return false;
-				}
-
-				// 添加所有数据项
-				this.allData.kaozhengList.push(...dataToProcess);
-				this.editInfo.kaozhengList = [...this.allData.kaozhengList];
-				this.banzhengXinxiFlag = false;
-			},
-
-			// submitJiazheng(data) {
-			// 	//	debugger
-			// 	console.log('this.allData', this.allData);
-			// 	if (this.allData.kaozhengList.length > 0) {
-			// 		const isDuplicate = this.allData.kaozhengList.some(item => {
-			// 			return item.jgId == data.jgId &&
-			// 				item.zyLevelName == data.zyLevelName &&
-			// 				item.zyName == data.zyName;
-			// 		});
-			// 		if (isDuplicate) {
-			// 			uni.showToast({
-			// 				title: '此用户的职业等级系统已存在,如想继续添加,请联系管理员处理!',
-			// 				icon: 'none',
-			// 				duration: 2000
-			// 			});
-
-			// 			return false
-			// 		}
-			// 	}
-			// 	if (data != '') {
-
-			// 		this.allData.kaozhengList.push(data)
-			// 	}
-			// 	if (this.allData.kaozhengList.length > 0 && this.allData.icon == '') {
-			// 		uni.showToast({
-			// 			title: "当录入办证信息时候,头像必填",
-			// 			icon: 'none',
-			// 			duration: 2000
-			// 		})
-			// 		this.allData.kaozhengList = []
-			// 		return false
-			// 	}
-			// 	this.editInfo.kaozhengList = this.allData.kaozhengList
-			// 	this.banzhengXinxiFlag = false
-
-
-			// },
-			saveBanzheng() {
-				if (this.status == 'add') {
-					jiazhengAdd(this.allData).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "成功",
-								icon: 'none',
-								duration: 2000
-							})
-							uni.navigateTo({
-								url: `/pages/admin/Jiazheng/index`
-							})
-						} else {
-							uni.showToast({
-								title: "失败",
-								icon: 'none',
-								duration: 2000
-							})
-							return false
-						}
-
-					})
-				} else {
-
-				}
-			},
-			addEdit(data, flag, index) {
-				uni.showToast({
-					title: "修改成功!",
-					icon: 'none',
-					duration: 2000
-				})
-				this.editInfo.kaozhengList[index].canxunshijian = data.canxunshijian
-				this.editInfo.kaozhengList[index].jgType = data.jgType
-				this.editInfo.kaozhengList[index].jgId = data.jgId
-				this.editInfo.kaozhengList[index].jgName = data.jgName
-				this.editInfo.kaozhengList[index].jzId = data.jzId
-				this.editInfo.kaozhengList[index].needKaoshi = data.needKaoshi
-				this.editInfo.kaozhengList[index].needKecheng = data.needKecheng
-				this.editInfo.kaozhengList[index].shicaochengji = data.shicaochengji
-				this.editInfo.kaozhengList[index].statusBanzheng = data.statusBanzheng
-				this.editInfo.kaozhengList[index].statusKaoshi = data.statusKaoshi
-				this.editInfo.kaozhengList[index].zongkeshi = data.zongkeshi
-				this.editInfo.kaozhengList[index].id = data.id
-				this.editInfo.kaozhengList[index].zyId = data.zyId
-				this.editInfo.kaozhengList[index].zyLevel = data.zyLevel
-				this.editInfo.kaozhengList[index].zyLevelName = data.zyLevelName
-				this.editInfo.kaozhengList[index].zyName = data.zyName
-				this.allData.kaozhengList = JSON.parse(JSON.stringify(this.editInfo.kaozhengList));
-				this.banzhengXinxiFlag = false
-			},
-
-			editSave(data, flag, index) {
-				//	debugger
-				console.log('this.allData', this.allData);
-				console.log('this.editInfo', this.editInfo);
-				data.userId = this.userId
-				if (flag == 'edit' && this.allData.kaozhengList.length > 0) {
-
-					jiazhengKaozhengUpdate(data).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "保存成功!",
-								icon: 'none',
-								duration: 2000
-							})
-							this.editInfo.kaozhengList[index].canxunshijian = data.canxunshijian
-							this.editInfo.kaozhengList[index].jgId = data.jgId
-							this.editInfo.kaozhengList[index].jgName = data.jgName
-							this.editInfo.kaozhengList[index].jzId = data.jzId
-							this.editInfo.kaozhengList[index].jgType = data.jgType
-							this.editInfo.kaozhengList[index].needKaoshi = data.needKaoshi
-							this.editInfo.kaozhengList[index].needKecheng = data.needKecheng
-							this.editInfo.kaozhengList[index].statusBanzheng = '未办证'
-							this.editInfo.kaozhengList[index].shicaochengji = data.shicaochengji
-							this.editInfo.kaozhengList[index].statusKaoshi = data.statusKaoshi
-							this.editInfo.kaozhengList[index].zongkeshi = data.zongkeshi
-							this.editInfo.kaozhengList[index].id = data.id
-							this.editInfo.kaozhengList[index].zyId = data.zyId
-							this.editInfo.kaozhengList[index].zyLevel = data.zyLevel
-							this.editInfo.kaozhengList[index].zyLevelName = data.zyLevelName
-							this.editInfo.kaozhengList[index].zyName = data.zyName
-							this.banzhengXinxiFlag = false
-						}
-
-					})
-				} else if (flag == 'edit' && this.allData.kaozhengList.length == 0) {
-					data.userId = this.userId
-					if (this.allData.icon == '') {
-						uni.showToast({
-							title: "当录入办证信息时候,头像必填",
-							icon: 'none',
-							duration: 2000
-						})
-						return false
-					}
-					jiazhengKaozhengAdd(data).then(res => {
-						if (res.code == 0) {
-							data.id = res.data
-							data.statusBanzheng = '未办证'
-							this.allData.kaozhengList.push(data)
-							this.editInfo.kaozhengList.push(data)
-							console.log('this.editInfo.kaozhengList', this.editInfo.kaozhengList);
-							this.banzhengXinxiFlag = false
-						}
-					})
-				} else if (flag == 'editAdd') {
-					data.userId = this.userId
-					if (this.allData.icon == '') {
-						uni.showToast({
-							title: "当录入办证信息时候,头像必填",
-							icon: 'none',
-							duration: 2000
-						})
-						return false
-					}
-					jiazhengKaozhengAdd(data).then(res => {
-						if (res.code == 0) {
-							data.id = res.data
-							data.statusBanzheng = '未办证'
-							this.allData.kaozhengList.push(data)
-							this.editInfo.kaozhengList.push(data)
-							console.log('this.editInfo.kaozhengList', this.editInfo.kaozhengList);
-							this.banzhengXinxiFlag = false
-						}
-					})
-
-				}
-				// if (data != '') {
-				// 	this.allData.kaozhengList.push(data)
-				// }
-				// if(this.status =='add'){
-				// 	this.submitJiazheng()
-				// }else{
-
-				// }
-			},
-			editSavePiliang(data) {
-
-				console.log('data', data);
-				const updatedData = data.map(item => ({
-					...item, // 展开原有属性
-					userId: this.userId // 添加新字段
-				}));
-				if (this.allData.icon == '') {
-					uni.showToast({
-						title: "当录入办证信息时候,头像必填",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				jiazhengKaozhengAdds(updatedData).then(res => {
-					if (res.code == 0) {
-						//	data.id = res.data
-						const dataWithIds = updatedData.map((item, index) => ({
-							...item,
-							statusBanzheng: '未办证',
-							id: res.data[index]
-						}));
-						this.allData.kaozhengList = [...this.allData.kaozhengList, ...dataWithIds];
-						this.editInfo.kaozhengList = [...this.editInfo.kaozhengList, ...dataWithIds];
-						// console.log('this.editInfo.kaozhengList', this.editInfo.kaozhengList);
-						this.banzhengXinxiFlag = false
-						console.log('this.allData.kaozhengList', this.allData.kaozhengList);
-					}
-				})
-
-			},
-			goUpPage() {
-				if (this.from == 'banzheng') {
-					uni.redirectTo({
-						url: "/pages/admin/banzheng/list"
-					})
-				} else {
-
-					uni.redirectTo({
-						url: "/pages/admin/Jiazheng/index" +
-							"?isZijiazheng=" + this.isZijiazheng +
-							"&userIdList=" + this.userIdList + "&listIds=" + this.listIds +
-							"&startDate=" + this.startDate +
-							"&endDate=" + this.endDate +
-							"&from=" + this.from +
-							"&jzId=" + this.jzId
-					})
-				}
-
-			}
-
-		}
-	}
-</script>

+ 0 - 306
pages/admin/Jiazheng/bf/kechengBind.vue

@@ -1,306 +0,0 @@
-<template>
-	<view class="phone-list-page kc-bind-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-			<uni-icons v-show="current ==0" class="nav-bar-right-icon bar-ml10" type="search" @click="searchBtn"
-				size="20"></uni-icons>
-			<uni-icons v-show="current ==1" style="opacity: 0;" class="nav-bar-right-icon bar-ml10" type="search"
-				size="20"></uni-icons>
-		</view>
-		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" field="name"
-			class="admin-tab-box"></v-tabs>
-		<view v-if="current ==0" class="jiazheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text class="select-text">{{leixing}}</text>
-				<icon class="select-jt-default" />
-			</view>
-			<view>课程剩余数量:{{kechengNumber||0}}</view>
-		</view>
-		<view class="kc-bind-scroll-view scroll-top-border" v-if="current ==0">
-
-			<uni-list class="admin-list-box">
-				<uni-list-item v-for="item in list" class="admin-list-item-box">
-					<template v-slot:body>
-						<view @click="lookUserInfo(item)" class="kecheng-list-card">
-							<img :src="item.pic">
-							<view class="item-card-row">
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<view class="ks-totalTm kc-fenlei">
-									<icon class="phone-fenlei-icon" />分类:{{item.kcClassifyName}}
-								</view>
-								<button class="kc-bind-btn phone-green-btn" type="default" size="mini"
-									@click.stop="toAdd(item)">绑定</button>
-							</view>
-						</view>
-					</template>
-				</uni-list-item>
-			</uni-list>
-		</view>
-		<view class="kc-notbind-scroll-view scroll-top-border" v-if="current ==1">
-			<uni-list class="admin-list-box">
-				<uni-list-item v-for="item in listYx" class="admin-list-item-box">
-					<template v-slot:body>
-
-						<view @click="lookUserInfo(item)" class="kecheng-list-card">
-							<img :src="item.pic" v-if="item.pic">
-							<view class="item-card-row">
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<!-- <view class="ks-totalTm kc-fenlei">
-									<icon class="phone-fenlei-icon" />分类:{{item.kcClassifyName}}
-								</view> -->
-								<view class="bind-btn-row">
-									<button type="default" size="mini" class="kc-bind-btn phone-green-btn"
-										@click="toReset(item)">重置</button>
-									<button type="default" size="mini" class="kc-bind-btn phone-white-btn"
-										@click="toDelete(item)">删除</button>
-								</view>
-							</view>
-						</view>
-					</template>
-				</uni-list-item>
-			</uni-list>
-		</view>
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-		<kechengLeixingVue ref="kclxRef" @select="handleSelectLeixing" @reset="handleResetLeixing"></kechengLeixingVue>
-		<searchVue ref="searchRef" @search-btn="handleSearchFromBtn"></searchVue>
-	</view>
-</template>
-
-<script>
-	import {
-		ref
-	} from "vue";
-	import {
-		kcSelectList,
-		jiazhengKcList,
-		jiazhengKcAdd,
-		jiazhengKcDelete,
-		getAdminClassify,
-		kechengReset,
-		chaxunNumberKecheng
-	} from "@/api/jiazheng.js";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import kechengLeixingVue from "./common/kechengLeixing.vue";
-		import {toast} from "@/utils/common";
-	import searchVue from "./common/search2.vue";
-	import {
-		debounce
-	} from "@/utils/common";
-	export default {
-		data() {
-			return {
-				leixing: '全部类型',
-				leixingList: [],
-				selectClassify: null,
-				kcClassifyId: 0,
-				id: '',
-				kechengNumber: '',
-				addFlag: false,
-				name: '',
-				current: 0,
-				list: [],
-				listYx: [],
-				deleteTitle: '删除',
-				kcId: '',
-				deleteConcent: '你确定要执行这个操作吗',
-				tabs: [{
-						id: 1,
-						name: '未绑定课程',
-
-					},
-					{
-						id: 2,
-						name: '已绑定课程',
-
-					},
-				],
-			}
-		},
-		components: {
-			commonDialog,
-			kechengLeixingVue,
-			searchVue
-		},
-		onLoad(options) {
-			this.id = options.id
-			this.getList()
-			this.getKechengClassify()
-			this.chaxunNumber()
-		},
-		methods: {
-			chaxunNumber() {
-				chaxunNumberKecheng({
-					id: this.id
-				}).then(res => {
-					if (res.code == 0) {
-						this.kechengNumber = res.data
-						this.addFlag = this.kechengNumber > 0;
-					} else {
-						uni.showToast({
-							title: '失败'
-						});
-						return false
-					}
-				})
-			},
-			toReset(data) {
-				let req = {
-					kcId: data.kcId,
-					id: this.id
-				}
-				kechengReset(req).then(res => {
-					if (res.code == 0) {
-						this.getList()
-						uni.showToast({
-							title: '成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '失败'
-
-						});
-						return false
-					}
-				})
-			},
-			searchBtn() {
-				this.$refs.searchRef.handleShow()
-			},
-
-			handleSearchFromBtn(textD) {
-				this.name = textD;
-				this.getList()
-			},
-			handleResetLeixing() {
-				this.selectClassify = null;
-				this.leixing = '全部类型';
-				this.getList()
-			},
-			handleSelectLeixing(item) {
-				this.leixing = item.lable;
-				this.selectClassify = item;
-				this.getList()
-			},
-			clickAlltype() {
-				this.$refs.kclxRef.showPopup({
-					data: this.leixingList
-				})
-			},
-			getKechengClassify() {
-				getAdminClassify().then(res => {
-					res.data.children.forEach(item => {
-						item.checked = false;
-					})
-					this.leixingList = res.data.children || [];
-				})
-			},
-			toAdd(data) {
-				if (!this.addFlag) {
-
-					toast('课程剩余数量不足')
-					return false
-				}
-				debounce(
-					this.jzAdd(data), 500)
-
-			},
-
-			jzAdd(data) {
-				let req = {
-					kcIds: [data.kcId],
-					id: this.id
-				}
-				jiazhengKcAdd(req).then(res => {
-					if (res.code == 0) {
-						this.getList()
-						this.chaxunNumber()
-						uni.showToast({
-							title: '添加成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '添加失败',
-							icon: 'success'
-						});
-						return false
-					}
-				})
-			},
-			deleteQuerenBtn() {
-				let req = {
-					kcIds: [this.kcId],
-					id: this.id
-				}
-				jiazhengKcDelete(req).then(res => {
-					if (res.code == 0) {
-						this.getYxList()
-						uni.showToast({
-							title: '删除成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '删除失败',
-							icon: 'success'
-						});
-						return false
-					}
-				})
-			},
-			toDelete(data) {
-				this.kcId = data.kcId
-				this.$refs.commonDialogRef.handleShow();
-			},
-			changeTab(data) {
-				this.current = data
-				if (this.current == 0) {
-					this.getList()
-				} else {
-					this.chaxunNumber()
-					this.getYxList()
-				}
-
-				console.log('data', data);
-			},
-			goUpPage() {
-				uni.redirectTo({
-					url: "/pages/admin/Jiazheng/index"
-				})
-			},
-			getList() {
-				let req = {
-					id: this.id,
-					"kcClassifyId": this.selectClassify && this.selectClassify.id || 0,
-					name: this.name
-				}
-				kcSelectList(req).then(res => {
-					if (res.code == 0) {
-						this.list = res.data
-					} else {
-						return false
-					}
-				})
-			},
-			getYxList() {
-				let req = {
-					id: this.id,
-				}
-				jiazhengKcList(req).then(res => {
-					if (res.code == 0) {
-						this.listYx = res.data
-					} else {
-						return false
-					}
-				})
-			}
-		}
-	}
-</script>

+ 0 - 288
pages/admin/Jiazheng/bf/qiuzhiXinxi.vue

@@ -1,288 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<!-- <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="typeList" mode="multiple" :defaultCount="9" :selectedNames="leixing"
-				@change="selectChangeType" @add="addType" />
-		</view> -->
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>经验</view>
-				<picker :range="jingyanList" mode='selector' :value="jingyanIndex" range-key="name"
-					@change="jingyanChange" @cancel="jingyanCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ jingyan }}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-			<view class="form-label-radio flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require">*</text>技能</view>
-				<dataChecked :list="skillList" mode="multiple" :defaultCount="9" :selectedNames="jineng"
-					@change="selectChangeSkill" @add="addSkill" />
-			</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="zhuangtaiList" mode="single" :selectedIds='zhuangtai' :showAdd="false"
-					@change="selectChangeZhuangtai" />
-			</view>
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>薪资级别</view>
-				<picker :range="xinziJibieList" mode='selector' @change="xinziJibieChange" @cancel="xinziJibieCancel"
-					class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{jibiexinzi}}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require"></text>期望薪资</view>
-				<input v-model="qiwangxinzi" placeholder="请输入期望薪资" />
-			</view>
-			<view class="form-label-input flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require"></text>工作经历</view>
-				<textarea v-model="jingli" maxlength="-1" placeholder="请填写工作经历" class="form-textarea-box" />
-			</view>
-			<view v-if="isZijiazheng !='true'" class="page-btn-box">
-				<button type="default" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext" class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit'&&isZijiazheng !='true'" @click="editSave" class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import dataChecked from './common/dataChecked.vue';
-	import {
-		getJiazhengLeixing,
-		getJiazhengJineng,
-		getJiazhengZhuangtai,
-
-	} from "@/api/jiazheng.js";
-
-	export default {
-		components: {
-			dataChecked
-		},
-		// onLoad 是 uni-app 的页面生命周期钩子,不需要导入
-		created() {
-
-			this.initRequests()
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-		},
-		data() {
-			return {
-				formData: {},
-				// 从后端获取的技能列表
-				skillList: [],
-				typeList: [],
-				leixing: "",
-				jineng: "",
-				zhuangtaiList: [],
-				zhuangtai: '',
-				jingyan: "",
-				jingyanIndex: 0,
-				qiwangxinzi: '面议',
-				jingli: '',
-				xinziJibieList: ["一级", "二级", "三级", "四级", "五级", ],
-				jibiexinzi: "",
-				jingyanList: Array.from({
-					length: 51
-				}, (_, i) => i + '年'),
-			};
-		},
-		methods: {
-			async initRequests() {
-				await Promise.all([
-					//	this.getLeixing(),
-					this.getJineng(),
-					this.getZhuangtai()
-				]);
-			},
-			editinfo(data) {
-				this.$nextTick(() => {
-					console.log('data11111', data);
-					//	this.leixing = data.leixing
-					this.jingyan = data.jingyan
-					this.jineng = data.jineng
-					this.zhuangtai = data.zhuangtai
-					this.jibiexinzi = data.jibiexinzi
-					this.qiwangxinzi = data.qiwangxinzi
-					this.jingli = data.jingli
-
-				})
-			},
-
-			// 点击完成按钮的时候触发,
-			xinziJibieChange(e) {
-				//通过e.detail.value获取值,获取的是自定义数据的下标
-				const index = e.detail.value
-				this.jibiexinzi = this.xinziJibieList[index]
-				console.log('jibiexinzi', this.jibiexinzi);
-			},
-			xinziJibieCancel(e) {
-				console.log("您已取消选择");
-			},
-			jingyanChange(e) {
-				const index = e.detail.value
-				this.jingyan = this.jingyanList[index]
-			},
-			jingyanCancel() {
-				this.jingyanIndex = 0
-			},
-			getJineng() {
-				getJiazhengJineng({}).then(res => {
-					this.skillList = this.dataConversionObject(res.data)
-
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getLeixing() {
-				getJiazhengLeixing({}).then(res => {
-					this.typeList = this.dataConversionObject(res.data)
-
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getZhuangtai() {
-				getJiazhengZhuangtai({}).then(res => {
-					console.log('res', res);
-					this.zhuangtaiList = res.data
-					// this.typeList = this.dataConversionObject(res.data)
-					// console.log('this.typeList', this.typeList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			dataConversionObject(data) {
-				let newList
-				newList = data.map((name, index) => ({
-					id: index,
-					name: name
-				}));
-				return newList
-			},
-			dataConversionArray(data) {
-				let newList
-				newList = data.map((item, index) => {
-					return item.name
-				});
-				return newList
-			},
-			selectChangeType(data) {
-				//	console.log('typeData', data);
-				this.leixing = this.dataConversionArray(data).join(',')
-				console.log('this.leixing', this.leixing);
-			},
-			addType(newType) {
-				this.typeList.push({
-					...newType,
-				});
-			},
-			selectChangeSkill(data) {
-				this.jineng = this.dataConversionArray(data).join(',')
-				console.log('this.jineng', this.jineng);
-			},
-			addSkill(newSkill) {
-				this.skillList.push({
-					...newSkill,
-				});
-			},
-			selectChangeZhuangtai(data) {
-				console.log('zhuangtaiData', data);
-				if (data.length > 0) {
-					this.zhuangtai = data[0].id
-				} else {
-					this.zhuangtai = ''
-				}
-				console.log('zhuangtai', this.zhuangtai);
-				// const index = e.detail.value
-				// this.jingyan = this.jingyanList[index]
-			},
-			showAlert() {
-				uni.showToast({
-					title: "请勾选本人同意!",
-					icon: 'none',
-					duration: 2000
-				})
-				return false
-			},
-			yanzheng() {
-				this.formData = {
-					//	leixing: this.leixing,
-					jingyan: this.jingyan,
-					jineng: this.jineng,
-					zhuangtai: this.zhuangtai,
-					jibiexinzi: this.jibiexinzi,
-					qiwangxinzi: this.qiwangxinzi,
-					jingli: this.jingli,
-
-				}
-				// if (!this.formData.leixing) {
-				// 	uni.showToast({
-				// 		title: "请选择类型!",
-				// 		icon: 'none',
-				// 		duration: 2000
-				// 	})
-				// 	return false
-				// }
-				// if (!this.formData.jingyan) {
-				// 	uni.showToast({
-				// 		title: "请选择经验年限!",
-				// 		icon: 'none',
-				// 		duration: 2000
-				// 	})
-				// 	return false
-				// }
-				if (!this.formData.jineng) {
-					uni.showToast({
-						title: "请选择相应技能!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				if (!this.formData.zhuangtai) {
-					uni.showToast({
-						title: "请选择相应状态!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				return true
-			},
-			goNext() {
-				let ispass = this.yanzheng()
-				if (ispass) {
-					this.$emit('goNext', this.formData, 1);
-				}
-			},
-			editSave() {
-
-				let ispass = this.yanzheng()
-				console.log('this.formData', this.formData);
-				if (ispass) {
-					this.$emit('editSave', this.formData);
-				}
-			}
-		},
-		mounted() {
-			console.log('zxvasdfasdfasdfadsfadsfadsfasd');
-			// setTimeout(()=>{
-			// 			this.zhuangtai = '1'
-			// },1000)
-		}
-	};
-</script>

+ 0 - 286
pages/admin/Jiazheng/bf/zhaopianZiliao.vue

@@ -1,286 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="upload-img-box" :class="String(statusFlag) =='false'?'upload-img-mask-box':''"
-				@click="touxiangTishi">
-				<jiazhengUpload @getFileUrl="getTouxiang" :img='icon' bottomText="上传头像"></jiazhengUpload>
-			</view>
-			<view class="form-label-switch">
-				<view class="phone-form-label"><text class="form-label-require"></text>身份证照片</view>
-				<!-- 	<switch @change="switchSfzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-			</view>
-			<view class="ziliao-upload-box">
-				<view class="upload-item-box">
-					<jiazhengUpload @getFileUrl="getSfzTouxiang" :img='idcardUrl1' bottomText="上传身份证头像面">
-					</jiazhengUpload>
-				</view>
-				<view class="upload-item-box">
-					<jiazhengUpload @getFileUrl="getSfzGuohui" :img='idcardUrl2' bottomText="上传身份证国徽面"></jiazhengUpload>
-				</view>
-			</view>
-
-			<view @click="changeZhankai" :class="zhankaiFlag==1?'zpzl-open-box':'zpzl-close-box'">
-				<view class="gdzl-row">更多资料<icon></icon>
-				</view>
-				<view v-show="zhankaiFlag">
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>体检报告</view>
-						<!-- <switch @change="switchGzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in tijianbaogaoList" :key="index"
-								v-if="tijianbaogaoList.length>0" class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteTijianbaogao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getTijianbaogao"></jiazhengUpload>
-						</view>
-					</view>
-
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>工作生活照</view>
-						<!-- <switch @change="switchGzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in shenghuizhaoList" :key="index"
-								v-if="shenghuizhaoList.length>0" class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteShenghuoZhao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getGzShenghuozhao"></jiazhengUpload>
-						</view>
-					</view>
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>资格类照片</view>
-						<!-- 	<switch @change="switchZgChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in zigezhaoList" :key="index" v-if="zigezhaoList.length>0"
-								class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteZigeZhao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getZigezhao"></jiazhengUpload>
-						</view>
-					</view>
-					<view class="form-label-select">
-						<view class="phone-form-label"><text class="form-label-require"></text>最近体检日期</view>
-						<uni-datetime-picker class="form-radio-picker" type="date" @change="changeTijian">
-							<view class="form-radio-select">
-								<view>{{tijianDate}}</view>
-								<icon></icon>
-							</view>
-						</uni-datetime-picker>
-					</view>
-
-					<view class="form-label-select">
-						<view class="phone-form-label"><text class="form-label-require"></text>健康证日期</view>
-						<uni-datetime-picker class="form-radio-picker" type="date" @change="changeJiankang">
-							<view class="form-radio-select">
-								<view>{{jiankangDate}}</view>
-								<icon></icon>
-							</view>
-						</uni-datetime-picker>
-					</view>
-				</view>
-			</view>
-
-			<!-- 	<view class="zpzl-tip-box form-top-margin">
-			<view>体检报告文件</view>
-			<view class="red-tip">(*如未经同意,体检报告均不展示在简历中;在系统中预约的体检,如有电子报告,会自动关联到简历中) </view>
-			<view>
-				<checkbox-group>
-					<checkbox :checked="tijianbaogaoFlag" @click="changeTijianbaogao" color="#3fd2a1"
-						style="transform:scale(0.65)" />
-					已经同意,上传个人体检报告
-				</checkbox-group>
-			</view>
-			<view class="scbg-tip">
-				还没有上传的体验报告<br>
-				可点击下方上传体检报告
-			</view>
-			<button type="default" class="phone-green-btn scbg-btn">+从手机上传体检报告(pdf)</button>
-		</view> -->
-
-			<view v-if="isZijiazheng !='true'" class="page-btn-box">
-				<button type="default" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext"
-					class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit'&&isZijiazheng !='true'" @click="editSave"
-					class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getAliyunPolicy
-	} from "@/api/jiazheng.js"
-	import jiazhengUpload from "./common/jiazhengUpload.vue"
-
-	export default {
-		data() {
-
-			return {
-				shenghuizhaoList: [],
-				tijianbaogaoList: [],
-				zigezhaoList: [],
-				icon: '',
-				idcardUrl1: '',
-				idcardUrl2: '',
-				shenghuoUrls: '',
-				tijianDate: '',
-				tijianUrls: '',
-				jiankangDate: '',
-				tijianbaogaoFlag: false,
-				zhengshuUrls: '',
-				accordionVal: '',
-				zhankaiFlag: false
-			}
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			},
-			statusFlag: {
-				type: Boolean,
-			},
-		},
-		components: {
-			jiazhengUpload
-		},
-		methods: {
-			touxiangTishi() {
-
-				if (String(this.statusFlag) == 'false') {
-					uni.showToast({
-						title: '已提交办证申请,禁止修改',
-						icon: 'none'
-					});
-					return false
-				}
-
-			},
-			changeZhankai() {
-				this.zhankaiFlag = !this.zhankaiFlag
-				console.log('this.changeZhankai', this.changeZhankai);
-			},
-			editinfo(data) {
-				console.log('data', data);
-				this.$nextTick(() => {
-					this.icon = data.icon
-					this.idcardUrl1 = data.idcardUrl1
-					this.idcardUrl2 = data.idcardUrl2
-					this.shenghuizhaoList = data.shenghuoUrls == '' ? '' : data.shenghuoUrls.split(",")
-					this.zigezhaoList = data.zhengshuUrls == '' ? '' : data.zhengshuUrls.split(",")
-					this.tijianbaogaoList = data.tijianUrls == '' ? '' : data.tijianUrls.split(",")
-					this.tijianDate = data.tijianDate
-					this.jiankangDate = data.jiankangDate
-
-				})
-			},
-			getTouxiang(data) {
-				this.icon = data
-				console.log('getTouxiang', data);
-			},
-			getSfzTouxiang(data) {
-				this.idcardUrl1 = data
-				console.log('getSfzTouxiang', data);
-			},
-			getSfzGuohui(data) {
-				this.idcardUrl2 = data
-				console.log('getSfzGuohui', data);
-			},
-			getGzShenghuozhao(data) {
-				console.log('getGzShenghuozhao', data);
-				this.shenghuizhaoList.push(data);
-			},
-			getTijianbaogao(data) {
-				console.log('getTijianbaogao', data);
-				this.tijianbaogaoList.push(data);
-			},
-			getZigezhao(data) {
-				console.log('getZigezhao', data);
-				this.zigezhaoList.push(data);
-			},
-			deleteZigeZhao(data, index) {
-				this.zigezhaoList.splice(index, 1);
-			},
-			deleteTijianbaogao(data, index) {
-				this.tijianbaogaoList.splice(index, 1);
-			},
-			deleteShenghuoZhao(data, index) {
-				this.shenghuizhaoList.splice(index, 1);
-			},
-			changeTijian(data) {
-				console.log('data', data);
-				this.tijianDate = data
-
-			},
-			changeJiankang(data) {
-				console.log('data', data);
-				this.jiankangDate = data
-
-			},
-			changeTijianbaogao(data) {
-				this.tijianbaogaoFlag = !this.tijianbaogaoFlag
-			},
-			switchSfzChange(data) {
-				console.log('data', data);
-			},
-			switchGzChange(data) {
-				console.log('data', data);
-			},
-			switchZgChange(data) {
-				console.log('data', data);
-			},
-
-			goNext() {
-				this.formData = {
-					icon: this.icon,
-					idcardUrl1: this.idcardUrl1,
-					idcardUrl2: this.idcardUrl2,
-					tijianbaogaoFlag: this.tijianbaogaoFlag,
-					shenghuoUrls: this.shenghuizhaoList ? this.shenghuizhaoList.join(',') : '',
-					zhengshuUrls: this.zigezhaoList ? this.zigezhaoList.join(',') : '',
-					tijianUrls: this.tijianbaogaoList ? this.tijianbaogaoList.join(',') : '',
-					tijianDate: this.tijianDate,
-					jiankangDate: this.jiankangDate,
-
-
-				}
-				console.log('this.formData', this.formData);
-				this.$emit('goNext', this.formData, 2);
-			},
-			editSave() {
-				this.formData = {
-					icon: this.icon,
-					idcardUrl1: this.idcardUrl1,
-					idcardUrl2: this.idcardUrl2,
-					tijianbaogaoFlag: this.tijianbaogaoFlag,
-					shenghuoUrls: this.shenghuizhaoList.length > 0 ? this.shenghuizhaoList.join(',') : '',
-					zhengshuUrls: this.zigezhaoList.length > 0 ? this.zigezhaoList.join(',') : '',
-					tijianDate: this.tijianDate,
-					jiankangDate: this.jiankangDate,
-					tijianUrls: this.tijianbaogaoList ? this.tijianbaogaoList.join(',') : '',
-
-				}
-				console.log('this.formData', this.formData);
-				this.$emit('editSave', this.formData);
-			},
-
-		},
-		created() {
-			// setTimeout(()=>{
-			// 	 this.$refs.datePicker.show()
-			// },1000)
-
-		},
-	};
-</script>

+ 0 - 259
pages/admin/Jiazheng/common/dataChecked.vue

@@ -1,259 +0,0 @@
-<template>
-	<view class="phone-radio-group data-check-radio-group">
-		<!-- 技能块展示 -->
-		<view v-for="item in displayedList" :key="item.id" class="phone-radio-item"
-			:class="{ radioActive: isSelected(item.id) }" @click="toggleSelect(item)">
-			{{ item.name }}
-		</view>
-		<!-- 添加按钮 -->
-		<view v-if="showAddButton" class="radio-add-btn" @click="handleAdd">
-			+ 添加
-		</view>
-
-		<!-- 展开/收起按钮 -->
-		<view class="radio-btn-box label-radio-btn-box">
-			<view v-if="showExpandButton" :class="[{ 'radio-btn': true }, showAll ? 'collapsed-btn' : 'expanded-btn']"
-				@click="toggleExpand">
-				{{ showAll ? '收起' : `展开` }}
-			</view>
-		</view>
-
-
-		<!-- 	<view v-if="showExpandButton" class="expand-button" @click="toggleExpand">
-			{{ showAll ? '收起' : `展开剩余${remainingCount}项` }}
-		</view> -->
-
-		<!-- 添加弹窗 -->
-		<uni-popup ref="addPopup" type="dialog" :animation="false" :is-mask-click="false">
-			<view class="phone-common-dialog">
-				<view class="common-body-box">
-					<view class="common-title">新增技能</view>
-					<view class="common-input-box">
-						<input v-model="newName" placeholder="请输入技能名称" class="common-input-margin" />
-					</view>
-				</view>
-				<view class="common-btn-box">
-					<view class="not-confirm-btn" @click="cancelAdd">取消</view>
-					<view class="confirm-btn" @click="confirmAdd">确认</view>
-				</view>
-			</view>
-		</uni-popup>
-	</view>
-</template>
-
-<script>
-	export default {
-		name: 'SkillSelector',
-		props: {
-			// 技能列表(必须包含id和name字段)
-			list: {
-				type: Array,
-				required: true,
-				default: () => []
-			},
-			// 默认显示数量
-			defaultCount: {
-				type: Number,
-				default: 10
-			},
-			// 是否显示添加功能
-			showAdd: {
-				type: Boolean,
-				default: true
-			},
-			// 新增模式选择
-			mode: {
-				type: String,
-				default: 'multiple', // 'single' | 'multiple'
-				validator: (value) => ['single', 'multiple'].includes(value)
-			},
-			// 外部传入的已选id(单选时为单个id,多选时为id数组)
-			selectedIds: {
-				type: [Array, Number, String],
-				default: () => []
-			},
-			selectedNames: {
-				type: String,
-				default: ''
-			},
-			zijiazheng: {
-				type: String,
-				default: 'false'
-			}
-		},
-		data() {
-			return {
-				showAll: false,
-				selectedData: [],
-				newName: ''
-			};
-		},
-		computed: {
-			displayedList() {
-				return this.showAll ? this.list : this.list.slice(0, this.defaultCount);
-			},
-			remainingCount() {
-				return this.list.length - this.defaultCount;
-			},
-			showExpandButton() {
-				return this.list.length > this.defaultCount;
-			},
-			showAddButton() {
-				if (!this.showAdd) return false;
-				return this.showAll || this.list.length < this.defaultCount;
-			}
-		},
-		watch: {
-			// 监听外部传入的selectedIds变化,更新selectedData
-			selectedIds: {
-
-				handler(newVal) {
-					if (this.mode === 'single') {
-						// 单选模式
-						const selectedItem = this.list.find(item => item.id == newVal);
-						this.selectedData = selectedItem ? [selectedItem] : [];
-					} else {
-						// 多选模式
-						this.selectedData = this.list.filter(item => newVal.includes(item.id));
-					}
-				}
-			},
-			zijiazheng: {
-				immediate: true,
-				handler(newVal) {
-					if(newVal =='true'){
-						this.showAll = true
-					}
-				}
-			},
-			// 监听外部传入的selectedNames变化,更新selectedData
-			selectedNames: {
-				immediate: true,
-				handler(newVal) {
-					if (!newVal) {
-						this.selectedData = [];
-						return;
-					}
-					// 将字符串解析为名称数组
-					const names = newVal.split(',').map(name => name.trim());
-					// 根据名称从list中找到对应的数据
-					this.selectedData = this.list.filter(item => names.includes(item.name));
-				}
-			}
-		},
-		methods: {
-			isSelected(id) {
-				return this.selectedData.some(item => item.id === id);
-			},
-
-
-			toggleSelect(data) {
-				if (this.mode == 'single') {
-					this.handleSingleSelect(data);
-				} else {
-					this.handleMultipleSelect(data);
-				}
-				this.$emit('change', this.selectedData);
-			},
-			// 单选处理逻辑
-			handleSingleSelect(data) {
-				const isSelected = this.selectedData.some(item => item.id == data.id);
-				if (isSelected) {
-					// 取消选择
-					this.selectedData = [];
-				} else {
-					// 替换选择
-					this.selectedData = [data];
-				}
-			},
-			// 多选处理逻辑
-			handleMultipleSelect(data) {
-				const index = this.selectedData.findIndex(item => item.id == data.id);
-				if (index === -1) {
-					this.selectedData.push(data);
-				} else {
-					this.selectedData.splice(index, 1);
-				}
-			},
-			toggleExpand() {
-				this.showAll = !this.showAll;
-			},
-
-			handleAdd() {
-				this.$refs.addPopup.open();
-			},
-
-			confirmAdd() {
-				if (!this.newName.trim()) {
-					uni.showToast({
-						title: '请输入技能名称',
-						icon: 'none'
-					});
-					return;
-				}
-
-				const newObject = {
-					id: this.list.length,
-					name: this.newName
-				};
-				console.log('list', this.list);
-				console.log('newObject', newObject);
-
-				this.$emit('add', newObject);
-				this.newName = '';
-				this.$refs.addPopup.close();
-			},
-
-			cancelAdd() {
-				this.newName = '';
-				this.$refs.addPopup.close();
-			}
-		}
-	};
-</script>
-
-<style scoped>
-	.add-block {
-		background: transparent;
-		border: 1px dashed #007aff;
-		color: #007aff;
-	}
-
-	.expand-button {
-		margin-top: 30rpx;
-		color: #007aff;
-		font-size: 28rpx;
-		text-align: center;
-	}
-
-	.add-popup {
-		padding: 40rpx;
-		background: #fff;
-		border-radius: 16rpx;
-	}
-
-	.add-input {
-		width: 100%;
-		padding: 20rpx;
-		border: 1px solid #eee;
-		border-radius: 8rpx;
-		margin-bottom: 40rpx;
-	}
-
-	.button-group {
-		display: flex;
-		gap: 20rpx;
-	}
-
-	.confirm-button {
-		flex: 1;
-		background: #007aff;
-		color: #fff;
-	}
-
-	.cancel-button {
-		flex: 1;
-		background: #ff3b30;
-		color: #fff;
-	}
-</style>

+ 0 - 145
pages/admin/Jiazheng/common/jiazhengPdfUpload.vue

@@ -1,145 +0,0 @@
-<template>
-  <view>
-    <!-- 触发按钮 -->
-    <slot name="trigger" :uploading="uploading">
-      <button 
-        :disabled="uploading"
-        @click="choosePdf"
-        class="upload-btn"
-      >
-        {{ uploading ? '上传中...' : '上传PDF' }}
-      </button>
-    </slot>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'PdfUploader',
-  props: {
-    // 上传接口地址
-    uploadUrl: {
-      type: String,
-      required: true
-    },
-    // 最大文件大小(单位:MB)
-    maxSize: {
-      type: Number,
-      default: 50
-    }
-  },
-  data() {
-    return {
-      uploading: false
-    }
-  },
-  methods: {
-    // 选择PDF文件
-    async choosePdf() {
-      if (this.uploading) return
-      
-      try {
-        const [file] = await this.selectFile()
-        await this.verifyFile(file)
-        const result = await this.uploadFile(file)
-        this.$emit('success', result)
-      } catch (error) {
-        this.$emit('error', error)
-        this.showToast(error.message)
-      }
-    },
-
-    // 选择文件
-    selectFile() {
-      return new Promise((resolve, reject) => {
-        uni.chooseFile({
-          count: 1,
-          type: 'file',
-          extension: ['pdf'],
-          success: res => resolve(res.tempFiles),
-          fail: () => reject(new Error('取消选择'))
-        })
-      })
-    },
-
-    // 验证文件
-    verifyFile(file) {
-      const maxBytes = this.maxSize * 1024 * 1024
-      
-      if (!file.type.includes('pdf')) {
-        throw new Error('请选择PDF文件')
-      }
-      
-      if (file.size > maxBytes) {
-        throw new Error(`文件大小不能超过${this.maxSize}MB`)
-      }
-      
-      return true
-    },
-
-    // 执行上传
-    uploadFile(file) {
-      this.uploading = true
-      
-      return new Promise((resolve, reject) => {
-        uni.uploadFile({
-          url: this.uploadUrl,
-          filePath: file.path,
-          name: 'file',
-          formData: {
-            filename: file.name
-          },
-          success: (res) => {
-            if (res.statusCode === 200) {
-              resolve(JSON.parse(res.data))
-            } else {
-              reject(new Error('上传失败'))
-            }
-          },
-          fail: () => reject(new Error('网络错误')),
-          complete: () => (this.uploading = false)
-        })
-      })
-    },
-
-    // 显示提示
-    showToast(message) {
-      uni.showToast({
-        title: message,
-        icon: 'none',
-        duration: 3000
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-.upload-btn {
-  background-color: #007AFF;
-  color: white;
-  padding: 10px 20px;
-  border-radius: 5px;
-  font-size: 14px;
-}
-
-.upload-btn[disabled] {
-  background-color: #cccccc;
-}
-</style>
-<!--  <SimplePdfUploader
-      upload-url="https://your-api.com/upload"
-      :max-size="30"
-      @success="handleSuccess"
-      @error="handleError"
-    >
-      <!-- 自定义触发按钮 -->
-      <template v-slot:trigger="{ uploading }">
-        <button 
-          :disabled="uploading"
-          class="custom-btn"
-        >
-          {{ uploading ? '正在上传...' : '选择PDF文件' }}
-        </button>
-      </template>
-    </SimplePdfUploader> -->

+ 0 - 282
pages/admin/Jiazheng/common/jiazhengUpload.vue

@@ -1,282 +0,0 @@
-<template>
-	<view v-if="changjingType =='shenfenzheng'" class="sfz-upload-box" @click="showActionSheet">
-		<view v-if="!imageUrl" class="sfz-content"><text>+</text> 添加身份证</view>
-		<image class="sfz-image" v-else :src="imageUrl" mode=""></image>
-	</view>
-
-	<view v-else-if="changjingType =='more'" class="admin-upload-btn-box" @click="showActionSheet">
-		<text>+</text>
-	</view>
-	<view v-else class="admin-upload-btn-box" @click="showActionSheet">
-		<text v-if="!imageUrl">+</text>
-		<image v-else class="other-image" :src="imageUrl" mode=""></image>
-	</view>
-	<view v-if="bottomText" class="upload-bottom-text">
-		{{bottomText}}
-	</view>
-</template>
-
-<script>
-	import axios from 'axios';
-	import {
-		getAliyunPolicy
-	} from "@/api/jiazheng.js"
-		import cacheManager from "@/utils/cacheManager.js";
-	export default {
-		emits: ['getFileUrl'], // 声明自定义事件
-		data() {
-			return {
-				imageUrl: ""
-			}
-		},
-		props: {
-			bottomText: { // 试题序号
-				type: String
-			},
-			changjingType: {
-				type: String,
-				default: ''
-			},
-			img: {
-				type: String,
-				default: ''
-			}
-		},
-		watch: {
-			img: {
-				handler(newVal) {
-					this.imageUrl = newVal
-				}
-			},
-
-		},
-		methods: {
-			showActionSheet() {
-
-				// 判断是否是H5环境
-				// #ifdef H5
-				this.chooseImage('album'); // H5环境下直接选择相册
-				// #endif
-
-				// #ifndef H5
-				uni.showActionSheet({
-					itemList: ['拍照', '从相册选择'],
-					success: (res) => {
-						if (res.tapIndex === 0) {
-							this.chooseImage('camera');
-						} else if (res.tapIndex === 1) {
-							this.chooseImage('album');
-						}
-					}
-				});
-				// #endif
-
-			},
-			chooseImage(sourceType) {
-				uni.chooseImage({
-					count: 1, // 只能选择一张图片
-					sourceType: [sourceType], // 'camera' 或 'album'
-					success: (res) => {
-						console.log('res', res);
-
-						// #ifndef H5
-						const filePath = res.tempFilePaths[0];
-						this.uploadFileToAliyun(filePath);
-						// #endif
-						// #ifdef H5
-						const filePath = res.tempFiles[0];
-						this.uploadFileToAliyun(filePath);
-						// #endif
-					}
-				});
-			},
-			uploadFileToAliyun(filePath) {
-				console.log('filePath', filePath);
-
-				const loading = uni.showLoading({
-					title: '上传中...',
-					mask: true
-				});
-				try {
-
-					// #ifdef H5
-					const suffixList = filePath.name.split('.');
-					let req = {
-						prefix: 'resource/',
-						suffix: suffixList[suffixList.length - 1],
-					}
-					// #endif
-					// #ifndef H5
-					const suffix = filePath.split('.').pop();
-					let req = {
-						prefix: 'resource/',
-						suffix: suffix
-					}
-					// #endif
-					getAliyunPolicy(req).then(res => {
-						let that = this;
-						if (res.code == 0) {
-							const policyData = res.data;
-							console.log('policyData', policyData);
-
-							// #ifdef H5
-							const formData = new FormData();
-							formData.append('key', policyData.key);
-							formData.append('policy', policyData.policy);
-							formData.append('OSSAccessKeyId', policyData.accessid);
-							formData.append('signature', policyData.signature);
-							formData.append('success_action_status', '200');
-							formData.append('file', filePath);
-
-							axios.post(policyData.uploadUrl, formData)
-								.then(alRes => {
-									if (alRes.status === 200) {
-										that.imageUrl =
-											`${policyData.downloadUrl}/${policyData.key}`;
-										uni.showToast({
-											title: '上传成功',
-											icon: 'success'
-										});
-										that.$emit('getFileUrl', that.imageUrl);
-									} else {
-										uni.showToast({
-											title: '上传失败',
-										});
-									}
-								})
-							// #endif
-
-							// #ifndef H5
-							console.log('appappappappappapp');
-							// 非 H5 环境下使用 uni.uploadFile 上传
-							uni.uploadFile({
-								url: policyData.uploadUrl,
-								filePath: filePath,
-								name: 'file',
-								formData: {
-									key: policyData.key,
-									policy: policyData.policy,
-									OSSAccessKeyId: policyData.accessid,
-									signature: policyData.signature,
-									success_action_status: '200'
-								},
-								header: {
-									'Content-Type': 'multipart/form-data'
-								},
-								success(uploadRes) {
-									console.log('uploadRes', uploadRes);
-									if (uploadRes.statusCode === 200) {
-										that.imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
-										uni.showToast({
-											title: '上传成功',
-											icon: 'success'
-										});
-										that.$emit('getFileUrl', that.imageUrl);
-									} else {
-										uni.showToast({
-											title: '上传失败',
-										});
-									}
-								},
-								fail(err) {
-									console.log('err', err);
-								}
-							});
-							// #endif
-
-						} else {
-							uni.showToast({
-								title: '获取凭证失败',
-							});
-						}
-					});
-				} catch (error) {
-					uni.showToast({
-						title: '上传失败',
-						icon: 'none'
-					});
-					console.error('上传失败:', error);
-				} finally {
-					uni.hideLoading();
-				}
-			}
-			// uploadFileToAliyun(filePath) {
-			// 	console.log('filePath', filePath);
-			// 	const loading = uni.showLoading({
-			// 		title: '上传中...',
-			// 		mask: true
-			// 	});
-
-			// 	try {
-			// 		const suffix = filePath.split('.').pop();
-			// 		let req = {
-			// 			prefix: 'resource/',
-			// 			suffix: suffix
-			// 		}
-
-			// 		getAliyunPolicy(req).then(res => {
-			// 			let that = this
-			// 			if (res.code == 0) {
-			// 				const policyData = res.data;
-			// 				console.log('policyData', policyData);
-			// 				const formData = {
-			// 					key: policyData.key,
-			// 					policy: policyData.policy,
-			// 					OSSAccessKeyId: policyData.accessid,
-			// 					signature: policyData.signature,
-			// 					success_action_status: '200',
-			// 					file: {
-			// 						name: policyData.key,
-			// 						uri: filePath
-			// 					}
-			// 				};
-			// 				uni.uploadFile({
-			// 					url: policyData.uploadUrl,
-			// 					filePath: filePath,
-			// 					name: 'file',
-			// 					formData: formData,
-			// 					header: {
-			// 						'Content-Type': 'multipart/form-data'
-			// 					},
-			// 					success(uploadRes) {
-			// 						console.log('uploadRes', uploadRes);
-			// 						if (uploadRes.statusCode === 200) {
-			// 							that.imageUrl = `${policyData.downloadUrl}/${policyData.key}`;
-			// 							uni.showToast({
-			// 								title: '上传成功',
-			// 								icon: 'success'
-			// 							});
-			// 							console.log('imageUrl', that.imageUrl);
-			// 							that.$emit('getFileUrl', that.imageUrl);
-			// 						} else {
-			// 							uni.showToast({
-			// 								title: '上传失败',
-			// 							});
-			// 							return false
-			// 						}
-			// 					},
-			// 					fail(err) {
-			// 						console.log('err', err);
-			// 					}
-			// 				});
-
-			// 			} else {
-			// 				uni.showToast({
-			// 					title: '获取凭证失败',
-			// 				});
-			// 				return false
-			// 			}
-			// 		})
-			// 	} catch (error) {
-			// 		uni.showToast({
-			// 			title: '上传失败',
-			// 			icon: 'none'
-			// 		});
-			// 		console.error('上传失败:', error);
-			// 	} finally {
-			// 		uni.hideLoading();
-			// 	}
-			// },
-		}
-	};
-</script>

+ 0 - 104
pages/admin/Jiazheng/common/kechengLeixing.vue

@@ -1,104 +0,0 @@
-<template>
-	<uni-popup ref="popupKechengLeixingRef" type="top" :animation="false" :is-mask-click="false"
-		mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-filter-page">
-			<view class="icon-title-navBar-box">
-				<view @click="goUpPage" class="nav-bar-icon"></view>
-				<text class="nav-bar-title">筛选</text>
-			</view>
-			<view class="filter-body-box">
-				<radio-group @change="handleChange">
-					<!-- 报证机构 -->
-					<view class="filter-body-radio" v-for="item in data.list">
-						<label class="radio-name-box"
-							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
-							<radio :value="`${item.id}`" :checked="item.checked" activeBackgroundColor="#3fd2a1" style="transform:scale(0.8)"/>
-							{{item.lable}}
-						</label>
-						<view class="phone-radio-group filter-radio-group">
-							<view class="phone-radio-item" v-for="citem in item.children"
-								:class="{radioActive: activeSelect && activeSelect.id == citem.id}"
-								@click.stop="handleSelect(citem,item)">
-								{{citem.lable}}
-							</view>
-						</view>
-					</view>
-				</radio-group>
-			</view>
-			<view class="filter-btn-box">
-				<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
-				<button type="default" class="phone-green-btn filter-btn" @click="handleConfirm">筛选</button>
-			</view>
-		</view>
-	</uni-popup>
-
-
-</template>
-
-<script setup>
-	import {
-		reactive,
-		ref
-	} from "vue";
-
-	const emits = defineEmits(['select', 'reset']);
-	const data = reactive({
-		list: []
-	})
-	const activeSelect = ref(null);
-
-	const popupKechengLeixingRef = ref(null);
-
-	function goUpPage() {
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleConfirm() {
-		emits('select', activeSelect.value)
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleReset() {
-		activeSelect.value = null;
-		emits('reset')
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleChange(myData) {
-		const activeD = myData.detail.value;
-		data.list.forEach(item => {
-			if (item.id != activeD) {
-				item.checked = false
-			} else {
-				item.checked = true;
-				activeSelect.value = item;
-			}
-
-		})
-	}
-
-	function handleSelect(myData) {
-		data.list.forEach(item => {
-			item.checked = false
-		})
-		activeSelect.value = myData;
-	}
-
-	function showPopup({
-		data: myData
-	}) {
-		data.list = myData;
-		popupKechengLeixingRef.value.open('top')
-	}
-
-
-	defineExpose({
-		showPopup
-	})
-</script>
-
-<style lang="scss">
-	.active {
-		color: red
-	}
-</style>

+ 0 - 113
pages/admin/Jiazheng/common/search.vue

@@ -1,113 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <view class="select-jt-box" @click="toggleMenu">
-				<view class="selected-item">{{ selectedOption.label }}</view>
-				<view class="arrow" :class="{ 'arrow-up': isMenuOpen, 'arrow-down': !isMenuOpen }"></view>
-			  </view>
-			  <view class="select-list-box" v-if="isMenuOpen">
-				<view
-				  v-for="(option, index) in options"
-				  :key="option.value"
-				  class="menu-item"
-				  @click="selectOption(option)"
-				>
-				  {{ option.label }}
-				</view>
-			  </view>
-			  <input type="text" class="search-input" v-model="searchInput" :placeholder="searchPlaceholder" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-		<view class="search-clear-box" v-if="searchInput" @click="searchReset">
-			<icon></icon>
-			<text>清空搜索</text>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn','reset-search'])
-const searchPopup = ref(null); // 索引
-
-
-const options = ref([
-	  { label: '全部', value: 1 },
-	  { label: '姓名', value: 2 },
-	  { label: '手机号', value: 3 }
-	]);
-const searchPlaceholder= ref('请输入姓名、手机号等关键字');
-const searchInput= ref('');
-// 存储当前选中的选项对象
-const selectedOption = ref(options.value[0]);
- 
-// 存储菜单是否打开的状态
-const isMenuOpen = ref(false);
- 
-// 切换菜单打开/关闭状态的函数
-const toggleMenu = () => {
-  isMenuOpen.value = !isMenuOpen.value;
-};
- 
-// 选择选项的函数
-const selectOption = (option) => {
-  selectedOption.value = option;
-  searchInput.value = '';
-  if(option.label==="全部"){
-	  searchPlaceholder.value = '请输入姓名、手机号等关键字';
-  }else{
-	  searchPlaceholder.value = '请输入'+ option.label;
-  }
-  
-  isMenuOpen.value = false; // 选择后关闭菜单
-};
-
-function validatePhoneNumber(value){
-	const phoneRegex = /^1[3-9]\d{9}$/;
-	if (phoneRegex.test(value)) {
-		return '手机号';
-	} else {
-		return '姓名';
-	}
-}
-
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	let searchKey = '';
-	if(selectedOption.value.label==="全部"){
-		searchKey = validatePhoneNumber(searchInput.value)
-	}else{
-		searchKey = selectedOption.value.label;
-	}
-	// 搜索 key和 data
-	$emit('search-btn',searchKey,searchInput);
-	searchPopup.value.close();
-}
-
-// 清空搜索
-function searchReset(){
-	searchInput.value = '';
-	$emit('reset-search');
-}
-
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 42
pages/admin/Jiazheng/common/search2.vue

@@ -1,42 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <input type="text" class="search-input" v-model="searchInput" placeholder="请输入课程名称" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn'])
-const searchPopup = ref(null); // 索引
-
-const searchInput= ref('');
- 
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	$emit('search-btn',searchInput);
-	searchPopup.value.close();
-}
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 148
pages/admin/Jiazheng/common/share.vue

@@ -1,148 +0,0 @@
-<template>
-	<button @click="showShareMenu" type="default" class="phone-white-btn bz-tel-btn fx-btn-box">分享</button>
-	<!-- 答题卡 -->
-	<uni-popup ref="downPopupRef" background-color="#fff" :animation="false" :is-mask-click="true" :mask-click="false">
-		<view class="share-haibao-box">
-			<view class="phone-line-title">分享</view>
-			<view class="share-list-box">
-				<view class="share-item-box" @click="getImage">
-					<view class="share-icon-box">
-						<icon></icon>
-					</view>
-					<text>下载图片</text>
-				</view>
-			</view>
-		</view>
-	</uni-popup>
-
-</template>
-
-<script>
-	import {
-		jiazhengSharePic
-	} from "@/api/jiazheng.js"
-	export default {
-		data() {
-			return {
-				imageUrl: ''
-			};
-		},
-		props: {
-			id: {
-				type: Number,
-
-			}
-		},
-		methods: {
-
-			showShareMenu() {
-				this.$refs.downPopupRef.open('bottom')
-			},
-
-			getImage() {
-				console.log('id', this.id);
-				jiazhengSharePic({
-					id: this.id
-				}).then(res => {
-					console.log('res', res);
-					if (res.code == 0 && res.data) {
-						this.imageUrl = res.data
-						this.downloadImage()
-					} else {
-						uni.showToast({
-							title: '获取图片失败',
-							icon: 'none'
-						});
-						return false
-					}
-				})
-			},
-
-
-			downloadImage() {
-				// #ifdef H5
-				this.downloadImageForH5();
-				// #endif
-
-				// #ifdef APP-PLUS
-				this.downloadImageForApp();
-				// #endif
-			},
-
-
-			downloadImageForH5() {
-
-				const link = document.createElement('a');
-				link.href = this.imageUrl;
-				link.download = 'image.jpg';
-				document.body.appendChild(link);
-				link.click();
-				document.body.removeChild(link);
-				uni.showToast({
-					title: '图片已下载,请手动保存到相册。',
-					icon: 'none'
-				});
-			},
-
-			downloadImageForApp() {
-				uni.showLoading({
-					title: '下载中...',
-					mask: true
-				});
-
-				uni.downloadFile({
-					url: this.imageUrl,
-					success: (res) => {
-						if (res.statusCode === 200) {
-							const tempFilePath = res.tempFilePath; // 下载后的临时文件路径
-							this.saveImageToAlbum(tempFilePath); // 保存到相册
-						} else {
-							uni.showToast({
-								title: '下载失败',
-								icon: 'none'
-							});
-						}
-					},
-					fail: (err) => {
-						console.error('下载失败:', err);
-						uni.showToast({
-							title: '下载失败',
-							icon: 'none'
-						});
-					},
-					complete: () => {
-						uni.hideLoading();
-					}
-				});
-			},
-
-
-			saveImageToAlbum(tempFilePath) {
-				// #ifdef APP-PLUS
-				this.saveImage(tempFilePath);
-				// #endif
-			},
-			saveImage(tempFilePath) {
-				uni.saveImageToPhotosAlbum({
-					filePath: tempFilePath,
-					success: () => {
-						uni.showToast({
-							title: '保存成功',
-							icon: 'success'
-						});
-							this.$refs.downPopupRef.close()
-					},
-					fail: (err) => {
-						console.error('保存失败:', err);
-						uni.showToast({
-							title: '保存失败',
-							icon: 'none'
-						});
-							this.$refs.downPopupRef.close()
-					}
-				});
-			}
-		}
-	};
-</script>
-

+ 0 - 711
pages/admin/Jiazheng/gerenZiliao.vue

@@ -1,711 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<!-- 涂层 子家政公司使用 -->
-		<view :class="isZijiazheng=='true'?'mask-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 :disabled="!statusFlag && status=='edit'" type="number" v-model="formData.userName"
-					placeholder="请输入手机号" maxlength="11" />
-			</view>
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>
-				<uni-easyinput :disabled="!statusFlag && status=='edit'" v-model="formData.realName"
-					placeholder="请输入姓名" />
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label">
-					<text class="form-label-require">*</text>
-					<text v-if="formData.idtype ==1">身份证号</text>
-					<text v-if="formData.idtype ==2">护照号</text>
-					<icon @click="idCardChange" class="change-icon">切换</icon>
-				</view>
-				<uni-easyinput :disabled="!statusFlag && status=='edit'" @blur="idCardBlur" v-model="formData.idcard"
-					placeholder="请输入身份证号或护照号" maxlength="18" />
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>生日</view>
-				<uni-datetime-picker type="line" v-model="formData.birthday">
-					<view class="form-radio-select">
-						<view>{{formData.birthday}}</view>
-						<icon></icon>
-					</view>
-				</uni-datetime-picker>
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>籍贯</view>
-				<picker mode="multiSelector" :range="multiArray" :range-key="'label'" :value="multiIndex"
-					@columnchange="bindMultiPickerColumnChange" @change="onPickerConfirm" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>
-							{{formData.jiguanShengName === formData.jiguanShiName ? formData.jiguanShengName  : `${formData.jiguanShengName} ${formData.jiguanShiName}`}}
-						</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require">*</text>身份证地址</view>
-				<uni-easyinput v-model="formData.hujiDizhi" placeholder="请输入身份证地址" />
-			</view>
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require">*</text>民族</view>
-				<picker :range="minzuList" mode='selector' :value="formData.minzuIndex" range-key="name"
-					@change="minzuChange" @cancel="minzuCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.minzu.name }}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</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" :selectedIds='formData.xueli.id' 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" :selectedIds='formData.hunyin.id' :showAdd="false"
-					@change="selectChangeHunyinList" />
-			</view>
-
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require"></text>通讯地址</view>
-				<view @click="openMap" class="input-text-row">
-					<view v-if="formData.jingdu&&formData.weidu">{{formData.juzhuDizhi}}</view>
-					<view v-if="formData.jingdu ==''&&formData.weidu ==''">{{formData.juzhuDizhi}} <text
-							v-if="formData.juzhuDizhi" style="color: #3fd2a1;">(无经纬度)</text></view>
-					<icon></icon>
-				</view>
-			</view>
-
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>星座</view>
-				<picker :range="xingzuoList" mode='selector' :value="formData.xingzuoIndex" range-key="name"
-					@change="xingzuoChange" @cancel="xingzuoCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.xingzuo.name  }}</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="shuxiangList" mode='selector' :value="formData.shuxiangIndex" range-key="name"
-					@change="shuxiangChange" @cancel="shuxiangCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ formData.shuxiang.name  }}</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" :checked="formData.xingzuoFlag" 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" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext" class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit' &&isZijiazheng !='true'" @click="editSave" class="phone-green-btn">保存</button>
-			</view>
-			<uni-popup ref="popupMap" background-color="#fff" :is-mask-click="false" :mask-click="false">
-				<customMap style="100vh" @xuanzeAdress="xuanzeAdress" @currentWeizhi="currentWeizhi" @close="mapClose">
-				</customMap>
-			</uni-popup>
-		</view>
-	</view>
-</template>
-
-<script>
-	import dataChecked from './common/dataChecked.vue';
-	import jiazhengUpload from "./common/jiazhengUpload.vue"
-	import customMap from "@/components/customMap/customMap.vue"
-	import {
-		toast
-	} from "@/utils/common";
-	import {
-		getJiazhengXueli,
-		getJiazhengHunyin,
-		getJiazhengMinzu,
-		getJiazhengShuxiang,
-		getJiazhengXingzuo,
-		getJiazhengJiguan,
-		jiazhengIdcard,
-		jiazhengCheck
-	} from "@/api/jiazheng.js";
-	export default {
-		components: {
-			dataChecked,
-			jiazhengUpload,
-			customMap
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			statusFlag: {
-				type: Boolean,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-			
-		},
-		data() {
-			return {
-				formData: {
-					userName: '',
-					realName: '',
-					idcard: '',
-					icon: '',
-					birthday: '',
-					hujiDizhi: '',
-					idtype: '1',
-					gender: '',
-					juzhuDizhi: '',
-					jingdu: '',
-					weidu: '',
-					shenfenzhengUrl: '',
-					minzu: {},
-					shuxiang: {
-
-					},
-					xingzuo: {
-
-					},
-					hunyin: {
-						name: '',
-
-					},
-					xueli: {
-
-					},
-					jiguanObj: {},
-					jiguanShengId: '',
-					jiguanShiId: '',
-					jiguanShiName: '',
-					jiguanShengName: '',
-					agree: false,
-					xingzuoIndex: 0,
-					minzuIndex: 0,
-					shuxiangIndex: 0,
-					xingzuoFlag: false
-
-				},
-				selectedIds: [],
-				ceshidata: '',
-				xueliList: [],
-				hunyinList: [],
-				shuxiangList: [],
-				xingzuoList: [],
-				minzuList: [],
-				//	areaTree: [],
-				multiArray: [
-					[],
-					[]
-				], // 初始化两列数据
-				multiIndex: [0, 0], // 初始化选中索引
-				allData: [], // 存储后端返回的完整数据
-
-			}
-		},
-		created() {
-
-			console.log('statusFlag', this.statusFlag);
-			uni.showLoading({
-				title: '加载中'
-			});
-			this.initRequests()
-		},
-		methods: {
-			xuanzeAdress(data) {
-				console.log('data', data);
-				this.formData.juzhuDizhi = data
-				this.mapClose()
-			},
-			currentWeizhi(data) {
-				console.log('data', data);
-				this.formData.jingdu = data.lng
-				this.formData.weidu = data.lat
-				this.mapClose()
-			},
-			openMap() {
-				this.$refs.popupMap.open('top')
-			},
-			mapClose() {
-				this.$refs.popupMap.close()
-			},
-			idCardBlur() {
-				let req = {
-					idcard: this.formData.idcard,
-				};
-				jiazhengCheck(req).then(res => {
-					if (res.code == 0) {
-						console.log(res);
-						if (res.data.userId != 0) {
-							this.$nextTick(() => {
-								this.formData.userName = res.data.userName
-								this.formData.realName = res.data.realName
-								this.formData.idcard = res.data.idcard
-								this.formData.idtype = res.data.idtype
-								this.formData.jiguanObj.jiguanShengId = res.data.jiguanShengId
-								this.formData.jiguanShengName = res.data.jiguanShengName
-								this.formData.jiguanObj.jiguanShiId = res.data.jiguanShiId
-								this.formData.jiguanShiName = res.data.jiguanShiName
-								this.formData.juzhuDizhi = res.data.juzhuDizhi
-								this.formData.birthday = res.data.birthday
-								this.formData.minzu = this.dataForId(this.minzuList, res.data.minzu) || ''
-								this.formData.gender = res.data.gender
-								this.formData.xueli = this.dataForId(this.xueliList, res.data.xueli) || ''
-								this.formData.hunyin = this.dataForId(this.hunyinList, res.data.hunyin) ||
-									''
-								this.formData.hujiDizhi = res.data.hujiDizhi
-								this.formData.juzhuDizhi = res.data.juzhuDizhi
-								this.formData.xingzuo = this.dataForId(this.xingzuoList, res.data
-									.xingzuo) || ''
-								this.formData.shuxiang = this.dataForId(this.shuxiangList, res.data
-									.xingzuo) || ''
-								this.formData.xingzuoFlag = res.data.xingzuoFlag
-								this.$emit('idCardBlur', res.data);
-							});
-						} else {
-
-						}
-					} else {
-						this.$message.error('');
-						return false;
-					}
-				});
-			},
-
-
-			async initRequests() {
-				try {
-					await Promise.all([
-						this.getXueli(),
-						this.getHunyin(),
-						this.getMinzu(),
-						this.getXingzuo(),
-						this.getShuxiang(),
-						this.getJiguan(),
-					]);
-					uni.hideLoading();
-					if (this.status == 'edit') {
-						this.$emit('finishDom', 'gerenZiliao');
-					}
-				} catch (e) {
-					uni.hideLoading();
-					uni.showToast({
-						title: `请求失败!`,
-						icon: 'none',
-						duration: 2000
-					})
-				}
-			},
-			editinfo(data) {
-				this.$nextTick(() => {
-					this.formData.userName = data.userName
-					this.formData.realName = data.realName
-					this.formData.idcard = data.idcard
-					this.formData.jingdu = data.jingdu
-					this.formData.weidu = data.weidu
-					this.formData.idtype = data.idtype
-					this.formData.jiguanObj.jiguanShengId = data.jiguanShengId
-					this.formData.jiguanShengName = data.jiguanShengName
-					this.formData.jiguanObj.jiguanShiId = data.jiguanShiId
-					this.formData.jiguanShiName = data.jiguanShiName
-					this.formData.juzhuDizhi = data.juzhuDizhi
-					this.formData.birthday = data.birthday
-					this.formData.minzu = this.dataForId(this.minzuList, data.minzu) || ''
-					this.formData.gender = data.gender
-					this.formData.xueli = this.dataForId(this.xueliList, data.xueli) || ''
-					this.formData.hunyin = this.dataForId(this.hunyinList, data.hunyin) || ''
-					this.formData.hujiDizhi = data.hujiDizhi
-					this.formData.juzhuDizhi = data.juzhuDizhi
-					this.formData.xingzuo = this.dataForId(this.xingzuoList, data.xingzuo) || ''
-					this.formData.shuxiang = this.dataForId(this.shuxiangList, data.xingzuo) || ''
-					this.formData.xingzuoFlag = data.xingzuoFlag
-
-				})
-			},
-			dataForId(list, id) {
-				return list.find(item => item.id == id);
-			},
-
-			idCardChange(data) {
-				this.formData.idtype = this.formData.idtype == 1 ? 2 : 1;
-			},
-			getJiguan() {
-				getJiazhengJiguan({}).then(res => {
-					//	this.areaTree = res.data
-					//	this.pickerData = this.formatData(res.data);
-					this.allData = res.data;
-					const provinces = this.allData.map(province => ({
-						label: province.lable,
-						value: province.id,
-						children: province.children,
-					}));
-
-					const cities = this.allData[0].children.map(city => ({
-						label: city.lable,
-						value: city.id,
-					}));
-					// 回显已选中的城市(假设已选中的城市 id 是 1301)
-					//this.setSelectedCity(1301);
-
-					this.multiArray = [provinces, cities];
-					//console.log('this.pickerData', this.pickerData);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-
-
-
-			bindMultiPickerColumnChange(e) {
-				const {
-					column,
-					value
-				} = e.detail;
-
-				// 更新 multiIndex
-				this.multiIndex[column] = value;
-
-				// 如果是第一列(省份)发生变化,更新第二列(城市)
-				if (column === 0) {
-					const selectedProvince = this.multiArray[0][value];
-					const cities = selectedProvince.children.map(city => ({
-						label: city.lable,
-						value: city.id,
-					}));
-
-					// 更新 multiArray 和 multiIndex
-					this.multiArray[1] = cities;
-					this.multiIndex[1] = 0; // 重置城市列为第一个选项
-				}
-
-				// 强制更新视图
-				//this.$forceUpdate();
-			},
-			// 确认选择时获取完整数据
-			onPickerConfirm() {
-				const [provinceIndex, cityIndex] = this.multiIndex;
-
-				const selectedProvince = this.multiArray[0][provinceIndex];
-				const selectedCity = this.multiArray[1][cityIndex];
-				console.log("选中的省份完整数据:", selectedProvince);
-				console.log("选中的城市完整数据:", selectedCity);
-				this.formData.jiguanShengId = selectedProvince ? selectedProvince.value : ''
-				this.formData.jiguanShiId = selectedCity ? selectedCity.value : ''
-				this.formData.jiguanShiName = selectedCity ? selectedCity.label : ''
-				this.formData.jiguanShengName = selectedProvince ? selectedProvince.label : ''
-				this.formData.jiguanObj.jiguanShengId = selectedProvince ? selectedProvince.value : ''
-				this.formData.jiguanObj.jiguanShiId = selectedCity ? selectedCity.value : ''
-
-			},
-			setSelectedCity(cityId) {
-				for (let i = 0; i < this.allData.length; i++) {
-					const province = this.allData[i];
-					for (let j = 0; j < province.children.length; j++) {
-						const city = province.children[j];
-						if (city.id === cityId) {
-							// 设置选中的省份和城市索引
-							this.multiIndex = [i, j];
-
-							// 更新 multiArray 的第二列(城市)
-							const cities = province.children.map(city => ({
-								label: city.lable,
-								value: city.id,
-							}));
-							this.multiArray[1] = cities;
-
-							// 强制更新视图
-							this.$forceUpdate();
-							return;
-						}
-					}
-				}
-			},
-
-			checkAllFields() {
-				const requiredFields = [{
-						key: 'userName',
-						name: '手机号'
-					},
-					{
-						key: 'realName',
-						name: '姓名'
-					},
-					{
-						key: 'idcard',
-						name: '身份证号'
-					},
-					{
-						key: 'birthday',
-						name: '生日'
-					},
-					// {
-					// 	key: 'hometown',
-					// 	name: '家乡',
-					// 	type: 'array'
-					// },
-					// {
-					// 	key: 'hujiDizhi',
-					// 	name: '身份证地址'
-					// },
-					{
-						key: 'gender',
-						name: '性别'
-					},
-					// {
-					// 	key: 'juzhuDizhi',
-					// 	name: '通讯地址'
-					// },
-					{
-						key: 'minzu',
-						name: '民族',
-						type: 'object'
-					},
-					{
-						key: 'jiguanObj',
-						name: '籍贯',
-						type: 'object'
-					},
-					{
-						key: 'xueli',
-						name: '学历',
-						type: 'object'
-					},
-					// {
-					// 	key: 'shuxiang',
-					// 	name: '属相',
-					// 	type: 'object'
-					// },
-					// {
-					// 	key: 'xingzuo',
-					// 	name: '星座',
-					// 	type: 'object'
-					// },
-				]
-
-				for (const field of requiredFields) {
-					const value = this.formData[field.key]
-
-					// 根据不同类型进行存在验证
-					if (field.type === 'array' && !value?.length) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (field.type === 'object' && !Object.keys(value).length) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (field.type === 'boolean' && value !== true) {
-						this.showAlert(field.name)
-						return false
-					}
-					if (!field.type && !value?.toString().trim()) {
-						this.showAlert(field.name)
-						return false
-					}
-				}
-				return true
-			},
-			showAlert(fieldName) {
-				uni.showToast({
-					title: `${fieldName}不能为空`,
-					icon: 'none',
-					duration: 2000
-				})
-			},
-
-			getXueli() {
-				getJiazhengXueli({}).then(res => {
-					this.xueliList = res.data
-					//	console.log('xueliList', this.xueliList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getXingzuo() {
-				getJiazhengXingzuo({}).then(res => {
-					this.xingzuoList = res.data
-					//			console.log('xingzuoList', this.xingzuoList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getShuxiang() {
-				getJiazhengShuxiang({}).then(res => {
-					this.shuxiangList = res.data
-					//		console.log('shuxiangList', this.shuxiangList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getHunyin() {
-				getJiazhengHunyin({}).then(res => {
-					this.hunyinList = res.data
-					//	console.log('hunyinList', this.hunyinList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getMinzu() {
-				getJiazhengMinzu({}).then(res => {
-					this.minzuList = res.data
-					//		console.log('minzuList', this.minzuList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getFileUrl(data) {
-				this.formData.shenfenzhengUrl = data
-				console.log('data', data);
-				jiazhengIdcard({
-					url: this.formData.shenfenzhengUrl
-				}).then(res => {
-					console.log('res', res);
-					if (res.code == 0) {
-
-
-
-
-						this.formData.realName = res.data.name
-						this.formData.idtype = '1'
-						this.formData.gender = res.data.genderId
-						this.formData.minzu.name = res.data.minzuName
-						this.formData.minzu.id = res.data.minzuId
-						this.formData.birthday = res.data.birthDate
-						this.formData.hujiDizhi = res.data.address
-						this.formData.idcard = res.data.idNumber
-						this.formData.shuxiang.id = res.data.shuxiangId
-						this.formData.shuxiang.name = res.data.shuxiangName
-						this.formData.xingzuo.id = res.data.xingzuoId
-						this.formData.xingzuo.name = res.data.xingzuoName
-						this.formData.jiguanShengId = res.data.jiguanShengId
-						this.formData.jiguanShiId = res.data.jiguanShiId
-						this.formData.jiguanShengName = res.data.jiguanShengName
-						this.formData.jiguanShiName = res.data.jiguanShiName
-						this.formData.jiguanObj.jiguanShengId = res.data.jiguanShengId
-						this.formData.jiguanObj.jiguanShiId = res.data.jiguanShiId
-					}
-				})
-			},
-			minzuChange(e) {
-				const index = e.detail.value
-				this.formData.minzu = this.minzuList[index]
-				//console.log('this.formData.minzu', this.formData.minzu);
-
-			},
-			minzuCancel() {
-				this.formData.minzuIndex = 0
-			},
-			xingzuoChange(e) {
-				const index = e.detail.value
-				this.formData.xingzuo = this.xingzuoList[index]
-				//	console.log('this.formData.xingzuo', this.formData.xingzuo);
-
-			},
-			xingzuoCancel() {
-				this.formData.xingzuoIndex = 0
-			},
-			shuxiangChange(e) {
-				const index = e.detail.value
-				this.formData.shuxiang = this.shuxiangList[index]
-				//console.log('this.formData.shuxiang', this.formData.shuxiang);
-
-			},
-			shuxiangCancel() {
-				this.formData.shuxiangIndex = 0
-			},
-			selectChangeXueliList(data) {
-				if (data.length > 0) {
-					this.formData.xueli = data[0]
-				} else {
-					this.formData.xueli = {}
-				}
-			},
-			genderSelect(data) {
-				if (!this.statusFlag && this.status == 'edit ') {
-					toast("非未办证状态,禁止修改")
-					return false
-				}
-				this.formData.gender = data
-			},
-			selectChangeHunyinList(data) {
-				console.log('data', data[0]);
-				if (data.length > 0) {
-					this.formData.hunyin = data[0]
-				} else {
-					this.formData.hunyin = {}
-				}
-
-			},
-			switchXingzuoChange(e) {
-				this.formData.xingzuoFlag = e.detail.value
-			},
-			goNext() {
-				console.log('formData', this.formData);
-
-				if (!this.checkAllFields()) {
-					return false
-				}
-				if (!this.formData.agree) {
-					uni.showToast({
-						title: "请勾选本人同意!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$emit('goNext', this.formData, 0);
-			},
-			editSave() {
-				console.log('formData', this.formData);
-
-				if (!this.checkAllFields()) {
-					return false
-				}
-				if (!this.formData.agree) {
-					uni.showToast({
-						title: "请勾选本人同意!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$emit('editSave', this.formData);
-			},
-
-			handleAgree(e) {
-				this.formData.agree = e.detail.value.length > 0
-			},
-		}
-	}
-</script>

+ 0 - 516
pages/admin/Jiazheng/index.vue

@@ -1,516 +0,0 @@
-<template>
-	<view class="admin-jiazheng-list">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-			<uni-icons class="nav-bar-right-icon bar-ml10" type="search" size="20" @click="toggle('top')"></uni-icons>
-		</view>
-		<view v-if="isZijiazhengFlag !='true'" class="jiazheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text class="select-text">{{data.zyName}}</text>
-				<icon :class="allJtClass" />
-			</view>
-
-			<view class="jiazheng-search-right">
-				<!--  当前点击 增加 saixuan-active-->
-				<view @click="updateTimeClick" :class="shaixuanStyleUpdate">
-					<text>更新时间</text>
-					<icon :class="updataJtClass" />
-				</view>
-				<view @click="luruTimeClick" :class="shaixuanStyleluru">
-					<!-- class切换  saixuan-jt-default  saixuan-jt-click-->
-					<text>录入时间</text>
-					<icon :class="luruJtClass" />
-				</view>
-				<view @click="juliClick" :class="shaixuanStylejuli">
-					<!-- class切换  saixuan-jt-default  saixuan-jt-click-->
-					<text :class="data.weizhiFlag?'':'saixuan-disabled'">距离排序</text>
-					<icon :class="juliJtClass" />
-				</view>
-			</view>
-		</view>
-		<view class="all-type-box" v-show="isOpen" @click="clickAlltype">
-			<dataChecked :list="allType" mode="single" :defaultCount="99" :showAdd="false"
-				@change="selectChangeSkill" />
-		</view>
-		<view v-if="isZijiazhengFlag !='true'" class="jz-new-btn-box">
-			<button type="default" class="phone-green-btn" @click="addJiazhengRenyuan">新增人员</button>
-		</view>
-		<view>
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" @scrolltolower="onScrolltolower" refresher-background="transparent"
-				@refresherrefresh="onRefresh" class="jz-scroll-view">
-				<uni-list class="admin-list-box">
-
-					<uni-list-item v-for="item in data.list" class="jz-list-item-box">
-						<template v-slot:body>
-							<view v-if="isZijiazhengFlag !='true'" class="card-head-row">
-								<view class="head-name">{{item.realName}}</view>
-								<button type="default" class="phone-green-btn bz-bind-btn"
-									@click.stop="kechengBind(item)">课程绑定</button>
-								<button type="default" class="phone-green-btn bz-tel-btn"
-									@click.stop="telephone(item)">打电话</button>
-								<share :id="item.id" ref="shareRef">分享</share>
-
-							</view>
-							<view @click="lookUserInfo(item)" class="card-body-row">
-								<view class="card-img-box">
-									<img :src="item.icon" v-if="item.icon">
-									<icon class="phone-default-userImg" v-else></icon>
-								</view>
-								<view class="body-content-row">
-									<view class="content-text-row">
-										<view> {{item.age}}岁<text v-if="item.jingyan"> | {{item.jingyan}}经验</text>
-										</view>
-										<view class="text-status">{{item.zhuangtai}}</view>
-									</view>
-									<view class="content-text-row">
-										{{item.jiguanShengName === item.jiguanShiName ? item.jiguanShengName  : `${item.jiguanShengName} ${item.jiguanShiName}`}}人
-									</view>
-
-									<view v-if="item.zyNames.length>0" class="content-lx-box">
-										<view class="content-lx-item" v-for="item2 in item.zyNames" :key="item2">
-											{{item2}}
-										</view>
-									</view>
-									<!-- <view class="content-text-row">{{item.jiguan}}</view> -->
-								</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>
-		<view>
-			<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn"
-				@reset-search="dialogSearchReset"></search-dialog>
-		</view>
-		<customTabbarAdminVue :current-tab="1"></customTabbarAdminVue>
-	</view>
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		getJiazhengList,
-		getJiazhengJineng,
-		getJiazhengZhiyeAll,
-		getJiazhengLeixing
-	} from "@/api/jiazheng.js"
-	import dataChecked from './common/dataChecked.vue';
-	import searchDialog from "./common/search.vue";
-	import share from "./common/share.vue";
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	const searchDialogRef = ref(null);
-	const shareRef = ref(null);
-	let allType = ref([])
-	let data = reactive({
-		zyId: '',
-		zyName: '全部职业',
-		page: 0,
-		size: 10,
-		realName: '',
-		sortRule: '', //排序规则(1降序,2升序
-		sortRule: '', //排序类型(1更新时间,2录入时间)
-		userName: '',
-		weidu: '',
-		jingdu: '',
-		weizhiFlag: false,
-		id: '',
-		list: [], // 考试列表
-		loading: false,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		}
-	})
-	let isOpen = ref(false)
-	let isZijiazhengFlag = ref('false')
-	let defauleImg = ref('@/static/images/my/user-default-img.png')
-	const allJtClass = 'select-jt-default';
-	let updataJtClass = ref('');
-	let luruJtClass = ref('');
-	let juliJtClass = ref('');
-	let shaixuanStyleUpdate = ref('saixuan-item-box');
-	let shaixuanStyleluru = ref('saixuan-item-box');
-	let shaixuanStylejuli = ref('saixuan-item-box');
-	const isOpenSelect = ref(false);
-	const selectedOption = ref('');
-	let isFirstClickUpdate = ref('true')
-	let isFirstClickluru = ref('true')
-	let isFirstClickjuli = ref('true')
-	let userIdList = ref(null)
-	let listIds = ref(null)
-	let startDate = ref(null)
-	let endDate = ref(null)
-	let from = ref(null)
-	let jzId = ref(null)
-
-	function updateTimeClick() {
-		data.sortType = 1
-		const isFirst = isFirstClickUpdate.value == 'true';
-		const isSecond = isFirstClickUpdate.value == 'false';
-		if (isFirst) {
-			shaixuanStyleUpdate.value = 'saixuan-item-box saixuan-active';
-			updataJtClass.value = 'saixuan-jt-default';
-			isFirstClickUpdate.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStyleUpdate.value = 'saixuan-item-box saixuan-active';
-			updataJtClass.value = 'saixuan-jt-click';
-			isFirstClickUpdate.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStyleUpdate.value = 'saixuan-item-box';
-			updataJtClass.value = '';
-			isFirstClickUpdate.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function onScrolltolower() {
-		getMore()
-	}
-
-
-	function luruTimeClick() {
-		data.sortType = 2
-		const isFirst = isFirstClickluru.value == 'true';
-		const isSecond = isFirstClickluru.value == 'false';
-		if (isFirst) {
-			shaixuanStyleluru.value = 'saixuan-item-box saixuan-active';
-			luruJtClass.value = 'saixuan-jt-default';
-			isFirstClickluru.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStyleluru.value = 'saixuan-item-box saixuan-active';
-			luruJtClass.value = 'saixuan-jt-click';
-			isFirstClickluru.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStyleluru.value = 'saixuan-item-box';
-			luruJtClass.value = '';
-			isFirstClickluru.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function juliClick() {
-		if (!data.weizhiFlag) {
-			uni.showToast({
-				title: `当前位置经纬度获取失败,请重新进入该页面!`,
-				icon: 'none',
-				duration: 2000
-			})
-			return false
-		}
-		data.sortType = 3
-		const isFirst = isFirstClickjuli.value == 'true';
-		const isSecond = isFirstClickjuli.value == 'false';
-		if (isFirst) {
-			shaixuanStylejuli.value = 'saixuan-item-box saixuan-active';
-			juliJtClass.value = 'saixuan-jt-default';
-			isFirstClickjuli.value = 'false';
-			data.sortRule = 1
-		} else if (isSecond) {
-			shaixuanStylejuli.value = 'saixuan-item-box saixuan-active';
-			juliJtClass.value = 'saixuan-jt-click';
-			isFirstClickjuli.value = 'empty';
-			data.sortRule = 2
-		} else {
-			shaixuanStylejuli.value = 'saixuan-item-box';
-			juliJtClass.value = '';
-			isFirstClickjuli.value = 'true';
-			data.sortRule = 0
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function dialogSearchBtn(name, searchData) {
-		switch (name) {
-			case '姓名':
-				dialogSearchReset();
-				data.realName = searchData.value;
-				break;
-			case '手机号':
-				data.userName = searchData.value;
-				break;
-		}
-		data.page = 0;
-		refreshData();
-
-	}
-
-	function dialogSearchReset() {
-		data.userName = '';
-		data.realName = '';
-	}
-	const clickAlltype = (data) => {
-		isOpen.value = !isOpen.value;
-	}
-
-	const toggle = (data, index) => {
-		searchDialogRef.value.handleShow();
-	}
-	const addJiazhengRenyuan = () => {
-		let pageInfo = {
-			status: 'add'
-		}
-		uni.redirectTo({
-			url: "/pages/admin/Jiazheng/jiazhengUserManager?pageInfo=" + JSON.stringify(pageInfo)
-		})
-	}
-	const lookUserInfo = (data) => {
-		let pageInfo = {
-			status: 'edit',
-			id: data.id,
-			userId: data.userId,
-			isZijiazheng: isZijiazhengFlag.value,
-			from: from.value,
-			endDate: endDate.value,
-			startDate: startDate.value,
-			jzId: jzId.value,
-			userIdList: userIdList.value ? userIdList.value : "",
-			listIds: listIds.value ? listIds.value : "",
-			
-		}
-		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/jiazhengUserInfo?pageInfo=` + JSON.stringify(pageInfo)
-		})
-	}
-
-	function goUpPage() {
-		if (from.value == 'zijiazhenggongsi') {
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/index?${originalParams}`
-			})
-		}else if (from.value == 'banzhengshuliang'){
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&listIds=${listIds.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/banzhengshuliang?${originalParams}`
-			})
-		}else if (from.value == 'yibanzhengshuliang'){
-			const originalParams =
-				`isZijiazheng=true&userIdList=${userIdList.value}&startDate=${startDate.value}&endDate=${endDate.value}&jzId=${jzId.value}&listIds=${listIds.value}&from=zijiazhenggongsi`
-			uni.redirectTo({
-				url: `/pages/admin/zijiazheng/yibanzhengshuliang?${originalParams}`
-			})
-		} else {
-			uni.redirectTo({
-				url: `/pages/admin/ShouYe/shouye`
-			})
-		}
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function telephone(data) {
-		console.log('data', data);
-		if (data.userName) {
-			uni.makePhoneCall({
-				phoneNumber: data.userName
-			});
-		} else {
-			uni.showToast({
-				title: `无电话号`,
-				icon: 'none',
-				duration: 2000
-			})
-			return false
-		}
-
-	}
-
-	function kechengBind(data) {
-		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/kechengBind?id=` + data.id
-		})
-	}
-
-	function selectChangeSkill(item) {
-		if (item.length > 0) {
-			data.zyId = item[0].id
-			data.zyName = item[0].name
-			console.log('selectChangeSkill', item);
-			data.page = 0;
-			refreshData()
-		}
-	}
-	const convertToArray = (str) => str.split(',').map(item => item.trim());
-
-	function refreshData() {
-		const opt = {
-			"zyId": data.zyId == '全部职业' ? '' : data.zyId,
-			"page": 1,
-			"realName": data.realName,
-			"size": 10,
-			"sortRule": data.sortRule,
-			"sortType": data.sortType,
-			"userName": data.userName,
-			"jingdu": data.jingdu,
-			"weidu": data.weidu,
-			"jzId": jzId.value,
-			"userIdList": userIdList.value ? convertToArray(userIdList.value) : []
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getJiazhengList(opt).then(res => {
-			data.list = data.list.concat(res.data.data);
-			data.list = data.list.map(item => {
-				const newItem = {
-					...item
-				};
-				if (item.zyNames == '') {
-					newItem.zyNames = []
-				} else {
-					newItem.zyNames = item.zyNames.split(',');
-				}
-				return newItem;
-			})
-			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 = {
-			"zyId": data.zyId == '全部职业' ? '' : data.zyId,
-			"page": 1,
-			"realName": data.realName,
-			"size": 10,
-			"sortRule": data.sortRule,
-			"sortType": data.sortType,
-			"userName": data.userName,
-			"jingdu": data.jingdu,
-			"weidu": data.weidu,
-			"jzId": jzId.value,
-			"userIdList": userIdList.value ? convertToArray(userIdList.value) : []
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getJiazhengList(opt).then(res => {
-
-			data.list = data.list.concat(res.data.data);
-			data.list = data.list.map(item => {
-				const newItem = {
-					...item
-				};
-				// if(item.zyNames ==''){
-				// 	newItem.zyNames = []
-				// }else{
-				// newItem.zyNames = item.zyNames.split(',');
-				// }
-				// 处理 zyNames 字段
-				if (typeof newItem.zyNames !== 'string') {
-					newItem.zyNames = [];
-				} else {
-					newItem.zyNames = newItem.zyNames.trim() == '' ? [] : newItem.zyNames.split(',');
-				}
-				return newItem;
-			})
-			console.log('data.list', data.list);
-			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 getLeixing() {
-		let req = {}
-		getJiazhengZhiyeAll(req).then(res => {
-			res.data.unshift({
-				id: '',
-				name: '全部职业'
-			});
-			allType = res.data
-			//	allType = dataConversionObject(res.data)
-			console.log('allType', allType);
-		})
-	}
-
-	function dataConversionObject(data) {
-		let newList
-		newList = data.map((name, index) => ({
-			id: index,
-			name: name
-		}));
-		return newList
-	}
-
-	function getCurrentWeizhi() {
-		console.log('1231231');
-		uni.getLocation({
-			type: 'wgs84',
-			success: function(res) {
-				console.log('res', res)
-				data.jingdu = res.longitude
-				data.weidu = res.latitude
-				data.weizhiFlag = true
-				console.log('当前位置的经度:' + res.longitude);
-				console.log('当前位置的纬度:' + res.latitude);
-			}
-		});
-	}
-	onLoad((options) => {
-		if (options && options.isZijiazheng == 'true') {
-			isZijiazhengFlag.value = 'true'
-			userIdList.value = options.userIdList
-			listIds.value = options.listIds
-			startDate.value = options.startDate
-			endDate.value = options.endDate
-			from.value = options.from
-			jzId.value = options.jzId
-			console.log('userIdList.value', userIdList.value);
-		}
-		getMore()
-		getLeixing()
-		getCurrentWeizhi()
-	})
-</script>

+ 0 - 204
pages/admin/Jiazheng/jiazhengUserInfo.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="phone-jianli-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员信息</text>
-			<!-- 删除↓ wgy看这 -->
-			<i class="nav-bar-right-icon right-icon-delete-btn" @click="deleteUser"></i>
-		</view>
-		<view class="jianli-wrap-box">
-			<view class="jianli-head-box">
-				<view class="head-img-box">
-					<img class="head-img" :src="jianliInfo.icon" v-if="jianliInfo.icon">
-					<icon class="phone-default-userImg" v-else></icon>
-					<view class="head-status" v-if="jianliInfo.zhuangtai">{{jianliInfo.zhuangtai}}</view>
-				</view>
-				<view class="head-content-box">
-					<view class="name-row">{{jianliInfo.realName}}</view>
-					<view>
-						{{jianliInfo.jiguanShengName === jianliInfo.jiguanShiName ? jianliInfo.jiguanShengName  : `${jianliInfo.jiguanShengName} ${jianliInfo.jiguanShiName}`}}人
-					</view>
-					<view>
-						<text>{{jianliInfo.nianling}}岁</text>
-						<text v-if="jianliInfo.jingyan"> | {{jianliInfo.jingyan}}</text>
-					</view>
-				</view>
-			</view>
-
-			<view class="jianli-body-box">
-				<view v-if="jianliInfo.zyNames" class="leixing-row">
-					<view class="jbxx-label">职 业:</view>
-					<text class="leixing-content">{{jianliInfo.zyNames}}</text>
-				</view>
-				<view class="body-jbxx-box">
-					<view class="jbxx-title">基本信息</view>
-					<view>
-						<view class="jbxx-label">学 历:</view>{{jianliInfo.xueli}}
-					</view>
-					<view>
-						<view class="jbxx-label">民 族:</view>{{jianliInfo.minzu}}
-					</view>
-					<view v-if="jianliInfo.xingzuoFla =='true'">
-						<view class="jbxx-label">属 相:</view>{{jianliInfo.shuxiang}}
-					</view>
-					<view v-if="jianliInfo.xingzuoFla =='true'">
-						<view class="jbxx-label">星 座:</view>{{jianliInfo.xingzuo}}
-					</view>
-					<view>
-						<view class="jbxx-label">性 别:</view>{{jianliInfo.gender}}
-					</view>
-					<view>
-						<view class="jbxx-label">婚姻状况:</view>{{jianliInfo.hunyin}}
-					</view>
-					<view>
-						<view class="jbxx-label">现住地址:</view>{{jianliInfo.juzhuDizhi}}
-					</view>
-					<view>
-						<view class="jbxx-label">家政公司:</view>{{jianliInfo.jzName}}
-					</view>
-				</view>
-			</view>
-			<view class="jbxx-tip">{{jianliInfo.tips}} </view>
-			<view class="jianli-bottom-box">
-				<view @click="goJiazhengManage">
-					<icon class="bottom-icon zl-icon"></icon>
-					<text class="bottom-text">资料编辑</text>
-				</view>
-				<view @click="callPhone">
-					<icon class="bottom-icon tel-icon"></icon>
-					<text class="bottom-text">拨打电话</text>
-				</view>
-			</view>
-		</view>
-		<common-dialog ref="deleteDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-	</view>
-</template>
-<script>
-	import {
-		ref
-	} from "vue";
-	import {
-		getJiazhengJianli,
-		jiazhengUserDelete
-	} from "@/api/jiazheng.js";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	export default {
-		data() {
-			return {
-				pageInfo: {},
-				jianliInfo: {},
-				deleteConcent: '你确定要执行这个操作吗?',
-				deleteTitle: '删除',
-				deleteIndex: '',
-			}
-		},
-		components: {
-			commonDialog
-		},
-		onLoad(options) {
-			let data = JSON.parse(options.pageInfo)
-			this.pageInfo.status = data.status
-			this.pageInfo.id = data.id
-			this.pageInfo.userId = data.userId
-			this.pageInfo.from = data.from
-			this.pageInfo.isZijiazheng = data.isZijiazheng
-			this.pageInfo.userIdList = data.userIdList
-			this.pageInfo.listIds = data.listIds
-			this.pageInfo.startDate = data.startDate
-			this.pageInfo.endDate = data.endDate
-			this.pageInfo.from = data.from
-			this.pageInfo.jzId = data.jzId
-			this.getJianliInfo()
-		},
-		methods: {
-			deleteUser() {
-				this.$refs.deleteDialogRef.handleShow()
-			},
-			deleteQuerenBtn() {
-				jiazhengUserDelete({
-					ids: [this.pageInfo.id]
-				}).then(res => {
-					if (res.code == 0) {
-						uni.showToast({
-							title: "成功",
-							icon: 'none',
-							duration: 2000
-						})
-						this.goUpPage()
-					}
-				})
-			},
-			getJianliInfo() {
-				let req = {
-					id: this.pageInfo.id,
-					userId: this.pageInfo.userId
-				}
-				getJiazhengJianli(req).then(res => {
-					console.log('res', res);
-					if (res.code == 0) {
-						this.jianliInfo = {
-							...res.data
-						};
-						// if(this.jianliInfo.zyNames){
-							
-						// }
-					}
-				})
-			},
-			callPhone() {
-				if (this.jianliInfo.userName) {
-					uni.makePhoneCall({
-						phoneNumber: this.jianliInfo.userName
-					});
-				} else {
-					uni.showToast({
-						title: `无电话号`,
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-
-			},
-			goJiazhengManage() {
-				let pageInfo = {
-					status: 'edit',
-					id: this.pageInfo.id,
-					userId: this.pageInfo.userId,
-					isZijiazheng:this.pageInfo.isZijiazheng,
-					userIdList:this.pageInfo.userIdList,
-					listIds:this.pageInfo.listIds,
-					startDate:this.pageInfo.startDate,
-					endDate:this.pageInfo.endDate,
-					from:this.pageInfo.from,
-					jzId:this.pageInfo.jzId,
-				}
-				uni.redirectTo({
-					url: "/pages/admin/Jiazheng/jiazhengUserManager?pageInfo=" + JSON.stringify(pageInfo)
-				})
-			},
-			goUpPage() {
-				if (this.pageInfo.from == 'banzheng') {
-					uni.redirectTo({
-						url: "/pages/admin/banzheng/list"
-					})
-				} else {
-					uni.redirectTo({
-					  url: "/pages/admin/Jiazheng/index" +
-					       "?isZijiazheng=" + this.pageInfo.isZijiazheng +
-					       "&userIdList=" + this.pageInfo.userIdList+
-					       "&listIds=" + this.pageInfo.listIds+
-					       "&startDate=" + this.pageInfo.startDate+
-					       "&endDate=" + this.pageInfo.endDate+
-					       "&from=" + this.pageInfo.from+
-					       "&jzId=" + this.pageInfo.jzId
-					})
-
-				}
-
-			},
-
-		}
-	}
-</script>

+ 0 - 680
pages/admin/Jiazheng/jiazhengUserManager.vue

@@ -1,680 +0,0 @@
-<template>
-	<view class="admin-jiazheng-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-		</view>
-		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" field="name"
-			class="admin-tab-box"></v-tabs>
-		<gerenZiliao ref="gerenZiliao" :status='status' :isZijiazheng='isZijiazheng' :statusFlag="statusFlag"
-			@idCardBlur="idCardBlur" @finishDom='finishDom' @editSave="editSaveGerenziliao" @goNext="gerenziliaoNext"
-			v-show="current ==0">
-		</gerenZiliao>
-		<qiuzhiXinxi ref="qiuzhiXinxi" :isZijiazheng='isZijiazheng' :status='status' @editSave="editSaveQiuzhixinxi"
-			@goNext="goNextQiuzhixinxi" v-show="current ==1">
-		</qiuzhiXinxi>
-		<zhaopianZiliao ref="zhaopianZiliao" :isZijiazheng='isZijiazheng' :status='status' :statusFlag="statusFlag"
-			@editSave="editSaveZhaopianziliao" @goNext="goNextZhaopianZiliao" v-show="current ==2"></zhaopianZiliao>
-		<banzhengXinxi ref="banzhengXinxi" :isZijiazheng='isZijiazheng' :status='status' @goBack="goBack"
-			@addEdit='addEdit' @addSave="addSave" @editSave="editSave"
-		 v-show="banzhengXinxiFlag">
-		</banzhengXinxi>
-		<banzhengXinxiList :isZijiazheng='isZijiazheng' :status='status' :list="editInfo.kaozhengList"
-			v-show="current ==3&&!banzhengXinxiFlag" @saveBanzheng="saveBanzheng"
-			@editBanzheng="editBanzheng" @addBanzheng="addBanzheng" 
-			@deleteBanzheng="deleteBanzheng" ref="banzhengXinxiList">
-		</banzhengXinxiList>
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-	</view>
-</template>
-
-<script>
-	import {
-		ref
-	} from "vue";
-	import banzhengXinxi from './banzhengXinxi.vue';
-	import banzhengXinxiList from './banzhengXinxiList.vue';
-	import qiuzhiXinxi from './qiuzhiXinxi.vue';
-	import zhaopianZiliao from './zhaopianZiliao.vue';
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import gerenZiliao from './gerenZiliao.vue';
-	import {
-		getJiazhengInfo,
-		jiazhengAdd,
-		jiazhengUpdate,
-		jiazhengKaozhengAdd,
-		jiazhengKaozhengAdds,
-		jiazhengKaozhengDelete,
-		jiazhengKaozhengUpdate
-	} from "@/api/jiazheng.js";
-	export default {
-		data() {
-			return {
-				current: 0,
-				//	tabs: ['个人资料', '求职信息', '照片资料', '办证信息']
-				tabs: [],
-				allData: {
-					"birthday": "",
-					"gender": '',
-					"hujiDizhi": "",
-					"hunyin": '',
-					"icon": "",
-					"idcard": "",
-					"idcardUrl1": "",
-					"idcardUrl2": "",
-					"idtype": '',
-					"jiankangDate": "",
-					"jibiexinzi": "",
-					"jiguanShengId": '',
-					"jiguanShiId": '',
-					"jineng": "",
-					"jingli": "",
-					"jingyan": "",
-					"juzhuDizhi": "",
-					"kaozhengList": [],
-					//"leixing": "",
-					"minzu": '',
-					"qiwangxinzi": "",
-					"realName": "",
-					"shenghuoUrls": "",
-					"shuxiang": '',
-					"tijianDate": "",
-					"tijianUrls": "",
-					"userId": '',
-					"userName": "",
-					"xingzuo": '',
-					"xingzuoFlag": false,
-					"xueli": '',
-					"zhengshuUrls": "",
-					"zhuangtai": '',
-					"jingdu": '',
-					"weidu": ''
-
-				},
-				status: '',
-				id: '',
-				userId: '',
-				banzhengXinxiFlag: false,
-				banzhengXinxiFlagPiliang: false,
-				editInfo: {},
-				deleteConcent: '你确定要执行这个操作吗?',
-				deleteTitle: '删除',
-				deleteIndex: '',
-				deleteId: '',
-				from: '',
-				statusFlag: null,
-				isZijiazheng: "false",
-				userIdList: '',
-				listIds: '',
-				startDate: '',
-				endDate: '',
-				jzId: '',
-			}
-		},
-		components: {
-			banzhengXinxi,
-			banzhengXinxiList,
-			qiuzhiXinxi,
-			gerenZiliao,
-			commonDialog,
-			zhaopianZiliao
-		},
-		watch: {
-			// 监听外部传入的selectedIds变化,更新selectedData
-			current: {
-				handler(newVal) {
-					console.log('newValnewValnewVal', this.current);
-					if (newVal == 1 && this.status == 'add') {
-						console.log('this.$refs.qiuzhiXinxi', this.$refs.qiuzhiXinxi);
-						this.$refs.qiuzhiXinxi.zhuangtai = 1
-					}
-
-				}
-			},
-
-		},
-		onLoad(options) {
-			let pageInfo = JSON.parse(options.pageInfo)
-			this.status = pageInfo.status
-			this.from = pageInfo.from
-			this.isZijiazheng = pageInfo.isZijiazheng
-			this.userIdList = pageInfo.userIdList
-			this.listIds = pageInfo.listIds
-			this.startDate = pageInfo.startDate
-			this.endDate = pageInfo.endDate
-			this.jzId = pageInfo.jzId
-			this.dataHandle(pageInfo)
-		},
-		methods: {
-			goBack() {
-				this.banzhengXinxiFlag = false
-			},
-			editBanzheng(data, index) {
-				console.log('dataasdf', data);
-				this.current = 3
-				this.banzhengXinxiFlag = true
-				if (this.status == 'edit') {
-					this.$refs.banzhengXinxi.editinfo(data, index)
-					this.$refs.banzhengXinxi.currentMove('edit')
-				} else {
-					this.$refs.banzhengXinxi.editinfo(data, index)
-					this.$refs.banzhengXinxi.currentMove('addEdit')
-				}
-
-			},
-			addBanzheng(data, index) {
-				if (this.allData.icon == '') {
-					uni.showToast({
-						title: "当录入办证信息时候,头像必填",
-						icon: 'none',
-						duration: 2000
-					});
-					this.allData.kaozhengList = []
-					return false;
-				}
-				this.banzhengXinxiFlag = true
-				this.$refs.banzhengXinxi.resetFun()
-				if (this.status == 'edit') {
-					this.$refs.banzhengXinxi.currentMove('editAdd')
-				}
-
-			},
-			deleteBanzheng(data, index) {
-				this.deleteId = data.id
-				this.deleteIndex = index
-				if (data.statusBanzheng == '办证完成') {
-					uni.showToast({
-						title: "办证状态为办证完成禁止删除	",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				this.$refs.commonDialogRef.handleShow()
-
-			},
-			deleteQuerenBtn() {
-				if (this.status == 'add') {
-					this.allData.kaozhengList.splice(this.deleteIndex, 1)
-					this.editInfo.kaozhengList.splice(this.deleteIndex, 1)
-				} else {
-					jiazhengKaozhengDelete({
-						ids: [this.deleteId]
-					}).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "成功",
-								icon: 'none',
-								duration: 2000
-							})
-							this.editInfo.kaozhengList.splice(this.deleteIndex, 1);
-							if (this.editInfo.kaozhengList.length == 0) {
-								this.banzhengXinxiFlag = true
-								this.$refs.banzhengXinxi.resetFun()
-								this.allData.kaozhengList = []
-							}
-						}
-					})
-				}
-
-			},
-			idCardBlur(data) {
-				if (this.status == 'edit') {
-					this.$refs.qiuzhiXinxi.editinfo(data)
-					this.$refs.zhaopianZiliao.editinfo(data)
-				}
-			},
-			dataHandle(pageInfo) {
-				if (this.status == 'add') {
-					this.tabs = [{
-							id: 1,
-							name: '个人资料',
-							disabled: false
-						},
-						{
-							id: 2,
-							name: '求职信息',
-							disabled: true
-						},
-						{
-							id: 3,
-							name: '照片资料',
-							disabled: true
-						},
-						{
-							id: 4,
-							name: '办证信息',
-							disabled: true
-						},
-					]
-				} else {
-					this.id = pageInfo.id
-					this.userId = pageInfo.userId
-					this.tabs = [{
-							id: 1,
-							name: '个人资料',
-							disabled: false
-						},
-						{
-							id: 2,
-							name: '求职信息',
-							disabled: false
-						},
-						{
-							id: 3,
-							name: '照片资料',
-							disabled: false
-						},
-						{
-							id: 4,
-							name: '办证信息',
-							disabled: false
-						},
-					]
-
-				}
-			},
-			finishDom() {
-				let req = {
-					id: this.id,
-					userId: this.userId
-				}
-				getJiazhengInfo(req).then(res => {
-					if (res.code == 0) {
-						this.$nextTick(() => {
-							this.$refs.gerenZiliao.editinfo(res.data)
-							this.editInfo = JSON.parse(JSON.stringify(res.data));
-							this.allData = JSON.parse(JSON.stringify(res.data));
-							this.allData.id = this.id
-							if (res.data.kaozhengList.length == 0) {
-								this.statusFlag = true
-							} else {
-								this.statusFlag = this.checkStatus(res.data.kaozhengList)
-							}
-							// 新增 手机端,家政人员编辑,修改为导出后不能修改
-							//this.statusFlag = this.checkStatus(res.data.kaozhengList)
-							console.log('this.checkStatus(res.data.kaozhengList)', this.checkStatus(res
-								.data.kaozhengList));
-							console.log('this.allData this.allData ', this.allData);
-						})
-					} else {
-						uni.showToast({
-							icon: 'none',
-							title: '获取详情失败'
-						})
-						return false
-					}
-				})
-			},
-			checkStatus(kaozhengList) {
-				if (!kaozhengList || !Array.isArray(kaozhengList) || kaozhengList.length == 0) {
-					return false;
-				}
-				return kaozhengList.every(item => item.statusBanzheng == "未办证");
-			},
-			changeTab(data) {
-
-				this.banzhengXinxiFlag = false
-
-				if (this.$refs.zhaopianZiliao) {
-					this.$refs.zhaopianZiliao.zhankaiFlag = false
-				}
-				if (this.status == 'add') {
-
-					if (this.current >= 0) {
-						this.current--;
-						this.updateTabs();
-					}
-				}
-				this.current = data
-				if (this.status != 'edit') {
-					return false
-				}
-				switch (Number(data)) {
-					case 0:
-						this.$refs.gerenZiliao.editinfo(this.editInfo)
-						break;
-					case 1:
-						this.$refs.qiuzhiXinxi.editinfo(this.editInfo)
-						break;
-					case 2:
-						this.$refs.zhaopianZiliao.editinfo(this.editInfo)
-						break;
-					case 3:
-						// if (this.editInfo.kaozhengList.length > 0) {
-						// 	this.banzhengXinxiFlag = false
-						// } else {
-						// 	this.banzhengXinxiFlag = false
-						// }
-						this.banzhengXinxiFlag = false
-						this.$refs.banzhengXinxi.editinfo()
-						break;
-					default:
-						break;
-				}
-
-
-			},
-			gerenZiliaoDataHandle(data, flag) {
-				console.log('gerenZiliaoDataHandle', data);
-				console.log('gerenZiliaoDataHandle', data.hunyin.id);
-				this.allData.userName = data.userName
-				this.allData.realName = data.realName
-				this.allData.idcard = data.idcard
-				this.allData.idtype = data.idtype
-				this.allData.jiguanShengId = data.jiguanObj.jiguanShengId
-				this.allData.jiguanShiId = data.jiguanObj.jiguanShiId
-				this.allData.juzhuDizhi = data.juzhuDizhi
-				this.allData.birthday = data.birthday
-				this.allData.minzu = data.minzu.id
-				this.allData.gender = data.gender
-				this.allData.xueli = data.xueli.id
-				this.allData.hunyin = data.hunyin.id
-				this.allData.hujiDizhi = data.hujiDizhi
-				this.allData.xingzuo = data.xingzuo.id
-				this.allData.shuxiang = data.shuxiang.id
-				this.allData.xingzuoFlag = data.xingzuoFlag
-				this.allData.jingdu = data.jingdu
-				this.allData.weidu = data.weidu
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			gerenziliaoNext(data, num) {
-				this.gerenZiliaoDataHandle(data)
-				// this.current = num + 1
-				// this.tabs = this.tabs.map((item, i) => {
-				// 	if (i == this.current) item.disabled = false
-				// 	return item
-				// })
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-
-			},
-			editSaveGerenziliao(data) {
-				this.gerenZiliaoDataHandle(data, 'edit')
-			},
-			qiuzhiXinxiDataHandle(data, flag) {
-				//	this.allData.leixing = data.leixing
-				this.allData.jingyan = data.jingyan
-				this.allData.jineng = data.jineng
-				this.allData.zhuangtai = data.zhuangtai
-				this.allData.jibiexinzi = data.jibiexinzi
-				this.allData.qiwangxinzi = data.qiwangxinzi
-				this.allData.jingli = data.jingli
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			goNextQiuzhixinxi(data, num) {
-				this.qiuzhiXinxiDataHandle(data)
-
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-			},
-			updateTabs() {
-				console.log('this.tabsthis.tabs', this.tabs);
-				console.log('this.current', this.tabs);
-
-				this.tabs = this.tabs.map((item, i) => {
-					// 当前页签及之前的页签 disabled 为 false,之后的页签 disabled 为 true
-					item.disabled = i >= this.current;
-					return item;
-				});
-			},
-			editSaveQiuzhixinxi(data) {
-				this.qiuzhiXinxiDataHandle(data, 'edit')
-			},
-
-			goNextZhaopianZiliao(data, num) {
-				this.zhaopianziliaoDataHandle(data)
-				if (this.current < this.tabs.length - 1) {
-					this.current++;
-					this.updateTabs();
-				}
-
-			},
-			zhaopianziliaoDataHandle(data, flag) {
-				this.allData.icon = data.icon
-				this.allData.idcardUrl1 = data.idcardUrl1
-				this.allData.idcardUrl2 = data.idcardUrl2
-				this.allData.shenghuoUrls = data.shenghuoUrls
-				this.allData.zhengshuUrls = data.zhengshuUrls
-				this.allData.tijianDate = data.tijianDate
-				this.allData.jiankangDate = data.jiankangDate
-				this.allData.tijianUrls = data.tijianUrls
-				if (flag == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
-					})
-				}
-			},
-			editSaveZhaopianziliao(data) {
-				this.zhaopianziliaoDataHandle(data, 'edit')
-			},
-
-			addSave(data) {
-				this.submitJiazheng(data)
-			},
-			submitJiazheng(data) {
-				console.log('this.allData', this.allData);
-
-				// 处理数组情况
-				const dataToProcess = Array.isArray(data) ? data : [data];
-
-				// 检查重复项
-				for (const item of dataToProcess) {
-					if (this.allData.kaozhengList.length > 0) {
-						const isDuplicate = this.allData.kaozhengList.some(existingItem => {
-							return existingItem.jgId == item.jgId &&
-								existingItem.zyLevelName == item.zyLevelName &&
-								existingItem.zyName == item.zyName;
-						});
-
-						if (isDuplicate) {
-							uni.showToast({
-								title: '此用户的职业等级系统已存在,如想继续添加,请联系管理员处理!',
-								icon: 'none',
-								duration: 2000
-							});
-							return false;
-						}
-					}
-				}
-				// 添加所有数据项
-				this.allData.kaozhengList.push(...dataToProcess);
-				this.editInfo.kaozhengList = [...this.allData.kaozhengList];
-				this.banzhengXinxiFlag = false;
-			},
-			saveBanzheng() {
-				if (this.status == 'add') {
-					jiazhengAdd(this.allData).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "成功",
-								icon: 'none',
-								duration: 2000
-							})
-							uni.navigateTo({
-								url: `/pages/admin/Jiazheng/index`
-							})
-						} else {
-							uni.showToast({
-								title: "失败",
-								icon: 'none',
-								duration: 2000
-							})
-							return false
-						}
-
-					})
-				} else {
-
-				}
-			},
-			addEdit(data, flag, index) {
-				uni.showToast({
-					title: "修改成功!",
-					icon: 'none',
-					duration: 2000
-				})
-				this.editInfo.kaozhengList[index].canxunshijian = data.canxunshijian
-				this.editInfo.kaozhengList[index].jgType = data.jgType
-				this.editInfo.kaozhengList[index].jgId = data.jgId
-				this.editInfo.kaozhengList[index].jgName = data.jgName
-				this.editInfo.kaozhengList[index].jzId = data.jzId
-				this.editInfo.kaozhengList[index].needKaoshi = data.needKaoshi
-				this.editInfo.kaozhengList[index].needKecheng = data.needKecheng
-				this.editInfo.kaozhengList[index].shicaochengji = data.shicaochengji
-				this.editInfo.kaozhengList[index].statusBanzheng = data.statusBanzheng
-				this.editInfo.kaozhengList[index].statusKaoshi = data.statusKaoshi
-				this.editInfo.kaozhengList[index].zongkeshi = data.zongkeshi
-				this.editInfo.kaozhengList[index].id = data.id
-				this.editInfo.kaozhengList[index].zyId = data.zyId
-				this.editInfo.kaozhengList[index].zyLevel = data.zyLevel
-				this.editInfo.kaozhengList[index].zyLevelName = data.zyLevelName
-				this.editInfo.kaozhengList[index].zyName = data.zyName
-				this.allData.kaozhengList = JSON.parse(JSON.stringify(this.editInfo.kaozhengList));
-				this.banzhengXinxiFlag = false
-			},
-
-			editSave(data, flag, index) {
-				//	debugger
-				console.log('this.allData', this.allData);
-				console.log('this.editInfo', this.editInfo);
-				data.userId = this.userId
-				if (flag == 'edit' && this.allData.kaozhengList.length > 0) {
-
-					jiazhengKaozhengUpdate(data).then(res => {
-						if (res.code == 0) {
-							uni.showToast({
-								title: "保存成功!",
-								icon: 'none',
-								duration: 2000
-							})
-							this.editInfo.kaozhengList[index].canxunshijian = data.canxunshijian
-							this.editInfo.kaozhengList[index].jgId = data.jgId
-							this.editInfo.kaozhengList[index].jgName = data.jgName
-							this.editInfo.kaozhengList[index].jzId = data.jzId
-							this.editInfo.kaozhengList[index].jgType = data.jgType
-							this.editInfo.kaozhengList[index].needKaoshi = data.needKaoshi
-							this.editInfo.kaozhengList[index].needKecheng = data.needKecheng
-							this.editInfo.kaozhengList[index].statusBanzheng = '未办证'
-							this.editInfo.kaozhengList[index].shicaochengji = data.shicaochengji
-							this.editInfo.kaozhengList[index].statusKaoshi = data.statusKaoshi
-							this.editInfo.kaozhengList[index].zongkeshi = data.zongkeshi
-							this.editInfo.kaozhengList[index].id = data.id
-							this.editInfo.kaozhengList[index].zyId = data.zyId
-							this.editInfo.kaozhengList[index].zyLevel = data.zyLevel
-							this.editInfo.kaozhengList[index].zyLevelName = data.zyLevelName
-							this.editInfo.kaozhengList[index].zyName = data.zyName
-							this.banzhengXinxiFlag = false
-						}
-
-					})
-				} else if (flag == 'edit' && this.allData.kaozhengList.length == 0) {
-					data.userId = this.userId
-					if (this.allData.icon == '') {
-						uni.showToast({
-							title: "当录入办证信息时候,头像必填",
-							icon: 'none',
-							duration: 2000
-						})
-						return false
-					}
-					jiazhengKaozhengAdd(data).then(res => {
-						if (res.code == 0) {
-							data.id = res.data
-							data.statusBanzheng = '未办证'
-							this.allData.kaozhengList.push(data)
-							this.editInfo.kaozhengList.push(data)
-							console.log('this.editInfo.kaozhengList', this.editInfo.kaozhengList);
-							this.banzhengXinxiFlag = false
-						}
-					})
-				} else if (flag == 'editAdd') {
-					
-					let mergedArray = data.map(item => {
-						return {
-							...item,
-							userId: this.userId
-						};
-					});
-				
-					if (this.allData.icon == '') {
-						uni.showToast({
-							title: "当录入办证信息时候,头像必填",
-							icon: 'none',
-							duration: 2000
-						})
-						return false
-					}
-					jiazhengKaozhengAdds(mergedArray).then(res => {
-						if (res.code == 0) {
-							//	data.id = res.data
-							const dataWithIds = mergedArray.map((item, index) => ({
-								...item,
-								statusBanzheng: '未办证',
-								id: res.data[index]
-							}));
-							this.allData.kaozhengList = [...this.allData.kaozhengList, ...dataWithIds];
-							this.editInfo.kaozhengList = [...this.editInfo.kaozhengList, ...dataWithIds];
-							// console.log('this.editInfo.kaozhengList', this.editInfo.kaozhengList);
-							this.banzhengXinxiFlag = false
-							console.log('this.allData.kaozhengList', this.allData.kaozhengList);
-						}
-					})
-				}
-				// if (data != '') {
-				// 	this.allData.kaozhengList.push(data)
-				// }
-				// if(this.status =='add'){
-				// 	this.submitJiazheng()
-				// }else{
-
-				// }
-			},
-			goUpPage() {
-				if (this.from == 'banzheng') {
-					uni.redirectTo({
-						url: "/pages/admin/banzheng/list"
-					})
-				} else {
-
-					uni.redirectTo({
-						url: "/pages/admin/Jiazheng/index" +
-							"?isZijiazheng=" + this.isZijiazheng +
-							"&userIdList=" + this.userIdList + "&listIds=" + this.listIds +
-							"&startDate=" + this.startDate +
-							"&endDate=" + this.endDate +
-							"&from=" + this.from +
-							"&jzId=" + this.jzId
-					})
-				}
-
-			}
-
-		}
-	}
-</script>

+ 0 - 306
pages/admin/Jiazheng/kechengBind.vue

@@ -1,306 +0,0 @@
-<template>
-	<view class="phone-list-page kc-bind-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">家政人员</text>
-			<uni-icons v-show="current ==0" class="nav-bar-right-icon bar-ml10" type="search" @click="searchBtn"
-				size="20"></uni-icons>
-			<uni-icons v-show="current ==1" style="opacity: 0;" class="nav-bar-right-icon bar-ml10" type="search"
-				size="20"></uni-icons>
-		</view>
-		<v-tabs v-model="current" :tabs="tabs" :scroll="false" @change="changeTab" field="name"
-			class="admin-tab-box"></v-tabs>
-		<view v-if="current ==0" class="jiazheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text class="select-text">{{leixing}}</text>
-				<icon class="select-jt-default" />
-			</view>
-			<view>课程剩余数量:{{kechengNumber||0}}</view>
-		</view>
-		<view class="kc-bind-scroll-view scroll-top-border" v-if="current ==0">
-
-			<uni-list class="admin-list-box">
-				<uni-list-item v-for="item in list" class="admin-list-item-box">
-					<template v-slot:body>
-						<view @click="lookUserInfo(item)" class="kecheng-list-card">
-							<img :src="item.pic">
-							<view class="item-card-row">
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<view class="ks-totalTm kc-fenlei">
-									<icon class="phone-fenlei-icon" />分类:{{item.kcClassifyName}}
-								</view>
-								<button class="kc-bind-btn phone-green-btn" type="default" size="mini"
-									@click.stop="toAdd(item)">绑定</button>
-							</view>
-						</view>
-					</template>
-				</uni-list-item>
-			</uni-list>
-		</view>
-		<view class="kc-notbind-scroll-view scroll-top-border" v-if="current ==1">
-			<uni-list class="admin-list-box">
-				<uni-list-item v-for="item in listYx" class="admin-list-item-box">
-					<template v-slot:body>
-
-						<view @click="lookUserInfo(item)" class="kecheng-list-card">
-							<img :src="item.pic" v-if="item.pic">
-							<view class="item-card-row">
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<!-- <view class="ks-totalTm kc-fenlei">
-									<icon class="phone-fenlei-icon" />分类:{{item.kcClassifyName}}
-								</view> -->
-								<view class="bind-btn-row">
-									<button type="default" size="mini" class="kc-bind-btn phone-green-btn"
-										@click="toReset(item)">重置</button>
-									<button type="default" size="mini" class="kc-bind-btn phone-white-btn"
-										@click="toDelete(item)">删除</button>
-								</view>
-							</view>
-						</view>
-					</template>
-				</uni-list-item>
-			</uni-list>
-		</view>
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-		<kechengLeixingVue ref="kclxRef" @select="handleSelectLeixing" @reset="handleResetLeixing"></kechengLeixingVue>
-		<searchVue ref="searchRef" @search-btn="handleSearchFromBtn"></searchVue>
-	</view>
-</template>
-
-<script>
-	import {
-		ref
-	} from "vue";
-	import {
-		kcSelectList,
-		jiazhengKcList,
-		jiazhengKcAdd,
-		jiazhengKcDelete,
-		getAdminClassify,
-		kechengReset,
-		chaxunNumberKecheng
-	} from "@/api/jiazheng.js";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import kechengLeixingVue from "./common/kechengLeixing.vue";
-		import {toast} from "@/utils/common";
-	import searchVue from "./common/search2.vue";
-	import {
-		debounce
-	} from "@/utils/common";
-	export default {
-		data() {
-			return {
-				leixing: '全部类型',
-				leixingList: [],
-				selectClassify: null,
-				kcClassifyId: 0,
-				id: '',
-				kechengNumber: '',
-				addFlag: false,
-				name: '',
-				current: 0,
-				list: [],
-				listYx: [],
-				deleteTitle: '删除',
-				kcId: '',
-				deleteConcent: '你确定要执行这个操作吗',
-				tabs: [{
-						id: 1,
-						name: '未绑定课程',
-
-					},
-					{
-						id: 2,
-						name: '已绑定课程',
-
-					},
-				],
-			}
-		},
-		components: {
-			commonDialog,
-			kechengLeixingVue,
-			searchVue
-		},
-		onLoad(options) {
-			this.id = options.id
-			this.getList()
-			this.getKechengClassify()
-			this.chaxunNumber()
-		},
-		methods: {
-			chaxunNumber() {
-				chaxunNumberKecheng({
-					id: this.id
-				}).then(res => {
-					if (res.code == 0) {
-						this.kechengNumber = res.data
-						this.addFlag = this.kechengNumber > 0;
-					} else {
-						uni.showToast({
-							title: '失败'
-						});
-						return false
-					}
-				})
-			},
-			toReset(data) {
-				let req = {
-					kcId: data.kcId,
-					id: this.id
-				}
-				kechengReset(req).then(res => {
-					if (res.code == 0) {
-						this.getList()
-						uni.showToast({
-							title: '成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '失败'
-
-						});
-						return false
-					}
-				})
-			},
-			searchBtn() {
-				this.$refs.searchRef.handleShow()
-			},
-
-			handleSearchFromBtn(textD) {
-				this.name = textD;
-				this.getList()
-			},
-			handleResetLeixing() {
-				this.selectClassify = null;
-				this.leixing = '全部类型';
-				this.getList()
-			},
-			handleSelectLeixing(item) {
-				this.leixing = item.lable;
-				this.selectClassify = item;
-				this.getList()
-			},
-			clickAlltype() {
-				this.$refs.kclxRef.showPopup({
-					data: this.leixingList
-				})
-			},
-			getKechengClassify() {
-				getAdminClassify().then(res => {
-					res.data.children.forEach(item => {
-						item.checked = false;
-					})
-					this.leixingList = res.data.children || [];
-				})
-			},
-			toAdd(data) {
-				if (!this.addFlag) {
-
-					toast('课程剩余数量不足')
-					return false
-				}
-				debounce(
-					this.jzAdd(data), 500)
-
-			},
-
-			jzAdd(data) {
-				let req = {
-					kcIds: [data.kcId],
-					id: this.id
-				}
-				jiazhengKcAdd(req).then(res => {
-					if (res.code == 0) {
-						this.getList()
-						this.chaxunNumber()
-						uni.showToast({
-							title: '添加成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '添加失败',
-							icon: 'success'
-						});
-						return false
-					}
-				})
-			},
-			deleteQuerenBtn() {
-				let req = {
-					kcIds: [this.kcId],
-					id: this.id
-				}
-				jiazhengKcDelete(req).then(res => {
-					if (res.code == 0) {
-						this.getYxList()
-						uni.showToast({
-							title: '删除成功',
-							icon: 'success'
-						});
-					} else {
-						uni.showToast({
-							title: '删除失败',
-							icon: 'success'
-						});
-						return false
-					}
-				})
-			},
-			toDelete(data) {
-				this.kcId = data.kcId
-				this.$refs.commonDialogRef.handleShow();
-			},
-			changeTab(data) {
-				this.current = data
-				if (this.current == 0) {
-					this.getList()
-				} else {
-					this.chaxunNumber()
-					this.getYxList()
-				}
-
-				console.log('data', data);
-			},
-			goUpPage() {
-				uni.redirectTo({
-					url: "/pages/admin/Jiazheng/index"
-				})
-			},
-			getList() {
-				let req = {
-					id: this.id,
-					"kcClassifyId": this.selectClassify && this.selectClassify.id || 0,
-					name: this.name
-				}
-				kcSelectList(req).then(res => {
-					if (res.code == 0) {
-						this.list = res.data
-					} else {
-						return false
-					}
-				})
-			},
-			getYxList() {
-				let req = {
-					id: this.id,
-				}
-				jiazhengKcList(req).then(res => {
-					if (res.code == 0) {
-						this.listYx = res.data
-					} else {
-						return false
-					}
-				})
-			}
-		}
-	}
-</script>

+ 0 - 288
pages/admin/Jiazheng/qiuzhiXinxi.vue

@@ -1,288 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<!-- <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="typeList" mode="multiple" :defaultCount="9" :selectedNames="leixing"
-				@change="selectChangeType" @add="addType" />
-		</view> -->
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>经验</view>
-				<picker :range="jingyanList" mode='selector' :value="jingyanIndex" range-key="name"
-					@change="jingyanChange" @cancel="jingyanCancel" class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{ jingyan }}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-			<view class="form-label-radio flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require">*</text>技能</view>
-				<dataChecked :list="skillList" :zijiazheng="isZijiazheng" mode="multiple" :defaultCount="9" :selectedNames="jineng"
-					@change="selectChangeSkill" @add="addSkill" />
-			</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="zhuangtaiList" mode="single" :selectedIds='zhuangtai' :showAdd="false"
-					@change="selectChangeZhuangtai" />
-			</view>
-			<view class="form-label-select">
-				<view class="phone-form-label"><text class="form-label-require"></text>薪资级别</view>
-				<picker :range="xinziJibieList" mode='selector' @change="xinziJibieChange" @cancel="xinziJibieCancel"
-					class="select-picker-box">
-					<view class="form-radio-select">
-						<view>{{jibiexinzi}}</view>
-						<icon></icon>
-					</view>
-				</picker>
-			</view>
-
-			<view class="form-label-input">
-				<view class="phone-form-label"><text class="form-label-require"></text>期望薪资</view>
-				<input v-model="qiwangxinzi" placeholder="请输入期望薪资" />
-			</view>
-			<view class="form-label-input flex-start-row">
-				<view class="phone-form-label"><text class="form-label-require"></text>工作经历</view>
-				<textarea v-model="jingli" maxlength="-1" placeholder="请填写工作经历" class="form-textarea-box" />
-			</view>
-			<view v-if="isZijiazheng !='true'" class="page-btn-box">
-				<button type="default" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext" class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit'&&isZijiazheng !='true'" @click="editSave" class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import dataChecked from './common/dataChecked.vue';
-	import {
-		getJiazhengLeixing,
-		getJiazhengJineng,
-		getJiazhengZhuangtai,
-
-	} from "@/api/jiazheng.js";
-
-	export default {
-		components: {
-			dataChecked
-		},
-		// onLoad 是 uni-app 的页面生命周期钩子,不需要导入
-		created() {
-
-			this.initRequests()
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			}
-		},
-		data() {
-			return {
-				formData: {},
-				// 从后端获取的技能列表
-				skillList: [],
-				typeList: [],
-				leixing: "",
-				jineng: "",
-				zhuangtaiList: [],
-				zhuangtai: '',
-				jingyan: "",
-				jingyanIndex: 0,
-				qiwangxinzi: '面议',
-				jingli: '',
-				xinziJibieList: ["一级", "二级", "三级", "四级", "五级", ],
-				jibiexinzi: "",
-				jingyanList: Array.from({
-					length: 51
-				}, (_, i) => i + '年'),
-			};
-		},
-		methods: {
-			async initRequests() {
-				await Promise.all([
-					//	this.getLeixing(),
-					this.getJineng(),
-					this.getZhuangtai()
-				]);
-			},
-			editinfo(data) {
-				this.$nextTick(() => {
-					console.log('data11111', data);
-					//	this.leixing = data.leixing
-					this.jingyan = data.jingyan
-					this.jineng = data.jineng
-					this.zhuangtai = data.zhuangtai
-					this.jibiexinzi = data.jibiexinzi
-					this.qiwangxinzi = data.qiwangxinzi
-					this.jingli = data.jingli
-
-				})
-			},
-
-			// 点击完成按钮的时候触发,
-			xinziJibieChange(e) {
-				//通过e.detail.value获取值,获取的是自定义数据的下标
-				const index = e.detail.value
-				this.jibiexinzi = this.xinziJibieList[index]
-				console.log('jibiexinzi', this.jibiexinzi);
-			},
-			xinziJibieCancel(e) {
-				console.log("您已取消选择");
-			},
-			jingyanChange(e) {
-				const index = e.detail.value
-				this.jingyan = this.jingyanList[index]
-			},
-			jingyanCancel() {
-				this.jingyanIndex = 0
-			},
-			getJineng() {
-				getJiazhengJineng({}).then(res => {
-					this.skillList = this.dataConversionObject(res.data)
-
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getLeixing() {
-				getJiazhengLeixing({}).then(res => {
-					this.typeList = this.dataConversionObject(res.data)
-
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			getZhuangtai() {
-				getJiazhengZhuangtai({}).then(res => {
-					console.log('res', res);
-					this.zhuangtaiList = res.data
-					// this.typeList = this.dataConversionObject(res.data)
-					// console.log('this.typeList', this.typeList);
-				}).catch(error => {
-					console.error('获取技能类型失败:', error);
-				});
-			},
-			dataConversionObject(data) {
-				let newList
-				newList = data.map((name, index) => ({
-					id: index,
-					name: name
-				}));
-				return newList
-			},
-			dataConversionArray(data) {
-				let newList
-				newList = data.map((item, index) => {
-					return item.name
-				});
-				return newList
-			},
-			selectChangeType(data) {
-				//	console.log('typeData', data);
-				this.leixing = this.dataConversionArray(data).join(',')
-				console.log('this.leixing', this.leixing);
-			},
-			addType(newType) {
-				this.typeList.push({
-					...newType,
-				});
-			},
-			selectChangeSkill(data) {
-				this.jineng = this.dataConversionArray(data).join(',')
-				console.log('this.jineng', this.jineng);
-			},
-			addSkill(newSkill) {
-				this.skillList.push({
-					...newSkill,
-				});
-			},
-			selectChangeZhuangtai(data) {
-				console.log('zhuangtaiData', data);
-				if (data.length > 0) {
-					this.zhuangtai = data[0].id
-				} else {
-					this.zhuangtai = ''
-				}
-				console.log('zhuangtai', this.zhuangtai);
-				// const index = e.detail.value
-				// this.jingyan = this.jingyanList[index]
-			},
-			showAlert() {
-				uni.showToast({
-					title: "请勾选本人同意!",
-					icon: 'none',
-					duration: 2000
-				})
-				return false
-			},
-			yanzheng() {
-				this.formData = {
-					//	leixing: this.leixing,
-					jingyan: this.jingyan,
-					jineng: this.jineng,
-					zhuangtai: this.zhuangtai,
-					jibiexinzi: this.jibiexinzi,
-					qiwangxinzi: this.qiwangxinzi,
-					jingli: this.jingli,
-
-				}
-				// if (!this.formData.leixing) {
-				// 	uni.showToast({
-				// 		title: "请选择类型!",
-				// 		icon: 'none',
-				// 		duration: 2000
-				// 	})
-				// 	return false
-				// }
-				// if (!this.formData.jingyan) {
-				// 	uni.showToast({
-				// 		title: "请选择经验年限!",
-				// 		icon: 'none',
-				// 		duration: 2000
-				// 	})
-				// 	return false
-				// }
-				if (!this.formData.jineng) {
-					uni.showToast({
-						title: "请选择相应技能!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				if (!this.formData.zhuangtai) {
-					uni.showToast({
-						title: "请选择相应状态!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
-				return true
-			},
-			goNext() {
-				let ispass = this.yanzheng()
-				if (ispass) {
-					this.$emit('goNext', this.formData, 1);
-				}
-			},
-			editSave() {
-
-				let ispass = this.yanzheng()
-				console.log('this.formData', this.formData);
-				if (ispass) {
-					this.$emit('editSave', this.formData);
-				}
-			}
-		},
-		mounted() {
-			console.log('zxvasdfasdfasdfadsfadsfadsfasd');
-			// setTimeout(()=>{
-			// 			this.zhuangtai = '1'
-			// },1000)
-		}
-	};
-</script>

+ 0 - 286
pages/admin/Jiazheng/zhaopianZiliao.vue

@@ -1,286 +0,0 @@
-<template>
-	<view class="jz-content-box">
-		<view :class="isZijiazheng=='true'?'mask-view':''">
-			<view class="upload-img-box" :class="String(statusFlag) =='false'?'upload-img-mask-box':''"
-				@click="touxiangTishi">
-				<jiazhengUpload @getFileUrl="getTouxiang" :img='icon' bottomText="上传头像"></jiazhengUpload>
-			</view>
-			<view class="form-label-switch">
-				<view class="phone-form-label"><text class="form-label-require"></text>身份证照片</view>
-				<!-- 	<switch @change="switchSfzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-			</view>
-			<view class="ziliao-upload-box">
-				<view class="upload-item-box">
-					<jiazhengUpload @getFileUrl="getSfzTouxiang" :img='idcardUrl1' bottomText="上传身份证头像面">
-					</jiazhengUpload>
-				</view>
-				<view class="upload-item-box">
-					<jiazhengUpload @getFileUrl="getSfzGuohui" :img='idcardUrl2' bottomText="上传身份证国徽面"></jiazhengUpload>
-				</view>
-			</view>
-
-			<view @click="changeZhankai" :class="zhankaiFlag==1?'zpzl-open-box':'zpzl-close-box'">
-				<view class="gdzl-row">更多资料<icon></icon>
-				</view>
-				<view v-show="zhankaiFlag">
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>体检报告</view>
-						<!-- <switch @change="switchGzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in tijianbaogaoList" :key="index"
-								v-if="tijianbaogaoList.length>0" class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteTijianbaogao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getTijianbaogao"></jiazhengUpload>
-						</view>
-					</view>
-
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>工作生活照</view>
-						<!-- <switch @change="switchGzChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in shenghuizhaoList" :key="index"
-								v-if="shenghuizhaoList.length>0" class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteShenghuoZhao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getGzShenghuozhao"></jiazhengUpload>
-						</view>
-					</view>
-					<view class="form-label-switch form-top-margin">
-						<view class="phone-form-label"><text class="form-label-require"></text>资格类照片</view>
-						<!-- 	<switch @change="switchZgChange" color="#3fd2a1" style="transform:scale(0.7)" /> -->
-					</view>
-					<view class="zhaopianZiliao-shenfenzhengImg">
-						<view class="ziliao-upload-box">
-							<view v-for="(item, index) in zigezhaoList" :key="index" v-if="zigezhaoList.length>0"
-								class="ziliao-image-box">
-								<img class="ziliao-image" :src="item" alt="">
-								<view @click="deleteZigeZhao(item,index)" class="ziliao-image-close"></view>
-							</view>
-							<jiazhengUpload changjingType="more" @getFileUrl="getZigezhao"></jiazhengUpload>
-						</view>
-					</view>
-					<view class="form-label-select">
-						<view class="phone-form-label"><text class="form-label-require"></text>最近体检日期</view>
-						<uni-datetime-picker class="form-radio-picker" type="date" @change="changeTijian">
-							<view class="form-radio-select">
-								<view>{{tijianDate}}</view>
-								<icon></icon>
-							</view>
-						</uni-datetime-picker>
-					</view>
-
-					<view class="form-label-select">
-						<view class="phone-form-label"><text class="form-label-require"></text>健康证日期</view>
-						<uni-datetime-picker class="form-radio-picker" type="date" @change="changeJiankang">
-							<view class="form-radio-select">
-								<view>{{jiankangDate}}</view>
-								<icon></icon>
-							</view>
-						</uni-datetime-picker>
-					</view>
-				</view>
-			</view>
-
-			<!-- 	<view class="zpzl-tip-box form-top-margin">
-			<view>体检报告文件</view>
-			<view class="red-tip">(*如未经同意,体检报告均不展示在简历中;在系统中预约的体检,如有电子报告,会自动关联到简历中) </view>
-			<view>
-				<checkbox-group>
-					<checkbox :checked="tijianbaogaoFlag" @click="changeTijianbaogao" color="#3fd2a1"
-						style="transform:scale(0.65)" />
-					已经同意,上传个人体检报告
-				</checkbox-group>
-			</view>
-			<view class="scbg-tip">
-				还没有上传的体验报告<br>
-				可点击下方上传体检报告
-			</view>
-			<button type="default" class="phone-green-btn scbg-btn">+从手机上传体检报告(pdf)</button>
-		</view> -->
-
-			<view v-if="isZijiazheng !='true'" class="page-btn-box">
-				<button type="default" v-if="status =='add'&&isZijiazheng !='true'" @click="goNext"
-					class="phone-green-btn">下一步</button>
-				<button type="default" v-if="status =='edit'&&isZijiazheng !='true'" @click="editSave"
-					class="phone-green-btn">保存</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		getAliyunPolicy
-	} from "@/api/jiazheng.js"
-	import jiazhengUpload from "./common/jiazhengUpload.vue"
-
-	export default {
-		data() {
-
-			return {
-				shenghuizhaoList: [],
-				tijianbaogaoList: [],
-				zigezhaoList: [],
-				icon: '',
-				idcardUrl1: '',
-				idcardUrl2: '',
-				shenghuoUrls: '',
-				tijianDate: '',
-				tijianUrls: '',
-				jiankangDate: '',
-				tijianbaogaoFlag: false,
-				zhengshuUrls: '',
-				accordionVal: '',
-				zhankaiFlag: false
-			}
-		},
-		props: {
-			status: {
-				type: String,
-			},
-			isZijiazheng: {
-				type: String,
-			},
-			statusFlag: {
-				type: Boolean,
-			},
-		},
-		components: {
-			jiazhengUpload
-		},
-		methods: {
-			touxiangTishi() {
-
-				if (String(this.statusFlag) == 'false') {
-					uni.showToast({
-						title: '已提交办证申请,禁止修改',
-						icon: 'none'
-					});
-					return false
-				}
-
-			},
-			changeZhankai() {
-				this.zhankaiFlag = !this.zhankaiFlag
-				console.log('this.changeZhankai', this.changeZhankai);
-			},
-			editinfo(data) {
-				console.log('data', data);
-				this.$nextTick(() => {
-					this.icon = data.icon
-					this.idcardUrl1 = data.idcardUrl1
-					this.idcardUrl2 = data.idcardUrl2
-					this.shenghuizhaoList = data.shenghuoUrls == '' ? '' : data.shenghuoUrls.split(",")
-					this.zigezhaoList = data.zhengshuUrls == '' ? '' : data.zhengshuUrls.split(",")
-					this.tijianbaogaoList = data.tijianUrls == '' ? '' : data.tijianUrls.split(",")
-					this.tijianDate = data.tijianDate
-					this.jiankangDate = data.jiankangDate
-
-				})
-			},
-			getTouxiang(data) {
-				this.icon = data
-				console.log('getTouxiang', data);
-			},
-			getSfzTouxiang(data) {
-				this.idcardUrl1 = data
-				console.log('getSfzTouxiang', data);
-			},
-			getSfzGuohui(data) {
-				this.idcardUrl2 = data
-				console.log('getSfzGuohui', data);
-			},
-			getGzShenghuozhao(data) {
-				console.log('getGzShenghuozhao', data);
-				this.shenghuizhaoList.push(data);
-			},
-			getTijianbaogao(data) {
-				console.log('getTijianbaogao', data);
-				this.tijianbaogaoList.push(data);
-			},
-			getZigezhao(data) {
-				console.log('getZigezhao', data);
-				this.zigezhaoList.push(data);
-			},
-			deleteZigeZhao(data, index) {
-				this.zigezhaoList.splice(index, 1);
-			},
-			deleteTijianbaogao(data, index) {
-				this.tijianbaogaoList.splice(index, 1);
-			},
-			deleteShenghuoZhao(data, index) {
-				this.shenghuizhaoList.splice(index, 1);
-			},
-			changeTijian(data) {
-				console.log('data', data);
-				this.tijianDate = data
-
-			},
-			changeJiankang(data) {
-				console.log('data', data);
-				this.jiankangDate = data
-
-			},
-			changeTijianbaogao(data) {
-				this.tijianbaogaoFlag = !this.tijianbaogaoFlag
-			},
-			switchSfzChange(data) {
-				console.log('data', data);
-			},
-			switchGzChange(data) {
-				console.log('data', data);
-			},
-			switchZgChange(data) {
-				console.log('data', data);
-			},
-
-			goNext() {
-				this.formData = {
-					icon: this.icon,
-					idcardUrl1: this.idcardUrl1,
-					idcardUrl2: this.idcardUrl2,
-					tijianbaogaoFlag: this.tijianbaogaoFlag,
-					shenghuoUrls: this.shenghuizhaoList ? this.shenghuizhaoList.join(',') : '',
-					zhengshuUrls: this.zigezhaoList ? this.zigezhaoList.join(',') : '',
-					tijianUrls: this.tijianbaogaoList ? this.tijianbaogaoList.join(',') : '',
-					tijianDate: this.tijianDate,
-					jiankangDate: this.jiankangDate,
-
-
-				}
-				console.log('this.formData', this.formData);
-				this.$emit('goNext', this.formData, 2);
-			},
-			editSave() {
-				this.formData = {
-					icon: this.icon,
-					idcardUrl1: this.idcardUrl1,
-					idcardUrl2: this.idcardUrl2,
-					tijianbaogaoFlag: this.tijianbaogaoFlag,
-					shenghuoUrls: this.shenghuizhaoList.length > 0 ? this.shenghuizhaoList.join(',') : '',
-					zhengshuUrls: this.zigezhaoList.length > 0 ? this.zigezhaoList.join(',') : '',
-					tijianDate: this.tijianDate,
-					jiankangDate: this.jiankangDate,
-					tijianUrls: this.tijianbaogaoList ? this.tijianbaogaoList.join(',') : '',
-
-				}
-				console.log('this.formData', this.formData);
-				this.$emit('editSave', this.formData);
-			},
-
-		},
-		created() {
-			// setTimeout(()=>{
-			// 	 this.$refs.datePicker.show()
-			// },1000)
-
-		},
-	};
-</script>

+ 0 - 484
pages/admin/Kaoshi/exam.vue

@@ -1,484 +0,0 @@
-<template>
-	<view class="phone-kaoshi-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{data.ksName}}</text>
-		</view>
-		<!-- 第一行 -->
-		<view class="kaoshi-page-title">
-			<view v-if="activeSt" class="title-types">{{dlName}}</view>
-		</view>
-
-
-		<view class="kaoshi-shiti-content">
-			<!-- 内容区域 -->
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2" >
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-			</view>
-
-		</view>
-
-		<view class="kaoshi-bottom-box">
-			<button class="phone-green-btn bj-btn" hover-class="none" type="default" size="mini" @click="handleBiaoji">{{activeSt && activeSt.marked ? '取标':'标记'}}</button>
-			<view @click="showAnswerCard" class="shiti-num-box">
-				<icon class="shiti-num-icon"></icon>
-				<text class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<button class="phone-white-btn jx-btn" hover-class="none" type="default" size="mini" @click="handleCheckJiexi">解析</button>
-		</view>
-		<template v-if="activeSt">
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-prev" @click="handlePrev" v-if="!isFistStId">上一题</button>
-			<button type="default" size="mini" hover-class="none"class="phone-green-btn ks-btn-next" @click="handleNext" v-if="!isLastStId">下一题</button>
-			<button type="default" size="mini" hover-class="none"class="phone-green-btn ks-btn-next" @click="handleBack" v-if="isLastStId">退出</button>
-		</template>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData" :key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex" 
-						:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-		<!--
-		// 倒计时
-		<view v-if="!!data.endSecond">
-			<text>考试倒计时:</text>
-			<uni-countdown :show-day="false" :second="1000" @timeup="onTimeUp" :start="startCountDown"></uni-countdown>
-		</view>
-		-->
-		<!-- 答案解析 -->
-		<scoreAndAnswerVue ref="scoreAnswerRef"></scoreAndAnswerVue>
-		<scoreAndAnswerAdminTiankong ref="scoreAnswerTkRef"></scoreAndAnswerAdminTiankong>
-	</view>
-
-
-
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive,
-		computed,
-		watch
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as ksApi from "@/api/kaoshi.js"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import scoreAndAnswerVue from "@/components/scoreAndAnswer/scoreAndAnswerAdmin.vue";
-	import {useQuestionTools} from "@/components/questions/useQuestionTools.js";
-	import scoreAndAnswerAdminTiankong from "@/components/scoreAndAnswer/scoreAndAnswerAdminTiankong.vue";
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex
-	} = useQuestionTools();
-
-	const stTypes = {
-		1: '单选题',
-		2: '多选题',
-		3: '判断题',
-		4: '填空题',
-	}
-
-	const popupRef = ref(null)
-	const scoreAnswerRef = ref(null)
-	const scoreAnswerTkRef = ref(null)
-
-	const startCountDown = ref(false);
-
-	const data = reactive({
-		ksId: null,
-		ksName: '',
-		stTotal: 0,
-		stScore: 0,
-		biaoji: null,
-		endSecond: 0,
-		pageSize: 0,
-		toggleScreenFlag: 0,
-		toggleScreenSecond: 0,
-		zhuapai: 0,
-		duanluo: [],
-		markDB: [],
-		StListForSearch: [],
-	})
-
-	const questionData = ref([]);
-
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-	
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum-1].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	watch(() => data.duanluo, (newVal) => {
-		// 计算已答试题数量
-	}, {
-		deep: true
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-	onLoad((option) => {
-		data.ksId = option.ksId;
-		initKaoshi();
-	})
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-
-	}
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Kaoshi/list"
-		})
-	}
-
-	function onTimeUp() {
-		console.log('end')
-	}
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function handlePopupBack() {
-		popupRef.value && popupRef.value.close()
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.onlyNum - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.onlyNum - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-	function formatDuanluoList(dlData) {
-		let uIndex = 0; // 试题onlyNum
-		let iDuanluo = 0; // 段落onlyNum
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				iDanxuan.reply = iDanxuan.result;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					onlyNum: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.reply = iDuoxuan.result;
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					onlyNum: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.reply = iPanduan.result;
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					onlyNum: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.reply = iTiankong.result.map(item => item[0]);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					onlyNum: iTiankong.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-			console.log(questionData.value)
-		}
-	}
-	
-	function handleBiaoji() {
-		activeSt.value.marked = !activeSt.value.marked;
-	}
-	
-	function handleCheckJiexi() {
-		const qa = activeSt.value ;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-			
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-			
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else  if (qa.reply == 0) {
-				reply = '错误'
-			}else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			}else if (qa.result == 1) {
-				result = '正确'
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result =qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({score,reply,result,answer})
-		} else {
-			scoreAnswerRef.value.showPopup({
-				score,reply,result,answer
-			})
-		}
-	}
-
-	function initKaoshi() {
-		ksApi.getKaoshiInfo({
-			ksId: data.ksId
-		}).then(res => {
-			const {
-				ksId,
-				ksName,
-				stTotal,
-				stScore,
-				biaoji,
-				endSecond,
-				pageSize,
-				toggleScreenFlag,
-				toggleScreenSecond,
-				zhuapai,
-				duanluoList
-			} = res.data;
-			data.ksId = ksId;
-			data.ksName = ksName;
-			data.stTotal = stTotal;
-			data.stScore = stScore;
-			data.biaoji = biaoji;
-			data.endSecond = endSecond;
-			data.pageSize = pageSize;
-			data.toggleScreenFlag = toggleScreenFlag;
-			data.toggleScreenSecond = toggleScreenSecond;
-			data.zhuapai = zhuapai;
-			data.duanluo = duanluoList;
-			formatDuanluoList(data.duanluo);
-			uni.setNavigationBarTitle({
-				title: data.ksName
-			});
-			startCountDown.value = true;
-		})
-	}
-</script>

+ 0 - 186
pages/admin/Kaoshi/list.vue

@@ -1,186 +0,0 @@
-<template>
-	<view class="phone-list-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">考试管理</text>
-		</view>
-		<!-- 查询职业 -->
-		<view class="phone-search-box">
-			<input class="search-input" placeholder="请输入职业名称" v-model="data.zyName" />
-			<view class="search-icon" @click="handleSearch">
-				<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			</view>
-		</view>
-		<!-- 考试列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh" @scrolltolower="onScrolltolower"
-				class="admin-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-totalTm">
-									<icon class="phone-cishu-icon" />次数:{{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>
-								<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>
-		<!-- 页面底端 -->
-		<customTabbarAdminVue :current-tab="0"></customTabbarAdminVue>
-		<!-- 考试须知 -->
-		<kaoshixuzhiVue ref="ksxzRef" @confirm="handleConfirmKs"></kaoshixuzhiVue>
-	</view>
-</template>
-
-<script setup>
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import kaoshixuzhiVue from "@/components/kaoshixuzhi/kaoshixuzhi.vue";
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		getKaoshiList
-	} from "@/api/kaoshi.js";
-
-	const ksxzRef = ref(null);
-
-	const data = reactive({
-		zyName: '', // 职业名称
-		list: [], // 考试列表
-		loading: false,
-		page: 0,
-		size: 8,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		}
-	})
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-	
-	function onScrolltolower() {
-		getMore()
-	}
-
-	function handleConfirmKs(data) {
-		checkKaoshi(data)
-	}
-
-	function checkKsXz(data) {
-		ksxzRef.value.showDialog(data)
-	}
-
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function checkKaoshi(item) {
-		uni.navigateTo({
-			url: `/pages/admin/Kaoshi/exam?ksId=${item.ksId}`
-		})
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function refreshData() {
-		const opt = {
-			page: 1,
-			size: data.size, // 固定查询10条
-			zyName: data.zyName
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getKaoshiList(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,
-			size: data.size, // 固定查询10条
-			zyName: data.zyName
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getKaoshiList(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;
-		})
-	}
-
-	onLoad(() => {
-		getMore()
-	})
-</script>

+ 0 - 103
pages/admin/Kecheng/components/kechengLeixing.vue

@@ -1,103 +0,0 @@
-<template>
-	<uni-popup ref="popupKechengLeixingRef" type="top" :animation="false" :is-mask-click="false"
-		mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-filter-page">
-			<view class="icon-title-navBar-box">
-				<view @click="goUpPage" class="nav-bar-icon"></view>
-				<text class="nav-bar-title">筛选</text>
-			</view>
-			<view class="filter-body-box">
-				<radio-group @change="handleChange">
-					<!-- 报证机构 -->
-					<view class="filter-body-radio" v-for="item in data.list">
-						<label class="radio-name-box"
-							:class="{radioActive: activeSelect && activeSelect.id==item.id}">
-							<radio :value="`${item.id}`" :checked="item.checked" activeBackgroundColor="#3fd2a1" style="transform:scale(0.8)"/>
-							{{item.lable}}
-						</label>
-						<view class="phone-radio-group filter-radio-group">
-							<view class="phone-radio-item" v-for="citem in item.children"
-								:class="{radioActive: activeSelect && activeSelect.id == citem.id}"
-								@click.stop="handleSelect(citem,item)">
-								{{citem.lable}}
-							</view>
-						</view>
-					</view>
-				</radio-group>
-			</view>
-			<view class="filter-btn-box">
-				<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
-				<button type="default" class="phone-green-btn filter-btn" @click="handleConfirm">筛选</button>
-			</view>
-		</view>
-	</uni-popup>
-
-
-</template>
-
-<script setup>
-	import {
-		reactive,
-		ref
-	} from "vue";
-
-	const emits = defineEmits(['select', 'reset']);
-	const data = reactive({
-		list: []
-	})
-	const activeSelect = ref(null);
-
-	const popupKechengLeixingRef = ref(null);
-
-	function goUpPage() {
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleConfirm() {
-		emits('select', activeSelect.value)
-		popupKechengLeixingRef.value.close();
-	}
-
-	function handleReset() {
-		activeSelect.value = null;
-		emits('reset')
-	}
-
-	function handleChange(myData) {
-		const activeD = myData.detail.value;
-		data.list.forEach(item => {
-			if (item.id != activeD) {
-				item.checked = false
-			} else {
-				item.checked = true;
-				activeSelect.value = item;
-			}
-
-		})
-	}
-
-	function handleSelect(myData) {
-		data.list.forEach(item => {
-			item.checked = false
-		})
-		activeSelect.value = myData;
-	}
-
-	function showPopup({
-		data: myData
-	}) {
-		data.list = myData;
-		popupKechengLeixingRef.value.open('top')
-	}
-
-
-	defineExpose({
-		showPopup
-	})
-</script>
-
-<style lang="scss">
-	.active {
-		color: red
-	}
-</style>

+ 0 - 42
pages/admin/Kecheng/components/search.vue

@@ -1,42 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <input type="text" class="search-input" v-model="searchInput" placeholder="请输入课程名称" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn'])
-const searchPopup = ref(null); // 索引
-
-const searchInput= ref('');
- 
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	$emit('search-btn',searchInput);
-	searchPopup.value.close();
-}
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 255
pages/admin/Kecheng/list.vue

@@ -1,255 +0,0 @@
-<template>
-	<view class="phone-list-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">课程管理</text>
-			<uni-icons class="nav-bar-right-icon" type="search" size="22" color="#666" @click="searchBtn"></uni-icons>
-		</view>
-		<!-- 查询职业 -->
-		<view class="jiazheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text class="kc-select-text">{{data.leixing}}</text>
-				<icon class="select-jt-default" />
-			</view>
-		<!-- 	<input class="search-input" placeholder="请输入课程名称" v-model="data.name" />
-			<view class="search-icon" @click="handleSearch">
-				<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			</view> -->
-		</view>
-		<!-- 课程列表 -->
-		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh" @scrolltolower="onScrolltolower"
-			class="phone-scroll-saixuan-view scroll-top-border">
-			<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="kecheng-list-card">
-							<img :src="item.pic">
-							<view class="item-card-row">
-								<!-- 数量 -->
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<view class="ks-totalTm kc-fenlei">
-									<icon class="phone-fenlei-icon" />分类:{{item.kcClassifyName}}
-								</view>
-								<view class="ks-totalTm kc-totalTm">
-									<icon class="phone-time-icon" />时间:{{formatDuration(item.period)}}分钟
-								</view>
-								<button @click="checkKecheng(item)" type="primary" size="mini"
-									class="item-view-btn">查看内容</button>
-							</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>
-
-		<!-- 页面底端 -->
-		<customTabbarAdminVue :current-tab="2"></customTabbarAdminVue>
-		
-		<searchVue ref="searchRef" @search-btn="handleSearchFromBtn"></searchVue>
-		
-		<kechengLeixingVue ref="kclxRef" @select="handleSelectLeixing" @reset="handleResetLeixing"></kechengLeixingVue>
-	</view>
-</template>
-
-<script setup>
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import kechengLeixingVue from "@/pages/admin/Kecheng/components/kechengLeixing.vue";
-	import searchVue from "./components/search.vue";
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as kechengApi from "@/api/kecheng.js"
-	import {
-		formatDuration
-	} from "@/utils/common.js"
-	
-	const kclxRef = ref(null)
-	
-	const selectClassify = ref(null)
-	const searchRef = ref(null)
-
-	const data = reactive({
-		leixing: '全部类型',
-		leixingList: [],
-		name: '',
-		list: [], // 考试列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		}
-	})
-	
-	function onScrolltolower() {
-		getMore()
-	}
-	
-	function searchBtn() {
-		searchRef.value.handleShow()
-	}
-	
-	function handleSearchFromBtn(textD) {
-		data.name = textD;
-		handleSearch()
-	}
-	
-	function handleSelectLeixing(item) {
-		data.leixing = item.lable;
-		selectClassify.value = item;
-		handleSearch();
-	}
-	
-	function handleResetLeixing() {
-		selectClassify.value = null;
-		data.leixing = '全部类型';
-		handleSearch();
-	}
-
-	function clickAlltype() {
-		kclxRef.value.showPopup({
-			data: data.leixingList 
-		})
-	}
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function checkKecheng(item) {
-		uni.navigateTo({
-			url: `/pages/admin/Kecheng/study?kcId=${item.kcId}`
-		})
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function refreshData() {
-		const opt = {
-			page: 1,
-			size: 10, // 固定查询10条
-			name: data.name,
-			kcClassifyId: selectClassify.value && selectClassify.value.id || null,
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		kechengApi.getKechengGlList(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,
-			size: 10, // 固定查询10条
-			name: data.name,
-			kcClassifyId: selectClassify.value && selectClassify.value.id || null,
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		kechengApi.getKechengGlList(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 getKechengClassify() {
-		kechengApi.getAdminClassify().then(res => {
-			
-			res.data.children.forEach(item => {
-				item.checked = false;
-			})
-			
-			data.leixingList = res.data.children || [];
-		})
-	}
-
-	onLoad(() => {
-		getMore()
-		getKechengClassify();
-	})
-</script>
-
-<style lang="scss" scoped>
-	.phone-kecheng-page {
-		background-color: #ccc;
-		box-sizing: border-box;
-	}
-
-	.phone-search-content {
-		position: relative;
-		background-color: #fff;
-		height: 42px;
-
-		.search-input {
-			height: 42px;
-			line-height: 40px;
-			border-radius: 20px;
-			border: 1px solid #ccc;
-			padding: 0 70px 0 20px;
-		}
-
-		.search-icon {
-			position: absolute;
-			right: 5px;
-			top: 4px;
-			padding: 6px;
-			background-color: #ccc;
-			border-radius: 20px;
-			width: 50px;
-			text-align: center;
-		}
-	}
-</style>

+ 0 - 185
pages/admin/Kecheng/study.vue

@@ -1,185 +0,0 @@
-<template>
-	<view class="kecheng-study-page">
-		<!-- <view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{name}}</text>
-		</view> -->
-		<!-- 播放器 -->
-		<videoPlayVue ref="videoRef" class="phone-video-box" v-if="showVideo"></videoPlayVue>
-		<view v-else class="phone-video-box master-image">
-				<!-- <view class="video-player-icon" @click="handlePlayFirst"></view> -->
-		</view>
-		<!-- 播放引导 -->
-		<template v-if="kechengFlag">
-			<view class="yindao-shadow-image" v-if="!showVideo"> </view>
-		</template>
-		<!-- 中间区域 -->
-		<view class="kc-name-box">
-			<icon @click="goUpPage"></icon>
-			<view>{{name}}</view>
-		</view>
-		<view class="kc-info-box">
-			<view>时长:{{period}}</view>
-			<view>{{userCount}}人学习</view>
-		</view>
-		<!-- 大纲 -->
-		<view class="phone-tab-box">
-			<uni-segmented-control :current="current" :values="items" style-type="text" :active-color="activeColor"
-				@clickItem="onClickItem" />
-		</view>
-		<view class="kecheng-content-box">
-			<!-- 目录 -->
-			<kechengMuluVue v-if="current === 0" :chapterArr="list" @play="handlePlay" :isHasProgress="false" 
-			:activeKjId="curPlayData&&curPlayData.kjId"></kechengMuluVue>
-			<!-- 介绍 -->
-			<rich-text :nodes="intro || '暂无内容'" v-if="current === 1 && intro" class="kecheng-jieshao-box"></rich-text>
-		</view>
-	</view>
-</template>
-
-<script>
-	import * as kechengApi from "@/api/kecheng.js";
-	import videoPlayVue from "@/components/videoPlay/videoPlay.vue";
-	import kechengMuluVue from "@/components/kecheng-mulu/kecheng-mulu.vue";
-	import {
-		useUserCache
-	} from "@/utils/userCache.js"
-	import {
-		formatSecondsToCnhms
-	} from "@/utils/common.js"
-
-	export default {
-		components: {
-			videoPlayVue,
-			kechengMuluVue
-		},
-		data() {
-			return {
-				showVideo: false,
-				items: ['目录', '介绍'],
-				colors: ['#007aff', '#4cd964', '#dd524d'],
-				activeColor: '#3fd2a1',
-				current: 0, // 激活的选项卡
-				kcId: '', // 课程
-				title: '',
-				period: 0, // 时长
-				userCount: 0, // 学习人数
-				list: [],
-				intro: '',
-				curPlayData: null,
-				kechengFlag: null,
-				operId: '', // 课程
-				pageFrom:'',
-				name: '',
-			}
-		},
-		onLoad(options) {
-			this.kcId = options.kcId;
-			this.pageFrom = options.from;
-			this.init();
-		},
-		methods: {
-			handlePlayFirst() {
-				if (this.list && this.list[0].jieList && this.list[0].jieList[0].kejianList) {
-					// 设置默认展开项
-					this.list[0].open = true;
-					this.list[0].jieList[0].open = true;
-					
-					const kejian = this.list[0].jieList[0].kejianList[0];
-					this.handlePlay(kejian)
-				}
-			},
-			goUpPage() {
-				if(this.pageFrom==='shouye'){
-					uni.redirectTo({
-						url: '/pages/admin/ShouYe/shouye'
-					})
-				}else{
-					uni.redirectTo({
-						url: '/pages/admin/Kecheng/list'
-					})
-				}
-				
-			},
-			onClickItem(e) {
-				if (this.current !== e.currentIndex) {
-					this.current = e.currentIndex
-				}
-			},
-			formatData(data) {
-				data.forEach(zhang => {
-					zhang.open = false;
-					zhang.jieList.forEach(jie => {
-						jie.open = false;
-					})
-				})
-				return data;
-			},
-			handlePlay(data) {
-				console.log('data',data,this.curPlayData)
-				if (!this.kechengFlag) {
-					uni.showToast({
-						icon: 'none',
-						title: '当前课件不可查看'
-					})
-					return;
-				}
-				this.showVideo = true;
-				if (this.curPlayData && this.curPlayData.url == data.url) {
-					return;
-				}
-				this.curPlayData = data;
-
-				kechengApi.getVideoAuth({
-					videoId: data.url
-				}).then(res => {
-					this.$refs.videoRef.init({
-						videoId: data.url,
-						playAuth: res.data,
-						seekTime: '',
-						isPlay: false
-					})
-				})
-			},
-			initFirstVideo() {
-				if (this.list && this.list[0].jieList && this.list[0].jieList[0].kejianList) {
-					// 设置默认展开项
-					this.list[0].open = true;
-					this.list[0].jieList[0].open = true;
-					const kejian = this.list[0].jieList[0].kejianList[0];
-				}
-			},
-			init() {
-				kechengApi.getKechengGlStart({
-					kcId: this.kcId
-				}).then(res => {
-					const {
-						userCount,
-						period,
-						name,
-						kejianUserVo,
-						intro,
-						kechengFlag,
-						operId,
-					} = res.data;
-					this.userCount = userCount;
-					this.period = formatSecondsToCnhms(period,true);
-					this.name = name;
-					this.kechengFlag = kechengFlag;
-					this.formatData(kejianUserVo.zhangList)
-					this.list = kejianUserVo.zhangList;
-					this.intro = intro;
-					this.operId = operId;
-					
-					this.initFirstVideo();
-
-				})
-			}
-		}
-	}
-</script>
-
-
-<style>
-
-</style>

+ 0 - 485
pages/admin/Lianxi/lianxi.vue

@@ -1,485 +0,0 @@
-<template>
-	<view class="phone-kaoshi-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{data.lxName}}</text>
-		</view>
-		<!-- 第一行 -->
-		<view class="kaoshi-page-title">
-			<view v-if="activeSt" class="title-types">{{dlName}}</view>
-			<view>100分钟</view>
-		</view>
-
-
-		<view class="kaoshi-shiti-content">
-			<!-- 内容区域 -->
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2" >
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-			</view>
-
-		</view>
-
-		<view class="kaoshi-bottom-box">
-			<button class="phone-green-btn bj-btn" hover-class="none" type="default" size="mini" @click="handleBiaoji">{{activeSt && activeSt.marked ? '取标':'标记'}}</button>
-			<view @click="showAnswerCard" class="shiti-num-box">
-				<icon class="shiti-num-icon"></icon>
-				<text class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<button class="phone-white-btn jx-btn" hover-class="none" type="default" size="mini" @click="handleCheckJiexi">解析</button>
-		</view>
-		<template v-if="activeSt">
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-prev" @click="handlePrev" v-if="!isFistStId">上一题</button>
-			<button type="default" size="mini" hover-class="none"class="phone-green-btn ks-btn-next" @click="handleNext" v-if="!isLastStId">下一题</button>
-					<button type="default" size="mini" hover-class="none"class="phone-green-btn ks-btn-next" @click="handleBack" v-if="isLastStId">退出</button>
-		</template>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData" :key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex" 
-						:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-		<!--
-		// 倒计时
-		<view v-if="!!data.endSecond">
-			<text>考试倒计时:</text>
-			<uni-countdown :show-day="false" :second="1000" @timeup="onTimeUp" :start="startCountDown"></uni-countdown>
-		</view>
-		-->
-		<!-- 答案解析 -->
-		<scoreAndAnswerVue ref="scoreAnswerRef"></scoreAndAnswerVue>
-		<scoreAndAnswerAdminTiankong ref="scoreAnswerTkRef"></scoreAndAnswerAdminTiankong>	
-	</view>
-
-
-
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive,
-		computed,
-		watch
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as lxApi from "@/api/lianxi.js"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import scoreAndAnswerVue from "@/components/scoreAndAnswer/scoreAndAnswerAdmin.vue";
-	import scoreAndAnswerAdminTiankong from "@/components/scoreAndAnswer/scoreAndAnswerAdminTiankong.vue";
-	import {useQuestionTools} from "@/components/questions/useQuestionTools.js";
-
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex
-	} = useQuestionTools();
-
-	const stTypes = {
-		1: '单选题',
-		2: '多选题',
-		3: '判断题',
-		4: '填空题',
-	}
-
-	const popupRef = ref(null)
-	const scoreAnswerRef = ref(null)
-	const scoreAnswerTkRef = ref(null)
-	const startCountDown = ref(false);
-
-	const data = reactive({
-		lxId: null,
-		lxName: '',
-		stTotal: 0,
-		stScore: 0,
-		biaoji: null,
-		endSecond: 0,
-		pageSize: 0,
-		toggleScreenFlag: 0,
-		toggleScreenSecond: 0,
-		zhuapai: 0,
-		duanluo: [],
-		markDB: [],
-		StListForSearch: [],
-	})
-
-	const questionData = ref([]);
-
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-	
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum-1].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	watch(() => data.duanluo, (newVal) => {
-		// 计算已答试题数量
-	}, {
-		deep: true
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-	onLoad((option) => {
-		data.lxId = option.lxId;
-		initKaoshi();
-	})
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-
-	}
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Lianxi/list"
-		})
-	}
-
-	function onTimeUp() {
-		console.log('end')
-	}
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function handlePopupBack() {
-		popupRef.value && popupRef.value.close()
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-	function formatDuanluoList(dlData) {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				iDanxuan.reply = iDanxuan.result;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.reply = iDuoxuan.result;
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.reply = iPanduan.result;
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.reply = iTiankong.result.map(item => item[0]);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-			console.log(questionData.value)
-		}
-	}
-	
-	function handleBiaoji() {
-		activeSt.value.marked = !activeSt.value.marked;
-	}
-	
-	function handleCheckJiexi() {
-		const qa = activeSt.value ;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-			
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-			
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else  if (qa.reply == 0) {
-				reply = '错误'
-			}else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			}else if (qa.result == 1) {
-				result = '正确'
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result =qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({score,reply,result,answer})
-		} else {
-			scoreAnswerRef.value.showPopup({
-				score,reply,result,answer
-			})
-		}
-	}
-
-	function initKaoshi() {
-		lxApi.getLianxiInfo({
-			lxId: data.lxId
-		}).then(res => {
-			const {
-				lxId,
-				lxName,
-				stTotal,
-				stScore,
-				biaoji,
-				endSecond,
-				pageSize,
-				toggleScreenFlag,
-				toggleScreenSecond,
-				zhuapai,
-				duanluoList
-			} = res.data;
-			data.lxId = lxId;
-			data.lxName = lxName;
-			data.stTotal = stTotal;
-			data.stScore = stScore;
-			data.biaoji = biaoji;
-			data.endSecond = endSecond;
-			data.pageSize = pageSize;
-			data.toggleScreenFlag = toggleScreenFlag;
-			data.toggleScreenSecond = toggleScreenSecond;
-			data.zhuapai = zhuapai;
-			data.duanluo = duanluoList;
-			formatDuanluoList(data.duanluo);
-			uni.setNavigationBarTitle({
-				title: data.lxName
-			});
-			startCountDown.value = true;
-		})
-	}
-</script>

+ 0 - 186
pages/admin/Lianxi/list.vue

@@ -1,186 +0,0 @@
-<template>
-	<view class="phone-list-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">练习管理</text>
-		</view>
-		<!-- 查询职业 -->
-		<view class="phone-search-box">
-			<input class="search-input" placeholder="请输入职业名称" v-model="data.zyName" />
-			<view class="search-icon" @click="handleSearch">
-				<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			</view>
-		</view>
-		<!-- 考试列表 -->
-			<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-				:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"  @scrolltolower="onScrolltolower"
-				class="admin-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>
-								<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>
-		<!-- 页面底端 -->
-		<customTabbarAdminVue :current-tab="0"></customTabbarAdminVue>
-		<!-- 考试须知 -->
-		<lianxixuzhi ref="lxxzRef" @confirm="handleConfirmKs"></lianxixuzhi>
-	</view>
-</template>
-
-<script setup>
-	import * as lianxiApi from "@/api/lianxi.js";
-	import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import lianxixuzhi from "@/components/kaoshixuzhi/lianxixuzhi.vue";
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	
-	const lxxzRef = ref(null);
-	
-	const data = reactive({
-		zyName: '', // 职业名称
-		list: [], // 考试列表
-		loading: false,
-		page: 0,
-		size: 8,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		}
-	})
-	
-	function checkKsXz(data) {
-		lxxzRef.value.showDialog(data)
-	}
-	
-	function handleConfirmKs(data) {
-		checkKaoshi(data)
-	}
-	
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-	
-	function onScrolltolower() {
-		getMore()
-	}
-	
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-	
-	function checkKaoshi(item) {
-		uni.redirectTo({
-			url: `/pages/admin/Lianxi/lianxi?lxId=${item.lxId}`
-		})
-	}
-	
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-	
-	function refreshData() {
-		const opt = {
-			page: 1,
-			size: data.size, // 固定查询10条
-			zyName: data.zyName
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-	
-		lianxiApi.getLianxiList(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,
-			size: data.size, // 固定查询10条
-			zyName: data.zyName
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		lianxiApi.getLianxiList(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;
-		})
-	}
-	
-	onLoad(() => {
-		getMore()
-	})
-	
-</script>
-
-<style>
-
-</style>

+ 0 - 288
pages/admin/ShouYe/shouye.vue

@@ -1,288 +0,0 @@
-<template>
-  <view class="admin-shouye-page">
-	  <view class="shouye-head-box">{{indexInfoData.jzName}}</view>
-	  <view class="index-banner-default" v-if="!swiperInfo.length>0"></view>
-	  <uni-swiper-dot v-else class="shouye-swiper-box" :info="swiperInfo" :current="current" field="content" mode="dot" :dots-styles="dotStyle">
-	  	<swiper class="swiper-box" @change="change" autoplay circular interval="5000">
-			<!-- autoplay circular interval="3000" -->
-	  		<swiper-item v-for="(item ,index) in swiperInfo" :key="index">
-				<img class="index-banner-img" :src="item.pic" @click="gotoKc(item)"/>
-	  		</swiper-item>
-	  	</swiper>
-	  </uni-swiper-dot>
-
-	  <view class="tj-btn-box">
-	  		<text :class="{active: tjBtn == 1}" @click="tjBtnClick(1)">本周</text>
-	  		<text :class="{active: tjBtn == 2}" @click="tjBtnClick(2)">本月</text>
-	  		<text :class="{active: tjBtn == 0}" @click="tjBtnClick(0)">全部</text>
-	  </view>
-	  <view class="index-tj-row">
-		 <view class="index-tj-box">
-		 		  <view class="tj-num-box">{{indexInfoData.bzCount}}/{{indexInfoData.jzCount}}</view>
-		 		  <view class="tj-tip-box">考证人员/家政人员</view>
-		 </view>
-		 <view class="index-kc-box" @click="goToPage('sykc')">
-		 	<view class="tj-num-box">{{indexInfoData.kechengCount}}/{{indexInfoData. kechengUsed}}</view>
-		 	<view class="tj-tip-box">剩余课程/已售课程</view>
-			<icon class="sjkc-jt-icon"></icon>
-		 </view>
-	  </view>
-	  <view class="index-tongzhi-box" @click="goToPage('tz')">
-	  		  <text class="tongzhi-num">{{tzNum}}</text>
-	  		  <rich-text :nodes="tzContent" class="tongzhi-content"></rich-text>
-	  		  <icon></icon>
-	  </view>
-	  <view class="card-list-box">
-		 <view class="card-list-title">管理家政人员</view>
-		 <view @click="goToPage('jz')" class="card-item-box">
-		 	<icon class="index-icon jz-icon"></icon>
-		 	<text>家政人员</text>
-		 </view>
-		 <!-- 添加子账号权限只有主账号拥有,其他子账号无法查看 -->
-		 <view @click="goToPage('zzh')" class="card-item-box" v-if="auth.type == 2">
-		 	<icon class="index-icon zzh-icon"></icon>
-		 	<text>创建子账号</text>
-		 </view>
-		 <view @click="goToPage('zjz')" class="card-item-box" v-if="auth.type == 2">
-		 	<icon class="index-icon zjz-icon"></icon>
-		 	<text>子家政公司</text>
-		 </view>
-		 <!-- <view @click="goToPage('demo')" class="card-item-box" v-if="auth.type == 2">
-		 	<icon class="index-icon zjz-icon"></icon>
-		 	<text>demo</text>
-		 </view> -->
-	  </view>
-	  <view class="card-list-box">  
-		<view class="card-list-title">管理考证人员</view>
-		<view @click="goToPage('bz')" class="card-item-box">
-			<icon class="index-icon kz-icon"></icon>
-			<text>办证管理</text>
-		</view>
-		<view @click="goToPage('ks')" class="card-item-box">
-			<icon class="index-icon ks-icon"></icon>
-			<text>考试管理</text>
-		</view>
-		<view @click="goToPage('cj')" class="card-item-box">
-			<icon class="index-icon cj-icon"></icon>
-			<text>成绩管理</text>
-		</view>
-		<view @click="goToPage('lc')" class="card-item-box">
-			<icon class="index-icon lx-icon"></icon>
-			<text>练习管理</text>
-		</view>
-		<view @click="goToPage('kc')" class="card-item-box">
-			<icon class="index-icon kc-icon"></icon>
-			<text>课程管理</text>
-		</view>
-	</view>	
-	<!-- 页面底端 -->
-	<customTabbarAdminVue :current-tab="0"></customTabbarAdminVue>
-	<tip-dialog ref="tipDialogRef" :title="tipTitle" :content="tipContent"></tip-dialog>
-	
-	<!-- 安卓强制升级 -->
-	<shengJiDialog ref="tipDialogRef2" :closeFlag='false' :title="tipTitle" @confirm-btn="BanbenConfirmBtn" :showTip="true"
-		:notClose="true" :content="tipContentAndroid">
-	</shengJiDialog>
-	
-  </view>
-</template>
-
-<script setup>
-import cacheManager from "@/utils/cacheManager.js";
-import {onLoad,onShow} from '@dcloudio/uni-app';
-import {reactive,ref} from "vue";
-import customTabbarAdminVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-import {getAppNoticeList,getAppNoticeWait,getGlIndexInfo,getIndexKechengList} from '@/api/shouye.js'
-import tipDialog from '@/components/dialog/tipDialog.vue';
-import config from '../../../config.js'
-import * as httpApi from "@/api/login.js"
-import shengJiDialog from '@/components/dialog/shengJiDialog.vue';
-import {
-	useVersionUpdate
-} from "@/utils/versionUpdate.js";
-
-const version = config.appInfo.version;
-const tipDialogRef = ref(null);
-const tipTitle = '升级提醒';
-const tipContent = '您的APP不是最新版本,部分功能不能使用,请升级至最新版本!';
-const auth = cacheManager.get('auth');
-const tjBtn = ref(1);
-const tzNum = ref(0);
-const tzContent = ref('');
-const searchType = ref('');
-const current = ref(0);
-const tipContentAndroid = '您的APP不是最新版本,部分功能不能使用,请升级至最新版本!'
-
-const tipDialogRef2 = ref(null)
-const updateUrl = ref(null)
-
-const {
-		initDownload
-	} = useVersionUpdate()
-let indexInfoData = reactive({
-		searchType:1,
-		bzCount: 0,
-		jzCount: 0,
-		jzName: '',
-		kechengCount: 0,//剩余课程数量
-		kechengUsed: 0,//售出课程数量
-	});
-const swiperInfo = ref([]);
-const dotStyle = reactive({
-	width:'8',
-	height:'8',
-	bottom:'-12',
-	backgroundColor: 'rgba(226,230,236)',
-	border: '1px rgb(226,230,236) solid',
-	selectedBackgroundColor: 'rgb(92, 192, 147)',
-	selectedBorder: '1px rgb(92, 192, 147) solid'
-});
-
-function change(e) {
-				current.value = e.detail.current
-			}
-			
-function gotoKc(item){
-	uni.navigateTo({
-		url: `/pages/admin/Kecheng/study?kcId=${item.kcId}&from=shouye`
-	})
-}
-
-onLoad((options) => {
-		initPage();
-})
-
-function initPage() {
-	getKcTg();
-	getTzNum();
-	getTzlist();
-	getIndexInfo();
-}	
-function getKcTg(){
-	getIndexKechengList({}).then(res => {
-		swiperInfo.value = res.data.data;
-	})
-}
-function getTzNum(){
-	getAppNoticeWait({}).then(res => {
-		tzNum.value = res.data;
-	})
-}
-
-function getIndexInfo(){
-	getGlIndexInfo({searchType:indexInfoData.searchType}).then(res => {
-		indexInfoData.bzCount = res.data.bzCount;
-		indexInfoData.jzCount = res.data.jzCount;
-		indexInfoData.jzName = res.data.jzName;
-		indexInfoData.kechengCount = res.data.kechengCount;
-		indexInfoData.kechengUsed = res.data.kechengUsed;
-	})
-}
-
-function getTzlist(){
-	const opt = {
-		page: 1,
-		size: 10, // 固定查询10条
-	}
-	getAppNoticeList(opt).then(res => {
-		tzContent.value = res.data.data[0].name;
-	})
-}
-
-// 按钮切换
-function tjBtnClick(data){
-	tjBtn.value = data;
-	indexInfoData.searchType = data;
-	getIndexInfo();
-}
-// 获取用户头像
-	function goToPage(data){
-		switch (data) {
-		    case 'jz':
-		        uni.redirectTo({
-		        	url:'/pages/admin/Jiazheng/index'
-		        })
-		        break;
-			case 'zzh':
-			    uni.redirectTo({
-			    	url:'/pages/admin/zizhanghao/list'
-			    })
-			    break;
-			case 'sykc':
-			    uni.redirectTo({
-			    	url:'/pages/admin/yishou/yishou'
-			    })
-			    break;
-		    case 'bz':
-		        uni.redirectTo({
-		        	url:'/pages/admin/banzheng/list'
-		        })
-		        break;
-		    case 'ks':
-		        uni.redirectTo({
-		        	url:'/pages/admin/Kaoshi/list'
-		        })
-		        break;
-			case 'cj':
-			    uni.redirectTo({
-			    	url:'/pages/admin/Chengji/list'
-			    })
-			    break;
-			case 'kc':
-			    uni.redirectTo({
-			    	url:'/pages/admin/Kecheng/list'
-			    })
-			    break;
-			case 'tz':
-			    uni.redirectTo({
-			    	url:'/pages/admin/tongzhi/list'
-			    })
-			    break;
-			case 'lc':
-				uni.redirectTo({
-					url:'/pages/admin/Lianxi/list'
-				})
-				break;
-			case 'zjz':
-				uni.redirectTo({
-					url:'/pages/admin/zijiazheng/index'
-				})
-				break;
-			case 'demo':	
-				uni.redirectTo({
-					url:'/pages/demo/demo2'
-				})
-				break;
-		}
-	}
-	
-	function BanbenConfirmBtn() {
-		const systemInfo = uni.getSystemInfoSync();
-			if (systemInfo.platform == 'ios') {
-	
-			} else {
-				initDownload(updateUrl.value)
-			}
-	}	
-	
-	function getLoginInit(){
-			httpApi.getVersion({}).then(res => {
-				if (version != res.data.version) {
-					updateUrl.value = res.data.updateUrl
-					// test 版本相同唤起弹窗
-					// tipDialogRef2.value.handleShow();
-					const systemInfo = uni.getSystemInfoSync();
-					if (systemInfo.platform == 'ios') {
-					
-					} else {
-						tipDialogRef2.value.handleShow();
-					}
-				}
-			})
-		}
-		
-		onShow(() => {
-			getLoginInit()
-		})
-</script>
-

+ 0 - 179
pages/admin/banzheng/filter.vue

@@ -1,179 +0,0 @@
-<template>
-	<uni-popup ref="filterPopup" type="top" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	<view class="phone-filter-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">筛选</text>
-		</view>
-		<view class="filter-body-box">
-			<!-- 报证机构 -->
-			<view class="filter-body-name">报证机构</view>
-			<view class="phone-radio-group filter-radio-group">
-				<view class="phone-radio-item" v-for="(item,index) in bzJigouList" :class="{radioActive: showData.jigouId===index}" @click="radioSelect('jg',item,index)">{{item.name}}</view>
-			</view>
-			
-			<!-- 职业 -->
-			<view class="filter-body-name">职业</view>
-			<view class="phone-radio-group filter-radio-group">
-				<view class="phone-radio-item" v-for="(item,index) in zhiyeList" :class="{radioActive: showData.zhiyeId===index}" @click="radioSelect('zy',item,index)">{{item.name}}</view>
-			</view>
-			
-			<!-- 等级 -->
-			<view class="filter-body-name">等级</view>
-			<view class="phone-radio-group filter-radio-group">
-				<view class="phone-radio-item" v-for="(item,index) in LevelList" :class="{radioActive: showData.levelId===index}" @click="radioSelect('dj',item,index)">{{item.name}}</view>
-			</view>
-			
-			<!-- 办证状态 -->
-			<!-- <view class="filter-body-name">办证状态</view>
-			<view class="phone-radio-group filter-radio-group">
-				<view class="phone-radio-item" v-for="(item,index) in banzhengList" :class="{radioActive: showData.banzhengId===index}" @click="radioSelect('bzStatus',item,index)">{{item.name}}</view>
-			</view> -->
-			
-			<!-- 考试状态 -->
-			<view class="filter-body-name">考试状态</view>
-			<view class="phone-radio-group filter-radio-group">
-				<view class="phone-radio-item" v-for="(item,index) in kaoshiList" :class="{radioActive: showData.kaoshiId===index}" @click="radioSelect('ksStatus',item,index)">{{item.name}}</view>
-			</view>
-		</view>
-		<view class="filter-btn-box">
-			<button type="default" class="phone-white-btn filter-btn" @click="handleReset">重置</button>
-			<button type="default" class="phone-green-btn filter-btn" @click="confirmBtn">筛选</button>
-		</view>
-	</view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {onLoad,onShow} from '@dcloudio/uni-app';
-	import {ref,reactive} from "vue"
-	import * as banzhengApi from "@/api/banzheng.js"
-	const filterPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	// 页面显示active
-	const showData = reactive({
-		jigouId: '',
-		zhiyeId: '',
-		levelId: '',
-		// banzhengId: '',
-		kaoshiId: '',
-	})
-	// 传到父组件
-	const bzData = reactive({
-		jigouId: '',
-		zhiyeId: '',
-		levelId: '',
-		// banzhengId: '',
-		kaoshiId: '',
-	})
-	const bzJigouList = ref([]);
-	const zhiyeList = ref([]);
-	const LevelList = ref([]);
-	const banzhengList = ref([]);
-	const kaoshiList = ref([]);
-	
-	// 打开弹窗
-	function handleShow() {
-		filterPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		filterPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		$emit('confirm-btn',bzData);
-		filterPopup.value.close();
-	}
-	
-	function initPage(){
-		getKaozhengJigouList();
-		getKaozhengZhiyeList();
-		getKaozhengLevelList();
-		getKaozhengBanzhengList();
-		getKaozhengKaoshiList();
-	}
-	
-	function getKaozhengJigouList(){
-		banzhengApi.getKaozhengJigou().then(res => {
-			bzJigouList.value = res.data;
-		})
-	}
-	
-	function getKaozhengZhiyeList(){
-		banzhengApi.getKaozhengZhiye().then(res => {
-			zhiyeList.value = res.data;
-		})
-	}
-	
-	function getKaozhengLevelList(){
-		banzhengApi.getKaozhengLevel().then(res => {
-			LevelList.value = res.data;
-		})
-		
-	}
-	
-	function getKaozhengBanzhengList(){
-		banzhengApi.getKaozhengBanzheng().then(res => {
-			banzhengList.value = res.data;
-		})
-	}
-	
-	function getKaozhengKaoshiList(){
-		banzhengApi.getKaozhengKaoshi().then(res => {
-			kaoshiList.value = res.data;
-		})
-	}
-	
-	function radioSelect(name,item,index){
-		switch (name) {
-			case 'jg':
-				showData.jigouId = index;
-			    bzData.jigouId = item.jgId;
-			    break;
-			case 'zy':
-			    showData.zhiyeId = index;
-				bzData.zhiyeId = item.id;
-			    break;	
-			case 'dj':
-			    showData.levelId = index;
-				bzData.levelId = item.id;
-			    break;	
-			/* case 'bzStatus':
-			    showData.banzhengId = index;
-				bzData.banzhengId = item.id;
-			    break; */
-			case 'ksStatus':
-			    showData.kaoshiId = index;
-				bzData.kaoshiId = item.id;
-			    break;			
-		}
-	}
-	
-	function goUpPage(){
-		filterPopup.value.close();
-	}
-	
-	function handleReset(){
-		bzData.jigouId = '';
-		bzData.zhiyeId = '';
-		bzData.levelId = '';
-		// bzData.banzhengId =  '';
-		bzData.kaoshiId =  '';
-		
-		showData.jigouId = '';
-		showData.zhiyeId = '';
-		showData.levelId = '';
-		showData.banzhengId =  '';
-		showData.kaoshiId =  '';
-	}
-	defineExpose({
-			handleShow,
-			initPage,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 338
pages/admin/banzheng/list.vue

@@ -1,338 +0,0 @@
-<template>
-	<view class="phone-list-page phone-banzheng-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">办证管理</text>
-			<uni-icons class="nav-bar-right-icon" type="search" size="22" color="#666" @click="searchBtn"></uni-icons>
-		</view>
-		<view class="banzheng-search-box">
-			<view @click.stop="clickAlltype" class="select-item-box">
-				<text>{{data.bzztName}}</text>
-				<icon class="select-jt-default" />
-			</view>
-			<view class="filter-btn" @click="filterBtn">筛选</view>
-		</view>
-		<view class="banzheng-type-box" v-show="isOpen" @click="clickAlltype">
-			<dataChecked :list="allType" mode="single" :selectedIds='data.statusBanzheng' :defaultCount="99"
-				:showAdd="false" @change="selectChangeSkill" />
-		</view>
-		<!-- 课程列表 -->
-		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
-			class="phone-scroll-saixuan-view">
-			<uni-list>
-				<uni-list-item v-for="item in data.list" class="banzheng-list-item-box">
-					<template v-slot:body>
-						<view class="banzheng-list-card-box" @click="goBzDetail(item)">
-							<view class="card-head-row">
-								<view class="head-name">{{item.realName}}</view>
-								<view class="head-status">
-									<text>{{item.statusBanzheng}}</text>
-									<text class="status-line"
-										v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">|</text>
-									<text
-										v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">{{item.statusKaoshi}}</text>
-									<!-- 删除 wgy看这里↓-->
-									<icon class="head-clear" @click.stop="deleteFun(item)"></icon>
-								</view>
-							</view>
-							<view class="card-body-row">
-								<view class="card-img-box">
-									<img :src="item.icon" v-if="item.icon">
-									<icon class="phone-default-userImg" v-else></icon>
-								</view>
-								<view class="body-content-row">
-									<view class="content-text-row">
-										<text>手机号:</text>{{item.userName}}
-										<button type="default" class="phone-green-btn bz-tel-btn"
-											@click.stop="telCallBtn(item.userName)">打电话</button>
-									</view>
-									<view class="content-text-row"><text>证件号:</text>{{item.idcard}}</view>
-									<view class="jg-zy-box">
-										<view class="jg-zy-row">
-											<icon class="bz-icon"></icon><text>报证机构:{{item.jgName}}</text>
-										</view>
-										<view class="jg-zy-row">
-											<icon class="zy-icon"></icon><text>职业名称:{{item.zyName}}
-												{{item.zyLevel}}</text>
-										</view>
-									</view>
-								</view>
-							</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>
-
-		<!-- 页面底端 -->
-		<customTabbarClientVue :current-tab="0"></customTabbarClientVue>
-		<!-- 筛选 -->
-		<filter-dialog ref="filterDialogRef" @confirm-btn="confirmBtn"></filter-dialog>
-		<!-- 搜索 -->
-		<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn"
-			@reset-search="dialogSearchReset"></search-dialog>
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-	</view>
-</template>
-
-<script setup>
-	import * as banzhengApi from "@/api/banzheng.js"
-	import dataChecked from '../Jiazheng/common/dataChecked.vue';
-	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import filterDialog from "./filter.vue";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import searchDialog from "./search.vue";
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad,
-		onShow
-	} from "@dcloudio/uni-app";
-	import {
-		getKaozhengList,
-		kaozhengDelete
-	} from '@/api/banzheng.js'
-	import {
-		formatSecondsToCnhms
-	} from "@/utils/common.js"
-
-	const filterDialogRef = ref(null);
-	const searchDialogRef = ref(null);
-	const commonDialogRef = ref(null);
-	const deleteId = ref('');
-	const deleteTitle = ref('删除');
-	const deleteConcent = ref('你确定要执行这个操作吗');
-
-	const data = reactive({
-		bzztName: '全部状态',
-		jgId: '', // 机构ID
-		realName: '', // 姓名
-		statusBanzheng: '', // 办证状态
-		statusKaoshi: '', // 考试状态
-		userName: '', // 手机号
-		zyId: '', // 职业ID
-		zyLevel: '', // 职业等级ID
-		list: [], // 办证列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		},
-		from: ''
-	})
-
-	/*** 办证状态 ***/
-	let isOpen = ref(false)
-	let allType = ref([])
-
-	function getKaozhengBanzhengList() {
-		banzhengApi.getKaozhengBanzheng().then(res => {
-			const newItem = {
-				id: 0,
-				name: '全部状态'
-			};
-			allType.value = [newItem, ...res.data];
-			data.statusBanzheng = 1
-			data.bzztName = '未办证'
-		})
-	}
-	const clickAlltype = (data) => {
-		isOpen.value = !isOpen.value;
-	}
-
-	function selectChangeSkill(item) {
-		if (item.length > 0) {
-			data.statusBanzheng = item[0].id == 0 ? '' : item[0].id;
-			data.bzztName = item[0].name;
-			data.page = 0;
-			refreshData();
-		}
-
-	}
-
-	function deleteFun(data) {
-		console.log('data', data);
-		deleteId.value = data.id
-		commonDialogRef.value.handleShow();
-
-	}
-
-	function deleteQuerenBtn() {
-		kaozhengDelete({
-			ids: [deleteId.value]
-		}).then(res => {
-			if (res.code == 0) {
-				uni.showToast({
-					title: '成功'
-				})
-				handleSearch()
-			} else {
-				uni.showToast({
-					title: '失败'
-				})
-			}
-
-		})
-	}
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-
-	// 筛选
-	function filterBtn() {
-		filterDialogRef.value.initPage();
-		filterDialogRef.value.handleShow();
-	}
-
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function goBzDetail(item) {
-		let pageInfo = {
-			status: 'edit',
-			id: '',
-			userId: item.userId,
-			from: 'banzheng'
-		}
-		uni.redirectTo({
-			url: "/pages/admin/Jiazheng/jiazhengUserManager?pageInfo=" + JSON.stringify(pageInfo)
-		})
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function refreshData() {
-		const opt = {
-			jgId: data.jgId, // 机构ID
-			realName: data.realName, // 姓名
-			statusBanzheng: data.statusBanzheng, // 办证状态
-			statusKaoshi: data.statusKaoshi, // 考试状态
-			userName: data.userName, // 手机号
-			zyId: data.zyId, // 职业ID
-			zyLevel: data.zyLevel, // 职业等级ID
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getKaozhengList(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 = {
-			jgId: data.jgId, // 机构ID
-			realName: data.realName, // 姓名
-			statusBanzheng: data.statusBanzheng == '' ? 1 : data.statusBanzheng, // 办证状态
-			statusKaoshi: data.statusKaoshi, // 考试状态
-			userName: data.userName, // 手机号
-			zyId: data.zyId, // 职业ID
-			zyLevel: data.zyLevel, // 职业等级ID
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getKaozhengList(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 confirmBtn(dialogData) {
-		data.jgId = dialogData.jigouId;
-		data.zyId = dialogData.zhiyeId;
-		data.zyLevel = dialogData.levelId;
-		data.statusKaoshi = dialogData.kaoshiId;
-		data.page = 0;
-		refreshData();
-	}
-
-	function searchBtn() {
-		searchDialogRef.value.handleShow();
-	}
-
-	function dialogSearchBtn(name, searchData) {
-		switch (name) {
-			case '姓名':
-				dialogSearchReset();
-				data.realName = searchData.value;
-				break;
-			case '手机号':
-				data.userName = searchData.value;
-				break;
-		}
-		data.page = 0;
-		refreshData();
-
-	}
-
-	function dialogSearchReset() {
-		data.userName = '';
-		data.realName = '';
-	}
-
-	function telCallBtn(data) {
-		uni.makePhoneCall({
-			phoneNumber: data //仅为示例
-		});
-	}
-
-	onLoad((options) => {
-		data.from = options.from;
-	})
-
-	onShow(() => {
-		getMore()
-		getKaozhengBanzhengList();
-	})
-</script>

+ 0 - 113
pages/admin/banzheng/search.vue

@@ -1,113 +0,0 @@
-<template>
-	<uni-popup ref="searchPopup" type="top" :animation="false" :is-mask-click="true"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	   <view class="select-search-row">
-		   <view class="select-search-body">
-			  <view class="select-jt-box" @click="toggleMenu">
-				<view class="selected-item">{{ selectedOption.label }}</view>
-				<view class="arrow" :class="{ 'arrow-up': isMenuOpen, 'arrow-down': !isMenuOpen }"></view>
-			  </view>
-			  <view class="select-list-box" v-if="isMenuOpen">
-				<view
-				  v-for="(option, index) in options"
-				  :key="option.value"
-				  class="menu-item"
-				  @click="selectOption(option)"
-				>
-				  {{ option.label }}
-				</view>
-			  </view>
-			  <input type="text" class="search-input" v-model="searchInput" :placeholder="searchPlaceholder" />
-			  <view class="search-icon" @click="handleSearch">
-			  	<uni-icons type="search" size="24" color="#fff"></uni-icons>
-			  </view>	
-			</view>
-		</view>
-		<view class="search-clear-box" v-if="searchInput" @click="searchReset">
-			<icon></icon>
-			<text>清空搜索</text>
-		</view>
-  </uni-popup>
-</template>
-
-<script setup>
-import { ref } from 'vue';
-const $emit = defineEmits(['search-btn','reset-search'])
-const searchPopup = ref(null); // 索引
-
-
-const options = ref([
-	  { label: '全部', value: 1 },
-	  { label: '姓名', value: 2 },
-	  { label: '手机号', value: 3 }
-	]);
-const searchPlaceholder= ref('请输入姓名、手机号等关键字');
-const searchInput= ref('');
-// 存储当前选中的选项对象
-const selectedOption = ref(options.value[0]);
- 
-// 存储菜单是否打开的状态
-const isMenuOpen = ref(false);
- 
-// 切换菜单打开/关闭状态的函数
-const toggleMenu = () => {
-  isMenuOpen.value = !isMenuOpen.value;
-};
- 
-// 选择选项的函数
-const selectOption = (option) => {
-  selectedOption.value = option;
-  searchInput.value = '';
-  if(option.label==="全部"){
-	  searchPlaceholder.value = '请输入姓名、手机号等关键字';
-  }else{
-	  searchPlaceholder.value = '请输入'+ option.label;
-  }
-  
-  isMenuOpen.value = false; // 选择后关闭菜单
-};
-
-function validatePhoneNumber(value){
-	const phoneRegex = /^1[3-9]\d{9}$/;
-	if (phoneRegex.test(value)) {
-		return '手机号';
-	} else {
-		return '姓名';
-	}
-}
-
-// 打开弹窗
-function handleShow() {
-	searchPopup.value.open();
-}
-// 取消
-function handleClose() {
-	searchInput.value = '';
-	searchPopup.value.close();
-}
-// 确认
-function handleSearch(){
-	let searchKey = '';
-	if(selectedOption.value.label==="全部"){
-		searchKey = validatePhoneNumber(searchInput.value)
-	}else{
-		searchKey = selectedOption.value.label;
-	}
-	// 搜索 key和 data
-	$emit('search-btn',searchKey,searchInput);
-	searchPopup.value.close();
-}
-
-// 清空搜索
-function searchReset(){
-	searchInput.value = '';
-	$emit('reset-search');
-}
-
-
-defineExpose({
-	handleShow,
-	handleClose
-})
-</script>
-

+ 0 - 46
pages/admin/my/imageDialog.vue

@@ -1,46 +0,0 @@
-<template>
-	<uni-popup ref="passwordPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">二维码</view>
-			<img :src="imgSrc" class="code-img"/>
-			<view class="common-btn-box">
-				<view class="confirm-btn" @click="handleClose">关闭</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import * as myApi from "@/api/my.js";
-	import {ref,reactive} from "vue"
-	const passwordPopup = ref(null); // 索引
-	const imgSrc = ref('');
-	// const $emit = defineEmits(['confirm-btn'])
-	
-	function init(){
-		myApi.getGlMineQrcode().then(res => {
-			imgSrc.value = res.data;
-		})
-	}
-	
-	// 打开弹窗
-	function handleShow() {
-		init();
-		passwordPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passwordPopup.value.close();
-	}
-	
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 172
pages/admin/my/index.vue

@@ -1,172 +0,0 @@
-<template>
-	<view class="client-my-page">
-		<view class="jzgs-name-box">
-			<text>{{myInfoData.jzName}}</text>
-		</view>
-		<view class="admin-head-box">
-			<view class="head-img-box">
-				<img class="head-img" :src="myInfoData.userImg" v-if="myInfoData.userImg">
-				<icon class="phone-default-userImg" v-else></icon>
-			</view>
-			<view class="head-content-box">
-				<text>{{myInfoData.realName}}</text>
-				<view class="head-content-row-box" v-if="myInfoData.userName">
-					<icon class="tel-icon"></icon>
-					<text class="content-text" >{{myInfoData.userName}}</text>
-				</view>
-			</view>
-		</view>
-		
-		<view class="my-list-box">
-			<view class="list-row" @click="goToPage('grcj')">
-				<icon class="list-icon user-icon"></icon>
-				<text>修改个人信息</text>
-			</view>
-			<view class="list-row" @click="xgmmBtn">
-				<icon class="list-icon mm-icon"></icon>
-				<text>修改密码</text>
-			</view>
-			<view class="list-row" @click="ewmBtn">
-				<icon class="list-icon code-icon"></icon>
-				<text>二维码</text>
-			</view>
-			<view class="list-row" @click="exitLogin">
-				<icon class="list-icon login-out-icon"></icon>
-				<text>退出登录</text>
-			</view>
-		</view>
-		<!-- 底部区域 -->
-		<customTabbarClient :currentTab="3"></customTabbarClient>
-		<common-dialog ref="commonDialogRef" :title="exitTitle" :content="exitContent" @confirm-btn="exitBtn"></common-dialog>
-		<shexiangDialogVue ref="shexiangRef" title="摄像头说明"></shexiangDialogVue>
-		<password-dialog ref="passwordDialogRef" @confirm-btn="passwordBtn"></password-dialog>
-		<image-dialog ref="imageDialogRef"></image-dialog>
-		<!-- 摄像头确认 -->
-		<zhuapaiConfrimVue ref="zpRef" @error="zpConfirmError" title="摄像头测试"></zhuapaiConfrimVue>
-	</view>
-</template>
-
-<script setup>
-	import {toast} from "@/utils/common";
-	import {onLoad,onShow} from '@dcloudio/uni-app';
-	import cacheManager from '@/utils/cacheManager.js';
-	import {getGlMineUser,getGlMineLogout,getGlPasswordUpdate} from '@/api/my.js'
-	import {reactive,ref} from "vue";
-	import customTabbarClient from "@/components/custom-tabbar/custom-tabbar-admin.vue"
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import passwordDialog from './passwordDialog.vue';
-	import imageDialog from './imageDialog.vue';
-	import shexiangDialogVue from "@/components/dialog/shexiangDialog.vue";
-	import zhuapaiConfrimVue from "@/components/zhuapaiConfirm/index.vue";
-	import {useIsCanBack} from "@/store/isCanBack.js"
-	let myInfoData = reactive({
-		jzName: '',
-		userImg: '',
-		realName: '',
-		idcard: '',
-		userName: '',
-		from:''
-	});
-	const commonDialogRef = ref(null);
-	const passwordDialogRef = ref(null);
-	const imageDialogRef = ref(null);
-	const shexiangRef = ref(null);
-	const zpRef = ref(null);
-	const exitContent = '你确定要执行这个操作吗?';
-	const exitTitle = '退出登录';
-	
-	const store = useIsCanBack();
-	
-	function getMyInit() {
-		getUserInfo();
-	}
-	// 获取用户头像
-	function goToPage(data){
-		switch (data) {
-			case 'grcj':
-			    uni.navigateTo({
-			    	url:'/pages/admin/my/myInfo?from=my'
-			    })
-			    break;
-		}
-	}
-	function getUserInfo(){
-		getGlMineUser({}).then(res => {
-			myInfoData.userImg= res.data.icon;
-			myInfoData.realName = res.data.realName;
-			myInfoData.idcard = res.data.idcard;
-			myInfoData.userName = res.data.userName;
-			myInfoData.jzName = res.data.jzName;
-		})
-	}
-	function exitLogin(){
-		commonDialogRef.value.handleShow();
-		
-	}
-	function xgmmBtn(){
-		passwordDialogRef.value.handleShow();
-	}
-	
-	function ewmBtn(){
-		imageDialogRef.value.handleShow();
-	}
-	
-	function passwordBtn(data){
-		console.log(data,'data');
-		const opt = {
-			passwordOld: data.oldPassWord,
-			passwordNew: data.newPassWord, 
-		}
-		getGlPasswordUpdate(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				passwordDialogRef.value.handleClose();
-			}
-		})
-	}
-	function exitBtn(){
-		getGlMineLogout().then(res => {
-			toast('退出登录成功')
-			cacheManager.clearAll();
-			uni.reLaunch({
-				url: '/pages/Login/index'
-			});
-			store.setIsCanBack(true)
-		}).catch(err => {
-			toast('退出登录失败,请稍后重试')
-			store.setIsCanBack(false)
-		})
-	}
-	
-	function showMessageDl() {
-		console.log(shexiangRef.value)
-		shexiangRef.value.handleShow()
-	}
-	
-	function showZhuaPaiConfirm() {
-		zpRef.value.showDialog()
-	}
-	
-	function zpConfirmSuccess() {
-		zpRef.value.showDialog()
-	}
-	function zpConfirmError() {
-		uni.showToast({
-			title: '摄像头唤起异常',
-			icon: 'none'
-		})
-	}
-	
-	onLoad(() => {
-    
-	})
-
-  onShow(() => {
-	getMyInit()
-  })
-</script>
-
-<style>
-</style>

+ 0 - 202
pages/admin/my/myInfo.vue

@@ -1,202 +0,0 @@
-<template>
-	<view class="my-info-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">个人信息</text>
-		</view>
-		<!-- 姓名 -->
-		<view class="form-label-input">
-			<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>
-			<input v-model="data.realName"  placeholder="请输入姓名" />
-			<icon></icon>
-		</view>
-		<!-- 手机号 -->
-		<view class="form-label-input">
-			<view class="phone-form-label"><text class="form-label-require">*</text>手机号</view>
-			<input v-model="data.userName"  placeholder="请输入手机号" />
-			<icon></icon>
-		</view>
-		<button type="default" class="phone-green-btn info-btn" @click="handleUpdate">修改资料</button>
-	</view>
-</template>
-
-<script setup>
-	import * as myApi from "@/api/my.js";
-	import {getAliyunPolicy} from "@/api/jiazheng.js"
-	import {ref,reactive} from "vue"
-	import {onLoad} from "@dcloudio/uni-app"
-
-	const imageStyles = ref({
-		width: 120,
-		height: 120,
-	});
-
-	const data = reactive({
-		from: 'shouye', // my | kaoshi | shouye
-		gender: 0,
-		icon: '',
-		realName: '',
-		userName: '',
-		userId: null
-	})
-
-	onLoad((options) => {
-		data.from = options.from || 'shouye';
-		initPage();
-	})
-
-	function handleSelect(e) {
-		console.log('eee',e)
-		doUploadImage(e)
-	}
-
-	function genderSelect(genderValue){
-		data.gender = genderValue;
-	}
-
-	function doUploadImage(params) {
-		const filePath = params.tempFiles[0];
-		const fileUrl = params.tempFilePaths;
-
-		
-		try {
-			const suffix = filePath.file.name.split('.').pop();
-			let req = {
-				prefix: 'resource/',
-				suffix: suffix,
-			}
-			uni.showLoading({
-				title: '上传中...',
-				mask: true
-			});
-			getAliyunPolicy(req).then(res => {
-				if (res.code == 0) {
-					const policyData = res.data;
-					
-					const formData = {
-						key:  policyData.key,
-						policy:  policyData.policy,
-						signature:  policyData.signature,
-						OSSAccessKeyId:  policyData.accessid,
-						success_action_status:  '200',
-					}
-					
-					uni.uploadFile({
-						url: policyData.uploadUrl,
-						filePath: fileUrl[0],
-						name: 'file',
-						formData: formData,
-						success(uploadRes) {
-							if (uploadRes.statusCode === 200) {
-								console.log('uploadRes',uploadRes)
-								data.icon = `${policyData.downloadUrl}/${policyData.key}`;
-								console.log( `${policyData.downloadUrl}/${policyData.key}`)
-								uni.showToast({
-									title: '上传成功',
-									icon: 'success'
-								});
-								
-							} else {
-								uni.showToast({
-									icon: 'none',
-									title: '上传失败',
-								});
-								uni.hideLoading();
-							}
-			
-						},
-						fail(err) {
-							uni.showToast({
-								icon: 'none',
-								title: '上传失败',
-							});
-							uni.hideLoading();
-						}
-					});
-
-				} else {
-					uni.showToast({
-						title: '获取凭证失败',
-					});
-					uni.hideLoading();
-				}
-			})
-		} catch (error) {
-			uni.showToast({
-				title: '上传失败',
-				icon: 'none'
-			});
-			uni.hideLoading();
-		}
-	}
-
-	function handleUpdate() {
-		let arr = [];
-		if (!data.realName) {
-			arr.push('姓名');
-		}
-		if (!data.userName) {
-			arr.push('电话');
-		}
-		if (!data.realName || !data.userName) {
-			uni.showToast({
-				icon: 'none',
-				title: `请完善${arr.join('、')}信息!`
-			})
-			return;
-		}
-		
-		const opt = {
-			realName: data.realName,
-			userId: data.userId,
-			userName: data.userName,
-		}
-		myApi.getGlMineUpdate(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				handleBack();
-			}
-		})
-
-	}
-
-	function handleBack() {
-		const pages = getCurrentPages();
-		if (pages.length>1) {
-			uni.navigateBack()
-		} else {
-			/* if (data.from == 'my') {
-				uni.redirectTo({
-					url: '/pages/client/my/index'
-				})
-			} else if (data.from == 'kaoshi') {
-				uni.redirectTo({
-					url: '/pages/client/ShouYe/shouye'
-				})
-			} else {
-				uni.redirectTo({
-					url: '/pages/client/my/index'
-				})
-			} */
-			history.back();
-		}
-	}
-
-	function initPage() {
-		myApi.getGlMineUser().then(res => {
-			const {gender,icon,realName,userName,userId} = res.data;
-			data.gender = res.data.gender;
-			data.icon = res.data.icon;
-			data.realName = res.data.realName; 
-			data.userName = res.data.userName;
-			data.userId = res.data.userId;
-		})
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 103
pages/admin/my/passwordDialog.vue

@@ -1,103 +0,0 @@
-<template>
-	<uni-popup ref="passwordPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改密码</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>原密码:</text>
-					<input class="common-input" v-model="data.oldPassWord"  placeholder="请输入原密码" />
-				</view>
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>新密码:</text>
-					<input class="common-input" v-model="data.newPassWord"  placeholder="请输入新密码" />
-				</view>
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>确认密码:</text>
-					<input class="common-input" v-model="data.okPassWord"  placeholder="请确认密码" />
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		okPassWord: '',
-		oldPassWord: '',
-		newPassWord: '',
-	})
-	const passwordPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		data.okPassWord = '';
-		data.oldPassWord = '';
-		data.newPassWord = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		passwordPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		passwordPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		let arr = [];
-		if (!data.oldPassWord) {
-			arr.push('原密码');
-		}
-		if (!data.newPassWord) {
-			arr.push('新密码');
-		}
-		if (!data.newPassWord) {
-			arr.push('确认密码');
-		}
-		if (!data.oldPassWord || !data.newPassWord) {
-			uni.showToast({
-				icon: 'none',
-				title: `请输入${arr.join('、')}信息!`
-			})
-			return;
-		}
-		if (data.newPassWord != data.okPassWord) {
-			uni.showToast({
-				icon: 'none',
-				title: '新密码和确认密码不同'
-			})
-			return;
-		}
-		$emit('confirm-btn',data);
-		passClear();
-		passwordPopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 53
pages/admin/tongzhi/details.vue

@@ -1,53 +0,0 @@
-<template>
-	<view class="phone-tongzhi-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">通知详情</text>
-			<!-- <icon class="tongzhi-down-icon" @click="downBtn"></icon> -->
-		</view>
-		<view class="tongzhi-body-box">
-			<view class="tongzhi-name">{{tzData.name}}</view>
-			<view class="tongzhi-time">{{tzData.time}}</view>
-			<rich-text :nodes="tzData.content" class="tongzhi-content"></rich-text>
-		</view>
-	</view>
-</template>
-
-<script setup>
-	import {onLoad,onShow} from '@dcloudio/uni-app';
-	import {getAppNoticeInfo} from '@/api/shouye.js'
-	import {ref,reactive} from "vue"
-	const tzData = reactive({
-		name: '',
-		time: '',
-		content: '',
-		downUrl: '',
-	})
-	onLoad((options) => {
-		initPage(options);
-	})
-	function goUpPage(){
-		uni.redirectTo({
-			url: '/pages/admin/tongzhi/list'
-		})
-	}
-	// 下载
-	function downBtn(){
-		//downUrl
-	}
-	function initPage(options) {
-		const opt = {
-			noticeId: options.noticeId,
-		}
-		getAppNoticeInfo(opt).then(res => {
-			tzData.name = res.data.name;
-			tzData.time = res.data.createTime;
-			tzData.content = res.data.content;
-			tzData.downUrl = res.data.content;
-		})
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 157
pages/admin/tongzhi/list.vue

@@ -1,157 +0,0 @@
-<template>
-	<view class="phone-list-page phone-tongzhi-list">
-		<view class="icon-title-navBar-box">
-			<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"  @scrolltolower="onScrolltolower"
-			class="admin-phone-tabbar-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="xiaoxi-list-card-box" @click="checkKecheng(item)">
-							<view class="card-head-row">
-								<view class="head-name">{{item.name}}</view>
-								<view class="head-createTime">{{formatTime(item.createTime)}}</view>
-								<icon></icon>
-							</view>
-							<rich-text :nodes="item.content" class="card-content"></rich-text>
-						</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>
-	</view>
-</template>
-
-<script setup>
-	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-
-	import {
-		ref,
-		reactive
-	} from "vue";
-	import {
-		onLoad,
-		onShow
-	} from "@dcloudio/uni-app";
-	import {getAppNoticeList} from '@/api/shouye.js'
-	import {
-		formatSecondsToCnhms
-	} from "@/utils/common.js"
-
-	const data = reactive({
-		zyName: '', // 职业名称
-		list: [], // 考试列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		},
-		from: ''
-	})
-
-	function formatTime(data){
-		console.log(data.split(' ')[0],'data.split()[0]');
-		return data.split(' ')[0];
-	}
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})	
-	}
-	
-	function onScrolltolower() {
-		getMore()
-	}
-
-	function handleSearch() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function checkKecheng(item) {
-		uni.navigateTo({
-			url: `/pages/admin/tongzhi/details?noticeId=${item.noticeId}`
-		})
-	}
-
-	function onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function refreshData() {
-		const opt = {
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getAppNoticeList(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,
-			size: 10, // 固定查询10条
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getAppNoticeList(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;
-		})
-	}
-
-	onLoad((options) => {
-		data.from = options.from;
-	})
-
-	onShow(() => {
-		getMore()
-	})
-</script>

+ 0 - 172
pages/admin/yishou/yishou.vue

@@ -1,172 +0,0 @@
-<template>
-	<view class="phone-list-page phone-yishou-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">已售记录</text>
-		</view>
-		<view class="jiazheng-search-box">
-			<uni-datetime-picker v-model="data.range" type="daterange" @change="onDateSelect" style="flex: 1" class="yishou-date-box"/>
-		</view>
-		<!-- 课程列表 -->
-		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh" @scrolltolower="onScrolltolower"
-			class="ys-kc-saixuan-view scroll-top-border">
-			<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="kecheng-list-card">
-							<img :src="item.pic">
-							<view class="item-card-row yishou-item-card-row">
-								<view class="ks-item-top">
-									<view class="kc-name">{{item.name}}</view>
-								</view>
-								<view class="ks-totalTm kc-fenlei">
-									<icon class="phone-user-icon" />购买人:{{item.realName}}
-								</view>
-								<view class="ks-totalTm kc-fenlei">
-									<icon class="phone-tel-icon" />手机号:{{item.userName}}
-								</view>
-								<view class="ks-totalTm kc-totalTm time-row">
-									<icon class="phone-time-icon" />{{item.createTime}}
-								</view>
-								
-							</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>
-		<!-- 页面底端 -->
-		<customTabbarClientVue></customTabbarClientVue>
-	</view>
-</template>
-
-<script setup>
-	import searchDialog from "@/pages/admin/banzheng/search.vue";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-
-	import {
-		reactive,
-		ref
-	} from "vue";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-	import {
-		getKechengYishou,
-	} from "@/api/yishou.js"
-
-	const data = reactive({
-		list: [], // 办证列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		},
-		startDate: '', 
-		endDate: '', 
-		range: []
-	})
-	
-	function onScrolltolower() {
-		getMore()
-	}
-	
-	function onDateSelect(dataD) {
-		if (dataD) {
-			data.startDate = dataD[0];
-			data.endDate = dataD[1];
-		} else {
-			data.startDate = '';
-			data.endDate = '';
-		}
-		data.page = 0;
-		refreshData()
-	}
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-
-	function refreshData() {
-		const opt = {
-			endDate: data.endDate, 
-			startDate: data.startDate, 
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getKechengYishou(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 = {
-			endDate: data.endDate, 
-			startDate: data.startDate, 
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getKechengYishou(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 onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	onLoad(() => {
-		getMore()
-	})
-</script>
-
-<style>
-
-</style>

+ 0 - 67
pages/admin/zijiazheng/banzhengshuliang.vue

@@ -1,67 +0,0 @@
-<template>
-	<view class="phone-zjzgs-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">申请办证数量</text>
-		</view>
-		<view class="zjzgs-body-box">
-			<view class="zjzgs-num-box" v-for="item in certList" :key="item.jzId">
-					<view class="zjzgs-title">{{ item.jgName }}</view>
-					<view class="num-item-box">
-						<view>职业等级:{{ item.zyName }}{{item.zyLevel}}</view>
-					</view>
-					<view class="num-item-box">
-						<view>申请数量:{{ item.userCount }}</view>
-					</view>
-					<view class="list-btn-box">
-						<view class="list-btn" @click="checkUser(item)">查看详情</view>
-					</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script setup>
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-	import {ref} from "vue"
-	import * as httpApi from "@/api/zijiazhenggongsi"
-	
-	const listIds = ref([])
-	
-	const certList = ref([])
-	
-	const startDate = ref(null)
-	const endDate = ref(null)
-	const jzId = ref(null)
-	
-	onLoad((options) =>{
-			listIds.value = options.listIds.split(',');
-			startDate.value = options.startDate;
-			endDate.value = options.endDate;
-			jzId.value = options.jzId;
-			getCertInfo()
-	})
-	
-	function getCertInfo() {
-		httpApi.getZiJiazhengGongsiInfo({idList:listIds.value}).then(res => {
-			certList.value = res.data;
-		})
-	}
-	
-	function checkUser(item) {
-		uni.redirectTo({
-			url:`/pages/admin/Jiazheng/index?isZijiazheng=true&userIdList=${item.userList.join(',')}&listIds=${listIds.value.join(',')}&startDate=${startDate.value}&endDate=${endDate.value}&from=banzhengshuliang&jzId=${jzId.value}`
-		})
-	}
-	 function goUpPage() {
-		  uni.redirectTo({
-		  	url:`/pages/admin/zijiazheng/index?startDate=${startDate.value}&endDate=${endDate.value}`
-		  })
-	  }
-</script>
-
-<style>
-
-</style>

+ 0 - 99
pages/admin/zijiazheng/index.vue

@@ -1,99 +0,0 @@
-<template>
-	<view class="phone-zjzgs-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">子家政公司</text>
-		</view>
-		<view class="jiazheng-search-box">
-			<uni-datetime-picker v-model="data.range" type="daterange" @change="onDateSelect" style="flex: 1"
-				class="yishou-date-box" />
-		</view>
-		<view class="zjzgs-body-box">
-			<view class="zjzgs-num-box" v-for="item in data.list" :key="item.jzId">
-				<view class="zjzgs-title">{{ item.jzName }}</view>
-				<view class="num-item-box">
-					<view>家政人员数量:{{ item.userCount }}</view>
-					<view class="num-btn" v-if="!!item.userCount" @click="checkUser(item)">详情</view>
-				</view>
-				<view class="num-item-box">
-					<view>申请办证数量:{{ item.applyCount }}</view>
-					<view class="num-btn" v-if="!!item.applyCount" @click="checkApplyCert(item)">详情</view>
-				</view>
-				<view class="num-item-box">
-					<view>已办证数量:{{ item.certCount }}</view>
-					<view class="num-btn" v-if="!!item.certCount" @click="checkCert(item)">详情</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script setup>
-	import * as httpApi from "@/api/zijiazhenggongsi"
-	import {
-		reactive,
-		ref
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-
-	const data = reactive({
-		list: [], // 办证列表
-		startDate: '',
-		endDate: '',
-		range: []
-	})
-	onLoad((options) => {
-		if (options.startDate) {
-			data.range[0] = options.startDate;
-		}
-		if (options.endDate) {
-			data.range[1] = options.endDate;
-		}
-		if (data.range.length) {
-			getZigongsiList()
-		}
-	})
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: `/pages/admin/ShouYe/shouye`
-		})
-	}
-
-	function onDateSelect(data1) {
-		getZigongsiList(data1)
-	}
-
-	function getZigongsiList() {
-		httpApi.getZiJiazhengGongsiList({
-			endDate: data.range[1],
-			startDate: data.range[0]
-		}).then(res => {
-			console.log('res', res)
-			data.list = res.data;
-		})
-	}
-
-	function checkUser(item) {
-		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/index?isZijiazheng=true&userIdList=${item.userList.join(',')}&startDate=${data.range[0]}&endDate=${data.range[1]}&from=zijiazhenggongsi&jzId=${item.jzId}`
-		})
-	}
-
-	function checkApplyCert(item) {
-		uni.redirectTo({
-			url: `/pages/admin/zijiazheng/banzhengshuliang?listIds=${item.applyList.join(',')}&startDate=${data.range[0]}&endDate=${data.range[1]}&jzId=${item.jzId}`
-		})
-	}
-
-	function checkCert(item) {
-		uni.redirectTo({
-			url: `/pages/admin/zijiazheng/yibanzhengshuliang?listIds=${item.certList.join(',')}&startDate=${data.range[0]}&endDate=${data.range[1]}&jzId=${item.jzId}`
-		})
-	}
-</script>
-
-<style>
-</style>

+ 0 - 22
pages/admin/zijiazheng/jiazhengrenyuan.vue

@@ -1,22 +0,0 @@
-<template>
-	<view>
-		
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 68
pages/admin/zijiazheng/yibanzhengshuliang.vue

@@ -1,68 +0,0 @@
-<template>
-	<view class="phone-zjzgs-page">
-		<view class="icon-title-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">已办证数量</text>
-		</view>
-    <view class="zjzgs-body-box">
-      <view class="zjzgs-num-box" v-for="item in certList" :key="item.jzId">
-        <view class="zjzgs-title">{{ item.jgName }}</view>
-        <view class="num-item-box">
-          <view>职业等级:{{ item.zyName }}{{item.zyLevel}}</view>
-        </view>
-        <view class="num-item-box">
-          <view>申请数量:{{ item.userCount }}</view>
-        </view>
-        <view class="list-btn-box">
-          <view class="list-btn" @click="checkUser(item)">查看详情</view>
-        </view>
-      </view>
-    </view>
-	</view>
-</template>
-
-<script setup>
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-	import {ref} from "vue"
-	import * as httpApi from "@/api/zijiazhenggongsi"
-	
-	const listIds = ref([])
-	
-	const certList = ref([])
-	
-	const startDate = ref(null)
-	const endDate = ref(null)
-		const jzId = ref(null)
-	
-	onLoad((options) =>{
-			listIds.value = options.listIds.split(',');
-			startDate.value = options.startDate;
-			endDate.value = options.endDate;
-			jzId.value = options.jzId;
-			getCertInfo()
-	})
-	
-	function getCertInfo() {
-		httpApi.getZiJiazhengGongsiInfo({idList:listIds.value}).then(res => {
-			certList.value = res.data;
-		})
-	}
-	
-	function checkUser(item) {
-		uni.redirectTo({
-			url:`/pages/admin/Jiazheng/index?isZijiazheng=true&userIdList=${item.userList.join(',')}&listIds=${listIds.value.join(',')}&startDate=${startDate.value}&endDate=${endDate.value}&from=yibanzhengshuliang&jzId=${jzId.value}`
-		})
-	}
-	
-	function goUpPage() {
-		  uni.redirectTo({
-		  	url:`/pages/admin/zijiazheng/index?startDate=${startDate.value}&endDate=${endDate.value}`
-		  })
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 127
pages/admin/zizhanghao/components/addUserDl.vue

@@ -1,127 +0,0 @@
-<template>
-	<uni-popup ref="commonPopup" :animation="false" :is-mask-click="false" mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-common-dialog">
-			<view class="common-body-box">
-				<view class="common-title">{{title}}</view>
-				<view class="common-input-box">
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>姓名:</view>
-						<input class="common-input" v-model="realName" placeholder="请输入姓名" />
-					</view>
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>密码:</view>
-						<input class="common-input" v-model="password" placeholder="请输入密码" />
-					</view>
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>手机号:</view>
-						<input class="common-input" v-model="userName" placeholder="请输入手机号" />
-					</view>
-				</view>
-				<view class="common-btn-box">
-					<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-					<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-				</view>
-			</view>
-		</view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {
-		ref
-	} from 'vue';
-	import {
-		getUserGuanliAdd
-	} from "@/api/zizhanghao.js"
-
-	const props = defineProps({
-		title: {
-			type: String,
-			default: ''
-		},
-		dialogContentClass: {
-			type: String,
-			require: true,
-			default: 'content-center-class'
-		},
-		notBtn: {
-			type: String,
-			require: true,
-			default: '取消'
-		},
-		okBtn: {
-			type: String,
-			require: true,
-			default: '确认'
-		},
-	});
-
-	const realName = ref('');
-	const userName = ref('');
-	const password = ref('');
-	const userId = ref(null)
-
-	const commonPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	// 打开弹窗
-	function handleShow() {
-		commonPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		commonPopup.value.close();
-		realName.value = '';
-		userName.value = '';
-		userId.value = null;
-		password.value = '';
-	}
-	// 确认
-	function confirmBtn() {
-		if (!realName.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入用户名'
-			})
-			return;
-		}
-		if (!userName.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入手机号'
-			})
-			return;
-		}
-		if (!password.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入密码'
-			})
-			return;
-		}
-		getUserGuanliAdd({
-			userName: userName.value,
-			realName: realName.value,
-			password: password.value
-		}).then(res => {
-			if (res.data) {
-				uni.showToast({
-					icon: 'none',
-					title: '新增成功'
-				})
-				$emit('confirm-btn');
-				commonPopup.value.close();
-				realName.value = '';
-				userName.value = '';
-				userId.value = null;
-				password.value = '';
-			}
-		})
-	}
-	defineExpose({
-		handleShow,
-		handleClose
-	})
-</script>
-
-<style>
-</style>

+ 0 - 123
pages/admin/zizhanghao/components/editorUserDl.vue

@@ -1,123 +0,0 @@
-<template>
-	<uni-popup ref="commonPopup" :animation="false" :is-mask-click="false" mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-common-dialog">
-			<view class="common-body-box">
-				<view class="common-title">{{title}}</view>
-				<view class="common-input-box">
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>姓名:</view>
-						<input class="common-input" v-model="realName" placeholder="请输入姓名" />
-					</view>
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>手机号:</view>
-						<input class="common-input" v-model="userName" placeholder="请输入手机号" />
-					</view>
-				</view>
-				<view class="common-btn-box">
-					<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-					<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-				</view>
-			</view>
-		</view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {
-		ref
-	} from 'vue';
-	import {
-		getUserGuanliUpdate,
-		getUserGuanliInfo
-	} from "@/api/zizhanghao.js"
-	const props = defineProps({
-		title: {
-			type: String,
-			default: ''
-		},
-		dialogContentClass: {
-			type: String,
-			require: true,
-			default: 'content-center-class'
-		},
-		notBtn: {
-			type: String,
-			require: true,
-			default: '取消'
-		},
-		okBtn: {
-			type: String,
-			require: true,
-			default: '确认'
-		},
-	});
-
-	const realName = ref('');
-	const userName = ref('');
-	const userId = ref(null)
-
-	const commonPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	// 打开弹窗
-	function handleShow(userIdData) {
-		getUserGuanliInfo({
-			userId: userIdData
-		}).then(res => {
-			realName.value = res.data.realName;
-			userName.value = res.data.userName;
-			userId.value = userIdData;
-			commonPopup.value.open();
-					
-		})
-	}
-	// 取消
-	function handleClose() {
-		commonPopup.value.close();
-		realName.value = '';
-		userName.value = '';
-		userId.value = null;
-		password.value = '';
-	}
-	// 确认
-	function confirmBtn() {
-		if (!realName.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入用户名'
-			})
-			return;
-		}
-		if (!userName.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入手机号'
-			})
-			return;
-		}
-		getUserGuanliUpdate({
-			userId: userId.value,
-			userName: userName.value,
-			realName: realName.value
-		}).then(res => {
-			if (res.data) {
-				uni.showToast({
-					icon: 'none',
-					title: '更新成功'
-				})
-				$emit('confirm-btn');
-				commonPopup.value.close();
-				realName.value = '';
-				userName.value = '';
-				userId.value = null;
-				password.value = '';
-			}
-		})
-	}
-	defineExpose({
-		handleShow,
-		handleClose
-	})
-</script>
-
-<style>
-</style>

+ 0 - 120
pages/admin/zizhanghao/components/resetPassword.vue

@@ -1,120 +0,0 @@
-<template>
-	<uni-popup ref="commonPopup" :animation="false" :is-mask-click="false" mask-background-color="rgba(0, 0, 0, 0.4)">
-		<view class="phone-common-dialog">
-			<view class="common-body-box">
-				<view class="common-title">{{title}}</view>
-				<view class="common-input-box">
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>新密码:</view>
-						<input class="common-input" v-model="password" placeholder="请输入新密码" />
-					</view>
-					<view class="common-input-row">
-						<view class="common-input-label"><text class="common-label-require">*</text>确认密码:</view>
-						<input class="common-input" v-model="password2" placeholder="请确认密码" />
-					</view>
-				</view>
-				<view class="common-btn-box">
-					<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-					<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-				</view>
-			</view>
-		</view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {
-		ref
-	} from 'vue';
-	import {
-		getUserGuanliReset
-	} from "@/api/zizhanghao.js"
-
-	const props = defineProps({
-		title: {
-			type: String,
-			default: '重置密码'
-		},
-		dialogContentClass: {
-			type: String,
-			require: true,
-			default: 'content-center-class'
-		},
-		notBtn: {
-			type: String,
-			require: true,
-			default: '取消'
-		},
-		okBtn: {
-			type: String,
-			require: true,
-			default: '确认'
-		},
-	});
-
-	const password = ref('');
-	const password2 = ref('');
-	const userId = ref(null)
-
-	const commonPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	// 打开弹窗
-	function handleShow(userIdData) {
-		userId.value = userIdData;
-		commonPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		password.value = null;
-		password2.value = null;
-		userId.value  = null;
-		commonPopup.value.close();
-	}
-	// 确认
-	function confirmBtn() {
-		if (!password.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请输入新密码'
-			})
-			return;
-		}
-		if (!password2.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '请确认密码'
-			})
-			return;
-		}
-		if (password.value !== password2.value) {
-			uni.showToast({
-				icon: 'none',
-				title: '两次输入密码不同'
-			})
-			return;
-		}
-		getUserGuanliReset({
-			userId: userId.value,
-			password: password.value
-		}).then(res => {
-			if (res.data) {
-				uni.showToast({
-					icon: 'none',
-					title: '更新成功'
-				})
-				$emit('confirm-btn');
-				commonPopup.value.close();
-				password.value = null;
-				password2.value = null;
-				userId.value  = null;
-			}
-		})
-	}
-	defineExpose({
-		handleShow,
-		handleClose
-	})
-</script>
-
-<style>
-</style>

+ 0 - 247
pages/admin/zizhanghao/list.vue

@@ -1,247 +0,0 @@
-<template>
-	<view class="phone-list-page phone-zzh-page">
-		<view class="phone-navBar-box">
-			<view @click="goUpPage" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">子账号管理</text>
-			<uni-icons class="nav-bar-right-icon" type="search" size="22" color="#666" @click="searchBtn"></uni-icons>
-		</view>
-		<view class="zzh-new-btn-box">
-			<button type="default" class="phone-green-btn" @click="handleAddZizhanghao">新增</button>
-		</view>
-		<!-- 课程列表 -->
-		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.loading"
-			:refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh" @scrolltolower="onScrolltolower"
-			class="zzh-saixuan-view">
-			<uni-list>
-				<uni-list-item v-for="item in data.list" class="zzh-list-item-box">
-					<template v-slot:body>
-						<view class="zzh-item-card">
-							<view class="zzh-name-row">
-								<view class="row-item"><icon class="user-icon"></icon>姓名:{{item.realName}}</view>
-								<view class="row-item"><icon class="tel-icon"></icon>手机:{{item.userName}}</view>
-							</view>
-							<view class="zzh-btn-row">
-								<button class="zzh-btn phone-green-btn" type="default" @click="handleEditor(item)">编辑</button>
-								<button class="zzh-btn phone-green-btn" type="default" @click="handleReset(item)">重置密码</button>
-								<button class="zzh-btn phone-white-btn" type="default" @click="handleDelete(item)">删除</button>
-							</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>
-
-		<!-- 页面底端 -->
-		<customTabbarClientVue></customTabbarClientVue>
-		<!-- 搜索 -->
-		<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn"
-			@reset-search="dialogSearchReset"></search-dialog>
-		<!-- 删除子账号 -->
-		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
-			@confirm-btn="deleteQuerenBtn"></common-dialog>
-		<!-- 新增子账号 -->
-		<addUserDlVue ref="addUserRef" title="新增" @confirm-btn="onAddSuccess"></addUserDlVue>
-		<!-- 更新子账号 -->
-		<editorUserDlVue ref="editorUserRef" title="编辑" @confirm-btn="onUpdateSuccess"></editorUserDlVue>
-		<!-- 更新密码 -->
-		<resetPasswordVue ref="resetPasswordRef"></resetPasswordVue>
-	</view>
-</template>
-
-<script setup>
-	import searchDialog from "@/pages/admin/banzheng/search.vue";
-	import commonDialog from '@/components/dialog/commonDialog.vue';
-	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
-	import addUserDlVue from "./components/addUserDl.vue";
-	import editorUserDlVue from "./components/editorUserDl.vue";
-	import resetPasswordVue from "./components/resetPassword.vue";
-	import {
-		reactive,
-		ref
-	} from "vue";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-	import {
-		getUserGuanliList,
-		getUserGuanliDelete
-	} from "@/api/zizhanghao.js"
-
-	const data = reactive({
-		list: [], // 办证列表
-		loading: false,
-		page: 0,
-		size: 10,
-		state: 'more',
-		contentText: {
-			contentdown: '查看更多',
-			contentrefresh: '加载中',
-			contentnomore: '没有更多'
-		},
-		userName: '', // 手机号
-		realName: '', // 姓名
-	})
-	const deleteTitle = ref('删除')
-	const deleteConcent = ref('你确定要执行这个操作吗')
-	const deletUserId = ref(null)
-	const addUserRef = ref(null)
-	const editorUserRef = ref(null)
-	const commonDialogRef = ref(null)
-	const resetPasswordRef = ref(null)
-	const searchDialogRef = ref(null)
-
-	function goUpPage() {
-		uni.redirectTo({
-			url: '/pages/admin/ShouYe/shouye'
-		})
-	}
-
-	function onScrolltolower() {
-		getMore()
-	}
-
-	function handleEditor(item) {
-		editorUserRef.value.handleShow(item.userId);
-	}
-
-	function handleDelete(item) {
-		deletUserId.value = item.userId;
-		commonDialogRef.value.handleShow();
-	}
-
-	function handleReset(item) {
-		resetPasswordRef.value.handleShow(item.userId)
-	}
-
-	function onAddSuccess() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function onUpdateSuccess() {
-		data.page = 0;
-		refreshData();
-	}
-
-	function handleAddZizhanghao() {
-		addUserRef.value.handleShow()
-	}
-
-	function searchBtn() {
-		searchDialogRef.value.handleShow();
-	}
-
-	function refreshData() {
-		const opt = {
-			realName: data.realName, // 姓名
-			userName: data.userName, // 手机号
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		data.list = [];
-		// 数学
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-
-		getUserGuanliList(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 = {
-			realName: data.realName, // 姓名
-			userName: data.userName, // 手机号
-			page: 1,
-			size: 10, // 固定查询10条
-		}
-		if (data.state == 'no-more') return;
-		data.state = 'loading';
-		data.page++;
-		opt.page = data.page;
-		getUserGuanliList(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 onRefresh() {
-		data.page = 0;
-		data.list = [];
-		data.loading = true;
-		refreshData();
-	}
-
-	function dialogSearchBtn(name, searchData) {
-		switch (name) {
-			case '姓名':
-				dialogSearchReset();
-				data.realName = searchData.value;
-				break;
-			case '手机号':
-				data.userName = searchData.value;
-				break;
-		}
-		data.page = 0;
-		refreshData();
-
-	}
-
-	function dialogSearchReset() {
-		data.userName = '';
-		data.realName = '';
-	}
-
-	function deleteQuerenBtn() {
-		getUserGuanliDelete({
-			userId: deletUserId.value
-		}).then(res => {
-			if (res.code == 0) {
-				uni.showToast({
-					title: '成功'
-				})
-				data.page = 0;
-				refreshData();
-			} else {
-				uni.showToast({
-					title: '失败'
-				})
-			}
-
-		})
-	}
-
-	onLoad(() => {
-		getMore()
-	})
-</script>
-
-<style>
-
-</style>