Browse Source

deploy

master
Soleilw 9 months ago
parent
commit
fc104880af

dist/assets/index-B7CKfjVf.js
File diff suppressed because it is too large
View File


+ 1
- 1
dist/index.html View File

<link rel="icon" type="image/svg+xml" href="/logo_1.jpg" /> <link rel="icon" type="image/svg+xml" href="/logo_1.jpg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>菊城人才市场后台管理</title> <title>菊城人才市场后台管理</title>
<script type="module" crossorigin src="/assets/index-DozG8ZEx.js"></script>
<script type="module" crossorigin src="/assets/index-B7CKfjVf.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-4yw9NuJU.css"> <link rel="stylesheet" crossorigin href="/assets/index-4yw9NuJU.css">
</head> </head>
<body> <body>

+ 6
- 1
src/apis/models/index.ts View File

export const PostDictDel = postModel(url.DictDel); export const PostDictDel = postModel(url.DictDel);
export const PostDictUpdate = postModel(url.DictUpdate); export const PostDictUpdate = postModel(url.DictUpdate);
export const GetDictList = getModel(url.DictList); export const GetDictList = getModel(url.DictList);
export const GetDictDetail = getModel(url.DictDetail);
export const GetDictDetail = getModel(url.DictDetail);

// 导出数据
export const PostCompanyExport = PostModel(url.CompanyExport);
export const PostJobseekerExport = PostModel(url.JobseekerExport);
export const PostJobExport = PostModel(url.JobExport);

+ 5
- 0
src/apis/types/url.d.ts View File

DictUpdate: String, // 编辑 DictUpdate: String, // 编辑
DictList: String, // 列表 DictList: String, // 列表
DictDetail: String, // 详情 DictDetail: String, // 详情

// 导出数据
CompanyExport: String, // 详情
JobseekerExport: String, // 详情
JobExport: String, // 详情
} }
} }

+ 5
- 0
src/apis/url.ts View File

DictUpdate: common + '/dict/update', // 编辑 DictUpdate: common + '/dict/update', // 编辑
DictList: common + '/dict/list', // 列表 DictList: common + '/dict/list', // 列表
DictDetail: common + '/dict/detail', // 详情 DictDetail: common + '/dict/detail', // 详情

// 导出数据
CompanyExport: admin + '/company/export',
JobseekerExport: admin + '/jobseeker/export',
JobExport: admin + '/job/export',
} }

+ 1
- 1
src/views/activity/list/index.vue View File

let { routerTo } = useAsRouter(); let { routerTo } = useAsRouter();
const download = () => { const download = () => {
PostActivityExportUsers().then(res => { PostActivityExportUsers().then(res => {
let url = 'https://rcsc-test.jcjob.cn/img' + res.data.excel_url;
let url = import.meta.env.MODE == 'production' ? 'https://admin1.jcjob.cn/img' + res.data.excel_url : 'https://rcsc-test.jcjob.cn/img' + res.data.excel_url;
window.open(url); window.open(url);
}) })
} }

+ 13
- 2
src/views/company/list/index.vue View File

<template> <template>
<list-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></list-search> <list-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></list-search>
<a-c-operation @refresh="clearData"></a-c-operation>
<a-c-operation @refresh="clearData">
<a-col>
<a-button type="primary" @click="download">导出数据</a-button>
</a-col>
</a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #photo_image="{ record }"> <template #photo_image="{ record }">
import ListDepartment from '@/views/company/list/department/index.vue'; import ListDepartment from '@/views/company/list/department/index.vue';
import ListPosition from '@/views/company/list/position/index.vue'; import ListPosition from '@/views/company/list/position/index.vue';
import ListBind from '@/views/company/list/bind/index.vue'; import ListBind from '@/views/company/list/bind/index.vue';
import { getCompanyList } from '@/apis/models';
import { getCompanyList , PostCompanyExport} from '@/apis/models';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/company/list/columns'; import { cols } from '@/views/company/list/columns';
import { router } from '@/router'; import { router } from '@/router';
// getData(); // getData();
// }) // })
// } // }

const download = () => {
PostCompanyExport().then(res => {
let url = import.meta.env.MODE == 'production' ? 'https://admin1.jcjob.cn/img' + res.data.excel_url : 'https://rcsc-test.jcjob.cn/img' + res.data.excel_url;
window.open(url);
})
}
</script> </script>


<style lang="less" scoped> <style lang="less" scoped>

+ 105
- 95
src/views/company/position/index.vue View File

