@@ -72,4 +72,70 @@ export const PostRecruitmentbookAdd = postModel(url.RecruitmentbookAdd); // 添 | |||
export const PostRecruitmentbookDel = postModel(url.RecruitmentbookDel); // 删除 | |||
export const PostRecruitmentbookUpdate = postModel(url.RecruitmentbookUpdate); // 编辑 | |||
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); // 个人详情 |
@@ -0,0 +1,43 @@ | |||
<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> |
@@ -33,19 +33,14 @@ | |||
</a-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
@@ -117,7 +112,6 @@ | |||
<script setup lang="ts"> | |||
import { ref, onMounted, computed, watch, defineEmits, defineProps } from 'vue'; | |||
import { GetDictTree, GetCompanyDepartmentList, PostCompanyJobAdd } from '@/apis/models'; | |||
import { TreeSelect } from 'ant-design-vue'; | |||
import { warnToast, successToast } from '@/utils/toastHelper'; | |||
import { intersectionAlike } from '@/utils/dataHelper'; | |||
const emit = defineEmits(); | |||
@@ -211,11 +205,7 @@ | |||
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 () => { | |||
}) | |||
@@ -233,12 +223,12 @@ | |||
} | |||
// 职位类别 | |||
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) => { | |||
createForm.value.job_location = val.slice(0, 4); | |||
createForm.value.job_location = data.arr1.slice(0, 4); | |||
} | |||
// 职位描述 |
@@ -0,0 +1,45 @@ | |||
<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> |
@@ -0,0 +1,29 @@ | |||
<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> |
@@ -0,0 +1,18 @@ | |||
<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> |
@@ -2,7 +2,7 @@ | |||
<a-row :gutter="[10,10]"> | |||
<a-col span="12" v-for="(item, index) in list"> | |||
<div class="talent-box"> | |||
<a-list item-layout="vertical"> | |||
<!-- <a-list item-layout="vertical"> | |||
<a-list-item> | |||
<a-list-item-meta> | |||
<template #title> | |||
@@ -30,8 +30,8 @@ | |||
<div v-html="item.introduction"></div> | |||
</div> | |||
</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> | |||
<template #actions> | |||
<a-button> | |||
@@ -75,7 +75,7 @@ | |||
</div> | |||
</a-list-item> | |||
</a-list> --> | |||
</a-list> | |||
</div> | |||
</a-col> | |||
<a-col span="24"> |
@@ -0,0 +1,26 @@ | |||
<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> |
@@ -4,12 +4,12 @@ | |||
<a-col span="12"> | |||
<a-row> | |||
<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-col> | |||
<a-col span="24"> | |||
<a-form-item label="关键词匹配" name="registration_number"> | |||
<a-form-item label="关键词匹配"> | |||
<a-checkbox-group> | |||
<a-checkbox>求职意向</a-checkbox> | |||
<a-checkbox>工作经历</a-checkbox> | |||
@@ -19,26 +19,27 @@ | |||
</a-form-item> | |||
</a-col> | |||
<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-col> | |||
<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-col> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
@@ -51,42 +52,47 @@ | |||
</a-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-col> | |||
<a-col span="24"> | |||
<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-form-item> | |||
</a-col> | |||
@@ -96,7 +102,7 @@ | |||
placeholder="请输入最小年龄" style="width: 100%;" /> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="24"> | |||
<a-form-item label="最大年龄" name="age_max"> | |||
<a-input-number :min="0" type="number" v-model:value="createForm.age_max" | |||
@@ -105,7 +111,7 @@ | |||
</a-col> | |||
<a-col span="24"> | |||
<a-form-item required label="简历更新" name="marital_status"> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="24"> | |||
@@ -113,145 +119,106 @@ | |||
<a-input v-model:value="createForm.major" placeholder="请输入专业" /> | |||
</a-form-item> | |||
</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-col> | |||
</a-row> | |||
</a-form> | |||
<a-button block>保存</a-button> | |||
</template> | |||
<script setup lang="ts"> | |||
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({ | |||
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> | |||
<style> |
@@ -12,6 +12,7 @@ import '@vueup/vue-quill/dist/vue-quill.snow.css'; | |||
import CommonLeftSider from '@/components/common/left-sider.vue'; | |||
import ABiaoge from '@/components/biaoge/index.vue'; | |||
import AJilian from '@/components/form/jilian.vue'; | |||
import AShujilian from '@/components/form/shujilian.vue'; | |||
import AXuanze from '@/components/form/xuanze.vue'; | |||
import { routesModuleList } from '@/router/dynamic'; | |||
import { routesManageModuleList } from '@/router/manageDynamic'; | |||
@@ -44,6 +45,7 @@ const app = createApp(App); | |||
app.component('common-left-sider', CommonLeftSider); | |||
app.component('a-biaoge', ABiaoge); | |||
app.component('a-jilian', AJilian); | |||
app.component('a-shujilian', AShujilian); | |||
app.component('a-xuanze', AXuanze); | |||
app.component('QuillEditor', QuillEditor) | |||
app.use(router); |
@@ -1,30 +1,14 @@ | |||
<template> | |||
<a-row> | |||
<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 span="16"> | |||
<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> | |||
</a-col> | |||
<a-col span="4"> | |||
@@ -38,32 +22,18 @@ | |||
</a-list> | |||
</a-col> | |||
</a-row> | |||
</template> | |||
<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> | |||
<style> |
@@ -10,6 +10,7 @@ | |||
<a-col span="20"> | |||
<div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
<resume-search v-if="curKey == 1"></resume-search> | |||
<resume-result v-if="curKey == 2"></resume-result> | |||
</div> | |||
</a-col> | |||
</a-row> | |||
@@ -21,8 +22,8 @@ | |||
<script setup lang="ts"> | |||
import { ref, computed, onMounted } from '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) | |||
const changeKey = (data) => { | |||
curKey.value = data.key; |