|
@@ -2,19 +2,38 @@
|
|
|
<div class="resume-box">
|
|
|
<div class="resume-header mb-3">
|
|
|
<div class="resume-title">{{ $t('resume.jobIntention') }}</div>
|
|
|
- <v-btn v-if="!isEdit" variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="isEdit = true">{{ $t('common.edit') }}</v-btn>
|
|
|
+ <v-btn v-if="!isEdit" variant="text" color="primary" prepend-icon="mdi-plus-box" @click="isEdit = true">{{ $t('common.add') }}</v-btn>
|
|
|
</div>
|
|
|
<div></div>
|
|
|
<div v-if="isEdit">
|
|
|
<CtForm :items="items" style="width: 100%;">
|
|
|
<template #positionId="{ item }">
|
|
|
- <textUI
|
|
|
- v-model="item.value"
|
|
|
- :item="item"
|
|
|
- @blur="item.blur"
|
|
|
- style="position: relative;"
|
|
|
- ></textUI>
|
|
|
- <jobTypeCard class="jobTypeCardBox" v-if="drawer"></jobTypeCard>
|
|
|
+ <v-menu :close-delay="1" :open-delay="0" v-bind="$attrs">
|
|
|
+ <template v-slot:activator="{ props }">
|
|
|
+ <textUI
|
|
|
+ :modelValue="item.value"
|
|
|
+ :item="item"
|
|
|
+ @blur="item.blur"
|
|
|
+ v-bind="props"
|
|
|
+ style="position: relative;"
|
|
|
+ ></textUI>
|
|
|
+ </template>
|
|
|
+ <jobTypeCard class="jobTypeCardBox" :isCustomer="true" @handleJobClick="handleJobClickItem"></jobTypeCard>
|
|
|
+ </v-menu>
|
|
|
+ </template>
|
|
|
+ <template #industryIdList="{ item }">
|
|
|
+ <v-menu :close-delay="1" :open-delay="0" v-bind="$attrs" :close-on-content-click="false">
|
|
|
+ <template v-slot:activator="{ props }">
|
|
|
+ <textUI
|
|
|
+ v-model="item.value"
|
|
|
+ :item="item"
|
|
|
+ @blur="item.blur"
|
|
|
+ v-bind="props"
|
|
|
+ style="position: relative;"
|
|
|
+ ></textUI>
|
|
|
+ </template>
|
|
|
+ <industryTypeCard @inputChange="handleIndustry"></industryTypeCard>
|
|
|
+ </v-menu>
|
|
|
</template>
|
|
|
</CtForm>
|
|
|
</div>
|
|
@@ -23,50 +42,34 @@
|
|
|
|
|
|
<script setup name="jobIntention">
|
|
|
import { ref } from 'vue'
|
|
|
-// import { useSharedState } from '@/store/sharedState'
|
|
|
import CtForm from '@/components/CtForm'
|
|
|
import textUI from '@/components/FormUI/TextInput'
|
|
|
import jobTypeCard from '@/components/jobTypeCard'
|
|
|
+import industryTypeCard from '@/components/industryTypeCard'
|
|
|
|
|
|
const isEdit = ref(true)
|
|
|
-const drawer = ref(false)
|
|
|
-const handleBlur = () => {
|
|
|
- drawer.value = !drawer.value
|
|
|
-}
|
|
|
-// const sharedState = useSharedState()
|
|
|
-// watch(() => sharedState.layoutClickCount, () => {
|
|
|
-// if (drawer.value) drawer.value = false
|
|
|
-// })
|
|
|
|
|
|
const items = ref({
|
|
|
options: [
|
|
|
{
|
|
|
slotName: 'positionId',
|
|
|
key: 'positionId',
|
|
|
- value: null,
|
|
|
+ value: '',
|
|
|
col: 6,
|
|
|
- placeholder: '期望岗位 *',
|
|
|
+ label: '期望岗位 *',
|
|
|
flexStyle: 'mr-3',
|
|
|
+ hideDetails: true,
|
|
|
outlined: true,
|
|
|
- rules: [v => !!v || '请输入期望岗位'],
|
|
|
- blur: handleBlur
|
|
|
+ rules: [v => !!v || '请选择期望岗位']
|
|
|
},
|
|
|
{
|
|
|
- type: 'autocomplete',
|
|
|
- key: 'jobType',
|
|
|
- value: null,
|
|
|
- placeholder: '请选择求职类型 *',
|
|
|
+ slotName: 'industryIdList',
|
|
|
+ key: 'industryIdList',
|
|
|
+ value: '不限',
|
|
|
outlined: true,
|
|
|
- itemText: 'label',
|
|
|
+ label: '期望行业 *',
|
|
|
col: 6,
|
|
|
- itemValue: 'value',
|
|
|
- rules: [v => !!v || '请选择求职类型'],
|
|
|
- items: [
|
|
|
- { label: '全职', value: 0 },
|
|
|
- { label: '兼职', value: 1 },
|
|
|
- { label: '临时', value: 2 },
|
|
|
- { label: '实习', value: 3 }
|
|
|
- ]
|
|
|
+ rules: [v => !!v || '请选择期望行业']
|
|
|
},
|
|
|
{
|
|
|
type: 'number',
|
|
@@ -99,15 +102,41 @@ const items = ref({
|
|
|
flexStyle: 'mr-3',
|
|
|
rules: [v => !!v || '请选择工作城市'],
|
|
|
items: []
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'autocomplete',
|
|
|
+ key: 'jobType',
|
|
|
+ value: null,
|
|
|
+ placeholder: '请选择求职类型 *',
|
|
|
+ outlined: true,
|
|
|
+ itemText: 'label',
|
|
|
+ col: 6,
|
|
|
+ itemValue: 'value',
|
|
|
+ rules: [v => !!v || '请选择求职类型'],
|
|
|
+ items: [
|
|
|
+ { label: '全职', value: 0 },
|
|
|
+ { label: '兼职', value: 1 },
|
|
|
+ { label: '临时', value: 2 },
|
|
|
+ { label: '实习', value: 3 }
|
|
|
+ ]
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
+
|
|
|
+// 期望职位
|
|
|
+const handleJobClickItem = (val) => {
|
|
|
+ items.value.options.find(e => e.key === 'positionId').value = val.nameCn
|
|
|
+}
|
|
|
+
|
|
|
+const handleIndustry = (list) => {
|
|
|
+ console.log(list, 'industry')
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
.jobTypeCardBox {
|
|
|
position: absolute;
|
|
|
- top: 42px;
|
|
|
+ top: 0;
|
|
|
left: 0;
|
|
|
}
|
|
|
</style>
|