|
@@ -317,7 +317,7 @@
|
|
inactive-text=""
|
|
inactive-text=""
|
|
@change="handleStatusChange"
|
|
@change="handleStatusChange"
|
|
/>
|
|
/>
|
|
- <span class="status-text">{{ positionStatus ? '开启职位' : '关闭职位' }}</span>
|
|
|
|
|
|
+ <span class="status-text">{{ positionStatus ? '已启用' : '待启用' }}</span>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-card>
|
|
|
|
|
|
@@ -325,11 +325,25 @@
|
|
<div class="section-title">
|
|
<div class="section-title">
|
|
<div class="section-line"></div>
|
|
<div class="section-line"></div>
|
|
<span>职位性质</span>
|
|
<span>职位性质</span>
|
|
- <el-button type="text" class="edit-btn" @click="handleEditUsage">编辑</el-button>
|
|
|
|
|
|
+ <el-button type="text" class="edit-btn" @click="startEditJobType" v-if="!isEditingJobType">编辑</el-button>
|
|
</div>
|
|
</div>
|
|
<div class="usage-content">
|
|
<div class="usage-content">
|
|
- <div class="usage-label">职位用途</div>
|
|
|
|
- <div class="usage-value">正式招聘</div>
|
|
|
|
|
|
+ <!-- <div class="usage-label">职位用途</div> -->
|
|
|
|
+ <div class="usage-value" v-if="!isEditingJobType">{{ getJobTypeText(positionData.job_type) }}</div>
|
|
|
|
+
|
|
|
|
+ <!-- 编辑模式 -->
|
|
|
|
+ <div v-if="isEditingJobType" class="title-edit-container">
|
|
|
|
+ <el-select v-model="editingJobType" placeholder="请选择职位性质" style="width: 100%;">
|
|
|
|
+ <el-option label="全职" :value="0"></el-option>
|
|
|
|
+ <el-option label="兼职" :value="1"></el-option>
|
|
|
|
+ <el-option label="实习" :value="2"></el-option>
|
|
|
|
+ <el-option label="其他" :value="3"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <div class="title-edit-actions">
|
|
|
|
+ <el-button size="small" @click="cancelEditJobType">取消</el-button>
|
|
|
|
+ <el-button size="small" type="primary" @click="saveEditJobType">保存</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-card>
|
|
|
|
|
|
@@ -2122,9 +2136,9 @@ const positionData = reactive({
|
|
// 招聘流程数据 - 修改为普通数组而非 ref 对象
|
|
// 招聘流程数据 - 修改为普通数组而非 ref 对象
|
|
const recruitmentProcess = reactive([
|
|
const recruitmentProcess = reactive([
|
|
{ id: 5, name: '资料收集', description: '资料收集', active: true },
|
|
{ id: 5, name: '资料收集', description: '资料收集', active: true },
|
|
- { id: 7, name: '常识问题', description: '常识问题', active: true },
|
|
|
|
- { id: 6, name: '心理问题', description: '心理问题', active: true },
|
|
|
|
- { id: 2, name: 'AI视频', description: 'AI视频', active: true },
|
|
|
|
|
|
+ /* { id: 7, name: '常识问题', description: '常识问题', active: true },
|
|
|
|
+ { id: 6, name: '心理问题', description: '心理问题', active: true }, */
|
|
|
|
+ { id: 2, name: 'AI考察', description: 'AI考察', active: true },
|
|
{ id: 1, name: '待核验', description: '待核验', active: true },
|
|
{ id: 1, name: '待核验', description: '待核验', active: true },
|
|
{ id: 3, name: '已通过', description: '已通过', active: true },
|
|
{ id: 3, name: '已通过', description: '已通过', active: true },
|
|
{ id: 4, name: '已淘汰', description: '已淘汰', active: false },
|
|
{ id: 4, name: '已淘汰', description: '已淘汰', active: false },
|
|
@@ -2136,7 +2150,7 @@ const showProcessDialog = ref(false);
|
|
|
|
|
|
// 定义可选的流程步骤类型
|
|
// 定义可选的流程步骤类型
|
|
const processStepOptions = [
|
|
const processStepOptions = [
|
|
- { label: 'AI视频', value: 'ai_video' },
|
|
|
|
|
|
+ { label: 'AI考察', value: 'ai_video' },
|
|
{ label: '视频宣讲', value: 'video_presentation' },
|
|
{ label: '视频宣讲', value: 'video_presentation' },
|
|
{ label: 'AI实时对话', value: 'ai_chat' },
|
|
{ label: 'AI实时对话', value: 'ai_chat' },
|
|
{ label: '资料收集', value: 'data_collection' },
|
|
{ label: '资料收集', value: 'data_collection' },
|
|
@@ -2682,10 +2696,7 @@ const handleStatusChange = async (value: boolean) => {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-// 编辑职位用途
|
|
|
|
-const handleEditUsage = () => {
|
|
|
|
- ElMessage.info('编辑职位用途功能开发中');
|
|
|
|
-};
|
|
|
|
|
|
+
|
|
|
|
|
|
// 编辑招聘流程
|
|
// 编辑招聘流程
|
|
const handleEditProcess = () => {
|
|
const handleEditProcess = () => {
|
|
@@ -2763,7 +2774,7 @@ const getJobTypeText = (type: number) => {
|
|
|
|
|
|
// 显示选项菜单
|
|
// 显示选项菜单
|
|
const showStepOptions = (index: number, event: MouseEvent) => {
|
|
const showStepOptions = (index: number, event: MouseEvent) => {
|
|
- /* currentAddIndex.value = index;
|
|
|
|
|
|
+ currentAddIndex.value = index;
|
|
showOptionsMenu.value = true;
|
|
showOptionsMenu.value = true;
|
|
|
|
|
|
// 计算菜单位置 - 获取按钮元素
|
|
// 计算菜单位置 - 获取按钮元素
|
|
@@ -2786,7 +2797,7 @@ const showStepOptions = (index: number, event: MouseEvent) => {
|
|
}
|
|
}
|
|
|
|
|
|
// 阻止事件冒泡
|
|
// 阻止事件冒泡
|
|
- event.stopPropagation(); */
|
|
|
|
|
|
+ event.stopPropagation();
|
|
|
|
|
|
};
|
|
};
|
|
// 修改添加选定类型的步骤方法
|
|
// 修改添加选定类型的步骤方法
|
|
@@ -3850,6 +3861,40 @@ const saveDescription = async () => {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+// 职位性质编辑
|
|
|
|
+const isEditingJobType = ref(false);
|
|
|
|
+const editingJobType = ref(0);
|
|
|
|
+
|
|
|
|
+// 开始编辑职位性质
|
|
|
|
+const startEditJobType = () => {
|
|
|
|
+ editingJobType.value = positionData.job_type || 0;
|
|
|
|
+ isEditingJobType.value = true;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 取消编辑职位性质
|
|
|
|
+const cancelEditJobType = () => {
|
|
|
|
+ isEditingJobType.value = false;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 保存职位性质
|
|
|
|
+const saveEditJobType = async () => {
|
|
|
|
+ try {
|
|
|
|
+ const id = route.query.id;
|
|
|
|
+ await api.UpdateObj({
|
|
|
|
+ id: id,
|
|
|
|
+ job_type: editingJobType.value
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 更新本地数据
|
|
|
|
+ positionData.job_type = editingJobType.value;
|
|
|
|
+ isEditingJobType.value = false;
|
|
|
|
+ ElMessage.success('职位性质已更新');
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error('更新职位性质失败:', error);
|
|
|
|
+ ElMessage.error('更新职位性质失败');
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
// 添加能力标签相关的响应式变量
|
|
// 添加能力标签相关的响应式变量
|
|
const competencyTags = ref<CompetencyTag[]>([]);
|
|
const competencyTags = ref<CompetencyTag[]>([]);
|
|
const isEditingCompetency = ref(false);
|
|
const isEditingCompetency = ref(false);
|