yangg 17 godzin temu
rodzic
commit
19df3d28eb

+ 1 - 1
common/config.js

@@ -2,7 +2,7 @@
 //线上 https://minlong.raycos.com.cn
 //测试 http://192.168.66.187:8083
 //https://backend.qicai321.com
-export const apiBaseUrl = 'https://backend.qicai321.com';//'http://192.168.100.187:8083';//
+export const apiBaseUrl = 'https://backend.qicai321.com';//'http://192.168.100.115:8083';//
 
 // You can add other global configuration settings here
 export const appVersion = '1.0.0';

+ 46 - 20
pages/Personal/Personal.vue

@@ -132,7 +132,7 @@
 						@blur="handleBlur('weight')" 
 						placeholder="请输入体重" />
 					</view>
-					<view class="form-item">
+					<view class="form-item" v-if="showCurrentAddress">
 						<text class="label required">现居住地址</text>
 						<input type="text" v-model="formData.currentAddress" placeholder="请输入现居住地址" :class="{'input-error': formErrors.currentAddress}" />
 						<text v-if="formErrors.currentAddress" class="error-message">{{formErrors.currentAddress}}</text>
@@ -145,17 +145,17 @@
 				
 				<!-- 第四行 -->
 				<view class="form-row">
-					<view class="form-item">
+					<view class="form-item" v-if="showResidence">
 						<text class="label">户口所在地</text>
 						<input type="text" v-model="formData.residence" placeholder="请输入户口所在地" />
 					</view>
-					<view class="form-item">
+					<view class="form-item" v-if="showMarriageIndex">
 						<text class="label">婚育状况</text>
 						<picker @change="bindMarriageChange" :value="marriageIndex" :range="marriageOptions">
 							<view class="picker-text">{{ marriageOptions[marriageIndex] || '请选择婚育状况' }}</view>
 						</picker>
 					</view>
-					<view class="form-item">
+					<view class="form-item" v-if="showExpectedSalary">
 						<text class="label">期望薪资(元/月)</text>
 						<input 
 							type="number" 
@@ -271,7 +271,7 @@
 						</view>
 					</view>
 					
-					<view class="form-row">
+					<view class="form-row" v-if="showFamilyisEmergency">
 						<view class="form-item">
 							<text class="label">是否为紧急联系人</text>
 							<switch :checked="familyMemberForm.isEmergencyContact" @change="handleEmergencyContactChange" />
@@ -468,15 +468,15 @@
 								<text class="work-label">担任职务:</text>
 								<text class="work-value">{{work.position}}</text>
 							</view>
-							<view class="work-row" >
+							<view class="work-row" v-if="showWorkMonthlySalary">
 								<text class="work-label">月总收入:</text>
 								<text class="work-value">{{work.monthlySalary}}</text>
 							</view>
-							<view class="work-row" >
-								<text class="work-label">直接领导:</text>
+							<view class="work-row" v-if="showWorkSupervisor">
+								<text class="work-label" >直接领导:</text>
 								<text class="work-value">{{work.supervisor}}</text>
 							</view>
-							<view class="work-row" >
+							<view class="work-row" v-if="showWorkSupervisorPhone">
 								<text class="work-label">领导电话:</text>
 								<text class="work-value">{{work.supervisorPhone}}</text>
 							</view>
@@ -567,7 +567,7 @@
 					</view>
 					
 					<view class="form-row">
-						<view class="form-item" >
+						<view class="form-item" v-if="showWorkMonthlySalary">
 							<text class="label required">月总收入</text>
 							<input 
 								type="number" 
@@ -583,12 +583,13 @@
 					</view>
 					
 					<view class="form-row">
-						<view class="form-item" >
+						<view class="form-item"  v-if="showWorkSupervisor">
 							<text class="label required">直接领导</text>
 							<input type="text" v-model="workForm.supervisor" placeholder="请输入直接领导姓名" />
 							<text v-if="workErrors.supervisor" class="error-message">{{workErrors.supervisor}}</text>
 						</view>
-						<view class="form-item">
+						
+						<view class="form-item"  v-if="showWorkSupervisorPhone">
 							<text class="label">领导电话</text>
 							<input 
 								type="number" 
@@ -890,6 +891,18 @@ import { apiBaseUrl } from '@/common/config.js';
 			showWeightField() {
 				return Object.keys(this.safeProfileFieldsConfig).length === 0 || this.safeProfileFieldsConfig.weight?.visible !== false;
 			},
+			showCurrentAddress(){
+				return Object.keys(this.safeProfileFieldsConfig).length === 0 || this.safeProfileFieldsConfig.current_address?.visible !== false;
+			},
+			showResidence(){
+				return Object.keys(this.safeProfileFieldsConfig).length === 0 || this.safeProfileFieldsConfig.household_location?.visible !== false;
+			},
+			showMarriageIndex(){
+				return this.safeProfileFieldsConfig.marital_status?.visible !== false;
+			},
+			showExpectedSalary(){
+				return this.safeProfileFieldsConfig.expected_salary?.visible !== false;
+			},
 			// 家庭成员字段显示控制
 			showFamilyRelationField() {
 				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.relation?.visible !== false;
@@ -898,7 +911,7 @@ import { apiBaseUrl } from '@/common/config.js';
 				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.name?.visible !== false;
 			},
 			showFamilyWorkplaceField() {
-				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.workplace_or_address?.visible !== false;
+				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.workplace?.visible !== false;
 			},
 			showFamilyPositionField() {
 				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.position?.visible !== false;
@@ -906,6 +919,9 @@ import { apiBaseUrl } from '@/common/config.js';
 			showFamilyPhoneField() {
 				return Object.keys(this.safeFamilyFieldsConfig).length === 0 || this.safeFamilyFieldsConfig.phone?.visible !== false;
 			},
+			showFamilyisEmergency(){
+				this.safeFamilyFieldsConfig.family_contact_person?.visible !== false;
+			},
 			// 教育经历字段显示控制
 			showEducationTimeField() {
 				return Object.keys(this.safeEducationFieldsConfig).length === 0 || (this.safeEducationFieldsConfig.start_date?.visible !== false && this.safeEducationFieldsConfig.end_date?.visible !== false);
@@ -930,11 +946,20 @@ import { apiBaseUrl } from '@/common/config.js';
 				return Object.keys(this.safeWorkFieldsConfig).length === 0 || this.safeWorkFieldsConfig.department?.visible !== false;
 			},
 			showWorkEmployeeCountField() {
-				return Object.keys(this.safeWorkFieldsConfig).length === 0 || this.safeWorkFieldsConfig.employee_count?.visible !== false;
+				return Object.keys(this.safeWorkFieldsConfig).length === 0 || this.safeWorkFieldsConfig.company_size?.visible !== false;
 			},
 			showWorkPositionField() {
 				return Object.keys(this.safeWorkFieldsConfig).length === 0 || this.safeWorkFieldsConfig.position?.visible !== false;
 			},
+			showWorkMonthlySalary(){
+				return this.safeWorkFieldsConfig.monthly_income?.visible
+			},
+			showWorkSupervisor(){
+				return this.safeWorkFieldsConfig.direct_supervisor?.visible 
+			},
+			showWorkSupervisorPhone(){
+				return this.safeWorkFieldsConfig.supervisor_phone?.visible
+			},
 			showRequireProfessionalSkillsField() { //受培训
 				console.log(this.safeConfigData.require_professional_skills)
 				const value = this.safeConfigData.require_professional_skills
@@ -1024,8 +1049,8 @@ import { apiBaseUrl } from '@/common/config.js';
 							'ethnic': this.showEthnicField,
 							'height': this.showHeightField,
 							'weight': this.showWeightField,
-							'currentAddress': true, // 现居住地址总是显示和必填
-							'expectedSalary': true, // 期望薪资总是显示
+							'currentAddress': this.showCurrentAddress, // 现居住地址总是显示和必填
+							'expectedSalary': this.showExpectedSalary, // 期望薪资总是显示
 							'skills': this.showRequireTrainingInfoField, // 专业技能根据配置显示和必填
 							'training': this.showRequireProfessionalSkillsField, // 培训经历根据配置显示和必填
 							'threePeriod': this.formData.gender === '女' // 只有女性时才需要验证三期状态
@@ -1038,7 +1063,8 @@ import { apiBaseUrl } from '@/common/config.js';
 							'name': this.showFamilyNameField,
 							'phone': this.showFamilyPhoneField,
 							'workplaceOrAddress': this.showFamilyWorkplaceField,
-							'position': this.showFamilyPositionField
+							'position': this.showFamilyPositionField,
+							'isEmergencyContact':this.showFamilyisEmergency
 						};
 						return familyFieldShowMap[fieldName] !== false;
 						
@@ -1060,9 +1086,9 @@ import { apiBaseUrl } from '@/common/config.js';
 							'department': this.showWorkDepartmentField,
 							'position': this.showWorkPositionField,
 							'employeeCount': this.showWorkEmployeeCountField,
-							'monthlySalary': true, // 月薪总是需要验证
-							'supervisor': true, // 直接领导总是需要验证
-							'supervisorPhone': true // 领导电话总是需要验证
+							'monthlySalary': this.showWorkMonthlySalary, // 月薪总是需要验证
+							'supervisor': this.showWorkSupervisor, // 直接领导总是需要验证
+							'supervisorPhone': this.showWorkSupervisorPhone // 领导电话总是需要验证
 						};
 						return workFieldShowMap[fieldName] !== false;
 						