<template> <template>
<position-search @searchData="searchData" @clearData="clearData" <position-search @searchData="searchData" @clearData="clearData"
:search_params="commomParams.search"></position-search> :search_params="commomParams.search"></position-search>
<a-c-operation @refresh="clearData" @add="add"></a-c-operation>
<a-c-operation @refresh="clearData" @add="add">
<a-col>
<a-button type="primary" @click="download">导出数据</a-button>
</a-col>
</a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #default="{ record }"> <template #default="{ record }">
dfd dfd
</template> </template>
</a-c-table> </a-c-table>
<position-add v-if="openForm" :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> </template>


<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, computed, onBeforeUnmount } from 'vue';
import PositionSearch from '@/views/company/position/search/index.vue';
import PositionAdd from '@/views/company/position/add/add.vue';
import { GetCompanyJobList } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/company/position/columns';
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')
}
getData(commomParams.value.search);
})
onBeforeUnmount(() => {
sessionStorage.removeItem('company_id')
sessionStorage.removeItem('company_name')
openForm.value = false
})
const add = (data : object) => {
openForm.value = true
import { ref, onMounted, watch, computed, onBeforeUnmount } from 'vue';
import PositionSearch from '@/views/company/position/search/index.vue';
import PositionAdd from '@/views/company/position/add/add.vue';
import { GetCompanyJobList, PostJobExport } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/company/position/columns';
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')
} }
getData(commomParams.value.search);
})


const searchData = (data : object) => {
commomParams.value.search = data
getData();
}
onBeforeUnmount(() => {
sessionStorage.removeItem('company_id')
sessionStorage.removeItem('company_name')
openForm.value = false
})


const clearData = (data : object) => {
sessionStorage.removeItem('company_id')
sessionStorage.removeItem('company_name')
openForm.value = false
if (data) {
commomParams.value.search = data
} else {
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'id',
sortby: 'desc',
keyword: ''
}
}
getData();
}


const add = (data: object) => {
openForm.value = true
}


const getPage = (data : object) => {
commomParams.value.search.page = data.current;
commomParams.value.search.pagesize = data.pageSize;
getData();
}
const getData = async () => {
try {
loading.value = true;
let res = await GetCompanyJobList(commomParams.value.search);
loading.value = false;
commomParams.value.table.data = res.data.rows;
commomParams.value.table.columns = cols;
commomParams.value.page = {
current: commomParams.value.search.page,
pageSize: commomParams.value.search.pagesize,
total: res.data.total,
pageSizeOptions: ['10', '20', '30', '40'],
hideOnSinglePage: false,
showSizeChanger: true
};
} catch (err) {
loading.value = false;
const searchData = (data: object) => {
commomParams.value.search = data
getData();
}

const clearData = (data: object) => {
sessionStorage.removeItem('company_id')
sessionStorage.removeItem('company_name')
openForm.value = false
if (data) {
commomParams.value.search = data
} else {
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'id',
sortby: 'desc',
keyword: ''
} }
} }
getData();
}




// 编辑
let edit_record = ref<Object>(null)
const edit = (record : object) => {
openForm.value = true
edit_record.value = record;
showModal()
}
const successAdd = () => {
getData();
}
const closeAdd = () => {
openForm.value = false
edit_record.value = null;
const getPage = (data: object) => {
commomParams.value.search.page = data.current;
commomParams.value.search.pagesize = data.pageSize;
getData();
}
const getData = async () => {
try {
loading.value = true;
let res = await GetCompanyJobList(commomParams.value.search);
loading.value = false;
commomParams.value.table.data = res.data.rows;
commomParams.value.table.columns = cols;
commomParams.value.page = {
current: commomParams.value.search.page,
pageSize: commomParams.value.search.pagesize,
total: res.data.total,
pageSizeOptions: ['10', '20', '30', '40'],
hideOnSinglePage: false,
showSizeChanger: true
};
} catch (err) {
loading.value = false;
} }
}




// 删除
// const delOneRole = (id: number) => {
// commomParams.value.delRecord = { id: id };
// PostRoleDel(commomParams.value.delRecord).then(res => {
// message.success('删除成功');
// getData();
// })
// }
</script>
// 编辑
let edit_record = ref<Object>(null)
const edit = (record: object) => {
openForm.value = true
edit_record.value = record;
showModal()
}
const successAdd = () => {
getData();
}
const closeAdd = () => {
openForm.value = false
edit_record.value = null;
}


<style lang="less" scoped>


