Browse Source

添加日周数据功能

wkw 6 months ago
parent
commit
62736d8a75

+ 1 - 1
comment/httpUrl.js

@@ -1,6 +1,6 @@
 const ROOTPATH = process.env.NODE_ENV !== 'development'?"https://www.bosszan.com/sqx_fast":"/sqx_fast";
 const ROOTPATH1 = "wss://www.bosszan.com/wss/websocket/"; //联系客服
-const ROOTPATH2 = "wss://www.bosszan.com/wss/chatSocket/"; //聊天
+const ROOTPATH2 = process.env.NODE_ENV !== 'development' ? "wss://www.bosszan.com/wss/chatSocket/":"ws://192.168.0.10:7155/sqx_fast/chatSocket/"; //聊天
 const ROOTPATH3 = "https://yi-zhipin.oss-cn-hangzhou.aliyuncs.com/emoji/"; //表情
 const ROOTPATH4 = process.env.NODE_ENV !== 'development'?"https://www.bosszan.com/sqx_fast":"/sqx_fast";
 export {

+ 6 - 3
comment/socket.js

@@ -15,8 +15,12 @@ export function connectSocket(userId, store, router) {
             WSS.close()
         } catch { }
     }
-
-    const wsUrl = `${ROOTPATH2}${userId}`
+    let tabId = sessionStorage.getItem('tabId');
+    if (!tabId) {
+        tabId = Date.now() + '_' + Math.random().toString(36).slice(2);
+        sessionStorage.setItem('tabId', tabId);
+    }
+    const wsUrl = `${ROOTPATH2}${userId}?tabId=${tabId}`
     WSS = new WebSocket(wsUrl)
     console.log('🔗 WebSocket 连接中:', wsUrl)
     console.log(WSS)
@@ -33,7 +37,6 @@ export function connectSocket(userId, store, router) {
             console.warn('非 JSON 消息:', event.data)
             return
         }