+ 238 - 12
pages/camera/camera.vue

@@ -38,17 +38,44 @@
 
 						<view class="options">
 							<!-- 渲染非开放问题 (questionType: 1, 2 或 3) -->
-							<view 
-								v-if="question.questionType !== 0"
-								v-for="(option, index) in question.options" 
-								:key="index" 
-								class="option-item"
-								:class="{
-									'option-selected': isOptionSelected(question, qIndex, index),
-									'option-disabled': qIndex !== currentQuestionIndex
-								}" 
-								@click="handleOptionClick(qIndex, index)">
-								<text class="option-text">{{ option.option_text || (typeof option === 'string' ? option : JSON.stringify(option)) }}</text>
+							<template v-if="question.questionType !== 0 && question.questionType !== 6">
+								<view 
+									v-for="(option, index) in question.options" 
+									:key="index" 
+									class="option-item"
+									:class="{
+										'option-selected': isOptionSelected(question, qIndex, index),
+										'option-disabled': qIndex !== currentQuestionIndex
+									}" 
+									@click="handleOptionClick(qIndex, index)">
+									<text class="option-text">{{ option.option_text || (typeof option === 'string' ? option : JSON.stringify(option)) }}</text>
+								</view>
+							</template>
+												
+							<!-- 渲染填空题 (questionType: 6) -->
+							<view v-if="question.questionType === 6" class="blank-question-container">
+								<!-- // <view class="blank-question-text">
+								// 	<text>{{ question.text }}</text>
+								// </view> -->
+								<!-- 为每个空白创建输入框 -->
+								<view class="blank-inputs" v-if="question.blanks && question.blanks.length > 0">
+									<view v-for="(blank, blankIndex) in question.blanks" :key="blankIndex" class="blank-input-item">
+										<text class="blank-label">第{{ blankIndex + 1 }}个空:</text>
+										<input 
+											class="blank-input" 
+											type="text" 
+											:value="getBlankValue(question.id, blankIndex + 1)" 
+											placeholder="请填入答案" 
+											@input="handleBlankInput(question.id, blankIndex + 1, $event)" 
+											:disabled="qIndex !== currentQuestionIndex" />
+									</view>
+								</view>
+								<!-- 提交按钮,只在当前题目且填写了答案时显示 -->
+								<view class="question-button-container" v-if="qIndex === currentQuestionIndex && hasBlankAnswers(question)">
+									<button class="next-button" @click="submitBlankQuestion(qIndex)">
+										下一题
+									</button>
+								</view>
 							</view>
 						</view>
 
@@ -183,7 +210,10 @@
 				showCameraWarning: false, // 添加新的数据属性
 				showPageWarning: false, // 添加新的数据属性
 				statusBarHeight: 0,
-				positionConfig:{}
+				positionConfig:{},
+				blankQuestions: [], // 存储填空题
+				blankAnswers: [], // 存储填空题答案
+				currentBlankAnswers: {} // 当前填空题的答案
 		  }
 		},
 		computed: {
@@ -445,6 +475,9 @@
 										// 使用第一个面试
 					this.interviewId = res.items//[0].id;
 					
+					// 同时获取填空题
+					await this.fetchBlankQuestions();
+					
 					this.fetchInterviewData(res.items);
 				} catch (error) {
 					console.error('获取面试列表失败:', error);
@@ -501,6 +534,47 @@
 					this.loading = false;
 				}
 			},
+					
+			// 获取填空题
+			async fetchBlankQuestions() {
+				try {
+					const positionId = JSON.parse(uni.getStorageSync('selectedJob')).id;
+					const tenantId = JSON.parse(uni.getStorageSync('userInfo')).tenant_id || 1;
+							
+					const res = await this.$http.get(`${apiBaseUrl}/api/wechat/blank_questions/?tenant_id=${tenantId}&position_id=${positionId}`);
+							console.log(res)
+					if (res && Array.isArray(res.items)) {
+						this.blankQuestions = res.items.map((q, index) => {
+							// 自动检测问题中的下划线数量
+							const questionText = q.question || '';
+							const blankPattern = /_{3,}/g;
+							const matches = questionText.match(blankPattern) || [];
+							const blanks = matches.map((_, blankIndex) => ({
+								id: blankIndex + 1,
+								index: blankIndex + 1,
+								label: `第${blankIndex + 1}个空白`
+							}));
+							
+							return {
+								id: q.id || `blank_${index + 1}`,
+								text: questionText,
+								questionType: 6, // 使用 6 表示填空题
+								questionTypeName: '填空题',
+								blanks: blanks, // 根据下划线数量生成的空白数组
+								category: q.category || 0
+							};
+						});
+								
+						console.log('获取填空题成功:', this.blankQuestions);
+					} else {
+						console.log('没有填空题数据');
+						this.blankQuestions = [];
+					}
+				} catch (error) {
+					console.error('获取填空题失败:', error);
+					this.blankQuestions = [];
+				}
+			},
 			
 			// 处理面试数据
 			processInterviewData(data) {
@@ -1056,6 +1130,17 @@
 						group2.push(q);
 					}
 				});
+				
+				// 将填空题添加到适当的分组中
+				if (this.blankQuestions && this.blankQuestions.length > 0) {
+					this.blankQuestions.forEach(q => {
+						if (q.category === 5) {
+							group1.push(q);
+						} else {
+							group2.push(q);
+						}
+					});
+				}
 
 				// 按照要求的顺序组合题目组:先显示其他题目,再显示 category 为 5 的题目
 				this.questionGroups = [group2, group1].filter(group => group.length > 0);
@@ -1128,6 +1213,13 @@
 						answer: this.selectedOption,
 						answerDuration: this.getAnswerDuration() // 添加答题时长
 					};
+				} else if (this.currentQuestion.questionType === 6) { // 填空题
+					answer = {
+						questionId: this.currentQuestion.id,
+						questionType: this.currentQuestion.questionType,
+						answer: this.currentBlankAnswers[this.currentQuestion.id] || {},
+						answerDuration: this.getAnswerDuration() // 添加答题时长
+					};
 				} else { // 多选题
 					answer = {
 						questionId: this.currentQuestion.id,
@@ -1176,6 +1268,8 @@
 					// 构建提交数据
 					let answerContent = '';
 					let answerOptions = [];
+					let blankAnswers = [];
+									
 					if (this.currentAnswer.questionType === 0) {
 						// 开放题直接使用文本答案
 						answerContent = this.currentAnswer.answer;
@@ -1197,6 +1291,15 @@
 							return option.id ? option.id : index;
 						});
 						answerOptions = selectedOptionIds;
+					} else if (this.currentAnswer.questionType === 6) {
+						// 填空题,构造填空答案数组
+						const blankAnswerObj = this.currentAnswer.answer;
+						if (blankAnswerObj && typeof blankAnswerObj === 'object') {
+							blankAnswers = Object.entries(blankAnswerObj).map(([key, value]) => ({
+								blank_index: parseInt(key),
+								answer_text: value || ''
+							}));
+						}
 					}
 					
 					const submitData = {
@@ -1208,6 +1311,11 @@
 						answer_duration: this.currentAnswer.answerDuration || 0,
 						tenant_id:JSON.parse(uni.getStorageSync('userInfo')).tenant_id || 1
 					};
+									
+					// 如果是填空题,添加 blank_answers 字段
+					if (this.currentAnswer.questionType === 6 && blankAnswers.length > 0) {
+						submitData.blank_answers = blankAnswers;
+					}
 					
 					console.log('提交数据:', submitData);
 					
@@ -1284,6 +1392,71 @@
 					}, 2000);
 				}
 			},
+					
+			// 填空题相关方法
+			// 获取填空值
+			getBlankValue(questionId, blankIndex) {
+				if (this.currentBlankAnswers[questionId] && this.currentBlankAnswers[questionId][blankIndex]) {
+					return this.currentBlankAnswers[questionId][blankIndex];
+				}
+				return '';
+			},
+					
+			// 处理填空输入
+			handleBlankInput(questionId, blankIndex, event) {
+				const value = event.detail.value;
+						
+				if (!this.currentBlankAnswers[questionId]) {
+					this.$set(this.currentBlankAnswers, questionId, {});
+				}
+						
+				this.$set(this.currentBlankAnswers[questionId], blankIndex, value);
+						
+				// 保存到填空答案数组中
+				const existingAnswerIndex = this.blankAnswers.findIndex(answer => answer.questionId === questionId);
+				if (existingAnswerIndex > -1) {
+					this.blankAnswers[existingAnswerIndex].answer = this.currentBlankAnswers[questionId];
+				} else {
+					this.blankAnswers.push({
+						questionId: questionId,
+						answer: this.currentBlankAnswers[questionId]
+					});
+				}
+			},
+					
+			// 检查是否有填空答案
+			hasBlankAnswers(question) {
+				const answers = this.currentBlankAnswers[question.id];
+				if (!answers) return false;
+						
+				// 检查是否至少有一个空白被填写
+				return Object.values(answers).some(value => value && value.trim() !== '');
+			},
+					
+			// 提交填空题
+			submitBlankQuestion(qIndex) {
+				const question = this.questions[qIndex];
+						
+				// 检查答案
+				this.checkAnswer();
+						
+				// 保存当前题目的答案
+				this.saveAnswer();
+						
+				// 提交答案
+				this.submitCurrentAnswer().then(() => {
+					// 提交成功后,短暂延迟后自动进入下一题
+					setTimeout(() => {
+						this.goToNextQuestion();
+					}, 500);
+				}).catch(error => {
+					console.error('提交答案失败:', error);
+					// 即使提交失败也继续下一题
+					setTimeout(() => {
+						this.goToNextQuestion();
+					}, 1000);
+				});
+			}
 		},
 		// 添加生命周期钩子,确保在组件销毁时清除计时器
 		beforeDestroy() {
@@ -2042,4 +2215,57 @@
 	  margin-top: 44px;
 	  padding-top: var(--status-bar-height);
 	}
