소스 검색

修复bug

wkw 6 달 전
부모
커밋
f9b23794ce

+ 22 - 6
components/btnPopous/btnPopous.vue

@@ -12,7 +12,7 @@
 						<u-input @confirm="searchResult" v-model="projectName" placeholder="搜索职位" type="text"
 							input-align="left" confirm-type="search" :custom-style="{ marginLeft: '20rpx' }" />
 					</view>
-					<view class="searchBox nobg flex">
+					<view class="searchBox nobg flex" v-if="!userId">
 						<u-tag @click="changeClassify('')" class="tag" text="全部"
 							:type="projectName != '' ? 'info' : 'primary'" mode="light" size="mini" />
 						<u-tag @click="changeClassify(item.ruleClassifyName)" class="tag" :text="item.ruleClassifyName"
@@ -110,28 +110,33 @@ export default {
 	props: {
 		//公司id
 		companyId: {
-			type: String,
+			type: [String, Number],
 			default: ''
 		},
 		//城市数组
 		cittArr: {
 			type: Array,
-			default: []
+			default: () => []
 		},
 		//薪资数组
 		moneyArr: {
 			type: Array,
-			default: []
+			default: () => []
 		},
 		//经验数组
 		jyArr: {
 			type: Array,
-			default: []
+			default: () => []
 		},
 		//岗位分类
 		classify: {
 			type: Array,
-			default: []
+			default: () => []
+		},
+		// HRId
+		userId:{
+			type: [String, Number],
+			default: ''
 		}
 	},
 	data() {
@@ -287,6 +292,12 @@ export default {
 				salaryRange: this.salaryRange, //薪资
 				experience: this.experience, //经验
 			}
+			if(this.userId){
+				data = {
+					...data,
+					userId:this.userId
+				}
+			}
 			this.$Request.getT("/app/postPush/userGetPostPushList", data).then(res => {
 				if (res.code == 0) {
 					this.pages = res.data.pages
@@ -565,11 +576,16 @@ export default {
 	}
 
 	.nobg {
+		width: initial;
+		overflow-x: auto;
 		background: none;
 		border-radius: 0;
 		gap: 20rpx;
 		margin-left: 10rpx;
 	}
+	.tag{
+		flex-shrink: 0;
+	}
 
 }
 </style>

+ 7 - 0
my/order/pay.vue

@@ -270,6 +270,13 @@
 					重新发布
 				</view>
 			</view>
+			<view class="btn flex justify-center" v-if="info.status == 3">
+				<view class="btn-box bgBox flex justify-center align-center"
+					@click="deletePosition(info.postPushId)"
+					style="background-color: #ffffff;border: 1px solid #016bf6;color: #016bf6;">
+					删除
+				</view>
+			</view>
 			<view class="btn flex justify-center" v-if="info.status == 1 || info.status == 6">
 				<view class="btn-box bgBox flex justify-center align-center"
 					@click="updataServeType(info.postPushId, 'update')"

+ 24 - 14
pages/index/game/order.vue

@@ -1,5 +1,5 @@
 <template>
-	<view style="padding: 148rpx 40rpx 40rpx 40rpx;">
+	<view style="padding: 148rpx 0 40rpx;">
 		<!-- 固定顶部导航 -->
 		<view class="fixed-nav" :style="{ paddingTop: (12 + statusBarHeight) + 'px' }">
 			<view class="nav-bar">
@@ -25,7 +25,7 @@
 		</view>
 		
 		<!-- 岗位要求 -->
-		<view class="job flex justify-center">
+		<view class="job flex justify-center" style="padding: 0 40rpx;">
 			<view class="job-info flex justify-center">
 				<view class="job-info-c">
 					<view class="job-info-c-top flex align-center justify-between">
@@ -78,7 +78,7 @@
 		</view>
 
 		<!-- 企业信息 -->
-		<view class="enterprise-box-c-info flex align-start justify-between">
+		<view class="enterprise-box-c-info flex align-start justify-between" style="margin: 0 40rpx;">
 			<view class="enterprise-left flex align-center">
 				<view class="avatar-container">
 					<image :src="info.hr && info.hr.hrImg ? info.hr.hrImg : info.user ? info.user.avatar : '../../static/logo.png'"
@@ -104,7 +104,7 @@
 		</view>
 
 		<!-- 岗位介绍 -->
-		<view class="jobRemarks flex justify-center">
+		<view class="jobRemarks flex justify-center" style="padding: 0 40rpx;">
 			<!-- <skeleton type="round" bgColor="#ffffff"> -->
 			<view class="jobRemarks-box flex justify-center">
 				<view class="jobRemarks-box-c">
@@ -161,7 +161,7 @@
 		</view>
 		
 		<!-- 企业简介 -->
-		<view class="enterprise" v-if="info.company">
+		<view class="enterprise" v-if="info.company" style="padding: 0 40rpx;">
 			<!-- 公司介绍卡片 -->
 			<view class="company-intro-card" @click="goInfo(info.company.companyId)">
 				<view class="company-avatar">
@@ -241,7 +241,9 @@
 			</view> 
 		</cover-view>
 
-
+		<!-- 全部岗位弹窗 -->
+		<btnPopous ref="jobPopup" v-if="showJobPopup && info.company.companyId" :companyId="info.company.companyId" :userId="info.hr.userId" @closePopup="closeJobPopup" />
+			
 		<u-popup v-model="shows" z-index="99999" mode="bottom" border-radius="14" height="300rpx">
 			<view class="shar flex justify-center">
 				<view class="shar-box flex justify-around">
@@ -282,6 +284,7 @@
 </template>
 
 <script>
+	import btnPopous from '../../../components/btnPopous/btnPopous.vue'
 	import config from '../../../common/config.js'
 	import attachment from '../../../components/attachment.vue'
 	export default {
@@ -304,10 +307,12 @@
 			}
 		},
 		components: {
-			attachment
+			attachment,
+			btnPopous
 		},
 		data() {
 			return {
+				showJobPopup: false, // 控制职位弹窗显示
 				statusBarHeight: 0, // 状态栏高度
 				loading: true,
 				shows: false,
@@ -382,6 +387,18 @@
 			this.getInfo()
 		},
 		methods: {
+			goToMoreJobs() {
+				this.showJobPopup = true;
+				this.$nextTick(() => {
+					if (this.$refs.jobPopup) {
+						this.$refs.jobPopup.topY = true;
+					}
+				});
+			},
+			// 关闭职位弹窗
+			closeJobPopup() {
+				this.showJobPopup = false;
+			},
 			// 返回上一页
 			goBack() {
 				uni.navigateBack();
@@ -634,12 +651,6 @@
 					url: '/my/enterpriseInfo/enterpriseInfo?companyId=' + companyId
 				})
 			},
-			//跳转更多职位
-			goToMoreJobs() {
-				uni.navigateTo({
-					url: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.info.company.companyId
-				})
-			},
 			selectAttachment(item){
 				//console.log(item)
 				this.attachmentShow=false
@@ -954,7 +965,6 @@
 	}
 
 	.enterprise-box-c-info {
-				width: 100%;
 				height: auto;
 				padding: 16px;
 				border: 0.5px solid rgba(227, 231, 236, 1);

+ 22 - 6
pages/index/index.vue

@@ -970,22 +970,38 @@ export default {
 		},
 		parseSkills(str) {
 			if (!str) return [];
+		
 			try {
+				// ✅ 如果是多个 JSON 数组拼接:比如 ["A"],["B"]
+				if (str.includes('],[')) {
+					const wrapped = `[${str}]`; // 变成 [["A"],["B"]]
+					const parsed = JSON.parse(wrapped);
+					return [...new Set(parsed.flat())]; // 扁平化 + 去重
+				}
+		
+				// ✅ 正常的单个 JSON 数组字符串
 				const parsed = JSON.parse(str);
 				if (Array.isArray(parsed)) {
-					return parsed;
+					return [...new Set(parsed)];
 				}
 			} catch (e) {
-			
+				// 非 JSON 格式的情况继续往下处理
 			}
+		
+			// ✅ 替换中文逗号
 			str = str.replace(/,/g, ',');
-			// 判断分隔符
+		
+			// ✅ 支持多种分隔符
+			let arr = [];
 			if (str.includes('/')) {
-				return str.split('/').filter(Boolean);
+				arr = str.split('/');
 			} else if (str.includes(',')) {
-				return str.split(',').filter(Boolean);
+				arr = str.split(',');
+			} else {
+				arr = [str];
 			}
-			return [str];
+		
+			return [...new Set(arr.map(s => s.trim()).filter(Boolean))];
 		},
 		selectJob(job, index) {
 			this.currentJobSx = index

+ 34 - 8
pages/msg/im.vue

@@ -149,9 +149,9 @@
 									{{postPushInfo.company.workRestTime}}
 								</text>
 								<!-- 岗位福利 -->
-								<text
+								<text v-for="(item, index) in postPushInfo.welfareTag ? postPushInfo.welfareTag.split(';') : []" :key="index"
 									style="color: #666666;font-size: 26rpx;padding: 10rpx;background: rgba(198, 198, 198, 0.1);border-radius: 8rpx;margin-right: 10rpx;margin-bottom: 20rpx;">
-									{{postPushInfo.welfareTag}}
+									{{item}}
 								</text>
 								<text
 									style="color: #666666;font-size: 26rpx;padding: 10rpx;background: rgba(198, 198, 198, 0.1);border-radius: 8rpx;margin-right: 10rpx;margin-bottom: 20rpx;"
@@ -160,7 +160,13 @@
 							<!-- <view class="gwList-box-item-box-line"></view> -->
 							<!-- 工作描述 -->
 							<view class="gwList-box-item-box-info-text">
-								<view :class="['job-description-item',!isJobDescExpanded?'job-description-itemAll':'']">{{postPushInfo.positionDetails}}</view>
+								<block v-if="isHtmlContent">
+									<view :class="['job-description-item',!isJobDescExpanded?'job-description-itemAll':'']" v-html="postPushInfo.positionDetails"></view>
+								</block>
+								<block v-else>
+									<view :class="['job-description-item',!isJobDescExpanded?'job-description-itemAll':'']">{{postPushInfo.positionDetails}}</view>
+								</block>
+								
 								<!-- 展开/收起按钮 -->
 								<view class="expand-btn" @click.stop="toggleJobDesc">
 									<text class="expand-text">{{ isJobDescExpanded ? '收起' : '展开更多' }}</text>
@@ -200,7 +206,7 @@
 			</view>
 			<!-- 简历简介 -->
 			<view class="jobs flex justify-center" v-if="JSON.stringify(resumesInfo)!='{}'" 
-			@click="goNav('/pages/talentSearch/resumeDetail?resumesId=' + resumesId + '&postPushId=' + postPushId, 'company')">
+			@click="goNav('/pages/talentSearch/resumeDetail?resumesId=' + resumesId + '&postPushId=' + postPushId + '&isShowBtn=' + 1, 'company')">
 				<view class="talent-list">
 					<view class="talent-card">
 						<view class="talent-content">
@@ -404,6 +410,8 @@
 							style="margin-left: 20rpx;color: #000000;background-color: #ffffff;">
 							{{item.content}}已拒绝
 						</view>
+						<view class="chat-listitem-text bg-style" style="margin-left: 20rpx;"
+						v-if="item.content && (item.messageType === 96 || item.messageType === 97)">{{item.content}}</view>
 						<view v-if="item.content && item.messageType === 99"
 							class="chat-listitem-text"
 							style="padding-bottom: 20rpx;;padding-top: 20rpx;margin-left: 20rpx;color: #000000;background-color: #ffffff;border: 1rpx solid #c6fee7;background: linear-gradient(to bottom, #D9FEED, #ffffff);">
@@ -523,6 +531,8 @@
 							style="margin-right: 20rpx;">
 							{{item.content}}已拒绝
 						</view>
+						<view class="chat-listitem-text bg-style" style="margin-right: 20rpx;"
+						v-if="item.content && (item.messageType === 96 || item.messageType === 97)">{{item.content}}</view>
 						<view v-if="item.content && item.messageType === 99"
 							class="chat-listitem-text textColor"
 							style="padding-bottom: 20rpx;;padding-top: 20rpx;margin-right: 20rpx;color: #000000;background-color: #ffffff;border: 1rpx solid #c6fee7;background: linear-gradient(to bottom, #D9FEED, #ffffff);">
@@ -1111,6 +1121,12 @@
 			clearInterval(this.socketTimer)
 			this.socketTimer = null
 		},
+		computed: {
+		    isHtmlContent() {
+		      const str = this.postPushInfo?.positionDetails || '';
+		      return /<[^>]+>/.test(str);
+		    }
+		},
 		onLoad(d) {
 			console.log(d, 'zzzzzzzzz')
 			if (d.postPushId) {
@@ -1503,7 +1519,8 @@
 										// title: '已接受来自' + item.company.companyName + '的面试邀请'
 										title: '已接受面试邀请'
 									})
-									that.msshow = false
+									that.msshow = false;
+									that.setChatSave(97)
 								} else {
 									uni.showToast({
 										title: res.msg,
@@ -1545,7 +1562,8 @@
 									uni.showToast({
 										title: '已拒绝来自' + item.company.companyName + '的面试邀请'
 									})
-									that.msshow = false
+									that.msshow = false;
+									that.setChatSave(96)
 								} else {
 									uni.showToast({
 										title: res.msg,
@@ -2683,7 +2701,12 @@
 				// 	});
 				// 	return;
 				// }
-
+				if(type == 96){
+					this.content = '已拒绝面试邀请'
+				}
+				if(type == 97){
+					this.content = '已接受面试邀请'
+				}
 				let userId = this.$queue.getData('userId');
 				if (type === 4) {
 					this.content = url;
@@ -3185,7 +3208,7 @@
 			letter-spacing: 0px;
 			text-align: left;
 			margin-bottom: 20rpx;
-			
+			white-space: pre-wrap;
 			.job-description-item {
 				margin-bottom: 6rpx;
 				line-height: 1.2;
@@ -3518,4 +3541,7 @@
 			}
 		}
 	}
+	.bg-style{
+		padding-bottom: 20rpx;;padding-top: 20rpx;margin-right: 20rpx;color: #000000;background-color: #ffffff;border: 1rpx solid #c6fee7;background: linear-gradient(to bottom, #D9FEED, #ffffff);
+	}
 </style>

+ 1 - 0
pages/msg/index.vue

@@ -99,6 +99,7 @@
 							<view class="text-grey" v-else-if="item.messageType == 21">[语音通话]</view>
 							<view class="text-grey" v-else-if="item.messageType == 99">[面试邀约]</view>
 							<view class="text-grey" v-else-if="item.messageType == 98">[{{item.content}}]</view>
+							<view class="text-grey" v-else-if="item.messageType == 96 || item.messageType == 97">[{{item.content}}]</view>
 							<view class="text-grey" v-else>[其他消息类型]</view>
 							<view v-if="item.contentCount"
 								style="height: 32rpx;width: 32rpx;border-radius: 100rpx;background-color: red;color: #FFF;text-align: center;">

+ 11 - 2
pages/msg/interviewInvitation.vue

@@ -296,7 +296,9 @@
 							...res.data,
 							index: 0 // 添加下标
 						}];
-						this.companyId = res.data.companyId
+						this.companyId = res.data.companyId;
+						this.selectedJob = res.data;
+						this.popRadioValue = res.data.ruleClassifyId;
 						if(this.recordId!=''){
 							this.getData()
 						}
@@ -321,7 +323,14 @@
 				this.$Request.get('/app/interviewRecord/selectHrPhone', {}).then(res => {
 					if (res.code == 0) {
 						uni.hideLoading()
-						this.personList=res.data
+						this.personList=res.data;
+						if(res.data.length > 0){
+							this.personText = res.data[0].hrName;
+							this.hrPhone = res.data[0].hrPhone
+						}else{
+							this.personText = this.$queue.getData("userName");
+							this.hrPhone = this.$queue.getData("phone");
+						}
 						console.log(res.data)
 					} else {
 						uni.hideLoading()

+ 5 - 2
pages/my/educationExperience.vue

@@ -6,7 +6,10 @@
 				<view class="nav-left" @click="goBack">
 					<u-icon name="arrow-leftward" color="#333" size="42"></u-icon>
 				</view>
-				<view class="nav-title">教育经历</view>
+				<view class="nav-title">
+					<view>教育经历</view>
+					<view style="font-size: 20rpx;color:#666;font-weight: 400;">(请填写最高学历)</view>
+				</view>
 				<view class="nav-right"></view>
 			</view>
 		</view>
@@ -283,7 +286,7 @@ export default {
 			font-family: DM Sans;
 			font-size: 36rpx;
 			font-weight: 700;
-			line-height: 26px;
+			// line-height: 26px;
 			letter-spacing: 0px;
 			text-align: center;
 		}

+ 33 - 11
pages/my/onlineResume.vue

@@ -55,17 +55,34 @@
 
 				<!-- 个人优势 -->
 				<view class="section-item">
-					<view class="section-header">
-						<view class="section-title">个人优势</view>
-						<view class="edit-icon">
-							<image src="../../static/images/index/Combined-Shape.svg"
-								style="width: 48rpx;height: 48rpx;" mode=""></image>
-						</view>
-					</view>
-					<view class="advantage-content">
-						<textarea @blur="setResume" auto-height placeholder="请输入个人优势"
-							v-model="detail.resumeList && detail.resumeList.adv"></textarea>
-					</view>
+				    <view class="section-header">
+				      <view class="section-title">个人优势</view>
+				
+				      <!-- 右侧编辑按钮 -->
+				      <view @click="toggleEdit">
+				        <template v-if="isEditing">
+				          <text class="save-btn">保存</text>
+				        </template>
+				        <template v-else>
+				          <image class="edit-icon"
+				            src="../../static/images/index/Combined-Shape.svg"
+				            style="width: 48rpx; height: 48rpx;"
+				            mode=""
+				          />
+				        </template>
+				      </view>
+				    </view>
+				
+				    <view class="advantage-content">
+				      <textarea
+				        ref="advInput"
+				        :disabled="!isEditing"
+				        auto-height
+				        placeholder="请输入个人优势"
+				        v-model="detail.resumeList && detail.resumeList.adv"
+				        @blur="setResume"
+				      ></textarea>
+				    </view>
 				</view>
 
 				<!-- 全职期望卡片 -->
@@ -223,6 +240,7 @@ export default {
 	},
 	data() {
 		return {
+			isEditing: false,
 			hasEcommerceExperience: false,
 			detail: {},
 			statusList: [{
@@ -273,6 +291,9 @@ export default {
 		uni.$off('skillsUpdated')
 	},
 	methods: {
+		toggleEdit(){
+			this.isEditing = !this.isEditing;
+		},
 		// 是否屏蔽该公司
 		changeIsDisplay(item){
 			let data = {
@@ -1171,6 +1192,7 @@ export default {
 						line-height: 16px;
 						letter-spacing: 0%;
 						text-align: left;
+						white-space: pre-wrap;
 					}
 				}
 			}

+ 2 - 1
pages/recruitmentData/communicationRecords.vue

@@ -229,7 +229,7 @@
 											</view>
 										</view>
 									</view>
-									<view class="qyList-box-item-job flex align-center">
+									<view class="qyList-box-item-job flex align-center" v-if="item.resumesListDto[0]">
 										<u-icon name="heart-fill" color="#016BF6" size="30" style="margin-right: 16rpx">
 										</u-icon>
 										期望岗位:{{ item.resumesListDto[0].expectedPosition }}
@@ -962,6 +962,7 @@
 	}
 
 	.record-left {
+		width: 25%;
 		display: flex;
 		flex-direction: column;
 		min-width: 80rpx;

+ 30 - 26
pages/recruitmentData/interviewManage.vue

@@ -39,19 +39,21 @@
         <view v-if="pendingFeedback.length > 0" class="interview-list">
           <!-- 待反馈面试列表 -->
           <view class="interview-item" v-for="interview in pendingFeedback" :key="interview.id" @click="goToInterviewDetail(interview)">
-            <view class="interview-avatar">
-              <image :src="interview.resumesListDto[0].userAvatar" class="avatar-image" mode="aspectFill"></image>
-            </view>
-            <view class="interview-content">
-              <view class="interview-title">与{{ interview.resumesListDto[0].userName }}的面试</view>
-              <view class="position-info">面试职位: {{ interview.postPush.ruleClassifyName }} | {{ interview.resumesListDto[0].minSalary }}-{{ interview.resumesListDto[0].maxSalary }}</view>
-              <view class="interview-time">面试时间: {{ interview.interviewDateTime }}</view>
-            </view>
-            <view class="interview-result">
-              <text class="result-text failed" >
-                待反馈
-              </text>
-            </view>
+            <block  v-if="interview.resumesListDto.length > 0">
+				<view class="interview-avatar">
+				  <image :src="interview.resumesListDto[0].userAvatar" class="avatar-image" mode="aspectFill"></image>
+				</view>
+				<view class="interview-content">
+				  <view class="interview-title">与{{ interview.resumesListDto[0].userName }}的面试</view>
+				  <view class="position-info">面试职位: {{ interview.postPush.ruleClassifyName }} | {{ interview.resumesListDto[0].minSalary }}-{{ interview.resumesListDto[0].maxSalary }}</view>
+				  <view class="interview-time">面试时间: {{ interview.interviewDateTime }}</view>
+				</view>
+				<view class="interview-result">
+				  <text class="result-text failed" >
+				    待反馈
+				  </text>
+				</view>
+			</block>
           </view>
         </view>
         <view class="empty-state" v-else>
@@ -66,19 +68,21 @@
         <view v-if="feedbackReceived.length > 0" class="interview-list">
           <!-- 已反馈面试列表 -->
           <view class="interview-item" v-for="interview in feedbackReceived" :key="interview.id" @click="goToInterviewDetail(interview)">
-            <view class="interview-avatar">
-              <image :src="interview.resumesListDto[0].userAvatar" class="avatar-image" mode="aspectFill"></image>
-            </view>
-            <view class="interview-content">
-              <view class="interview-title">与{{ interview.resumesListDto[0].userName }}的面试</view>
-              <view class="position-info">面试职位: {{ interview.postPush.ruleClassifyName }} | {{ interview.resumesListDto[0].minSalary }}-{{ interview.resumesListDto[0].maxSalary }}</view>
-              <view class="interview-time">面试时间: {{ interview.interviewDateTime }}</view>
-            </view>
-            <view class="interview-result">
-              <text class="result-text" :class="interview.interviewResultType === 0 ? 'passed' : interview.interviewResultType === 1?'failed' : ''">
-                {{ interview.interviewResultType === 0 ? '已通过' : interview.interviewResultType === 1?'未通过':'待定' }}
-              </text>
-            </view>
+            <block v-if="interview.resumesListDto.length > 0">
+				<view class="interview-avatar">
+				  <image :src="interview.resumesListDto[0].userAvatar" class="avatar-image" mode="aspectFill"></image>
+				</view>
+				<view class="interview-content">
+				  <view class="interview-title">与{{ interview.resumesListDto[0].userName }}的面试</view>
+				  <view class="position-info">面试职位: {{ interview.postPush.ruleClassifyName }} | {{ interview.resumesListDto[0].minSalary }}-{{ interview.resumesListDto[0].maxSalary }}</view>
+				  <view class="interview-time">面试时间: {{ interview.interviewDateTime }}</view>
+				</view>
+				<view class="interview-result">
+				  <text class="result-text" :class="interview.interviewResultType === 0 ? 'passed' : interview.interviewResultType === 1?'failed' : ''">
+				    {{ interview.interviewResultType === 0 ? '已通过' : interview.interviewResultType === 1?'未通过':'待定' }}
+				  </text>
+				</view>
+			</block>
           </view>
         </view>
         <view class="empty-state" v-else>

+ 22 - 6
pages/talentSearch/index.vue

@@ -287,22 +287,38 @@
 		methods: {
 			parseSkills(str) {
 				if (!str) return [];
+			
 				try {
+					// ✅ 如果是多个 JSON 数组拼接:比如 ["A"],["B"]
+					if (str.includes('],[')) {
+						const wrapped = `[${str}]`; // 变成 [["A"],["B"]]
+						const parsed = JSON.parse(wrapped);
+						return [...new Set(parsed.flat())]; // 扁平化 + 去重
+					}
+			
+					// ✅ 正常的单个 JSON 数组字符串
 					const parsed = JSON.parse(str);
 					if (Array.isArray(parsed)) {
-						return parsed;
+						return [...new Set(parsed)];
 					}
 				} catch (e) {
-
+					// 非 JSON 格式的情况继续往下处理
 				}
+			
+				// ✅ 替换中文逗号
 				str = str.replace(/,/g, ',');
-				// 判断分隔符
+			
+				// ✅ 支持多种分隔符
+				let arr = [];
 				if (str.includes('/')) {
-					return str.split('/').filter(Boolean);
+					arr = str.split('/');
 				} else if (str.includes(',')) {
-					return str.split(',').filter(Boolean);
+					arr = str.split(',');
+				} else {
+					arr = [str];
 				}
-				return [str];
+			
+				return [...new Set(arr.map(s => s.trim()).filter(Boolean))];
 			},
 			// 返回上一页
 			goBack() {

+ 5 - 36
pages/talentSearch/resumeDetail.vue

@@ -212,7 +212,7 @@
 		</view>
 
 		<!-- 底部操作按钮 -->
-		<view v-if="postPushId != ''" class="bottom-actions">
+		<view v-if="postPushId != '' && isShowBtn == 0" class="bottom-actions">
 			<view class="action-btn contact-btn" @click="contactCandidate">
 				<text>立即联系</text>
 			</view>
@@ -235,38 +235,7 @@ export default {
 			workExpList: [],
 			workExpTimes: "",
 			resumesStatus: ['离职&随时到岗', '在职&月内到岗', '在职&考虑机会', '在职&暂不考虑'],
-			defaultExpectations: [{
-				title: '亚马逊运营总监',
-				salary: '30-40K',
-				type: '不限',
-				location: '深圳'
-			},
-			{
-				title: 'TikTok运营总监',
-				salary: '30-40K',
-				type: '精品铺货',
-				location: '深圳'
-			}
-			],
-			defaultWorkExperience: [{
-				position: '资深亚马逊运营',
-				department: '运营部',
-				company: '深圳市世迪贸易科技有限公司',
-				period: '2019.02-至今',
-				description: '负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;做好数据的统计分析工作,收集、分析市场信息,竞争对手状况,并根据产品销售与排名变化,及时制定和调整产品的销售...',
-				skills: ['精品铺货', '独立站', '3C数码', '品类运营']
-			}],
-			defaultEducation: [{
-				school: '武汉工程大学',
-				degree: '硕士',
-				major: '高分子化学与物理',
-				period: '2014-2017',
-				description: '这是简历填写的内容这是简历填写的内容内容这是简历填写的内是简历填写的内容这是简历填写的内容...'
-			}],
-			defaultSkills: ['Design & Creative', 'Wireframing UX', 'Figma', 'UI Design', 'Prototype', 'Adobe XD',
-				'UX Design', 'Front End'
-			],
-			defaultCertificates: ['大学英语六级', '计算机职业资格', '初级会计师', '中级会计师', '高级会计师', '注册会计师']
+			isShowBtn:0
 		}
 	},
 	onLoad(option) {
@@ -296,9 +265,9 @@ export default {
 			this.byuserId = option.userId
 			this.getDetail()
 		}
-		
-
-
+		if(option.isShowBtn){
+			this.isShowBtn = option.isShowBtn
+		}
 	},
 	methods: {
 		/**