123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <template>
- <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-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 }">
- <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>
- </div>
- </template>
- <script setup name="jobIntention">
- import { ref } from 'vue'
- 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 items = ref({
- options: [
- {
- slotName: 'positionId',
- key: 'positionId',
- value: '',
- col: 6,
- label: '期望岗位 *',
- flexStyle: 'mr-3',
- hideDetails: true,
- outlined: true,
- rules: [v => !!v || '请选择期望岗位']
- },
- {
- slotName: 'industryIdList',
- key: 'industryIdList',
- value: '不限',
- outlined: true,
- label: '期望行业 *',
- col: 6,
- rules: [v => !!v || '请选择期望行业']
- },
- {
- type: 'number',
- key: 'payFrom',
- value: null,
- placeholder: '期望薪资(最低要求) *',
- col: 6,
- flexStyle: 'mr-3',
- outlined: true,
- rules: [v => !!v || '请输入薪资最低要求']
- },
- {
- type: 'number',
- key: 'payTo',
- value: null,
- placeholder: '期望薪资(最高要求) *',
- col: 6,
- outlined: true,
- rules: [v => !!v || '请输入薪资最高要求']
- },
- {
- type: 'autocomplete',
- key: 'workAreaId',
- value: null,
- placeholder: '请选择工作城市 *',
- outlined: true,
- itemText: 'label',
- col: 6,
- itemValue: 'value',
- 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: 0;
- left: 0;
- }
- </style>
|