+	
+	/* 填空题样式 */
+	.blank-question-container {
+		margin: 20rpx 0;
+	}
+	
+	.blank-question-text {
+		line-height: 1.8;
+		font-size: 28rpx;
+		color: #333;
+		padding: 20rpx;
+		background-color: #f9f9f9;
+		border-radius: 10rpx;
+		margin-bottom: 20rpx;
+	}
+	
+	.blank-inputs {
+		display: flex;
+		flex-direction: column;
+		gap: 15rpx;
+	}
+	
+	.blank-input-item {
+		display: flex;
+		align-items: center;
+		padding: 10rpx 20rpx;
+		background-color: #fff;
+		border-radius: 8rpx;
+		border: 1px solid #e0e0e0;
+	}
+	
+	.blank-label {
+		font-size: 26rpx;
+		color: #666;
+		margin-right: 20rpx;
+		min-width: 120rpx;
+	}
+	
+	/* 填空输入框样式 */
+	.blank-input {
+		flex: 1;
+		height: 60rpx;
+		border: 1px solid #ccc;
+		border-radius: 6rpx;
+		padding: 0 15rpx;
+		font-size: 26rpx;
+		background-color: #fff;
+	}
+	
+	.blank-input:disabled {
+		background-color: #f5f5f5;
+		color: #999;
+	}
 </style>

+ 15 - 12
pages/job-detail/job-detail.vue

