|
@@ -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 || []
|