</style>
// 删除
// const delOneRole = (id: number) => {
// commomParams.value.delRecord = { id: id };
// PostRoleDel(commomParams.value.delRecord).then(res => {
// message.success('删除成功');
// getData();
// })
// }

const download = () => {
PostJobExport().then(res => {
let url = import.meta.env.MODE == 'production' ? 'https://admin1.jcjob.cn/img' + res.data.excel_url : 'https://rcsc-test.jcjob.cn/img' + res.data.excel_url;
window.open(url);
})
}
</script>

<style lang="less" scoped></style>

+ 153
- 144
src/views/jobSeeker/resume/index.vue View File

<template> <template>
<resume-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></resume-search> <resume-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></resume-search>
<a-c-operation @refresh="clearData" :need_add="false"></a-c-operation>
<a-c-operation @refresh="clearData" :need_add="false">
<a-col>
<a-button type="primary" @click="download">导出数据</a-button>
</a-col>
</a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #status="{ record }"> <template #status="{ record }">
{{record.status_txt}}
<span v-if="record.audit_memo">({{record.audit_memo}})</span>
{{ record.status_txt }}
<span v-if="record.audit_memo">({{ record.audit_memo }})</span>
</template> </template>
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<a-popconfirm title="该简历通过审核?" @confirm="pass(record)"> <a-popconfirm title="该简历通过审核?" @confirm="pass(record)">
<a-col v-if="record.status == 1"><a-button type="primary" size="small">通过</a-button></a-col> <a-col v-if="record.status == 1"><a-button type="primary" size="small">通过</a-button></a-col>
</a-popconfirm> </a-popconfirm>
<a-col v-if="record.status == 1"><a-button type="primary" size="small" @click="interview(record)"
<a-col v-if="record.status == 1"><a-button type="primary" size="small" @click="interview(record)"
danger>不通过</a-button></a-col> danger>不通过</a-button></a-col>
<!-- <a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)"> <!-- <a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)">
<a-col><a-button type="primary" size="small" primary>推送该简历到ES</a-button></a-col> <a-col><a-button type="primary" size="small" primary>推送该简历到ES</a-button></a-col>
<a-textarea v-model:value="form.aduit_memo" placeholder="请输入不通过原因" /> <a-textarea v-model:value="form.aduit_memo" placeholder="请输入不通过原因" />
</a-modal> </a-modal>


</template> </template>


<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, computed, createVNode } from 'vue';
import ResumeSearch from '@/views/jobSeeker/resume/search/index.vue';
import ResumeAdd from '@/views/jobSeeker/resume/add/add.vue';
import ResumeDetail from '@/views/jobSeeker/resume/detail/detail.vue';
import { PostJobseekerList, PostJobapplicantUpdate, PostEsJobseeker, GetCustomerUpdate } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/jobSeeker/resume/columns';
import { UserOutlined, DownOutlined } from '@ant-design/icons-vue';
let { store, commomParams, showModal, showOtherModal1, message, ExclamationCircleOutlined, Modal } = useCommon();
let loading = ref<Boolean>(true);
let openForm = ref<Boolean>(false);



onMounted(() => {
commomParams.value.search.rand = false
commomParams.value.search.sort = 'refreshtime'
getData();
})

const searchData = (data : object) => {
import { ref, onMounted, watch, computed, createVNode } from 'vue';
import ResumeSearch from '@/views/jobSeeker/resume/search/index.vue';
import ResumeAdd from '@/views/jobSeeker/resume/add/add.vue';
import ResumeDetail from '@/views/jobSeeker/resume/detail/detail.vue';
import { PostJobseekerList, PostJobapplicantUpdate, PostEsJobseeker, GetCustomerUpdate, PostJobseekerExport } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/jobSeeker/resume/columns';
import { UserOutlined, DownOutlined } from '@ant-design/icons-vue';
let { store, commomParams, showModal, showOtherModal1, message, ExclamationCircleOutlined, Modal } = useCommon();
let loading = ref<Boolean>(true);
let openForm = ref<Boolean>(false);



onMounted(() => {
commomParams.value.search.rand = false
commomParams.value.search.sort = 'refreshtime'
getData();
})

const searchData = (data: object) => {
commomParams.value.search = data
getData();
}

const clearData = (data: object) => {
commomParams.value.search.rand = false
if (data) {
commomParams.value.search = data commomParams.value.search = data
getData();
}

const clearData = (data : object) => {
commomParams.value.search.rand = false
if (data) {
commomParams.value.search = data
} else {
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'refreshtime',
sortby: 'desc',
keyword: '',
rand: false
}
}
getData();
}


const getPage = (data : object) => {
commomParams.value.search.page = data.current;
commomParams.value.search.pagesize = data.pageSize;
getData();
}
const getData = async () => {
try {
loading.value = true;
let res = await PostJobseekerList(commomParams.value.search);
loading.value = false;
commomParams.value.table.data = res.data.seekers;
commomParams.value.table.columns = cols;
commomParams.value.page = {
current: commomParams.value.search.page,
pageSize: commomParams.value.search.pagesize,
total: res.data.total,
pageSizeOptions: ['10', '20', '30', '40'],
hideOnSinglePage: false,
showSizeChanger: true
};
} catch {
loading.value = false;
} else {
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'refreshtime',
sortby: 'desc',
keyword: '',
rand: false
} }
} }


