对接招聘会接口

This commit is contained in:
xiebin
2025-11-22 18:53:52 +08:00
parent 4b8056b716
commit 99f02927ac
7 changed files with 688 additions and 91 deletions

View File

@@ -21,7 +21,7 @@
<image src="@/static/icon/companyIcon.png" mode=""></image>
</view>
<view class="companyinfo-right">
<view class="row1">{{ companyInfo?.name }}</view>
<view class="row1">{{ companyInfo?.gsmc }}</view>
<view class="row2">
<dict-tree-Label
v-if="companyInfo?.industry"
@@ -30,12 +30,13 @@
></dict-tree-Label>
<span v-if="companyInfo?.industry">&nbsp;</span>
<dict-Label dictType="scale" :value="companyInfo?.scale"></dict-Label>
<span>{{companyInfo.gsxy}}</span>
</view>
</view>
</view>
<view class="conetent-info" :class="{ expanded: isExpanded }">
<view class="info-title">公司介绍</view>
<view class="info-desirption">{{ companyInfo.description }}</view>
<view class="info-desirption">{{ companyInfo.qyxz }}</view>
<!-- <view class="info-title title2">公司地址</view>
<view class="locationCompany"></view> -->
</view>
@@ -47,7 +48,8 @@
src="@/static/icon/downs.png"
></image>
</view>
<scroll-view scroll-y class="Detailscroll-view" @scrolltolower="getJobsList('add')">
<!-- <scroll-view scroll-y class="Detailscroll-view" @scrolltolower="getJobsList('add')"> -->
<scroll-view scroll-y class="Detailscroll-view">
<view class="views">
<view class="Detail-title"><text class="title">在招职位</text></view>
<renderJobs
@@ -85,32 +87,32 @@ const companyInfo = ref({});
onLoad((options) => {
console.log(options);
getCompanyInfo(options.companyId || options.bussinessId);
getCompanyInfo(options.companyId,options.companyName,options.zphId);
});
function companyCollection() {
const companyId = companyInfo.value.companyId;
const companyId = companyInfo.value.gsID;
if (companyInfo.value.isCollection) {
$api.createRequest(`/app/company/collection/${companyId}`, {}, 'DELETE').then((resData) => {
getCompanyInfo(companyId);
// getCompanyInfo(companyId);
$api.msg('取消收藏成功');
});
} else {
$api.createRequest(`/app/company/collection/${companyId}`, {}, 'POST').then((resData) => {
getCompanyInfo(companyId);
// getCompanyInfo(companyId);
$api.msg('收藏成功');
});
}
}
function getCompanyInfo(id) {
$api.createRequest(`/app/company/${id}`).then((resData) => {
function getCompanyInfo(companyId,companyName,zphId) {
$api.createRequest(`/app/internal/companyThirdPart/${companyId}`).then((resData) => {
companyInfo.value = resData.data;
getJobsList();
getJobsList(companyId,companyName,zphId);
});
}
function getJobsList(type = 'add') {
function getJobsList(companyId,companyName,zphId,type='add') {
if (type === 'refresh') {
pageState.page = 1;
pageState.maxPage = 1;
@@ -122,13 +124,14 @@ function getJobsList(type = 'add') {
current: pageState.page,
pageSize: pageState.pageSize,
};
$api.createRequest(`/app/company/job/${companyInfo.value.companyId}`, params).then((resData) => {
$api.createRequest(`/app/internal/jobThirdPart?gsID=${companyId}&gsmc=${companyName}&zphID=${zphId}`, ).then((resData) => {
const { rows, total } = resData;
if (type === 'add') {
const str = pageState.pageSize * (pageState.page - 1);
const end = pageState.list.length;
const reslist = rows;
pageState.list.splice(str, end, ...reslist);
// const str = pageState.pageSize * (pageState.page - 1);
// const end = pageState.list.length;
// const reslist = rows;
// pageState.list.splice(str, end, ...reslist);
pageState.list = rows
} else {
pageState.list = rows;
}

View File

@@ -11,15 +11,15 @@
<image src="@/static/icon/companyIcon.png" mode=""></image>
</view>
<view class="companyinfo-right">
<view class="row1 line_2">{{ fairInfo?.name }}</view>
<view class="row1 line_2">{{ fairInfo?.zphmc }}</view>
<view class="row2">
<text>{{ fairInfo.location }}</text>
<convert-distance
<text>{{ fairInfo.jbf }}</text>
<!-- <convert-distance
:alat="fairInfo.latitude"
:along="fairInfo.longitude"
:blat="latitudeVal"
:blong="longitudeVal"
></convert-distance>
></convert-distance> -->
</view>
</view>
</view>
@@ -27,36 +27,36 @@
<image class="location-img" src="/static/icon/mapLine.png"></image>
<view class="location-info">
<view class="info">
<text class="info-title">{{ fairInfo.address }}</text>
<text class="info-text">位置</text>
<text class="info-title">{{ fairInfo.zphdz }}</text>
<!-- <text class="info-text">位置</text> -->
</view>
</view>
</view>
<view class="conetent-info" :class="{ expanded: isExpanded }">
<view class="info-title">内容描述</view>
<view class="info-desirption">{{ fairInfo.description }}</view>
<view class="info-desirption">{{ fairInfo.zphjj }}</view>
<!-- <view class="info-title title2">公司地址</view>
<view class="locationCompany"></view> -->
<view class="company-times">
<view class="info-title">内容描述</view>
<view class="card-times">
<view class="time-left">
<view class="left-date">{{ parseDateTime(fairInfo.startTime).time }}</view>
<view class="left-dateDay">{{ parseDateTime(fairInfo.startTime).date }}</view>
<view class="left-date">{{ parseDateTime(fairInfo.zphjbsj).time }}</view>
<view class="left-dateDay">{{ parseDateTime(fairInfo.zphjbsj).date }}</view>
</view>
<view class="line"></view>
<view class="time-center">
<view class="center-date">
{{ getTimeStatus(fairInfo.startTime, fairInfo.endTime).statusText }}
{{ getTimeStatus(fairInfo.zphjbsj, fairInfo.zphjzsj).statusText }}
</view>
<view class="center-dateDay">
{{ getHoursBetween(fairInfo.startTime, fairInfo.endTime) }}小时
{{ getHoursBetween(fairInfo.zphjbsj, fairInfo.zphjzsj) }}小时
</view>
</view>
<view class="line"></view>
<view class="time-right">
<view class="left-date">{{ parseDateTime(fairInfo.endTime).time }}</view>
<view class="left-dateDay">{{ parseDateTime(fairInfo.endTime).date }}</view>
<view class="left-date">{{ parseDateTime(fairInfo.zphjzsj).time }}</view>
<view class="left-dateDay">{{ parseDateTime(fairInfo.zphjzsj).date }}</view>
</view>
</view>
</view>
@@ -76,6 +76,7 @@
</view>
<renderCompanys
v-if="companyList.length"
:zphId="zphId"
:list="companyList"
:longitude="longitudeVal"
:latitude="latitudeVal"
@@ -112,17 +113,24 @@ const isExpanded = ref(false);
const fairInfo = ref({});
const companyList = ref([]);
const hasnext = ref(true);
const zphId = ref('');
onLoad((options) => {
getCompanyInfo(options.jobFairId);
zphId.value = options.jobFairId
getJobFairInfo(options.jobFairId, options.jobFairName);
getCompanyInfo(options.jobFairId, options.jobFairName);
});
function getCompanyInfo(id) {
$api.createRequest(`/app/fair/${id}`).then((resData) => {
function getJobFairInfo(id,name) {
$api.createRequest(`/app/internal/jobFairThirdPart/${id}`).then((resData) => {
fairInfo.value = resData.data;
companyList.value = resData.data.companyList;
hasAppointment();
});
}
function getCompanyInfo(id,name) {
$api.createRequest(`/app/internal/companyThirdPart/?zphID=${id}&zphmc=${name}`).then((resData) => {
companyList.value = resData.rows;
});
}
const hasAppointment = () => {
const isTimePassed = (timeStr) => {

View File

@@ -23,20 +23,26 @@
:is-month="true"
></Salary-Expectation>
</view>
<view class="top-name">{{ jobInfo.jobTitle }}</view>
<view class="top-name">{{ jobInfo.gwmc }}</view>
<view class="top-info">
<view class="info-img"><image src="/static/icon/post12.png"></image></view>
<view class="info-text">
<!-- <view class="info-text">
<dict-Label dictType="experience" :value="jobInfo.experience"></dict-Label>
</view> -->
<view class="info-text">
{{jobInfo.xlyq == '不限' ? '学历不限' : jobInfo.xlyq}}
</view>
<view class="info-img mar_le20"><image src="/static/icon/post13.png"></image></view>
<view class="info-text">
<!-- <view class="info-text">
<dict-Label dictType="education" :value="jobInfo.education"></dict-Label>
</view> -->
<view class="info-text">
{{jobInfo.gwgzjy == '不限' ? '经验不限' : jobInfo.gwgzjy}}
</view>
</view>
<view class="position-source">
<text>来源&nbsp;</text>
{{ jobInfo.dataSource }}
青岛人才网
</view>
</view>
<view class="ai-explain" v-if="jobInfo.isExplain">
@@ -53,7 +59,7 @@
<text class="title">职位描述</text>
</view>
<view class="description" :style="{ whiteSpace: 'pre-wrap' }">
{{ jobInfo.description }}
{{ jobInfo.gwms }}
</view>
</view>
<view class="content-card">
@@ -61,7 +67,7 @@
<text class="title">公司信息</text>
<text
class="btntext button-click"
@click="navTo(`/packageA/pages/UnitDetails/UnitDetails?companyId=${jobInfo.company.companyId}`)"
@click=" navTo(`/packageA/pages/UnitDetails/UnitDetails?companyId=${jobInfo.gsID}&companyName=${jobInfo.gsmc}&zphId=${jobInfo.zphID}`);"
>
单位详情
</text>
@@ -71,7 +77,7 @@
<image src="@/static/icon/companyIcon.png" mode=""></image>
</view>
<view class="companyinfo-right">
<view class="row1">{{ jobInfo.company?.name }}</view>
<view class="row1">{{ jobInfo.gsmc }}</view>
<view class="row2">
<dict-tree-Label
v-if="jobInfo.company?.industry"
@@ -80,6 +86,7 @@
></dict-tree-Label>
<span v-if="jobInfo.company?.industry">&nbsp;</span>
<dict-Label dictType="scale" :value="jobInfo.company?.scale"></dict-Label>
<span>{{jobInfo.qyxz}}</span>
</view>
<view class="row2">
<text>在招</text>
@@ -187,12 +194,13 @@ function seeExplain() {
function getDetail(jobId) {
return new Promise((reslove, reject) => {
$api.createRequest(`/app/job/${jobId}`).then((resData) => {
const { latitude, longitude, companyName, companyId } = resData.data;
$api.createRequest(`/app/internal/jobThirdPart/${jobId}`).then((resData) => {
const { gsID, gsmc, zphID} = resData.data;
jobInfo.value = resData.data;
reslove(resData.data);
getCompanyIsAJobs(companyId);
getCompetivetuveness(jobId);
getCompanyIsAJobs(gsID, gsmc, zphID);
// getCompetivetuveness(jobId);
return
if (latitude && longitude) {
mapCovers.value = [
{
@@ -216,9 +224,9 @@ function getDetail(jobId) {
});
}
function getCompanyIsAJobs(companyId) {
$api.createRequest(`/app/company/count/${companyId}`).then((resData) => {
companyCount.value = resData.data;
function getCompanyIsAJobs(gsID, gsmc, zphID) {
$api.createRequest(`/app/internal/jobThirdPart?gsID=${gsID}&gsmc=${gsmc}&zphID=${zphID}`).then((resData) => {
companyCount.value = resData.total;
});
}
@@ -238,7 +246,7 @@ function getCompetivetuveness(jobId) {
// 申请岗位
function jobApply() {
const jobId = jobInfo.value.jobId;
const jobId = jobInfo.value.id;
if (jobInfo.value.isApply) {
const jobUrl = jobInfo.value.jobUrl;
return window.open(jobUrl);