@@ -82,6 +82,7 @@ export default {
         location: '',
         experience: '',
         benefits: [],
+		detailed_address:'',
         description: [
           {
             subtitle: '岗位要求',
@@ -117,7 +118,8 @@ export default {
           location: jobData.location || this.jobDetail.location,
           experience: jobData.experience || this.jobDetail.experience,
           benefits: jobData.benefits || this.jobDetail.benefits,
-          description: jobData.description || this.jobDetail.description
+          description: jobData.description || this.jobDetail.description,
+		  detailed_address:jobData.detailed_address || this.jobDetail.detailed_address
         };
       }
     } catch (e) {
@@ -167,6 +169,7 @@ export default {
             location: data.data.location || '',
             experience: data.data.work_experience_required || '不限',
             benefits: data.data.competency_tags || ['五险一金', '带薪年假', '定期体检'],
+			detailed_address:data.data.detailed_address || '',
             description: [
               {
                 subtitle: '岗位要求',
@@ -176,7 +179,7 @@ export default {
           };
 
           // 获取职位详情后,更新地图信息
-          this.updateMapLocation(data.data.location);
+          this.updateMapLocation(data.data.location,data.data.detailed_address);
         } else {
           uni.showToast({
             title: '获取职位详情失败',
@@ -306,7 +309,7 @@ export default {
       if (typeof location === 'string' && location.startsWith('[')) {
         try {
           const locationArray = JSON.parse(location.replace(/'/g, '"'));
-          return locationArray.join(' ');
+          return locationArray.join(' ') +''+ this.jobDetail.detailed_address ||JSON.parse(uni.getStorageSync('currentJobDetail')).detailed_address;
         } catch (e) {
           console.error('解析location失败:', e);
           return location;
@@ -315,7 +318,7 @@ export default {
       
       // 处理数组格式
       if (Array.isArray(location)) {
-        return location.join(' ');
+        return location.join(' ') +''+ this.jobDetail.detailed_address ||JSON.parse(uni.getStorageSync('currentJobDetail')).detailed_address;
       }
       
       // 处理对象格式
@@ -327,29 +330,29 @@ export default {
       }
       
       // 处理普通字符串格式
-      return location;
+      return location +''+ this.jobDetail.detailed_address ||JSON.parse(uni.getStorageSync('currentJobDetail')).detailed_address;
     },
     // 更新地图位置信息
-    async updateMapLocation(location) {
+    async updateMapLocation(location,address) {
       try {
         // 如果location是字符串数组,转换为地址字符串
         let addressStr = '';
         if (typeof location === 'string' && location.startsWith('[')) {
           try {
             const locationArray = JSON.parse(location.replace(/'/g, '"'));
-            addressStr = locationArray.join('');
+            addressStr = locationArray.join('') + address;
           } catch (e) {
-            addressStr = location;
+            addressStr = location + address;
           }
         } else if (Array.isArray(location)) {
-          addressStr = location.join('');
+          addressStr = location.join('') + address;
         } else if (typeof location === 'object' && location !== null) {
           const { province, city, district } = location;
-          addressStr = `${province || ''}${city || ''}${district || ''}`;
+          addressStr = `${province || ''}${city || ''}${district || ''}${address}`;
         } else {
-          addressStr = location;
+          addressStr = location + address;
         }
-
+		console.log(addressStr,address);
         // 使用微信小程序的地址解析接口WJLBZ-SMQYZ-3RNX5-7J4LI-XTZD6-7IBZR
         uni.request({
           url: `https://apis.map.qq.com/ws/geocoder/v1/?address=${encodeURIComponent(addressStr)}&key=ZS4BZ-NKAA7-4VLXR-PHVI4-HAGPH-Z4FJ3`, // 需要替换为实际的地图Key

+ 264 - 206
unpackage/dist/dev/mp-weixin/pages/Personal/Personal.js

@@ -264,6 +264,22 @@ const _sfc_main = {
       var _a;
       return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.weight) == null ? void 0 : _a.visible) !== false;
     },
+    showCurrentAddress() {
+      var _a;
+      return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.current_address) == null ? void 0 : _a.visible) !== false;
+    },
+    showResidence() {
+      var _a;
+      return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.household_location) == null ? void 0 : _a.visible) !== false;
+    },
+    showMarriageIndex() {
+      var _a;
+      return ((_a = this.safeProfileFieldsConfig.marital_status) == null ? void 0 : _a.visible) !== false;
+    },
+    showExpectedSalary() {
+      var _a;
+      return ((_a = this.safeProfileFieldsConfig.expected_salary) == null ? void 0 : _a.visible) !== false;
+    },
     // 家庭成员字段显示控制
     showFamilyRelationField() {
       var _a;
@@ -275,7 +291,7 @@ const _sfc_main = {
     },
     showFamilyWorkplaceField() {
       var _a;
-      return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.workplace_or_address) == null ? void 0 : _a.visible) !== false;
+      return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.workplace) == null ? void 0 : _a.visible) !== false;
     },
     showFamilyPositionField() {
       var _a;
@@ -285,6 +301,10 @@ const _sfc_main = {
       var _a;
       return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.phone) == null ? void 0 : _a.visible) !== false;
     },
+    showFamilyisEmergency() {
+      var _a;
+      ((_a = this.safeFamilyFieldsConfig.family_contact_person) == null ? void 0 : _a.visible) !== false;
+    },
     // 教育经历字段显示控制
     showEducationTimeField() {
       var _a, _b;
@@ -317,12 +337,24 @@ const _sfc_main = {
     },
     showWorkEmployeeCountField() {
       var _a;
-      return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.employee_count) == null ? void 0 : _a.visible) !== false;
+      return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.company_size) == null ? void 0 : _a.visible) !== false;
     },
     showWorkPositionField() {
       var _a;
       return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.position) == null ? void 0 : _a.visible) !== false;
     },
+    showWorkMonthlySalary() {
+      var _a;
+      return (_a = this.safeWorkFieldsConfig.monthly_income) == null ? void 0 : _a.visible;
+    },
+    showWorkSupervisor() {
+      var _a;
+      return (_a = this.safeWorkFieldsConfig.direct_supervisor) == null ? void 0 : _a.visible;
+    },
+    showWorkSupervisorPhone() {
+      var _a;
+      return (_a = this.safeWorkFieldsConfig.supervisor_phone) == null ? void 0 : _a.visible;
+    },
     showRequireProfessionalSkillsField() {
       console.log(this.safeConfigData.require_professional_skills);
       const value = this.safeConfigData.require_professional_skills;
@@ -400,9 +432,9 @@ const _sfc_main = {
             "ethnic": this.showEthnicField,
             "height": this.showHeightField,
             "weight": this.showWeightField,
-            "currentAddress": true,
+            "currentAddress": this.showCurrentAddress,
             // 现居住地址总是显示和必填
-            "expectedSalary": true,
+            "expectedSalary": this.showExpectedSalary,
             // 期望薪资总是显示
             "skills": this.showRequireTrainingInfoField,
             // 专业技能根据配置显示和必填
@@ -418,7 +450,8 @@ const _sfc_main = {
             "name": this.showFamilyNameField,
             "phone": this.showFamilyPhoneField,
             "workplaceOrAddress": this.showFamilyWorkplaceField,
-            "position": this.showFamilyPositionField
+            "position": this.showFamilyPositionField,
+            "isEmergencyContact": this.showFamilyisEmergency
           };
           return familyFieldShowMap[fieldName] !== false;
         case "education":
@@ -438,11 +471,11 @@ const _sfc_main = {
             "department": this.showWorkDepartmentField,
             "position": this.showWorkPositionField,
             "employeeCount": this.showWorkEmployeeCountField,
-            "monthlySalary": true,
+            "monthlySalary": this.showWorkMonthlySalary,
             // 月薪总是需要验证
-            "supervisor": true,
+            "supervisor": this.showWorkSupervisor,
             // 直接领导总是需要验证
-            "supervisorPhone": true
+            "supervisorPhone": this.showWorkSupervisorPhone
             // 领导电话总是需要验证
           };
           return workFieldShowMap[fieldName] !== false;
@@ -1749,32 +1782,42 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
     ae: common_vendor.o(($event) => $options.handleBlur("weight")),
     af: $data.formData.weight
   } : {}, {
-    ag: $data.formErrors.currentAddress ? 1 : "",
-    ah: $data.formData.currentAddress,
-    ai: common_vendor.o(($event) => $data.formData.currentAddress = $event.detail.value),
-    aj: $data.formErrors.currentAddress
+    ag: $options.showCurrentAddress
+  }, $options.showCurrentAddress ? common_vendor.e({
+    ah: $data.formErrors.currentAddress ? 1 : "",
+    ai: $data.formData.currentAddress,
+    aj: common_vendor.o(($event) => $data.formData.currentAddress = $event.detail.value),
+    ak: $data.formErrors.currentAddress
   }, $data.formErrors.currentAddress ? {
-    ak: common_vendor.t($data.formErrors.currentAddress)
+    al: common_vendor.t($data.formErrors.currentAddress)
+  } : {}) : {}, {
+    am: $options.showResidence
+  }, $options.showResidence ? {
+    an: $data.formData.residence,
+    ao: common_vendor.o(($event) => $data.formData.residence = $event.detail.value)
+  } : {}, {
+    ap: $options.showMarriageIndex
+  }, $options.showMarriageIndex ? {
+    aq: common_vendor.t($data.marriageOptions[$data.marriageIndex] || "请选择婚育状况"),
+    ar: common_vendor.o((...args) => $options.bindMarriageChange && $options.bindMarriageChange(...args)),
+    as: $data.marriageIndex,
+    at: $data.marriageOptions
   } : {}, {
-    al: $data.formData.residence,
-    am: common_vendor.o(($event) => $data.formData.residence = $event.detail.value),
-    an: common_vendor.t($data.marriageOptions[$data.marriageIndex] || "请选择婚育状况"),
-    ao: common_vendor.o((...args) => $options.bindMarriageChange && $options.bindMarriageChange(...args)),
-    ap: $data.marriageIndex,
-    aq: $data.marriageOptions,
-    ar: common_vendor.o((...args) => $options.validateExpectedSalary && $options.validateExpectedSalary(...args)),
-    as: $data.formErrors.expectedSalary ? 1 : "",
-    at: $data.formData.expectedSalary,
-    av: common_vendor.o(($event) => $data.formData.expectedSalary = $event.detail.value),
-    aw: $data.formErrors.expectedSalary
+    av: $options.showExpectedSalary
+  }, $options.showExpectedSalary ? common_vendor.e({
+    aw: common_vendor.o((...args) => $options.validateExpectedSalary && $options.validateExpectedSalary(...args)),
+    ax: $data.formErrors.expectedSalary ? 1 : "",
+    ay: $data.formData.expectedSalary,
+    az: common_vendor.o(($event) => $data.formData.expectedSalary = $event.detail.value),
+    aA: $data.formErrors.expectedSalary
   }, $data.formErrors.expectedSalary ? {
-    ax: common_vendor.t($data.formErrors.expectedSalary)
-  } : {}) : {}, {
-    ay: $data.currentStep === 3
+    aB: common_vendor.t($data.formErrors.expectedSalary)
+  } : {}) : {}) : {}, {
+    aC: $data.currentStep === 3
   }, $data.currentStep === 3 ? common_vendor.e({
-    az: $data.familyMembers.length > 0
+    aD: $data.familyMembers.length > 0
   }, $data.familyMembers.length > 0 ? {
-    aA: common_vendor.f($data.familyMembers, (member, index, i0) => {
+    aE: common_vendor.f($data.familyMembers, (member, index, i0) => {
       return common_vendor.e({
         a: common_vendor.t(index + 1),
         b: common_vendor.o(($event) => $options.editFamilyMember(index), index),
@@ -1794,65 +1837,68 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         j: index
       });
     }),
-    aB: $options.showFamilyRelationField,
-    aC: $options.showFamilyNameField,
-    aD: $options.showFamilyWorkplaceField,
-    aE: $options.showFamilyPositionField,
-    aF: $options.showFamilyPhoneField
+    aF: $options.showFamilyRelationField,
+    aG: $options.showFamilyNameField,
+    aH: $options.showFamilyWorkplaceField,
+    aI: $options.showFamilyPositionField,
+    aJ: $options.showFamilyPhoneField
   } : {}, {
-    aG: common_vendor.t($data.isEditing ? "编辑家庭成员" : "添加家庭成员"),
-    aH: $data.isEditing
+    aK: common_vendor.t($data.isEditing ? "编辑家庭成员" : "添加家庭成员"),
+    aL: $data.isEditing
   }, $data.isEditing ? {
-    aI: common_vendor.o((...args) => $options.cancelEdit && $options.cancelEdit(...args))
+    aM: common_vendor.o((...args) => $options.cancelEdit && $options.cancelEdit(...args))
   } : {}, {
-    aJ: $options.showFamilyRelationField
+    aN: $options.showFamilyRelationField
   }, $options.showFamilyRelationField ? common_vendor.e({
-    aK: $data.familyMemberErrors.relation ? 1 : "",
-    aL: $data.familyMemberForm.relation,
-    aM: common_vendor.o(($event) => $data.familyMemberForm.relation = $event.detail.value),
-    aN: $data.familyMemberErrors.relation
+    aO: $data.familyMemberErrors.relation ? 1 : "",
+    aP: $data.familyMemberForm.relation,
+    aQ: common_vendor.o(($event) => $data.familyMemberForm.relation = $event.detail.value),
+    aR: $data.familyMemberErrors.relation
   }, $data.familyMemberErrors.relation ? {
-    aO: common_vendor.t($data.familyMemberErrors.relation)
+    aS: common_vendor.t($data.familyMemberErrors.relation)
   } : {}) : {}, {
-    aP: $options.showFamilyNameField
+    aT: $options.showFamilyNameField
   }, $options.showFamilyNameField ? common_vendor.e({
-    aQ: $data.familyMemberErrors.name ? 1 : "",
-    aR: $data.familyMemberForm.name,
-    aS: common_vendor.o(($event) => $data.familyMemberForm.name = $event.detail.value),
-    aT: $data.familyMemberErrors.name
+    aU: $data.familyMemberErrors.name ? 1 : "",
+    aV: $data.familyMemberForm.name,
+    aW: common_vendor.o(($event) => $data.familyMemberForm.name = $event.detail.value),
+    aX: $data.familyMemberErrors.name
   }, $data.familyMemberErrors.name ? {
-    aU: common_vendor.t($data.familyMemberErrors.name)
+    aY: common_vendor.t($data.familyMemberErrors.name)
   } : {}) : {}, {
-    aV: $options.showFamilyWorkplaceField
+    aZ: $options.showFamilyWorkplaceField
   }, $options.showFamilyWorkplaceField ? {
-    aW: $data.familyMemberForm.workplaceOrAddress,
-    aX: common_vendor.o(($event) => $data.familyMemberForm.workplaceOrAddress = $event.detail.value)
+    ba: $data.familyMemberForm.workplaceOrAddress,
+    bb: common_vendor.o(($event) => $data.familyMemberForm.workplaceOrAddress = $event.detail.value)
   } : {}, {
-    aY: $options.showFamilyPositionField
+    bc: $options.showFamilyPositionField
   }, $options.showFamilyPositionField ? {
-    aZ: $data.familyMemberForm.position,
-    ba: common_vendor.o(($event) => $data.familyMemberForm.position = $event.detail.value)
+    bd: $data.familyMemberForm.position,
+    be: common_vendor.o(($event) => $data.familyMemberForm.position = $event.detail.value)
   } : {}, {
-    bb: $options.showFamilyPhoneField
+    bf: $options.showFamilyPhoneField
   }, $options.showFamilyPhoneField ? common_vendor.e({
-    bc: common_vendor.o([($event) => $data.familyMemberForm.phone = $event.detail.value, (...args) => $options.validatePhone && $options.validatePhone(...args)]),
-    bd: $data.familyMemberErrors.phone ? 1 : "",
-    be: $data.familyMemberForm.phone,
-    bf: $data.familyMemberErrors.phone
+    bg: common_vendor.o([($event) => $data.familyMemberForm.phone = $event.detail.value, (...args) => $options.validatePhone && $options.validatePhone(...args)]),
+    bh: $data.familyMemberErrors.phone ? 1 : "",
+    bi: $data.familyMemberForm.phone,
+    bj: $data.familyMemberErrors.phone
   }, $data.familyMemberErrors.phone ? {
-    bg: common_vendor.t($data.familyMemberErrors.phone)
+    bk: common_vendor.t($data.familyMemberErrors.phone)
   } : {}) : {}, {
-    bh: $data.familyMemberForm.isEmergencyContact,
-    bi: common_vendor.o((...args) => $options.handleEmergencyContactChange && $options.handleEmergencyContactChange(...args)),
-    bj: common_vendor.t($data.isEditing ? "✓" : "+"),
-    bk: common_vendor.o((...args) => $options.saveFamilyMember && $options.saveFamilyMember(...args)),
-    bl: common_vendor.t($data.isEditing ? "保存修改" : "添加成员")
+    bl: $options.showFamilyisEmergency
+  }, $options.showFamilyisEmergency ? {
+    bm: $data.familyMemberForm.isEmergencyContact,
+    bn: common_vendor.o((...args) => $options.handleEmergencyContactChange && $options.handleEmergencyContactChange(...args))
+  } : {}, {
+    bo: common_vendor.t($data.isEditing ? "✓" : "+"),
+    bp: common_vendor.o((...args) => $options.saveFamilyMember && $options.saveFamilyMember(...args)),
+    bq: common_vendor.t($data.isEditing ? "保存修改" : "添加成员")
   }) : {}, {
-    bm: $data.currentStep === 5
+    br: $data.currentStep === 5
   }, $data.currentStep === 5 ? common_vendor.e({
-    bn: $data.educationList.length > 0
+    bs: $data.educationList.length > 0
   }, $data.educationList.length > 0 ? {
-    bo: common_vendor.f($data.educationList, (edu, index, i0) => {
+    bt: common_vendor.f($data.educationList, (edu, index, i0) => {
       return common_vendor.e({
         a: common_vendor.t(index === 0 ? "第一学历" : "最高学历"),
         b: common_vendor.o(($event) => $options.editEducation(index), index),
@@ -1870,98 +1916,98 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         i: index
       });
     }),
-    bp: $options.showEducationTimeField,
-    bq: $options.showEducationSchoolField,
-    br: $options.showEducationMajorField,
-    bs: $options.showEducationDegreeField
+    bv: $options.showEducationTimeField,
+    bw: $options.showEducationSchoolField,
+    bx: $options.showEducationMajorField,
+    by: $options.showEducationDegreeField
   } : {}, {
-    bt: $data.educationList.length < 2 || $data.isEditingEducation
+    bz: $data.educationList.length < 2 || $data.isEditingEducation
   }, $data.educationList.length < 2 || $data.isEditingEducation ? common_vendor.e({
-    bv: common_vendor.t($data.isEditingEducation ? "编辑教育经历" : $data.educationList.length === 0 ? "添加第一学历" : "添加最高学历"),
-    bw: $data.isEditingEducation
+    bA: common_vendor.t($data.isEditingEducation ? "编辑教育经历" : $data.educationList.length === 0 ? "添加第一学历" : "添加最高学历"),
+    bB: $data.isEditingEducation
   }, $data.isEditingEducation ? {
-    bx: common_vendor.o((...args) => $options.cancelEditEducation && $options.cancelEditEducation(...args))
+    bC: common_vendor.o((...args) => $options.cancelEditEducation && $options.cancelEditEducation(...args))
   } : {}, {
-    by: $options.showEducationTimeField
+    bD: $options.showEducationTimeField
   }, $options.showEducationTimeField ? common_vendor.e({
-    bz: common_vendor.t($data.educationForm.startTime || "开始时间"),
-    bA: $data.educationForm.startTime,
-    bB: common_vendor.o((...args) => $options.bindStartTimeChange && $options.bindStartTimeChange(...args)),
-    bC: $data.educationErrors.startTime ? 1 : "",
-    bD: common_vendor.t($data.educationForm.endTime || "结束时间"),
-    bE: $data.educationForm.endTime,
-    bF: common_vendor.o((...args) => $options.bindEndTimeChange && $options.bindEndTimeChange(...args)),
-    bG: $data.educationErrors.endTime ? 1 : "",
-    bH: $data.educationErrors.startTime
+    bE: common_vendor.t($data.educationForm.startTime || "开始时间"),
+    bF: $data.educationForm.startTime,
+    bG: common_vendor.o((...args) => $options.bindStartTimeChange && $options.bindStartTimeChange(...args)),
+    bH: $data.educationErrors.startTime ? 1 : "",
+    bI: common_vendor.t($data.educationForm.endTime || "结束时间"),
+    bJ: $data.educationForm.endTime,
+    bK: common_vendor.o((...args) => $options.bindEndTimeChange && $options.bindEndTimeChange(...args)),
+    bL: $data.educationErrors.endTime ? 1 : "",
+    bM: $data.educationErrors.startTime
   }, $data.educationErrors.startTime ? {
-    bI: common_vendor.t($data.educationErrors.startTime)
+    bN: common_vendor.t($data.educationErrors.startTime)
   } : {}, {
-    bJ: $data.educationErrors.endTime
+    bO: $data.educationErrors.endTime
   }, $data.educationErrors.endTime ? {
-    bK: common_vendor.t($data.educationErrors.endTime)
+    bP: common_vendor.t($data.educationErrors.endTime)
   } : {}) : {}, {
-    bL: $options.showEducationSchoolField
+    bQ: $options.showEducationSchoolField
   }, $options.showEducationSchoolField ? common_vendor.e({
-    bM: $data.educationErrors.schoolName ? 1 : "",
-    bN: $data.educationForm.schoolName,
-    bO: common_vendor.o(($event) => $data.educationForm.schoolName = $event.detail.value),
-    bP: $data.educationErrors.schoolName
+    bR: $data.educationErrors.schoolName ? 1 : "",
+    bS: $data.educationForm.schoolName,
+    bT: common_vendor.o(($event) => $data.educationForm.schoolName = $event.detail.value),
+    bU: $data.educationErrors.schoolName
   }, $data.educationErrors.schoolName ? {
-    bQ: common_vendor.t($data.educationErrors.schoolName)
+    bV: common_vendor.t($data.educationErrors.schoolName)
   } : {}) : {}, {
-    bR: $options.showEducationMajorField
+    bW: $options.showEducationMajorField
   }, $options.showEducationMajorField ? common_vendor.e({
-    bS: $data.educationErrors.major ? 1 : "",
-    bT: $data.educationForm.major,
-    bU: common_vendor.o(($event) => $data.educationForm.major = $event.detail.value),
-    bV: $data.educationErrors.major
+    bX: $data.educationErrors.major ? 1 : "",
+    bY: $data.educationForm.major,
+    bZ: common_vendor.o(($event) => $data.educationForm.major = $event.detail.value),
+    ca: $data.educationErrors.major
   }, $data.educationErrors.major ? {
-    bW: common_vendor.t($data.educationErrors.major)
+    cb: common_vendor.t($data.educationErrors.major)
   } : {}) : {}, {
-    bX: $options.showEducationDegreeField
+    cc: $options.showEducationDegreeField
   }, $options.showEducationDegreeField ? common_vendor.e({
-    bY: common_vendor.t($data.degreeOptions[$data.degreeIndex] || "请选择学历"),
-    bZ: common_vendor.o((...args) => $options.bindDegreeChange && $options.bindDegreeChange(...args)),
-    ca: $data.degreeIndex,
-    cb: $data.degreeOptions,
-    cc: $data.educationErrors.degree ? 1 : "",
-    cd: $data.educationErrors.degree
+    cd: common_vendor.t($data.degreeOptions[$data.degreeIndex] || "请选择学历"),
+    ce: common_vendor.o((...args) => $options.bindDegreeChange && $options.bindDegreeChange(...args)),
+    cf: $data.degreeIndex,
+    cg: $data.degreeOptions,
+    ch: $data.educationErrors.degree ? 1 : "",
+    ci: $data.educationErrors.degree
   }, $data.educationErrors.degree ? {
-    ce: common_vendor.t($data.educationErrors.degree)
+    cj: common_vendor.t($data.educationErrors.degree)
   } : {}) : {}, {
-    cf: common_vendor.t($data.isEditingEducation ? "✓" : "+"),
-    cg: common_vendor.o((...args) => $options.saveEducation && $options.saveEducation(...args)),
-    ch: common_vendor.t($data.isEditingEducation ? "保存修改" : "添加学历")
+    ck: common_vendor.t($data.isEditingEducation ? "✓" : "+"),
+    cl: common_vendor.o((...args) => $options.saveEducation && $options.saveEducation(...args)),
+    cm: common_vendor.t($data.isEditingEducation ? "保存修改" : "添加学历")
   }) : {}) : {}, {
-    ci: $data.currentStep === 6 && ($options.showRequireTrainingInfoField || $options.showRequireProfessionalSkillsField)
+    cn: $data.currentStep === 6 && ($options.showRequireTrainingInfoField || $options.showRequireProfessionalSkillsField)
   }, $data.currentStep === 6 && ($options.showRequireTrainingInfoField || $options.showRequireProfessionalSkillsField) ? common_vendor.e({
-    cj: $options.showRequireTrainingInfoField
+    co: $options.showRequireTrainingInfoField
   }, $options.showRequireTrainingInfoField ? {} : {}, {
-    ck: $options.showRequireTrainingInfoField
+    cp: $options.showRequireTrainingInfoField
   }, $options.showRequireTrainingInfoField ? common_vendor.e({
-    cl: $data.formErrors.skills ? 1 : "",
-    cm: $data.formData.skills,
-    cn: common_vendor.o(($event) => $data.formData.skills = $event.detail.value),
-    co: $data.formErrors.skills
+    cq: $data.formErrors.skills ? 1 : "",
+    cr: $data.formData.skills,
+    cs: common_vendor.o(($event) => $data.formData.skills = $event.detail.value),
+    ct: $data.formErrors.skills
   }, $data.formErrors.skills ? {
-    cp: common_vendor.t($data.formErrors.skills)
+    cv: common_vendor.t($data.formErrors.skills)
   } : {}) : {}, {
-    cq: $options.showRequireProfessionalSkillsField
+    cw: $options.showRequireProfessionalSkillsField
   }, $options.showRequireProfessionalSkillsField ? {} : {}, {
-    cr: $options.showRequireProfessionalSkillsField
+    cx: $options.showRequireProfessionalSkillsField
   }, $options.showRequireProfessionalSkillsField ? common_vendor.e({
-    cs: $data.formErrors.training ? 1 : "",
-    ct: $data.formData.training,
-    cv: common_vendor.o(($event) => $data.formData.training = $event.detail.value),
-    cw: $data.formErrors.training
+    cy: $data.formErrors.training ? 1 : "",
+    cz: $data.formData.training,
+    cA: common_vendor.o(($event) => $data.formData.training = $event.detail.value),
+    cB: $data.formErrors.training
   }, $data.formErrors.training ? {
-    cx: common_vendor.t($data.formErrors.training)
+    cC: common_vendor.t($data.formErrors.training)
   } : {}) : {}) : {}, {
-    cy: $data.currentStep === 8
+    cD: $data.currentStep === 8
   }, $data.currentStep === 8 ? common_vendor.e({
-    cz: $data.workList.length > 0
+    cE: $data.workList.length > 0
   }, $data.workList.length > 0 ? {
-    cA: common_vendor.f($data.workList, (work, index, i0) => {
+    cF: common_vendor.f($data.workList, (work, index, i0) => {
       return common_vendor.e({
         a: common_vendor.t(index + 1),
         b: common_vendor.o(($event) => $options.editWork(index), index),
@@ -1977,115 +2023,127 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         h: common_vendor.t(work.employeeCount)
       } : {}, $options.showWorkPositionField ? {
         i: common_vendor.t(work.position)
+      } : {}, $options.showWorkMonthlySalary ? {
+        j: common_vendor.t(work.monthlySalary)
+      } : {}, $options.showWorkSupervisor ? {
+        k: common_vendor.t(work.supervisor)
+      } : {}, $options.showWorkSupervisorPhone ? {
+        l: common_vendor.t(work.supervisorPhone)
       } : {}, {
-        j: common_vendor.t(work.monthlySalary),
-        k: common_vendor.t(work.supervisor),
-        l: common_vendor.t(work.supervisorPhone),
         m: index
       });
     }),
-    cB: $options.showWorkTimeField,
-    cC: $options.showWorkCompanyField,
-    cD: $options.showWorkDepartmentField,
-    cE: $options.showWorkEmployeeCountField,
-    cF: $options.showWorkPositionField
+    cG: $options.showWorkTimeField,
+    cH: $options.showWorkCompanyField,
+    cI: $options.showWorkDepartmentField,
+    cJ: $options.showWorkEmployeeCountField,
+    cK: $options.showWorkPositionField,
+    cL: $options.showWorkMonthlySalary,
+    cM: $options.showWorkSupervisor,
+    cN: $options.showWorkSupervisorPhone
   } : {}, {
-    cG: $data.workList.length < 2 || $data.isEditingWork
+    cO: $data.workList.length < 2 || $data.isEditingWork
   }, $data.workList.length < 2 || $data.isEditingWork ? common_vendor.e({
-    cH: common_vendor.t($data.isEditingWork ? "编辑工作经历" : "添加工作经历"),
-    cI: $data.isEditingWork
+    cP: common_vendor.t($data.isEditingWork ? "编辑工作经历" : "添加工作经历"),
+    cQ: $data.isEditingWork
   }, $data.isEditingWork ? {
-    cJ: common_vendor.o((...args) => $options.cancelEditWork && $options.cancelEditWork(...args))
+    cR: common_vendor.o((...args) => $options.cancelEditWork && $options.cancelEditWork(...args))
   } : {}, {
-    cK: $options.showWorkTimeField
+    cS: $options.showWorkTimeField
   }, $options.showWorkTimeField ? common_vendor.e({
-    cL: common_vendor.t($data.workForm.startTime || "开始时间"),
-    cM: $data.workForm.startTime,
-    cN: common_vendor.o((...args) => $options.bindWorkStartTimeChange && $options.bindWorkStartTimeChange(...args)),
-    cO: $data.workErrors.startTime ? 1 : "",
-    cP: common_vendor.t($data.workForm.endTime || "结束时间"),
-    cQ: $data.workForm.endTime,
-    cR: common_vendor.o((...args) => $options.bindWorkEndTimeChange && $options.bindWorkEndTimeChange(...args)),
-    cS: $data.workErrors.endTime ? 1 : "",
-    cT: $data.workErrors.startTime
+    cT: common_vendor.t($data.workForm.startTime || "开始时间"),
+    cU: $data.workForm.startTime,
+    cV: common_vendor.o((...args) => $options.bindWorkStartTimeChange && $options.bindWorkStartTimeChange(...args)),
+    cW: $data.workErrors.startTime ? 1 : "",
+    cX: common_vendor.t($data.workForm.endTime || "结束时间"),
+    cY: $data.workForm.endTime,
+    cZ: common_vendor.o((...args) => $options.bindWorkEndTimeChange && $options.bindWorkEndTimeChange(...args)),
+    da: $data.workErrors.endTime ? 1 : "",
+    db: $data.workErrors.startTime
   }, $data.workErrors.startTime ? {
-    cU: common_vendor.t($data.workErrors.startTime)
+    dc: common_vendor.t($data.workErrors.startTime)
   } : {}, {
-    cV: $data.workErrors.endTime
+    dd: $data.workErrors.endTime
   }, $data.workErrors.endTime ? {
-    cW: common_vendor.t($data.workErrors.endTime)
+    de: common_vendor.t($data.workErrors.endTime)
   } : {}) : {}, {
-    cX: $options.showWorkCompanyField
+    df: $options.showWorkCompanyField
   }, $options.showWorkCompanyField ? common_vendor.e({
-    cY: $data.workErrors.companyName ? 1 : "",
-    cZ: $data.workForm.companyName,
-    da: common_vendor.o(($event) => $data.workForm.companyName = $event.detail.value),
-    db: $data.workErrors.companyName
+    dg: $data.workErrors.companyName ? 1 : "",
+    dh: $data.workForm.companyName,
+    di: common_vendor.o(($event) => $data.workForm.companyName = $event.detail.value),
+    dj: $data.workErrors.companyName
   }, $data.workErrors.companyName ? {
-    dc: common_vendor.t($data.workErrors.companyName)
+    dk: common_vendor.t($data.workErrors.companyName)
   } : {}) : {}, {
-    dd: $options.showWorkEmployeeCountField
+    dl: $options.showWorkEmployeeCountField
   }, $options.showWorkEmployeeCountField ? common_vendor.e({
-    de: $data.workErrors.employeeCount ? 1 : "",
-    df: common_vendor.o((...args) => $options.validateEmployeeCount && $options.validateEmployeeCount(...args)),
-    dg: $data.workForm.employeeCount,
-    dh: common_vendor.o(($event) => $data.workForm.employeeCount = $event.detail.value),
-    di: $data.workErrors.employeeCount
+    dm: $data.workErrors.employeeCount ? 1 : "",
+    dn: common_vendor.o((...args) => $options.validateEmployeeCount && $options.validateEmployeeCount(...args)),
+    dp: $data.workForm.employeeCount,
+    dq: common_vendor.o(($event) => $data.workForm.employeeCount = $event.detail.value),
+    dr: $data.workErrors.employeeCount
   }, $data.workErrors.employeeCount ? {
-    dj: common_vendor.t($data.workErrors.employeeCount)
+    ds: common_vendor.t($data.workErrors.employeeCount)
   } : {}) : {}, {
-    dk: $options.showWorkDepartmentField
+    dt: $options.showWorkDepartmentField
   }, $options.showWorkDepartmentField ? common_vendor.e({
-    dl: $data.workErrors.department ? 1 : "",
-    dm: $data.workForm.department,
-    dn: common_vendor.o(($event) => $data.workForm.department = $event.detail.value),
-    dp: $data.workErrors.department
+    dv: $data.workErrors.department ? 1 : "",
+    dw: $data.workForm.department,
+    dx: common_vendor.o(($event) => $data.workForm.department = $event.detail.value),
+    dy: $data.workErrors.department
   }, $data.workErrors.department ? {
-    dq: common_vendor.t($data.workErrors.department)
+    dz: common_vendor.t($data.workErrors.department)
   } : {}) : {}, {
-    dr: $options.showWorkPositionField
+    dA: $options.showWorkPositionField
   }, $options.showWorkPositionField ? common_vendor.e({
-    ds: $data.workErrors.position ? 1 : "",
-    dt: $data.workForm.position,
-    dv: common_vendor.o(($event) => $data.workForm.position = $event.detail.value),
-    dw: $data.workErrors.position
+    dB: $data.workErrors.position ? 1 : "",
+    dC: $data.workForm.position,
+    dD: common_vendor.o(($event) => $data.workForm.position = $event.detail.value),
+    dE: $data.workErrors.position
   }, $data.workErrors.position ? {
-    dx: common_vendor.t($data.workErrors.position)
+    dF: common_vendor.t($data.workErrors.position)
   } : {}) : {}, {
-    dy: $data.workErrors.monthlySalary ? 1 : "",
-    dz: common_vendor.o([($event) => $data.workForm.monthlySalary = $event.detail.value, (...args) => $options.validateMonthlySalary && $options.validateMonthlySalary(...args)]),
-    dA: $data.workForm.monthlySalary,
-    dB: $data.workErrors.monthlySalary
+    dG: $options.showWorkMonthlySalary
+  }, $options.showWorkMonthlySalary ? common_vendor.e({
+    dH: $data.workErrors.monthlySalary ? 1 : "",
+    dI: common_vendor.o([($event) => $data.workForm.monthlySalary = $event.detail.value, (...args) => $options.validateMonthlySalary && $options.validateMonthlySalary(...args)]),
+    dJ: $data.workForm.monthlySalary,
+    dK: $data.workErrors.monthlySalary
   }, $data.workErrors.monthlySalary ? {
-    dC: common_vendor.t($data.workErrors.monthlySalary)
-  } : {}, {
-    dD: $data.workForm.supervisor,
-    dE: common_vendor.o(($event) => $data.workForm.supervisor = $event.detail.value),
-    dF: $data.workErrors.supervisor
+    dL: common_vendor.t($data.workErrors.monthlySalary)
+  } : {}) : {}, {
+    dM: $options.showWorkSupervisor
+  }, $options.showWorkSupervisor ? common_vendor.e({
+    dN: $data.workForm.supervisor,
+    dO: common_vendor.o(($event) => $data.workForm.supervisor = $event.detail.value),
+    dP: $data.workErrors.supervisor
   }, $data.workErrors.supervisor ? {
-    dG: common_vendor.t($data.workErrors.supervisor)
-  } : {}, {
-    dH: common_vendor.o([($event) => $data.workForm.supervisorPhone = $event.detail.value, (...args) => $options.validatePhone && $options.validatePhone(...args)]),
-    dI: $data.workForm.supervisorPhone,
-    dJ: $data.workErrors.supervisorPhone
+    dQ: common_vendor.t($data.workErrors.supervisor)
+  } : {}) : {}, {
+    dR: $options.showWorkSupervisorPhone
+  }, $options.showWorkSupervisorPhone ? common_vendor.e({
+    dS: common_vendor.o([($event) => $data.workForm.supervisorPhone = $event.detail.value, (...args) => $options.validatePhone && $options.validatePhone(...args)]),
+    dT: $data.workForm.supervisorPhone,
+    dU: $data.workErrors.supervisorPhone
   }, $data.workErrors.supervisorPhone ? {
-    dK: common_vendor.t($data.workErrors.supervisorPhone)
-  } : {}, {
-    dL: common_vendor.t($data.isEditingWork ? "✓" : "+"),
-    dM: common_vendor.o((...args) => $options.saveWork && $options.saveWork(...args)),
-    dN: common_vendor.t($data.isEditingWork ? "保存修改" : "添加工作经历")
+    dV: common_vendor.t($data.workErrors.supervisorPhone)
+  } : {}) : {}, {
+    dW: common_vendor.t($data.isEditingWork ? "✓" : "+"),
+    dX: common_vendor.o((...args) => $options.saveWork && $options.saveWork(...args)),
+    dY: common_vendor.t($data.isEditingWork ? "保存修改" : "添加工作经历")
   }) : {}) : {}, {
-    dO: $options.showPrevButton
+    dZ: $options.showPrevButton
   }, $options.showPrevButton ? {
-    dP: common_vendor.o((...args) => $options.prevStep && $options.prevStep(...args))
+    ea: common_vendor.o((...args) => $options.prevStep && $options.prevStep(...args))
   } : {}, {
-    dQ: $options.showNextButton
+    eb: $options.showNextButton
   }, $options.showNextButton ? {
-    dR: common_vendor.o((...args) => $options.nextStep && $options.nextStep(...args))
+    ec: common_vendor.o((...args) => $options.nextStep && $options.nextStep(...args))
   } : {}, {
-    dS: $options.showSubmitButton
+    ed: $options.showSubmitButton
   }, $options.showSubmitButton ? {
-    dT: common_vendor.o((...args) => $options.submitForm && $options.submitForm(...args))
+    ee: common_vendor.o((...args) => $options.submitForm && $options.submitForm(...args))
   } : {});
 }
 const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

Plik diff jest za duży
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/Personal/Personal.wxml


+ 149 - 9
unpackage/dist/dev/mp-weixin/pages/camera/camera.js

@@ -75,7 +75,13 @@ const _sfc_main = {
       showPageWarning: false,
       // 添加新的数据属性
       statusBarHeight: 0,
-      positionConfig: {}
+      positionConfig: {},
+      blankQuestions: [],
+      // 存储填空题
+      blankAnswers: [],
+      // 存储填空题答案
+      currentBlankAnswers: {}
+      // 当前填空题的答案
     };
   },
   computed: {
@@ -277,6 +283,7 @@ const _sfc_main = {
         });
         console.log(res2.items);
         this.interviewId = res2.items;
+        await this.fetchBlankQuestions();
         this.fetchInterviewData(res2.items);
       } catch (error) {
         console.error("获取面试列表失败:", error);
@@ -319,6 +326,44 @@ const _sfc_main = {
         this.loading = false;
       }
     },
+    // 获取填空题
+    async fetchBlankQuestions() {
+      try {
+        const positionId = JSON.parse(common_vendor.index.getStorageSync("selectedJob")).id;
+        const tenantId = JSON.parse(common_vendor.index.getStorageSync("userInfo")).tenant_id || 1;
+        const res2 = await this.$http.get(`${common_config.apiBaseUrl}/api/wechat/blank_questions/?tenant_id=${tenantId}&position_id=${positionId}`);
+        console.log(res2);
+        if (res2 && Array.isArray(res2.items)) {
+          this.blankQuestions = res2.items.map((q, index) => {
+            const questionText = q.question || "";
+            const blankPattern = /_{3,}/g;
+            const matches = questionText.match(blankPattern) || [];
+            const blanks = matches.map((_, blankIndex) => ({
+              id: blankIndex + 1,
+              index: blankIndex + 1,
+              label: `第${blankIndex + 1}个空白`
+            }));
+            return {
+              id: q.id || `blank_${index + 1}`,
+              text: questionText,
+              questionType: 6,
+              // 使用 6 表示填空题
+              questionTypeName: "填空题",
+              blanks,
+              // 根据下划线数量生成的空白数组
+              category: q.category || 0
+            };
+          });
+          console.log("获取填空题成功:", this.blankQuestions);
+        } else {
+          console.log("没有填空题数据");
+          this.blankQuestions = [];
+        }
+      } catch (error) {
+        console.error("获取填空题失败:", error);
+        this.blankQuestions = [];
+      }
+    },
     // 处理面试数据
     processInterviewData(data) {
       this.questions = [];
@@ -710,6 +755,15 @@ const _sfc_main = {
           group2.push(q);
         }
       });
+      if (this.blankQuestions && this.blankQuestions.length > 0) {
+        this.blankQuestions.forEach((q) => {
+          if (q.category === 5) {
+            group1.push(q);
+          } else {
+            group2.push(q);
+          }
+        });
+      }
       this.questionGroups = [group2, group1].filter((group) => group.length > 0);
       this.questions = this.questionGroups[0] || [];
     },
@@ -769,6 +823,14 @@ const _sfc_main = {
           answerDuration: this.getAnswerDuration()
           // 添加答题时长
         };
+      } else if (this.currentQuestion.questionType === 6) {
+        answer = {
+          questionId: this.currentQuestion.id,
+          questionType: this.currentQuestion.questionType,
+          answer: this.currentBlankAnswers[this.currentQuestion.id] || {},
+          answerDuration: this.getAnswerDuration()
+          // 添加答题时长
+        };
       } else {
         answer = {
           questionId: this.currentQuestion.id,
@@ -801,6 +863,7 @@ const _sfc_main = {
         this.isSubmitting = true;
         let answerContent = "";
         let answerOptions = [];
+        let blankAnswers = [];
         if (this.currentAnswer.questionType === 0) {
           answerContent = this.currentAnswer.answer;
           answerOptions = [];
@@ -818,6 +881,14 @@ const _sfc_main = {
             return option.id ? option.id : index;
           });
           answerOptions = selectedOptionIds;
+        } else if (this.currentAnswer.questionType === 6) {
+          const blankAnswerObj = this.currentAnswer.answer;
+          if (blankAnswerObj && typeof blankAnswerObj === "object") {
+            blankAnswers = Object.entries(blankAnswerObj).map(([key, value]) => ({
+              blank_index: parseInt(key),
+              answer_text: value || ""
+            }));
+          }
         }
         const submitData = {
           position_id: JSON.parse(common_vendor.index.getStorageSync("selectedJob")).id,
@@ -828,6 +899,9 @@ const _sfc_main = {
           answer_duration: this.currentAnswer.answerDuration || 0,
           tenant_id: JSON.parse(common_vendor.index.getStorageSync("userInfo")).tenant_id || 1
         };
+        if (this.currentAnswer.questionType === 6 && blankAnswers.length > 0) {
+          submitData.blank_answers = blankAnswers;
+        }
         console.log("提交数据:", submitData);
         const res2 = await this.$http.post(`${common_config.apiBaseUrl}/api/job/submit_answer`, submitData);
         console.log("提交答案响应:", res2);
@@ -872,6 +946,54 @@ const _sfc_main = {
           this.pauseAiSpeaking();
         }, 2e3);
       }
+    },
+    // 填空题相关方法
+    // 获取填空值
+    getBlankValue(questionId, blankIndex) {
+      if (this.currentBlankAnswers[questionId] && this.currentBlankAnswers[questionId][blankIndex]) {
+        return this.currentBlankAnswers[questionId][blankIndex];
+      }
+      return "";
+    },
+    // 处理填空输入
+    handleBlankInput(questionId, blankIndex, event) {
+      const value = event.detail.value;
+      if (!this.currentBlankAnswers[questionId]) {
+        this.$set(this.currentBlankAnswers, questionId, {});
+      }
+      this.$set(this.currentBlankAnswers[questionId], blankIndex, value);
+      const existingAnswerIndex = this.blankAnswers.findIndex((answer) => answer.questionId === questionId);
+      if (existingAnswerIndex > -1) {
+        this.blankAnswers[existingAnswerIndex].answer = this.currentBlankAnswers[questionId];
+      } else {
+        this.blankAnswers.push({
+          questionId,
+          answer: this.currentBlankAnswers[questionId]
+        });
+      }
+    },
+    // 检查是否有填空答案
+    hasBlankAnswers(question) {
+      const answers = this.currentBlankAnswers[question.id];
+      if (!answers)
+        return false;
+      return Object.values(answers).some((value) => value && value.trim() !== "");
+    },
+    // 提交填空题
+    submitBlankQuestion(qIndex) {
+      this.questions[qIndex];
+      this.checkAnswer();
+      this.saveAnswer();
+      this.submitCurrentAnswer().then(() => {
+        setTimeout(() => {
+          this.goToNextQuestion();
+        }, 500);
+      }).catch((error) => {
+        console.error("提交答案失败:", error);
+        setTimeout(() => {
+          this.goToNextQuestion();
+        }, 1e3);
+      });
     }
   },
   // 添加生命周期钩子,确保在组件销毁时清除计时器
@@ -909,8 +1031,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
       }, question.questionType === 3 && question.imageUrl ? {
         f: question.imageUrl
       } : {}, {
-        g: question.questionType !== 0
-      }, question.questionType !== 0 ? {
+        g: question.questionType !== 0 && question.questionType !== 6
+      }, question.questionType !== 0 && question.questionType !== 6 ? {
         h: common_vendor.f(question.options, (option, index, i1) => {
           return {
             a: common_vendor.t(option.option_text || (typeof option === "string" ? option : JSON.stringify(option))),
@@ -921,14 +1043,32 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
         }),
         i: qIndex !== $data.currentQuestionIndex ? 1 : ""
       } : {}, {
-        j: qIndex === $data.currentQuestionIndex && question.questionType === 2
+        j: question.questionType === 6
+      }, question.questionType === 6 ? common_vendor.e({
+        k: question.blanks && question.blanks.length > 0
+      }, question.blanks && question.blanks.length > 0 ? {
+        l: common_vendor.f(question.blanks, (blank, blankIndex, i1) => {
+          return {
+            a: common_vendor.t(blankIndex + 1),
+            b: $options.getBlankValue(question.id, blankIndex + 1),
+            c: common_vendor.o(($event) => $options.handleBlankInput(question.id, blankIndex + 1, $event), blankIndex),
+            d: blankIndex
+          };
+        }),
+        m: qIndex !== $data.currentQuestionIndex
+      } : {}, {
+        n: qIndex === $data.currentQuestionIndex && $options.hasBlankAnswers(question)
+      }, qIndex === $data.currentQuestionIndex && $options.hasBlankAnswers(question) ? {
+        o: common_vendor.o(($event) => $options.submitBlankQuestion(qIndex), question.id)
+      } : {}) : {}, {
+        p: qIndex === $data.currentQuestionIndex && question.questionType === 2
       }, qIndex === $data.currentQuestionIndex && question.questionType === 2 ? {
-        k: common_vendor.t("下一题"),
-        l: common_vendor.o(($event) => $options.nextQuestion(), question.id),
-        m: $data.selectedOptions.length === 0
+        q: common_vendor.t("下一题"),
+        r: common_vendor.o(($event) => $options.nextQuestion(), question.id),
+        s: $data.selectedOptions.length === 0
       } : {}, {
-        n: question.id,
-        o: "question-" + qIndex
+        t: question.id,
+        v: "question-" + qIndex
       });
     }),
     i: common_vendor.t($data.questions.length),