// 编辑
let edit_record = ref<Object>(null)
const edit = (record : object) => {
openForm.value = true
edit_record.value = record;
showModal()
getData();
}


const getPage = (data: object) => {
commomParams.value.search.page = data.current;
commomParams.value.search.pagesize = data.pageSize;
getData();
}
const getData = async () => {
try {
loading.value = true;
let res = await PostJobseekerList(commomParams.value.search);
loading.value = false;
commomParams.value.table.data = res.data.seekers;
commomParams.value.table.columns = cols;
commomParams.value.page = {
current: commomParams.value.search.page,
pageSize: commomParams.value.search.pagesize,
total: res.data.total,
pageSizeOptions: ['10', '20', '30', '40'],
hideOnSinglePage: false,
showSizeChanger: true
};
} catch {
loading.value = false;
} }
const successAdd = () => {
}


// 编辑
let edit_record = ref<Object>(null)
const edit = (record: object) => {
openForm.value = true
edit_record.value = record;
showModal()
}
const successAdd = () => {
getData();
}
const closeAdd = () => {
openForm.value = false
edit_record.value = null;
}

// 删除
// const delOneRole = (id : number) => {
// commomParams.value.delRecord = { id: id };
// PostRoleDel(commomParams.value.delRecord).then(res => {
// message.success('删除成功');
// getData();
// })
// }

// 审核
const pass = (record) => {
PostJobapplicantUpdate({ customer_id: record.customer_id, id: record.id, status: 2 }).then(res => {
message.success('审核通过');
getData(); getData();
}
const closeAdd = () => {
openForm.value = false
edit_record.value = null;
}

// 删除
// const delOneRole = (id : number) => {
// commomParams.value.delRecord = { id: id };
// PostRoleDel(commomParams.value.delRecord).then(res => {
// message.success('删除成功');
// getData();
// })
// }

// 审核
const pass = (record) => {
PostJobapplicantUpdate({ customer_id: record.customer_id, id: record.id, status: 2 }).then(res => {
message.success('审核通过');
getData();
})
}

// 邀请面试
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 = record.audit_memo ? record.audit_memo : '不通过'
}

})
}

// 邀请面试
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 = record.audit_memo ? record.audit_memo : '不通过'
}


const unpass = () => {
PostJobapplicantUpdate(form).then(res => {
message.success('审核不通过');
openInterview.value = false
getData();
})
}


const unpass = () => {
PostJobapplicantUpdate(form).then(res => {
message.success('审核不通过');
openInterview.value = false
getData();
})
}
const pushEs = (customer_id) => {
PostEsJobseeker({ customer_ids: [customer_id] }).then(res => {
message.success('推送成功');
})
}


const pushEs = (customer_id) => {
PostEsJobseeker({ customer_ids: [customer_id] }).then(res => {
message.success('推送成功');
})
}




let detail_record = ref<Object>(null)
const detail = (record) => {
detail_record.value = record;
showOtherModal1()
}
const successPermission = () => {
detail_record.value = null;
}


let detail_record = ref<Object>(null)
const detail = (record) => {
detail_record.value = record;
showOtherModal1()
}
const successPermission = () => {
detail_record.value = null;
}
const closePermission = () => {
detail_record.value = null;
}


const closePermission = () => {
detail_record.value = null;
}
const download = () => {
PostJobseekerExport().then(res => {
let url = import.meta.env.MODE == 'production' ? 'https://admin1.jcjob.cn/img' + res.data.excel_url : 'https://rcsc-test.jcjob.cn/img' + res.data.excel_url;
window.open(url);
})
}
</script> </script>


<style lang="less" scoped>

</style>
<style lang="less" scoped></style>

Loading…
Cancel
Save