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