Plik diff jest za duży
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/camera/camera.wxml


+ 48 - 0
unpackage/dist/dev/mp-weixin/pages/camera/camera.wxss

@@ -665,3 +665,51 @@
 	  margin-top: 44px;
 	  padding-top: var(--status-bar-height);
 }
+	
+	/* 填空题样式 */
+.blank-question-container {
+		margin: 20rpx 0;
+}
+.blank-question-text {
+		line-height: 1.8;
+		font-size: 28rpx;
+		color: #333;
+		padding: 20rpx;
+		background-color: #f9f9f9;
+		border-radius: 10rpx;
+		margin-bottom: 20rpx;
+}
+.blank-inputs {
+		display: flex;
+		flex-direction: column;
+		gap: 15rpx;
+}
+.blank-input-item {
+		display: flex;
+		align-items: center;
+		padding: 10rpx 20rpx;
+		background-color: #fff;
+		border-radius: 8rpx;
+		border: 1px solid #e0e0e0;
+}
+.blank-label {
+		font-size: 26rpx;
+		color: #666;
+		margin-right: 20rpx;
+		min-width: 120rpx;
+}
+	
+	/* 填空输入框样式 */
+.blank-input {
+		flex: 1;
+		height: 60rpx;
+		border: 1px solid #ccc;
+		border-radius: 6rpx;
+		padding: 0 15rpx;
+		font-size: 26rpx;
+		background-color: #fff;
+}
+.blank-input:disabled {
+		background-color: #f5f5f5;
+		color: #999;
+}

