Преглед на файлове

个人简历:完善职业技能

lifanagju_citu преди 10 месеца
родител
ревизия
352a9006ff

+ 14 - 0
src/api/recruit/personal/resume/index.js

@@ -104,6 +104,20 @@ export const getResumeProjectExp = async () => {
   })
 }
 
+// 获取-技能列表
+export const getSkillList = async () => {
+  return await request.get({
+    url: '/app-api/menduner/system/skill/list'
+  })
+}
+
+// 获取-技能树形
+export const getSkillTree = async () => {
+  return await request.get({
+    url: '/app-api/menduner/system/skill/get/tree'
+  })
+}
+
 // 获取-职业技能
 export const getResumePersonSkill = async () => {
   return await request.get({

+ 8 - 2
src/components/FormUI/nestedListGroup/components/listGroup.vue

@@ -62,8 +62,14 @@ const option = propsData.option
 
 const handleClick = (val) => {
   val.levelUI = propsData.levelUI
-  if (val.levelUI >= option.selectLevel) {
-    emit('clickUpdate', val)
+  if (option.selectLevel === -1) {
+    // 只能选最后一级
+    if (!val.children?.length) emit('clickUpdate', val)
+  } else {
+    // 自定义可选层级数
+    if (val.levelUI >= option.selectLevel) {
+      emit('clickUpdate', val)
+    }
   }
 }
 

+ 26 - 25
src/views/recruit/personal/remuse/components/vocationalSkills.vue

@@ -12,17 +12,17 @@
         <v-btn color="primary" class="half-button" @click="handleSave">{{ $t('common.save') }}</v-btn>
       </div>
     </div>
-    <!-- 展示 -->
     <div v-else-if="!dataList?.length" class="resumeNoDataText">{{ $t('resume.dataDefaultPrompt') }}{{ $t('resume.vocationalSkills') }}...</div>
+    <!-- 展示 -->
     <div v-else>
-      <div 
+      <div
         :class="['dataList-item']" 
         v-for="(k, i) in dataList" 
         :key="i" 
         @mouseenter="k.active = true" 
         @mouseleave="k.active = false"
       >
-        <span >{{ getText(k.skillId, skills) }}</span>
+        <span>{{ getText(k.skillId, skillList, 'nameCn', 'id') }}</span>
         <span class="septal-line"></span>
         <span style="color: var(--color-999);">{{ getText(k.level, skillLevelArr) }}</span>
         <span class="float-right" v-if="k.active">
@@ -36,7 +36,7 @@
 
 <script setup name="vocationalSkills">
 import { ref } from 'vue'
-import { saveResumePersonSkill, getResumePersonSkill, deleteResumePersonSkill } from '@/api/recruit/personal/resume'
+import { saveResumePersonSkill, getResumePersonSkill, deleteResumePersonSkill, getSkillList, getSkillTree,  } from '@/api/recruit/personal/resume'
 import CtForm from '@/components/CtForm'
 import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
@@ -47,39 +47,23 @@ const isEdit = ref(false)
 const formPageRef = ref()
 const type = ref('')
 const editId = ref(null)
-const skills = [{ label: '英语四级', value: '0' }, { label: '英语六级', value: '1' }, { label: 'office办公软件', value: '2' }]
+// const skills = [{ label: '英语四级', value: '0' }, { label: '英语六级', value: '1' }, { label: 'office办公软件', value: '2' }]
 
-// const skills = [
-//   { label: '一级-1', value: '0' },
-//   { label: '财务-1', value: '1',
-//     children: [
-//       { 
-//         label: '会计-2', value: '22222',
-//         children: [
-//           { label: '注册会计师一级-3', value: '33333', },
-//           { label: '注册会计师二级-3', value: '33334', }
-//         ]
-//       },
-//       { label: '出纳-2', value: '498640' },
-//     ]
-//   },
-//   { label: '其他一级-1', value: '2' }
-// ]
 const formItems = ref({
   options: [
     {
-      type: 'autocomplete', // nestedListGroup autocomplete
+      type: 'nestedListGroup', // nestedListGroup autocomplete
       key: 'skillId',
       value: null,
       default: null,
       label: '技能名称 *',
       outlined: true,
-      itemText: 'label',
-      itemValue: 'value',
+      itemText: 'nameCn',
+      itemValue: 'id',
       flexStyle: 'mr-3',
       col: 8,
       rules: [v => !!v || '请选择技能名称'],
-      items: skills,
+      items: [],
     },
     {
       type: 'autocomplete',
@@ -97,6 +81,22 @@ const formItems = ref({
   ]
 })
 
+const skillList = ref([])
+// 获取 职业技能列表(一维数组回显用)
+const getSkillListFunc = async () => {
+  const data = await getSkillList()
+  skillList.value = data || []
+}
+getSkillListFunc()
+
+// 获取 职业技能选项
+const getSkillTreeFunc = async () => {
+  const data = await getSkillTree()
+  const obj = formItems.value.options.find(e => e.key === 'skillId')
+  if (obj) obj.items = data || []
+}
+getSkillTreeFunc()
+
 // 获取 职业技能
 const dataList = ref([])
 const getData = async () => {
@@ -141,6 +141,7 @@ const handleDelete = ({ id }) => {
   })
 }
 
+
 const skillLevelArr = ref([])
 getDict('menduner_skill_level').then(({ data }) => { // 字典
   data = data?.length && data || []