@@ -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-BZg64ot1.js"></script> | |||
<script type="module" crossorigin src="/assets/index-ZgclrScg.js"></script> | |||
<link rel="stylesheet" crossorigin href="/assets/index-DSahY579.css"> | |||
</head> | |||
<body> |
@@ -31,6 +31,9 @@ export const updateAccount = postModel(url.accountUpdate); | |||
export const addCompany = postModel(url.companyAdd); | |||
export const getCompanyList = getModel(url.companyList); | |||
export const updateCompany = postModel(url.companyEdit); | |||
export const GetCompanyRecruiters = getModel(url.CompanyRecruiters); | |||
export const PostCompanyTurnJobseeker = postModel(url.CompanyTurnJobseeker); | |||
// VIP | |||
export const PostCompanyVipmanage = postModel(url.companyVipmanage); | |||
export const GetCompanyInfo = getModel(url.companyInfo); |
@@ -36,6 +36,8 @@ declare namespace urlType { | |||
companyJobEdit : String, | |||
companyJobList : String, | |||
companyJobInfo : String, | |||
CompanyRecruiters : String, | |||
CompanyTurnJobseeker: String, | |||
companyDepartmentAdd : String, | |||
companyDepartmentEdit : String, |
@@ -38,6 +38,8 @@ export const url : urlType.url = { | |||
companyJobEdit: admin + '/company/job_edit', | |||
companyJobList: admin + '/company/job_list', | |||
companyJobInfo: admin + '/company/job_info', | |||
CompanyRecruiters: admin + '/company/recruiters', | |||
CompanyTurnJobseeker: admin + '/company/turn_jobseeker', | |||
companyDepartmentAdd: admin + '/company/department_add', | |||
companyDepartmentEdit: admin + '/company/department_edit', |
@@ -28,6 +28,10 @@ const getShowDepartmentModel = (state : object, payload : object) => { | |||
const getShowPositionModel = (state : object, payload : object) => { | |||
state.showPositionModel = payload.showPositionModel; | |||
} | |||
// 查看HR | |||
const getShowBindModel = (state : object, payload : object) => { | |||
state.showBindModel = payload.showBindModel; | |||
} | |||
// 查看公司 | |||
const getShowCompanyModel = (state : object, payload : object) => { | |||
@@ -49,6 +53,7 @@ export const mutations = { | |||
getSearchModel, | |||
getShowDepartmentModel, | |||
getShowPositionModel, | |||
getShowBindModel, | |||
getShowCompanyModel, | |||
getShowAddCompanyModel, | |||
} |
@@ -8,6 +8,7 @@ export const state = <StateType>{ | |||
openOtherModel_1: false, | |||
showDepartmentModel: false, | |||
showPositionModel: false, | |||
showBindModel: false, | |||
showCompanyModel: false, | |||
showAddCompanyModel: false, | |||
openSearchModel: false // 搜索 |
@@ -6,6 +6,7 @@ export interface StateType { | |||
openOtherModel_1: Boolean, | |||
showDepartmentModel: Boolean, | |||
showPositionModel: Boolean, | |||
showBindModel: Boolean, | |||
showCompanyModel: Boolean, | |||
showAddCompanyModel: Boolean, | |||
openSearchModel: Boolean |
@@ -0,0 +1,17 @@ | |||
export const cols = <ColType.type[]>[ | |||
{ | |||
title: '账号', | |||
dataIndex: 'username' | |||
}, { | |||
title: '手机号', | |||
dataIndex: 'mobile' | |||
}, { | |||
title: '绑定时间', | |||
dataIndex: 'updated_at', | |||
},{ | |||
title: '操作', | |||
dataIndex: 'operation', | |||
slots: { customRender: 'operation' }, | |||
width: 400 | |||
} | |||
]; |
@@ -0,0 +1,83 @@ | |||
<template> | |||
<a-modal v-model:visible="showBindModel" title="管理已经授权的账号" @cancel="cancelModal" width="80%" :footer="null"> | |||
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | |||
@page="getPage" :loading="loading"> | |||
<template #default="{ record }"> | |||
<a-row :gutter="10"> | |||
<a-popconfirm title="是否要解除授权?" @confirm="unBind(record)"> | |||
<a-col><a-button type="primary" size="small" danger>解除授权</a-button></a-col> | |||
</a-popconfirm> | |||
</a-row> | |||
</template> | |||
</a-c-table> | |||
</a-modal> | |||
</template> | |||
<script setup lang="ts"> | |||
import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | |||
import { GetCompanyRecruiters, PostCompanyTurnJobseeker, PostRecruitmentBookDel } from '@/apis/models'; | |||
import { useCommon } from '@/hooks/useCommon'; | |||
import { cols } from '@/views/company/list/bind/columns.ts'; | |||
import { message } from 'ant-design-vue'; | |||
let { store, commomParams } = useCommon(); | |||
const emit = defineEmits(); | |||
let props = defineProps(['bind_record']); | |||
let loading = ref<Boolean>(true); | |||
let showBindModel = computed(() => { | |||
return store.state.showBindModel; | |||
}) | |||
let bind_record = ref<Object>({}); | |||
watch(() => props.bind_record, (newVal1) => { | |||
bind_record.value = newVal1; | |||
// commomParams.value.search.id = newVal1.id; | |||
getData() | |||
}) | |||
const getData = async (val) => { | |||
try { | |||
loading.value = true; | |||
let res = await GetCompanyRecruiters(commomParams.value.search); | |||
loading.value = false; | |||
commomParams.value.table.data = res.data.customers; | |||
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, | |||
recruitment_id: bind_record.value.id | |||
}; | |||
} catch { | |||
loading.value = false; | |||
} | |||
} | |||
const getPage = (data : object) => { | |||
commomParams.value.search.page = data.current; | |||
commomParams.value.search.pagesize = data.pageSize; | |||
getData(); | |||
} | |||
const cancelModal = () => { | |||
store.commit('getShowBindModel', { | |||
showBindModel: false | |||
}) | |||
} | |||
// 移除 | |||
const unBind = (record) => { | |||
PostCompanyTurnJobseeker({company_id:record.company_id, customer_id: record.id, role: 1}).then(res => { | |||
message.success('解除授权成功'); | |||
getData(); | |||
}) | |||
} | |||
</script> | |||
<style> | |||
</style> |
@@ -75,7 +75,7 @@ export const cols = <ColType.type[]>[ | |||
slots: { | |||
customRender: 'operation' | |||
}, | |||
width: 300, | |||
width: 400, | |||
fixed: 'right', | |||
} | |||
]; |
@@ -18,12 +18,15 @@ | |||
@click="showDepartment(record)">查看部门</a-button></a-col> | |||
<a-col><a-button type="primary" size="small" primary | |||
@click="showPosition(record)">查看职位</a-button></a-col> | |||
<a-col><a-button type="primary" size="small" primary | |||
@click="showBind(record)">子账号解绑</a-button></a-col> | |||
</a-row> | |||
</template> | |||
</a-c-table> | |||
<list-add :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></list-add> | |||
<list-department :department_record="department_record"></list-department> | |||
<list-position :position_record="position_record"></list-position> | |||
<list-bind :bind_record="bind_record"></list-bind> | |||
</template> | |||
<script lang="ts" setup> | |||
@@ -32,10 +35,11 @@ | |||
import ListAdd from '@/views/company/list/add/add.vue'; | |||
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 { useCommon } from '@/hooks/useCommon'; | |||
import { cols } from '@/views/company/list/columns'; | |||
import { router } from '@/router'; | |||
import { router } from '@/router'; | |||
let { store, commomParams, showModal, showOtherModal1, imageprefix, message } = useCommon(); | |||
let loading = ref<Boolean>(true); | |||
onMounted(() => { | |||
@@ -129,6 +133,16 @@ | |||
// showPositionModel: true | |||
// }) | |||
} | |||
let bind_record = ref<Object>(null) | |||
const showBind = (record : object) => { | |||
bind_record.value = record; | |||
store.commit('getShowBindModel', { | |||
showBindModel: true | |||
}) | |||
} | |||
// 删除 | |||
// const delOneRole = (id: number) => { |