-
         if (msg.type === 'kickOut') {
             ElMessage({
                 message: msg.content || '您的账号已在其他设备登录',

+ 260 - 22
src/views/enterprise/enterprise.vue

@@ -210,9 +210,7 @@
 										</el-form-item>
 									</el-form>
 								</div>
-
 							</div>
-
 						</div>
 						<div class="info-box-l-lines"></div>
 						<!-- 求职岗位 -->
@@ -238,8 +236,6 @@
 									<div>已拒绝</div>
 								</div>
 							</div>
-
-
 						</div>
 					</div>
 					<div class="info-box-r flex justify-center flex-wrap">
@@ -247,16 +243,8 @@
 							<div class="info-box-r-t-title">
 								常用功能
 							</div>
-							<div style="margin-top: 20px;" class="flex align-center">
-								<!-- <div @click="openShar()" class="info-box-r-b-item">
-									<div class="info-box-r-b-item-t flex align-center justify-center">
-										<img src="/images/resume/yq.png" alt="" srcset="">
-									</div>
-									<div class="info-box-r-b-item-b">
-										邀请好友
-									</div>
-								</div>
-								<div @click="refreshJob()" class="info-box-r-b-item">
+							<div style="margin-top: 30px;display: grid;grid-template-columns: repeat(4, 1fr);gap: 20px;">
+								<!-- <div @click="refreshJob()" class="info-box-r-b-item">
 									<div class="info-box-r-b-item-t flex align-center justify-center">
 										<img src="/images/resume/sx.png" alt="" srcset="">
 									</div>
@@ -296,6 +284,22 @@
 										沟通记录
 									</div>
 								</div>
+								<div @click="openStatistics('day')" class="info-box-r-b-item">
+									<div class="info-box-r-b-item-t flex align-center justify-center">
+										<img src="/images/resume/yq.png" alt="" srcset="">
+									</div>
+									<div class="info-box-r-b-item-b">
+										日数据
+									</div>
+								</div>
+								<div @click="openStatistics('week')" class="info-box-r-b-item">
+									<div class="info-box-r-b-item-t flex align-center justify-center">
+										<img src="/images/resume/yq.png" alt="" srcset="">
+									</div>
+									<div class="info-box-r-b-item-b">
+										周数据
+									</div>
+								</div>
 							</div>
 						</div>
 					</div>
@@ -396,6 +400,98 @@
 			</div>
 			<canvas ref="poster" class="poster_canvas" width="375" height="673"></canvas>
 		</el-dialog>
+		<!-- 日 周数据 -->
+		<el-dialog class="shares" v-model="dialogStatistics" destroy-on-close width="35%">
+			<el-icon @click="dialogStatistics = false" style="position: absolute;right: 10px;top: 10px;cursor: pointer;"
+				size="25">
+				<Close />
+			</el-icon>
+			<el-select v-model="selectValue" placeholder="Select" style="width: 240px" @change="changeOptions">
+				<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+			</el-select>
+			&nbsp;&nbsp;
+			<template v-if="activeName == 'week'">
+				<el-select v-model="selectedWeekValue" placeholder="选择周" style="width: 240px" @change="selectWeek">
+					<el-option v-for="week in previous8Weeks" :key="week.start" :label="week.label"
+						:value="week.start" />
+				</el-select>
+			</template>
+			<div style="margin-top: 20px;">
+				<el-tabs v-model="activeName" class="demo-tabs" @tab-change="changeOptions">
+					<el-tab-pane label="日数据" name="day">
+						<div style="display: grid;grid-template-columns: repeat(4, 1fr);gap: 20px;">
+							<div class="table-box" v-for="(item,index) in todayData" :key="index">
+								<div>{{ item.title}}</div>
+								<div class="flex justify-between align-center table-bottom">
+									<div class="data-value">{{ item.number }}</div>
+									<div class="data-unit">较昨日 {{ item.change }}</div>
+								</div>
+							</div>
+						</div>
+					</el-tab-pane>
+					<el-tab-pane label="周数据" name="week">
+						<div style="display: grid;grid-template-columns: repeat(2, 1fr);gap: 20px;">
+							<div class="table-box">
+								<div>查看</div>
+								<div class="flex flex-wrap table-bottom" style="gap: 20px;">
+									<div>
+										<div>我看过</div>
+										<div><span class="data-value">{{ dataStatics.iSaw }}</span> 人</div>
+									</div>
+									<div>
+										<div>看过我</div>
+										<div><span class="data-value">{{ dataStatics.sawMe }}</span> 人</div>
+									</div>
+								</div>
+							</div>
+							<div class="table-box">
+								<div>沟通</div>
+								<div class="flex flex-wrap table-bottom" style="gap: 20px;">
+									<div>
+										<div>我沟通</div>
+										<div><span class="data-value">{{ dataStatics.iCommunicated }}</span> 人</div>
+									</div>
+									<div>
+										<div>求职者</div>
+										<div><span class="data-value">{{ dataStatics.candidateCommunicated }}</span> 人</div>
+									</div>
+								</div>
+							</div>
+							<div class="table-box">
+								<div>获取简历联系方式</div>
+								<div class="flex flex-wrap table-bottom" style="gap: 20px;">
+									<div>
+										<div>合计</div>
+										<div><span class="data-value">{{ dataStatics.receivedResumes + dataStatics.exchangedContact }}</span> 人</div>
+									</div>
+									<div>
+										<div>获取简历</div>
+										<div><span class="data-value">{{ dataStatics.receivedResumes }}</span> 人</div>
+									</div>
+									<div>
+										<div>交换电话/微信</div>
+										<div><span class="data-value">{{ dataStatics.exchangedContact }}</span> 人</div>
+									</div>
+								</div>
+							</div>
+							<div class="table-box">
+								<div>获取面试联系方式</div>
+								<div class="flex flex-wrap table-bottom" style="gap: 20px;">
+									<div>
+										<div>邀约面试</div>
+										<div><span class="data-value">{{ dataStatics.acceptedInterview }}</span> 人</div>
+									</div>
+									<div>
+										<div>接受面试</div>
+										<div><span class="data-value">{{ dataStatics.acceptedInterview }}</span> 人</div>
+									</div>
+								</div>
+							</div>
+						</div>
+					</el-tab-pane>
+				</el-tabs>
+			</div>
+		</el-dialog>
 	</div>
 </template>
 
@@ -408,6 +504,23 @@
 	export default {
 		data() {
 			return {
+				previous8Weeks: [], // 前8周日期范围 [[start, end], ...]
+				selectedWeekValue: '',  // 当前选中的周
+				todayStart: "",
+				todayEnd: "",
+				selectValue:'',
+				activeName:'day',
+				options: [],
+				todayData: [
+					{ title: '我看过', number: 0, change: 0 },
+					{ title: '看过我', number: 0, change: 0 },
+					{ title: '我沟通', number: 0, change: 0 },
+					{ title: '求职者沟通', number: 0, change: 0 },
+					{ title: '收获简历', number: 0, change: 0 },
+					{ title: '交换电话微信', number: 0, change: 0 },
+					{ title: '接受面试', number: 0, change: 0 }
+				],
+				dataStatics: {},
 				companyInfos: {},
 				companyInfo: {
 					companyName: '', //企业名称
@@ -544,6 +657,7 @@
 				dialogShare: false,
 				dialogImageUrl: '', // 预览图片URL
 				dialogVisible: false, // 预览图片是否可见
+				dialogStatistics:false
 			}
 
 		},
@@ -567,6 +681,13 @@
 			this.getCompanyInfo()
 			this.getComList()
 			this.getlist()
+			this.previous8Weeks = this.getPrevious8Weeks(new Date());
+			console.log(this.previous8Weeks)
+			// 默认选中上一周
+			if (this.previous8Weeks.length) {
+				this.selectedWeekValue = this.previous8Weeks[0].start;
+				this.selectWeek(this.selectedWeekValue);
+			}
 		},
 		watch: {
 			//监听行业选择变化
@@ -586,6 +707,99 @@
 			}
 		},
 		methods: {
+			// 获取前8周(不包含当前周)
+			getPrevious8Weeks(currentDate) {
+				const date = new Date(currentDate);
+				const currentDay = date.getDay();
+				const mondayOffset = currentDay === 0 ? -6 : 1 - currentDay;
+				const currentMonday = new Date(date);
+				currentMonday.setDate(date.getDate() + mondayOffset);
+
+				const weeks = [];
+				for (let i = 1; i <= 8; i++) {
+					const weekStart = new Date(currentMonday);
+					weekStart.setDate(currentMonday.getDate() - i * 7);
+
+					const weekEnd = new Date(weekStart);
+					weekEnd.setDate(weekStart.getDate() + 6);
+
+					const startStr = this.formatDate(weekStart);
+					const endStr = this.formatDate(weekEnd);
+					const label = `${weekStart.getFullYear()}-${String(weekStart.getMonth() + 1).padStart(2, '0')}-${String(weekStart.getDate()).padStart(2, '0')}- ~ `
+						+ `${weekEnd.getFullYear()}-${String(weekEnd.getMonth() + 1).padStart(2, '0')}-${String(weekEnd.getDate()).padStart(2, '0')}`;
+
+					weeks.push({ start: startStr, end: endStr, label });
+				}
+				return weeks;
+			},
+			// 格式化日期 YYYY-MM-DD
+			formatDate(date) {
+				const y = date.getFullYear();
+				const m = String(date.getMonth() + 1).padStart(2, '0');
+				const d = String(date.getDate()).padStart(2, '0');
+				return `${y}-${m}-${d}`;
+			},
+
+			selectWeek(startDate) {
+				const week = this.previous8Weeks.find(w => w.start === startDate);
+				if (!week) return;
+
+				this.todayStart = `${week.start} 00:00:00`;
+				this.todayEnd = `${week.end} 23:59:59`;
+
+				// 调用接口
+				if (this.selectValue) this.getDataStatics();
+			},
+			// 打开日周统计弹框
+			openStatistics(val) {
+				this.dialogStatistics = true;
+				this.activeName = val;
+				this.getZwList();
+			},
+			getZwList() {
+				this.$Request.get("/app/postPush/getMyPostPush").then(res => {
+					this.options = []
+					res.data.records.forEach(item => {
+						this.options.push({
+							label: item.ruleClassifyName,
+							value: item.postPushId
+						})
+					})
+					this.selectValue = res.data?.records[0]?.postPushId || ''
+					this.getDataStatics()
+				})
+			},
+			getDataStatics() {
+				let data = {
+					postPushId: this.selectValue,
+					todayStart: this.activeName == 'week'? this.todayStart : '',
+					todayEnd: this.activeName == 'week' ? this.todayEnd : '',
+				}
+				this.$Request.get("/app/user/userYesterdayData", { params:data}).then(res => {
+					if(this.activeName == 'day'){
+						this.todayData[0].number = res.data.iSaw;
+						this.todayData[0].change = res.data.tyIsaw;
+						this.todayData[1].number = res.data.sawMe;
+						this.todayData[1].change = res.data.tySawMe;
+						this.todayData[2].number = res.data.iCommunicated;
+						this.todayData[2].change = res.data.tyICommunicated;
+						this.todayData[3].number = res.data.candidateCommunicated;
+						this.todayData[3].change = res.data.tyCandidateCommunicated;
+						this.todayData[4].number = res.data.receivedResumes;
+						this.todayData[4].change = res.data.tyReceivedResumes;
+						this.todayData[5].number = res.data.exchangedContact;
+						this.todayData[5].change = res.data.tyExchangedContact;
+						this.todayData[6].number = res.data.acceptedInterview;
+						this.todayData[6].change = res.data.tyAcceptedInterview;
+					}else{
+						this.dataStatics = res.data;
+					}
+				})
+			},
+			// 切换岗位
+			changeOptions(){
+				this.getDataStatics();
+			},
 			formatHtml(html) {
 				return html.replace(/<p>/g, '<p style="margin:0;padding:0;">')
 			},
@@ -669,9 +883,10 @@
 			// },
 			//去我的收藏
 			goMyCollect(name) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: name,
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			//去我的团队
 			goMyTeam() {
@@ -680,27 +895,30 @@
 				})
 			},
 			goJilu(type) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'jilu',
 					query: {
 						type: type
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			// 面试记录
 			goMyRecord() {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'record'
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			//我的招聘
 			goMyPostPush(type) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'myPostPush',
 					query: {
 						tabIndex: type
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			//获取岗位
 			getlist() {
@@ -1127,4 +1345,24 @@
 		border: none !important;
 		width: initial !important;
 	}
+	.info-box-r-b-item{
+		width: initial !important;
+	}
+	.table-box{
+		padding: 12px;
+		box-sizing: border-box;
+		border: 1px solid #e3e7ec;
+		border-radius: 6px;
+		.table-bottom{
+			margin-top: 10px;
+		}
+		.data-value{
+			color: #333333;
+			font-size: 22px;
+		}
+		.data-unit{
+			color: #999999;
+			font-size: 14px;
+		}
+	}
 </style>

+ 3 - 1
src/views/enterprise/index.scss

@@ -7,7 +7,9 @@ $marginTop-60: 120px;
 		display: flex;
 		position: relative;
 	}
-	
+	:deep(.shares>.el-dialog__header) {
+		display: none !important;
+	}
 	:deep(.el-tag) {
 		background-color: #c9ffec !important;
 	}

+ 3 - 2
src/views/enterpriseList/index.vue

@@ -361,12 +361,13 @@
 
 			//去公司详情
 			goInfo(companyId) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'enterpriseInfo',
 					query: {
 						companyId: companyId
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			//获取banner
 			getBannerList() {

+ 6 - 4
src/views/enterpriseList/info.vue

@@ -195,12 +195,13 @@
 			},
 			goJobInfo(item) {
 				if (this.isResume) { //有简历
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'postInfo',
 						query: {
 							postPushId: item.postPushId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else { //无简历
 					this.shoModal = true
 				}
@@ -229,12 +230,13 @@
 			goDetails(item) {
 				if (localStorage.getItem('token')) {
 					if (this.isResume) { //有简历
-						this.$router.push({
+						const routeUrl = this.$router.resolve({
 							name: 'postInfo',
 							query: {
 								postPushId: item.postPushId
 							}
-						})
+						});
+						window.open(routeUrl.href, '_blank');
 					} else { //无简历
 						this.shoModal = true
 					}

+ 6 - 4
src/views/index/index.vue

@@ -462,12 +462,13 @@
 			},
 			//去搜索页面
 			goSearch() {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'search',
 					query: {
 						keyWord: this.keyWord
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			//获取banner
 			getBannerList() {
@@ -690,12 +691,13 @@
 			goDetails(item) {
 				if (localStorage.getItem('token')) {
 					if (this.isResume) { //有简历
-						this.$router.push({
+						const routeUrl = this.$router.resolve({
 							name: 'postInfo',
 							query: {
 								postPushId: item.postPushId
 							}
-						})
+						});
+						window.open(routeUrl.href, '_blank');
 					} else { //无简历
 						this.shoModal = true
 					}

+ 3 - 2
src/views/index/indexCompany.vue

@@ -946,14 +946,15 @@
 				}
 				if (localStorage.getItem('token')) {
 					localStorage.setItem('postPushId', this.tabs[this.tabsCurr].postPushId)
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId,
 							postPushId: this.tabs[this.tabsCurr].postPushId,
 							ruleClassifyId: this.tabs[this.tabsCurr].ruleClassifyId,
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 6 - 4
src/views/interview/interview.vue

@@ -224,12 +224,13 @@
 		},
 		methods: {
 			goInfo(item) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'postInfo',
 					query: {
 						postPushId: item.postPushId
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			jumpToTencentMap(latitude, longitude, name) {
 				var url = 'https://apis.map.qq.com/uri/v1/search?keyword=' + name + '&center=' + latitude + ',' +
@@ -319,12 +320,13 @@
 			 * 去详情
 			 */
 			goDetails(item) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'postInfo',
 					query: {
 						postPushId: item.postPushId
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 		}
 	}

+ 6 - 4
src/views/interview/record.vue

@@ -159,12 +159,13 @@
 		},
 		methods: {
 			goInfo(item) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'resumeInfo',
 					query: {
 						resumesId: item.resumesId
 					}
-				})
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 			formatDate(dates) {
 				let date = new Date(dates)
@@ -312,12 +313,13 @@
 			 */
 			goDetails(item) {
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 6 - 4
src/views/jilu/jilu.vue

@@ -206,12 +206,13 @@
 					if (this.tabIndex == 0 && item.isSee == 0) {
 						this.setIsSee(item.recordId, index)
 					}
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'
@@ -225,12 +226,13 @@
 			 */
 			goDetails(item) {
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 6 - 4
src/views/jilu/myCollect.vue

@@ -149,12 +149,13 @@
 			},
 			goDetailst(item) {
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'
@@ -168,12 +169,13 @@
 			 */
 			goDetails(item) {
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 6 - 4
src/views/message/index.vue

@@ -738,14 +738,15 @@
 			},
 			goToPage(){
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: this.resumesId,
 							postPushId: this.postPushId,
 							ruleClassifyId: this.postPushInfo?.ruleClassifyId || '',
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'
@@ -754,12 +755,13 @@
 			},
 			handleClick(postPushId){
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'postInfo',
 						query: {
 							postPushId: postPushId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 3 - 2
src/views/myPostPush/myPostPush.vue

@@ -312,12 +312,13 @@
 					return;
 				}
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'

+ 3 - 3
src/views/record/record.vue

@@ -391,13 +391,13 @@
 			 * 去详情
 			 */
 			goDetails(item) {
-				this.$router.push({
+				const routeUrl = this.$router.resolve({
 					name: 'postInfo',
 					query: {
 						postPushId: item.postPushId
 					}
-				})
-
+				});
+				window.open(routeUrl.href, '_blank');
 			},
 		}
 	}

+ 2 - 1
src/views/resume/addResume.vue

@@ -1217,10 +1217,11 @@ export default {
 
         //去面试记录页面
         goInterview(index) {
-            this.$router.push({
+            const routeUrl = this.$router.resolve({
                 name: 'interview',
                 query: { index }
             });
+            window.open(routeUrl.href, '_blank');
         },
         //上传头像成功后的回调
         handleAvatarSuccess(res) {

+ 6 - 5
src/views/search/index.vue

@@ -877,22 +877,24 @@ export default {
 			if (localStorage.getItem('token')) {
 				if(this.searchType == '职位'){
 					if (this.isResume) { //有简历
-						this.$router.push({
+						const routeUrl = this.$router.resolve({
 							name: 'postInfo',
 							query: {
 								postPushId: item.postPushId
 							}
-						})
+						});
+						window.open(routeUrl.href, '_blank');
 					} else { //无简历
 						this.shoModal = true
 					}
 				}else{
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'enterpriseInfo',
 						query: {
 							companyId: item.companyId
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				}
 				
 			} else {
@@ -984,7 +986,6 @@ export default {
 				companyPeople: this.companyPeople == '不限' ? '' : this.companyPeople || '', //公司规模
 				// lng: this.longitude,
 				// lat: this.latitude,
-				userId: localStorage.getItem('userId') ? localStorage.getItem('userId') : '',
 				preference: this.selectedTags.includes('不限') ? '' : this.selectedTags.filter(tag => tag !== '不限').join(',') //跨境标签
 		}
 			let url = '';

+ 3 - 2
src/views/search/searchCom.vue

@@ -456,13 +456,14 @@
 					return;
 				}
 				if (localStorage.getItem('token')) {
-					this.$router.push({
+					const routeUrl = this.$router.resolve({
 						name: 'resumeInfo',
 						query: {
 							resumesId: item.resumesId,
 							ruleClassifyId: this.tabs[this.tabsCurr].ruleClassifyId,
 						}
-					})
+					});
+					window.open(routeUrl.href, '_blank');
 				} else {
 					this.$router.push({
 						name: 'login'