Commit 8eb09c66 by yangchao

update

1 parent 730a67a1
import request from '@/utils/request'
import store from '@/store'
//登录
let login = function(data){
return request({
url:'business/login/run',
method : 'post' ,
data:data,
source : 'apc'
})
};
//登录
let loginMerchant = function(data){
return request({
url:'suyuan/login/login',
method : 'post' ,
data:data,
source : 'sy'
})
};
//注册
let register = function(data){
return request({
url:'business/register/run',
method : 'post',
data:data,
source : 'apc'
})
};
//短信验证码
let getCode = function(data){
return request({
url:'business/register/send',
method : 'post',
data:data,
source : 'apc'
})
};
//图片验证码
let baseUrl = process.env.NODE_ENV == 'development' ? store.state.testBaseURL : store.state.baseURL;
let builder = baseUrl+'api/imageVerify/builder?fontSize=24';
//忘记密码
let forgetPassword = function(data){
return request({
url: 'business/login/chainForgetPassword',
method : 'post',
data:data,
source : 'apc'
})
};
//忘记密码发送短信
let send = function(data){
return request({
url: 'business/login/chainForgetPassword/send',
method : 'post',
data:data,
source : 'apc'
})
};
//忘记密码
let MforgetPassword = function (data) {
return request({
url: 'business/login/forgetPassword',
method: 'post',
data: data,
source: 'apc'
})
};
//忘记密码发送短信
let Msend = function (data) {
return request({
url: 'business/login/forgetPassword/send',
method: 'post',
data: data,
source: 'apc'
})
};
//代理商登录
let loginBusiness = function (data) {
return request({
url: 'business/login/agent',
method: 'post',
data: data,
source: 'apc'
})
};
let chainForgetPassword = function (data) {
return request({
url: 'business/Login/chainForgetPassword',
method: 'post',
data: data,
})
};
let sendChainForgetPassword = function (data) {
return request({
url: 'business/Login/chainForgetPassword/send',
method: 'post',
data: data,
})
};
export {
login,loginMerchant, register,builder, getCode, forgetPassword, send,MforgetPassword,chainForgetPassword,Msend,sendChainForgetPassword
}
import request from '@/utils/request'
//修改密码
export function updatePassword(data) {
return request({
url: 'business/AccountManage/modifyPassword',
method: 'post',
data: data,
source : 'apc'
});
}
import request from '@/utils/request'
//获取店铺列表
let getList = function(data){
return request({
url: 'business/subBranch/getList',
method : 'post' ,
data:data,
source : 'apc'
})
};
//获取行业
let getIndustryList = function(data){
return request({
url:'business/api/getIndustryList',
method : 'post' ,
data:data,
source : 'apc'
})
};
//创建店铺
let createMallInfo = function(data){
return request({
url:'business/CreateMall/createMallInfo',
method : 'post' ,
data:data,
source : 'apc'
})
};
let editMallInfo = function(data){
return request({
url:'business/api/editMallInfo',
method : 'post' ,
data:data,
source : 'apc'
})
};
//删除店铺
let deleteShop = function(data){
return request({
url:'business/mall/delete',
method : 'post' ,
data:data,
source : 'apc'
})
};
//获取手机验证码
let sendCodeToDeleteMall = function(data){
return request({
url:'business/mall/sendCodeToDeleteMall',
method : 'post' ,
data:data,
source : 'apc'
})
};
//切换店铺
let switchMall = function (data) {
return request({
url: 'business/subBranch/switch',
method : 'post' ,
data : data,
source : 'apc'
})
};
//切换店铺
let switchMallMater = function (data) {
return request({
url: 'business/mall/switch/v2',
method: 'post',
data: data,
source: 'apc'
})
};
//获取店铺状态
let queryWorkAll = function (data) {
return request({
url : 'Cateringmalls/SettingStoreInfo/queryWorkAll' ,
method : 'post' ,
data : data,
source : 'cy'
})
};
//发送验证码
let accessPasswordSend = function (data) {
return request({
url : 'business/mall/accessPassword/send' ,
method : 'post' ,
data : data,
source : 'apc'
})
};
//发送验证码
let accessPasswordReset = function (data) {
return request({
url : 'business/mall/accessPassword/reset' ,
method : 'post' ,
data : data,
source : 'apc'
})
};
//获取用户是否平台板权限
let platPermission = function (data) {
return request({
url : 'business/accountManage/permission' ,
method : 'post' ,
data : data,
source : 'apc'
})
};
export {
getList,
getIndustryList,
createMallInfo,
editMallInfo,
deleteShop,
sendCodeToDeleteMall,
switchMall,
queryWorkAll,
accessPasswordSend,
accessPasswordReset,
platPermission,
switchMallMater
}
import request from '@/utils/request'
//在职状态
export function getWorkStatus(data) {
return request({
url: '',
method: 'post',
data: data,
source : 'zp'
})
}
//获取学历
export function getAcademicQualifications(data) {
return request({
url: 'recruit/common/eduLevels',
method: 'post',
data: data,
source : 'zp'
})
}
//获取工作经验
export function getWorkExperience(data) {
return request({
url: 'recruit/common/workAges',
method: 'post',
data: data,
source : 'zp'
})
}
//获取期望薪资
export function getSalaryExpectation(data) {
return request({
url: 'recruit/common/salaryLevels',
method: 'post',
data: data,
source : 'zp'
})
}
//获取职位分类
export function getJobClassify(data) {
return request({
url: 'recruit/setting/jobClassify',
method: 'post',
data: data,
source : 'zp'
})
}
......@@ -6,6 +6,7 @@ export function interviewList (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -15,6 +16,7 @@ export function interviewDetail (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//面试邀请处理
......@@ -23,5 +25,6 @@ export function interviewDispose (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
import request from '@/utils/request'
//注册获取手机验证码
export function registerSms (data) {
return request({
url: 'recruit/organization/registerSms' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//注册
export function register (data) {
return request({
url: 'recruit/organization/register' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//编辑企业信息
export function accountEdit (data) {
return request({
url: 'recruit/organization/accountEdit' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//获取企业信息
export function accountGet (data) {
return request({
url: 'recruit/organization/info' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//登录
export function accountLogin (data) {
return request({
url: 'recruit/organization/login' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -6,6 +6,7 @@ export function messageList (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -15,5 +16,6 @@ export function messageSign (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
import request from '@/utils/request'
export function supportArticleList(data) {
return request({
url: '/colleges/supportArticle/list',
method: 'post',
data: data,
source : 'xuetang'
});
}
export function supportArticlekeywords(data) {
return request({
url: 'colleges/supportCategory/keywords',
method: 'post',
data: data,
source : 'xuetang'
});
}
///colleges/SupportHelpPage/detail
export function SupportHelpPageDetail(data) {
return request({
url: 'colleges/SupportHelpPage/detail',
method: 'post',
data: data,
source : 'xuetang'
});
}
export function conversationLists(data) {
return request({
url: 'messages/Customer/conversationLists',
method: 'post',
data: data,
source : 'cm'
});
}
export function getNoticeList(data) {
return request({
url: 'messages/notice/lists',
method: 'post',
data: data,
source : 'cm'
})
}
export function currentlists(data) {
return request({
url: 'messages/notice/lists/current',
method: 'post',
data: data,
source : 'cm'
})
}
export function operationRead(data) {
return request({
url: 'messages/notice/operation/read',
method: 'post',
data: data,
source : 'cm'
})
}
export function readAll(data) {
return request({
url: 'messages/notice/readAll',
method: 'post',
data: data,
source : 'cm'
})
}
export function operationDelete(data) {
return request({
url: 'messages/notice/operation/delete',
method: 'post',
data: data,
source : 'cm'
})
}
export function checkoutOrderType(data) {
return request({
url: 'orders/api/detail',
method: 'post',
data: data,
})
}
export function detailSimple(data) {
return request({
url: 'storeproducts/product/detailSimple',
method: 'post',
data: data,
})
}
\ No newline at end of file
......@@ -3,27 +3,50 @@ import request from '@/utils/request'
//职位列表
export function positionList (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/job/list' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//新建编辑职位
export function positionEdit (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/job/edit' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//职位详情
export function positionDetail (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/job/info' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//删除职位
export function positionDelete (data) {
return request({
url: 'recruit/job/del' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//删除职位
export function positionUpdate (data) {
return request({
url: 'recruit/job/changeStatus' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -6,6 +6,7 @@ export function recommendList (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//推荐简历详情
......@@ -14,6 +15,7 @@ export function recommendDetail (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -23,6 +25,7 @@ export function recommendRefresh (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -3,9 +3,10 @@ import request from '@/utils/request'
//简历列表
export function resumeList (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/apply/applyList' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -15,23 +16,26 @@ export function resumeDetail (data) {
url: 'design/myTemplate/lists' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//简历通过
export function resumePass (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/apply/handle' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
//简历拒绝
export function resumeRefuse (data) {
return request({
url: 'design/myTemplate/lists' ,
url: 'recruit/apply/handle' ,
method : 'post' ,
data : data ,
source : 'zp'
})
}
......@@ -147,6 +147,21 @@ export const constantRouterMap = [
}
]
},
{
path: '/message/info',
component: Layout,
redirect: '/message/info/info',
children: [
{
path: 'info',
component: _import('message/info'),
meta: {
auth: ['basic', 'generally'],
role: ['master']
}
}
]
},
]
export default new Router({
......
......@@ -33,6 +33,10 @@ const state = {
designTestURL: 'http://api.test.ledianyun.com/',
xueTangTestURl: 'http://api.xuetang.test.ledianyun.com/',
xueTangBaseURl: 'https://xuetang.api.ledianyun.com/',
inviteBaseUrl: 'http://api.recruit.test.ledianyun.com/',
platform: 'generally',
//domainURL
domainURL: process.env.NODE_ENV == 'development' ? 'http://www.test.ledianyun.com/' : 'http://sy.pg.ledianyun.com/',
......
......@@ -9,7 +9,7 @@ export const firstRouters = {
role: ['master']
},
{
title: '简历理',
title: '简历理',
index: 'resume',
icon: 'icon-dingdan',
noAuth: false,
......@@ -33,7 +33,7 @@ export const firstRouters = {
role: ['master']
},
{
title: '我的信息',
title: '设置',
index: 'message',
icon: 'icon-dingdan',
noAuth: false,
......@@ -85,7 +85,14 @@ export const secondRouters = {
],
message: [
{
title: '面试邀请',
title: '企业信息',
index: 'info',
noAuth: false,
auth: ['generally'],
role: ['master']
},
{
title: '通知中心',
index: 'list',
noAuth: false,
auth: ['generally'],
......@@ -140,4 +147,13 @@ export const thirdRouters = {
role: ['master']
}
],
'/message/info': [
{
title: '企业信息',
index: 'info',
noAuth: false,
auth: ['generally'],
role: ['master']
}
],
};
......@@ -8,7 +8,7 @@ let domain = process.env.NODE_ENV == 'development' ? '' : '.ledianyun.com';
export function getMallToken() {
// let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJqdGkiOiIiLCJpYXQiOjE1NTkyMDE1MTMsIm5iZiI6MTU1OTIwMTUxMywiZXhwIjoxNTU5ODA2MzEzLCJ0b2tlbiI6IjUwMzI5ZTAyZGI0OTJiNDYxMTIwYzI1YTIxMjQxM2MyIiwiYnRva2VuIjoiNTAzMjllMDJkYjQ5MmI0NjExMjBjMjVhMjEyNDEzYzIiLCJyb2xlIjoiYnVzaW5lc3MiLCJiaWQiOiIxIiwibmFtZSI6IjEzODAwMDAwMDAwIiwicGhvbmUiOiIxMzgwMDAwMDAwMCIsInNvdXJjZSI6InBjIiwiaW5kdXN0cnlfaWQiOiIxIiwiaW5kdXN0cnlfYWxpYXMiOiJzdG9yZSIsImluZHVzdHJ5X2xldmVsX2lkIjoiMiIsImluZHVzdHJ5X2xldmVsX2FsaWFzIjoiYWR2YW5jZWQiLCJzaG9wX2lkIjoiNTI0IiwibXRva2VuIjoiMDg1NDA4OWM4ZmE1MzhhYjNkZDNkMmUzMTFiMzJjOTIiLCJjdXJyZW50X2J0b2tlbiI6IjUwMzI5ZTAyZGI0OTJiNDYxMTIwYzI1YTIxMjQxM2MyIiwiYWNjb3VudF90eXBlIjoxLCJzd2l0Y2hfdGltZSI6MTU1OTIwMTUxN30.QJeIRgMBtzCWdMIuXIkwTHjrK32p-F8R243Ip8jfMNo';
let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJqdGkiOiIiLCJpYXQiOjE1NjIxMjk3MjgsIm5iZiI6MTU2MjEyOTcyOCwiZXhwIjoxNTYyNzM0NTI4LCJ0b2tlbiI6IjUwMzI5ZTAyZGI0OTJiNDYxMTIwYzI1YTIxMjQxM2MyIiwiYnRva2VuIjoiNTAzMjllMDJkYjQ5MmI0NjExMjBjMjVhMjEyNDEzYzIiLCJyb2xlIjoiYnVzaW5lc3MiLCJiaWQiOiIxIiwibmFtZSI6IjEzODAwMDAwMDAwIiwicGhvbmUiOiIxMzgwMDAwMDAwMCIsInNvdXJjZSI6InBjIiwiaW5kdXN0cnlfaWQiOiIxIiwiaW5kdXN0cnlfYWxpYXMiOiJzdG9yZSIsImluZHVzdHJ5X2xldmVsX2lkIjoiMiIsImluZHVzdHJ5X2xldmVsX2FsaWFzIjoiYWR2YW5jZWQiLCJzaG9wX2lkIjoiNTI0IiwibXRva2VuIjoiMDg1NDA4OWM4ZmE1MzhhYjNkZDNkMmUzMTFiMzJjOTIiLCJjdXJyZW50X2J0b2tlbiI6IjUwMzI5ZTAyZGI0OTJiNDYxMTIwYzI1YTIxMjQxM2MyIiwiYWNjb3VudF90eXBlIjoiMSIsImFjY291bnRfcm9sZXMiOlsibWFzdGVyIl0sInN3aXRjaF90aW1lIjoxNTYyMTI5NzM0fQ.rCV5CSd8w1NBu2aLI1XbF2CUZ9SUBvsVDVuPJwBFGgM';
let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJqdGkiOiIiLCJpYXQiOjE1Nzc5MzU0OTEsIm5iZiI6MTU3NzkzNTQ5MSwiZXhwIjoxNTc4NTQwMjkxLCJ0b2tlbiI6IjUwMzI5ZTAyZGI0OTJiNDYxMTIwYzI1YTIxMjQxM2MyIiwiYnRva2VuIjoiNTAzMjllMDJkYjQ5MmI0NjExMjBjMjVhMjEyNDEzYzIiLCJtdG9rZW4iOiIwODU0MDg5YzhmYTUzOGFiM2RkM2QyZTMxMWIzMmM5MiIsIm9yZ2FuaXphdGlvbl90b2tlbiI6ImViM2ZkYjVhMzk2NWM4NDVlNWM1MzcxYzdkODE5NjUzIiwiYWNjb3VudCI6IjE4NzEwODQ3MzA4IiwidG9rZW5fdHlwZSI6Im9yZ2FuaXphdGlvbiIsInJvbGUiOiJtYXN0ZXIiLCJpbmR1c3RyeV90eXBlIjoicmVjcnVpdCIsInNvdXJjZSI6InBjIn0.QjL1j13JEfTVmFSBCF77ZjR7m9_5CSEeihFt807LeGc';
if (process.env.NODE_ENV == 'development') {
if (Cookies.get('storeMallToken')) return Cookies.get('storeMallToken');
......
......@@ -17,7 +17,7 @@ import Cookies from 'js-cookie'
const service = axios.create({
timeout: 300000, // request timeout
transformRequest: [function (data) {
let loginType = Cookies.get('logType');
if(loginType && loginType != 1) {
if(data) {
......@@ -26,10 +26,10 @@ const service = axios.create({
data = {};
data.enterprise_id = Cookies.get('enterpriseId');
}
}
if (data instanceof FormData)
if (data instanceof FormData)
return data;
else
return JSON.stringify(data)
......@@ -38,37 +38,25 @@ const service = axios.create({
'Content-Type': 'application/json'
}
});
});
// request interceptor
service.interceptors.request.use(config => {
// let loginType = Cookies.get('logType');
// if(loginType && loginType != 1) {
// let enterId = Cookies.get('enterpriseId');
// config.enterprise_id = enterId;
// }
if (config.source === 'apc') {
config.headers.token = getUserToken();
} else
config.headers.token = getMallToken();
//判断baseURL
// if (process.env.NODE_ENV === 'development')
{
if (config.source === 'cm') config.baseURL = store.state.testBaseURL;
else if (config.source == 'ds') config.baseURL = store.state.designTestURL;
else if (config.source == 'xuetang') config.baseURL = store.state.xueTangBaseURl;
else if (config.source === 'apc') config.baseURL = store.state.testBaseURL;
else if (config.source === 'sy') config.baseURL = store.state.syBaseURL;
else config.baseURL = store.state.testStoreURL
}
// else {
// if (config.source === 'cm') config.baseURL = store.state.baseURL;
// else if (config.source == 'ds') config.baseURL = store.state.designBaseURL;
// else if (config.source == 'xuetang') config.baseURL = store.state.xueTangBaseURl;
// else if (config.source === 'sy') config.baseURL = store.state.syBaseURL;
// else if (config.source === 'apc') config.baseURL = store.state.baseURL;
// else config.baseURL = store.state.storeURL;
// }
if (config.source === 'cm') config.baseURL = store.state.testBaseURL;
else if (config.source == 'ds') config.baseURL = store.state.designTestURL;
else if (config.source == 'xuetang') config.baseURL = store.state.xueTangBaseURl;
else if (config.source === 'apc') config.baseURL = store.state.testBaseURL;
else if (config.source === 'sy') config.baseURL = store.state.syBaseURL;
else if (config.source === 'zp') config.baseURL = store.state.inviteBaseUrl;
else config.baseURL = store.state.testStoreURL
return config;
}, error => {
// Do something with request error
......
......@@ -41,7 +41,7 @@
</div>
<div class="line-style">
<div class="label">姓名</div>
<el-input class="input" size="small" placeholder="请输入姓名"></el-input>
<span>{{registerInfo.name}}</span>
</div>
<div class="line-style">
<div class="label">职务</div>
......@@ -86,11 +86,11 @@
<div class="line-style">
<div class="label">相关证件</div>
<div class="zheng-jian">
<Upload @productImgs="getBusiness" :editPics="registerInfo.portrait"></Upload>
<Upload @productImgs="getBusiness" :editPics="registerInfo.business_license_pic"></Upload>
<div class="explain">营业执照</div>
</div>
<div class="zheng-jian">
<Upload @productImgs="getLicence" :editPics="registerInfo.portrait"></Upload>
<Upload @productImgs="getLicence" :editPics="registerInfo.school_license_pic"></Upload>
<div class="explain">办学许可证</div>
</div>
</div>
......@@ -101,7 +101,8 @@
</template>
<script>
// import {switchMallMater} from "@/api/account/shop";
import Cookies from 'js-cookie'
import {switchMallMater} from "@/api/account/shop";
import {Loading} from "element-ui";
import {
setUserToken,
......@@ -114,6 +115,8 @@
import store from '@/store'
import Upload from '../../components/Upload/upload.vue';
import {provinceAndCityData,regionData, CodeToText, TextToCode} from 'element-china-area-data';
import {registerSms, register, accountEdit, accountLogin} from '@/api/login'
let domain = process.env.NODE_ENV == 'development' ? '' : '.ledianyun.com';
export default {
components: {
Upload
......@@ -132,6 +135,7 @@
password: '', //密码
rePassword: '', //再次输入密码
portrait: [], //头像
getPortrait: [],
duty: '', //职务
email: '',//邮箱
enterprise_name: '', //企业名称
......@@ -139,7 +143,11 @@
enterprise_type: '', //企业类型
enterprise_address: '', //企业地址
enterprise_describe: '', //企业描述
enterprise_area: ''
enterprise_area: '', //企业区域
business_license_pic: '', //营业执照
school_license_pic: '', //办学许可证
get_business_license_pic: '', //营业执照
get_school_license_pic: '', //办学许可证
},
checked: true,
registerFirstVisible: false,
......@@ -151,127 +159,74 @@
methods: {
//获取头像
getPortrait(data) {
this.registerInfo.getPortrait = data;
},
//获取营业执照
getBusiness(data) {
this.registerInfo.get_business_license_pic = data;
},
//获取办学许可证
getLicence(data) {
this.registerInfo.get_school_license_pic = data;
},
addressChange(arr) {
console.log(arr,'====');
},
//登录
loginBtn() {
this.$router.push("/position/list");
return
this.$store.state.dynamicRouters = null;
// 从路由地址获取mtoken
let mtoken = this.$route.query.mtoken;
if (this.checkPhone()) {
// this.checkPhone()
if (true) {
let loadingInstance = Loading.service({
fullscreen: true,
text: "登录中"
});
if (this.selectType == 1) {
// 运营商登录
let data = {
name: this.login.phone,
password: this.login.password,
code: this.login.code,
seKey: this.login.seKey
};
login(data).then(res => {
loadingInstance.close();
//令牌
let info = res.data.authorize;
setUserToken(info.token);
setUserInfo({
name: res.data.name,
nickname: res.data.nickname,
phone: this.login.phone
});
store.commit('updateUserInfo', {
name: res.data.name,
nickname: res.data.nickname,
phone: this.login.phone
});
switchMallMater({
mtoken: mtoken?mtoken:"e51a7d1afaa33680246b5a05ead56102",
password: '',
unique_id: mtoken?mtoken:'e51a7d1afaa33680246b5a05ead56102'
}).then(res => {
setStoreMallInfo(res.data.mallInfo);
setStoreMallToken(res.data.authorize.token);
// setMallRoles(res.data.encryptString);
Cookies.set('logType', 1, {domain: domain});
this.$router.push("/index");
});
let data = {
account: this.loginInfo.uname,
passwd: this.loginInfo.upwd,
btoken: '50329e02db492b461120c25a212413c2',
mtoken: '0854089c8fa538ab3dd3d2e311b32c92'
};
accountLogin(data).then(res => {
loadingInstance.close();
//令牌
let info = res.data.authorize;
setUserToken(info.token);
setUserInfo({
name: res.data.name,
nickname: res.data.nickname,
phone: this.loginInfo.uname
});
} else {
// 企业和政府登录
let data = {
account: this.login.phone,
passwd: this.login.password,
type: this.selectType == 2 ? 'enterprise' : 'monitor'
};
loginMerchant(data).then(res => {
loadingInstance.close();
// return;
//令牌
let info = res.data.authorize;
setUserToken(info.token);
setUserInfo({
name: res.data.name,
// nickname: res.data.nickname,
phone: this.login.phone
});
store.commit('updateUserInfo', {
name: res.data.name,
// nickname: res.data.nickname,
phone: this.login.phone
});
Cookies.set('enterpriseId',res.data.enterprise_id, {domain: domain})
switchMallMater({
mtoken: mtoken?mtoken:"e51a7d1afaa33680246b5a05ead56102",
password: '',
unique_id: mtoken?mtoken:'e51a7d1afaa33680246b5a05ead56102'
}).then(res => {
setStoreMallInfo(res.data.mallInfo);
setStoreMallToken(res.data.authorize.token);
// setMallRoles(res.data.encryptString);
if(this.selectType == 2) {
Cookies.set('logType', 2, {domain: domain});
}else {
Cookies.set('logType', 3, {domain: domain});
}
this.$router.push("/index");
});
store.commit('updateUserInfo', {
name: res.data.name,
nickname: res.data.nickname,
phone: this.loginInfo.uname
});
}
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");
// });
});
}
},
//手机号检查
checkPhone() {
let phone = this.login.phone;
let phone = this.loginInfo.uname;
let reg = /^1\d{10}$/;
if (reg.test(phone)) {
this.error.phone = false;
return true;
} else {
this.$message.error("手机号格式错误");
......@@ -351,12 +306,16 @@
return;
}
let data = {
user_name: this.registerInfo.phone
phone: this.registerInfo.phone,
btoken: '50329e02db492b461120c25a212413c2',
mtoken: '0854089c8fa538ab3dd3d2e311b32c92'
};
// send(data).then(res => {
// this.countDown()
// });
this.countDown()
registerSms(data).then(res => {
if(res.error == 0) {
this.$message.success('发送成功')
}
this.countDown()
});
},
countDown() {
let time = 60;
......@@ -427,11 +386,70 @@
this.registerFirstVisible = true;
},
next() {
// this.registerFirstVisible = false;
// this.registerSecondVisible = true;
// return;
if(!this.registerInfo.name.trim()) {
this.$message.error('请输入招聘者名称');
return;
}
if(!this.registerInfo.phone.trim()) {
this.$message.error('请输入手机号码');
return;
}
if(!this.registerInfo.code.trim()) {
this.$message.error('请输入短信验证码');
return;
}
if(!this.registerInfo.password.trim() || !this.registerInfo.rePassword.trim()) {
this.$message.error('请输入密码');
return;
}
if(this.registerInfo.password != this.registerInfo.rePassword) {
this.$message.error('两次密码输入不一致');
return;
}
let data = {
phone: this.registerInfo.phone,
name: this.registerInfo.name,
passwd: this.registerInfo.password,
smsCode: this.registerInfo.code,
btoken: '50329e02db492b461120c25a212413c2',
mtoken: '0854089c8fa538ab3dd3d2e311b32c92'
}
register(data).then(res => {
console.log(res);
if(res.error == 0) {
}
})
this.registerFirstVisible = false;
this.registerSecondVisible = true;
},
registerBtn() {
//编辑企业信息
registerBtn() {
let data = {
position_name: this.registerInfo.duty,
email: this.registerInfo.email,
logo: this.registerInfo.getPortrait[0],
name: this.registerInfo.enterprise_name,
peoples: Number(this.registerInfo.enterprise_scale),
type: this.registerInfo.enterprise_type,
area_id: this.registerInfo.enterprise_area[2],
address: this.registerInfo.enterprise_address,
remark: this.registerInfo.enterprise_describe,
business_license_pic: this.registerInfo.get_business_license_pic[0],
school_license_pic: this.registerInfo.get_school_license_pic[0]
}
console.log(data);
// return
accountEdit(data).then(res => {
if(res.error == 0) {
this.$message.success('注册成功');
this.registerSecondVisible = false;
}
})
}
},
mounted() {
......
<template>
<div class="conatiner">
<p>新建基地</p>
<div class="line-style">
<div class="label">基地名称:</div>
<el-input class="input" placeholder="请输入基地名称" size="small" v-model="name"></el-input>
</div>
<div class="line-style">
<div class="label">基地编号:</div>
<el-input class="input" placeholder="请输入基地编号" size="small" v-model="code"></el-input>
</div>
<div class="line-style">
<div class="label">基地面积(亩):</div>
<el-input class="input" placeholder="请输入基地面积" size="small" v-model="areas"></el-input>
</div>
<div class="line-style">
<div class="label">基地负责人:</div>
<el-input class="input" placeholder="请输入基地负责人" size="small" v-model="user"></el-input>
</div>
<div class="line-style">
<div class="label">企业:</div>
<el-select placeholder="请选择生产企业" size="small" class="select-item" clearable v-model='enterprise_id'>
<el-option v-for="(item,index) in enterpriseList" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
<div class="line-style">
<div class="label">基地详情:</div>
<div style="width: 600px;">
<UE @callback="getEditorHtml" :richText="detail" v-model="detail"></UE>
</div>
</div>
<div class="line-style">
<div class="label">基地位置:</div>
<el-input class="input" placeholder="请输入基地位置" size="small" v-model="address"></el-input>
</div>
<div class="line-style">
<div class="label">备注:</div>
<el-input class="input" placeholder="请输入备注" size="small" v-model="remark"></el-input>
</div>
<div class="opration">
<el-button size="small" @click="cancel">取消</el-button>
<el-button size="small" @click="save" type="primary" class="save">保存</el-button>
</div>
</div>
</template>
<script>
import uploadimage from '../../components/Upload/index'
import {accountGet, accountEdit} from "@/api/login"
export default {
name: "newPoint",
components: {
uploadimage
},
data() {
return {
producerId: '',
name: '',
code: '',
areas: '',
user: '',
detail: '',
address: '',
remark: '',
enterpriseList: [],
enterprise_id: ''
}
},
methods: {
cancel() {
this.$router.go(-1);
},
//获取富文本编辑器中的内容
getEditorHtml(data) {
// console.log(data);
this.detail= data;
},
getInfo() {
accountGet({
}).then(res => {
if(res.error == 0) {
this.name = res.data.name;
this.code = res.data.code;
this.areas = res.data.areas;
this.user = res.data.user;
this.detail = res.data.detail;
this.address = res.data.address;
this.remark = res.data.remark;
this.enterprise_id = res.data.enterprise_id;
}
})
},
save() {
let params = {
name: this.name,
code: this.code,
areas: this.areas,
user: this.user,
detail: this.detail,
address: this.address,
remark: this.remark,
enterprise_id: this.enterprise_id
}
if(this.producerId) {
params.id = this.producerId;
}
accountEdit(params).then(res => {
if(res.error == 0) {
this.$message.success('操作成功!');
setTimeout(()=>{
window.close();
},1000)
}
})
}
},
mounted() {
this.getInfo();
}
}
</script>
<style scoped>
.opration {
margin-top: 30px;
padding-left: 20px;
display: flex;
align-items: center
}
.save {
margin-left: 15px;
}
.conatiner {
padding: 15px;
background: white;
}
.line-style {
display: flex;
align-items: center;
margin-top: 15px;
padding-left: 20px;
}
.label {
margin-right: 15px;
font-size: 13px;
color: #666;
width: 80px;
}
.input {
width: 300px;
}
.input-1 {
width: 150px;
margin-right: 15px;
}
</style>
<template>
<div class="partner-supervise-container">
<el-button type="primary" size="small" style="margin-bottom: 15px" @click="dispose">标为已读</el-button>
<el-tabs v-model="messageStatus" type="card" @tab-click="handleClick">
<el-tab-pane label="全部消息" name="1"></el-tab-pane>
<el-tab-pane label="已读消息" name="2"></el-tab-pane>
<el-tab-pane label="未读消息" name="3"></el-tab-pane>
<el-tab-pane label="历史消息" name="4"></el-tab-pane>
</el-tabs>
<div class="partner-supervise-table">
<el-table ref="multipleTable" :data="list" stripe size="medium" :header-cell-class-name="headerName" @selection-change="handleSelectionChange">
<el-table-column type="selection" algin="center" width="42"></el-table-column>
<el-table-column align="center" prop="title" show-overflow-tooltip label="标题"></el-table-column>
<el-table-column align="center" prop="time" show-overflow-tooltip label="接收时间"></el-table-column>
<el-table-column align="center" prop="type" show-overflow-tooltip label="消息类型"></el-table-column>
<el-table-column align="center" prop="status" show-overflow-tooltip label="消息状态"></el-table-column>
</el-table>
<div class="notice-center">
<div class="tabs-nav">
<el-tabs v-model="activeName" type="card" @tab-click="togglePage(activeName)" class="nav-tab">
<el-tab-pane label="全部消息" name="1"></el-tab-pane>
<el-tab-pane label="已读消息" name="2"></el-tab-pane>
<el-tab-pane label="未读消息" name="4"></el-tab-pane>
</el-tabs>
<!-- <el-select v-model="filter" class="filter-status" size="small" placeholder="请选择" @change="getList(1)">-->
<!-- <el-option label="全部/不限" value="0"></el-option>-->
<!-- <el-option label="已读" value="2"></el-option>-->
<!-- <el-option label="未读" value="1"></el-option>-->
<!-- </el-select>-->
</div>
<div class="pagination" v-if="totalPages > 1">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[10, 20, 30]"
:page-size="page_size"
layout="total,sizes, prev, pager, next,jumper"
@size-change="changePageSize"
:total="totalPages">
</el-pagination>
<div class="box">
<div class="item" :class="{'readed':item.is_read==2}" v-for="(item,index) in tableData" :key="index">
<div class="header">
<h2 class="title">{{item.title}}</h2>
</div>
<!-- <p class="info-content">{{item.content}}-->
<!-- <span class="to-detail" v-if="activeName!=4" @click="toDetail(item)">【详情】</span></p>-->
<p class="info-content">{{item.content}}</p>
<span class="time">
{{item.post_time}}
<span class="to-read" v-if="item.is_read == 1&& activeName!=4"
@click="toRead(item.unique_id)">标记为已读</span>
</span>
<span class="del" @click="toDel(item.unique_id)" v-if="activeName!=4">
<i class="el-icon-circle-close"></i>
</span>
</div>
<div class=" nodata" v-if="tableData.length==0">
暂无通知
</div>
<div class="footer flex-box">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[10, 20, 30]"
:page-size="pageSize"
layout="total,sizes, prev, pager, next,jumper"
@size-change="changePageSize"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import {messageList, messageSign} from "@/api/message"
// import goAnyWhere from '../../notice/utils/goAnyWhere'
import {getNoticeList, operationRead, operationDelete} from "@/api/notice";
export default {
name: "center",
data() {
return {
list: [
{
title: '您的账号已经审核成功,快去添加职位进行招聘吧!',
time: '2019-12-26 10:15:52',
type: '账号通知',
status: '已读'
},
{
title: '您的账号已经审核成功,快去添加职位进行招聘吧!',
time: '2019-12-26 10:15:52',
type: '账号通知',
status: '未读'
}
],//合伙人列表
currentPage: 1,//当前页
totalPages: 0,//总记录数
page_size: 10,//每页10条记录
messageStatus: '1',
selectMessageList: []
activeName: '1',
filter: '0',
pageSize: 10,
currentPage: 1,
total: 0,
tableData: []
}
},
mounted() {
this.getList(1);
// new goAnyWhere(this,{})
},
watch: {
$route: {
handler() {
this.activeName = this.$route.query.to ? this.$route.query.to : '1';
},
immediate: true
}
},
methods: {
headerName() {
return 'header-class-title'
toDetail(item) {
// new goAnyWhere(this, item)
},
handleClick() {
this.list = [];
this.currentPage = 1;
this.totalPages = 0;
this.getMessageList();
togglePage(activeName) {
this.$router.push({path: this.$route.path, query: {to: activeName}});
this.getList(1)
},
dispose() {
if(this.selectMessageList.length < 1) {
this.$message.error('请先勾选要处理的消息');
return;
}
this.selectMessageList.forEach(row => {
console.log(row,'=====');
});
handleCurrentChange(val) {
this.getList(val)
},
//获取消息列表
getMessageList() {
changePageSize(val) {
this.pageSize = val
this.getList(1)
},
handleCurrentChange(page) {
this.currentPage = page;
this.getMessageList();
toRead(id) {
operationRead({id}).then(res => {
if (res.error == 0) {
this.getList(this.currentPage)
}
})
},
//改变每页数据数
changePageSize(e) {
this.page_size = e;
this.currentPage = 1;
this.getMessageList();
toDel(id) {
operationDelete({id}).then(res => {
if (res.error == 0) {
let page = this.currentPage > 1 && this.tableData.length == 1 ? this.currentPage - 1 : this.currentPage;
this.getList(page)
}
})
},
handleSelectionChange(val) {
if(val.length) {
this.selectMessageList = val;
getList(val) {
let data = {
page: val,
page_size: this.pageSize,
category: this.activeName
}
if (this.filter != 0) {
data.is_read = this.filter
}
getNoticeList(data).then(res => {
this.currentPage = 1;
this.total = 0;
this.tableData = [];
if (res.error == 0 && res.data) {
this.currentPage = val;
this.total = res.data.count;
this.tableData = res.data.item;
}
})
}
},
mounted() {
}
}
</script>
<style scoped>
.partner-supervise-container {
.notice-center {
background: #fff;
padding: 15px;
background-color: #fff;
}
.tabs-nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.footer {
margin-top: 15px;
text-align: right;
}
.item {
padding: 16px;
border-top: 1px solid #e4e7ed;
cursor: pointer;
transition: all .3s linear;
position: relative;
}
.item .del {
display: none;
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
}
.del .el-icon-circle-close {
color: #999;
}
.item:hover .del {
display: block;
}
.item:hover {
background: #f5f7fa;
}
.title {
font-size: 14px;
color: #333;
line-height: 28px;
font-weight: normal;
}
.info-content {
font-size: 12px;
line-height: 24px;
color: #999;
}
.time {
font-size: 12px;
line-height: 24px;
color: #999;
}
.filter-status {
width: 120px;
}
.nodata {
font-size: 12px;
line-height: 120px;
color: #999;
text-align: center;
border-top: 1px solid #e4e7ed;
}
.readed {
opacity: .55;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
}
.to-del {
display: none;
color: #F56C6C;
transition: all .3s linear;
font-size: 12px;
}
.to-detail, .to-read {
color: #409EFF;
}
.item:hover .to-del {
display: block;
}
.to-read {
margin-left: 5px;
}
</style>
<template>
<div>
<!-- <div class="search-title">-->
<!-- <div></div>-->
<!-- <div>-->
<!-- <el-button type="primary" size="small" @click="introDialogVisible = true" >推荐简历-->
<!-- </el-button>-->
<!-- </div>-->
<!-- </div>-->
<div class="info-contanier">
<div class="info-item">
<div class="flex-between mb">
<div class="flex">
<div class="inco-quan_big"></div>
<div class="info-job_txt">英语教师</div>
<div class="inco-quan_big">{{detailInfo.job_type==1?'全':'兼'}}</div>
<div class="info-job_txt">{{detailInfo.job_name}}</div>
</div>
</div>
<div class="table-info-h1">陕西当老师教育科技有限公司</div>
<div class="info-salary">4K-5K</div>
<div class="info-salary">{{detailInfo.job_require_salary_min/100000}}K-{{detailInfo.job_require_salary_max/100000}}K</div>
</div>
<div class="info-item">
<div class="table-inf0-h3 mb">
<span class='mr'>西安-雁塔区</span>
<span class='mr'>本科</span>
<span class='mr'>经验不限</span>
<span>3</span>
<span class='mr'>{{detailInfo.work_city}}-{{detailInfo.work_area}}</span>
<span class='mr'>{{detailInfo.job_require_edu_level_txt}}</span>
<span class='mr'>{{detailInfo.job_require_work_ages_txt}}</span>
<span>{{detailInfo.job_require_people}}</span>
</div>
<div class="info-update_time mb">更新:11-22</div>
<div class="flex">
<span class="item-tips">五险一金</span>
<span class="item-tips">包吃</span>
<span class="item-tips">管饱</span>
<span class="item-tips">零食管够</span>
<div class="info-update_time mb">更新:{{detailInfo.updated_at?detailInfo.updated_at:'--'}}</div>
<div class="flex" v-if="detailInfo.job_benefits">
<span class="item-tips" v-for="(item,index) in detailInfo.job_benefits" :key="index">{{item}}</span>
</div>
</div>
<div class="info-item no-border">
<div class="info-title_txt">职位详情</div>
<div class="info-item-h3">
<p>要求:</p>
<p>1.持有教师资格证优先,幼师或师范类专业优先;</p>
<p>2.普通话标准,表达能力强,工作积极主动,善于学习;</p>
<p>3.熟悉陕西省小学各科知识结构、知识点;</p>
<p>4.热爱教育事业,有爱心、有耐心、有责任心、有进取心</p>
<p>职责:</p>
<p>1.负责托辅学生接送、安全及课后作业辅导、纪律管理等工作;</p>
<p>2.做好与家长的良好沟通、不断提升学生综合素质;</p>
<p>3.配合校区做好招生工作;</p>
<p>4.接受校区及北京书香源总部的培训、学习及有关考核要求</p>
<div class="info-item-h3" v-html="detailInfo.job_remark">
</div>
</div>
<div class="info-item no-border">
<div class="info-title_txt">工作地点</div>
<div class="info-item-h3">
<p>陕西省西安市碑林区南二环巴拉巴拉巴拉</p>
<p>{{detailInfo.work_address}}</p>
</div>
</div>
</div>
......@@ -83,8 +62,18 @@
</template>
<script>
import {positionEdit} from "@/api/position"
import {positionDetail} from '@/api/position';
import {getAcademicQualifications, getWorkExperience, getSalaryExpectation} from "@/api/common"
import { CodeToText, TextToCode,} from 'element-china-area-data';
import {Loading} from 'element-ui';
export default {
props: {
},
components: {
},
data() {
return {
introDialogVisible:false,
......@@ -96,7 +85,11 @@
id: [
{ required: true, message: '请填写简历ID', trigger: 'blur' },
],
}
},
detailInfo:'', //简历详情
id: '',
eduList: [],
workAgesList: [],
};
},
methods: {
......@@ -112,7 +105,59 @@
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
},
getDetail(){
let loading = Loading.service({
target: document.querySelector('.main-container'),
text: '请求中...',
});
let data={
id:this.id,
mode:'simple'
}
positionDetail(data).then(res=>{
loading.close();
if(res.error==0){
let obj={
...res.data,
work_city:CodeToText[res.data.work_area_id.slice(0,4)+'00'],
work_area:CodeToText[res.data.work_area_id],
}
this.eduList.forEach(m =>{if(m.level==obj.job_require_edu_level){ obj.job_require_edu_level_txt = m.level_name}})
this.workAgesList.forEach(m =>{if(m.level==obj.job_require_work_ages){ obj.job_require_work_ages_txt =m.level_name}})
this.detailInfo=obj;
console.log(this.detailInfo,'===');
}
}).catch()
},
//获取学历
getEduLevels() {
return new Promise(resolve => {
getAcademicQualifications().then(res => {
if(res.error == 0) {
this.eduList = res.data;
resolve();
}
})
}).catch(error => {
})
},
//获取工作经验
getWorkAges() {
return new Promise(resolve => {
getWorkExperience().then(res => {
if (res.error == 0) {
this.workAgesList = res.data;
resolve();
}
})
}).catch(error => {
})
},
},
computed: {
......@@ -120,12 +165,15 @@
watch: {
},
created() {
async created() {
await this.getEduLevels();
await this.getWorkAges();
if (this.$route.params.id && this.$route.params.id != 0) {
this.id = this.$route.params.id;
this.getDetail();
}
},
mounted() {
},
};
</script>
......@@ -203,7 +251,7 @@
color:red;
}
.info-update_time{
color:#8DEEEE;
color:#07a2a2;
}
.item-tips{
padding:2px 3px;
......
......@@ -3,10 +3,10 @@
<p class="create-title">职业基本信息</p>
<div class="create-container">
<el-form ref="form" :model="positionForm" label-width="120px">
<el-form-item label="公司名称:">
<el-input v-model="positionForm.company_name" class="input-style" placeholder="请输入公司名称"
maxlength="10" size="small"></el-input>
</el-form-item>
<!-- <el-form-item label="公司名称:">-->
<!-- <el-input v-model="positionForm.company_name" class="input-style" placeholder="请输入公司名称"-->
<!-- maxlength="10" size="small"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="职位名称:">
<el-input v-model="positionForm.position_name" class="input-style" size="small"
placeholder="请输入职位名称"
......@@ -46,13 +46,13 @@
<el-form ref="form" :model="positionForm" label-width="120px">
<el-form-item label="学历:">
<el-select v-model="positionForm.education" placeholder="请选择" size="small">
<el-option v-for="item in education" :key="item.value" :label="item.label" :value="item.value">
<el-option v-for="item in education" :key="item.level" :label="item.level_name" :value="item.level">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="工作经验:">
<el-select v-model="positionForm.experience" placeholder="请选择" size="small">
<el-option v-for="item in experience" :key="item.value" :label="item.label" :value="item.value">
<el-option v-for="item in experience" :key="item.level" :label="item.level_name" :value="item.level">
</el-option>
</el-select>
</el-form-item>
......@@ -62,14 +62,30 @@
<el-input size="small" class="input-small" v-model="positionForm.max_salary"></el-input>
</el-form-item>
<el-form-item label="公司福利:">
<el-input v-model="positionForm.name" class="input-style" placeholder="请输入公司福利"
maxlength="10" size="small"></el-input>
</el-form-item>
<el-form-item label="职位描述:">
<el-input type="textarea" style="width: 500px" rows="8"
placeholder="请输入职位描述" v-model="positionForm.position_describe"></el-input>
<el-tag
:key="tag"
v-for="tag in job_benefits"
closable
:disable-transitions="false"
@close="handleClose(tag)">
{{tag}}
</el-tag>
<el-input
class="input-new-tag"
v-if="inputVisible"
v-model="inputValue"
ref="saveTagInput"
size="small"
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
>
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ 添加福利</el-button>
</el-form-item>
<div class="line-style">
<div class="label">职位描述:</div>
<UE @callback="getEditorHtml" :width="600" :height="320" :richText="positionForm.get_position_describe"></UE>
</div>
<el-form-item>
<el-button type="primary" @click="create" class="form-btn" size="small">立即创建</el-button>
......@@ -81,364 +97,23 @@
</template>
<script>
import {provinceAndCityData,regionData, CodeToText, TextToCode} from 'element-china-area-data';
import {positionEdit} from "@/api/position"
import {positionEdit, positionDetail} from "@/api/position";
import {getAcademicQualifications, getWorkExperience, getJobClassify} from "@/api/common"
export default {
data() {
return {
regionData: regionData,
education: [
{
value: 'benke',
label: '本科'
},
{
value: 'zhuanke',
label: '专科'
},
{
value: 'yanjiusheng',
label: '研究生'
},
{
value: 'boshi',
label: '博士'
},
{
value: 'gaozhong',
label: '高中及以下'
},
],
experience: [
{
value: 'buxian',
label: '经验不限'
},
{
value: 'yinian',
label: '1年以下'
},
{
value: 'sannian',
label: '3年以下'
},
{
value: 'sanwunian',
label: '3-5年'
},
{
value: 'wuqinian',
label: '5-7年'
},
{
value: 'qinian',
label: '7年以上'
},
],
position_type: [
{
value: 'zhongxiaoxue',
label: '中小学课程教学',
children: [
{
value: 'xiaoxue',
label: '小学教师',
children: [
{
value: 'yuwen',
label: '语文'
},
{
value: 'shuxue',
label: '数学'
},{
value: 'yingyu',
label: '英语'
},{
value: 'yinyue',
label: '音乐'
},{
value: 'tiyu',
label: '体育'
},
]
},
{
value: 'chuzhong',
label: '初中教师',
children: [
{
value: 'meishu',
label: '美术'
},
{
value: 'wuli',
label: '物理'
},{
value: 'huaxue',
label: '化学'
},{
value: 'shengwu',
label: '生物'
},{
value: 'zhengzhi',
label: '政治'
},
]
},
{
value: 'gaozhong',
label: '高中教师',
children: [
{
value: 'dili',
label: '地理'
},
{
value: 'lishi',
label: '历史'
},{
value: 'kexue',
label: '科学'
},{
value: 'xinxijishu',
label: '信息技术'
},{
value: 'xinlijiankang',
label: '心理健康教育'
},
]
}
]
},
{
value: 'zaojiaoyoujiao',
label: '早教/幼教教学',
children: [
{
value: 'huiben',
label: '绘本教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'qinzi',
label: '亲子教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'yingyuzaojiao',
label: '英语早教教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'xueqianjiaoyu',
label: '学前教育教师',
children: [
{
value: 'all',
label: '全部'
},
]
}
]
},
{
value: 'caiyitechang',
label: '才艺特长培训',
children: [
{
value: 'shengyue',
label: '声乐教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'wudao',
label: '舞蹈教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'shufa',
label: '书法教师',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'huihua',
label: '绘画教师',
children: [
{
value: 'all',
label: '全部'
},
]
}
]
},
{
value: 'jiaoxueguanli',
label: '教学管理',
children: [
{
value: 'baoyuyuan',
label: '保育员',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'banzhuren',
label: '班主任',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'jiaowuzhuanyuan',
label: '教务专员',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'jiaoxuezhuguan',
label: '教学主管',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'yuanzhang',
label: '园长',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'xiaozhang',
label: '校长',
children: [
{
value: 'all',
label: '全部'
},
]
}
]
},
{
value: 'shichangyunying',
label: '市场与运营',
children: [
{
value: 'xinmeitiyunying',
label: '新媒体运营',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'kechengguwen',
label: '课程顾问',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'dianhuaxiaoshou',
label: '电话销售',
children: [
{
value: 'all',
label: '全部'
},
]
},
{
value: 'renshixingzheng',
label: '人事行政',
children: [
{
value: 'all',
label: '全部'
},
]
}
]
},
],
education: [],
experience: [],
typep: [],
position_type: [],
positionForm: {
company_name: '', //公司名称
position_name: '', //职位名称
position_type: '', //职位类型
position_property: '1', //职位属性
position_describe: '', //职位描述
get_position_describe: '',
number: '', //招聘人数
address: '', //工作地址
area: '', //工作区域
......@@ -448,12 +123,93 @@
latitude: '', //纬度
min_salary: '', //薪资范围 小
max_salary: '', //薪资范围 大
}
job_benefits: [], //公司福利
},
id: '',
inputVisible: false,
inputValue: '',
job_benefits: []
}
},
methods: {
handleClose(tag) {
this.job_benefits.splice(this.job_benefits.indexOf(tag), 1);
},
showInput() {
this.inputVisible = true;
this.$nextTick(()=> {
this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm() {
let inputValue = this.inputValue;
if (inputValue) {
this.job_benefits.push(inputValue);
}
this.inputVisible = false;
this.inputValue = '';
},
//获取富文本编辑器中的内容
getEditorHtml(data) {
// console.log(data);
this.positionForm.position_describe = data;
},
//立即创建
create() {
let data = {
job_name: this.positionForm.position_name,
job_classification_id: this.positionForm.position_type[2]?this.positionForm.position_type[2]:this.positionForm.position_type[1],
job_type: Number(this.positionForm.position_property),
work_area_id: this.positionForm.area[2] || '140311',
work_address: this.positionForm.address,
job_require_people: Number(this.positionForm.number),
job_require_edu_level: this.positionForm.education ? Number(this.positionForm.education) : 2,
job_require_work_ages: this.positionForm.experience ? Number(this.positionForm.experience) : 3,
job_require_salary_min: this.positionForm.min_salary * 100,
job_require_salary_max: this.positionForm.max_salary * 100,
job_remark: this.positionForm.position_describe,
job_benefits: this.job_benefits
}
let explain = '创建成功';
if(this.id) {
data.id = this.id;
explain = '编辑成功!'
}
positionEdit(data).then(res => {
if(res.error == 0) {
this.$message.success(explain);
this.goback();
}
})
},
//获取职位详情
getPositionDetail() {
return new Promise(resolve => {
positionDetail({
id: this.id
}).then(res => {
if(res.error == 0) {
this.positionForm.position_name = res.data.job_name;
this.positionForm.position_property = res.data.job_type;
this.positionForm.number = res.data.job_require_people;
this.positionForm.address = res.data.work_address;
this.positionForm.min_salary = res.data.job_require_salary_min / 100;
this.positionForm.max_salary = res.data.job_require_salary_max / 100;
this.job_benefits = res.data.job_benefits;
this.positionForm.get_position_describe = res.data.job_remark;
this.positionForm.education = res.data.job_require_edu_level;
this.positionForm.experience = res.data.job_require_work_ages;
this.positionForm.area = res.data.work_area_id;
this.positionForm.position_type = res.data.job_classification_id;
}
})
}).catch(error => {
})
},
//选择职位类型
......@@ -589,7 +345,6 @@
_this.map.setFitView();// 执行定位
this.regeocoder(lnglatXY);
},
regeocoder(position) { //逆地理编码
var geocoder = new AMap.Geocoder({
radius: 1000,
......@@ -608,17 +363,97 @@
});
this.map.setFitView();
},
geocoder_CallBack(data) {
// this.addresInfo = data;
var address = data.regeocode.formattedAddress; //返回地址描述
this.positionForm.address = address;
},
//获取学历
getEduLevels() {
return new Promise(resolve => {
getAcademicQualifications().then(res => {
if(res.error == 0) {
this.education = res.data;
resolve();
}
})
}).catch(error => {
})
},
//获取工作经验
getWorkAges() {
return new Promise(resolve => {
getWorkExperience().then(res => {
if (res.error == 0) {
this.experience = res.data;
resolve();
}
})
}).catch(error => {
})
},
//获取值为分类
JobClassify() {
return new Promise(resolve => {
getJobClassify().then(res => {
this.position_type = [];
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();
}).catch(error => {
})
}
},
mounted() {
async mounted() {
this.getUserLocation();
await this.getEduLevels();
await this.getWorkAges();
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) {
console.log(9);
this.id = this.$route.params.id;
this.getPositionDetail();
}
}
}
</script>
......@@ -627,6 +462,18 @@
.el-form-item{
margin-bottom: 10px;
}
.line-style {
display: flex;
/*align-items: center;*/
margin-bottom: 20px;
}
.line-style .label {
width: 120px;
text-align: right;
color: #606266;
font-size: 14px;
margin-top: 6px;
}
.input-style {
width: 330px;
}
......@@ -660,5 +507,23 @@
height: 400px;
border: 1px solid #f2f7ff;
}
.el-form-item__content {
line-height: 20px;
}
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style>
......@@ -3,16 +3,21 @@
<el-button @click="addPartner" type="primary" size="small">新增招聘职位</el-button>
<el-form :inline="true" :model="queryForm" size="small" ref="queryForm" class="fiter-box" >
<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 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-option label="全部" value="0"></el-option>
<el-option label="刚投递" value="1"></el-option>
<el-option label="已查看" value="2"></el-option>
<el-option label="通过初筛" value="3"></el-option>
<el-option label="已拒绝" value="4"></el-option>
<el-option label="正在招聘" value="1"></el-option>
<el-option label="已关闭" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="职位类型:" prop="searchContent" class="order-item">
<el-select v-model="queryForm.type" placeholder="请选择" class="input-style" size="small">
<el-option label="全部" value="0"></el-option>
<el-option label="全职" value="1"></el-option>
<el-option label="兼职" value="2"></el-option>
</el-select>
</el-form-item>
</div>
......@@ -27,47 +32,46 @@
<el-table-column align="center" prop="truename" label="职位信息" width="300">
<template slot-scope="scope">
<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.job_name}}</div>
<div class="info">
<div>{{scope.row.address}}</div>
<div>{{scope.row.education}}</div>
<div>{{scope.row.experience}}</div>
<div>{{scope.row.work_city}}-{{scope.row.work_area}}</div>
<div>{{scope.row.job_require_edu_level_txt}}</div>
<div>{{scope.row.job_require_work_ages_txt}}</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资">
<template slot-scope="scope">
<div class="compensation">{{scope.row.compensation}}</div>
<div class="compensation">{{scope.row.job_require_salary_min / 100000}}-{{scope.row.job_require_salary_max / 100000}}K</div>
</template>
</el-table-column>
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="发布时间">
<template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.publishTime}}</span>
<span class="table-inf0-h3">{{scope.row.created_at}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="刷新时间">
<template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.refreshTime}}</span>
<span class="table-inf0-h3">{{scope.row.updated_at}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="status" show-overflow-tooltip label="职位状态">
<template slot-scope="scope">
<span class="table-inf0-h3">{{scope.row.status}}</span>
<span class="table-inf0-h3">{{scope.row.status == 1 ? '招聘中':'已关闭'}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="160" fixed="right">
<template slot-scope="scope">
<div>
<el-button size="small" type="text" @click="checkPosition">查看职位</el-button>
<el-button size="small" type="text" @click="checkPosition(scope.row.id)">查看职位</el-button>
<span class="segmenting-line">|</span>
<el-button size="small" type="text" @click="editPartner(scope.row.atoken)">编辑</el-button>
<el-button size="small" type="text" @click="editPartner(scope.row.id)">编辑</el-button>
<span class="segmenting-line">|</span>
<el-button size="small" type="text" @click="refreshPosition">刷新</el-button>
<!-- <span class="segmenting-line">|</span>-->
<el-button size="small" type="text" @click="closePosition">关闭</el-button>
<el-button size="small" type="text" @click="refreshPosition(scope.row.id)">刷新</el-button>
<el-button size="small" type="text" @click="closePosition(scope.row.id)">关闭</el-button>
<span class="segmenting-line">|</span>
<el-button size="small" type="text" style="color: #f56c6c" @click="deletePosition">删除</el-button>
<el-button size="small" type="text" style="color: #f56c6c" @click="deletePosition(scope.row.id)">删除</el-button>
</div>
</template>
</el-table-column>
......@@ -90,7 +94,7 @@
<div>
<div style="text-align: center;margin-bottom: 40px">是否已经招到合适人选?</div>
<div class="operation">
<el-button type="primary" size="small">已招到</el-button>
<el-button type="primary" size="small" @click="sureClose">已招到</el-button>
<el-button size="small" @click="isShowClose = false">未招到</el-button>
</div>
</div>
......@@ -111,7 +115,7 @@
<div>
<div style="text-align: center;margin-bottom: 40px">删除后发布该职位需要重新填写</div>
<div class="operation">
<el-button type="primary" size="small">确定</el-button>
<el-button type="primary" size="small" @click="sureDelete">确定</el-button>
<el-button size="small" @click="isShowDelete = false">取消</el-button>
</div>
</div>
......@@ -119,32 +123,27 @@
</div>
</template>
<script>
import {positionList} from '@/api/position'
import {positionList, positionDelete, positionUpdate} from '@/api/position';
import {getAcademicQualifications, getWorkExperience, getSalaryExpectation} from "@/api/common"
import {CodeToText} from 'element-china-area-data';
export default {
data() {
return {
queryForm:{
searchContent:'',
status:'',
type: ''
},
list: [
{
position: '英语老师',
address: '西安-雁塔区',
education: '本科',
experience: '一年',
compensation: '4k-5k/月',
publishTime: '2019-11-12',
refreshTime: '2019-12-12',
status: '正在招聘'
}
],
list: [],
currentPage: 1,//当前页
totalPages: 0,//总记录数
page_size: 10,//每页10条记录
isShowClose: false,
isShowRefresh: false,
isShowDelete: false,
this_id: '',
eduList: [],
workAgesList: [],
}
},
methods: {
......@@ -161,22 +160,47 @@
headerName() {
return 'header-class-title'
},
checkPosition() {
checkPosition(id) {
let routeUrl = this.$router.resolve({
path: this.$route.path + "/detail/" + 0,
path: this.$route.path + "/detail/" + id,
});
window.open(routeUrl.href, '_blank');
},
//关闭职位弹框
closePosition() {
closePosition(id) {
this.this_id = id;
this.isShowClose = true;
},
//确认关闭职位
sureClose() {
positionUpdate({
id: this.this_id,
status: 2
}).then(res => {
if(res.error == 0) {
this.$message.success('关闭成功');
this.getPositionList();
}
})
},
//刷新职位弹窗
refreshPosition() {
this.isShowRefresh = true;
},
//确认删除职位
sureDelete() {
positionDelete({
id: this.this_id
}).then(res => {
if(res.error == 0) {
this.$message.success('删除成功!');
this.getPositionList();
}
})
},
//删除职位弹窗
deletePosition() {
deletePosition(id) {
this.this_id = id;
this.isShowDelete = true;
},
//添加职位
......@@ -187,16 +211,72 @@
window.open(routeUrl.href, '_blank');
},
//编辑职位
editPartner(atoken) {
editPartner(id) {
let routeUrl = this.$router.resolve({
path: this.$route.path + "/edit/" + 0,
path: this.$route.path + "/edit/" + id,
});
window.open(routeUrl.href, '_blank');
},
//获取职位列表
getPositionList() {
return new Promise(resolve => {
let data = {
job_name: this.queryForm.searchContent,
job_type: this.queryForm.type,
status: this.queryForm.status,
page: this.currentPage,
page_size: this.page_size
}
positionList(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.work_area_id.slice(0,4)+'00'],
work_area: CodeToText[item.work_area_id],
}
this.eduList.forEach(m =>{if(m.level==item.job_require_edu_level){ obj.job_require_edu_level_txt = m.level_name}})
this.workAgesList.forEach(m =>{if(m.level==item.job_require_work_ages){ obj.job_require_work_ages_txt =m.level_name}})
return obj;
})
resolve();
}
})
}).catch(error => {
})
},
//获取学历
getEduLevels() {
return new Promise(resolve => {
getAcademicQualifications().then(res => {
if(res.error == 0) {
this.eduList = res.data;
resolve();
}
})
}).catch(error => {
})
},
//获取工作经验
getWorkAges() {
return new Promise(resolve => {
getWorkExperience().then(res => {
if (res.error == 0) {
this.workAgesList = res.data;
resolve();
}
})
}).catch(error => {
})
},
//选择第几页
handleCurrentChange(page) {
this.currentPage = page;
......@@ -209,8 +289,10 @@
this.getPositionList();
}
},
mounted() {
async mounted() {
await this.getEduLevels();
await this.getWorkAges();
await this.getPositionList();
}
}
</script>
......
......@@ -2,66 +2,69 @@
<div class="partner-supervise-container">
<el-form :inline="true" :model="queryForm" size="small" ref="queryForm" class="fiter-box">
<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-input placeholder="请输入内容" v-model="queryForm.searchContent" class="order-input"> </el-input>-->
<!-- </el-form-item>-->
<el-form-item label="状态:" prop="searchContent" class="order-item">
<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="2"></el-option>
<el-option label="通过初筛" value="3"></el-option>
<el-option label="已拒绝" value="4"></el-option>
</el-select>
</el-form-item>
</div>
<div class="fiter-col" style="margin-bottom: 0">
<el-button type="primary" size="small" style="margin-left: 20px" @click="search">搜索</el-button>
<el-button type="danger" size="small" @click="reset">清空搜索条件</el-button>
<el-form-item label="" prop="searchContent" class="order-item">
<el-button type="primary" size="small" style="" @click="search">搜索</el-button>
</el-form-item>
</div>
</el-form>
<div class="partner-supervise-table">
<el-table :data="list" stripe size="medium" :header-cell-class-name="headerName">
<el-table-column align="center" prop="truename" label="职位信息" width="300">
<el-table-column align="center" prop="truename" label="投递人信息" width="300">
<template slot-scope="scope">
<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>{{scope.row.address}}</div>
<div>{{scope.row.work_city}}-{{scope.row.work_area}}</div>
<div>{{scope.row.education}}</div>
<div>{{scope.row.experience}}</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="薪资">
<el-table-column align="center" prop="status" show-overflow-tooltip label="申请状态">
<template slot-scope="scope">
<div class="compensation">{{scope.row.compensation}}</div>
<div class="compensation" v-if="scope.row.status == 1">发起投递中</div>
<div class="compensation" v-if="scope.row.status == 2">已查看</div>
<div class="compensation" v-if="scope.row.status == 3">通过初筛</div>
<div class="compensation" v-if="scope.row.status == 4">已拒绝</div>
</template>
</el-table-column>
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="发布时间">
<el-table-column align="center" prop="compensation" show-overflow-tooltip label="求职状态">
<template slot-scope="scope">
<div class="table-inf0-h3">{{scope.row.publishTime}}</div>
<div class="table-inf0-h3">{{scope.row.compensation}}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="刷新时间">
<el-table-column align="center" prop="publishTime" show-overflow-tooltip label="职位名称">
<template slot-scope="scope">
<div class="table-inf0-h3">{{scope.row.publishTime}}</div>
<div class="compensation">{{scope.row.job_name}}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="status" show-overflow-tooltip label="职位状态">
<el-table-column align="center" prop="refreshTime" show-overflow-tooltip label="处理时间">
<template slot-scope="scope">
<div class="table-inf0-h3">{{scope.row.publishTime}}</div>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="200" fixed="right">
<template slot-scope="scope">
<div>
<el-button size="small" type="text" @click="checkResume()">查看简历</el-button>
<el-button size="small" type="text" @click="checkResume(scope.row.id)">查看简历</el-button>
<span class="segmenting-line">|</span>
<el-button size="small" type="text" @click="passResume">通过</el-button>
<el-button size="small" type="text" @click="passResume(scope.row.id)">通过</el-button>
<span class="segmenting-line">|</span>
<el-button size="small" type="text" @click="refuseResume">拒绝</el-button>
<el-button size="small" type="text" @click="refuseResume(scope.row.id)">拒绝</el-button>
</div>
</template>
</el-table-column>
......@@ -79,12 +82,17 @@
</el-pagination>
</div>
<!--拒绝简历弹框-->
<el-dialog title="拒绝理由" :visible.sync="isShowRefuseResume" width="400px" center>
<el-dialog title="拒绝理由" :visible.sync="isShowRefuseResume" width="360px" center>
<div>
<!-- <div class="refuse">决绝理由</div>-->
<el-input type="textarea" rows="4" placeholder="请输入拒绝理由"></el-input>
<el-select v-model="refuse_reason" placeholder="请选择" style="width: 100%;margin-bottom: 20px">
<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-option label="已招到合适人选" value="已招到合适人选"></el-option>
</el-select>
<div class="operation">
<el-button type="primary" size="small">确定</el-button>
<el-button type="primary" size="small" @click="sureRefuseResume">确定</el-button>
<el-button size="small" @click="isShowRefuseResume = false">取消</el-button>
</div>
</div>
......@@ -94,7 +102,7 @@
<div>
<div style="text-align: center;margin-bottom: 40px">该求职者是否符合贵司要求</div>
<div class="operation">
<el-button type="primary" size="small">确定</el-button>
<el-button type="primary" size="small" @click="surePassResume">确定</el-button>
<el-button size="small" @click="isShowPassResume = false">取消</el-button>
</div>
</div>
......@@ -110,23 +118,14 @@
searchContent:'',
status:'',
},
list: [
{
position: '英语老师',
address: '西安-雁塔区',
education: '本科',
experience: '一年',
compensation: '4k-5k/月',
publishTime: '2019-11-12',
refreshTime: '2019-12-12',
status: '正在招聘'
}
],//合伙人列表
list: [],//合伙人列表
currentPage: 1,//当前页
totalPages: 0,//总记录数
page_size: 10,//每页10条记录
isShowPassResume: false,
isShowRefuseResume: false
isShowRefuseResume: false,
refuse_reason: '',
checked_id: ''
}
},
methods: {
......@@ -150,15 +149,62 @@
});
window.open(routeUrl.href, '_blank');
},
passResume() {
//确认通过
surePassResume() {
resumePass({
apply_id: Number(this.checked_id),
handle: 'pass'
}).then(res => {
if(res.error == 0) {
this.$message.success('已通过成功!');
this.isShowPassResume = false;
}
})
},
passResume(id) {
this.checked_id = id;
this.isShowPassResume = true;
},
refuseResume() {
refuseResume(id) {
this.checked_id = id;
this.isShowRefuseResume = true;
},
//确认拒绝简历
sureRefuseResume() {
resumeRefuse({
apply_id: Number(this.checked_id),
handle: 'pass',
refuse_reason: this.refuse_reason
}).then(res => {
if(res.error == 0) {
this.$message.success('已拒绝成功!');
this.isShowRefuseResume = false;
}
})
},
//获取简历列表
getResumeList() {
let data = {
page: this.currentPage,
page_size: this.page_size,
}
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],
}
return obj;
})
}
})
},
//选择第几页
handleCurrentChange(page) {
......@@ -173,6 +219,7 @@
}
},
mounted() {
this.getResumeList();
}
}
</script>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!