| @@ -5,8 +5,8 @@ | |||
| <link rel="icon" type="image/svg+xml" href="/logo_1.jpg" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>菊城人才市场后台管理</title> | |||
| <script type="module" crossorigin src="/assets/index-Nuxh33De.js"></script> | |||
| <link rel="stylesheet" crossorigin href="/assets/index-LsV7U6wr.css"> | |||
| <script type="module" crossorigin src="/assets/index-FqUzogG2.js"></script> | |||
| <link rel="stylesheet" crossorigin href="/assets/index-16BdRqwF.css"> | |||
| </head> | |||
| <body> | |||
| <div id="app"></div> | |||
| @@ -1,7 +1,7 @@ | |||
| <template> | |||
| <a-row :gutter="16" style="margin-bottom: 16px;"> | |||
| <a-col v-if="needAdd"> | |||
| <a-button type="primary" @click="showModal"> | |||
| <a-button type="primary" @click="createForm"> | |||
| <template #icon> | |||
| <PlusOutlined /> | |||
| </template> | |||
| @@ -39,6 +39,10 @@ | |||
| default: true | |||
| } | |||
| }); | |||
| const createForm = () => { | |||
| showModal(); | |||
| emit('add'); | |||
| } | |||
| let needAdd = ref<Boolean>(props.need_add) | |||
| const emit = defineEmits(); | |||
| const refreshTable = () => { | |||
| @@ -55,6 +55,10 @@ | |||
| onMounted(() => { | |||
| if(sessionStorage.getItem('company_id') && sessionStorage.getItem('company_name')) { | |||
| createForm.value.company_id = sessionStorage.getItem('company_id') | |||
| addOtherForm.value.full_name = sessionStorage.getItem('company_name') | |||
| } | |||
| companySearch({ page: 1, pagesize: 10 }) | |||
| }) | |||
| @@ -1,7 +1,7 @@ | |||
| <template> | |||
| <department-search @searchData="searchData" @clearData="clearData" | |||
| :search_params="commomParams.search"></department-search> | |||
| <a-c-operation @refresh="clearData"></a-c-operation> | |||
| <a-c-operation @refresh="clearData" @add="add"></a-c-operation> | |||
| <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | |||
| @page="getPage" :loading="loading"> | |||
| <template #default="{ record }"> | |||
| @@ -10,7 +10,7 @@ | |||
| </a-row> | |||
| </template> | |||
| </a-c-table> | |||
| <department-add :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></department-add> | |||
| <department-add v-if="openForm" :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></department-add> | |||
| </template> | |||
| <script lang="ts" setup> | |||
| @@ -23,6 +23,7 @@ | |||
| import { message } from 'ant-design-vue'; | |||
| let { store, commomParams, showModal, showOtherModal1 } = useCommon(); | |||
| let loading = ref<Boolean>(true); | |||
| let openForm = ref<Boolean>(false); | |||
| onMounted(() => { | |||
| if(sessionStorage.getItem('company_id')) { | |||
| commomParams.value.search.company_id = sessionStorage.getItem('company_id') | |||
| @@ -32,7 +33,13 @@ | |||
| onBeforeUnmount(() => { | |||
| sessionStorage.removeItem('company_id') | |||
| sessionStorage.removeItem('company_name') | |||
| openForm.value = false | |||
| }) | |||
| const add = (data : object) => { | |||
| openForm.value = true | |||
| } | |||
| const searchData = (data : object) => { | |||
| commomParams.value.search = data | |||
| @@ -40,6 +47,9 @@ | |||
| } | |||
| const clearData = (data : object) => { | |||
| sessionStorage.removeItem('company_id') | |||
| sessionStorage.removeItem('company_name') | |||
| openForm.value = false | |||
| if (data) { | |||
| commomParams.value.search = data | |||
| } else { | |||
| @@ -104,6 +104,7 @@ | |||
| let department_record = ref<Object>(null) | |||
| const showDepartment = (record : object) => { | |||
| sessionStorage.setItem('company_id', record.id) | |||
| sessionStorage.setItem('company_name', record.full_name) | |||
| router.push({ | |||
| path: '/department', | |||
| }) | |||
| @@ -117,6 +118,7 @@ | |||
| let position_record = ref<Object>(null) | |||
| const showPosition = (record : object) => { | |||
| sessionStorage.setItem('company_id', record.id) | |||
| sessionStorage.setItem('company_name', record.full_name) | |||
| router.push({ | |||
| path: '/job', | |||
| }) | |||
| @@ -342,7 +342,7 @@ | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | |||
| import { ref, onMounted, computed, defineProps, watch, defineEmits, onBeforeUnmount } from 'vue'; | |||
| import { getCompanyList, GetCompanyDepartmentList, GetDictTree, PostCompanyJobAdd, PostCompanyJobEdit, PostCompanyJobInfo } from '@/apis/models'; | |||
| import { intersectionAlike } from '@/utils/dataHelper'; | |||
| import { steps, dataForm, otherDataForm, reset } from '@/views/company/position/add/data.js'; | |||
| @@ -365,7 +365,13 @@ | |||
| let addOtherForm = ref<companyListType.addOtherFormType>(otherDataForm) | |||
| let licenseOption = ref<Object[]>([]) | |||
| onMounted(async () => { | |||
| onMounted(() => { | |||
| if(sessionStorage.getItem('company_id') && sessionStorage.getItem('company_name')) { | |||
| createForm.value.company_id = sessionStorage.getItem('company_id') | |||
| companyVal.value = sessionStorage.getItem('company_name') | |||
| departmentSearch({key: createForm.value.company_id}) | |||
| } | |||
| companySearch({ page: 1, pagesize: 10 }) | |||
| GetDictTree({ | |||
| code: 2018 | |||
| @@ -373,6 +379,8 @@ | |||
| licenseOption.value = res.data.dicts | |||
| }) | |||
| }) | |||
| // 选择企业 | |||
| @@ -547,6 +555,7 @@ | |||
| } | |||
| watch(() => props.edit_record, (newVal1) => { | |||
| if (newVal1) { | |||
| PostCompanyJobInfo({ id: newVal1.id }).then(res => { | |||
| let resData = res.data; | |||
| @@ -1,7 +1,7 @@ | |||
| <template> | |||
| <position-search @searchData="searchData" @clearData="clearData" | |||
| :search_params="commomParams.search"></position-search> | |||
| <a-c-operation @refresh="clearData"></a-c-operation> | |||
| <a-c-operation @refresh="clearData" @add="add"></a-c-operation> | |||
| <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | |||
| @page="getPage" :loading="loading"> | |||
| <template #default="{ record }"> | |||
| @@ -13,7 +13,7 @@ | |||
| dfd | |||
| </template> | |||
| </a-c-table> | |||
| <position-add :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></position-add> | |||
| <position-add v-if="openForm" :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></position-add> | |||
| </template> | |||
| <script lang="ts" setup> | |||
| @@ -26,6 +26,7 @@ | |||
| import { message } from 'ant-design-vue'; | |||
| let { store, commomParams, showModal, showOtherModal1 } = useCommon(); | |||
| let loading = ref<Boolean>(true); | |||
| let openForm = ref<Boolean>(false); | |||
| onMounted(() => { | |||
| if(sessionStorage.getItem('company_id')) { | |||
| commomParams.value.search.company_id = sessionStorage.getItem('company_id') | |||
| @@ -35,7 +36,14 @@ | |||
| onBeforeUnmount(() => { | |||
| sessionStorage.removeItem('company_id') | |||
| sessionStorage.removeItem('company_name') | |||
| openForm.value = false | |||
| }) | |||
| const add = (data : object) => { | |||
| openForm.value = true | |||
| } | |||
| const searchData = (data : object) => { | |||
| commomParams.value.search = data | |||
| @@ -43,6 +51,9 @@ | |||
| } | |||
| const clearData = (data : object) => { | |||
| sessionStorage.removeItem('company_id') | |||
| sessionStorage.removeItem('company_name') | |||
| openForm.value = false | |||
| if (data) { | |||
| commomParams.value.search = data | |||
| } else { | |||
| @@ -24,6 +24,7 @@ | |||
| <list-detail :detail_record="detail_record"></list-detail> | |||
| <list-company :company_record="company_record"></list-company> | |||
| <list-add-company :add_company_record="add_company_record"></list-add-company> | |||
| </template> | |||
| <script lang="ts" setup> | |||
| @@ -11,7 +11,11 @@ export const cols = <ColType.type[]>[ | |||
| }, { | |||
| title: '手机号', | |||
| dataIndex: 'mobile' | |||
| }, { | |||
| }, | |||
| { | |||
| title: '审核状态', | |||
| dataIndex: 'status_txt', | |||
| },{ | |||
| title: '操作', | |||
| dataIndex: 'operation', | |||
| @@ -8,19 +8,20 @@ | |||
| <!-- <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> --> | |||
| <a-col><a-button type="primary" size="small" primary @click="detail(record)">预览</a-button></a-col> | |||
| <a-popconfirm title="该简历通过审核?" @confirm="pass(record)"> | |||
| <a-col><a-button type="primary" size="small" primary>通过</a-button></a-col> | |||
| </a-popconfirm> | |||
| <a-popconfirm title="该简历不通过审核?" @confirm="unpass(record)"> | |||
| <a-col><a-button type="primary" size="small" primary>不通过</a-button></a-col> | |||
| <a-col v-if="record.status == 1"><a-button type="primary" size="small" primary>通过</a-button></a-col> | |||
| </a-popconfirm> | |||
| <a-col v-if="record.status == 1"><a-button type="primary" size="small" primary | |||
| @click="interview(record)">不通过</a-button></a-col> | |||
| <a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)"> | |||
| <a-col><a-button type="primary" size="small" primary>推送该简历到ES</a-button></a-col> | |||
| </a-popconfirm> | |||
| </a-row> | |||
| </template> | |||
| </a-c-table> | |||
| <!-- <role-add :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></role-add> --> | |||
| <resume-detail :detail_record="detail_record" @closeAdd="closePermission"></resume-detail> | |||
| <a-modal v-model:open="openInterview" centered title="不通过原因" @ok="unpass"> | |||
| <a-textarea v-model:value="form.aduit_memo" placeholder="请输入不通过原因" /> | |||
| </a-modal> | |||
| </template> | |||
| <script lang="ts" setup> | |||
| @@ -113,9 +114,29 @@ | |||
| }) | |||
| } | |||
| const unpass = (record) => { | |||
| PostJobapplicantUpdate({ customer_id: record.customer_id, id: record.id, status: 3 }).then(res => { | |||
| // 邀请面试 | |||
| let openInterview = ref<Boolean>(false); | |||
| let form = { | |||
| id: 0, | |||
| customer_id: 0, | |||
| status: 3, | |||
| aduit_memo: '' | |||
| } | |||
| const interview = (record : Object) => { | |||
| openInterview.value = true | |||
| form.id = record.id; | |||
| form.customer_id = record.customer_id; | |||
| form.status = 3 | |||
| form.aduit_memo = '' | |||
| } | |||
| const unpass = () => { | |||
| PostJobapplicantUpdate(form).then(res => { | |||
| message.success('审核不通过'); | |||
| openInterview.value = false | |||
| getData(); | |||
| }) | |||
| } | |||
| @@ -8,7 +8,7 @@ | |||
| <a-row :gutter="[10]"> | |||
| <a-col span="24"> | |||
| <a-form-item> | |||
| <a-input addon-before="求职者名称" v-model:value="commomParams.search.keyword" placeholder="请输入求职者名称" @keyup.enter="getData"/> | |||
| <a-input addon-before="关键字" v-model:value="commomParams.search.keyword" placeholder="请输入关键字,如个人介绍" @keyup.enter="getData"/> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| @@ -20,6 +20,12 @@ | |||
| </a-select> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item> | |||
| <a-xuanze :dict="2006" placeholder="请选择学历" @saveSelect="saveEducation" | |||
| :select_content="commomParams.search.education"></a-xuanze> | |||
| </a-form-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form> | |||
| </a-drawer> | |||
| @@ -38,11 +44,13 @@ | |||
| interface listType { | |||
| gender ?: String | |||
| education ?: Number | |||
| } | |||
| commomParams.value.search = commomParams.value.search as listType; | |||
| commomParams.value.search.gender = null; | |||
| commomParams.value.search.education = null; | |||
| // watch(() => props.search_params, (newVal) => { | |||
| // emit('searchData', commomParams.value.search) | |||
| @@ -76,6 +84,11 @@ | |||
| getData() | |||
| } | |||
| const saveEducation = (data) => { | |||
| commomParams.value.search.education = data.val.key ? data.val.key : 0; | |||
| getData() | |||
| } | |||
| </script> | |||
| <style> | |||