| @@ -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" /> | |||