2 Commits

Author SHA1 Message Date
9d0881e6d1 =【职业图谱】用户求职岗位更新 2026-04-15 19:22:04 +08:00
FengHui
8b3523f645 详情页面加工作地点 2026-04-15 14:38:48 +08:00
4 changed files with 109 additions and 58 deletions

View File

@@ -60,6 +60,14 @@
<view class="explain-right button-click" @click="seeExplain">点击查看</view>
</view>
</view>
<view class="content-card">
<view class="card-title">
<text class="title">工作地点</text>
</view>
<view class="description">
{{ jobInfo.jobAddress || jobInfo.jobLocation || '暂无地址信息' }}
</view>
</view>
<view class="content-card">
<view class="card-title">
<text class="title">职位描述</text>
@@ -90,7 +98,7 @@
<view class="contact-label">联系人</view>
<view class="contact-value">{{ contact.contactPerson }}</view>
</view>
<view class="contact-info">
<view class="contact-info" v-if="contact.position">
<view class="contact-label">职位</view>
<view class="contact-value">{{ contact.position }}</view>
</view>
@@ -127,6 +135,7 @@
<span v-if="jobInfo.company?.industry">&nbsp;</span>
<dict-Label dictType="scale" :value="jobInfo.company?.scale"></dict-Label>
</view>
<view class="row2">
<text>在招</text>
<text style="color: #256bfa">{{ companyCount }}</text>
@@ -143,7 +152,7 @@
></map>
</view>
</view>
<view class="content-card" v-if="currentUserType !== 0">
<view class="content-card jzlfx-card" v-if="currentUserType !== 0">
<view class="card-title">
<text class="title">竞争力分析</text>
</view>
@@ -774,9 +783,9 @@ for i in 0..100
}
}
.content{
padding: 0 28rpx
height: 100%
padding-top: 28rpx
padding-bottom: 28rpx
.content-top{
box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0,0,0,0.04);
border-radius: 20rpx 20rpx 20rpx 20rpx;
@@ -825,7 +834,19 @@ for i in 0..100
color: #64779F;
border-bottom-left-radius: 20rpx
}
.publish-time{
margin-top: 20rpx
font-weight: 400;
font-size: 24rpx;
color: #999999;
text-align: right
}
}
/* #ifdef H5 */
.jzlfx-card{
padding-bottom: 90rpx!important;
}
/* #endif */
.content-card{
padding: 24rpx
margin-top: 28rpx

View File

@@ -1,33 +1,43 @@
import { computed, ref, watch } from 'vue';
import { defineStore } from 'pinia';
import { defineStore, storeToRefs } from 'pinia';
import useUserStore from '@/stores/useUserStore';
import { getCurrentPosition, getPath, getPathDetail } from '@/apiRc/service/careerPath';
export const useCareerPathStore = defineStore('career-path', () => {
const { userInfo: ui } = storeToRefs(useUserStore());
const userInfo = ref({
userName: '',
professions: [],
skills: []
});
try {
const data = uni.getStorageSync('userInfo');
watch(() => ui.value, () => {
if (!ui.value) {
return;
}
try {
const { jobTitle, appSkillsList } = ui.value;
userInfo.value.professions = data.jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = data.appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
userInfo.value.professions = jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
}, {
immediate: true,
deep: true
});
const professionIndex = ref(0);
const profession = ref('');

View File

@@ -1,33 +1,43 @@
import { computed, ref, watch } from 'vue';
import { defineStore } from 'pinia';
import { defineStore, storeToRefs } from 'pinia';
import useUserStore from '@/stores/useUserStore';
import { getProfessions, getRecommend, getSkillTags } from '@/apiRc/service/careerRecommendation';
export const useCareerRecommendationStore = defineStore('career-recommendation', () => {
const { userInfo: ui } = storeToRefs(useUserStore());
const userInfo = ref({
userName: '',
professions: [],
skills: []
});
try {
const data = uni.getStorageSync('userInfo');
watch(() => ui.value, () => {
if (!ui.value) {
return;
}
try {
const { jobTitle, appSkillsList } = ui.value;
userInfo.value.professions = data.jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = data.appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
userInfo.value.professions = jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
}, {
immediate: true,
deep: true
});
const professionIndex = ref(0);
const profession = ref('');
@@ -144,7 +154,7 @@ export const useCareerRecommendationStore = defineStore('career-recommendation',
const eventProfession = (e) => {
professionIndex.value = Number(e.detail.value);
const item = professionsRef.value[e.detail.value]
const item = professionsRef.value[ e.detail.value ];
profession.value = item.value;
professionLabel.value = item.label;
};

View File

@@ -1,34 +1,44 @@
import { computed, ref, watch } from 'vue';
import { defineStore } from 'pinia';
import { defineStore, storeToRefs } from 'pinia';
import useUserStore from '@/stores/useUserStore';
import { getCurrentPosition, getPath } from '@/apiRc/service/careerPath';
import { getCareerPath, getSkillResult } from '@/apiRc/service/skillDevelopment';
export const useSkillDevelopmentStore = defineStore('skill-development', () => {
const { userInfo: ui } = storeToRefs(useUserStore());
const userInfo = ref({
userName: '',
professions: [],
skills: []
});
try {
const data = uni.getStorageSync('userInfo');
watch(() => ui.value, () => {
if (!ui.value) {
return;
}
try {
const { jobTitle, appSkillsList } = ui.value;
userInfo.value.professions = data.jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = data.appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
userInfo.value.professions = jobTitle.map((d) => {
return {
label: d,
value: d
};
});
userInfo.value.skills = appSkillsList.map((d) => {
return {
label: d.name,
value: d.name
};
});
} catch (e) {
console.warn(e);
}
}, {
immediate: true,
deep: true
});
const professionIndex = ref(0);
const profession = ref('');