export const PostRecruitmentbookDel = postModel(url.RecruitmentbookDel); // 删除 | export const PostRecruitmentbookDel = postModel(url.RecruitmentbookDel); // 删除 | ||||
export const PostRecruitmentbookUpdate = postModel(url.RecruitmentbookUpdate); // 编辑 | export const PostRecruitmentbookUpdate = postModel(url.RecruitmentbookUpdate); // 编辑 | ||||
export const GetRecruitmentbookList = getModel(url.RecruitmentbookList); // 列表 | export const GetRecruitmentbookList = getModel(url.RecruitmentbookList); // 列表 | ||||
export const GetRecruitmentbookDetail = getModel(url.RecruitmentbookDetail); // 详情 | |||||
export const GetRecruitmentbookDetail = getModel(url.RecruitmentbookDetail); // 详情 | |||||
// 简历 | |||||
// 列表 | |||||
export const PostJobseekerList = postModel(url.JobseekerList); | |||||
export const GetJobseekerDetail = getModel(url.JobseekerDetail); | |||||
// 基本资料 | |||||
export const PostJobapplicantAdd = postModel(url.JobapplicantAdd); | |||||
export const PostJobapplicantDel = postModel(url.JobapplicantDel); | |||||
export const PostJobapplicantUpdate = postModel(url.JobapplicantUpdate); | |||||
export const GetJobapplicantList = getModel(url.JobapplicantList); | |||||
export const GetJobapplicantDetail = getModel(url.JobapplicantDetail); | |||||
// 联系方式 | |||||
export const PostJobapplicantAddcontact = postModel(url.JobapplicantAddcontact); | |||||
export const PostJobapplicantDelcontact = postModel(url.JobapplicantDelcontact); | |||||
export const PostJobapplicantUpdatecontact = postModel(url.JobapplicantUpdatecontact); | |||||
export const PostJobapplicantListcontact = getModel(url.JobapplicantListcontact); | |||||
export const PostJobapplicantContactdetail = getModel(url.JobapplicantContactdetail); | |||||
// 证书技能 | |||||
export const PostJobapplicantAddskill = postModel(url.JobapplicantAddskill); | |||||
export const PostJobapplicantDelskill = postModel(url.JobapplicantDelskill); | |||||
export const PostJobapplicantUpdateskill = postModel(url.JobapplicantUpdateskill); | |||||
export const PostJobapplicantListskill = getModel(url.JobapplicantListskill); | |||||
export const PostJobapplicantSkilldetail = getModel(url.JobapplicantSkilldetail); | |||||
// 培训经历 | |||||
export const PostJobapplicantAddtraining = postModel(url.JobapplicantAddtraining); | |||||
export const PostJobapplicantDeltraining = postModel(url.JobapplicantDeltraining); | |||||
export const PostJobapplicantUpdatetraining = postModel(url.JobapplicantUpdatetraining); | |||||
export const PostJobapplicantListtraining = getModel(url.JobapplicantListtraining); | |||||
export const PostJobapplicantTrainingdetail = getModel(url.JobapplicantTrainingdetail); | |||||
// 求职意向-基本 | |||||
export const PostJobapplicantAdddesirebase = postModel(url.JobapplicantAdddesirebase); | |||||
export const PostJobapplicantDeldesirebase = postModel(url.JobapplicantDeldesirebase); | |||||
export const PostJobapplicantUpdatedesirebase = postModel(url.JobapplicantUpdatedesirebase); | |||||
export const PostJobapplicantListdesirebase = getModel(url.JobapplicantListdesirebase); | |||||
export const PostJobapplicantDesirebasedetail = getModel(url.JobapplicantDesirebasedetail); | |||||
// 求职意向-地区 | |||||
export const PostJobapplicantAdddesirearea = postModel(url.JobapplicantAdddesirearea); | |||||
export const PostJobapplicantDeldesirearea = postModel(url.JobapplicantDeldesirearea); | |||||
export const PostJobapplicantUpdatedesirearea = postModel(url.JobapplicantUpdatedesirearea); | |||||
export const PostJobapplicantListdesirearea = getModel(url.JobapplicantListdesirearea); | |||||
export const PostJobapplicantDesireareadetail = getModel(url.JobapplicantDesireareadetail); | |||||
// 求职意向-职位 | |||||
export const PostJobapplicantAdddesireindustry = postModel(url.JobapplicantAdddesireindustry); | |||||
export const PostJobapplicantDeldesireindustry = postModel(url.JobapplicantDeldesireindustry); | |||||
export const PostJobapplicantUpdatedesireindustry = postModel(url.JobapplicantUpdatedesireindustry); | |||||
export const PostJobapplicantListdesireindustry = getModel(url.JobapplicantListdesireindustry); | |||||
export const PostJobapplicantDesireindustrydetail = getModel(url.JobapplicantDesireindustrydetail); | |||||
// 工作经历 | |||||
export const PostJobapplicantAddexperience = postModel(url.JobapplicantAddexperience); | |||||
export const PostJobapplicantDelexperience = postModel(url.JobapplicantDelexperience); | |||||
export const PostJobapplicantUpdateexperience = postModel(url.JobapplicantUpdateexperience); | |||||
export const PostJobapplicantListexperience = getModel(url.JobapplicantListexperience); | |||||
export const PostJobapplicantExperiencedetail = getModel(url.JobapplicantExperiencedetail); | |||||
// 证书 | |||||
export const PostJobapplicantAddcertificate = postModel(url.JobapplicantAddcertificate); | |||||
export const PostJobapplicantUpdatecertificate = postModel(url.JobapplicantUpdatecertificate); | |||||
export const PostJobapplicantListcertificate = getModel(url.JobapplicantListcertificate); | |||||
export const PostJobapplicantCertificatedetail = getModel(url.JobapplicantCertificatedetail); | |||||
export const PostJobapplicantAddintroduction = postModel(url.JobapplicantAddintroduction); // 个人介绍 | |||||
export const PostJobapplicantDelintroduction = postModel(url.JobapplicantDelintroduction); // 个人介绍 | |||||
export const PostJobapplicantUpdateintroduction = postModel(url.JobapplicantUpdateintroduction); // 个人介绍 | |||||
export const GetJobapplicantListintroduction = getModel(url.JobapplicantListintroduction); // 个人介绍 | |||||
export const GetJobapplicantIntroductiondetail = getModel(url.JobapplicantIntroductiondetail); // 个人详情 |
<template> | |||||
<a-tree-select v-model:value="treecCascaderParentId" style="width: 100%" | |||||
:tree-data="treeData" tree-checkable allow-clear :show-checked-strategy="SHOW_PARENT" | |||||
:placeholder="placeholder" tree-node-filter-prop="label" | |||||
:fieldNames="listFieldNames" :maxTagCount="3" @change="parentChange" /> | |||||
</template> | |||||
<script lang="ts" setup> | |||||
import { ref, onMounted, defineProps, watch, defineEmits } from 'vue'; | |||||
import { GetDictTree } from '@/apis/models'; | |||||
import { TreeSelect } from 'ant-design-vue'; | |||||
const props = defineProps(['dict', 'placeholder', 'tree_content']); | |||||
let treeData = ref([]); | |||||
let treecCascaderParentId = ref<number[]>([]); | |||||
const listFieldNames = ref({ label: 'name', value: 'id', children: 'children' }); | |||||
let placeholder = ref('请选择'); | |||||
placeholder.value = props.placeholder | |||||
const SHOW_PARENT = TreeSelect.SHOW_ALL; | |||||
watch(() => [props.dict, props.tree_content], | |||||
(newVal, oldVal) => { | |||||
GetDictTree({ | |||||
code: newVal[0] | |||||
}).then(res => { | |||||
treeData.value = res.data.dicts | |||||
}) | |||||
treecCascaderParentId.value = newVal[1] | |||||
}, {immediate: true}) | |||||
// onMounted(() => { | |||||
// GetDictTree({ | |||||
// code: props.dict | |||||
// }).then(res => { | |||||
// treeData.value = res.data.dicts | |||||
// }) | |||||
// }) | |||||
const emit = defineEmits(); | |||||
const parentChange = (val) => { | |||||
emit('saveTreeNode', {arr1: val}); | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="职位类别"> | <a-form-item required label="职位类别"> | ||||
<a-tree-select v-model:value="createForm.job_type" style="width: 100%" | |||||
:tree-data="jobTypeData" tree-checkable allow-clear :show-checked-strategy="SHOW_PARENT" | |||||
placeholder="职位类别(最多三个,多选只取前三)" tree-node-filter-prop="label" | |||||
:fieldNames="jobTypeFieldNames" :maxTagCount="3" @change="jobTypeChange" /> | |||||
<a-shujilian :dict="2004" placeholder="职位类别(最多三个,多选只取前三)" @saveTreeNode="jobTypeChange" | |||||
:select_content="createForm.job_type"></a-shujilian> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="工作区域"> | <a-form-item required label="工作区域"> | ||||
<a-tree-select v-model:value="createForm.job_location" style="width: 100%" | |||||
:tree-data="jobAddressData" tree-checkable allow-clear | |||||
:show-checked-strategy="SHOW_PARENT" placeholder="工作区域(最多四个,多选只取前四)" | |||||
tree-node-filter-prop="label" :fieldNames="jobAddressFieldNames" :maxTagCount="4" | |||||
@change="jobAddressChange" /> | |||||
<a-shujilian :dict="2009" placeholder="工作区域(最多四个,多选只取前四)" @saveTreeNode="jobAddressChange" | |||||
:select_content="createForm.job_location"></a-shujilian> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, watch, defineEmits, defineProps } from 'vue'; | import { ref, onMounted, computed, watch, defineEmits, defineProps } from 'vue'; | ||||
import { GetDictTree, GetCompanyDepartmentList, PostCompanyJobAdd } from '@/apis/models'; | import { GetDictTree, GetCompanyDepartmentList, PostCompanyJobAdd } from '@/apis/models'; | ||||
import { TreeSelect } from 'ant-design-vue'; | |||||
import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
import { intersectionAlike } from '@/utils/dataHelper'; | import { intersectionAlike } from '@/utils/dataHelper'; | ||||
const emit = defineEmits(); | const emit = defineEmits(); | ||||
let jobTypeData = ref<Object[]>([]) | |||||
const jobTypeFieldNames = ref({ label: 'name', value: 'id', children: 'children' }); | |||||
let jobAddressData = ref<Object[]>([]) | |||||
const jobAddressFieldNames = ref({ label: 'name', value: 'id', children: 'children' }); | |||||
const SHOW_PARENT = TreeSelect.SHOW_ALL; | |||||
onMounted(async () => { | onMounted(async () => { | ||||
}) | }) | ||||
} | } | ||||
// 职位类别 | // 职位类别 | ||||
const jobTypeChange = (val) => { | |||||
createForm.value.job_type = val.slice(0, 3); | |||||
const jobTypeChange = (data) => { | |||||
createForm.value.job_type = data.arr1.slice(0, 3); | |||||
} | } | ||||
// 工作区域 | // 工作区域 | ||||
const jobAddressChange = (val) => { | const jobAddressChange = (val) => { | ||||
createForm.value.job_location = val.slice(0, 4); | |||||
createForm.value.job_location = data.arr1.slice(0, 4); | |||||
} | } | ||||
// 职位描述 | // 职位描述 |
<template> | |||||
<a-list item-layout="horizontal" :data-source="recruitmentList"> | |||||
<template #renderItem="{ item }"> | |||||
<a-list-item @click="toDetail(item)"> | |||||
<a-list-item-meta> | |||||
<template #title> | |||||
{{ item.title }} | |||||
</template> | |||||
</a-list-item-meta> | |||||
</a-list-item> | |||||
</template> | |||||
</a-list> | |||||
<a-pagination v-model:current="current" :total="500" style="text-align: center;" /> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, computed, onMounted, createVNode } from 'vue'; | |||||
import { PostRecruitmentList } from '@/apis/models'; | |||||
import { FileTextOutlined } from '@ant-design/icons-vue'; | |||||
import { Modal } from 'ant-design-vue'; | |||||
let recruitmentList = ref<object[]>([]) | |||||
onMounted(() => { | |||||
PostRecruitmentList().then(res => { | |||||
recruitmentList.value = res.data.recruitments | |||||
}) | |||||
}) | |||||
const toDetail = (data) => { | |||||
Modal.confirm({ | |||||
title: data.title, | |||||
icon: createVNode(FileTextOutlined), | |||||
content: createVNode('div', { innerHTML: data.content }), | |||||
width: '888px', | |||||
onOk() { | |||||
console.log('OK'); | |||||
}, | |||||
onCancel() { | |||||
console.log('Cancel'); | |||||
}, | |||||
class: 'test', | |||||
}); | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
<a-timeline> | |||||
<a-timeline-item>求职者领取求职登记表</a-timeline-item> | |||||
<a-timeline-item>写求职登记表(填表区设在一楼和三楼)</a-timeline-item> | |||||
<a-timeline-item>留一份求职登记表或个人简历给人才市场</a-timeline-item> | |||||
<a-timeline-item> | |||||
免费参加现场招聘会 | |||||
</a-timeline-item> | |||||
<a-timeline-item> | |||||
会后继续免费在菊城人才市场发布求职信息和免费推荐就业 | |||||
</a-timeline-item> | |||||
</a-timeline> | |||||
<a-typography> | |||||
<a-typography-title :level="3">★乘车指引</a-typography-title> | |||||
<a-typography-paragraph> | |||||
沙口总部:在小榄乘坐501、502、505路公交车(原榄运1、2、5),在江滨公园站下车即到(即菊城人才市场门口)。 | |||||
</a-typography-paragraph> | |||||
<a-typography-title :level="3">★菊城人才市场沙口总部地图</a-typography-title> | |||||
<a-typography-paragraph> | |||||
</a-typography-paragraph> | |||||
</a-typography> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, computed, onMounted } from 'vue'; | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
<a-timeline mode="alternate"> | |||||
<a-timeline-item>电话预定展位</a-timeline-item> | |||||
<a-timeline-item>传真(电邮)招聘资料</a-timeline-item> | |||||
<a-timeline-item>资料及展位号确认</a-timeline-item> | |||||
<a-timeline-item> | |||||
参会交费进场招聘 | |||||
</a-timeline-item> | |||||
</a-timeline> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
</script> | |||||
<style> | |||||
</style> |
<a-row :gutter="[10,10]"> | <a-row :gutter="[10,10]"> | ||||
<a-col span="12" v-for="(item, index) in list"> | <a-col span="12" v-for="(item, index) in list"> | ||||
<div class="talent-box"> | <div class="talent-box"> | ||||
<a-list item-layout="vertical"> | |||||
<!-- <a-list item-layout="vertical"> | |||||
<a-list-item> | <a-list-item> | ||||
<a-list-item-meta> | <a-list-item-meta> | ||||
<template #title> | <template #title> | ||||
<div v-html="item.introduction"></div> | <div v-html="item.introduction"></div> | ||||
</div> | </div> | ||||
</a-list-item> | </a-list-item> | ||||
</a-list> | |||||
<!-- <a-list item-layout="horizontal" :split="false" position="bottom"> | |||||
</a-list> --> | |||||
<a-list item-layout="horizontal" :split="false" position="bottom"> | |||||
<a-list-item> | <a-list-item> | ||||
<template #actions> | <template #actions> | ||||
<a-button> | <a-button> | ||||
</div> | </div> | ||||
</a-list-item> | </a-list-item> | ||||
</a-list> --> | |||||
</a-list> | |||||
</div> | </div> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> |
<template> | |||||
<job-talents :list="jobList"></job-talents> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, computed, onMounted } from 'vue'; | |||||
import JobTalents from '@/components/job/talents/index.vue' | |||||
import { PostJobseekerList } from '@/apis/models'; | |||||
let jobList = ref<object[]>([]) | |||||
onMounted(() => { | |||||
PostJobseekerList().then(res => { | |||||
if (res.data.list.length > 10) { | |||||
jobList.value = res.data.list.slice(0, 10) | |||||
} else { | |||||
jobList.value = res.data.list | |||||
} | |||||
}) | |||||
}) | |||||
</script> | |||||
<style scoped lang="less"> | |||||
</style> |
<a-col span="12"> | <a-col span="12"> | ||||
<a-row> | <a-row> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="关键字" name="full_name"> | |||||
<a-input v-model:value="value" placeholder="Basic usage" /> | |||||
<a-form-item label="关键字" name="keyword"> | |||||
<a-input v-model:value="createForm.keyword" placeholder="Basic usage" /> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="关键词匹配" name="registration_number"> | |||||
<a-form-item label="关键词匹配"> | |||||
<a-checkbox-group> | <a-checkbox-group> | ||||
<a-checkbox>求职意向</a-checkbox> | <a-checkbox>求职意向</a-checkbox> | ||||
<a-checkbox>工作经历</a-checkbox> | <a-checkbox>工作经历</a-checkbox> | ||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="应聘职位" name="mandarin"> | |||||
<!-- <a-c-cascader :dict="2009" @saveCascader="compantJiguanSave" placeholder="请选择籍贯" | |||||
:cascader_content="addOtherForm.company_jiguan_cascader"></a-c-cascader> --> | |||||
<a-form-item label="应聘职位"> | |||||
<a-shujilian :dict="2004" placeholder="职位类别(最多三个,多选只取前三)" @saveTreeNode="jobTypeChange" | |||||
:select_content="job_type"></a-shujilian> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="期望地区" name="mandarin"> | |||||
<!-- <a-c-cascader :dict="2009" @saveCascader="compantJiguanSave" placeholder="请选择籍贯" | |||||
:cascader_content="addOtherForm.company_jiguan_cascader"></a-c-cascader> --> | |||||
<a-form-item label="期望地区"> | |||||
<a-shujilian :dict="2009" placeholder="工作区域(最多四个,多选只取前四)" @saveTreeNode="jobAddressChange" | |||||
:select_content="job_location"></a-shujilian> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="户口所在地" name="mandarin"> | |||||
<!-- <a-c-cascader :dict="2009" @saveCascader="compantSuozaidiSave" placeholder="请选择所在地" | |||||
:cascader_content="addOtherForm.company_suozaidi_cascader"></a-c-cascader> --> | |||||
<a-form-item label="户口所在地"> | |||||
<a-jilian :dict="2009" @saveCascader="regLevelSave" placeholder="请选择籍贯" | |||||
:cascader_content="addOtherForm.company_jiguan_cascader"></a-jilian> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="学历"> | <a-form-item label="学历"> | ||||
<!-- <a-c-select :dict="2006" placeholder="请选择学历" @saveSelect="saveSchoolDegree"></a-c-select> --> | |||||
<a-xuanze :dict="2006" placeholder="请选择学历" @saveSelect="saveSchoolDegree" | |||||
:select_content="createForm.school_degree"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="英语"> | <a-form-item required label="英语"> | ||||
<!-- <a-c-select :dict="2014" placeholder="请选择职称要求" @saveSelect="saveProfelevel"></a-c-select> --> | |||||
<a-xuanze :dict="2007" placeholder="请选择掌握程度" @saveSelect="saveEnglish" | |||||
:select_content="createForm.language_degree"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="国语"> | <a-form-item required label="国语"> | ||||
<!-- <a-c-select :dict="2014" placeholder="请选择职称要求" @saveSelect="saveProfelevel"></a-c-select> --> | |||||
<a-xuanze :dict="2007" placeholder="请选择掌握程度" @saveSelect="saveMandarin" | |||||
:select_content="createForm.language_degree"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="粤语"> | <a-form-item required label="粤语"> | ||||
<!-- <a-c-select :dict="2014" placeholder="请选择职称要求" @saveSelect="saveProfelevel"></a-c-select> --> | |||||
<a-xuanze :dict="2007" placeholder="请选择掌握程度" @saveSelect="saveCantonese" | |||||
:select_content="createForm.language_degree"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="第二外语"> | <a-form-item required label="第二外语"> | ||||
<!-- <a-c-select :dict="2014" placeholder="请选择职称要求" @saveSelect="saveProfelevel"></a-c-select> --> | |||||
<a-xuanze :dict="2007" placeholder="请选择第二外语" @saveSelect="saveOtherLanguage" | |||||
:select_content="createForm.language"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="计算机能力"> | <a-form-item required label="计算机能力"> | ||||
<!-- <a-c-select :dict="2014" placeholder="请选择职称要求" @saveSelect="saveProfelevel"></a-c-select> --> | |||||
<a-input v-model:value="value" placeholder="请输入计算机能力" /> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="工作经验"> | <a-form-item required label="工作经验"> | ||||
<!-- <a-c-select :dict="2021" placeholder="请选择工作经验" @saveSelect="saveExperience"></a-c-select> --> | |||||
<a-xuanze :dict="2021" placeholder="请选择工作经验" @saveSelect="saveExperience" | |||||
:select_content="createForm.experience"></a-xuanze> | |||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="性别" name="sex"> | <a-form-item label="性别" name="sex"> | ||||
<a-radio-group v-model:value="createForm.sex" button-style="solid"> | |||||
<a-radio-button :value="1">男</a-radio-button> | |||||
<a-radio-button :value="2">女</a-radio-button> | |||||
<a-radio-button :value="3">不限</a-radio-button> | |||||
<a-radio-group v-model:value="createForm.gender" button-style="solid"> | |||||
<a-radio-button value="男">男</a-radio-button> | |||||
<a-radio-button value="女">女</a-radio-button> | |||||
<a-radio-button value="不限">不限</a-radio-button> | |||||
</a-radio-group> | </a-radio-group> | ||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
placeholder="请输入最小年龄" style="width: 100%;" /> | placeholder="请输入最小年龄" style="width: 100%;" /> | ||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item label="最大年龄" name="age_max"> | <a-form-item label="最大年龄" name="age_max"> | ||||
<a-input-number :min="0" type="number" v-model:value="createForm.age_max" | <a-input-number :min="0" type="number" v-model:value="createForm.age_max" | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-form-item required label="简历更新" name="marital_status"> | <a-form-item required label="简历更新" name="marital_status"> | ||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
<a-input v-model:value="createForm.major" placeholder="请输入专业" /> | <a-input v-model:value="createForm.major" placeholder="请输入专业" /> | ||||
</a-form-item> | </a-form-item> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | |||||
<a-form-item label="搜索"> | |||||
<a-button type="primary" block @click="saveForm">搜索</a-button> | |||||
</a-form-item> | |||||
</a-col> | |||||
</a-row> | </a-row> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> | ||||
</a-form> | </a-form> | ||||
<a-button block>保存</a-button> | |||||
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | ||||
// import dayjs from 'dayjs'; | |||||
// import 'dayjs/locale/zh-cn'; | |||||
// dayjs.locale('zh-cn'); | |||||
// const dayjsRef = ref(dayjs); | |||||
let createForm : companyListType.addrFormType = ref({ | let createForm : companyListType.addrFormType = ref({ | ||||
full_name: '', | |||||
registration_number: '', | |||||
establishment_date: '', | |||||
contact: '', | |||||
phone: '', | |||||
mobile: '', | |||||
email: '', | |||||
fax: '', | |||||
website: '', | |||||
province: 0, | |||||
city: 0, | |||||
district: 0, | |||||
street: 0, | |||||
address: '', | |||||
industry: 0, | |||||
nature: 0, | |||||
scale: 0, | |||||
introduction: '', | |||||
photo: '', | |||||
photo_status: 1, | |||||
license_path: '', | |||||
license_status: 1, | |||||
login_name: '', | |||||
login_pwd: '', | |||||
company_photos: [], | |||||
}) | |||||
let addOtherForm = ref<companyListType.addOtherFormType>({ | |||||
chengli_date: '', | |||||
content: '', | |||||
photo_img: '', | |||||
license_img: '', | |||||
company_photo_img: '', | |||||
company_address_cascader: '', | |||||
company_industry_cascader: '', | |||||
company_nature_cascader: '', | |||||
company_scale_cascader: '', | |||||
keyword: "", | |||||
gender: "女", | |||||
title: 0, | |||||
education: 0, | |||||
marital_status: 0, | |||||
ethnicity: 0, | |||||
reg_level1: 0, | |||||
reg_level2: 0, | |||||
reg_level3: 0, | |||||
reg_level4: 0, | |||||
now_level1: 0, | |||||
now_level2: 0, | |||||
now_level3: 0, | |||||
now_level4: 0, | |||||
maxdob: "9999-12-31 23:59:59", | |||||
mindob: "1000-01-01 00:00:00", | |||||
maxheight: 230, | |||||
minheight: 60, | |||||
maxweight: 200, | |||||
minweight: 30, | |||||
political_status: 0, | |||||
native_place: 0, | |||||
desire_area: [], | |||||
desire_position: [], | |||||
desire_industry: [], | |||||
job_type_desire: 0, | |||||
talent_type_desire: 0, | |||||
max_work_experience: 0, | |||||
min_work_experience: 0, | |||||
salary_range_desire: 0, | |||||
available_date_desire: 0, | |||||
title_requirement_desire: 0, | |||||
skill_certification_desire: 0, | |||||
english: 0, | |||||
mandarin: 0, | |||||
cantonese: 0, | |||||
other_language: 0, | |||||
sort: "id", | |||||
sortby: "asc", | |||||
page: 1, | |||||
pagesize: 20 | |||||
}) | }) | ||||
onMounted(async () => { | |||||
// let res = await listSection({ page: 1, pagesize: 10, sort: 'id', sortby: "asc", keyword: "" }); | |||||
// section_list.value = res.data.sections; | |||||
let addOtherForm : companyListType.addrFormType = ref({ | |||||
company_jiguan_cascader: [] | |||||
}) | }) | ||||
// 上传图片 | |||||
// 企业照片 | |||||
// const uploadPhotoSuccess = (data : Object) => { | |||||
// addOtherForm.value.photo_img = "http://114.132.245.7:242494" + data | |||||
// createForm.value.photo = data | |||||
// } | |||||
// // 营业执照 | |||||
// const uploadLicenseSuccess = (data : Object) => { | |||||
// addOtherForm.value.license_img = "http://114.132.245.7:242494" + data | |||||
// createForm.value.license_path = data | |||||
// } | |||||
// // 企业相册 | |||||
// const uploadSuccess = (data : Object) => { | |||||
// addOtherForm.value.company_photo_img = "http://114.132.245.7:242494" + data | |||||
// createForm.value.company_photos.push({ photo: data }) | |||||
// } | |||||
// // 成立日期 | |||||
// const establishmentDateChange = (val) => { | |||||
// createForm.value.establishment_date = dayjsRef.value(val).format('YYYY-MM-DD'); | |||||
// } | |||||
// // 选择地址 | |||||
// const compantAddressSave = (data) => { | |||||
// createForm.value.province = data.arr1[0] ? data.arr1[0] : 0; | |||||
// createForm.value.city = data.arr1[1] ? data.arr1[1] : 0; | |||||
// createForm.value.district = data.arr1[2] ? data.arr1[2] : 0; | |||||
// createForm.value.street = data.arr1[3] ? data.arr1[3] : 0; | |||||
// } | |||||
// // 所属行业 industrySave | |||||
// const industrySave = (data) => { | |||||
// createForm.value.industry = data.arr1[1] ? data.arr1[1] : 0; | |||||
// } | |||||
// // 企业性质 | |||||
// const natureSave = (data) => { | |||||
// createForm.value.nature = data.arr1[1] ? data.arr1[1] : 0; | |||||
// } | |||||
// // 企业规模 | |||||
// const scaleSave = (data) => { | |||||
// createForm.value.scale = data.val ? data.val : 0; | |||||
// } | |||||
// // 富文本 | |||||
// const onEditorUpdate = (data) => { | |||||
// createForm.value.introduction = data | |||||
// } | |||||
// const sumbitForm = () => { | |||||
// console.log(createForm.value) | |||||
// if (createForm.value.full_name) { | |||||
// if (!createForm.value.id) { | |||||
// addCompany(createForm.value).then(res => { | |||||
// message.success('新增企业成功'); | |||||
// hideModal(); | |||||
// resetForm(); | |||||
// emit('successAdd'); | |||||
// }).catch(err => { | |||||
// }) | |||||
// } else { | |||||
// PostCompanyEdit(createForm.value).then(res => { | |||||
// message.success('修改企业信息成功'); | |||||
// hideModal(); | |||||
// resetForm(); | |||||
// emit('successAdd'); | |||||
// }).catch(err => { | |||||
// }) | |||||
// } | |||||
// } else { | |||||
// message.warning('请补充完整信息'); | |||||
// } | |||||
// } | |||||
// 户口所在地 | |||||
const regLevelSave = (data) => { | |||||
for (let i = 0; i < 4; i++) { | |||||
createForm.value[`reg_level${i + 1}`] = data.arr1[i] || 0; | |||||
} | |||||
} | |||||
// 学历要求 | |||||
const saveSchoolDegree = (data) => { | |||||
createForm.value.education = data.val.key; | |||||
} | |||||
// 英语掌握程度 | |||||
const saveEnglish = (data) => { | |||||
createForm.value.english = data.val.key;; | |||||
} | |||||
// 国语掌握程度 | |||||
const saveMandarin = (data) => { | |||||
createForm.value.mandarin = data.val.key;; | |||||
} | |||||
// 粤语掌握程度 | |||||
const saveCantonese = (data) => { | |||||
createForm.value.cantonese = data.val.key;; | |||||
} | |||||
// 第二外语 | |||||
const saveOtherLanguage = (data) => { | |||||
createForm.value.other_language = data.val.key;; | |||||
} | |||||
// 工作经验 | |||||
const saveExperience = (data) => { | |||||
createForm.value.experience = data.val.key; | |||||
} | |||||
</script> | </script> | ||||
<style> | <style> |
import CommonLeftSider from '@/components/common/left-sider.vue'; | import CommonLeftSider from '@/components/common/left-sider.vue'; | ||||
import ABiaoge from '@/components/biaoge/index.vue'; | import ABiaoge from '@/components/biaoge/index.vue'; | ||||
import AJilian from '@/components/form/jilian.vue'; | import AJilian from '@/components/form/jilian.vue'; | ||||
import AShujilian from '@/components/form/shujilian.vue'; | |||||
import AXuanze from '@/components/form/xuanze.vue'; | import AXuanze from '@/components/form/xuanze.vue'; | ||||
import { routesModuleList } from '@/router/dynamic'; | import { routesModuleList } from '@/router/dynamic'; | ||||
import { routesManageModuleList } from '@/router/manageDynamic'; | import { routesManageModuleList } from '@/router/manageDynamic'; | ||||
app.component('common-left-sider', CommonLeftSider); | app.component('common-left-sider', CommonLeftSider); | ||||
app.component('a-biaoge', ABiaoge); | app.component('a-biaoge', ABiaoge); | ||||
app.component('a-jilian', AJilian); | app.component('a-jilian', AJilian); | ||||
app.component('a-shujilian', AShujilian); | |||||
app.component('a-xuanze', AXuanze); | app.component('a-xuanze', AXuanze); | ||||
app.component('QuillEditor', QuillEditor) | app.component('QuillEditor', QuillEditor) | ||||
app.use(router); | app.use(router); |
<template> | <template> | ||||
<a-row> | <a-row> | ||||
<a-col span="4"> | <a-col span="4"> | ||||
<a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||||
<a-menu-item key="1">招聘会预定</a-menu-item> | |||||
<a-menu-item key="2">企业参会方式</a-menu-item> | |||||
<a-menu-item key="3">求职者参会指南</a-menu-item> | |||||
<a-menu-item key="4">乘车路线</a-menu-item> | |||||
<a-menu-item key="5">绿色通道</a-menu-item> | |||||
<a-menu-item key="6">联系方式</a-menu-item> | |||||
</a-menu> | |||||
<common-left-sider :menu_list="menu_list" :selected_key="[1]" | |||||
@changeKey="changeKey"></common-left-sider> | |||||
</a-col> | </a-col> | ||||
<a-col span="16"> | <a-col span="16"> | ||||
<div style="width: 100%;background-color: #fff;padding: 10px;"> | <div style="width: 100%;background-color: #fff;padding: 10px;"> | ||||
<a-list item-layout="horizontal" :data-source="data"> | |||||
<template #renderItem="{ item }"> | |||||
<a-list-item> | |||||
<a-list-item-meta | |||||
description="Ant Design, a design language for background applications, is refined by Ant UED Team"> | |||||
<template #title> | |||||
<a href="https://www.antdv.com/">{{ item.title }}</a> | |||||
</template> | |||||
</a-list-item-meta> | |||||
</a-list-item> | |||||
</template> | |||||
</a-list> | |||||
<a-pagination v-model:current="current" :total="500" style="text-align: center;" /> | |||||
<meet-booking v-if="curKey == 1"></meet-booking> | |||||
<meet-method v-if="curKey == 2"></meet-method> | |||||
<meet-guide v-if="curKey == 3"></meet-guide> | |||||
</div> | </div> | ||||
</a-col> | </a-col> | ||||
<a-col span="4"> | <a-col span="4"> | ||||
</a-list> | </a-list> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> | ||||
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, watch } from 'vue'; | |||||
const openKeys = ref<string[]>(['1']); | |||||
const selectedKeys = ref<string[]>(['1']); | |||||
interface DataItem { | |||||
title : string; | |||||
import { ref, computed, onMounted } from 'vue'; | |||||
import MeetBooking from '@/components/job/meet/booking/index.vue' | |||||
import MeetMethod from '@/components/job/meet/method/index.vue' | |||||
import MeetGuide from '@/components/job/meet/guide/index.vue' | |||||
let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||||
let menu_list = ref([{ name: '招聘会预定', key: 1 },{ name: '企业参会方式', key: 2},{ name: '求职者参会指南', key: 3},{ name: '乘车路线', key: 4},{ name: '绿色通道', key: 5},{ name: '联系方式', key: 6}]) | |||||
let curKey = ref<Number>(1) | |||||
const changeKey = (data) => { | |||||
curKey.value = data.key; | |||||
} | } | ||||
const data : DataItem[] = ref([ | |||||
{ | |||||
title: 'Ant Design Title 1', | |||||
}, | |||||
{ | |||||
title: 'Ant Design Title 2', | |||||
}, | |||||
{ | |||||
title: 'Ant Design Title 3', | |||||
}, | |||||
{ | |||||
title: 'Ant Design Title 4', | |||||
}, | |||||
]) | |||||
</script> | </script> | ||||
<style> | <style> |
<a-col span="20"> | <a-col span="20"> | ||||
<div style="width: 100%;background-color: #fff;padding: 10px;"> | <div style="width: 100%;background-color: #fff;padding: 10px;"> | ||||
<resume-search v-if="curKey == 1"></resume-search> | <resume-search v-if="curKey == 1"></resume-search> | ||||
<resume-result v-if="curKey == 2"></resume-result> | |||||
</div> | </div> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, computed, onMounted } from 'vue'; | import { ref, computed, onMounted } from 'vue'; | ||||
import ResumeSearch from '@/components/resume/search/index.vue' | import ResumeSearch from '@/components/resume/search/index.vue' | ||||
let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||||
let menu_list = ref([{ name: '简历搜索', key: 1 }]) | |||||
import ResumeResult from '@/components/resume/result/index.vue' | |||||
let menu_list = ref([{ name: '简历搜索', key: 1 },{ name: '搜索结果', key: 2 }]) | |||||
let curKey = ref<Number>(1) | let curKey = ref<Number>(1) | ||||
const changeKey = (data) => { | const changeKey = (data) => { | ||||
curKey.value = data.key; | curKey.value = data.key; |