退出登录 首页点击无反修改,发布岗位增加岗位类型
This commit is contained in:
@@ -195,7 +195,9 @@ defineExpose({
|
||||
<style lang="scss" scoped>
|
||||
.popup-content {
|
||||
color: #000000;
|
||||
height: 80vh;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
bottom:80rpx;
|
||||
}
|
||||
.popup-bottom {
|
||||
padding: 40rpx 28rpx 20rpx 28rpx;
|
||||
|
||||
@@ -683,22 +683,38 @@ onMounted(() => {
|
||||
// 获取企业信息
|
||||
getCompanyInfo();
|
||||
// pageNull.value = 0;
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
uni.$off('showLoginModal');
|
||||
});
|
||||
|
||||
onShow(() => {
|
||||
// 监听退出登录事件,显示微信登录弹窗
|
||||
uni.$on('showLoginModal', () => {
|
||||
wxAuthLoginRef.value?.open();
|
||||
pageNull.value = 0;
|
||||
});
|
||||
// 获取最新的企业信息
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
// 在组件挂载时绑定事件监听,确保只绑定一次
|
||||
// 先移除可能存在的旧监听,避免重复绑定
|
||||
uni.$off('showLoginModal');
|
||||
|
||||
// 绑定新的监听
|
||||
uni.$on('showLoginModal', () => {
|
||||
console.log('收到showLoginModal事件,打开登录弹窗');
|
||||
wxAuthLoginRef.value?.open();
|
||||
pageNull.value = 0;
|
||||
});
|
||||
|
||||
// 获取企业信息
|
||||
getCompanyInfo();
|
||||
//四级联动单点及权限
|
||||
getIsFourLevelLinkagePurview()
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
// 组件销毁时移除事件监听
|
||||
uni.$off('showLoginModal');
|
||||
});
|
||||
|
||||
onShow(() => {
|
||||
// 页面显示时获取最新的企业信息
|
||||
getCompanyInfo();
|
||||
// 四级联动单点及权限
|
||||
getIsFourLevelLinkagePurview();
|
||||
});
|
||||
|
||||
// 监听用户信息变化,当登录状态改变时重新获取企业信息
|
||||
@@ -799,7 +815,6 @@ async function loadData() {
|
||||
}
|
||||
const pageNull = ref(0);
|
||||
function scrollBottom() {
|
||||
console.log('scrollBottom------')
|
||||
if (loadmoreRef.value && typeof loadmoreRef.value.change === 'function') {
|
||||
loadmoreRef.value.change('loading');
|
||||
}
|
||||
|
||||
@@ -132,6 +132,19 @@
|
||||
<view class="picker-text" data-placeholder="请选择岗位分类">{{ selectedJobCategory || '请选择岗位分类' }}</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<!-- 新增:岗位类型 -->
|
||||
<view class="form-group">
|
||||
<view class="label">岗位类型</view>
|
||||
<view
|
||||
class="picker"
|
||||
@click="openJobTypeSelector"
|
||||
>
|
||||
<view class="picker-text" :class="{ 'placeholder': !selectedJobTypeLabel }">
|
||||
{{ selectedJobTypeLabel || '请选择岗位类型' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 图片上传区块 -->
|
||||
@@ -253,6 +266,9 @@
|
||||
|
||||
<!-- 自定义tabbar -->
|
||||
<CustomTabBar :currentPage="1" />
|
||||
|
||||
<!-- 岗位类型选择器 -->
|
||||
<selectJobs ref="jobTypeSelector" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -265,6 +281,7 @@ import config from '@/config.js';
|
||||
import useDictStore from '@/stores/useDictStore';
|
||||
import useUserStore from '@/stores/useUserStore';
|
||||
import UniIcons from '@/uni_modules/uni-icons/components/uni-icons/uni-icons.vue';
|
||||
import selectJobs from '@/components/selectJobs/selectJobs.vue';
|
||||
const userStore = useUserStore();
|
||||
const cachedUserInfo = uni.getStorageSync('userInfo') || {};
|
||||
// 表单数据
|
||||
@@ -276,7 +293,8 @@ const formData = reactive({
|
||||
vacancies: '', // 招聘人数
|
||||
description: '', // 对应接口字段 description
|
||||
jobRequirements: '',
|
||||
jobCategory: '', // 新增:岗位分类
|
||||
type: '', // 岗位分类(用户指示使用type字段)
|
||||
jobCategory: '', // 岗位类型
|
||||
companyId: '', // 新增:企业id
|
||||
latitude: '', // 新增:纬度
|
||||
longitude: '', // 新增:经度
|
||||
@@ -313,10 +331,15 @@ const selectedExperience = ref('');
|
||||
const selectedWorkDistrict = ref('');
|
||||
const selectedWorkLocation = ref('');
|
||||
const selectedJobCategory = ref('');
|
||||
const selectedJobTypeLabel = ref(''); // 新增:岗位类型显示文本
|
||||
const selectedJobTypeIds = ref(''); // 新增:岗位类型ID(多个用逗号分隔)
|
||||
|
||||
// 滚动视图高度
|
||||
const scrollViewHeight = ref('calc(100vh - 200rpx)');
|
||||
|
||||
// 岗位类型选择器引用
|
||||
const jobTypeSelector = ref(null);
|
||||
|
||||
// 计算滚动视图高度
|
||||
const calculateScrollViewHeight = () => {
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
@@ -413,19 +436,18 @@ const initFormData = async () => {
|
||||
// 设置区县选项(从字典获取)
|
||||
workDistricts.value = dictStore.state.area;
|
||||
|
||||
// 设置岗位分类选项
|
||||
// 只有就业见习基地才能选择"实习实训"选项
|
||||
// 设置岗位分类选项 - 从字典获取 position_type
|
||||
const positionTypeDict = await dictStore.getDictSelectOption('position_type');
|
||||
console.log('从字典获取的岗位类型数据:', positionTypeDict);
|
||||
|
||||
// 过滤岗位类型选项:只有就业见习基地才能选择"实习实训"选项
|
||||
// 假设实习实训的 value 为 '3'
|
||||
if (isInternshipBase.value) {
|
||||
jobCategories.value = [
|
||||
{ label: '普通', value: '1' },
|
||||
{ label: '零工', value: '2' },
|
||||
{ label: '实习实训', value: '3' }
|
||||
];
|
||||
// 如果是就业见习基地,显示所有选项
|
||||
jobCategories.value = positionTypeDict;
|
||||
} else {
|
||||
jobCategories.value = [
|
||||
{ label: '普通', value: '1' },
|
||||
{ label: '零工', value: '2' }
|
||||
];
|
||||
// 如果不是就业见习基地,过滤掉实习实训选项
|
||||
jobCategories.value = positionTypeDict.filter(item => item.dictSort !== 2);
|
||||
}
|
||||
console.log('岗位分类选项:', jobCategories.value);
|
||||
|
||||
@@ -487,7 +509,27 @@ const onJobCategoryChange = (e) => {
|
||||
const index = e.detail.value;
|
||||
const selectedItem = jobCategories.value[index];
|
||||
selectedJobCategory.value = selectedItem.label;
|
||||
formData.jobCategory = selectedItem.value;
|
||||
formData.type = selectedItem.value; // 岗位分类保存到type字段
|
||||
};
|
||||
|
||||
// 打开岗位类型选择器
|
||||
const openJobTypeSelector = () => {
|
||||
if (!jobTypeSelector.value) return;
|
||||
|
||||
jobTypeSelector.value.open({
|
||||
title: '选择岗位类型',
|
||||
success: (ids, labels) => {
|
||||
// 保存选中的岗位类型
|
||||
selectedJobTypeIds.value = ids;
|
||||
selectedJobTypeLabel.value = labels;
|
||||
// 将岗位类型ID保存到formData.jobCategory字段
|
||||
formData.jobCategory = ids;
|
||||
console.log('选择的岗位类型ID:', ids, '标签:', labels);
|
||||
},
|
||||
cancel: () => {
|
||||
console.log('取消选择岗位类型');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 选择位置
|
||||
@@ -637,10 +679,10 @@ const handleCompanySelected = (company) => {
|
||||
|
||||
// 发布岗位
|
||||
const publishJob = async () => {
|
||||
// 表单验证
|
||||
if (!validateForm()) {
|
||||
return;
|
||||
}
|
||||
// 表单验证
|
||||
if (!validateForm()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
uni.showLoading({
|
||||
@@ -660,7 +702,8 @@ const publishJob = async () => {
|
||||
latitude: formData.latitude,
|
||||
longitude: formData.longitude,
|
||||
description: formData.description,
|
||||
jobCategory: formData.jobCategory,
|
||||
type: formData.type, // 岗位分类
|
||||
jobCategory: formData.jobCategory, // 岗位类型
|
||||
companyId: formData.companyId,
|
||||
companyName: formData.companyName,
|
||||
jobContactList: formData.contacts.filter(contact => contact.name.trim() && contact.phone.trim()).map(contact => ({
|
||||
@@ -722,7 +765,8 @@ const validateForm = () => {
|
||||
{ field: 'jobLocationAreaCode', message: '请选择工作区县' },
|
||||
{ field: 'vacancies', message: '请输入招聘人数' },
|
||||
{ field: 'description', message: '请输入岗位描述' },
|
||||
{ field: 'jobCategory', message: '请选择岗位分类' }
|
||||
{ field: 'type', message: '请选择岗位分类' },
|
||||
{ field: 'jobCategory', message: '请选择岗位类型' }
|
||||
];
|
||||
|
||||
for (const { field, message } of requiredFields) {
|
||||
|
||||
Reference in New Issue
Block a user