+ 15 - 11
unpackage/dist/dev/mp-weixin/pages/job-detail/job-detail.js

@@ -12,6 +12,7 @@ const _sfc_main = {
         location: "",
         experience: "",
         benefits: [],
+        detailed_address: "",
         description: [
           {
             subtitle: "岗位要求",
@@ -43,7 +44,8 @@ const _sfc_main = {
           location: jobData.location || this.jobDetail.location,
           experience: jobData.experience || this.jobDetail.experience,
           benefits: jobData.benefits || this.jobDetail.benefits,
-          description: jobData.description || this.jobDetail.description
+          description: jobData.description || this.jobDetail.description,
+          detailed_address: jobData.detailed_address || this.jobDetail.detailed_address
         };
       }
     } catch (e) {
@@ -81,6 +83,7 @@ const _sfc_main = {
             location: data.data.location || "",
             experience: data.data.work_experience_required || "不限",
             benefits: data.data.competency_tags || ["五险一金", "带薪年假", "定期体检"],
+            detailed_address: data.data.detailed_address || "",
             description: [
               {
                 subtitle: "岗位要求",
@@ -88,7 +91,7 @@ const _sfc_main = {
               }
             ]
           };
-          this.updateMapLocation(data.data.location);
+          this.updateMapLocation(data.data.location, data.data.detailed_address);
         } else {
           common_vendor.index.showToast({
             title: "获取职位详情失败",
@@ -194,14 +197,14 @@ const _sfc_main = {
       if (typeof location === "string" && location.startsWith("[")) {
         try {
           const locationArray = JSON.parse(location.replace(/'/g, '"'));
-          return locationArray.join(" ");
+          return locationArray.join(" ") + "" + this.jobDetail.detailed_address || JSON.parse(common_vendor.index.getStorageSync("currentJobDetail")).detailed_address;
         } catch (e) {
           console.error("解析location失败:", e);
           return location;
         }
       }
       if (Array.isArray(location)) {
-        return location.join(" ");
+        return location.join(" ") + "" + this.jobDetail.detailed_address || JSON.parse(common_vendor.index.getStorageSync("currentJobDetail")).detailed_address;
       }
       if (typeof location === "object" && location !== null) {
         const { province, city, district } = location;
@@ -209,27 +212,28 @@ const _sfc_main = {
           return province + " " + city + (district ? " " + district : "");
         }
       }
-      return location;
+      return location + "" + this.jobDetail.detailed_address || JSON.parse(common_vendor.index.getStorageSync("currentJobDetail")).detailed_address;
     },
     // 更新地图位置信息
-    async updateMapLocation(location) {
+    async updateMapLocation(location, address) {
       try {
         let addressStr = "";
         if (typeof location === "string" && location.startsWith("[")) {
           try {
             const locationArray = JSON.parse(location.replace(/'/g, '"'));
-            addressStr = locationArray.join("");
+            addressStr = locationArray.join("") + address;
           } catch (e) {
-            addressStr = location;
+            addressStr = location + address;
           }
         } else if (Array.isArray(location)) {
-          addressStr = location.join("");
+          addressStr = location.join("") + address;
         } else if (typeof location === "object" && location !== null) {
           const { province, city, district } = location;
-          addressStr = `${province || ""}${city || ""}${district || ""}`;
+          addressStr = `${province || ""}${city || ""}${district || ""}${address}`;
         } else {
-          addressStr = location;
+          addressStr = location + address;
         }
+        console.log(addressStr, address);
         common_vendor.index.request({
           url: `https://apis.map.qq.com/ws/geocoder/v1/?address=${encodeURIComponent(addressStr)}&key=ZS4BZ-NKAA7-4VLXR-PHVI4-HAGPH-Z4FJ3`,
           // 需要替换为实际的地图Key

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików