Commit 2580a21d by yangchao

update

1 parent 8eb09c66
...@@ -50,4 +50,15 @@ export function getJobClassify(data) { ...@@ -50,4 +50,15 @@ export function getJobClassify(data) {
}) })
} }
//投递拒绝原因
export function applyRefuseReasons(data) {
return request({
url: 'recruit/common/applyRefuseReasons',
method: 'post',
data: data,
source : 'zp'
})
}
...@@ -3,7 +3,7 @@ import request from '@/utils/request' ...@@ -3,7 +3,7 @@ import request from '@/utils/request'
//面试邀请列表 //面试邀请列表
export function interviewList (data) { export function interviewList (data) {
return request({ return request({
url: 'design/myTemplate/lists' , url: 'recruit/interview/list' ,
method : 'post' , method : 'post' ,
data : data , data : data ,
source : 'zp' source : 'zp'
...@@ -22,7 +22,7 @@ export function interviewDetail (data) { ...@@ -22,7 +22,7 @@ export function interviewDetail (data) {
//面试邀请处理 //面试邀请处理
export function interviewDispose (data) { export function interviewDispose (data) {
return request({ return request({
url: 'design/myTemplate/lists' , url: 'recruit/interview/ask' ,
method : 'post' , method : 'post' ,
data : data , data : data ,
source : 'zp' source : 'zp'
......
...@@ -13,7 +13,7 @@ export function resumeList (data) { ...@@ -13,7 +13,7 @@ export function resumeList (data) {
//简历详情 //简历详情
export function resumeDetail (data) { export function resumeDetail (data) {
return request({ return request({
url: 'design/myTemplate/lists' , url: 'recruit/cv/info' ,
method : 'post' , method : 'post' ,
data : data , data : data ,
source : 'zp' source : 'zp'
......
<template> <template>
<div> <div>
<el-upload class="upload-pic" action="//upload.qiniup.com" :data="form" :limit="1" multiple <el-upload class="upload-pic" action="//upload.qiniup.com" :data="form" :limit="66" multiple
:file-list="fileList" :on-error="handleErrorpics" :on-success="handleSuccesspics" :file-list="fileList" :on-error="handleErrorpics" :on-success="handleSuccesspics"
:before-upload="beforeUploadpics" list-type="picture-card" :before-upload="beforeUploadpics" list-type="picture-card"
:on-preview="handlePictureCardPreview" :on-remove="handleRemove" accept="image/*"> :on-preview="handlePictureCardPreview" :on-remove="handleRemove" accept="image/*">
...@@ -8,11 +8,12 @@ ...@@ -8,11 +8,12 @@
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible" width="40%" center> <el-dialog :visible.sync="dialogVisible" width="40%" center>
<div style="display: flex;align-items: center;flex-direction: row;"> <div style="display: flex;align-items: center;flex-direction: row;">
<!-- <div @click="toBeforeImg(imgIndex)"> 前移</div>--> <!-- <div @click="toBeforeImg(imgIndex)"> 前移</div>-->
<img width="80%" :src="dialogImageUrl" alt="" class="img"> <img width="80%" :src="dialogImageUrl" alt="" class="img">
<!-- <div @click="toAfterImg(imgIndex)"> 后移</div>--> <!-- <div @click="toAfterImg(imgIndex)"> 后移</div>-->
</div> </div>
</el-dialog> </el-dialog>
<!-- <p class="info">建议尺寸:750*750,小于1M,最多上传6张,建议主图背景为白色</p> -->
</div> </div>
</template> </template>
...@@ -35,7 +36,7 @@ ...@@ -35,7 +36,7 @@
dialogImageUrl: '', dialogImageUrl: '',
dialogVisible: false, dialogVisible: false,
is1M: false, is1M: false,
limitSize: 3, //验证图片大小,单位MB limitSize: 1, //验证图片大小,单位MB
imgIndex: -1, imgIndex: -1,
} }
}, },
...@@ -49,6 +50,14 @@ ...@@ -49,6 +50,14 @@
} }
}, },
methods: { methods: {
// toBeforeImg(index) {
// this.pics[index] = this.pics[index-1];
// console.log(this.pics);
// },
// toAfterImg(index) {
//
// },
handleImageList(fileList) { handleImageList(fileList) {
this.pics = []; this.pics = [];
fileList.forEach((v, i) => { fileList.forEach((v, i) => {
...@@ -79,7 +88,7 @@ ...@@ -79,7 +88,7 @@
this.is1M = file.size / 1024 / 1024 < this.limitSize; this.is1M = file.size / 1024 / 1024 < this.limitSize;
if (!this.is1M) { if (!this.is1M) {
Loading.service({}).close(); Loading.service({}).close();
this.$message.error('上传图片应小于3M'); this.$message.error('上传图片应小于1M');
return false return false
} }
...@@ -108,6 +117,12 @@ ...@@ -108,6 +117,12 @@
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
this.dialogImageUrl = file.url; this.dialogImageUrl = file.url;
this.dialogVisible = true; this.dialogVisible = true;
// if (file.response && file.response.domain && file.response.truekey) {
// file.url = file.response.domain + file.response.truekey;
// }
// this.imgIndex = this.pics.indexOf(file.url);
// console.log(this.imgIndex);
}, },
}, },
} }
...@@ -123,20 +138,14 @@ ...@@ -123,20 +138,14 @@
.img { .img {
margin: 0 auto; margin: 0 auto;
height: 114px;
width: 114px;
} }
.upload-pic >>> .el-upload--picture-card { .upload-pic >>> .el-upload--picture-card {
line-height: 114px; line-height: 156px;
height: 114px;
width: 114px;
} }
.upload-pic >>> .el-upload-list--picture-card .el-upload-list__item-actions { .upload-pic >>> .el-upload-list--picture-card .el-upload-list__item-actions {
line-height: 114px; line-height: 144px;
left: -5px; left: -5px;
height: 114px;
width: 114px;
} }
</style> </style>
...@@ -33,6 +33,22 @@ export const constantRouterMap = [ ...@@ -33,6 +33,22 @@ export const constantRouterMap = [
}, },
//init //init
{ {
path: '/',
component: Layout,
redirect: '/position/list/list',
children: [
{
path: 'list',
component: _import('position/list'),
meta: {
auth: ['basic', 'generally'],
role: ['master']
}
}
]
},
//init
{
path: '/position/list', path: '/position/list',
component: Layout, component: Layout,
redirect: '/position/list/list', redirect: '/position/list/list',
...@@ -77,7 +93,7 @@ export const constantRouterMap = [ ...@@ -77,7 +93,7 @@ export const constantRouterMap = [
} }
}, },
{ {
path: 'list/detail/:id', path: 'list/detail',
component: _import('resume/detail'), component: _import('resume/detail'),
meta: { meta: {
auth: ['basic', 'generally'], auth: ['basic', 'generally'],
...@@ -100,7 +116,7 @@ export const constantRouterMap = [ ...@@ -100,7 +116,7 @@ export const constantRouterMap = [
} }
}, },
{ {
path: 'list/detail/:id', path: 'list/detail',
component: _import('recommend/detail'), component: _import('recommend/detail'),
meta: { meta: {
auth: ['basic', 'generally'], auth: ['basic', 'generally'],
...@@ -123,7 +139,7 @@ export const constantRouterMap = [ ...@@ -123,7 +139,7 @@ export const constantRouterMap = [
} }
}, },
{ {
path: 'list/detail/:id', path: 'list/detail',
component: _import('interview/detail'), component: _import('interview/detail'),
meta: { meta: {
auth: ['basic', 'generally'], auth: ['basic', 'generally'],
......
const positionTtpe= function (res) {
let content = [];
for (let item in res.data['01']) {
content.push({
value: item,
label: res.data['01'][item]
})
}
content.forEach((v,i) => {
for(let item in res.data) {
if(v.value == item) {
v.children = [];
for(let item_1 in res.data[item]) {
v.children.push({
value: item_1,
label: res.data[item][item_1]
})
}
}
}
v.children.forEach((vv,ii)=>{
for(let item in res.data) {
if(vv.value == item) {
v.children[ii].children = [];
for(let item_1 in res.data[item]) {
v.children[ii].children.push({
value: item_1,
label: res.data[item][item_1]
})
}
}
}
})
});
return content;
}
export {positionTtpe}
...@@ -42,11 +42,11 @@ const service = axios.create({ ...@@ -42,11 +42,11 @@ const service = axios.create({
// request interceptor // request interceptor
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
config.headers.token = getUserToken();
if (config.source === 'apc') { // if (config.source === 'apc') {
config.headers.token = getUserToken(); // config.headers.token = getUserToken();
} else // } else
config.headers.token = getMallToken(); // config.headers.token = getMallToken();
//判断baseURL //判断baseURL
// if (process.env.NODE_ENV === 'development') // if (process.env.NODE_ENV === 'development')
if (config.source === 'cm') config.baseURL = store.state.testBaseURL; if (config.source === 'cm') config.baseURL = store.state.testBaseURL;
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div class="register-2"> <div class="register-2">
<div class="title">基本信息</div> <div class="title">基本信息</div>
<div class="line-style"> <div class="line-style">
<div class="label">头像</div> <div class="label">企业logo</div>
<Upload @productImgs="getPortrait" :editPics="registerInfo.portrait"></Upload> <Upload @productImgs="getPortrait" :editPics="registerInfo.portrait"></Upload>
</div> </div>
<div class="line-style"> <div class="line-style">
...@@ -84,15 +84,12 @@ ...@@ -84,15 +84,12 @@
style="width: 400px;"></el-input> style="width: 400px;"></el-input>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">相关证件</div> <div class="label">营业执照</div>
<div class="zheng-jian"> <Upload @productImgs="getBusiness" :editPics="registerInfo.business_license_pic"></Upload>
<Upload @productImgs="getBusiness" :editPics="registerInfo.business_license_pic"></Upload> </div>
<div class="explain">营业执照</div> <div class="line-style">
</div> <div class="label">办学许可证</div>
<div class="zheng-jian"> <Upload @productImgs="getLicence" :editPics="registerInfo.school_license_pic"></Upload>
<Upload @productImgs="getLicence" :editPics="registerInfo.school_license_pic"></Upload>
<div class="explain">办学许可证</div>
</div>
</div> </div>
<el-button class="register-save" @click="registerBtn">提交注册</el-button> <el-button class="register-save" @click="registerBtn">提交注册</el-button>
</div> </div>
...@@ -204,20 +201,6 @@ ...@@ -204,20 +201,6 @@
phone: this.loginInfo.uname phone: this.loginInfo.uname
}); });
this.$router.push("/position/list"); this.$router.push("/position/list");
// switchMallMater({
// mtoken: mtoken?mtoken:"0854089c8fa538ab3dd3d2e311b32c92",
// password: '',
// unique_id: mtoken?mtoken:'0854089c8fa538ab3dd3d2e311b32c92'
// }).then(res => {
//
// setStoreMallInfo(res.data.mallInfo);
// setStoreMallToken(res.data.authorize.token);
//
// // setMallRoles(res.data.encryptString);
// Cookies.set('logType', 1, {domain: domain});
// this.$router.push("/position/list");
// });
}); });
} }
...@@ -442,7 +425,6 @@ ...@@ -442,7 +425,6 @@
business_license_pic: this.registerInfo.get_business_license_pic[0], business_license_pic: this.registerInfo.get_business_license_pic[0],
school_license_pic: this.registerInfo.get_school_license_pic[0] school_license_pic: this.registerInfo.get_school_license_pic[0]
} }
console.log(data);
// return // return
accountEdit(data).then(res => { accountEdit(data).then(res => {
if(res.error == 0) { if(res.error == 0) {
......
<template> <template>
<div class="conatiner"> <div class="conatiner">
<p>新建基地</p> <p>企业信息</p>
<div class="line-style"> <div class="line-style">
<div class="label">基地名称:</div> <div class="label">企业logo:</div>
<el-input class="input" placeholder="请输入基地名称" size="small" v-model="name"></el-input> <uploadimage @productImgs="getPortrait" :editPics="registerInfo.portrait"></uploadimage>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">基地编号:</div> <div class="label">企业名称:</div>
<el-input class="input" placeholder="请输入基地编号" size="small" v-model="code"></el-input> <el-input class="input" placeholder="请输入企业名称" size="small" v-model="registerInfo.enterprise_name"></el-input>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">基地面积(亩):</div> <div class="label">企业规模:</div>
<el-input class="input" placeholder="请输入基地面积" size="small" v-model="areas"></el-input> <el-input class="input" placeholder="请输入企业人数" size="small" v-model="registerInfo.enterprise_scale"></el-input>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">基地负责人:</div> <div class="label">企业类型:</div>
<el-input class="input" placeholder="请输入基地负责人" size="small" v-model="user"></el-input> <el-input class="input" placeholder="请输入企业类型" size="small" v-model="registerInfo.enterprise_type"></el-input>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">企业:</div> <div class="label">企业区域:</div>
<el-select placeholder="请选择生产企业" size="small" class="select-item" clearable v-model='enterprise_id'> <el-cascader class="input"
<el-option v-for="(item,index) in enterpriseList" :key="index" :label="item.label" :value="item.value"></el-option> size="small"
</el-select> :options="regionData"
v-model="registerInfo.enterprise_area"
>
</el-cascader>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">基地详情:</div> <div class="label">企业地址:</div>
<div style="width: 600px;"> <el-input class="input" placeholder="请输入企业地址" size="small" v-model="registerInfo.enterprise_address"></el-input>
<UE @callback="getEditorHtml" :richText="detail" v-model="detail"></UE>
</div>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">基地位置:</div> <div class="label">营业执照:</div>
<el-input class="input" placeholder="请输入基地位置" size="small" v-model="address"></el-input> <uploadimage @productImgs="getBusiness" :editPics="registerInfo.business_license_pic"></uploadimage>
</div> </div>
<div class="line-style"> <div class="line-style">
<div class="label">备注:</div> <div class="label">办学许可证:</div>
<el-input class="input" placeholder="请输入备注" size="small" v-model="remark"></el-input> <uploadimage @productImgs="getLicence" :editPics="registerInfo.school_license_pic"></uploadimage>
</div>
<div class="line-style">
<div class="label">企业描述:</div>
<el-input style="width: 500px" rows="4" type="textarea" placeholder="请输入企业描述" size="small" v-model="registerInfo.enterprise_describe"></el-input>
</div> </div>
<div class="opration"> <div class="opration">
<el-button size="small" @click="cancel">取消</el-button>
<el-button size="small" @click="save" type="primary" class="save">保存</el-button> <el-button size="small" @click="save" type="primary" class="save">保存</el-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import uploadimage from '../../components/Upload/index' import uploadimage from '../../components/Upload/upload'
import {accountGet, accountEdit} from "@/api/login" import {accountGet, accountEdit} from "@/api/login"
import {provinceAndCityData,regionData, CodeToText, TextToCode} from 'element-china-area-data';
export default { export default {
name: "newPoint", name: "newPoint",
components: { components: {
...@@ -55,63 +60,70 @@ ...@@ -55,63 +60,70 @@
}, },
data() { data() {
return { return {
producerId: '', regionData: regionData,
name: '', registerInfo: {
code: '', portrait: [], //头像
areas: '', getPortrait: [],
user: '', duty: '', //职务
detail: '', email: '',//邮箱
address: '', enterprise_name: '', //企业名称
remark: '', enterprise_scale: '', //企业规模
enterpriseList: [], enterprise_type: '', //企业类型
enterprise_id: '' enterprise_address: '', //企业地址
enterprise_describe: '', //企业描述
enterprise_area: '', //企业区域
business_license_pic: [], //营业执照
school_license_pic: [], //办学许可证
get_business_license_pic: [], //营业执照
get_school_license_pic: [], //办学许可证
},
} }
}, },
methods: { methods: {
cancel() { //获取头像
this.$router.go(-1); getPortrait(data) {
this.registerInfo.getPortrait = data;
}, },
//获取富文本编辑器中的内容 //获取营业执照
getEditorHtml(data) { getBusiness(data) {
// console.log(data); this.registerInfo.get_business_license_pic = data;
this.detail= data; },
//获取办学许可证
getLicence(data) {
this.registerInfo.get_school_license_pic = data;
}, },
getInfo() { getInfo() {
accountGet({ accountGet().then(res => {
}).then(res => {
if(res.error == 0) { if(res.error == 0) {
this.name = res.data.name; this.registerInfo.portrait.push(res.data.logo);
this.code = res.data.code; this.registerInfo.enterprise_name = res.data.name;
this.areas = res.data.areas; this.registerInfo.enterprise_scale = res.data.peoples;
this.user = res.data.user; this.registerInfo.enterprise_type = res.data.type;
this.detail = res.data.detail; this.registerInfo.enterprise_area = res.data.area_id;
this.address = res.data.address; this.registerInfo.enterprise_address = res.data.address;
this.remark = res.data.remark; this.registerInfo.enterprise_describe = res.data.remark;
this.enterprise_id = res.data.enterprise_id; this.registerInfo.business_license_pic.push(res.data.business_license_pic);
this.registerInfo.school_license_pic.push(res.data.school_license_pic);
} }
}) })
}, },
save() { save() {
let params = { let params = {
name: this.name, position_name: this.registerInfo.duty,
code: this.code, email: this.registerInfo.email,
areas: this.areas, logo: this.registerInfo.getPortrait[0],
user: this.user, name: this.registerInfo.enterprise_name,
detail: this.detail, peoples: Number(this.registerInfo.enterprise_scale),
address: this.address, type: this.registerInfo.enterprise_type,
remark: this.remark, area_id: this.registerInfo.enterprise_area[2],
enterprise_id: this.enterprise_id address: this.registerInfo.enterprise_address,
} remark: this.registerInfo.enterprise_describe,
if(this.producerId) { business_license_pic: this.registerInfo.get_business_license_pic[0],
params.id = this.producerId; school_license_pic: this.registerInfo.get_school_license_pic[0]
} }
accountEdit(params).then(res => { accountEdit(params).then(res => {
if(res.error == 0) { if(res.error == 0) {
this.$message.success('操作成功!'); this.$message.success('操作成功!');
setTimeout(()=>{
window.close();
},1000)
} }
}) })
} }
......
...@@ -98,7 +98,8 @@ ...@@ -98,7 +98,8 @@
<script> <script>
import {provinceAndCityData,regionData, CodeToText, TextToCode} from 'element-china-area-data'; import {provinceAndCityData,regionData, CodeToText, TextToCode} from 'element-china-area-data';
import {positionEdit, positionDetail} from "@/api/position"; import {positionEdit, positionDetail} from "@/api/position";
import {getAcademicQualifications, getWorkExperience, getJobClassify} from "@/api/common" import {getAcademicQualifications, getWorkExperience, getJobClassify} from "@/api/common";
import {positionTtpe} from '@/utils/positionType'
export default { export default {
data() { data() {
return { return {
...@@ -399,41 +400,7 @@ ...@@ -399,41 +400,7 @@
JobClassify() { JobClassify() {
return new Promise(resolve => { return new Promise(resolve => {
getJobClassify().then(res => { getJobClassify().then(res => {
this.position_type = []; this.position_type = positionTtpe(res);
for (let item in res.data['01']) {
this.position_type.push({
value: item,
label: res.data['01'][item]
})
}
this.position_type.forEach((v,i) => {
for(let item in res.data) {
if(v.value == item) {
v.children = [];
for(let item_1 in res.data[item]) {
v.children.push({
value: item_1,
label: res.data[item][item_1]
})
}
}
}
v.children.forEach((vv,ii)=>{
for(let item in res.data) {
if(vv.value == item) {
v.children[ii].children = [];
for(let item_1 in res.data[item]) {
v.children[ii].children.push({
value: item_1,
label: res.data[item][item_1]
})
}
}
}
})
})
}) })
resolve(); resolve();
}).catch(error => { }).catch(error => {
...@@ -448,7 +415,6 @@ ...@@ -448,7 +415,6 @@
await this.getEduLevels(); await this.getEduLevels();
await this.getWorkAges(); await this.getWorkAges();
await this.JobClassify(); await this.JobClassify();
console.log(this.$route.params.id && this.$route.params.id != 0,'this.$route.params.id');
if (this.$route.params.id && this.$route.params.id != 0) { if (this.$route.params.id && this.$route.params.id != 0) {
console.log(9); console.log(9);
this.id = this.$route.params.id; this.id = this.$route.params.id;
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资"> <el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="compensation">{{scope.row.job_require_salary_min / 100000}}-{{scope.row.job_require_salary_max / 100000}}K</div> <div class="compensation">{{(scope.row.job_require_salary_min / 100000).toFixed(1)}}~{{(scope.row.job_require_salary_max / 100000).toFixed(1)}}K</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="发布时间"> <el-table-column align="center" prop="publishTime" show-overflow-tooltip label="发布时间">
......
...@@ -2,26 +2,23 @@ ...@@ -2,26 +2,23 @@
<div class="partner-supervise-container"> <div class="partner-supervise-container">
<div class="refresh"> <div class="refresh">
<el-button @click="refresh" type="primary" size="small">立即刷新</el-button> <el-button @click="refresh" type="primary" size="small">立即刷新</el-button>
<span>今日剩余(0/10)</span> <!-- <span>今日剩余(0/10)</span>-->
</div> </div>
<el-form :inline="true" :model="queryForm" size="small" ref="queryForm" class="fiter-box" > <el-form :inline="true" :model="queryForm" size="small" ref="queryForm" class="fiter-box">
<div class="fiter-col"> <div class="fiter-col">
<el-form-item label="搜索内容:" prop="searchContent" class="order-item">
<el-input placeholder="请输入内容" v-model="queryForm.searchContent" class="order-input"> </el-input>
</el-form-item>
<el-form-item label="状态:" prop="searchContent" class="order-item"> <el-form-item label="状态:" prop="searchContent" class="order-item">
<el-select v-model="queryForm.status" placeholder="请选择" class="input-style" size="small"> <el-select v-model="queryForm.status" placeholder="请选择" class="input-style" size="small">
<el-option label="全部" value="0"></el-option> <el-option label="全部" value=""></el-option>
<el-option label="正在招聘" value="1"></el-option> <el-option label="刚投递" value="1"></el-option>
<el-option label="已关闭" value="2"></el-option> <el-option label="已查看" value="2"></el-option>
<el-option label="通过初筛" value="3"></el-option>
<el-option label="已拒绝" value="4"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> <el-form-item label="" prop="searchContent" class="order-item">
<el-button type="primary" size="small" style="" @click="search">搜索</el-button>
<div class="fiter-col" style="margin-bottom: 0"> </el-form-item>
<el-button type="primary" size="small" style="margin-left: 20px" @click="search">搜索</el-button>
<el-button type="danger" size="small" @click="reset">清空搜索条件</el-button>
</div> </div>
</el-form> </el-form>
<div class="partner-supervise-table"> <div class="partner-supervise-table">
...@@ -29,39 +26,41 @@ ...@@ -29,39 +26,41 @@
<el-table-column align="center" prop="truename" label="职位信息" width="300"> <el-table-column align="center" prop="truename" label="职位信息" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="position-info"> <div class="position-info">
<div class="position"><span></span>{{scope.row.position}}</div> <div class="position"><span>{{scope.row.job_type == 1 ? '全' : '兼'}}</span>{{scope.row.base_name}}</div>
<div class="info"> <div class="info">
<div>{{scope.row.address}}</div> <div>{{scope.row.work_city}}-{{scope.row.work_area}}</div>
<div>{{scope.row.education}}</div> <div>{{scope.row.edu}}</div>
<div>{{scope.row.experience}}</div>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资"> <el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="compensation">{{scope.row.compensation}}</div> <div class="compensation">{{(scope.row.job_require_salary_min/100000).toFixed(1)}}~{{(scope.row.job_require_salary_max/100000).toFixed(1)}}K</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="发布时间"> <el-table-column align="center" prop="publishTime" show-overflow-tooltip label="求职状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.publishTime}}</span> <div class="table-inf0-h3" v-if="scope.row.intention_current_status==1">待业-求职中</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==2">正常工作-寻求机会</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==3">在业-暂不考虑机会</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==4">学业中-寻找机会</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="刷新时间"> <el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="职位名称">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.refreshTime}}</span> <span class="table-inf0-h3">{{scope.row.job_name}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="status" show-overflow-tooltip label="职位状态"> <el-table-column align="center" prop="status" show-overflow-tooltip label="处理时间">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.status}}</span> <span class="table-inf0-h3">{{scope.row.updated_at}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="160"> <el-table-column align="center" label="操作" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-button size="small" type="text" @click="checkPosition">查看简历</el-button> <el-button size="small" type="text" @click="checkPosition(scope.row.cv_token_apply, scope.row.utoken)">查看简历</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -81,7 +80,8 @@ ...@@ -81,7 +80,8 @@
</div> </div>
</template> </template>
<script> <script>
import {recommendList} from '@/api/recommend' import {resumeList, resumePass, resumeRefuse} from "@/api/resume"
import {CodeToText} from 'element-china-area-data';
export default { export default {
data() { data() {
return { return {
...@@ -120,18 +120,44 @@ ...@@ -120,18 +120,44 @@
headerName() { headerName() {
return 'header-class-title' return 'header-class-title'
}, },
checkPosition() { checkPosition(id,utoken) {
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
path: this.$route.path + "/detail/" + 0, path: this.$route.path + "/detail/",
query: {
utoken: utoken,
cv_token: id
}
}); });
window.open(routeUrl.href, '_blank'); window.open(routeUrl.href, '_blank');
}, },
refresh() { refresh() {
this.getRcommendList();
}, },
//获取推荐列表 //获取推荐列表
getRcommendList() { getRcommendList() {
let data = {
page: this.currentPage,
page_size: this.page_size,
apply_type: 'self'
}
if(this.queryForm.status) {
data.status = this.queryForm.status;
}
resumeList(data).then(res => {
if(res.error == 0 && res.data && res.data.info) {
this.list = res.data.info;
this.totalPages = res.data.total;
this.list= res.data.info.map(item=>{
let obj={
...item,
work_city: CodeToText[item.base_area_id.slice(0,4)+'00'],
work_area: CodeToText[item.base_area_id],
edu: item.edu_experiences[0].qualifications
}
return obj;
})
}
})
}, },
handleCurrentChange(page) { handleCurrentChange(page) {
this.currentPage = page; this.currentPage = page;
...@@ -145,7 +171,7 @@ ...@@ -145,7 +171,7 @@
} }
}, },
mounted() { mounted() {
this.getRcommendList();
} }
} }
</script> </script>
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
<div class="position"><span>{{scope.row.job_type == 1 ? '全' : '兼'}}</span>{{scope.row.base_name}}</div> <div class="position"><span>{{scope.row.job_type == 1 ? '全' : '兼'}}</span>{{scope.row.base_name}}</div>
<div class="info"> <div class="info">
<div>{{scope.row.work_city}}-{{scope.row.work_area}}</div> <div>{{scope.row.work_city}}-{{scope.row.work_area}}</div>
<div>{{scope.row.education}}</div> <div>{{scope.row.edu_experiences[0].qualifications}}</div>
<div>{{scope.row.experience}}</div> <!-- <div>{{scope.row.experience}}</div>-->
</div> </div>
</div> </div>
</template> </template>
...@@ -43,24 +43,27 @@ ...@@ -43,24 +43,27 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="求职状态"> <el-table-column align="center" prop="compensation" show-overflow-tooltip label="求职状态">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="table-inf0-h3">{{scope.row.compensation}}</div> <div class="table-inf0-h3" v-if="scope.row.intention_current_status==1">待业-求职中</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==2">正常工作-寻求机会</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==3">在业-暂不考虑机会</div>
<div class="table-inf0-h3" v-if="scope.row.intention_current_status==4">学业中-寻找机会</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="职位名称"> <el-table-column align="center" prop="publishTime" show-overflow-tooltip label="职位名称">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="compensation">{{scope.row.job_name}}</div> <div class="table-inf0-h3">{{scope.row.job_name}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="处理时间"> <el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="处理时间">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="table-inf0-h3">{{scope.row.publishTime}}</div> <div class="table-inf0-h3">{{scope.row.updated_at}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="200" fixed="right"> <el-table-column align="center" label="操作" width="200" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-button size="small" type="text" @click="checkResume(scope.row.id)">查看简历</el-button> <el-button size="small" type="text" @click="checkResume(scope.row.cv_token_apply, scope.row.utoken)">查看简历</el-button>
<span class="segmenting-line">|</span> <span class="segmenting-line">|</span>
<el-button size="small" type="text" @click="passResume(scope.row.id)">通过</el-button> <el-button size="small" type="text" @click="passResume(scope.row.id)">通过</el-button>
<span class="segmenting-line">|</span> <span class="segmenting-line">|</span>
...@@ -85,11 +88,7 @@ ...@@ -85,11 +88,7 @@
<el-dialog title="拒绝理由" :visible.sync="isShowRefuseResume" width="360px" center> <el-dialog title="拒绝理由" :visible.sync="isShowRefuseResume" width="360px" center>
<div> <div>
<el-select v-model="refuse_reason" placeholder="请选择" style="width: 100%;margin-bottom: 20px"> <el-select v-model="refuse_reason" placeholder="请选择" style="width: 100%;margin-bottom: 20px">
<el-option label="简历与职位不相符" value="简历与职位不相符"></el-option> <el-option v-for="item in reasonList" :key="item.label" :label="item.label" :value="item.value"></el-option>
<el-option label="过往履历与职位不相符" value="过往履历与职位不相符"></el-option>
<el-option label="工作经验不足" value="工作经验不足"></el-option>
<el-option label="学历未达到职位要求" value="学历未达到职位要求"></el-option>
<el-option label="已招到合适人选" value="已招到合适人选"></el-option>
</el-select> </el-select>
<div class="operation"> <div class="operation">
<el-button type="primary" size="small" @click="sureRefuseResume">确定</el-button> <el-button type="primary" size="small" @click="sureRefuseResume">确定</el-button>
...@@ -111,6 +110,8 @@ ...@@ -111,6 +110,8 @@
</template> </template>
<script> <script>
import {resumeList, resumePass, resumeRefuse} from "@/api/resume" import {resumeList, resumePass, resumeRefuse} from "@/api/resume"
import {applyRefuseReasons} from "@/api/common";
import {CodeToText} from 'element-china-area-data';
export default { export default {
data() { data() {
return { return {
...@@ -125,10 +126,24 @@ ...@@ -125,10 +126,24 @@
isShowPassResume: false, isShowPassResume: false,
isShowRefuseResume: false, isShowRefuseResume: false,
refuse_reason: '', refuse_reason: '',
checked_id: '' checked_id: '',
reasonList: []
} }
}, },
methods: { methods: {
//获取拒绝原因列表
getResonList() {
applyRefuseReasons().then(res => {
if(res.error == 0) {
res.data.forEach(v=>{
this.reasonList.push({
label: v,
value: v
})
})
}
})
},
//清空搜索条件 //清空搜索条件
reset() { reset() {
this.queryForm.searchContent = ''; this.queryForm.searchContent = '';
...@@ -143,9 +158,13 @@ ...@@ -143,9 +158,13 @@
return 'header-class-title' return 'header-class-title'
}, },
checkResume() { checkResume(id,utoken) {
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
path: this.$route.path + "/detail/" + 0, path: this.$route.path + "/detail/",
query: {
utoken: utoken,
cv_token: id
}
}); });
window.open(routeUrl.href, '_blank'); window.open(routeUrl.href, '_blank');
}, },
...@@ -173,7 +192,7 @@ ...@@ -173,7 +192,7 @@
sureRefuseResume() { sureRefuseResume() {
resumeRefuse({ resumeRefuse({
apply_id: Number(this.checked_id), apply_id: Number(this.checked_id),
handle: 'pass', handle: 'refuse',
refuse_reason: this.refuse_reason refuse_reason: this.refuse_reason
}).then(res => { }).then(res => {
if(res.error == 0) { if(res.error == 0) {
...@@ -187,6 +206,7 @@ ...@@ -187,6 +206,7 @@
let data = { let data = {
page: this.currentPage, page: this.currentPage,
page_size: this.page_size, page_size: this.page_size,
apply_type: 'self'
} }
if(this.queryForm.status) { if(this.queryForm.status) {
data.status = this.queryForm.status; data.status = this.queryForm.status;
...@@ -219,6 +239,7 @@ ...@@ -219,6 +239,7 @@
} }
}, },
mounted() { mounted() {
this.getResonList();
this.getResumeList(); this.getResumeList();
} }
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!