Browse Source

deploy

master
Soleilw 7 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

@@ -5,7 +5,7 @@
<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-DozG8ZEx.js"></script>
<script type="module" crossorigin src="/assets/index-B7CKfjVf.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-4yw9NuJU.css">
</head>
<body>

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

@@ -252,4 +252,9 @@ export const PostDictAdd = postModel(url.DictAdd);
export const PostDictDel = postModel(url.DictDel);
export const PostDictUpdate = postModel(url.DictUpdate);
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

@@ -228,5 +228,10 @@ declare namespace urlType {
DictUpdate: String, // 编辑
DictList: String, // 列表
DictDetail: String, // 详情

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

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

@@ -243,4 +243,9 @@ export const url : urlType.url = {
DictUpdate: common + '/dict/update', // 编辑
DictList: common + '/dict/list', // 列表
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

@@ -16,7 +16,7 @@
let { routerTo } = useAsRouter();
const download = () => {
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);
})
}

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

@@ -1,6 +1,10 @@
<template>
<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"
@page="getPage" :loading="loading">
<template #photo_image="{ record }">
@@ -36,7 +40,7 @@
import ListDepartment from '@/views/company/list/department/index.vue';
import ListPosition from '@/views/company/list/position/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 { cols } from '@/views/company/list/columns';
import { router } from '@/router';
@@ -152,6 +156,13 @@
// 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>

<style lang="less" scoped>

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

@@ -1,7 +1,11 @@
<template>
<position-search @searchData="searchData" @clearData="clearData"
: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"
@page="getPage" :loading="loading">
<template #default="{ record }">
@@ -13,114 +17,120 @@
dfd
</template>
</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>

<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

@@ -1,11 +1,15 @@
<template>
<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"
@page="getPage" :loading="loading">
<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 #default="{ record }">
<a-row :gutter="10">
@@ -14,7 +18,7 @@
<a-popconfirm title="该简历通过审核?" @confirm="pass(record)">
<a-col v-if="record.status == 1"><a-button type="primary" size="small">通过</a-button></a-col>
</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>
<!-- <a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)">
<a-col><a-button type="primary" size="small" primary>推送该简历到ES</a-button></a-col>
@@ -29,159 +33,164 @@
<a-textarea v-model:value="form.aduit_memo" placeholder="请输入不通过原因" />
</a-modal>

</template>

<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
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();
}
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>

<style lang="less" scoped>

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

Loading…
Cancel
Save