@@ -1 +1 @@ | |||
import{d as p,r as c,o as _,c as r,a as e,b as l,w as d,e as i,f as t,p as h,g as m,_ as u}from"./index-OeauJ6Cb.js";const s=o=>(h("data-v-7bdb0e8f"),o=o(),m(),o),f={class:"nopage"},b=s(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=s(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),g=s(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=s(()=>e("p",null,"你页面走丢了~",-1)),x=p({__name:"404",setup(o){const a=()=>{sessionStorage.pageType=="company"?t.push("/manage/home"):sessionStorage.pageType=="personal"?t.push("/jobseeker/home"):t.push("/job/home")};return(C,S)=>{const n=c("a-button");return _(),r("div",f,[b,y,g,e("div",null,[v,e("p",null,[l(n,{type:"primary",onClick:a},{default:d(()=>[i("返回首页")]),_:1})])])])}}}),I=u(x,[["__scopeId","data-v-7bdb0e8f"]]);export{I as default}; | |||
import{d as p,r as c,o as _,c as r,a as e,b as l,w as d,e as i,f as t,p as h,g as m,_ as u}from"./index-RyO6NBin.js";const s=o=>(h("data-v-7bdb0e8f"),o=o(),m(),o),f={class:"nopage"},b=s(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=s(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),g=s(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=s(()=>e("p",null,"你页面走丢了~",-1)),x=p({__name:"404",setup(o){const a=()=>{sessionStorage.pageType=="company"?t.push("/manage/home"):sessionStorage.pageType=="personal"?t.push("/jobseeker/home"):t.push("/job/home")};return(C,S)=>{const n=c("a-button");return _(),r("div",f,[b,y,g,e("div",null,[v,e("p",null,[l(n,{type:"primary",onClick:a},{default:d(()=>[i("返回首页")]),_:1})])])])}}}),I=u(x,[["__scopeId","data-v-7bdb0e8f"]]);export{I as default}; |
@@ -6,8 +6,8 @@ | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
<script src="https://map.qq.com/api/gljs?v=1.exp&key=MPBBZ-HUICZ-EGRXB-7AHZI-R4GQZ-QWBSO"></script> | |||
<title>菊城人才网</title> | |||
<script type="module" crossorigin src="/assets/index-OeauJ6Cb.js"></script> | |||
<link rel="stylesheet" crossorigin href="/assets/index-SrxA0nSF.css"> | |||
<script type="module" crossorigin src="/assets/index-RyO6NBin.js"></script> | |||
<link rel="stylesheet" crossorigin href="/assets/index-65rjqZXi.css"> | |||
</head> | |||
<body> | |||
<div id="app"></div> |
@@ -1,5 +1,5 @@ | |||
<template> | |||
<div v-if="needPre"> | |||
<div v-if="needPre" > | |||
<img :src="imgObj.src" alt="" | |||
:style="{width: imgObj.width,height: imgObj.height,'object-fit': imgObj.mode, 'border-radius': 0} " | |||
@click="preImage(imgObj.src)"> | |||
@@ -8,7 +8,7 @@ | |||
<img :src="imgObj.src" style="width: 100%; height: 100%;"> | |||
</div> | |||
</a-modal> | |||
</div> | |||
</div> | |||
<div v-else> | |||
<img :src="imgObj.src" alt="" | |||
:style="{width: imgObj.width,height: imgObj.height,'object-fit': imgObj.mode, 'border-radius': 0} "> | |||
@@ -32,7 +32,7 @@ | |||
let needPre = ref<Boolean>(props.need) | |||
let imageBigOpen = ref<Boolean>(false) | |||
interface imgType { | |||
src ?: String, | |||
width ?: Number, |
@@ -122,8 +122,7 @@ | |||
</a-form> | |||
</template> | |||
<template v-else> | |||
<a-descriptions :title="basic.full_name" :column="3"> | |||
</a-descriptions> | |||
<a-descriptions :title="basic.full_name" :column="3"> </a-descriptions> | |||
<a-descriptions :column="3"> | |||
<a-descriptions-item label="注册号"> | |||
{{basic.registration_number ? basic.registration_number : '未知'}} |
@@ -3,7 +3,7 @@ | |||
<template v-if="!jobList || jobList.length == 0"> | |||
<a-empty style="height: 100vh;"> | |||
<template #description> | |||
无职位信息 | |||
无投递信息 | |||
</template> | |||
</a-empty> | |||
</template> | |||
@@ -14,8 +14,20 @@ | |||
<template #extra> | |||
<div>企业查看状态:{{item.status_text}}</div> | |||
</template> | |||
<div>投递时间:{{item.created_at}}</div> | |||
<div>企业名称:{{item.company_name}}</div> | |||
<a-row> | |||
<a-col span="20"> | |||
<div>投递时间:{{item.created_at}}</div> | |||
<div>企业名称:{{item.company_name}}</div> | |||
</a-col> | |||
<a-col span="4"> | |||
<a-popover trigger="click" placement="right"> | |||
<template #content> | |||
<job-detail v-if="detail_record" :detail_record="detail_record"></job-detail> | |||
</template> | |||
<a-button @click="detail(item.job_id)" type="primary">详情</a-button> | |||
</a-popover> | |||
</a-col> | |||
</a-row> | |||
</a-card> | |||
</a-col> | |||
<a-col span="24"> | |||
@@ -31,10 +43,11 @@ | |||
<script setup lang="ts"> | |||
import { ref, computed, onMounted, defineEmits, createVNode } from 'vue'; | |||
import JobDetail from '@/components/jobseeker/invite/detail/index.vue' | |||
import { GetJobseekListapplication } from '@/apis/models'; | |||
import { warnToast, successToast } from '@/utils/toastHelper'; | |||
import { useCommon } from '@/hooks/useCommon'; | |||
let { store, commomParams, dayjs, richOption, ExclamationCircleOutlined, Modal } = useCommon(); | |||
let { store, commomParams, dayjs, richOption, ExclamationCircleOutlined, Modal, showOtherModal1 } = useCommon(); | |||
const emit = defineEmits(); | |||
let loading = ref<Boolean>(true); | |||
let jobList = ref([]); | |||
@@ -93,6 +106,12 @@ | |||
// sessionStorage.setItem('mode', 'detail') | |||
// emit('detail') | |||
// } | |||
let detail_record = ref<Object>(null) | |||
const detail = (record) => { | |||
detail_record.value = record; | |||
showOtherModal1() | |||
} | |||
onMounted(() => { |
@@ -2,7 +2,7 @@ | |||
<template v-if="!jobList || jobList.length == 0"> | |||
<a-empty style="height: 100vh;"> | |||
<template #description> | |||
无职位信息 | |||
无收藏信息 | |||
</template> | |||
</a-empty> | |||
</template> |
@@ -1,31 +1,34 @@ | |||
<template> | |||
<a-spin :spinning="spinning"> | |||
<template v-if="detail"> | |||
<a-card :title="detail.base.name" style="width: 500px;" :bordered="false"> | |||
<template #extra>{{detail.base.pay_range_text}}</template> | |||
<a-flex style="width: 100%;"> | |||
<a-descriptions :column="1" title="职位描述"> | |||
<a-descriptions-item label="职位性质">{{detail.company.nature_text}}</a-descriptions-item> | |||
<a-descriptions-item label="招聘人数">{{detail.base.invite_count}}人</a-descriptions-item> | |||
<a-descriptions-item | |||
label="工作地区">{{detail.locations ? detail.locations[0].name : '未知地址'}}</a-descriptions-item> | |||
<a-descriptions-item label="月新范围">{{detail.base.pay_range_text}}</a-descriptions-item> | |||
<a-descriptions-item label="食宿条件">{{detail.base.shisu_text}}</a-descriptions-item> | |||
<a-descriptions-item label="节假日">{{detail.base.holidays_text}}</a-descriptions-item> | |||
<a-descriptions-item label="有效期">{{detail.base.disabled_date}}</a-descriptions-item> | |||
<a-descriptions-item label="有效期至">{{detail.base.name}}</a-descriptions-item> | |||
<a-descriptions-item label="联系人">{{detail.contact.contact}}</a-descriptions-item> | |||
<a-descriptions-item | |||
label="职业类别">{{detail.base.types ? detail.base.types[0].name : '未知'}}</a-descriptions-item> | |||
<a-descriptions-item label="联系电话">{{detail.contact.mobile}} <a-button size="small"> | |||
查看 | |||
</a-button></a-descriptions-item> | |||
<a-descriptions-item></a-descriptions-item> | |||
<a-descriptions-item label="职业描述"> | |||
<div v-html="detail.base.describe_text"></div></a-descriptions-item> | |||
</a-descriptions> | |||
</a-flex> | |||
<a-card :title="detail.base.name" style="width: 700px;height: 80vh;overflow: auto;" :bordered="false"> | |||
<template #extra>{{detail.base.pay_range_text}}</template> | |||
<a-descriptions :column="1" title="职位描述" style="width: 100%;"> | |||
<a-descriptions-item label="职位性质">{{detail.company.nature_text}}</a-descriptions-item> | |||
<a-descriptions-item label="招聘人数">{{detail.base.invite_count}}人</a-descriptions-item> | |||
<a-descriptions-item | |||
label="工作地区">{{detail.locations ? detail.locations[0].name : '未知地址'}}</a-descriptions-item> | |||
<a-descriptions-item label="月新范围">{{detail.base.pay_range_text}}</a-descriptions-item> | |||
<a-descriptions-item label="食宿条件">{{detail.base.shisu_text}}</a-descriptions-item> | |||
<a-descriptions-item label="节假日">{{detail.base.holidays_text}}</a-descriptions-item> | |||
<a-descriptions-item label="有效期">{{detail.base.disabled_date}}</a-descriptions-item> | |||
<a-descriptions-item label="有效期至">{{detail.base.name}}</a-descriptions-item> | |||
<a-descriptions-item label="联系人">{{detail.contact.contact}}</a-descriptions-item> | |||
<a-descriptions-item label="职业类别"> | |||
{{detail.base.types ? detail.base.types[0].name : '未知'}}</a-descriptions-item> | |||
<a-descriptions-item label="联系电话"> | |||
{{detail.contact.mobile}} | |||
<a-button size="small"> | |||
查看 | |||
</a-button> | |||
</a-descriptions-item> | |||
</a-descriptions> | |||
<a-descriptions :column="1" title="岗位要求" style="width: 100%;"> | |||
<a-descriptions-item > | |||
<div v-html="detail.base.describe_text"></div> | |||
</a-descriptions-item> | |||
</a-descriptions> | |||
</a-card> | |||
</template> | |||
</a-spin> | |||
@@ -45,7 +48,7 @@ | |||
openOtherModel_1 = computed(() => { | |||
return store.state.openOtherModel_1; | |||
}) | |||
watch(() => [props.detail_record], (newVal) => { | |||
if (newVal[0]) { |
@@ -3,7 +3,7 @@ | |||
<template v-if="!jobList || jobList.length == 0"> | |||
<a-empty style="height: 100vh;"> | |||
<template #description> | |||
无职位信息 | |||
无面试信息 | |||
</template> | |||
</a-empty> | |||
</template> | |||
@@ -24,7 +24,7 @@ | |||
<div>面试企业:{{item.company_name}}</div> | |||
</a-col> | |||
<a-col span="4"> | |||
<a-popover trigger="click" placement="rightTop"> | |||
<a-popover trigger="click" placement="right"> | |||
<template #content> | |||
<job-detail v-if="detail_record" :detail_record="detail_record"></job-detail> | |||
</template> |
@@ -205,7 +205,7 @@ | |||
watch(() => [props.detail_record], (newVal) => { | |||
if (newVal[0]) { | |||
spinning.value = false | |||
GetJobseekerDetail({ customer_id: props.detail_record.customer_id }).then(res => { | |||
GetJobseekerDetail({ customer_id: props.detail_record.customer_id, id: detail_record.id }).then(res => { | |||
detail.value = res.data | |||
console.log(detail.value) | |||
}) | |||
@@ -239,7 +239,7 @@ | |||
// padding-top: 6px; | |||
} | |||
.text-decoration { | |||
position: relative; | |||
display: inline-block; |
@@ -1,14 +1,15 @@ | |||
<template> | |||
<template v-if="state"> | |||
<a-form :model="createForm" layout="vertical" class="resume-form"> | |||
<a-form :model="createForm" layout="vertical" class="resume-form"> | |||
<a-row :gutter="20"> | |||
<a-col span="12"> | |||
<a-form-item label="工作时间"> | |||
<a-range-picker v-model:value="time" @Change="getRange" picker="month" size="large" style="width: 100%;"/> | |||
<a-form-item label="工作时间"> | |||
<a-range-picker v-model:value="time" @Change="getRange" picker="month" size="large" | |||
style="width: 100%;" /> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="12"> | |||
<a-form-item label="是否至今"> | |||
<a-form-item label="是否至今"> | |||
<a-radio-group v-model:value="createForm.end_today" button-style="solid" size="large" | |||
style="width: 100%;"> | |||
<a-radio-button :value="1" style="width: 50%;">非至今</a-radio-button> | |||
@@ -18,23 +19,23 @@ | |||
</a-col> | |||
<a-col span="12"> | |||
<a-form-item label="公司名称" name="company_name"> | |||
<a-input v-model:value="createForm.company_name" placeholder="请输入公司名称" size="large"/> | |||
<a-input v-model:value="createForm.company_name" placeholder="请输入公司名称" size="large" /> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="12"> | |||
<a-form-item required label="职位" name="position"> | |||
<a-input v-model:value="createForm.position" placeholder="请输入职位" size="large"/> | |||
<a-form-item label="职位" name="position"> | |||
<a-input v-model:value="createForm.position" placeholder="请输入职位" size="large" /> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="12"> | |||
<a-form-item label="离职原因" name="reason_for_leaving"> | |||
<a-input v-model:value="createForm.reason_for_leaving" placeholder="请输入离职原因" size="large"/> | |||
<a-input v-model:value="createForm.reason_for_leaving" placeholder="请输入离职原因" size="large" /> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="24"> | |||
<a-flex justify="flex-end"> | |||
<a-space> | |||
<a-button @click="resetForm" size="large">取消</a-button> | |||
<a-button @click="resetForm" size="large">取消</a-button> | |||
<a-button type="primary" @click="saveForm" size="large">保存</a-button> | |||
</a-space> | |||
</a-flex> | |||
@@ -44,15 +45,15 @@ | |||
</template> | |||
<template v-else> | |||
<a-list :data-source=" experienceList"> | |||
<template #loadMore v-if="experienceList.length > 0"> | |||
<template #loadMore v-if="experienceList.length > 0"> | |||
<a-flex justify="center"> | |||
<a-space> | |||
<div v-if="!loading" > | |||
<div v-if="!loading"> | |||
<a-button @click="onLoadMore">加载更多</a-button> | |||
</div> | |||
</a-space> | |||
</a-flex> | |||
</template> | |||
<template #renderItem="{ item }"> | |||
<a-list-item> | |||
@@ -83,7 +84,7 @@ | |||
<script setup lang="ts"> | |||
import { ref, onMounted, computed, defineProps, watch, defineEmits, createVNode } from 'vue'; | |||
import { PostJobapplicantAddexperience,PostJobapplicantDelexperience,PostJobapplicantUpdateexperience,PostJobapplicantListexperience,PostJobapplicantExperiencedetail } from '@/apis/models'; | |||
import { PostJobapplicantAddexperience, PostJobapplicantDelexperience, PostJobapplicantUpdateexperience, PostJobapplicantListexperience, PostJobapplicantExperiencedetail } from '@/apis/models'; | |||
import { intersectionAlike } from '@/utils/dataHelper'; | |||
import { warnToast, successToast } from '@/utils/toastHelper'; | |||
import { dataForm, otherDataForm, reset } from '@/components/jobseeker/resume/experience/data.ts'; | |||
@@ -155,10 +156,10 @@ | |||
commomParams.value.search.page = commomParams.value.search.page + 1; | |||
getData(); | |||
} | |||
// 详情 | |||
const getDetail = (val) => { | |||
PostJobapplicantExperiencedetail({id: val, customer_id: sessionStorage.getItem('id')}).then(res => { | |||
PostJobapplicantExperiencedetail({ id: val, customer_id: sessionStorage.getItem('id') }).then(res => { | |||
createForm.value = intersectionAlike(createForm.value, res.data) | |||
createForm.value.id = res.data.id; | |||
time.value = [dayjsRef.value(`${res.data.start_year}-${res.data.start_month}`), dayjsRef.value(`${res.data.end_year}-${res.data.end_month}`)] | |||
@@ -192,11 +193,11 @@ | |||
} | |||
const resetForm = () => { | |||
experienceList.value = []; | |||
experienceList.value = []; | |||
time.value = '' | |||
createForm.value = reset().dataForm as JobseekerExperienceType.JobseekerExperienceFormType; | |||
state.value = false; | |||
getData(); | |||
state.value = false; | |||
emit("quitEdit") | |||
} | |||
@@ -214,7 +215,7 @@ | |||
commomParams.value.delParam = { id: id }; | |||
PostJobapplicantDelexperience(commomParams.value.delParam).then(res => { | |||
successToast('删除成功'); | |||
experienceList.value = []; | |||
experienceList.value = []; | |||
getData(); | |||
}) | |||
} | |||
@@ -225,4 +226,4 @@ | |||
:deep(.ant-list-item:last-child) { | |||
border-block-end: none !important; | |||
} | |||
</style> | |||
</style> |
@@ -19,12 +19,11 @@ | |||
<a-form-item label="粤语" name="cantonese"> | |||
<a-xuanze :dict="2008" placeholder="请选择掌握程度" @saveSelect="saveCantonese" | |||
:select_content="createForm.cantonese"></a-xuanze> | |||
<a-c-select :dict="2008" placeholder="请选择掌握程度" @saveSelect="saveCantonese"></a-c-select> | |||
</a-form-item> | |||
</a-col> | |||
<a-col span="12"> | |||
<a-form-item label="第二外语" name="other_language"> | |||
<a-xuanze :dict="2008" placeholder="请选择掌握程度" @saveSelect="saveOtherLanguage" | |||
<a-xuanze :dict="2007" placeholder="请选择掌握程度" @saveSelect="saveOtherLanguage" | |||
:select_content="createForm.other_language"></a-xuanze> | |||
</a-form-item> | |||
</a-col> | |||
@@ -60,7 +59,7 @@ | |||
粤 语:{{detail.cantonese_txt}} | |||
</a-col> | |||
<a-col span="24"> | |||
第二外语:{{detail.salary_range_txt}} | |||
第二外语:{{detail.other_language_txt}} | |||
</a-col> | |||
<a-col span="24"> | |||
计算机能力:{{detail.computer_skills}} |
@@ -191,15 +191,14 @@ | |||
if (createForm.value.id) { | |||
PostJobapplicantUpdatetraining(createForm.value).then(res => { | |||
successToast('保存成功'); | |||
resetForm() | |||
getData(); | |||
resetForm() | |||
}).catch(err => { | |||
}) | |||
} else { | |||
PostJobapplicantAddtraining(createForm.value).then(res => { | |||
successToast('保存成功'); | |||
resetForm() | |||
getData(); | |||
}).catch(err => { | |||
}) | |||
} | |||
@@ -209,6 +208,7 @@ | |||
trainList.value = []; | |||
time.value = '' | |||
createForm.value = reset().dataForm as JobseekerTrainType.JobseekerTrainFormType; | |||
getData(); | |||
state.value = false; | |||
emit("quitEdit") | |||
} |
@@ -12,24 +12,28 @@ | |||
<a-col span="20"> | |||
<div style="width: 100%;background-color: #fff;padding: 0 20px;border-radius: 8px;"> | |||
<div ref="abc" class="abc" style="height: 100vh;overflow: auto;"> | |||
<a-space direction="vertical" justify="space-between" :size="36" | |||
<a-space direction="vertical" justify="center" :size="36" | |||
style="width: 100% !important;"> | |||
<div id="basic"> | |||
<a-typography style="margin-top: 20px;"> | |||
<a-flex align="center" justify="space-between"> | |||
<a-flex align="center"> | |||
<a-typography-title :level="4"> | |||
<div class="text-decoration"> | |||
<div class="text-content">基本资料</div> | |||
</div> | |||
</a-typography-title> | |||
<FormOutlined @click="edit('basic')" v-if="editObj.basic" | |||
style="color: #4FBE70;font-size: 24px;" /> | |||
<PlusCircleOutlined @click="edit('basic')" v-else | |||
style="color: #4FBE70;font-size: 24px;" /> | |||
<div @click="edit('basic')" style="padding: 0 20px;cursor: pointer;"> | |||
<FormOutlined style="color: #4FBE70;font-size: 24px;" /> | |||
<span v-if="editObj.basic" style="color: #bebebe;">正在编辑</span> | |||
<span v-else style="color: #bebebe;">编辑</span> | |||
</div> | |||
</a-flex> | |||
<a-typography-paragraph> | |||
<company-basic :form_state="editObj.basic" | |||
@quitEdit="quitEdit"></company-basic> | |||
<div style="padding: 20px 0;"> | |||
<company-basic :form_state="editObj.basic" | |||
@quitEdit="quitEdit"></company-basic> | |||
</div> | |||
</a-typography-paragraph> | |||
</a-typography> | |||
</div> |
@@ -2,19 +2,19 @@ | |||
<a-flex align="center" justify="center" class="login-box"> | |||
<!-- <a-flex vertical align="center" justify="space-between" :style="{ padding: '32px' }"> --> | |||
<a-flex justify="space-between" class="login-content"> | |||
<a-flex vertical align="center" justify="space-around" :style="{ padding: '0 36px' }"> | |||
<a-flex vertical align="center" justify="space-around" :style="{ padding: '0 60px' }"> | |||
<a-space direction="vertical" align="center" justify="space-between" :size="10"> | |||
<div> | |||
小程序 | |||
</div> | |||
<image-container | |||
<image-container :need="true" | |||
:imgObj="{src: '/images/xiaochengxu.jpg',width: '120px',height:'120px'}"></image-container> | |||
</a-space> | |||
<a-space direction="vertical" align="center" justify="space-between" :size="10"> | |||
<div> | |||
公众号 | |||
</div> | |||
<image-container | |||
<image-container :need="true" | |||
:imgObj="{src: '/images/gongzhonghao.png',width: '120px',height:'120px'}"></image-container> | |||
</a-space> | |||
</a-flex> | |||
@@ -96,7 +96,7 @@ | |||
</template> | |||
<template v-if="registerSegmentedValue == '企业注册'"> | |||
<a-col span="24"> | |||
<a-input v-model:value="companyForm.contact_mobile" placeholder="联系号码" size="large" /> | |||
<a-input v-model:value="companyForm.contact_mobile" placeholder="手机号" size="large" /> | |||
</a-col> | |||
<a-col span="24"> | |||
<a-input-password v-model:value="companyForm.password" placeholder="密码" size="large" /> |