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