Commit 140cbb56 authored by 郝聪敏's avatar 郝聪敏

添加prettierrc配置文件

parent 16973291
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
...@@ -12,3 +12,5 @@ yarn-error.log* ...@@ -12,3 +12,5 @@ yarn-error.log*
*.ntvs* *.ntvs*
*.njsproj *.njsproj
*.sln *.sln
.eslintcache
\ No newline at end of file
module.exports = {
"printWidth": 200,
"trailingComma": "es5",
"singleQuote": true,
}
\ No newline at end of file
...@@ -6,27 +6,27 @@ ...@@ -6,27 +6,27 @@
<script> <script>
window.onload = function() { window.onload = function() {
document.addEventListener("touchstart", function(event) { document.addEventListener('touchstart', function(event) {
if (event.touches.length > 1) { if (event.touches.length > 1) {
event.preventDefault(); event.preventDefault();
} }
}); });
document.addEventListener("gesturestart", function(event) { document.addEventListener('gesturestart', function(event) {
event.preventDefault(); event.preventDefault();
}); });
}; };
export default { export default {
name: "App", name: 'App',
data() { data() {
return { return {
appClass: "pc" appClass: 'pc',
}; };
}, },
created: function() { created: function() {
if (document.documentElement.clientWidth <= 640) { if (document.documentElement.clientWidth <= 640) {
this.appClass = "mobile"; this.appClass = 'mobile';
} }
} },
}; };
</script> </script>
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
width: 100%; width: 100%;
cursor: auto; cursor: auto;
text-align: left; text-align: left;
font-family: "PingFangSC-Regular", "Avenir", Helvetica, Arial, sans-serif; font-family: 'PingFangSC-Regular', 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #2c3e50; color: #2c3e50;
......
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 获取个人信息 // 获取个人信息
export function getpersonMassage(params) { export function getpersonMassage(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/login/me`, params, { return axios.get(`${sapi}/api/login/me`, params, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 用户退出 // 用户退出
...@@ -15,31 +15,31 @@ export function loginOUT() { ...@@ -15,31 +15,31 @@ export function loginOUT() {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/login/logout`, { return axios.get(`${sapi}/api/login/logout`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 通过某一来源查询简历信息 // 通过某一来源查询简历信息
export function adoptOneSeeResumeList(parmars) { export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, { return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 通过渠道机简历信息 // 通过渠道机简历信息
export function getChannelMassage() { export function getChannelMassage() {
return axios.get(`${sapi}/api/resume/getSourceList`, { return axios.get(`${sapi}/api/resume/getSourceList`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 判断是否为超级管理员 // 判断是否为超级管理员
export function judeAdmin() { export function judeAdmin() {
return axios.get(`${sapi}/api/user/isAdmin`, { return axios.get(`${sapi}/api/user/isAdmin`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 更改约面信息 // 更改约面信息
export function changeinterviewMassage(parmars) { export function changeinterviewMassage(parmars) {
return axios.post(`${sapi}/api/resumeInterview/update`, parmars, { return axios.post(`${sapi}/api/resumeInterview/update`, parmars, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 重启面试 // 重启面试
...@@ -14,34 +14,34 @@ export function oppenInterview(tid, tstatus) { ...@@ -14,34 +14,34 @@ export function oppenInterview(tid, tstatus) {
console.log(tid, tstatus); console.log(tid, tstatus);
return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`, { return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 终止面试 // 终止面试
export function SInterview(tid) { export function SInterview(tid) {
return axios.post(`${sapi}/api/resumeFlow/end/${tid}`, { return axios.post(`${sapi}/api/resumeFlow/end/${tid}`, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 面试管理查询 // 面试管理查询
export function SerchList(parmars, status) { export function SerchList(parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`, parmars, { return axios.post(`${sapi}/api/interview/findListByQueryVO`, parmars, {
headers: { headers: {
"Content-Type": "application/json;", 'Content-Type': 'application/json;',
"X-Requested-With": "XMLHttpRequest", 'X-Requested-With': 'XMLHttpRequest',
status status,
} },
}); });
} }
// 查看简历详情页 // 查看简历详情页
export function seedetail(parmars) { export function seedetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 面试官查询 // 面试官查询
...@@ -52,39 +52,39 @@ export function Serchinterviewor() { ...@@ -52,39 +52,39 @@ export function Serchinterviewor() {
export function SerchInvitationOwer() { export function SerchInvitationOwer() {
return axios.post(`${sapi}/api/interview/findInviterList`, { return axios.post(`${sapi}/api/interview/findInviterList`, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 新增约面信息 // 新增约面信息
export function NewAddInterview(parmars) { export function NewAddInterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, { return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 查询记录 // 查询记录
export function recodeLIST(parmars) { export function recodeLIST(parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 变更状态 // 变更状态
export function changestatus(tid, tstatus) { export function changestatus(tid, tstatus) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`, { return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 获取终止面试前的前一个状态 // 获取终止面试前的前一个状态
export function formstatus(parmars) { export function formstatus(parmars) {
return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 登录 // 登录
export function login(params) { export function login(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/login/doLogin`, params, { return axios.post(`${sapi}/api/login/doLogin`, params, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 修改密码 // 修改密码
...@@ -15,7 +15,7 @@ export function updatePsd(params) { ...@@ -15,7 +15,7 @@ export function updatePsd(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/login/modifyPassword`, params, { return axios.post(`${sapi}/api/login/modifyPassword`, params, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 查询简历列表 // 查询简历列表
export function serchList(parmars) { export function serchList(parmars) {
return axios.post(`${sapi}/api/resume/findList`, parmars, { return axios.post(`${sapi}/api/resume/findList`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 下载简历(单条) // 下载简历(单条)
...@@ -14,88 +14,73 @@ export function downloadone(parmars) { ...@@ -14,88 +14,73 @@ export function downloadone(parmars) {
parmars = qs.stringify(parmars); parmars = qs.stringify(parmars);
return axios.post(`${sapi}/api/resumeFile/download/formatted/one`, parmars, { return axios.post(`${sapi}/api/resumeFile/download/formatted/one`, parmars, {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded" 'Content-Type': 'application/x-www-form-urlencoded',
} },
}); });
} }
// 搜索 // 搜索
export function sousuoList(parmars, status) { export function sousuoList(parmars, status) {
return axios.post(`${sapi}/api/resume/findListByQueryVO`, parmars, { return axios.post(`${sapi}/api/resume/findListByQueryVO`, parmars, {
headers: { headers: {
"Content-Type": "application/json", 'Content-Type': 'application/json',
status status,
} },
}); });
} }
// 查看简历详情页 // 查看简历详情页
export function seedetail(parmars) { export function seedetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 简历pass // 简历pass
export function PASS(parmars) { export function PASS(parmars) {
return axios.post( return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, headers: {
"", 'Content-Type': 'application/json',
{ },
headers: { });
"Content-Type": "application/json"
}
}
);
} }
// 待处理 // 待处理
export function TODORes(parmars) { export function TODORes(parmars) {
return axios.post( return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, headers: {
"", 'Content-Type': 'application/json',
{ },
headers: { });
"Content-Type": "application/json"
}
}
);
} }
// 备选 // 备选
export function OPTION(parmars) { export function OPTION(parmars) {
return axios.post( return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, headers: {
"", 'Content-Type': 'application/json',
{ },
headers: { });
"Content-Type": "application/json"
}
}
);
} }
// 删除简历 // 删除简历
export function deleteREsume(deleteallArr) { export function deleteREsume(deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), { return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 单条下载简历 // 单条下载简历
export function downloadOne(parmars) { export function downloadOne(parmars) {
return axios.get( return axios.get(`${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`, {
`${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`, headers: {
{ // 'Content-Type':'application/x-www-form-urlencoded'
headers: { },
// 'Content-Type':'application/x-www-form-urlencoded' });
}
}
);
} }
// 批量下载简历 // 批量下载简历
export function downloadALL() { export function downloadALL() {
return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`, { return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`, {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded" 'Content-Type': 'application/x-www-form-urlencoded',
} },
}); });
} }
// 导出列表 // 导出列表
...@@ -104,8 +89,8 @@ export function exportLIST(parmars) { ...@@ -104,8 +89,8 @@ export function exportLIST(parmars) {
`${sapi}/api/excel/output?optSource=${parmars.optSource}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`, `${sapi}/api/excel/output?optSource=${parmars.optSource}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`,
{ {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
} }
); );
} }
...@@ -113,69 +98,66 @@ export function exportLIST(parmars) { ...@@ -113,69 +98,66 @@ export function exportLIST(parmars) {
export function recodeLIST(parmars) { export function recodeLIST(parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 通过某一来源查询简历信息 // 通过某一来源查询简历信息
export function adoptOneSeeResumeList(parmars) { export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, { return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 新增约面信息 // 新增约面信息
export function addinterview(parmars) { export function addinterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, { return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 修改流程状态 // 修改流程状态
export function updatastatus(parmars) { export function updatastatus(parmars) {
return axios.post( return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, {
`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, headers: {
{ 'Content-Type': 'application/json',
headers: { },
"Content-Type": "application/json" });
}
}
);
} }
// 获取邮件模板 // 获取邮件模板
export function getEmailMoo() { export function getEmailMoo() {
return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`, { return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 根据获取id邮件模板内容 // 根据获取id邮件模板内容
export function getEmailContent(parmars) { export function getEmailContent(parmars) {
return axios.post(`${sapi}/api/emailTemplate/loadTemplate`, parmars, { return axios.post(`${sapi}/api/emailTemplate/loadTemplate`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 上传图片 // 上传图片
export function uploadimage() { export function uploadimage() {
return axios.get(`${sapi}/api/ckeditor/uploadImage`, { return axios.get(`${sapi}/api/ckeditor/uploadImage`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 发送邮件 // 发送邮件
export function sendEmail(parmars) { export function sendEmail(parmars) {
return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`, parmars, { return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`, parmars, {
headers: { headers: {
"Content-Type": "multipart/form-data" 'Content-Type': 'multipart/form-data',
// 'Content-Disposition':'multipart/form-data' // 'Content-Disposition':'multipart/form-data'
// 'Content-Type':'application/json' // 'Content-Type':'application/json'
} },
}); });
} }
export function findCompanyEmailByKey(key) { export function findCompanyEmailByKey(key) {
...@@ -186,41 +168,38 @@ export function findCompanyEmailByKey(key) { ...@@ -186,41 +168,38 @@ export function findCompanyEmailByKey(key) {
export function forwardResume(params) { export function forwardResume(params) {
return axios.post(`${sapi}/api/resume/forwardResume`, params, { return axios.post(`${sapi}/api/resume/forwardResume`, params, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
export function getPdf(parmars) { export function getPdf(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`, {
responseType: "arraybuffer", responseType: 'arraybuffer',
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 是否展示原件的PDF // 是否展示原件的PDF
export function isShowPDF(parmars) { export function isShowPDF(parmars) {
return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
export function getpdfUrl(parmars) { export function getpdfUrl(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 获取职位列表 // 获取职位列表
export function getlist(parmars) { export function getlist(parmars) {
return axios.get( return axios.get(`${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`, {
`${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`, headers: {
{ 'Content-Type': 'application/json',
headers: { },
"Content-Type": "application/json" });
}
}
);
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 账号列表查询 // 账号列表查询
export function queryaccountList(params) { export function queryaccountList(params) {
return axios.post(`${sapi}/api/user/findList`, params, { return axios.post(`${sapi}/api/user/findList`, params, {
headers: { headers: {
"Content-Type": "application/json;" 'Content-Type': 'application/json;',
} },
}); });
} }
// 添加账户 // 添加账户
export function addAccount(params) { export function addAccount(params) {
return axios.post(`${sapi}/api/user/add`, params, { return axios.post(`${sapi}/api/user/add`, params, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 删除单条账户 // 删除单条账户
export function Delateaccount(parmars) { export function Delateaccount(parmars) {
return axios.get(`${sapi}/api/user/delete/${parmars.id}`, { return axios.get(`${sapi}/api/user/delete/${parmars.id}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 批量删除 // 批量删除
export function delateAllAccount(DelateARR) { export function delateAllAccount(DelateARR) {
return axios.post(`${sapi}//api/user/delete`, JSON.stringify(DelateARR), { return axios.post(`${sapi}//api/user/delete`, JSON.stringify(DelateARR), {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 恢复初始密码 // 恢复初始密码
export function recoveryPassword(parmars) { export function recoveryPassword(parmars) {
return axios.post(`${sapi}/api/user/initial/${parmars.id}`, { return axios.post(`${sapi}/api/user/initial/${parmars.id}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 查询邮箱列表 // 查询邮箱列表
export function queryemailList(parmars) { export function queryemailList(parmars) {
return axios.post(`${sapi}/api/email/list`, parmars, { return axios.post(`${sapi}/api/email/list`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 同步邮箱 // 同步邮箱
export function Synchronization(parmars) { export function Synchronization(parmars) {
return axios.post(`${sapi}/api/email/bindAndSync`, parmars, { return axios.post(`${sapi}/api/email/bindAndSync`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 解绑邮箱 // 解绑邮箱
export function jiebangEmail(id) { export function jiebangEmail(id) {
return axios.post(`${sapi}/api/email/unbind/${id}`, { return axios.post(`${sapi}/api/email/unbind/${id}`, {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded" 'Content-Type': 'application/x-www-form-urlencoded',
} },
}); });
} }
// 修改邮箱并重新绑定 // 修改邮箱并重新绑定
export function updateemailTWO(parmars) { export function updateemailTWO(parmars) {
return axios.post(`${sapi}/api/email/modify`, parmars, { return axios.post(`${sapi}/api/email/modify`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 批量解绑邮箱 // 批量解绑邮箱
export function UntyingAll(UntyingAllARR) { export function UntyingAll(UntyingAllARR) {
return axios.post( return axios.post(`${sapi}/api/email/unbind/batch`, JSON.stringify(UntyingAllARR), {
`${sapi}/api/email/unbind/batch`, headers: {
JSON.stringify(UntyingAllARR), 'Content-Type': 'application/json',
{ },
headers: { });
"Content-Type": "application/json"
}
}
);
} }
// 获取二维码 // 获取二维码
export function getErcode() { export function getErcode() {
return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`, { return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// //修改账户 // //修改账户
export function updateAccount(parmars) { export function updateAccount(parmars) {
return axios.post(`${sapi}/api/user/modify/${parmars.id}`, parmars, { return axios.post(`${sapi}/api/user/modify/${parmars.id}`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 提交应聘登记表 // 提交应聘登记表
export function submitMassage(params) { export function submitMassage(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/interview/arrive`, params, { return axios.post(`${sapi}/api/interview/arrive`, params, {
headers: { "Content-Type": "application/json" } headers: { 'Content-Type': 'application/json' },
}); });
} }
import axios from "../service/http.service"; import axios from '../service/http.service';
import { sapi } from "../config"; import { sapi } from '../config';
import qs from "qs"; import qs from 'qs';
// 获取上传批次号 // 获取上传批次号
export function getuploadNumber() { export function getuploadNumber() {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/resume/upload/batchNum`, { return axios.get(`${sapi}/api/resume/upload/batchNum`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 上传文件 // 上传文件
...@@ -17,31 +17,31 @@ export function uploadfile(parmars) { ...@@ -17,31 +17,31 @@ export function uploadfile(parmars) {
// 'Content-Type':'multipart/form-data', // 'Content-Type':'multipart/form-data',
processData: false, processData: false,
contentType: false, contentType: false,
async: false async: false,
} },
}); });
} }
// 查询上传列表记录 // 查询上传列表记录
export function serchList(parmars) { export function serchList(parmars) {
return axios.post(`${sapi}/api/resume/upload/history`, parmars, { return axios.post(`${sapi}/api/resume/upload/history`, parmars, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 查询简历详情 // 查询简历详情
export function serchRESUMEdetail(parmars) { export function serchRESUMEdetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
// 查询简历详情 // 查询简历详情
export function deleteREsumeUPLOad(deleteallArr) { export function deleteREsumeUPLOad(deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), { return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: { headers: {
"Content-Type": "application/json" 'Content-Type': 'application/json',
} },
}); });
} }
...@@ -3,12 +3,7 @@ ...@@ -3,12 +3,7 @@
<!-- bidirectional data binding(双向数据绑定) --> <!-- bidirectional data binding(双向数据绑定) -->
<Modal v-model="modal" :fullscreen="fullscreen"> <Modal v-model="modal" :fullscreen="fullscreen">
<Input v-model="value"></Input> <Input v-model="value"></Input>
<editor <editor @getValue="getInfo" :uploadUrl="uploadUrl" :value="value" height="400px"></editor>
@getValue="getInfo"
:uploadUrl="uploadUrl"
:value="value"
height="400px"
></editor>
<div slot="footer"> <div slot="footer">
<Button @click="getInfo">获取内容</Button> <Button @click="getInfo">获取内容</Button>
</div> </div>
...@@ -20,77 +15,69 @@ ...@@ -20,77 +15,69 @@
</Input> </Input>
</FormItem> </FormItem>
<FormItem prop="password"> <FormItem prop="password">
<Input <Input type="password" v-model="formInline.password" placeholder="Password">
type="password"
v-model="formInline.password"
placeholder="Password"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon> <Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input> </Input>
</FormItem> </FormItem>
<FormItem> <FormItem>
<Button type="primary" @click="handleSubmit('formInline')" <Button type="primary" @click="handleSubmit('formInline')">Signin</Button>
>Signin</Button
>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
</template> </template>
<script> <script>
import editor from "./ckeditor.vue"; import editor from './ckeditor.vue';
import { sapi } from "../config/index.js"; import { sapi } from '../config/index.js';
import localStorage from "../service/localstorage.service.js"; import localStorage from '../service/localstorage.service.js';
export default { export default {
data() { data() {
return { return {
modal: true, modal: true,
fullscreen: true, fullscreen: true,
content: "<h2>I am Example</h2>", content: '<h2>I am Example</h2>',
content1: "<h2>I am Example</h2>", content1: '<h2>I am Example</h2>',
uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get( uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
"token" value: '22',
)}&&backUrl=/getimage`,
value: "22",
editorOption: { editorOption: {
// some quill options // some quill options
}, },
formInline: { formInline: {
user: "", user: '',
password: "" password: '',
}, },
ruleInline: { ruleInline: {
user: [ user: [
{ {
required: false, required: false,
message: "Please fill in the user name", message: 'Please fill in the user name',
trigger: "blur", trigger: 'blur',
pattern: /^1[3456789]\d{9}$/, pattern: /^1[3456789]\d{9}$/,
validator: function(rule, value, call) { validator: function(rule, value, call) {
console.log(rule, value); console.log(rule, value);
return call(new Error()); return call(new Error());
} },
} },
], ],
password: [ password: [
{ {
required: true, required: true,
message: "Please fill in the password.", message: 'Please fill in the password.',
trigger: "blur" trigger: 'blur',
}, },
{ {
type: "string", type: 'string',
min: 6, min: 6,
message: "The password length cannot be less than 6 bits", message: 'The password length cannot be less than 6 bits',
trigger: "blur" trigger: 'blur',
} },
] ],
} },
}; };
}, },
watch: {}, watch: {},
components: { components: {
editor editor,
}, },
// manually control the data synchronization // manually control the data synchronization
// 如果需要手动控制数据同步,父组件需要显式地处理changed事件 // 如果需要手动控制数据同步,父组件需要显式地处理changed事件
...@@ -106,12 +93,12 @@ export default { ...@@ -106,12 +93,12 @@ export default {
// this.$Message.error('Fail!'); // this.$Message.error('Fail!');
// } // }
// }) // })
this.$refs[name].validateField("user", error => { this.$refs[name].validateField('user', error => {
console.log("------", error); console.log('------', error);
}); });
} },
}, },
computed: {}, computed: {},
mounted() {} mounted() {},
}; };
</script> </script>
...@@ -3,17 +3,15 @@ ...@@ -3,17 +3,15 @@
</template> </template>
<script> <script>
function GetQueryString(name) { function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg); // 获取url中"?"符后的字符串并正则匹配 var r = window.location.search.substr(1).match(reg); // 获取url中"?"符后的字符串并正则匹配
var context = ""; var context = '';
if (r != null) { if (r != null) {
context = r[2]; context = r[2];
} }
reg = null; reg = null;
r = null; r = null;
return context == null || context == "" || context == "undefined" return context == null || context == '' || context == 'undefined' ? '' : decodeURIComponent(context);
? ""
: decodeURIComponent(context);
} }
export default { export default {
data() { data() {
...@@ -21,11 +19,7 @@ export default { ...@@ -21,11 +19,7 @@ export default {
}, },
mounted() { mounted() {
console.log(777); console.log(777);
window.parent.CKEDITOR.tools.callFunction( window.parent.CKEDITOR.tools.callFunction(GetQueryString('CKEditorFuncNum'), GetQueryString('ImageUrl'), GetQueryString('Message'));
GetQueryString("CKEditorFuncNum"), },
GetQueryString("ImageUrl"),
GetQueryString("Message")
);
}
}; };
</script> </script>
...@@ -2,36 +2,15 @@ ...@@ -2,36 +2,15 @@
<Row id="home" class="home"> <Row id="home" class="home">
<loading v-show="showLoading"></loading> <loading v-show="showLoading"></loading>
<Col span="3" class="aside" style="width:17%;height:100%;overflow: auto;"> <Col span="3" class="aside" style="width:17%;height:100%;overflow: auto;">
<img <img src="http://xyqbui.lkbang.net/image/homelogo.png" alt="" style="height:70px" />
src="http://xyqbui.lkbang.net/image/homelogo.png" <Menu style="width: 100%;" ref="subMenu" :active-name="levelThreeName" :open-names="levelTwoName" @on-select="go">
alt=""
style="height:70px"
/>
<Menu
style="width: 100%;"
ref="subMenu"
:active-name="levelThreeName"
:open-names="levelTwoName"
@on-select="go"
>
<template v-for="menu in childMenu"> <template v-for="menu in childMenu">
<Submenu <Submenu :name="menu.name" :key="menu.name" v-show="!(isAdmin == false && menu.item == '账户管理')">
:name="menu.name"
:key="menu.name"
v-show="!(isAdmin == false && menu.item == '账户管理')"
>
<template slot="title"> <template slot="title">
<Icon :type="menu.icon" style="font-size:20px;font-weight:bold" /> <Icon :type="menu.icon" style="font-size:20px;font-weight:bold" />
{{ menu.item }} {{ menu.item }}
</template> </template>
<MenuItem <MenuItem v-for="(child, index) in menu.child" :key="index" :name="child.name" @click="go" :active-name="levelThreeName">{{ child.item }}</MenuItem>
v-for="(child, index) in menu.child"
:key="index"
:name="child.name"
@click="go"
:active-name="levelThreeName"
>{{ child.item }}</MenuItem
>
</Submenu> </Submenu>
</template> </template>
</Menu> </Menu>
...@@ -39,24 +18,14 @@ ...@@ -39,24 +18,14 @@
<Col span="21" class="content" style="width:83%;height:100%;"> <Col span="21" class="content" style="width:83%;height:100%;">
<Row class="header" style="height:50px;"> <Row class="header" style="height:50px;">
<Col span="20"> <Col span="20">
<Menu <Menu mode="horizontal" :active-name="levelOneName" @on-select="selectMenu">
mode="horizontal" <MenuItem v-for="menu in menuList" :name="menu.name" :key="menu.name">
:active-name="levelOneName"
@on-select="selectMenu"
>
<MenuItem
v-for="menu in menuList"
:name="menu.name"
:key="menu.name"
>
{{ menu.item }} {{ menu.item }}
</MenuItem> </MenuItem>
</Menu> </Menu>
</Col> </Col>
<Col span="2" class="account" style="text-align:right;"> <Col span="2" class="account" style="text-align:right;">
<span style="display:inline-block;line-height:6%;margin-left:30%;">{{ <span style="display:inline-block;line-height:6%;margin-left:30%;">{{ massage }}</span>
massage
}}</span>
</Col> </Col>
<Col span="1" class="sign-out"> <Col span="1" class="sign-out">
<a @click="loginOut" style="float:right">退出</a> <a @click="loginOut" style="float:right">退出</a>
...@@ -69,142 +38,136 @@ ...@@ -69,142 +38,136 @@
</Row> </Row>
</template> </template>
<script> <script>
import { import { getpersonMassage, loginOUT, adoptOneSeeResumeList, getChannelMassage, judeAdmin } from '../api/home.server.js';
getpersonMassage, import localstorage from '../service/localstorage.service.js';
loginOUT, import loading from '../components/loading.vue';
adoptOneSeeResumeList, import { mapState } from 'vuex';
getChannelMassage,
judeAdmin
} from "../api/home.server.js";
import localstorage from "../service/localstorage.service.js";
import loading from "../components/loading.vue";
import { mapState } from "vuex";
export default { export default {
data() { data() {
return { return {
massage: "", massage: '',
isAdmin: false, isAdmin: false,
arr: [], arr: [],
biaoshi: "", biaoshi: '',
channelARR: [], channelARR: [],
isadmin: "", isadmin: '',
pageindex: 0, pageindex: 0,
pageSize: 10, pageSize: 10,
condition: "", condition: '',
xiabiao: "", xiabiao: '',
itemSelect: "", itemSelect: '',
type: "", type: '',
levelOneName: "1", levelOneName: '1',
levelTwoName: ["1-1", "2-1", "3-1", "4-1"], levelTwoName: ['1-1', '2-1', '3-1', '4-1'],
levelThreeName: "1-1-1", levelThreeName: '1-1-1',
menuList: [ menuList: [
{ {
name: "1", name: '1',
item: "简历管理", item: '简历管理',
loadMenu: true, loadMenu: true,
child: [ child: [
{ {
name: "1-1", name: '1-1',
item: "全部管理", item: '全部管理',
icon: "ios-apps-outline", icon: 'ios-apps-outline',
child: [ child: [
{ {
name: "1-1-1", name: '1-1-1',
item: "全部简历", item: '全部简历',
route: "/allResume" route: '/allResume',
} },
] ],
}, },
{ {
name: "1-2", name: '1-2',
item: "渠道简历", item: '渠道简历',
icon: "ios-list", icon: 'ios-list',
child: [] child: [],
} },
] ],
}, },
{ {
name: "2", name: '2',
item: "面试管理", item: '面试管理',
child: [ child: [
{ {
name: "2-1", name: '2-1',
item: "面试管理", item: '面试管理',
icon: "ios-paper-outline", icon: 'ios-paper-outline',
child: [ child: [
{ {
name: "2-1-1", name: '2-1-1',
item: "全部简历", item: '全部简历',
route: "/interview" route: '/interview',
} },
] ],
} },
] ],
}, },
{ {
name: "3", name: '3',
item: "上传简历", item: '上传简历',
child: [ child: [
{ {
name: "3-1", name: '3-1',
item: "上传简历", item: '上传简历',
icon: "ios-cloud-upload-outline", icon: 'ios-cloud-upload-outline',
child: [ child: [
{ {
name: "3-1-1", name: '3-1-1',
item: "上传简历", item: '上传简历',
route: "/upload" route: '/upload',
} },
] ],
} },
] ],
}, },
{ {
name: "4", name: '4',
item: "系统管理", item: '系统管理',
isAdmin: true, isAdmin: true,
child: [ child: [
{ {
name: "4-1", name: '4-1',
item: "账户管理", item: '账户管理',
icon: "ios-contact-outline", icon: 'ios-contact-outline',
show: true, show: true,
child: [ child: [
{ {
name: "4-1-1", name: '4-1-1',
item: "账户管理", item: '账户管理',
route: "/account" route: '/account',
} },
] ],
}, },
{ {
name: "4-2", name: '4-2',
item: "邮箱管理", item: '邮箱管理',
icon: "ios-mail-outline", icon: 'ios-mail-outline',
child: [ child: [
{ {
name: "4-2-1", name: '4-2-1',
item: "邮箱管理", item: '邮箱管理',
route: "/emailMange" route: '/emailMange',
} },
] ],
}, },
{ {
name: "4-3", name: '4-3',
item: "二维码管理", item: '二维码管理',
icon: "ios-qr-scanner", icon: 'ios-qr-scanner',
child: [ child: [
{ {
name: "4-3-1", name: '4-3-1',
item: "二维码管理", item: '二维码管理',
route: "/QRcode" route: '/QRcode',
} },
] ],
} },
] ],
} },
], ],
childMenu: [] childMenu: [],
}; };
}, },
watch: { watch: {
...@@ -212,15 +175,15 @@ export default { ...@@ -212,15 +175,15 @@ export default {
if (to.params.fromInterview) { if (to.params.fromInterview) {
this.getActiveName(); this.getActiveName();
} }
} },
}, },
computed: { computed: {
...mapState({ ...mapState({
showLoading: state => state.loading showLoading: state => state.loading,
}) }),
}, },
components: { components: {
loading loading,
}, },
methods: { methods: {
go(name) { go(name) {
...@@ -237,8 +200,7 @@ export default { ...@@ -237,8 +200,7 @@ export default {
// // refesh是否为刷新页面 // // refesh是否为刷新页面
this.levelOneName = name; this.levelOneName = name;
const menus = this.menuList.filter(v => name === v.name); const menus = this.menuList.filter(v => name === v.name);
this.childMenu = this.childMenu = menus.length > 0 ? menus[0].child : this.menuList[0].child;
menus.length > 0 ? menus[0].child : this.menuList[0].child;
if (!refesh) { if (!refesh) {
// 点击菜单默认展示第一个菜单 // 点击菜单默认展示第一个菜单
this.levelTwoName = []; this.levelTwoName = [];
...@@ -250,8 +212,8 @@ export default { ...@@ -250,8 +212,8 @@ export default {
// 简历管理模块需要加载渠道简历 // 简历管理模块需要加载渠道简历
await this.getChannelMenu(); await this.getChannelMenu();
} }
if (refesh && this.$route.path.indexOf("channel") > -1) { if (refesh && this.$route.path.indexOf('channel') > -1) {
this.levelThreeName = this.$route.path.split("/")[2]; this.levelThreeName = this.$route.path.split('/')[2];
} }
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.subMenu.updateOpened(); this.$refs.subMenu.updateOpened();
...@@ -262,16 +224,16 @@ export default { ...@@ -262,16 +224,16 @@ export default {
// 获取个人信息 // 获取个人信息
getmassage() { getmassage() {
getpersonMassage().then(res => { getpersonMassage().then(res => {
this.massage = (res.data.body && res.data.body.userName) || ""; this.massage = (res.data.body && res.data.body.userName) || '';
}); });
}, },
// 用户退出 // 用户退出
loginOut() { loginOut() {
loginOUT().then(res => { loginOUT().then(res => {
if (res.data.success == true) { if (res.data.success == true) {
localstorage.remove("token"); localstorage.remove('token');
localstorage.remove("isADMIN"); localstorage.remove('isADMIN');
this.$router.replace("/login"); this.$router.replace('/login');
} }
}); });
}, },
...@@ -286,9 +248,7 @@ export default { ...@@ -286,9 +248,7 @@ export default {
var obj = { var obj = {
name: `${item.sourceName}`, name: `${item.sourceName}`,
item: item.sourceName, item: item.sourceName,
route: `/channel/${item.sourceCode}?handUpload=${ route: `/channel/${item.sourceCode}?handUpload=${item.handUpload == null ? '' : item.handUpload}`,
item.handUpload == null ? "" : item.handUpload
}`
}; };
this.menuList[0].child[1].child.push(obj); this.menuList[0].child[1].child.push(obj);
}); });
...@@ -296,12 +256,12 @@ export default { ...@@ -296,12 +256,12 @@ export default {
}, },
getActiveName(change) { getActiveName(change) {
const pathName = this.$route.path; const pathName = this.$route.path;
if (pathName.indexOf("channel") > -1) { if (pathName.indexOf('channel') > -1) {
this.levelOneName = "1"; this.levelOneName = '1';
this.levelThreeName = pathName.split("/")[2]; this.levelThreeName = pathName.split('/')[2];
this.levelTwoName = []; this.levelTwoName = [];
this.levelTwoName.push("1-2"); this.levelTwoName.push('1-2');
this.selectMenu(this.levelOneName, "refresh"); this.selectMenu(this.levelOneName, 'refresh');
return; return;
} }
this.menuList.map(parent => { this.menuList.map(parent => {
...@@ -316,14 +276,14 @@ export default { ...@@ -316,14 +276,14 @@ export default {
}); });
}); });
}); });
this.selectMenu(this.levelOneName, "refresh"); this.selectMenu(this.levelOneName, 'refresh');
}, },
getInitName(name, menu, child) { getInitName(name, menu, child) {
// 超级管理员 // 超级管理员
const isAdmin = menu.isAdmin; const isAdmin = menu.isAdmin;
const hightMenu = { const hightMenu = {
levelTwoName: "", levelTwoName: '',
levelThreeName: "" levelThreeName: '',
}; };
if (isAdmin || isAdmin == undefined) { if (isAdmin || isAdmin == undefined) {
// 默认展示一级菜单 // 默认展示一级菜单
...@@ -345,7 +305,7 @@ export default { ...@@ -345,7 +305,7 @@ export default {
}, },
goBack() { goBack() {
this.getActiveName(); this.getActiveName();
} },
}, },
mounted() { mounted() {
this.getmassage(); this.getmassage();
...@@ -353,12 +313,12 @@ export default { ...@@ -353,12 +313,12 @@ export default {
this.judgeadmin(); this.judgeadmin();
if (window.history && window.history.pushState) { if (window.history && window.history.pushState) {
history.pushState(null, null, document.URL); history.pushState(null, null, document.URL);
window.addEventListener("popstate", this.goBack, false); window.addEventListener('popstate', this.goBack, false);
} }
}, },
destroyed() { destroyed() {
window.removeEventListener("popstate", this.goBack, false); window.removeEventListener('popstate', this.goBack, false);
} },
}; };
</script> </script>
......
<template> <template>
<div class="loadingmark"> <div class="loadingmark">
<div class="loading-audio"> <div class="loading-audio">
<svg <svg :width="width + 'px'" :height="height + 'px'" xmlns="http://www.w3.org/2000/svg" :viewBox="viewBox" preserveAspectRatio="xMidYMid">
:width="width + 'px'"
:height="height + 'px'"
xmlns="http://www.w3.org/2000/svg"
:viewBox="viewBox"
preserveAspectRatio="xMidYMid"
>
<g transform="translate(20 50)"> <g transform="translate(20 50)">
<circle <circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.99275 0.99275)" class="circle" />
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.99275 0.99275)"
class="circle"
/>
</g> </g>
<g transform="translate(40 50)"> <g transform="translate(40 50)">
<circle <circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.773605 0.773605)" class="circle1" />
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.773605 0.773605)"
class="circle1"
/>
</g> </g>
<g transform="translate(60 50)"> <g transform="translate(60 50)">
<circle <circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.42525 0.42525)" class="circle2" />
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.42525 0.42525)"
class="circle2"
/>
</g> </g>
<g transform="translate(80 50)"> <g transform="translate(80 50)">
<circle <circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.113418 0.113418)" class="circle3" />
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.113418 0.113418)"
class="circle3"
/>
</g> </g>
</svg> </svg>
</div> </div>
...@@ -55,25 +21,25 @@ ...@@ -55,25 +21,25 @@
</template> </template>
<script> <script>
export default { export default {
name: "loading", name: 'loading',
props: { props: {
width: { width: {
type: Number, type: Number,
default: 80 default: 80,
}, },
height: { height: {
type: Number, type: Number,
default: 80 default: 80,
} },
}, },
created() { created() {
this.viewBox = "0 0" + " " + (this.width + 10) + " " + this.height; this.viewBox = '0 0' + ' ' + (this.width + 10) + ' ' + this.height;
}, },
data() { data() {
return { return {
viewBox: "" viewBox: '',
}; };
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
const sapi = "http://recruitapi-ai3.liangkebang.net"; const sapi = 'http://recruitapi-ai3.liangkebang.net';
export { sapi }; export { sapi };
module.exports = module.exports = process.env.NODE_ENV === 'production' ? require('./prod.config.js') : require('./env.config.js');
process.env.NODE_ENV === "production"
? require("./prod.config.js")
: require("./env.config.js");
const sapi = "//api.stantoo.com"; const sapi = '//api.stantoo.com';
export { sapi }; export { sapi };
...@@ -3,233 +3,68 @@ ...@@ -3,233 +3,68 @@
<!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px">加载中...</Spin> --> <!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px">加载中...</Spin> -->
<div class="interview-left"> <div class="interview-left">
<div class="leftcontentTop" style="height:100px;display:none"> <div class="leftcontentTop" style="height:100px;display:none">
<div <div style="height:90%;float:left;width:30%;background:rgb(0,146,255);margin-left:1%;margin-top:10px"></div>
style="height:90%;float:left;width:30%;background:rgb(0,146,255);margin-left:1%;margin-top:10px" <div style="height:90%;float:left;width:30%;background:rgb(253,85,83);margin-left:3%;margin-top:10px"></div>
></div> <div style="height:90%;float:left;width:30%;background:rgb(0,176,160);margin-left:3%;margin-top:10px"></div>
<div
style="height:90%;float:left;width:30%;background:rgb(253,85,83);margin-left:3%;margin-top:10px"
></div>
<div
style="height:90%;float:left;width:30%;background:rgb(0,176,160);margin-left:3%;margin-top:10px"
></div>
</div> </div>
<div <div style="float:left;margin-left:1%;width:99%;overflow-y: auto;height:95%;margin-bottom:40px">
style="float:left;margin-left:1%;width:99%;overflow-y: auto;height:95%;margin-bottom:40px" <div style="margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px;color:LightGray" v-show="Essentialinformation.length == 0">
>
<div
style="margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px;color:LightGray"
v-show="Essentialinformation.length == 0"
>
暂无数据 暂无数据
</div> </div>
<div <div class="leftcontentContent" v-for="(item, index) in Essentialinformation" :key="index">
class="leftcontentContent"
v-for="(item, index) in Essentialinformation"
:key="index"
>
<div class="contentMassage"> <div class="contentMassage">
<p style="margin-top:7px"> <p style="margin-top:7px">
<span <span style="margin-left:10px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;cursor:pointer" @click="Seedetail(item.id, item.uid, item.flowStatus)"
style="margin-left:10px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;cursor:pointer"
@click="Seedetail(item.id, item.uid, item.flowStatus)"
>{{ item.ownerName }} |</span >{{ item.ownerName }} |</span
> >
<span <span @click="Seedetail(item.id, item.uid, item.flowStatus)" style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;cursor:pointer"
@click="Seedetail(item.id, item.uid, item.flowStatus)"
style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;cursor:pointer"
>{{ item.ownerMobile }} |</span >{{ item.ownerMobile }} |</span
> >
<span <span @click="Seedetail(item.id, item.uid, item.flowStatus)" style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;width:20%;cursor:pointer">{{
@click="Seedetail(item.id, item.uid, item.flowStatus)" item.ownerExpectTitles
style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;display:inline-block;width:20%;cursor:pointer" }}</span>
>{{ item.ownerExpectTitles }}</span <span style="color:#2d8cf0;float:right;margin-right:5%;cursor:pointer" @click="updateInterview(item.id, item.interviewerName, item.seeTime, item.inviterName)">更改约面信息</span>
>
<span
style="color:#2d8cf0;float:right;margin-right:5%;cursor:pointer"
@click="
updateInterview(
item.id,
item.interviewerName,
item.seeTime,
item.inviterName
)
"
>更改约面信息</span
>
</p> </p>
<p style="margin-top:8px;color:Grey"> <p style="margin-top:8px;color:Grey">
<span style="margin-left:10px;display:inline-block;width:22%;" <span style="margin-left:10px;display:inline-block;width:22%;">邀约人: {{ item.inviterName }} </span>
>邀约人: {{ item.inviterName }} <span style="margin-left:7%;display:inline-block;width:22%;">面试官: {{ item.interviewerName }}</span>
</span> <span style="float:right;margin-right:5%">面试时间:{{ item.seeTime }}</span>
<span style="margin-left:7%;display:inline-block;width:22%;"
>面试官: {{ item.interviewerName }}</span
>
<span style="float:right;margin-right:5%"
>面试时间:{{ item.seeTime }}</span
>
</p> </p>
</div> </div>
<div class="contentState"> <div class="contentState">
<p style="margin-top:8px"> <p style="margin-top:8px">
<span style="margin-left:20px" @click="modal4 = true" <span style="margin-left:20px" @click="modal4 = true">当前状态</span>
>当前状态</span <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'OPTION'">终止面试</span>
> <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'TO_SEE'">终止面试</span>
<span <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'HAS_SEE'">终止面试</span>
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'SEE_FAIL'">终止面试</span>
@click="Stopinterview(item.id)" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'INTERVIEW_FAIL'">终止面试</span>
v-if="item.flowStatus == 'OPTION'" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'TO_SENT_OFFER'">终止面试</span>
>终止面试</span <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'TO_ENTRY'">终止面试</span>
> <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'HAS_ENTRY'">终止面试</span>
<span <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'NO_ENTRY'">终止面试</span>
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'PASS'">终止面试</span>
@click="Stopinterview(item.id)" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'HAS_SENT_OFFER'">终止面试</span>
v-if="item.flowStatus == 'TO_SEE'" <span style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer" @click="Stopinterview(item.id)" v-if="item.flowStatus == 'ARRIVED'">终止面试</span>
>终止面试</span <span style="float:right;margin:0 20px 0 10px;color:#2d8cf0;cursor:pointer" @click="OPPeninterview(item.id, item.flowStatus)" v-if="item.flowStatus == 'END'">重启面试</span>
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'HAS_SEE'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'SEE_FAIL'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'INTERVIEW_FAIL'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'TO_SENT_OFFER'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'TO_ENTRY'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'HAS_ENTRY'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'NO_ENTRY'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'PASS'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'HAS_SENT_OFFER'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 0px;color:#2d8cf0;cursor:pointer"
@click="Stopinterview(item.id)"
v-if="item.flowStatus == 'ARRIVED'"
>终止面试</span
>
<span
style="float:right;margin:0 20px 0 10px;color:#2d8cf0;cursor:pointer"
@click="OPPeninterview(item.id, item.flowStatus)"
v-if="item.flowStatus == 'END'"
>重启面试</span
>
</p> </p>
<p class="nowstatus" style="margin-top:8px;color:Grey"> <p class="nowstatus" style="margin-top:8px;color:Grey">
<span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'OPTION'">备选</span>
style="margin:0 20px 0 20px" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'TO_SEE'">准备约面</span>
v-if="item.flowStatus == 'OPTION'" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'HAS_SEE'">已邀约</span>
>备选</span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'SEE_FAIL'">邀约失败</span>
> <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'INTERVIEW_FAIL'">面试淘汰</span>
<span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'TO_SENT_OFFER'">待offer</span>
style="margin:0 20px 0 20px" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'TO_ENTRY'">待入职</span>
v-if="item.flowStatus == 'TO_SEE'" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'HAS_ENTRY'">已入职</span>
>准备约面</span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'NO_ENTRY'">未入职</span>
> <span style="margin:0 20px 0 20px;color:red" v-if="item.flowStatus == 'END'">终止面试</span>
<span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'PASS'">PASS</span>
style="margin:0 20px 0 20px" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'HAS_SENT_OFFER'">已发offer</span>
v-if="item.flowStatus == 'HAS_SEE'" <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'TO_RESULT'">面试结果待定</span>
>已邀约</span <span style="margin:0 20px 0 20px" v-if="item.flowStatus == 'ARRIVED'">已到达</span>
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'SEE_FAIL'"
>邀约失败</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'INTERVIEW_FAIL'"
>面试淘汰</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'TO_SENT_OFFER'"
>待offer</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'TO_ENTRY'"
>待入职</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'HAS_ENTRY'"
>已入职</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'NO_ENTRY'"
>未入职</span
>
<span
style="margin:0 20px 0 20px;color:red"
v-if="item.flowStatus == 'END'"
>终止面试</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'PASS'"
>PASS</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'HAS_SENT_OFFER'"
>已发offer</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'TO_RESULT'"
>面试结果待定</span
>
<span
style="margin:0 20px 0 20px"
v-if="item.flowStatus == 'ARRIVED'"
>已到达</span
>
<span v-show="item.flowStatus !== 'END'"> <span v-show="item.flowStatus !== 'END'">
<select <select style="border:0;margin-right:10px;float:right;cursor:pointer" @change="selectchangeElement($event, item.id)" v-model="statusValue">
style="border:0;margin-right:10px;float:right;cursor:pointer"
@change="selectchangeElement($event, item.id)"
v-model="statusValue"
>
<option value="0" style="color:#2d8cf0">变更状态 ∨</option> <option value="0" style="color:#2d8cf0">变更状态 ∨</option>
<option value="1" style="color:#2d8cf0">已邀约 </option> <option value="1" style="color:#2d8cf0">已邀约 </option>
<option value="3" style="color:#2d8cf0">邀约失败</option> <option value="3" style="color:#2d8cf0">邀约失败</option>
...@@ -240,26 +75,17 @@ ...@@ -240,26 +75,17 @@
<option value="9" style="color:#2d8cf0">已入职</option> <option value="9" style="color:#2d8cf0">已入职</option>
</select> </select>
</span> </span>
<span <span v-show="item.flowStatus == 'END'" style="float:right;margin-right:10px;">
v-show="item.flowStatus == 'END'"
style="float:right;margin-right:10px;"
>
变更状态 ∨ 变更状态 ∨
</span> </span>
</p> </p>
</div> </div>
<div class="contentRecord" style="text-align:center"> <div class="contentRecord" style="text-align:center">
<p style="margin-top:3px"> <p style="margin-top:3px">
<span <span style="color:#2d8cf0;cursor:pointer" @click="RecordSEE(item.id, item.ownerName)">操作记录</span>
style="color:#2d8cf0;cursor:pointer"
@click="RecordSEE(item.id, item.ownerName)"
>操作记录</span
>
</p> </p>
<p style="font-size:12px;color:Grey"> <p style="font-size:12px;color:Grey">
最后操作人|<span style="margin-left:8px;text-align:center">{{ 最后操作人|<span style="margin-left:8px;text-align:center">{{ item.d }}</span>
item.d
}}</span>
</p> </p>
<p style="color:Grey">{{ item.modifyTime }}</p> <p style="color:Grey">{{ item.modifyTime }}</p>
</div> </div>
...@@ -281,12 +107,7 @@ ...@@ -281,12 +107,7 @@
<div class="interview-right"> <div class="interview-right">
<Form :label-width="80" onsubmit="return false;" class="emailForm"> <Form :label-width="80" onsubmit="return false;" class="emailForm">
<FormItem label="关键词:" style="margin-top:20px;margin-left:1%"> <FormItem label="关键词:" style="margin-top:20px;margin-left:1%">
<Input <Input placeholder="请输入关键词" style="width:80%" v-model="keywords" @keyup.enter.native="Sousuo()" />
placeholder="请输入关键词"
style="width:80%"
v-model="keywords"
@keyup.enter.native="Sousuo()"
/>
</FormItem> </FormItem>
<FormItem label="学历:" class="Education2"> <FormItem label="学历:" class="Education2">
<span <span
...@@ -301,18 +122,8 @@ ...@@ -301,18 +122,8 @@
> >
</FormItem> </FormItem>
<FormItem label="邀约人:" style="margin-top:20px"> <FormItem label="邀约人:" style="margin-top:20px">
<Select <Select style="width:80%" placeholder="请选择" :label-in-value="true" @on-change="selectinterviewElement2">
style="width:80%" <Option v-for="(item, index) in Inviter" :key="index" :value="index">{{ item }}</Option>
placeholder="请选择"
:label-in-value="true"
@on-change="selectinterviewElement2"
>
<Option
v-for="(item, index) in Inviter"
:key="index"
:value="index"
>{{ item }}</Option
>
</Select> </Select>
</FormItem> </FormItem>
<FormItem label="面试官:" style="margin-top:20px"> <FormItem label="面试官:" style="margin-top:20px">
...@@ -327,207 +138,70 @@ ...@@ -327,207 +138,70 @@
placeholder="请输入面试官全名" placeholder="请输入面试官全名"
clearable clearable
> >
<Option <Option v-for="(item, index) in options" :key="index" :value="item.name">{{ item.name }}({{ item.email }})</Option>
v-for="(item, index) in options"
:key="index"
:value="item.name"
>{{ item.name }}({{ item.email }})</Option
>
</Select> </Select>
</FormItem> </FormItem>
<FormItem label="状态:" class="state2"> <FormItem label="状态:" class="state2">
<span <span v-for="(item, index) in state" style="cursor:pointer" :class="{ active2: item.sta == true }" @click="selectElement3(item.Num3, index, item.status3, item.sta)" :key="'state2' + index">
v-for="(item, index) in state"
style="cursor:pointer"
:class="{ active2: item.sta == true }"
@click="selectElement3(item.Num3, index, item.status3, item.sta)"
:key="'state2' + index"
>
{{ item.status3 }}</span {{ item.status3 }}</span
> >
</FormItem> </FormItem>
</Form> </Form>
<Button <Button type="primary" size="small" style="width:150px;margin-left:150px;font-size:15px" @click="Sousuo">搜索</Button>
type="primary"
size="small"
style="width:150px;margin-left:150px;font-size:15px"
@click="Sousuo"
>搜索</Button
>
</div> </div>
<!-- 操作记录弹出框 --> <!-- 操作记录弹出框 -->
<Modal <Modal v-model="recordModal" width="550px" :footer-hide="true" :closable="false">
v-model="recordModal"
width="550px"
:footer-hide="true"
:closable="false"
>
<div> <div>
<h2 style="text-align: center;color:black">操作记录</h2> <h2 style="text-align: center;color:black">操作记录</h2>
<h2 style="text-align: center;color:#999999;margin-top:10px"> <h2 style="text-align: center;color:#999999;margin-top:10px">候选人:{{ toseename }}</h2>
候选人:{{ toseename }}
</h2>
<div v-for="(item, index) in recordList" :key="index"> <div v-for="(item, index) in recordList" :key="index">
<p style="margin-top:30px;" class="Recode"> <p style="margin-top:30px;" class="Recode">
<span style="display:inline-block;width:70px;margin-left:15px;">{{ <span style="display:inline-block;width:70px;margin-left:15px;">{{ item.approveUserName }}</span>
item.approveUserName <span style="display:inline-block;width:140px">{{ item.dateTime }}</span>
}}</span> <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'INTERVIEW_OK'">面试合适</span>
<span style="display:inline-block;width:140px">{{ <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'INTERVIEW_FAIL'">面试淘汰</span>
item.dateTime <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'END'">终止面试</span>
}}</span> <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'SEE_FAIL'">约面失败</span>
<span <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'NO_ENTRY'">未入职</span>
style="color:#0092FF;display:inline-block;width:70px;" <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'TO_SEE'">准备约面</span>
v-if="item.previousState == 'INTERVIEW_OK'" <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'HAS_SEE'">已邀约</span>
>面试合适</span <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'OPTION'">备选</span>
> <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'TO_SENT_OFFER'">待Offer</span>
<span <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'HAS_SENT_OFFER'">已发offer</span>
style="color:#0092FF;display:inline-block;width:70px;" <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'TO_ENTRY'">待入职</span>
v-if="item.previousState == 'INTERVIEW_FAIL'" <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'HAS_ENTRY'">已入职</span>
>面试淘汰</span <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'PASS'">PASS</span>
> <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'TO_DO'">待处理</span>
<span <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'RESET'">重启面试</span>
style="color:#0092FF;display:inline-block;width:70px;" <span style="color:#0092FF;display:inline-block;width:70px;" v-if="item.previousState == 'ARRIVED'">已到达</span>
v-if="item.previousState == 'END'"
>终止面试</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'SEE_FAIL'"
>约面失败</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'NO_ENTRY'"
>未入职</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'TO_SEE'"
>准备约面</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'HAS_SEE'"
>已邀约</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'OPTION'"
>备选</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'TO_SENT_OFFER'"
>待Offer</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'HAS_SENT_OFFER'"
>已发offer</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'TO_ENTRY'"
>待入职</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'HAS_ENTRY'"
>已入职</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'PASS'"
>PASS</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'TO_DO'"
>待处理</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'RESET'"
>重启面试</span
>
<span
style="color:#0092FF;display:inline-block;width:70px;"
v-if="item.previousState == 'ARRIVED'"
>已到达</span
>
<span style="display:inline-block;width:50px;">变更为</span> <span style="display:inline-block;width:50px;">变更为</span>
<span style="color:#0092FF" v-if="item.afterState == 'INTERVIEW_OK'" <span style="color:#0092FF" v-if="item.afterState == 'INTERVIEW_OK'">面试合适</span>
>面试合适</span <span style="color:#0092FF" v-if="item.afterState == 'INTERVIEW_FAIL'">面试淘汰</span>
> <span style="color:#0092FF" v-if="item.afterState == 'END'">终止面试</span>
<span <span style="color:#0092FF" v-if="item.afterState == 'SEE_FAIL'">约面失败</span>
style="color:#0092FF" <span style="color:#0092FF" v-if="item.afterState == 'NO_ENTRY'">未入职</span>
v-if="item.afterState == 'INTERVIEW_FAIL'" <span style="color:#0092FF" v-if="item.afterState == 'TO_SEE'">准备约面</span>
>面试淘汰</span <span style="color:#0092FF" v-if="item.afterState == 'HAS_SEE'">已邀约</span>
> <span style="color:#0092FF" v-if="item.afterState == 'OPTION'">备选</span>
<span style="color:#0092FF" v-if="item.afterState == 'END'" <span style="color:#0092FF" v-if="item.afterState == 'TO_SENT_OFFER'">待Offer</span>
>终止面试</span <span style="color:#0092FF" v-if="item.afterState == 'HAS_SENT_OFFER'">已发offer</span>
> <span style="color:#0092FF" v-if="item.afterState == 'TO_ENTRY'">待入职</span>
<span style="color:#0092FF" v-if="item.afterState == 'SEE_FAIL'" <span style="color:#0092FF" v-if="item.afterState == 'HAS_ENTRY'">已入职</span>
>约面失败</span <span style="color:#0092FF" v-if="item.afterState == 'PASS'">PASS</span>
> <span style="color:#0092FF" v-if="item.afterState == 'TO_DO'">待处理</span>
<span style="color:#0092FF" v-if="item.afterState == 'NO_ENTRY'" <span style="color:#0092FF" v-if="item.afterState == 'RESET'">重启面试</span>
>未入职</span <span style="color:#0092FF" v-if="item.afterState == 'ARRIVED'">已到达</span>
>
<span style="color:#0092FF" v-if="item.afterState == 'TO_SEE'"
>准备约面</span
>
<span style="color:#0092FF" v-if="item.afterState == 'HAS_SEE'"
>已邀约</span
>
<span style="color:#0092FF" v-if="item.afterState == 'OPTION'"
>备选</span
>
<span
style="color:#0092FF"
v-if="item.afterState == 'TO_SENT_OFFER'"
>待Offer</span
>
<span
style="color:#0092FF"
v-if="item.afterState == 'HAS_SENT_OFFER'"
>已发offer</span
>
<span style="color:#0092FF" v-if="item.afterState == 'TO_ENTRY'"
>待入职</span
>
<span style="color:#0092FF" v-if="item.afterState == 'HAS_ENTRY'"
>已入职</span
>
<span style="color:#0092FF" v-if="item.afterState == 'PASS'"
>PASS</span
>
<span style="color:#0092FF" v-if="item.afterState == 'TO_DO'"
>待处理</span
>
<span style="color:#0092FF" v-if="item.afterState == 'RESET'"
>重启面试</span
>
<span style="color:#0092FF" v-if="item.afterState == 'ARRIVED'"
>已到达</span
>
</p> </p>
</div> </div>
</div> </div>
<div style="height:30px;width:100%;text-align:center;margin-top:30px"> <div style="height:30px;width:100%;text-align:center;margin-top:30px">
<Button type="primary" size="small" @click="recordModal = false" <Button type="primary" size="small" @click="recordModal = false">关闭</Button>
>关闭</Button
>
</div> </div>
</Modal> </Modal>
<!-- 更改面试信息弹出框 --> <!-- 更改面试信息弹出框 -->
<Modal v-model="modal2" :closable="false" width="400px"> <Modal v-model="modal2" :closable="false" width="400px">
<h3 style="text-align:center">更改约面信息</h3> <h3 style="text-align:center">更改约面信息</h3>
<Form <Form :label-width="80" ref="formInline" :rules="ruleInline" :model="formInline">
:label-width="80"
ref="formInline"
:rules="ruleInline"
:model="formInline"
>
<FormItem label="邀约人" style="margin-top:20px" prop="UpdateOWER"> <FormItem label="邀约人" style="margin-top:20px" prop="UpdateOWER">
<Input v-model="formInline.UpdateOWER" :maxlength="5" /> <Input v-model="formInline.UpdateOWER" :maxlength="5" />
</FormItem> </FormItem>
...@@ -544,22 +218,8 @@ ...@@ -544,22 +218,8 @@
></DatePicker> ></DatePicker>
</FormItem> </FormItem>
<FormItem label="面试官" style="margin-top:20px" prop="UpdateVIEW"> <FormItem label="面试官" style="margin-top:20px" prop="UpdateVIEW">
<Select <Select v-model="formInline.UpdateVIEW" filterable style="width:100%;" remote :remote-method="remoteMethod" :loading="loading1" placeholder="请输入面试官全名" clearable>
v-model="formInline.UpdateVIEW" <Option v-for="(item, index) in options" :key="index" :value="item.name">{{ item.name }}({{ item.email }})</Option>
filterable
style="width:100%;"
remote
:remote-method="remoteMethod"
:loading="loading1"
placeholder="请输入面试官全名"
clearable
>
<Option
v-for="(item, index) in options"
:key="index"
:value="item.name"
>{{ item.name }}({{ item.email }})</Option
>
</Select> </Select>
</FormItem> </FormItem>
</Form> </Form>
...@@ -580,17 +240,9 @@ ...@@ -580,17 +240,9 @@
<!-- 重启面试弹出框 --> <!-- 重启面试弹出框 -->
<Modal v-model="modal4" :closable="false" width="240px"> <Modal v-model="modal4" :closable="false" width="240px">
<h3 style="text-align:center">提示</h3> <h3 style="text-align:center">提示</h3>
<p style="text-align:center"> <p style="text-align:center">终止面试时的简历状态为: {{ OPPeninterviewSTA }}<br />请选择重启后的状态</p>
终止面试时的简历状态为: {{ OPPeninterviewSTA }}
<br />请选择重启后的状态
</p>
<div style="text-align:center;margin-top:15px;"> <div style="text-align:center;margin-top:15px;">
<select <select name="a" id="333333" @change="selectFnelement($event)" style="text-align:center;margin-top:15px;display:inline-block">
name="a"
id="333333"
@change="selectFnelement($event)"
style="text-align:center;margin-top:15px;display:inline-block"
>
<option value="1">待处理 ∨</option> <option value="1">待处理 ∨</option>
<option value="2">Pass</option> <option value="2">Pass</option>
<option value="3">备选</option> <option value="3">备选</option>
...@@ -610,7 +262,7 @@ ...@@ -610,7 +262,7 @@
</div> </div>
</template> </template>
<script> <script>
import moment from "moment"; import moment from 'moment';
import { import {
changeinterviewMassage, changeinterviewMassage,
SerchList, SerchList,
...@@ -622,117 +274,111 @@ import { ...@@ -622,117 +274,111 @@ import {
recodeLIST, recodeLIST,
changestatus, changestatus,
seedetail, seedetail,
formstatus formstatus,
} from "../../api/interview.server.js"; } from '../../api/interview.server.js';
import { findCompanyEmailByKey } from "../../api/resume.server.js"; import { findCompanyEmailByKey } from '../../api/resume.server.js';
export default { export default {
data() { data() {
return { return {
pageT: "", pageT: '',
statusValue: "0", statusValue: '0',
ruleInline: { ruleInline: {
UpdateOWER: [ UpdateOWER: [{ required: true, message: '邀约人不能为空', trigger: 'blur' }],
{ required: true, message: "邀约人不能为空", trigger: "blur" } UpdateTIME: [{ required: true, message: '面试时间不能为空', trigger: 'date' }],
], UpdateVIEW: [{ required: true, message: '面试官不能为空', trigger: 'blur' }],
UpdateTIME: [
{ required: true, message: "面试时间不能为空", trigger: "date" }
],
UpdateVIEW: [
{ required: true, message: "面试官不能为空", trigger: "blur" }
]
}, },
formInline: { formInline: {
UpdateOWER: "", UpdateOWER: '',
UpdateTIME: "", UpdateTIME: '',
UpdateVIEW: "" UpdateVIEW: '',
}, },
recordModal: false, recordModal: false,
modal2: false, modal2: false,
modal3: false, modal3: false,
modal4: false, modal4: false,
modal5: false, modal5: false,
interdeTailSta: "", interdeTailSta: '',
changestatuss: "", changestatuss: '',
spinShow: true, spinShow: true,
Ishow: [], Ishow: [],
aaaaa: "", aaaaa: '',
detailID: "", detailID: '',
nowstate: [ nowstate: [
{ value: "已邀约", label: "已邀约" }, { value: '已邀约', label: '已邀约' },
{ value: "邀约失败", label: "邀约失败" }, { value: '邀约失败', label: '邀约失败' },
{ value: "面试淘汰", label: "面试淘汰" }, { value: '面试淘汰', label: '面试淘汰' },
{ value: "待offer", label: "待offer" }, { value: '待offer', label: '待offer' },
{ value: "已发offer", label: "已发offer" }, { value: '已发offer', label: '已发offer' },
{ value: "待入职", label: "待入职" }, { value: '待入职', label: '待入职' },
{ value: "未入职", label: "未入职" }, { value: '未入职', label: '未入职' },
{ value: "已入职", label: "已入职" } { value: '已入职', label: '已入职' },
], ],
keywords: "", keywords: '',
recordList: [], recordList: [],
oppenInterviewStatus: "TO_DO", oppenInterviewStatus: 'TO_DO',
oppenInterviewID: "", oppenInterviewID: '',
OPPeninterviewSTA: "", OPPeninterviewSTA: '',
toseename: "", toseename: '',
clickIndex1: 0, clickIndex1: 0,
clickIndex2: 0, clickIndex2: 0,
clickIndex3: 0, clickIndex3: 0,
// UpdateOWER:'', // UpdateOWER:'',
// UpdateTIME:'', // UpdateTIME:'',
// UpdateVIEW:'', // UpdateVIEW:'',
UpdateID: "", UpdateID: '',
options3: { options3: {
disabledDate(date) { disabledDate(date) {
return date && date.valueOf() < Date.now() - 3600 * 24 * 1000; return date && date.valueOf() < Date.now() - 3600 * 24 * 1000;
} },
}, },
Interviewer: [], Interviewer: [],
Inviter: [], Inviter: [],
stopinterviewID: "", stopinterviewID: '',
Interviewoperation: 0, Interviewoperation: 0,
UpdateOWERNEW: "", UpdateOWERNEW: '',
UpdateTIMENEW: "", UpdateTIMENEW: '',
UpdateVIEWNEW: "", UpdateVIEWNEW: '',
highestDegreeNum: "", highestDegreeNum: '',
emailName: "", emailName: '',
flowStatusList: [], flowStatusList: [],
inviterName: "", // 邀约人 inviterName: '', // 邀约人
interviewerName: "", // 面试官 interviewerName: '', // 面试官
changestatusSTATUS: "", changestatusSTATUS: '',
pageIndex: 1, pageIndex: 1,
pageSize: 30, pageSize: 30,
totalSize: null, totalSize: null,
searchInfo: { searchInfo: {
pageSize: 30, pageSize: 30,
pageIndex: 1, pageIndex: 1,
STA: [] STA: [],
}, },
Education2: [ Education2: [
{ Num2: "", status2: "不限" }, { Num2: '', status2: '不限' },
{ Num2: "0", status2: "专科以下" }, { Num2: '0', status2: '专科以下' },
{ Num2: "1", status2: "专科及以上" }, { Num2: '1', status2: '专科及以上' },
{ Num2: "2", status2: "本科及以上" }, { Num2: '2', status2: '本科及以上' },
{ Num2: "3", status2: "硕士及以上" }, { Num2: '3', status2: '硕士及以上' },
{ Num2: "4", status2: "博士及以上" }, { Num2: '4', status2: '博士及以上' },
{ Num2: "99", status2: "985/211" } { Num2: '99', status2: '985/211' },
], ],
state: [ state: [
{ Num3: [], status3: "不限", sta: true }, { Num3: [], status3: '不限', sta: true },
{ Num3: "HAS_SEE", status3: "已邀约", sta: false }, { Num3: 'HAS_SEE', status3: '已邀约', sta: false },
{ Num3: "SEE_FAIL", status3: "邀约失败", sta: false }, { Num3: 'SEE_FAIL', status3: '邀约失败', sta: false },
{ Num3: "INTERVIEW_FAIL", status3: "面试淘汰", sta: false }, { Num3: 'INTERVIEW_FAIL', status3: '面试淘汰', sta: false },
{ Num3: "TO_SENT_OFFER", status3: "待Offer", sta: false }, { Num3: 'TO_SENT_OFFER', status3: '待Offer', sta: false },
{ Num3: "HAS_SENT_OFFER", status3: "已发offer", sta: false }, { Num3: 'HAS_SENT_OFFER', status3: '已发offer', sta: false },
{ Num3: "HAS_ENTRY", status3: "已入职", sta: false }, { Num3: 'HAS_ENTRY', status3: '已入职', sta: false },
{ Num3: "NO_ENTRY", status3: "未入职", sta: false }, { Num3: 'NO_ENTRY', status3: '未入职', sta: false },
{ Num3: "END", status3: "终止面试", sta: false } { Num3: 'END', status3: '终止面试', sta: false },
], ],
OPtionData: [{ value: "0", label: "面试淘汰" }], OPtionData: [{ value: '0', label: '面试淘汰' }],
activeName: "", activeName: '',
Essentialinformation: [], Essentialinformation: [],
serchData: [], serchData: [],
serchData2: [], serchData2: [],
options: [], options: [],
loading1: false loading1: false,
}; };
}, },
methods: { methods: {
...@@ -747,7 +393,7 @@ export default { ...@@ -747,7 +393,7 @@ export default {
this.toseename = sname; this.toseename = sname;
this.recordModal = true; this.recordModal = true;
const parmars = { const parmars = {
resumeId: RID resumeId: RID,
}; };
recodeLIST(parmars).then(res => { recodeLIST(parmars).then(res => {
this.ownerName = res.data.body.ownerName; this.ownerName = res.data.body.ownerName;
...@@ -763,10 +409,7 @@ export default { ...@@ -763,10 +409,7 @@ export default {
}, },
// 更改面试信息弹出框 // 更改面试信息弹出框
updateInterview(InterID, InterOWOR, InterTime, InterVIEW) { updateInterview(InterID, InterOWOR, InterTime, InterVIEW) {
(this.formInline.UpdateOWER = InterVIEW), (this.formInline.UpdateOWER = InterVIEW), (this.formInline.UpdateVIEW = InterOWOR), (this.formInline.UpdateTIME = InterTime), (this.UpdateID = InterID);
(this.formInline.UpdateVIEW = InterOWOR),
(this.formInline.UpdateTIME = InterTime),
(this.UpdateID = InterID);
this.modal2 = true; this.modal2 = true;
}, },
selectTime(b) { selectTime(b) {
...@@ -786,7 +429,7 @@ export default { ...@@ -786,7 +429,7 @@ export default {
OPPeninterview(tid, sta4) { OPPeninterview(tid, sta4) {
this.oppenInterviewID = tid; this.oppenInterviewID = tid;
const parmars = { const parmars = {
resumeId: tid resumeId: tid,
}; };
formstatus(parmars).then(res => { formstatus(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -799,10 +442,10 @@ export default { ...@@ -799,10 +442,10 @@ export default {
UpdateStatus(LLL) { UpdateStatus(LLL) {
const STATUS = LLL; const STATUS = LLL;
if (this.STATUS == "终止面试") { if (this.STATUS == '终止面试') {
this.modal3 = true; this.modal3 = true;
} }
if (this.STATUS == "重启面试") { if (this.STATUS == '重启面试') {
this.modal4 = true; this.modal4 = true;
} }
}, },
...@@ -811,26 +454,22 @@ export default { ...@@ -811,26 +454,22 @@ export default {
const parmars = { const parmars = {
resumeId: this.UpdateID, resumeId: this.UpdateID,
inviterName: this.formInline.UpdateOWER, inviterName: this.formInline.UpdateOWER,
seeTime: moment(this.formInline.UpdateTIME).format("YYYY-MM-DD HH:mm"), seeTime: moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'),
interviewerName: this.formInline.UpdateVIEW, interviewerName: this.formInline.UpdateVIEW,
email: this.emailName email: this.emailName,
}; };
if ( if (this.formInline.UpdateOWER == '' || this.formInline.UpdateTIME == '' || this.formInline.UpdateVIEW == '') {
this.formInline.UpdateOWER == "" ||
this.formInline.UpdateTIME == "" ||
this.formInline.UpdateVIEW == ""
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写完整的约面信息" desc: '请您填写完整的约面信息',
}); });
return; return;
} }
changeinterviewMassage(parmars).then(res => { changeinterviewMassage(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.formInline.UpdateTIME == ""; this.formInline.UpdateTIME == '';
this.formInline.UpdateVIEW == ""; this.formInline.UpdateVIEW == '';
this.formInline.UpdateOWER == ""; this.formInline.UpdateOWER == '';
this.modal2 = false; this.modal2 = false;
this.Sousuo(this.pageT); this.Sousuo(this.pageT);
} }
...@@ -838,19 +477,19 @@ export default { ...@@ -838,19 +477,19 @@ export default {
}, },
// 查询面试信息 // 查询面试信息
serchListInterview(page, status) { serchListInterview(page, status) {
page = typeof page === "number" ? page : 1; page = typeof page === 'number' ? page : 1;
this.searchInfo.pageIndex = page; this.searchInfo.pageIndex = page;
this.pageIndex = page; this.pageIndex = page;
const parmars = { const parmars = {
pageSize: this.searchInfo.pageSize, pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex, pageIndex: this.searchInfo.pageIndex,
parameter: { parameter: {
keywordString: "", keywordString: '',
highestDegreeNum: "", highestDegreeNum: '',
flowStatusList: [], flowStatusList: [],
interviewerName: "", interviewerName: '',
inviterName: "" inviterName: '',
} },
}; };
SerchList(parmars, status).then(res => { SerchList(parmars, status).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -862,8 +501,7 @@ export default { ...@@ -862,8 +501,7 @@ export default {
item.interviewerName = item.interviewerName; item.interviewerName = item.interviewerName;
item.inviterName = item.inviterName; item.inviterName = item.inviterName;
item.modifier = item.modifier; item.modifier = item.modifier;
item.c = item.c = item.modifier == '' ? item.modifier : item.modifier.split('_');
item.modifier == "" ? item.modifier : item.modifier.split("_");
item.d = item.c[0]; item.d = item.c[0];
item.modifyTime = item.modifyTime; item.modifyTime = item.modifyTime;
item.ownerExpectTitles = item.ownerExpectTitles; item.ownerExpectTitles = item.ownerExpectTitles;
...@@ -880,7 +518,7 @@ export default { ...@@ -880,7 +518,7 @@ export default {
SerchlistinterviewList() { SerchlistinterviewList() {
Serchinterviewor().then(res => { Serchinterviewor().then(res => {
this.Interviewer = res.data.body; this.Interviewer = res.data.body;
this.Interviewer.unshift("不限"); this.Interviewer.unshift('不限');
}); });
}, },
// 邀约人查询 // 邀约人查询
...@@ -890,7 +528,7 @@ export default { ...@@ -890,7 +528,7 @@ export default {
return; return;
} }
this.Inviter = res.data.body; this.Inviter = res.data.body;
this.Inviter.unshift("不限"); this.Inviter.unshift('不限');
}); });
}, },
// 新增约面信息 // 新增约面信息
...@@ -899,11 +537,11 @@ export default { ...@@ -899,11 +537,11 @@ export default {
resumeId: this.UpdateOWERNEW, resumeId: this.UpdateOWERNEW,
inviterName: this.UpdateTIMENEW, inviterName: this.UpdateTIMENEW,
interviewerName: this.UpdateVIEWNEW, interviewerName: this.UpdateVIEWNEW,
seeTime: this.UpdateTIMENEW seeTime: this.UpdateTIMENEW,
}; };
NewAddInterview(parmars).then(res => { NewAddInterview(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Message.success("新增约面信息成功"); this.$Message.success('新增约面信息成功');
} }
}); });
}, },
...@@ -919,108 +557,106 @@ export default { ...@@ -919,108 +557,106 @@ export default {
// 操作重启时选择的状态 // 操作重启时选择的状态
selectFnelement(e) { selectFnelement(e) {
if (e.target.value == 1) { if (e.target.value == 1) {
this.oppenInterviewStatus = "TO_DO"; this.oppenInterviewStatus = 'TO_DO';
} }
if (e.target.value == 2) { if (e.target.value == 2) {
this.oppenInterviewStatus = "PASS"; this.oppenInterviewStatus = 'PASS';
} }
if (e.target.value == 3) { if (e.target.value == 3) {
this.oppenInterviewStatus = "OPTION"; this.oppenInterviewStatus = 'OPTION';
} }
if (e.target.value == 4) { if (e.target.value == 4) {
this.oppenInterviewStatus = "OPTION"; this.oppenInterviewStatus = 'OPTION';
} }
if (e.target.value == 5) { if (e.target.value == 5) {
this.oppenInterviewStatus = "HAS_SEE"; this.oppenInterviewStatus = 'HAS_SEE';
} }
if (e.target.value == 6) { if (e.target.value == 6) {
this.oppenInterviewStatus = "SEE_FAIL"; this.oppenInterviewStatus = 'SEE_FAIL';
} }
if (e.target.value == 10) { if (e.target.value == 10) {
this.oppenInterviewStatus = "INTERVIEW_FAIL"; this.oppenInterviewStatus = 'INTERVIEW_FAIL';
} }
if (e.target.value == 11) { if (e.target.value == 11) {
this.oppenInterviewStatus = "TO_SENT_OFFER"; this.oppenInterviewStatus = 'TO_SENT_OFFER';
} }
if (e.target.value == 12) { if (e.target.value == 12) {
this.oppenInterviewStatus = "HAS_SENT_OFFER"; this.oppenInterviewStatus = 'HAS_SENT_OFFER';
} }
if (e.target.value == 13) { if (e.target.value == 13) {
this.oppenInterviewStatus = "TO_ENTRY"; this.oppenInterviewStatus = 'TO_ENTRY';
} }
}, },
// 重启面试 // 重启面试
OPPinterview() { OPPinterview() {
oppenInterview(this.oppenInterviewID, this.oppenInterviewStatus).then( oppenInterview(this.oppenInterviewID, this.oppenInterviewStatus).then(res => {
res => { if (res.data.success == true) {
if (res.data.success == true) { this.$Notice.success({
this.$Notice.success({ title: '提示',
title: "提示", desc: '已成功重启流程',
desc: "已成功重启流程" });
}); this.serchListInterview();
this.serchListInterview();
}
} }
); });
this.modal4 = false; this.modal4 = false;
}, },
// 选择变更状态时的元素 // 选择变更状态时的元素
selectchangeElement(e, SID) { selectchangeElement(e, SID) {
if (e.target.value == 1) { if (e.target.value == 1) {
this.changestatusSTATUS = "HAS_SEE"; this.changestatusSTATUS = 'HAS_SEE';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 2) { if (e.target.value == 2) {
this.changestatusSTATUS = "HAS_SEE"; this.changestatusSTATUS = 'HAS_SEE';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 3) { if (e.target.value == 3) {
this.changestatusSTATUS = "SEE_FAIL"; this.changestatusSTATUS = 'SEE_FAIL';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 4) { if (e.target.value == 4) {
this.changestatusSTATUS = "INTERVIEW_FAIL"; this.changestatusSTATUS = 'INTERVIEW_FAIL';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 5) { if (e.target.value == 5) {
this.changestatusSTATUS = "TO_SENT_OFFER"; this.changestatusSTATUS = 'TO_SENT_OFFER';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 6) { if (e.target.value == 6) {
this.changestatusSTATUS = "HAS_SENT_OFFER"; this.changestatusSTATUS = 'HAS_SENT_OFFER';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 7) { if (e.target.value == 7) {
this.changestatusSTATUS = "TO_ENTRY"; this.changestatusSTATUS = 'TO_ENTRY';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 8) { if (e.target.value == 8) {
this.changestatusSTATUS = "NO_ENTRY"; this.changestatusSTATUS = 'NO_ENTRY';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
if (e.target.value == 9) { if (e.target.value == 9) {
this.changestatusSTATUS = "HAS_ENTRY"; this.changestatusSTATUS = 'HAS_ENTRY';
changestatus(SID, this.changestatusSTATUS).then(res => { changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, "init"); this.serchListInterview(this.pageT, 'init');
}); });
} }
this.statusValue = "0"; this.statusValue = '0';
}, },
selectElement3(tItem, Tindex, status3, sta3) { selectElement3(tItem, Tindex, status3, sta3) {
sta3 = !sta3; sta3 = !sta3;
...@@ -1065,20 +701,20 @@ export default { ...@@ -1065,20 +701,20 @@ export default {
this.detailID = Tid; this.detailID = Tid;
this.interdeTailSta = sta; this.interdeTailSta = sta;
const newpage = this.$router.resolve({ const newpage = this.$router.resolve({
name: "resumeDetail", name: 'resumeDetail',
params: {}, params: {},
query: { query: {
id: this.DOWNID, id: this.DOWNID,
noShowBtn: "", noShowBtn: '',
ID: this.detailID, ID: this.detailID,
status: this.interdeTailSta status: this.interdeTailSta,
} },
}); });
window.open(newpage.href, "_blank"); window.open(newpage.href, '_blank');
}, },
// 搜索 // 搜索
Sousuo(page) { Sousuo(page) {
page = typeof page === "number" ? page : 1; page = typeof page === 'number' ? page : 1;
this.searchInfo.pageIndex = page; this.searchInfo.pageIndex = page;
this.pageIndex = page; this.pageIndex = page;
const parmars = { const parmars = {
...@@ -1090,8 +726,8 @@ export default { ...@@ -1090,8 +726,8 @@ export default {
flowStatusList: this.searchInfo.STA, flowStatusList: this.searchInfo.STA,
interviewerName: this.interviewerName, interviewerName: this.interviewerName,
inviterName: this.inviterName, inviterName: this.inviterName,
handUpload: "" handUpload: '',
} },
}; };
SerchList(parmars).then(res => { SerchList(parmars).then(res => {
const Ishow = res.data.items; const Ishow = res.data.items;
...@@ -1104,8 +740,7 @@ export default { ...@@ -1104,8 +740,7 @@ export default {
item.interviewerName = item.interviewerName; item.interviewerName = item.interviewerName;
item.inviterName = item.inviterName; item.inviterName = item.inviterName;
item.modifier = item.modifier; item.modifier = item.modifier;
item.c = item.c = item.modifier == '' ? item.modifier : item.modifier.split('_');
item.modifier == "" ? item.modifier : item.modifier.split("_");
item.d = item.c[0]; item.d = item.c[0];
item.modifyTime = item.modifyTime; item.modifyTime = item.modifyTime;
item.ownerExpectTitles = item.ownerExpectTitles; item.ownerExpectTitles = item.ownerExpectTitles;
...@@ -1124,15 +759,15 @@ export default { ...@@ -1124,15 +759,15 @@ export default {
this.clickIndex1 = Tindex; this.clickIndex1 = Tindex;
}, },
selectinterviewElement(e) { selectinterviewElement(e) {
if (e.value == "不限") { if (e.value == '不限') {
this.interviewerName = ""; this.interviewerName = '';
} else { } else {
this.interviewerName = e.value; this.interviewerName = e.value;
} }
}, },
selectinterviewElement2(e) { selectinterviewElement2(e) {
if (e.label == "不限") { if (e.label == '不限') {
this.inviterName = ""; this.inviterName = '';
} else { } else {
this.inviterName = e.label; this.inviterName = e.label;
} }
...@@ -1148,12 +783,12 @@ export default { ...@@ -1148,12 +783,12 @@ export default {
this.Sousuo(); this.Sousuo();
}, },
remoteMethod: function(query) { remoteMethod: function(query) {
if (query !== "") { if (query !== '') {
this.loading1 = true; this.loading1 = true;
setTimeout(() => { setTimeout(() => {
this.loading1 = false; this.loading1 = false;
let list = []; let list = [];
query = query.split("(")[0]; query = query.split('(')[0];
findCompanyEmailByKey(query).then(res => { findCompanyEmailByKey(query).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
list = res; list = res;
...@@ -1170,14 +805,14 @@ export default { ...@@ -1170,14 +805,14 @@ export default {
} else { } else {
this.options = []; this.options = [];
} }
} },
}, },
mounted() { mounted() {
this.serchListInterview(null, "init"); this.serchListInterview(null, 'init');
// this.Serchlistinterview() // this.Serchlistinterview()
this.SerchInvitation(); this.SerchInvitation();
this.SerchlistinterviewList(); this.SerchlistinterviewList();
} },
}; };
</script> </script>
<style> <style>
......
...@@ -12,44 +12,20 @@ ...@@ -12,44 +12,20 @@
<h3>登录</h3> <h3>登录</h3>
</div> </div>
<div class="login_content"> <div class="login_content">
<Form <Form ref="formInline" :model="formInline" :rules="ruleInline" style="height:161px">
ref="formInline"
:model="formInline"
:rules="ruleInline"
style="height:161px"
>
<FormItem prop="user" style="height:60px"> <FormItem prop="user" style="height:60px">
<Input <Input type="text" v-model="formInline.user" placeholder="请输入企业邮箱账号" class="wordStyle" size="large">
type="text"
v-model="formInline.user"
placeholder="请输入企业邮箱账号"
class="wordStyle"
size="large"
>
<Icon type="ios-person-outline" slot="prepend"></Icon> <Icon type="ios-person-outline" slot="prepend"></Icon>
</Input> </Input>
</FormItem> </FormItem>
<FormItem prop="password"> <FormItem prop="password">
<Input <Input type="password" v-model="formInline.password" placeholder="请输入密码" class="wordStyle" @keyup.enter.native="login" size="large">
type="password"
v-model="formInline.password"
placeholder="请输入密码"
class="wordStyle"
@keyup.enter.native="login"
size="large"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon> <Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input> </Input>
<span <span style="color:red;margin-top;5px" v-show="noteconTime == true">{{ notecontent }}</span>
style="color:red;margin-top;5px"
v-show="noteconTime == true"
>{{ notecontent }}</span
>
</FormItem> </FormItem>
</Form> </Form>
<Button type="primary" class="loginBtu" @click.prevent="login" <Button type="primary" class="loginBtu" @click.prevent="login">登录</Button>
>登录</Button
>
</div> </div>
<div class="copy"> <div class="copy">
...@@ -61,66 +37,66 @@ ...@@ -61,66 +37,66 @@
</div> </div>
</template> </template>
<script> <script>
import { login } from "../../api/login.server.js"; import { login } from '../../api/login.server.js';
import localstorage from "../../service/localstorage.service.js"; import localstorage from '../../service/localstorage.service.js';
export default { export default {
data() { data() {
return { return {
channelarr: [], channelarr: [],
notecontent: "", notecontent: '',
noteconTime: false, noteconTime: false,
ISIDMIN: "", ISIDMIN: '',
formInline: { formInline: {
user: "", user: '',
password: "" password: '',
}, },
ruleInline: { ruleInline: {
user: [ user: [
{ {
required: true, required: true,
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
message: "请输入正确的邮箱账号", message: '请输入正确的邮箱账号',
trigger: "blur" trigger: 'blur',
} },
], ],
password: [ password: [
{ required: true, message: "请输入正确的密码", trigger: "blur" } { required: true, message: '请输入正确的密码', trigger: 'blur' },
// { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' } // { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' }
] ],
} },
}; };
}, },
methods: { methods: {
handleSubmit(name) { handleSubmit(name) {
this.$refs[name].validate(valid => { this.$refs[name].validate(valid => {
if (valid) { if (valid) {
this.$Message.success("Success!"); this.$Message.success('Success!');
} else { } else {
this.$Message.error("Fail!"); this.$Message.error('Fail!');
} }
}); });
}, },
login() { login() {
const params = { const params = {
userCode: this.formInline.user, userCode: this.formInline.user,
password: this.formInline.password password: this.formInline.password,
}; };
if (this.formInline.user == "" || this.formInline.password == "") { if (this.formInline.user == '' || this.formInline.password == '') {
return; return;
} }
login(params).then(res => { login(params).then(res => {
if (res.data.body.code == "100") { if (res.data.body.code == '100') {
this.$router.push({ this.$router.push({
name: "update", name: 'update',
params: { userCode: this.formInline.user } params: { userCode: this.formInline.user },
}); });
return; return;
} }
if (res.data.success == true) { if (res.data.success == true) {
this.ISIDMIN = res.data.body; this.ISIDMIN = res.data.body;
localstorage.set("token", res.data.body.token); localstorage.set('token', res.data.body.token);
this.$router.push({ name: "allResume" }); this.$router.push({ name: 'allResume' });
localstorage.set("isADMIN", JSON.stringify(this.ISIDMIN)); localstorage.set('isADMIN', JSON.stringify(this.ISIDMIN));
return; return;
} }
if (res.data.success == false) { if (res.data.success == false) {
...@@ -131,8 +107,8 @@ export default { ...@@ -131,8 +107,8 @@ export default {
}, 3000); }, 3000);
} }
}); });
} },
} },
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -14,44 +14,19 @@ ...@@ -14,44 +14,19 @@
<div class="updatePsd_content"> <div class="updatePsd_content">
<Form ref="formInline" :model="formInline" class="formcontent"> <Form ref="formInline" :model="formInline" class="formcontent">
<FormItem class="formitemcontent"> <FormItem class="formitemcontent">
<Input <Input type="password" v-model="formInline.password" placeholder="Password" class="wordStyle2" @on-change="verification" size="large">
type="password"
v-model="formInline.password"
placeholder="Password"
class="wordStyle2"
@on-change="verification"
size="large"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon> <Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input> </Input>
<span style="color:Grey;margin-left:30px" v-show="fistcontent" <span style="color:Grey;margin-left:30px" v-show="fistcontent">4-20位且不得与默认密码相同</span>
>4-20位且不得与默认密码相同</span
>
</FormItem> </FormItem>
<FormItem style="margin-top:-20px" class="formitemcontent"> <FormItem style="margin-top:-20px" class="formitemcontent">
<Input <Input type="password" v-model="formInline.passwordTwo" placeholder="Password" class="wordStyle2" @keyup.enter.native="loginT" size="large">
type="password"
v-model="formInline.passwordTwo"
placeholder="Password"
class="wordStyle2"
@keyup.enter.native="loginT"
size="large"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon> <Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input> </Input>
<span <span style="color:Grey;margin-left:30px;color:red" v-show="twocontent">{{ twocontentmessage }}</span>
style="color:Grey;margin-left:30px;color:red"
v-show="twocontent"
>{{ twocontentmessage }}</span
>
</FormItem> </FormItem>
</Form> </Form>
<Button <Button type="primary" style="height:40px;width:100%;border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255);font-size:18px;margin-top:10px" @click="loginT">登录</Button>
type="primary"
style="height:40px;width:100%;border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255);font-size:18px;margin-top:10px"
@click="loginT"
>登录</Button
>
</div> </div>
<div class="copy"> <div class="copy">
<p>量化派为你提供全程服务</p> <p>量化派为你提供全程服务</p>
...@@ -62,29 +37,29 @@ ...@@ -62,29 +37,29 @@
</div> </div>
</template> </template>
<script> <script>
import { updatePsd } from "../../api/login.server.js"; import { updatePsd } from '../../api/login.server.js';
export default { export default {
data() { data() {
return { return {
formInline: { formInline: {
passwordTwo: "", passwordTwo: '',
password: "" password: '',
}, },
fistcontent: true, fistcontent: true,
twocontent: false, twocontent: false,
twocontentmessage: "", twocontentmessage: '',
channelarr: [], channelarr: [],
Massage: "", Massage: '',
ISIDMIN: "" ISIDMIN: '',
}; };
}, },
methods: { methods: {
handleSubmit(name) { handleSubmit(name) {
this.$refs[name].validate(valid => { this.$refs[name].validate(valid => {
if (valid) { if (valid) {
this.$Message.success("Success!"); this.$Message.success('Success!');
} else { } else {
this.$Message.error("Fail!"); this.$Message.error('Fail!');
} }
}); });
}, },
...@@ -92,21 +67,18 @@ export default { ...@@ -92,21 +67,18 @@ export default {
const params = { const params = {
userCode: this.$route.params.userCode, userCode: this.$route.params.userCode,
password: this.formInline.password, password: this.formInline.password,
confirmPassWord: this.formInline.passwordTwo confirmPassWord: this.formInline.passwordTwo,
}; };
if (this.formInline.passwordTwo !== this.formInline.password) { if (this.formInline.passwordTwo !== this.formInline.password) {
this.twocontentmessage = "输入密码不一致,请重新输入"; this.twocontentmessage = '输入密码不一致,请重新输入';
this.twocontent = true; this.twocontent = true;
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
return; return;
} }
if ( if (this.formInline.passwordTwo.length < 4 || this.formInline.password.length < 4) {
this.formInline.passwordTwo.length < 4 || this.twocontentmessage = '请输入4-20位密码';
this.formInline.password.length < 4
) {
this.twocontentmessage = "请输入4-20位密码";
this.twocontent = true; this.twocontent = true;
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
...@@ -114,28 +86,28 @@ export default { ...@@ -114,28 +86,28 @@ export default {
return; return;
} }
if (this.formInline.password.length > 20) { if (this.formInline.password.length > 20) {
this.twocontentmessage = "请输入4-20位密码"; this.twocontentmessage = '请输入4-20位密码';
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
return; return;
} }
if (this.formInline.password.length < 4) { if (this.formInline.password.length < 4) {
this.twocontentmessage = "请输入4-20位密码"; this.twocontentmessage = '请输入4-20位密码';
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
return; return;
} }
if (this.formInline.password.length == 0) { if (this.formInline.password.length == 0) {
this.twocontentmessage = "密码不能为空"; this.twocontentmessage = '密码不能为空';
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
return; return;
} }
if (this.formInline.passwordTwo.length == 0) { if (this.formInline.passwordTwo.length == 0) {
this.twocontentmessage = "请输入相同的确认密码"; this.twocontentmessage = '请输入相同的确认密码';
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
...@@ -144,9 +116,9 @@ export default { ...@@ -144,9 +116,9 @@ export default {
updatePsd(params).then(res => { updatePsd(params).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.ISIDMIN = res.data.body; this.ISIDMIN = res.data.body;
localStorage.setItem("isADMIN", JSON.stringify(this.ISIDMIN)); localStorage.setItem('isADMIN', JSON.stringify(this.ISIDMIN));
localStorage.setItem("token", res.data.body.token); localStorage.setItem('token', res.data.body.token);
this.$router.replace({ name: "allResume" }); this.$router.replace({ name: 'allResume' });
} }
if (res.data.success == false) { if (res.data.success == false) {
this.Massage = res.data.body.message; this.Massage = res.data.body.message;
...@@ -160,7 +132,7 @@ export default { ...@@ -160,7 +132,7 @@ export default {
}, },
verification() { verification() {
if (this.formInline.password == 123456) { if (this.formInline.password == 123456) {
this.twocontentmessage = "输入密码与初始密码相同,请重新输入"; this.twocontentmessage = '输入密码与初始密码相同,请重新输入';
setTimeout(() => { setTimeout(() => {
this.twocontent = false; this.twocontent = false;
}, 3000); }, 3000);
...@@ -168,7 +140,7 @@ export default { ...@@ -168,7 +140,7 @@ export default {
if (this.formInline.password.length == 0) { if (this.formInline.password.length == 0) {
this.fistcontent = true; this.fistcontent = true;
} }
if (this.formInline.password == "") { if (this.formInline.password == '') {
this.fistcontent = true; this.fistcontent = true;
} }
if (this.formInline.password.length < 4) { if (this.formInline.password.length < 4) {
...@@ -180,8 +152,8 @@ export default { ...@@ -180,8 +152,8 @@ export default {
if (this.formInline.password.length > 20) { if (this.formInline.password.length > 20) {
this.fistcontent = true; this.fistcontent = true;
} }
} },
} },
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -3,94 +3,52 @@ ...@@ -3,94 +3,52 @@
<div class="personalInformation" v-show="JSON.stringify(resume) !== '{}'"> <div class="personalInformation" v-show="JSON.stringify(resume) !== '{}'">
<p class="detailTitel"> <p class="detailTitel">
<span> <span>
<img <img src="http://xyqbui.lkbang.net/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px" />
src="http://xyqbui.lkbang.net/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/>
</span> </span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">基本信息</span>
>基本信息</span
>
</p> </p>
<div class="massageTitle"> <div class="massageTitle">
<p> <p>
<span class="bassMassage" <span class="bassMassage">姓名:{{ resume && resume.ownerName }}</span>
>姓名:{{ resume && resume.ownerName }}</span <span class="bassMassageRight">年龄:{{ resume && resume.ownerAge }}</span>
>
<span class="bassMassageRight"
>年龄:{{ resume && resume.ownerAge }}</span
>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">联系电话:{{ resume && resume.ownerMobile }}</span>
>联系电话:{{ resume && resume.ownerMobile }}</span <span class="bassMassageRight">职位:{{ resume && resume.ownerExpectTitles }}</span>
>
<span class="bassMassageRight"
>职位:{{ resume && resume.ownerExpectTitles }}</span
>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">电子邮箱:{{ resume && resume.email }}</span>
>电子邮箱:{{ resume && resume.email }}</span <span class="bassMassageRight">学历:{{ resume && resume.ownerHighestDegree }}</span>
>
<span class="bassMassageRight"
>学历:{{ resume && resume.ownerHighestDegree }}</span
>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">所在地:{{ resume && resume.locationCity }}</span>
>所在地:{{ resume && resume.locationCity }}</span <span class="bassMassageRight">经验:{{ resume && resume.workYearsOriginal }}</span>
>
<span class="bassMassageRight"
>经验:{{ resume && resume.workYearsOriginal }}</span
>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">求职状态:{{ resume && resume.statusMessage }}</span>
>求职状态:{{ resume && resume.statusMessage }}</span
>
<span class="bassMassageRight"></span> <span class="bassMassageRight"></span>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">期望行业:{{ resume && resume.industries }}</span>
>期望行业:{{ resume && resume.industries }}</span <span class="bassMassageRight">期望薪资:{{ resume && resume.expectSalary }}</span>
>
<span class="bassMassageRight"
>期望薪资:{{ resume && resume.expectSalary }}</span
>
</p> </p>
<p> <p>
<span class="bassMassage" <span class="bassMassage">期望职位:{{ resume && resume.expectTitles }}</span>
>期望职位:{{ resume && resume.expectTitles }}</span <span class="bassMassageRight">期望地区:{{ resume && resume.city }}</span>
>
<span class="bassMassageRight"
>期望地区:{{ resume && resume.city }}</span
>
</p> </p>
</div> </div>
</div> </div>
<div class="workExperience" v-show="roList.length !== 0"> <div class="workExperience" v-show="roList.length !== 0">
<p class="detailTitel"> <p class="detailTitel">
<span> <span>
<img <img src="http://xyqbui.lkbang.net/image/icon_%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%8E%86_20_18px.png" style="height:16px;width:23px;vertical-align: middle;margin-top:-4px" />
src="http://xyqbui.lkbang.net/image/icon_%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%8E%86_20_18px.png"
style="height:16px;width:23px;vertical-align: middle;margin-top:-4px"
/>
</span> </span>
<span style="margin-left:7px;font-size:16px;color:#0092FF;" <span style="margin-left:7px;font-size:16px;color:#0092FF;">工作经历</span>
>工作经历</span
>
</p> </p>
<div <div class="workExperience-detail" v-for="(item, index) in roList" :key="index">
class="workExperience-detail"
v-for="(item, index) in roList"
:key="index"
>
<div class="workExperience-top"> <div class="workExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startTime }}-{{ item.endTime }}</span>
>{{ item.startTime }}-{{ item.endTime }}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span ><span
>{{ item.company }}<span>({{ item.workTime }})</span></span >{{ item.company }}<span>({{ item.workTime }})</span></span
...@@ -102,9 +60,7 @@ ...@@ -102,9 +60,7 @@
</span> </span>
</p> </p>
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="float:right;margin-right:30px">{{ <span style="float:right;margin-right:30px">{{ item.department }}</span>
item.department
}}</span>
</p> </p>
</div> </div>
<div class="workExperience-bottom">{{ item.desc }}</div> <div class="workExperience-bottom">{{ item.desc }}</div>
...@@ -113,27 +69,15 @@ ...@@ -113,27 +69,15 @@
<div class="projectExperience" v-show="rpList.length !== 0"> <div class="projectExperience" v-show="rpList.length !== 0">
<p class="detailTitel"> <p class="detailTitel">
<span> <span>
<img <img src="http://xyqbui.lkbang.net/image/icon_%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86_20_20px.png" style="height:14px;width:19px; vertical-align: middle;margin-top:-4px;margin-left:2px"
src="http://xyqbui.lkbang.net/image/icon_%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86_20_20px.png"
style="height:14px;width:19px; vertical-align: middle;margin-top:-4px;margin-left:2px"
/></span> /></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">项目经历</span>
>项目经历</span
>
</p> </p>
<div <div class="projectExperience-detail" v-for="(item, index) in rpList" :key="index">
class="projectExperience-detail"
v-for="(item, index) in rpList"
:key="index"
>
<div class="projectExperience-top"> <div class="projectExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{ item.endMonth }}</span>
>{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{
item.endMonth
}}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span>{{ item.name }}<span></span></span ><span>{{ item.name }}<span></span></span
></span> ></span>
...@@ -147,28 +91,14 @@ ...@@ -147,28 +91,14 @@
</div> </div>
<div class="internshipExperience" v-show="riList.length !== 0"> <div class="internshipExperience" v-show="riList.length !== 0">
<p class="detailTitel"> <p class="detailTitel">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E5%AE%9E%E4%B9%A0%E7%BB%8F%E5%8E%86_21_18px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E5%AE%9E%E4%B9%A0%E7%BB%8F%E5%8E%86_21_18px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">实习经历</span>
>实习经历</span
>
</p> </p>
<div <div class="internshipExperience-detail" v-for="(item, index) in riList" :key="index">
class="internshipExperience-detail"
v-for="(item, index) in riList"
:key="index"
>
<div class="internshipExperience-top"> <div class="internshipExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{ item.endMonth }}</span>
>{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{
item.endMonth
}}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span>{{ item.company }}<span></span></span ><span>{{ item.company }}<span></span></span
></span> ></span>
...@@ -186,28 +116,14 @@ ...@@ -186,28 +116,14 @@
</div> </div>
<div class="educationalExperience" v-show="reList.length !== 0"> <div class="educationalExperience" v-show="reList.length !== 0">
<p class="detailTitel"> <p class="detailTitel">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E6%95%99%E8%82%B2%E7%BB%8F%E5%8E%86_26_20px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E6%95%99%E8%82%B2%E7%BB%8F%E5%8E%86_26_20px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">教育经历</span>
>教育经历</span
>
</p> </p>
<div <div class="educationalExperience-detail" v-for="(item, index) in reList" :key="index">
class="educationalExperience-detail"
v-for="(item, index) in reList"
:key="index"
>
<div class="educationalExperience-content"> <div class="educationalExperience-content">
<div class="educationalExperience-left"> <div class="educationalExperience-left">
<p style="line-height:25px;margin-top:20px"> <p style="line-height:25px;margin-top:20px">{{ item.school }}(({{ item.startYear }}.{{ item.startMonth }}-{{ item.endYear }}.{{ item.endMonth }}))</p>
{{ item.school }}(({{ item.startYear }}.{{ item.startMonth }}-{{
item.endYear
}}.{{ item.endMonth }}))
</p>
<p style="margin-top:20px;">专业:{{ item.major }}</p> <p style="margin-top:20px;">专业:{{ item.major }}</p>
</div> </div>
<div class="educationalExperience-right"> <div class="educationalExperience-right">
...@@ -218,15 +134,9 @@ ...@@ -218,15 +134,9 @@
</div> </div>
<div class="Self-evaluation" v-show="JSON.stringify(resume) !== '{}'"> <div class="Self-evaluation" v-show="JSON.stringify(resume) !== '{}'">
<p class="detailTitel"> <p class="detailTitel">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E8%87%AA%E6%88%91%E8%AF%84%E4%BB%B7_18_18px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E8%87%AA%E6%88%91%E8%AF%84%E4%BB%B7_18_18px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">自我评价</span>
>自我评价</span
>
</p> </p>
<div class="evaluation-content"> <div class="evaluation-content">
{{ resume && resume.selfEvaluate }} {{ resume && resume.selfEvaluate }}
...@@ -235,9 +145,9 @@ ...@@ -235,9 +145,9 @@
</div> </div>
</template> </template>
<script> <script>
import { seedetail } from "../../api/resume.server"; import { seedetail } from '../../api/resume.server';
import localStorage from "../../service/localstorage.service.js"; import localStorage from '../../service/localstorage.service.js';
import { sapi } from "../../config"; import { sapi } from '../../config';
export default { export default {
data() { data() {
return { return {
...@@ -246,18 +156,18 @@ export default { ...@@ -246,18 +156,18 @@ export default {
roList: [], roList: [],
rpList: [], rpList: [],
reList: [], reList: [],
downresume: "", downresume: '',
detialID: "", detialID: '',
showBtn: "" showBtn: '',
}; };
}, },
methods: { methods: {
getDETAIL() { getDETAIL() {
this.detialID = this.$route.query.ID; this.detialID = this.$route.query.ID;
this.showBtn = this.$route.query.noShowBtn; this.showBtn = this.$route.query.noShowBtn;
const token = this.$route.query.token || ""; const token = this.$route.query.token || '';
const parmars = { const parmars = {
uid: this.$route.query.id uid: this.$route.query.id,
// uid:"0646215721cc43ccb51ff3e979959e35" // uid:"0646215721cc43ccb51ff3e979959e35"
}; };
seedetail(parmars).then(res => { seedetail(parmars).then(res => {
...@@ -267,11 +177,11 @@ export default { ...@@ -267,11 +177,11 @@ export default {
this.rpList = res.data.body.rpList; this.rpList = res.data.body.rpList;
this.reList = res.data.body.reList; this.reList = res.data.body.reList;
}); });
} },
}, },
mounted() { mounted() {
this.getDETAIL(); this.getDETAIL();
} },
}; };
</script> </script>
<style scoped> <style scoped>
...@@ -279,7 +189,7 @@ export default { ...@@ -279,7 +189,7 @@ export default {
width: 860px; width: 860px;
margin: 30px auto; margin: 30px auto;
color: #000000; color: #000000;
font-family: "\5FAE\8F6F\96C5\9ED1"; font-family: '\5FAE\8F6F\96C5\9ED1';
} }
.personalInformation { .personalInformation {
width: 860px; width: 860px;
......
...@@ -4,49 +4,16 @@ ...@@ -4,49 +4,16 @@
<h3 style="margin-top:5px;font-size:0.35rem">应聘登记表</h3> <h3 style="margin-top:5px;font-size:0.35rem">应聘登记表</h3>
</div> </div>
<div class="sweepcode_content"> <div class="sweepcode_content">
<Form <Form :label-width="120" :model="formInline" :rules="ruleInline" ref="formInline" class="fontsize" label-position="left" style="margin-left:3%">
:label-width="120" <FormItem label="邀约人" prop="Inviter" style="margin-top:10px;font-size:15px">
:model="formInline" <Input placeholder="请输入" style="width:85%;" v-model="formInline.Inviter" size="large" />
:rules="ruleInline"
ref="formInline"
class="fontsize"
label-position="left"
style="margin-left:3%"
>
<FormItem
label="邀约人"
prop="Inviter"
style="margin-top:10px;font-size:15px"
>
<Input
placeholder="请输入"
style="width:85%;"
v-model="formInline.Inviter"
size="large"
/>
</FormItem> </FormItem>
<FormItem label="邀约人手机" style="" class="phone"> <FormItem label="邀约人手机" style="" class="phone">
<Input <Input placeholder="请输入" style="width:85%;" v-model="formInline.InviterPhoneNumber" size="large" @on-blur="jedugePhone" /><br />
placeholder="请输入" <span style="position: absolute;top: 100%;left: 0;line-height: 1;padding-top: 6px;color:#ed4014;display:inline-block;height:30px;" v-show="isV == true">请输入正确的手机号码</span>
style="width:85%;"
v-model="formInline.InviterPhoneNumber"
size="large"
@on-blur="jedugePhone"
/><br />
<span
style="position: absolute;top: 100%;left: 0;line-height: 1;padding-top: 6px;color:#ed4014;display:inline-block;height:30px;"
v-show="isV == true"
>请输入正确的手机号码</span
>
</FormItem> </FormItem>
<FormItem label="面试时间" prop="time" class="dateTime"> <FormItem label="面试时间" prop="time" class="dateTime">
<Input <Input placeholder="请输入" style="width:40%;" v-model="formInline.date" :readonly="true" size="large" />
placeholder="请输入"
style="width:40%;"
v-model="formInline.date"
:readonly="true"
size="large"
/>
<TimePicker <TimePicker
type="time" type="time"
placeholder="请选择时间" placeholder="请选择时间"
...@@ -60,55 +27,28 @@ ...@@ -60,55 +27,28 @@
></TimePicker> ></TimePicker>
</FormItem> </FormItem>
<FormItem label="应聘职位" prop="position" class="position"> <FormItem label="应聘职位" prop="position" class="position">
<Input <Input placeholder="请输入" style="width:85%;" v-model="formInline.position" size="large" />
placeholder="请输入"
style="width:85%;"
v-model="formInline.position"
size="large"
/>
</FormItem> </FormItem>
<FormItem label="应聘来源" prop="model1" class="model1"> <FormItem label="应聘来源" prop="model1" class="model1">
<Select v-model="formInline.model1" style="width:85%;" size="large"> <Select v-model="formInline.model1" style="width:85%;" size="large">
<Option <Option v-for="item in origen" :value="item.value" :key="item.value">{{ item.label }}</Option>
v-for="item in origen"
:value="item.value"
:key="item.value"
>{{ item.label }}</Option
>
</Select> </Select>
</FormItem> </FormItem>
<FormItem label="姓名" prop="name" class="name"> <FormItem label="姓名" prop="name" class="name">
<Input <Input placeholder="请与简历保持一致" style="width:85%;" v-model="formInline.name" size="large" />
placeholder="请与简历保持一致"
style="width:85%;"
v-model="formInline.name"
size="large"
/>
</FormItem> </FormItem>
<FormItem label="手机号码" prop="phoneNUmber" class="phoneNUmber"> <FormItem label="手机号码" prop="phoneNUmber" class="phoneNUmber">
<Input <Input placeholder="请输入" style="width:85%;" v-model="formInline.phoneNUmber" size="large" />
placeholder="请输入"
style="width:85%;"
v-model="formInline.phoneNUmber"
size="large"
/>
</FormItem> </FormItem>
<FormItem label="是否携带简历" prop="model2" class="model2"> <FormItem label="是否携带简历" prop="model2" class="model2">
<Select v-model="formInline.model2" style="width:85%;" size="large"> <Select v-model="formInline.model2" style="width:85%;" size="large">
<Option <Option v-for="item in isGET" :value="item.value" :key="item.value">{{ item.label }}</Option>
v-for="item in isGET"
:value="item.value"
:key="item.value"
>{{ item.label }}</Option
>
</Select> </Select>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
<div class="submission"> <div class="submission">
<Button type="primary" @click="confirmSubmission" :loading="loading" <Button type="primary" @click="confirmSubmission" :loading="loading">提交</Button>
>提交</Button
>
</div> </div>
<Modal v-model="modal3" width="200px" :closable="false"> <Modal v-model="modal3" width="200px" :closable="false">
<div> <div>
...@@ -134,177 +74,147 @@ ...@@ -134,177 +74,147 @@
</div> </div>
</template> </template>
<script> <script>
import moment from "moment"; import moment from 'moment';
import { submitMassage } from "../../api/sweepCode.server.js"; import { submitMassage } from '../../api/sweepCode.server.js';
export default { export default {
data() { data() {
return { return {
docmHeight: "0", docmHeight: '0',
showHeight: "0", showHeight: '0',
loading: false, loading: false,
hidshow: true, hidshow: true,
isResize: false, isResize: false,
modal3: false, modal3: false,
modal4: false, modal4: false,
ruleInline: { ruleInline: {
Inviter: [{ required: true, message: "请输入邀约人", trigger: "blur" }], Inviter: [{ required: true, message: '请输入邀约人', trigger: 'blur' }],
time: [ time: [{ required: true, message: '面试时间不能为空', trigger: 'date' }],
{ required: true, message: "面试时间不能为空", trigger: "date" }
],
// InviterPhoneNumber: [ // InviterPhoneNumber: [
// { required: false, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' } // { required: false, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
// ], // ],
position: [ position: [{ required: true, message: '请输入应聘职位', trigger: 'blur' }],
{ required: true, message: "请输入应聘职位", trigger: "blur" } model1: [{ required: true, message: '请输入应聘来源', trigger: 'blur' }],
], name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
model1: [
{ required: true, message: "请输入应聘来源", trigger: "blur" }
],
name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
phoneNUmber: [ phoneNUmber: [
{ required: true, message: "请输入正确的手机号码", trigger: "blur" }, { required: true, message: '请输入正确的手机号码', trigger: 'blur' },
{ {
required: true, required: true,
pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/,
message: "请输入正确的手机号", message: '请输入正确的手机号',
trigger: "blur" trigger: 'blur',
} },
], ],
model2: [ model2: [{ required: true, message: '请选择是否携带简历', trigger: 'blur' }],
{ required: true, message: "请选择是否携带简历", trigger: "blur" }
]
}, },
saleDate: "", saleDate: '',
isV: false, isV: false,
options3: { options3: {
disabledDate(date) { disabledDate(date) {
return ( return (date && date.valueOf() < Date.now() - 3600 * 24 * 1000) || date.valueOf() > Date.now();
(date && date.valueOf() < Date.now() - 3600 * 24 * 1000) || },
date.valueOf() > Date.now()
);
}
}, },
origen: [ origen: [
{ {
value: "智联招聘", value: '智联招聘',
label: "智联招聘" label: '智联招聘',
}, },
{ {
value: "51Job", value: '51Job',
label: "51Job" label: '51Job',
}, },
{ {
value: "boss直聘", value: 'boss直聘',
label: "boss直聘" label: 'boss直聘',
}, },
{ {
value: "拉勾网", value: '拉勾网',
label: "拉勾网" label: '拉勾网',
}, },
{ {
value: "内部推荐", value: '内部推荐',
label: "内部推荐" label: '内部推荐',
}, },
{ {
value: "猎聘网", value: '猎聘网',
label: "猎聘网" label: '猎聘网',
}, },
{ {
value: "其他", value: '其他',
label: "其他" label: '其他',
} },
], ],
isGET: [ isGET: [
{ {
value: "", value: '',
label: "" label: '',
}, },
{ {
value: "", value: '',
label: "" label: '',
} },
], ],
formInline: { formInline: {
model1: "", model1: '',
model2: "", model2: '',
Inviter: "", Inviter: '',
InviterPhoneNumber: "", InviterPhoneNumber: '',
date: "", date: '',
time: "", time: '',
position: "", position: '',
phoneNUmber: "", phoneNUmber: '',
name: "" name: '',
}, },
isV: false, isV: false,
hh: [ hh: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
"01", mm: ['00', '10', '20', '30', '40', '50', '60'],
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12"
],
mm: ["00", "10", "20", "30", "40", "50", "60"]
}; };
}, },
methods: { methods: {
// 确认提交 // 确认提交
confirmSubmission() { confirmSubmission() {
if ( if (
this.formInline.model1 == "" || this.formInline.model1 == '' ||
this.formInline.model2 == "" || this.formInline.model2 == '' ||
this.formInline.Inviter == "" || this.formInline.Inviter == '' ||
this.formInline.date == "" || this.formInline.date == '' ||
this.formInline.time === "" || this.formInline.time === '' ||
this.formInline.position == "" || this.formInline.position == '' ||
this.formInline.phoneNUmber == "" || this.formInline.phoneNUmber == '' ||
this.formInline.name == "" this.formInline.name == ''
) { ) {
this.$Message.error("请填写完整的信息"); this.$Message.error('请填写完整的信息');
return; return;
} }
if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.phoneNUmber)) { if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.phoneNUmber)) {
this.$Message.error("请输入正确的手机号"); this.$Message.error('请输入正确的手机号');
return; return;
} }
if ( if (this.formInline.InviterPhoneNumber !== '' && !/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)) {
this.formInline.InviterPhoneNumber !== "" && this.$Message.error('请输入正确的手机号');
!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)
) {
this.$Message.error("请输入正确的手机号");
return; return;
} }
const parmars = { const parmars = {
invitePerson: this.formInline.Inviter, invitePerson: this.formInline.Inviter,
inviterMobile: this.formInline.InviterPhoneNumber, inviterMobile: this.formInline.InviterPhoneNumber,
dateTime: dateTime: moment(this.formInline.date).format('YYYY-MM-DD') + ' ' + this.formInline.time,
moment(this.formInline.date).format("YYYY-MM-DD") +
" " +
this.formInline.time,
interviewTitle: this.formInline.position, interviewTitle: this.formInline.position,
source: this.formInline.model1, source: this.formInline.model1,
name: this.formInline.name, name: this.formInline.name,
mobile: this.formInline.phoneNUmber, mobile: this.formInline.phoneNUmber,
takeResume: this.formInline.model2 takeResume: this.formInline.model2,
}; };
this.loading = true; this.loading = true;
submitMassage(parmars).then(res => { submitMassage(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.loading = false; this.loading = false;
this.formInline.model1 = ""; this.formInline.model1 = '';
this.formInline.model2 = ""; this.formInline.model2 = '';
this.formInline.Inviter = ""; this.formInline.Inviter = '';
this.formInline.InviterPhoneNumber = ""; this.formInline.InviterPhoneNumber = '';
this.formInline.time = ""; this.formInline.time = '';
this.formInline.position = ""; this.formInline.position = '';
this.formInline.name = ""; this.formInline.name = '';
this.formInline.phoneNUmber = ""; this.formInline.phoneNUmber = '';
this.modal4 = true; this.modal4 = true;
} }
...@@ -320,25 +230,21 @@ export default { ...@@ -320,25 +230,21 @@ export default {
this.modal3 = true; this.modal3 = true;
}, },
jedugePhone() { jedugePhone() {
if (this.formInline.InviterPhoneNumber == "") { if (this.formInline.InviterPhoneNumber == '') {
this.isV = false; this.isV = false;
return; return;
} }
if ( if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)) {
!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)
) {
this.isV = true; this.isV = true;
} }
if ( if (/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)) {
/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber)
) {
this.isV = false; this.isV = false;
} }
}, },
// 阻止弹出键盘 // 阻止弹出键盘
defaultRRRR() { defaultRRRR() {
document.activeElement.blur(); document.activeElement.blur();
} },
}, },
mounted() { mounted() {
this.welconme(); this.welconme();
...@@ -349,10 +255,9 @@ export default { ...@@ -349,10 +255,9 @@ export default {
this.saleDate = `${year}/${month}/${day}`; this.saleDate = `${year}/${month}/${day}`;
this.formInline.date = this.saleDate; this.formInline.date = this.saleDate;
function getRem() { function getRem() {
var html = document.getElementsByTagName("html")[0]; var html = document.getElementsByTagName('html')[0];
var oWidth = var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
document.body.clientWidth || document.documentElement.clientWidth; html.style.fontSize = oWidth / 7.5 + 'px';
html.style.fontSize = oWidth / 7.5 + "px";
} }
this.$nextTick(() => { this.$nextTick(() => {
getRem(); getRem();
...@@ -369,7 +274,7 @@ export default { ...@@ -369,7 +274,7 @@ export default {
}; };
}, },
beforeDestroy() { beforeDestroy() {
document.getElementsByTagName("html")[0].removeAttribute("style"); document.getElementsByTagName('html')[0].removeAttribute('style');
}, },
watch: { watch: {
showHeight: function() { showHeight: function() {
...@@ -378,8 +283,8 @@ export default { ...@@ -378,8 +283,8 @@ export default {
} else { } else {
this.hidshow = true; this.hidshow = true;
} }
} },
} },
}; };
</script> </script>
......
...@@ -18,13 +18,13 @@ ...@@ -18,13 +18,13 @@
</div> </div>
</template> </template>
<script> <script>
import { getErcode, downloadErcode } from "../../api/stystem.server.js"; import { getErcode, downloadErcode } from '../../api/stystem.server.js';
import { sapi } from "../../config"; import { sapi } from '../../config';
export default { export default {
data() { data() {
return { return {
url: "", url: '',
url2: "" url2: '',
}; };
}, },
methods: { methods: {
...@@ -38,11 +38,11 @@ export default { ...@@ -38,11 +38,11 @@ export default {
}, },
downPic(img) { downPic(img) {
window.location.href = `${sapi}/api/qrCode/downQrCode`; window.location.href = `${sapi}/api/qrCode/downQrCode`;
} },
}, },
mounted() { mounted() {
this.getercode(); this.getercode();
} },
}; };
</script> </script>
<style> <style>
......
...@@ -2,77 +2,37 @@ ...@@ -2,77 +2,37 @@
<div class="account"> <div class="account">
<div class="addAcount"> <div class="addAcount">
<p style="margin-top:0.5%"> <p style="margin-top:0.5%">
<span style="font-size:18px;color:#2d8cf0;margin-left:18px;" <span style="font-size:18px;color:#2d8cf0;margin-left:18px;">新增账户</span>
>新增账户</span
>
<span style="margin-left:10px;color:Grey">以下内容均为必填项</span> <span style="margin-left:10px;color:Grey">以下内容均为必填项</span>
</p> </p>
<Form :label-width="100" :model="formInline" :rules="ruleInline"> <Form :label-width="100" :model="formInline" :rules="ruleInline">
<FormItem label="登录账号" style="margin-top:1%" prop="emailNumber"> <FormItem label="登录账号" style="margin-top:1%" prop="emailNumber">
<Input <Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailNumber" />
placeholder="请输入企业邮箱"
style="width:300px"
v-model="formInline.emailNumber"
/>
</FormItem> </FormItem>
<FormItem label="手机号码" style="margin-top:1%" prop="PhoneNumber"> <FormItem label="手机号码" style="margin-top:1%" prop="PhoneNumber">
<Input <Input placeholder="请输入正确的手机号" style="width:300px" v-model="formInline.PhoneNumber" />
placeholder="请输入正确的手机号"
style="width:300px"
v-model="formInline.PhoneNumber"
/>
</FormItem> </FormItem>
<FormItem label="真实姓名" style="margin-top:1%" prop="PerName"> <FormItem label="真实姓名" style="margin-top:1%" prop="PerName">
<Input <Input placeholder="请输入真实姓名" style="width:300px" v-model="formInline.PerName" :maxlength="5" />
placeholder="请输入真实姓名"
style="width:300px"
v-model="formInline.PerName"
:maxlength="5"
/>
</FormItem> </FormItem>
</Form> </Form>
<p> <p>
<span style="margin-left:25px;fnt-size:14px">初始登录密码</span> <span style="margin-left:25px;fnt-size:14px">初始登录密码</span>
<span style="margin-left:10px" <span style="margin-left:10px">默认是"123456",新用户首次登录需修改后才能进入系统。</span>
>默认是"123456",新用户首次登录需修改后才能进入系统。</span <span style="margin-left:30px"><Button type="primary" size="small" style="color:#ffffff;margin-left:20px;width:60px" @click="addacount"> 添加</Button></span>
>
<span style="margin-left:30px"
><Button
type="primary"
size="small"
style="color:#ffffff;margin-left:20px;width:60px"
@click="addacount"
>
添加</Button
></span
>
</p> </p>
</div> </div>
<div class="accountMange"> <div class="accountMange">
<div class="accountMange-top"> <div class="accountMange-top">
<p style="height:40px;line-height:40px"> <p style="height:40px;line-height:40px">
<span style="font-size:18px;color:#2d8cf0;margin-left:18px" <span style="font-size:18px;color:#2d8cf0;margin-left:18px">账户管理</span>
>账户管理</span <span style="margin-left:10px;color:Grey">删除后该用户将无法登录,该账户上传的简历仍然保留。</span>
>
<span style="margin-left:10px;color:Grey"
>删除后该用户将无法登录,该账户上传的简历仍然保留。</span
>
</p> </p>
<p <p style="border-bottom:1px solid black;line-height:30px;margin-bottom:10px">
style="border-bottom:1px solid black;line-height:30px;margin-bottom:10px" <input type="checkbox" class="input-checkbox" v-model="checked" v-on:click="checkedAll(checkboxList)" style="margin-left:25px;margin-top:15px;cursor:pointer" /><span style="margin-left:10px"
> >全选</span
<input
type="checkbox"
class="input-checkbox"
v-model="checked"
v-on:click="checkedAll(checkboxList)"
style="margin-left:25px;margin-top:15px;cursor:pointer"
/><span style="margin-left:10px">全选</span>
<span
style="margin-left:40px;color:#2d8cf0;cursor:pointer"
@click="delateall"
>删除</span
> >
<span style="margin-left:40px;color:#2d8cf0;cursor:pointer" @click="delateall">删除</span>
</p> </p>
</div> </div>
<!-- <Table ref="selection" :columns="columns4" :data="data1"></Table> --> <!-- <Table ref="selection" :columns="columns4" :data="data1"></Table> -->
...@@ -80,34 +40,14 @@ ...@@ -80,34 +40,14 @@
<!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px">加载中...</Spin> --> <!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px">加载中...</Spin> -->
<div v-for="item in ajaxData" :key="item.id" style=""> <div v-for="item in ajaxData" :key="item.id" style="">
<div class="detailQQ"> <div class="detailQQ">
<input <input type="checkbox" name="checkboxinput" class="input-checkbox" v-model="checkboxList" :value="item.id" style="margin-left:25px;cursor:pointer" @click="delateArr(item.id)" />
type="checkbox"
name="checkboxinput"
class="input-checkbox"
v-model="checkboxList"
:value="item.id"
style="margin-left:25px;cursor:pointer"
@click="delateArr(item.id)"
/>
<span style="margin-left:5px">{{ item.userName }}</span> <span style="margin-left:5px">{{ item.userName }}</span>
<span style="margin-left:35px">{{ item.userCode }}</span> <span style="margin-left:35px">{{ item.userCode }}</span>
<span style="margin-left:35px">{{ item.phone }}</span> <span style="margin-left:35px">{{ item.phone }}</span>
<span style="margin-left:35px">{{ item.createTime }}</span> <span style="margin-left:35px">{{ item.createTime }}</span>
<span <span style="margin-left:35px;color:#2d8cf0;cursor:pointer" @click="recoveryModal(item.id)">恢复初始密码</span>
style="margin-left:35px;color:#2d8cf0;cursor:pointer" <span style="margin-left:35px;color:#2d8cf0;cursor:pointer" @click="updateModal(item)">修改</span>
@click="recoveryModal(item.id)" <span style="margin-left:35px;color:#2d8cf0;cursor:pointer" @click="delateMaodal(item.id)">删除</span>
>恢复初始密码</span
>
<span
style="margin-left:35px;color:#2d8cf0;cursor:pointer"
@click="updateModal(item)"
>修改</span
>
<span
style="margin-left:35px;color:#2d8cf0;cursor:pointer"
@click="delateMaodal(item.id)"
>删除</span
>
</div> </div>
<div style="height:10px;background:white;width:100%;"></div> <div style="height:10px;background:white;width:100%;"></div>
</div> </div>
...@@ -137,38 +77,15 @@ ...@@ -137,38 +77,15 @@
</Modal> </Modal>
<Modal v-model="modal6" :closable="false" width="450px"> <Modal v-model="modal6" :closable="false" width="450px">
<h3 style="text-align:center;font-size:14px">修改信息</h3> <h3 style="text-align:center;font-size:14px">修改信息</h3>
<Form <Form :label-width="100" :model="formInline" :rules="ruleInline" class="updateClassModal">
:label-width="100"
:model="formInline"
:rules="ruleInline"
class="updateClassModal"
>
<FormItem label="登录账号" style="margin-top:1%" prop="emailNumber"> <FormItem label="登录账号" style="margin-top:1%" prop="emailNumber">
<Input <Input placeholder="请输入企业邮箱" style="width:300px;" v-model="formInline.updateemailNumber" disabled />
placeholder="请输入企业邮箱"
style="width:300px;"
v-model="formInline.updateemailNumber"
disabled
/>
</FormItem> </FormItem>
<FormItem <FormItem label="手机号码" style="margin-top:1%" prop="updatePhoneNumber">
label="手机号码" <Input placeholder="请输入正确的手机号" style="width:300px;" v-model="formInline.updatePhoneNumber" />
style="margin-top:1%"
prop="updatePhoneNumber"
>
<Input
placeholder="请输入正确的手机号"
style="width:300px;"
v-model="formInline.updatePhoneNumber"
/>
</FormItem> </FormItem>
<FormItem label="真实姓名" style="margin-top:1%" prop="updatePerName"> <FormItem label="真实姓名" style="margin-top:1%" prop="updatePerName">
<Input <Input placeholder="请输入真实姓名" style="width:300px;" v-model="formInline.updatePerName" :maxlength="5" />
placeholder="请输入真实姓名"
style="width:300px;"
v-model="formInline.updatePerName"
:maxlength="5"
/>
</FormItem> </FormItem>
</Form> </Form>
<div slot="footer" style="text-align:center"> <div slot="footer" style="text-align:center">
...@@ -203,14 +120,7 @@ ...@@ -203,14 +120,7 @@
</div> </div>
</template> </template>
<script> <script>
import { import { queryaccountList, addAccount, Delateaccount, delateAllAccount, recoveryPassword, updateAccount } from '../../api/stystem.server.js';
queryaccountList,
addAccount,
Delateaccount,
delateAllAccount,
recoveryPassword,
updateAccount
} from "../../api/stystem.server.js";
export default { export default {
data() { data() {
return { return {
...@@ -221,67 +131,67 @@ export default { ...@@ -221,67 +131,67 @@ export default {
modal6: false, modal6: false,
checkboxList: [], checkboxList: [],
checked: false, checked: false,
updateAccountId: "", updateAccountId: '',
pageT: "", pageT: '',
userName: "", userName: '',
userCode: "", userCode: '',
Massage: "", Massage: '',
spinShow: true, spinShow: true,
delateARR: [], delateARR: [],
id: "", id: '',
I: "", I: '',
pageIndex: 1, pageIndex: 1,
pageSize: 30, pageSize: 30,
totalSize: null, totalSize: null,
searchInfo: { searchInfo: {
pageSize: 30, pageSize: 30,
pageIndex: 1, pageIndex: 1,
id: "" id: '',
}, },
formInline: { formInline: {
PhoneNumber: "", PhoneNumber: '',
PerName: "", PerName: '',
emailNumber: "", emailNumber: '',
updatePhoneNumber: "", updatePhoneNumber: '',
updatePerName: "", updatePerName: '',
updateemailNumber: "" updateemailNumber: '',
}, },
ruleInline: { ruleInline: {
PhoneNumber: [ PhoneNumber: [
{ {
required: true, required: true,
pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/,
message: "请输入正确的手机号", message: '请输入正确的手机号',
trigger: "blur" trigger: 'blur',
} },
], ],
PerName: [ PerName: [
{ required: true, message: "请输入真实的姓名", trigger: "blur" }, { required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: "string", message: "", trigger: "blur" } { type: 'string', message: '', trigger: 'blur' },
], ],
updateemailNumber: [ updateemailNumber: [
{ {
required: true, required: true,
pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/,
message: "请输入正确的手机号", message: '请输入正确的手机号',
trigger: "blur" trigger: 'blur',
} },
], ],
updatePerName: [ updatePerName: [
{ required: true, message: "请输入真实的姓名", trigger: "blur" }, { required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: "string", message: "", trigger: "blur" } { type: 'string', message: '', trigger: 'blur' },
], ],
emailNumber: [ emailNumber: [
{ {
required: true, required: true,
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
message: "请输入正确的邮箱账号", message: '请输入正确的邮箱账号',
trigger: "blur" trigger: 'blur',
} },
] ],
}, },
ajaxData: [], ajaxData: [],
checkData: [] // 双向数据绑定的数组 checkData: [], // 双向数据绑定的数组
}; };
}, },
methods: { methods: {
...@@ -289,10 +199,10 @@ export default { ...@@ -289,10 +199,10 @@ export default {
this.$refs.selection.selectAll(status); this.$refs.selection.selectAll(status);
}, },
ok() { ok() {
this.$Message.info("Clicked ok"); this.$Message.info('Clicked ok');
}, },
cancel() { cancel() {
this.$Message.info("Clicked cancel"); this.$Message.info('Clicked cancel');
}, },
// //
delateArr(DElateID) { delateArr(DElateID) {
...@@ -328,44 +238,39 @@ export default { ...@@ -328,44 +238,39 @@ export default {
id: this.updateAccountId, id: this.updateAccountId,
userCode: this.formInline.updateemailNumber, userCode: this.formInline.updateemailNumber,
userName: this.formInline.updatePerName, userName: this.formInline.updatePerName,
phone: this.formInline.updatePhoneNumber phone: this.formInline.updatePhoneNumber,
}; };
if ( if (this.formInline.updatePhoneNumber == '' || this.formInline.updatePerName == '') {
this.formInline.updatePhoneNumber == "" ||
this.formInline.updatePerName == ""
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写正确的手机号码或姓名", desc: '请您填写正确的手机号码或姓名',
duration: 2 duration: 2,
}); });
return; return;
} }
if ( if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.updatePhoneNumber)) {
!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.updatePhoneNumber)
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写正确的手机号", desc: '请您填写正确的手机号',
duration: 2 duration: 2,
}); });
return; return;
} }
updateAccount(parmars).then(res => { updateAccount(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "修改成功", desc: '修改成功',
duration: 2 duration: 2,
}); });
this.modal6 = false; this.modal6 = false;
this.SearchList(); this.SearchList();
} }
if (res.data.success == false) { if (res.data.success == false) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: res.data.body.message, desc: res.data.body.message,
duration: 2 duration: 2,
}); });
this.modal6 = false; this.modal6 = false;
} }
...@@ -376,74 +281,66 @@ export default { ...@@ -376,74 +281,66 @@ export default {
const parmars = { const parmars = {
userCode: this.formInline.emailNumber, userCode: this.formInline.emailNumber,
userName: this.formInline.PerName, userName: this.formInline.PerName,
phone: this.formInline.PhoneNumber phone: this.formInline.PhoneNumber,
}; };
if ( if (this.formInline.PhoneNumber == '' || this.formInline.PerName == '' || this.formInline.emailNumber == '') {
this.formInline.PhoneNumber == "" ||
this.formInline.PerName == "" ||
this.formInline.emailNumber == ""
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写正确的账号或姓名", desc: '请您填写正确的账号或姓名',
duration: 2 duration: 2,
}); });
return; return;
} }
if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.PhoneNumber)) { if (!/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.PhoneNumber)) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写正确的手机号", desc: '请您填写正确的手机号',
duration: 2 duration: 2,
}); });
return; return;
} }
if ( if (!/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(this.formInline.emailNumber)) {
!/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(
this.formInline.emailNumber
)
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写正确邮箱账号", desc: '请您填写正确邮箱账号',
duration: 2 duration: 2,
}); });
return; return;
} }
addAccount(parmars).then(res => { addAccount(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "添加成功", desc: '添加成功',
duration: 2 duration: 2,
}); });
this.SearchList(); this.SearchList();
this.formInline.PhoneNumber = ""; this.formInline.PhoneNumber = '';
this.formInline.PerName = ""; this.formInline.PerName = '';
this.formInline.emailNumber = ""; this.formInline.emailNumber = '';
} }
if (res.data.body.code == 0) { if (res.data.body.code == 0) {
this.Massage = res.data.body.message; this.Massage = res.data.body.message;
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: this.Massage, desc: this.Massage,
duration: 2 duration: 2,
}); });
this.formInline.PhoneNumber = ""; this.formInline.PhoneNumber = '';
this.formInline.PerName = ""; this.formInline.PerName = '';
this.formInline.emailNumber = ""; this.formInline.emailNumber = '';
} }
}); });
}, },
// 查询账户列表 // 查询账户列表
SearchList(page) { SearchList(page) {
page = typeof page === "number" ? page : 1; page = typeof page === 'number' ? page : 1;
this.searchInfo.pageIndex = page; this.searchInfo.pageIndex = page;
this.pageIndex = page; this.pageIndex = page;
const parmars = { const parmars = {
pageSize: this.searchInfo.pageSize, pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex pageIndex: this.searchInfo.pageIndex,
}; };
queryaccountList(parmars).then(res => { queryaccountList(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -467,7 +364,7 @@ export default { ...@@ -467,7 +364,7 @@ export default {
// 删除单条账户 // 删除单条账户
delateAccount() { delateAccount() {
const parmars = { const parmars = {
id: this.I id: this.I,
}; };
Delateaccount(parmars).then(res => { Delateaccount(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -481,9 +378,9 @@ export default { ...@@ -481,9 +378,9 @@ export default {
delateall() { delateall() {
if (this.checkboxList.length == 0 || this.delateArr.length == 0) { if (this.checkboxList.length == 0 || this.delateArr.length == 0) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "选项不能为空", desc: '选项不能为空',
duration: "2" duration: '2',
}); });
return; return;
} }
...@@ -494,9 +391,9 @@ export default { ...@@ -494,9 +391,9 @@ export default {
delateAllAccount(this.delateARR).then(res => { delateAllAccount(this.delateARR).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "删除成功", desc: '删除成功',
duration: "2" duration: '2',
}); });
this.modal3 = false; this.modal3 = false;
this.SearchList(this.pageT); this.SearchList(this.pageT);
...@@ -511,14 +408,14 @@ export default { ...@@ -511,14 +408,14 @@ export default {
// 确认恢复初始密码 // 确认恢复初始密码
recovery() { recovery() {
const parmars = { const parmars = {
id: this.I id: this.I,
}; };
recoveryPassword(parmars).then(res => { recoveryPassword(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "恢复密码成功", desc: '恢复密码成功',
duration: "2" duration: '2',
}); });
this.modal1 = false; this.modal1 = false;
} }
...@@ -533,7 +430,7 @@ export default { ...@@ -533,7 +430,7 @@ export default {
this.searchInfo.pageSize = page; this.searchInfo.pageSize = page;
this.pageSize = page; this.pageSize = page;
this.SearchList(); this.SearchList();
} },
}, },
watch: { watch: {
checkboxList: { checkboxList: {
...@@ -548,12 +445,12 @@ export default { ...@@ -548,12 +445,12 @@ export default {
this.checked = false; this.checked = false;
} }
}, },
deep: true deep: true,
} },
}, },
mounted() { mounted() {
this.SearchList(); this.SearchList();
} },
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -2,26 +2,14 @@ ...@@ -2,26 +2,14 @@
<div class="emailMange"> <div class="emailMange">
<div class="addEmail"> <div class="addEmail">
<p style="margin-top:10px"> <p style="margin-top:10px">
<span style="font-size:18px;color:#2d8cf0;margin-left:18px" <span style="font-size:18px;color:#2d8cf0;margin-left:18px">新增接收邮箱</span>
>新增接收邮箱</span <span style="margin-left:10px;color:Grey">绑定邮箱以接收简历,仅可绑定一个邮箱</span>
>
<span style="margin-left:10px;color:Grey"
>绑定邮箱以接收简历,仅可绑定一个邮箱</span
>
</p> </p>
<Form :label-width="100" :model="formInline" :rules="ruleInline"> <Form :label-width="100" :model="formInline" :rules="ruleInline">
<FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber"> <FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber">
<Input <Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailNumber" />
placeholder="请输入企业邮箱"
style="width:300px"
v-model="formInline.emailNumber"
/>
</FormItem> </FormItem>
<FormItem <FormItem label="请选择开始同步的时间" style="margin-top:20px; position: absolute;top:30px;left: 490px" :label-width="180">
label="请选择开始同步的时间"
style="margin-top:20px; position: absolute;top:30px;left: 490px"
:label-width="180"
>
<DatePicker <DatePicker
type="datetime" type="datetime"
format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
...@@ -33,78 +21,28 @@ ...@@ -33,78 +21,28 @@
:editable="false" :editable="false"
></DatePicker ></DatePicker
><br /> ><br />
<span style="font-size:8px;margin-left:0px;" <span style="font-size:8px;margin-left:0px;"><Icon type="md-information-circle" />最长可同步30天</span>
><Icon type="md-information-circle" />最长可同步30天</span
>
</FormItem> </FormItem>
<FormItem <FormItem label="邮箱密码" style="margin-top:20px; position: absolute;top:110px;left: -80px" prop="emailPsd" :label-width="180">
label="邮箱密码" <Input placeholder="请输入企业邮箱密码" style="width:300px" v-model="formInline.emailPsd" type="password" /><br />
style="margin-top:20px; position: absolute;top:110px;left: -80px" <span style="font-size:8px;position: relative;top:0px left:30px"><Icon type="md-information-circle" />邮箱密码在绑定后再次修改,请及时点击修改来更新。</span>
prop="emailPsd"
:label-width="180"
>
<Input
placeholder="请输入企业邮箱密码"
style="width:300px"
v-model="formInline.emailPsd"
type="password"
/><br />
<span style="font-size:8px;position: relative;top:0px left:30px"
><Icon
type="md-information-circle"
/>邮箱密码在绑定后再次修改,请及时点击修改来更新。</span
>
</FormItem> </FormItem>
<FormItem <FormItem label="所属人" style="margin-top:20px; position: absolute;top:110px;left: 410px" prop="UserName" :label-width="180">
label="所属人" <Input placeholder="请输入所属者正确姓名" style="width:300px" v-model="formInline.UserName" :maxlength="5" />
style="margin-top:20px; position: absolute;top:110px;left: 410px"
prop="UserName"
:label-width="180"
>
<Input
placeholder="请输入所属者正确姓名"
style="width:300px"
v-model="formInline.UserName"
:maxlength="5"
/>
</FormItem> </FormItem>
<Button <Button type="primary" style="position: absolute;top:130px;left: 910px;" :disabled="disabled" @click="bindingSynchronizat">绑定并开始同步</Button>
type="primary"
style="position: absolute;top:130px;left: 910px;"
:disabled="disabled"
@click="bindingSynchronizat"
>绑定并开始同步</Button
>
</Form> </Form>
</div> </div>
<div class="Emailmange"> <div class="Emailmange">
<p style="height:40px;line-height:40px"> <p style="height:40px;line-height:40px">
<span style="font-size:18px;color:#2d8cf0;margin-left:18px" <span style="font-size:18px;color:#2d8cf0;margin-left:18px">邮箱管理</span>
>邮箱管理</span <span style="margin-left:10px;color:Grey">解绑后不再接受该邮箱下的简历,之前接收的简历仍然保留。</span>
>
<span style="margin-left:10px;color:Grey"
>解绑后不再接受该邮箱下的简历,之前接收的简历仍然保留。</span
>
</p> </p>
<p style="border-bottom:1px solid black;line-height:30px"> <p style="border-bottom:1px solid black;line-height:30px">
<input <input type="checkbox" class="input-checkbox" v-model="checked" v-on:click="checkedAll" style="margin-left:25px;cursor:pointer" v-show="idAdmin == true" />
type="checkbox" <span style="margin-left:5px;cursor:pointer" v-show="idAdmin == true">全选</span>
class="input-checkbox" <span style="margin-left:40px;color:#2d8cf0;cursor:pointer" @click="UntyingAllmodeal" v-show="idAdmin == true">解绑</span>
v-model="checked"
v-on:click="checkedAll"
style="margin-left:25px;cursor:pointer"
v-show="idAdmin == true"
/>
<span style="margin-left:5px;cursor:pointer" v-show="idAdmin == true"
>全选</span
>
<span
style="margin-left:40px;color:#2d8cf0;cursor:pointer"
@click="UntyingAllmodeal"
v-show="idAdmin == true"
>解绑</span
>
</p> </p>
<!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px" v-show="idAdmin==true">加载中...</Spin> --> <!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px" v-show="idAdmin==true">加载中...</Spin> -->
<div v-for="item in ajaxData" :key="item.id" class="emailList"> <div v-for="item in ajaxData" :key="item.id" class="emailList">
...@@ -119,26 +57,12 @@ ...@@ -119,26 +57,12 @@
/> />
<span style="margin-left:0.3%">{{ item.belongs }}</span> <span style="margin-left:0.3%">{{ item.belongs }}</span>
<span style="margin-left:0.5%;">{{ item.emailName }}</span> <span style="margin-left:0.5%;">{{ item.emailName }}</span>
<span style="margin-left:0.5%;" <span style="margin-left:0.5%;">同步时间 | {{ item.syncStartDate }}</span>
>同步时间 | {{ item.syncStartDate }}</span
>
<span style="margin-left:2%;">新建时间 | {{ item.createTime }}</span> <span style="margin-left:2%;">新建时间 | {{ item.createTime }}</span>
<span <span style="margin-left:1%;color:#2d8cf0;cursor:pointer" @click="UpdateEMAIL(item.emailName, item.belongs, item.id)">修改</span>
style="margin-left:1%;color:#2d8cf0;cursor:pointer" <span style="margin-left:1%;color:#2d8cf0;cursor:pointer" @click="UnbindingModal(item.id)">解绑</span>
@click="UpdateEMAIL(item.emailName, item.belongs, item.id)" <span style="margin-left:5%;" v-if="item.c == '正常'">{{ item.syncMailMsg }}</span>
>修改</span <span style="margin-left:5%;color:red" v-if="item.c == '系统'">{{ item.syncMailMsg }}</span>
>
<span
style="margin-left:1%;color:#2d8cf0;cursor:pointer"
@click="UnbindingModal(item.id)"
>解绑</span
>
<span style="margin-left:5%;" v-if="item.c == '正常'">{{
item.syncMailMsg
}}</span>
<span style="margin-left:5%;color:red" v-if="item.c == '系统'">{{
item.syncMailMsg
}}</span>
</div> </div>
<div class="pageBottom" v-show="this.idAdmin == true"> <div class="pageBottom" v-show="this.idAdmin == true">
<Page <Page
...@@ -157,23 +81,16 @@ ...@@ -157,23 +81,16 @@
<Modal v-model="modal1" :closable="false" :footer-hide="true" width="250px"> <Modal v-model="modal1" :closable="false" :footer-hide="true" width="250px">
<h3 style="text-align:center">提示</h3> <h3 style="text-align:center">提示</h3>
<p style="text-align:center">系统错误,请联系开发者!</p> <p style="text-align:center">系统错误,请联系开发者!</p>
<h2 <h2 style="text-align:center;font-size:18px;color:#2d8cf0" @click="modal1 = false">
style="text-align:center;font-size:18px;color:#2d8cf0"
@click="modal1 = false"
>
确定 确定
</h2> </h2>
</Modal> </Modal>
<!-- 同步成功 --> <!-- 同步成功 -->
<Modal v-model="modal2" :closable="false" :footer-hide="true" width="270px"> <Modal v-model="modal2" :closable="false" :footer-hide="true" width="270px">
<h3 style="text-align:center">提示</h3> <h3 style="text-align:center">提示</h3>
<p style="height:30px;line-height:30px"> <p style="height:30px;line-height:30px">同步完成,如密码发生改变,请及时点击<br /><span>修改</span>来重置密码</p>
同步完成,如密码发生改变,请及时点击<br /><span>修改</span>来重置密码
</p>
<!-- <h2 style="text-align:center;font-size:18px;color:#2d8cf0;height:40px;line-height:40px;margin-top:30px" @click="pushlist">我已知晓</h2> --> <!-- <h2 style="text-align:center;font-size:18px;color:#2d8cf0;height:40px;line-height:40px;margin-top:30px" @click="pushlist">我已知晓</h2> -->
<Button type="primary" style="margin:40px 0 0 80px" @click="iKnow" <Button type="primary" style="margin:40px 0 0 80px" @click="iKnow">我已知晓</Button>
>我已知晓</Button
>
</Modal> </Modal>
<!-- 同步绑定 --> <!-- 同步绑定 -->
<Modal v-model="modal3" :closable="false" :footer-hide="true" width="250px"> <Modal v-model="modal3" :closable="false" :footer-hide="true" width="250px">
...@@ -186,45 +103,14 @@ ...@@ -186,45 +103,14 @@
<div style="height:230px"> <div style="height:230px">
<Form> <Form>
<FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber"> <FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber">
<Input <Input placeholder="请输入企业邮箱" v-model="Uusername" style="width:300px;color:Gainsboro" disabled />
placeholder="请输入企业邮箱"
v-model="Uusername"
style="width:300px;color:Gainsboro"
disabled
/>
</FormItem> </FormItem>
<FormItem <FormItem label="邮箱密码" prop="emailPsd" :label-width="180" style="position: absolute;top:130px;left:-105px">
label="邮箱密码" <Input placeholder="请输入企业邮箱密码" style="width:300px" v-model="UpassWord" type="password" autocomplete="new-password" /><br />
prop="emailPsd" <span style="font-size:8px;position: relative;top:0px left:30px"><Icon type="md-information-circle" :options="options3" />邮箱密码在绑定后再次修改,请及时点击修改来更新。</span>
:label-width="180"
style="position: absolute;top:130px;left:-105px"
>
<Input
placeholder="请输入企业邮箱密码"
style="width:300px"
v-model="UpassWord"
type="password"
autocomplete="new-password"
/><br />
<span style="font-size:8px;position: relative;top:0px left:30px"
><Icon
type="md-information-circle"
:options="options3"
/>邮箱密码在绑定后再次修改,请及时点击修改来更新。</span
>
</FormItem> </FormItem>
<FormItem <FormItem label="所属人" style=" position: absolute;top:220px;left: -100px" prop="UserName" :label-width="180">
label="所属人" <Input placeholder="请输入所属着真实的姓名" style="width:300px" v-model="Ublengs" :maxlength="5" />
style=" position: absolute;top:220px;left: -100px"
prop="UserName"
:label-width="180"
>
<Input
placeholder="请输入所属着真实的姓名"
style="width:300px"
v-model="Ublengs"
:maxlength="5"
/>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
...@@ -257,14 +143,8 @@ ...@@ -257,14 +143,8 @@
</div> </div>
</template> </template>
<script> <script>
import { import { queryemailList, Synchronization, jiebangEmail, updateemailTWO, UntyingAll } from '../../api/stystem.server.js';
queryemailList, import moment from 'moment';
Synchronization,
jiebangEmail,
updateemailTWO,
UntyingAll
} from "../../api/stystem.server.js";
import moment from "moment";
export default { export default {
data() { data() {
return { return {
...@@ -274,30 +154,27 @@ export default { ...@@ -274,30 +154,27 @@ export default {
modal4: false, modal4: false,
modal5: false, modal5: false,
modal6: false, modal6: false,
condition: "", condition: '',
Massage: "", Massage: '',
pageT: "", pageT: '',
spinShow: true, spinShow: true,
idAdmin: "", idAdmin: '',
admin: "", admin: '',
NAme: "", NAme: '',
DATA: "", DATA: '',
Tname: "", Tname: '',
options3: { options3: {
disabledDate(date) { disabledDate(date) {
return ( return (date && date.valueOf() > Date.now()) || date.valueOf() < Date.now() - 3600 * 1000 * 30 * 24;
(date && date.valueOf() > Date.now()) || },
date.valueOf() < Date.now() - 3600 * 1000 * 30 * 24
);
}
}, },
UpassWord: "", UpassWord: '',
Uusername: "", Uusername: '',
decisionStartTime: "", decisionStartTime: '',
Ublengs: "", Ublengs: '',
Uid: "", Uid: '',
UntyingAllARR: [], UntyingAllARR: [],
Tblengs: "", Tblengs: '',
checkboxList: [], checkboxList: [],
checked: false, checked: false,
disabled: false, disabled: false,
...@@ -307,12 +184,12 @@ export default { ...@@ -307,12 +184,12 @@ export default {
searchInfo: { searchInfo: {
pageSize: 30, pageSize: 30,
pageIndex: 1, pageIndex: 1,
id: "" id: '',
}, },
formInline: { formInline: {
emailNumber: "", emailNumber: '',
emailPsd: "", emailPsd: '',
UserName: "" UserName: '',
}, },
ruleInline: { ruleInline: {
emailNumber: [ emailNumber: [
...@@ -320,19 +197,15 @@ export default { ...@@ -320,19 +197,15 @@ export default {
{ {
required: true, required: true,
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
message: "请输入正确的邮箱账号", message: '请输入正确的邮箱账号',
trigger: "blur" trigger: 'blur',
} },
],
emailPsd: [
{ required: true, message: "请输入正确的密码", trigger: "blur" }
], ],
UserName: [ emailPsd: [{ required: true, message: '请输入正确的密码', trigger: 'blur' }],
{ required: true, message: "请输入正确的姓名", trigger: "blur" } UserName: [{ required: true, message: '请输入正确的姓名', trigger: 'blur' }],
]
}, },
ajaxData: [], ajaxData: [],
checkData: [] // 双向数据绑定的数组 checkData: [], // 双向数据绑定的数组
}; };
}, },
methods: { methods: {
...@@ -352,16 +225,11 @@ export default { ...@@ -352,16 +225,11 @@ export default {
}, },
// 绑定同步邮箱 // 绑定同步邮箱
bindingSynchronizat() { bindingSynchronizat() {
if ( if (this.formInline.emailNumber == '' || this.formInline.emailPsd == '' || this.formInline.UserName == '' || this.DATA == '') {
this.formInline.emailNumber == "" ||
this.formInline.emailPsd == "" ||
this.formInline.UserName == "" ||
this.DATA == ""
) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写完整的信息", desc: '请您填写完整的信息',
duration: "2" duration: '2',
}); });
return; return;
} }
...@@ -371,17 +239,17 @@ export default { ...@@ -371,17 +239,17 @@ export default {
emailName: this.formInline.emailNumber, emailName: this.formInline.emailNumber,
emailPassword: this.formInline.emailPsd, emailPassword: this.formInline.emailPsd,
belongs: this.formInline.UserName, belongs: this.formInline.UserName,
syncStartDate: moment(this.DATA).format("YYYY-MM-DD HH:mm:ss") syncStartDate: moment(this.DATA).format('YYYY-MM-DD HH:mm:ss'),
}; };
Synchronization(parmars).then( Synchronization(parmars).then(
res => { res => {
if (res.data.success == true) { if (res.data.success == true) {
this.modal3 = false; this.modal3 = false;
this.modal2 = true; this.modal2 = true;
this.formInline.emailNumber = ""; this.formInline.emailNumber = '';
this.formInline.emailPsd = ""; this.formInline.emailPsd = '';
this.formInline.UserName = ""; this.formInline.UserName = '';
this.DATA = ""; this.DATA = '';
this.SearchList(); this.SearchList();
// this.disabled=false // this.disabled=false
} }
...@@ -390,16 +258,16 @@ export default { ...@@ -390,16 +258,16 @@ export default {
this.disabled = false; this.disabled = false;
this.Massage = res.data.body.message; this.Massage = res.data.body.message;
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: this.Massage, desc: this.Massage,
duration: 2 duration: 2,
}); });
} }
}, },
() => { () => {
this.modal3 = false; this.modal3 = false;
// this.modal1=true // this.modal1=true
this.formInline.emailPsd = ""; this.formInline.emailPsd = '';
} }
); );
}, },
...@@ -412,12 +280,12 @@ export default { ...@@ -412,12 +280,12 @@ export default {
}, },
// 查询邮箱列表 // 查询邮箱列表
SearchList(page) { SearchList(page) {
page = typeof page === "number" ? page : 1; page = typeof page === 'number' ? page : 1;
this.searchInfo.pageIndex = page; this.searchInfo.pageIndex = page;
this.pageIndex = page; this.pageIndex = page;
const parmars = { const parmars = {
pageSize: this.searchInfo.pageSize, pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex pageIndex: this.searchInfo.pageIndex,
}; };
queryemailList(parmars).then(res => { queryemailList(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -433,10 +301,7 @@ export default { ...@@ -433,10 +301,7 @@ export default {
item.STA = false; item.STA = false;
item.syncFlag = item.syncFlag; item.syncFlag = item.syncFlag;
item.syncMailMsg = item.syncMailMsg; item.syncMailMsg = item.syncMailMsg;
item.c = item.c = item.syncMailMsg == null ? item.syncMailMsg : item.syncMailMsg.substring(0, 2);
item.syncMailMsg == null
? item.syncMailMsg
: item.syncMailMsg.substring(0, 2);
return item; return item;
}); });
} }
...@@ -461,11 +326,11 @@ export default { ...@@ -461,11 +326,11 @@ export default {
}, },
// 修改后重新绑定邮箱并保存 // 修改后重新绑定邮箱并保存
UpdateemailTwo() { UpdateemailTwo() {
if (this.UpassWord == "" || this.Uusername == "" || this.Ublengs == "") { if (this.UpassWord == '' || this.Uusername == '' || this.Ublengs == '') {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您填写完整的信息", desc: '请您填写完整的信息',
duration: "2" duration: '2',
}); });
return; return;
} }
...@@ -473,25 +338,25 @@ export default { ...@@ -473,25 +338,25 @@ export default {
emailName: this.Uusername, emailName: this.Uusername,
emailPassword: this.UpassWord, emailPassword: this.UpassWord,
belongs: this.Ublengs, belongs: this.Ublengs,
id: this.Uid id: this.Uid,
}; };
updateemailTWO(parmars).then(res => { updateemailTWO(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.UpassWord = ""; this.UpassWord = '';
this.modal4 = false; this.modal4 = false;
this.SearchList(this.pageT); this.SearchList(this.pageT);
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "修改成功", desc: '修改成功',
duration: "2" duration: '2',
}); });
} else { } else {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "你填写的密码有误", desc: '你填写的密码有误',
duration: "2" duration: '2',
}); });
this.UpassWord = ""; this.UpassWord = '';
} }
}); });
}, },
...@@ -504,9 +369,9 @@ export default { ...@@ -504,9 +369,9 @@ export default {
jiebangEmail(this.NAme).then(res => { jiebangEmail(this.NAme).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "解绑成功", desc: '解绑成功',
duration: 2 duration: 2,
}); });
this.modal5 = false; this.modal5 = false;
this.SearchList(this.pageT); this.SearchList(this.pageT);
...@@ -517,9 +382,9 @@ export default { ...@@ -517,9 +382,9 @@ export default {
UntyingAllmodeal() { UntyingAllmodeal() {
if (this.UntyingAllARR.length == 0) { if (this.UntyingAllARR.length == 0) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "选项不能为空", desc: '选项不能为空',
duration: 2 duration: 2,
}); });
return; return;
} }
...@@ -534,9 +399,9 @@ export default { ...@@ -534,9 +399,9 @@ export default {
UntyingAll(this.UntyingAllARR).then(res => { UntyingAll(this.UntyingAllARR).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.$Notice.success({ this.$Notice.success({
title: "提示", title: '提示',
desc: "解绑成功", desc: '解绑成功',
duration: 2 duration: 2,
}); });
this.modal6 = false; this.modal6 = false;
this.SearchList(this.pageT); this.SearchList(this.pageT);
...@@ -553,45 +418,38 @@ export default { ...@@ -553,45 +418,38 @@ export default {
this.SearchList(this.pageT); this.SearchList(this.pageT);
}, },
isadminmethods() { isadminmethods() {
this.admin = localStorage.getItem("isADMIN"); this.admin = localStorage.getItem('isADMIN');
const c = JSON.parse(this.admin); const c = JSON.parse(this.admin);
this.idAdmin = c.isAdmin; this.idAdmin = c.isAdmin;
}, },
updatapassT() { updatapassT() {
this.modal4 = false; this.modal4 = false;
this.UpassWord = ""; this.UpassWord = '';
}, },
changeStartTime: function(e, b) { changeStartTime: function(e, b) {
this.DATA = b; this.DATA = b;
var time = e; var time = e;
var that = this; var that = this;
var days = var days = new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).getDate() - 1;
new Date( var startEndTime = time ? new Date(time).valueOf() - days * 24 * 60 * 60 * 1000 : '';
new Date().getFullYear(), var endEndTime = time ? new Date(time).valueOf() : '';
new Date().getMonth() + 1, if (time === '') {
0
).getDate() - 1;
var startEndTime = time
? new Date(time).valueOf() - days * 24 * 60 * 60 * 1000
: "";
var endEndTime = time ? new Date(time).valueOf() : "";
if (time === "") {
this.decisionStartTime = { this.decisionStartTime = {
disabledDate(data) { disabledDate(data) {
return data.valueOf() < 0; return data.valueOf() < 0;
} },
}; };
} else { } else {
this.decisionStartTime = { this.decisionStartTime = {
disabledDate(data) { disabledDate(data) {
if (that.qualityCheck.decisionEndTime === "") { if (that.qualityCheck.decisionEndTime === '') {
return new Date(); return new Date();
} }
return data.valueOf() < startEndTime || data.valueOf() > endEndTime; return data.valueOf() < startEndTime || data.valueOf() > endEndTime;
} },
}; };
} }
} },
}, },
watch: { watch: {
...@@ -603,13 +461,13 @@ export default { ...@@ -603,13 +461,13 @@ export default {
this.checked = false; this.checked = false;
} }
}, },
deep: true deep: true,
} },
}, },
mounted() { mounted() {
this.isadminmethods(); this.isadminmethods();
this.SearchList(); this.SearchList();
} },
}; };
</script> </script>
<style> <style>
......
...@@ -3,44 +3,18 @@ ...@@ -3,44 +3,18 @@
<div class="upload-left"> <div class="upload-left">
<div class="uploadC" style="background:rgba(244,244,244,1);height:300px"> <div class="uploadC" style="background:rgba(244,244,244,1);height:300px">
<div class="upload-title"> <div class="upload-title">
<Input <Input type="text" v-model="fileName" style="width:70%;margin-left:4%;margin-top:40px"></Input>
type="text" <input ref="input" class="nativeInput" type="file" :class="['prefixCls' + '-input']" @change="handleChange" :multiple="true" :format="['pdf', 'doc', 'docx']" :accept="accept" />
v-model="fileName" <Button @click="selFiles" style="width:20%;margin-top:40px;margin-left:-4px;color:black">选择文件</Button>
style="width:70%;margin-left:4%;margin-top:40px"
></Input>
<input
ref="input"
class="nativeInput"
type="file"
:class="['prefixCls' + '-input']"
@change="handleChange"
:multiple="true"
:format="['pdf', 'doc', 'docx']"
:accept="accept"
/>
<Button
@click="selFiles"
style="width:20%;margin-top:40px;margin-left:-4px;color:black"
>选择文件</Button
>
<div class="contentTips"> <div class="contentTips">
<p <p style="font-size:12px;margin-left:5%;text-align:center;height:40px;line-height:40px;width:90%;display:inline-block;margin-top:30px">
style="font-size:12px;margin-left:5%;text-align:center;height:40px;line-height:40px;width:90%;display:inline-block;margin-top:30px"
>
单个文件不能大于2MB,仅支持word,pdf格式,暂时不支持压缩格式 单个文件不能大于2MB,仅支持word,pdf格式,暂时不支持压缩格式
</p> </p>
<p <p style="font-size:12px;margin-left:2%;text-align:center;height:40px;line-height:40px;width:90%">
style="font-size:12px;margin-left:2%;text-align:center;height:40px;line-height:40px;width:90%"
>
支持最多二十份简历批量上传 支持最多二十份简历批量上传
</p> </p>
</div> </div>
<Button <Button @click="uploadBtn" style="width:20%;margin-left:38%;margin-top:30px" type="primary">上传</Button>
@click="uploadBtn"
style="width:20%;margin-left:38%;margin-top:30px"
type="primary"
>上传</Button
>
</div> </div>
<!-- 上传文件 --> <!-- 上传文件 -->
<Modal v-model="uploadModal" :closable="false" :mask-closable="false"> <Modal v-model="uploadModal" :closable="false" :mask-closable="false">
...@@ -50,34 +24,13 @@ ...@@ -50,34 +24,13 @@
</h4> </h4>
<div v-for="(item, index) in dataList" class="process" :key="index"> <div v-for="(item, index) in dataList" class="process" :key="index">
<p style="padding-top:5px;">{{ item.name }}</p> <p style="padding-top:5px;">{{ item.name }}</p>
<span <span class="title" style="float:right;" v-show="item.Code == 0">{{ item.title }}</span>
class="title" <span class="title" style="float:right;color:red" v-show="item.Code == 1"
style="float:right;"
v-show="item.Code == 0"
>{{ item.title }}</span
>
<span
class="title"
style="float:right;color:red"
v-show="item.Code == 1"
>{{ item.title }} >{{ item.title }}
<Checkbox <Checkbox v-model="item.sStatus" @on-change="selectfile(item.sStatus, item.name)"></Checkbox>
v-model="item.sStatus"
@on-change="selectfile(item.sStatus, item.name)"
></Checkbox
>
</span> </span>
<span <span class="title" style="float:right;color:red" v-show="item.Code == 2">{{ item.title }}</span>
class="title" <Progress :percent="item.percentage" hide-info :status="item.status"></Progress>
style="float:right;color:red"
v-show="item.Code == 2"
>{{ item.title }}</span
>
<Progress
:percent="item.percentage"
hide-info
:status="item.status"
></Progress>
</div> </div>
</div> </div>
<div slot="footer"> <div slot="footer">
...@@ -99,65 +52,26 @@ ...@@ -99,65 +52,26 @@
</Modal> </Modal>
</div> </div>
<div class="leftcontrentFotter"> <div class="leftcontrentFotter">
<h5 <h5 style="width:100%;height:40px;background:rgb(0,176,160);text-align:center;line-height:40px;color:white;font-size:15px;font-weight:bold">
style="width:100%;height:40px;background:rgb(0,176,160);text-align:center;line-height:40px;color:white;font-size:15px;font-weight:bold"
>
上传记录 上传记录
</h5> </h5>
<div <div style="width:100%;background:rgb(0,176,160); opacity: 0.7;overflow-y:auto;height:93%;">
style="width:100%;background:rgb(0,176,160); opacity: 0.7;overflow-y:auto;height:93%;"
>
<!-- <div style="width:100%;height:10px;background:rgb(0,176,160)"></div> --> <!-- <div style="width:100%;height:10px;background:rgb(0,176,160)"></div> -->
<div <div class="contentMASSAGE" v-for="(item, index) in ajaxData" :key="index">
class="contentMASSAGE" <p @click="getResumeData(item.resumeId, item.uid)" style="margin-top:10px">
v-for="(item, index) in ajaxData" <span style="color:#000000;margin:10px 0 0 10px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.name }} |</span>
:key="index" <span style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.mobile }} |</span>
> <span style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.age }}岁|</span>
<p <span style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.gender }} |</span>
@click="getResumeData(item.resumeId, item.uid)" <span style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.workYears }}年 |</span>
style="margin-top:10px" <span style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.degree }} |</span>
> <span style="color:#000000;width:28%;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer">{{ item.expectedTitle }}</span>
<span
style="color:#000000;margin:10px 0 0 10px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.name }} |</span
>
<span
style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.mobile }} |</span
>
<span
style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.age }}岁|</span
>
<span
style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.gender }} |</span
>
<span
style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.workYears }}年 |</span
>
<span
style="color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.degree }} |</span
>
<span
style="color:#000000;width:28%;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap; cursor:pointer"
>{{ item.expectedTitle }}</span
>
</p> </p>
<p style="margin-top:0px;color:Grey"> <p style="margin-top:0px;color:Grey">
<span style="color:Grey;margin:5px 0 0 10px;display:inline-block" <span style="color:Grey;margin:5px 0 0 10px;display:inline-block">{{ item.createTime }}入库|</span>
>{{ item.createTime }}入库|</span
>
<span>{{ item.creator }}</span> <span>{{ item.creator }}</span>
</p> </p>
<Button <Button type="primary" style="margin:-55px 0 0 83%;width:60px;z-index:99" @click="delateONEModal(item.resumeId)">删除</Button>
type="primary"
style="margin:-55px 0 0 83%;width:60px;z-index:99"
@click="delateONEModal(item.resumeId)"
>删除</Button
>
</div> </div>
</div> </div>
</div> </div>
...@@ -168,34 +82,15 @@ ...@@ -168,34 +82,15 @@
</p> </p>
<div style="width:100%;float:left;"> <div style="width:100%;float:left;">
<div style="margin:0 auto;width:860px"> <div style="margin:0 auto;width:860px">
<div <div class="personalInformation" v-show="JSON.stringify(resume) !== '{}'">
class="personalInformation"
v-show="JSON.stringify(resume) !== '{}'"
>
<p class="bestmessage"> <p class="bestmessage">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png" style="height:16px;width:23px;vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style="height:16px;width:23px;vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">基本信息</span>
>基本信息</span <span style="float:right;width:50px;height:24px;margin-right:5px"><Button type="primary" size="small" style="width:50px;height:24px" @click="downloadONE(downloadId)">下载</Button></span>
>
<span style="float:right;width:50px;height:24px;margin-right:5px"
><Button
type="primary"
size="small"
style="width:50px;height:24px"
@click="downloadONE(downloadId)"
>下载</Button
></span
>
</p> </p>
<div class="personalInformation-left"> <div class="personalInformation-left">
<p style="margin-top:20px"> <p style="margin-top:20px">姓名:{{ resume && resume.ownerName }}</p>
姓名:{{ resume && resume.ownerName }}
</p>
<p>联系电话:{{ resume && resume.ownerMobile }}</p> <p>联系电话:{{ resume && resume.ownerMobile }}</p>
<p>电子邮箱:{{ resume && resume.email }}</p> <p>电子邮箱:{{ resume && resume.email }}</p>
<p>所在地:{{ resume && resume.locationCity }}</p> <p>所在地:{{ resume && resume.locationCity }}</p>
...@@ -204,45 +99,27 @@ ...@@ -204,45 +99,27 @@
<p>期望职位:{{ resume && resume.expectTitles }}</p> <p>期望职位:{{ resume && resume.expectTitles }}</p>
</div> </div>
<div class="personalInformation-right"> <div class="personalInformation-right">
<p style="margin-top:20px"> <p style="margin-top:20px">年龄:{{ resume && resume.ownerAge }}</p>
年龄:{{ resume && resume.ownerAge }}
</p>
<p>职位:{{ resume && resume.ownerExpectTitles }}</p> <p>职位:{{ resume && resume.ownerExpectTitles }}</p>
<p>学历:{{ resume && resume.ownerHighestDegree }}</p> <p>学历:{{ resume && resume.ownerHighestDegree }}</p>
<p>经验:{{ resume && resume.workYearsOriginal }}</p> <p>经验:{{ resume && resume.workYearsOriginal }}</p>
<p style="margin-top:30px"> <p style="margin-top:30px">期望薪资:{{ resume && resume.expectSalary }}</p>
期望薪资:{{ resume && resume.expectSalary }}
</p>
<p>期望地区:{{ resume && resume.city }}</p> <p>期望地区:{{ resume && resume.city }}</p>
</div> </div>
</div> </div>
<div class="workExperience" v-show="roList.length !== 0"> <div class="workExperience" v-show="roList.length !== 0">
<p class="bestmessage"> <p class="bestmessage">
<span> <span> <img img src="http://xyqbui.lkbang.net/image/icon_%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%8E%86_20_18px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
img
src="http://xyqbui.lkbang.net/image/icon_%E5%B7%A5%E4%BD%9C%E7%BB%8F%E5%8E%86_20_18px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">工作经历</span>
>工作经历</span
>
</p> </p>
<div <div class="workExperience-detail" v-for="(item, index) in roList" :key="index">
class="workExperience-detail"
v-for="(item, index) in roList"
:key="index"
>
<div class="workExperience-top"> <div class="workExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startTime }}-{{ item.endTime }}</span>
>{{ item.startTime }}-{{ item.endTime }}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span ><span
>{{ item.company >{{ item.company }}<span>({{ item.workTime }})</span></span
}}<span>({{ item.workTime }})</span></span
></span ></span
> >
<span style="float:right;margin-right:30px"> <span style="float:right;margin-right:30px">
...@@ -251,9 +128,7 @@ ...@@ -251,9 +128,7 @@
</span> </span>
</p> </p>
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="float:right;margin-right:30px">{{ <span style="float:right;margin-right:30px">{{ item.department }}</span>
item.department
}}</span>
</p> </p>
</div> </div>
<div class="workExperience-bottom">{{ item.desc }}</div> <div class="workExperience-bottom">{{ item.desc }}</div>
...@@ -262,27 +137,15 @@ ...@@ -262,27 +137,15 @@
<div class="projectExperience" v-show="rpList.length !== 0"> <div class="projectExperience" v-show="rpList.length !== 0">
<p class="bestmessage"> <p class="bestmessage">
<span> <span>
<img <img src="http://xyqbui.lkbang.net/image/icon_%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86_20_20px.png" style="height:14px;width:19px; vertical-align: middle;margin-top:-4px;margin-left:2px"
src="http://xyqbui.lkbang.net/image/icon_%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86_20_20px.png"
style="height:14px;width:19px; vertical-align: middle;margin-top:-4px;margin-left:2px"
/></span> /></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">项目经历</span>
>项目经历</span
>
</p> </p>
<div <div class="projectExperience-detail" v-for="(item, index) in rpList" :key="index">
class="projectExperience-detail"
v-for="(item, index) in rpList"
:key="index"
>
<div class="projectExperience-top"> <div class="projectExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{ item.endMonth }}</span>
>{{ item.startYear }}/{{ item.startMonth }}-{{
item.endYear
}}/{{ item.endMonth }}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span>{{ item.name }}<span></span></span ><span>{{ item.name }}<span></span></span
></span> ></span>
...@@ -296,28 +159,14 @@ ...@@ -296,28 +159,14 @@
</div> </div>
<div class="internshipExperience" v-show="riList.length !== 0"> <div class="internshipExperience" v-show="riList.length !== 0">
<p class="bestmessage"> <p class="bestmessage">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E5%AE%9E%E4%B9%A0%E7%BB%8F%E5%8E%86_21_18px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E5%AE%9E%E4%B9%A0%E7%BB%8F%E5%8E%86_21_18px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">实习经历</span>
>实习经历</span
>
</p> </p>
<div <div class="internshipExperience-detail" v-for="(item, index) in riList" :key="index">
class="internshipExperience-detail"
v-for="(item, index) in riList"
:key="index"
>
<div class="internshipExperience-top"> <div class="internshipExperience-top">
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="margin-left:30px" <span style="margin-left:30px">{{ item.startYear }}/{{ item.startMonth }}-{{ item.endYear }}/{{ item.endMonth }}</span>
>{{ item.startYear }}/{{ item.startMonth }}-{{
item.endYear
}}/{{ item.endMonth }}</span
>
<span style="margin-left:18px" <span style="margin-left:18px"
><span>{{ item.company }}<span></span></span ><span>{{ item.company }}<span></span></span
></span> ></span>
...@@ -326,9 +175,7 @@ ...@@ -326,9 +175,7 @@
</span> </span>
</p> </p>
<p style="height:28px;line-height:28px;font-size:14px;"> <p style="height:28px;line-height:28px;font-size:14px;">
<span style="float:right;margin-right:30px">{{ <span style="float:right;margin-right:30px">{{ item.title }}</span>
item.title
}}</span>
</p> </p>
</div> </div>
<div class="internshipExperience-bottom">{{ item.desc }}</div> <div class="internshipExperience-bottom">{{ item.desc }}</div>
...@@ -336,28 +183,14 @@ ...@@ -336,28 +183,14 @@
</div> </div>
<div class="educationalExperience" v-show="reList.length !== 0"> <div class="educationalExperience" v-show="reList.length !== 0">
<p class="bestmessage"> <p class="bestmessage">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E6%95%99%E8%82%B2%E7%BB%8F%E5%8E%86_26_20px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E6%95%99%E8%82%B2%E7%BB%8F%E5%8E%86_26_20px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">教育经历</span>
>教育经历</span
>
</p> </p>
<div <div class="educationalExperience-detail" v-for="(item, index) in reList" :key="index">
class="educationalExperience-detail"
v-for="(item, index) in reList"
:key="index"
>
<div class="educationalExperience-content"> <div class="educationalExperience-content">
<div class="educationalExperience-left"> <div class="educationalExperience-left">
<p style="line-height:25px;margin-top:20px"> <p style="line-height:25px;margin-top:20px">{{ item.school }}(({{ item.startYear }}.{{ item.startMonth }}-{{ item.endYear }}.{{ item.endMonth }}))</p>
{{ item.school }}(({{ item.startYear }}.{{
item.startMonth
}}-{{ item.endYear }}.{{ item.endMonth }}))
</p>
<p style="margin-top:20px;">专业:{{ item.major }}</p> <p style="margin-top:20px;">专业:{{ item.major }}</p>
</div> </div>
<div class="educationalExperience-right"> <div class="educationalExperience-right">
...@@ -368,15 +201,9 @@ ...@@ -368,15 +201,9 @@
</div> </div>
<div class="Self-evaluation" v-show="JSON.stringify(resume) !== '{}'"> <div class="Self-evaluation" v-show="JSON.stringify(resume) !== '{}'">
<p class="bestmessage"> <p class="bestmessage">
<span> <span> <img src="http://xyqbui.lkbang.net/image/icon_%E8%87%AA%E6%88%91%E8%AF%84%E4%BB%B7_18_18px.png" style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"/></span>
<img
src="http://xyqbui.lkbang.net/image/icon_%E8%87%AA%E6%88%91%E8%AF%84%E4%BB%B7_18_18px.png"
style="height:16px;width:23px; vertical-align: middle;margin-top:-4px"
/></span>
<span style="margin-left:7px;font-size:16px;color:#0092FF" <span style="margin-left:7px;font-size:16px;color:#0092FF">自我评价</span>
>自我评价</span
>
</p> </p>
<div class="evaluation-content"> <div class="evaluation-content">
{{ resume && resume.selfEvaluate }} {{ resume && resume.selfEvaluate }}
...@@ -388,82 +215,76 @@ ...@@ -388,82 +215,76 @@
</div> </div>
</template> </template>
<script> <script>
import { import { getuploadNumber, uploadfile, serchList, serchRESUMEdetail, deleteREsumeUPLOad } from '../../api/upload.server';
getuploadNumber, import { sapi } from '../../config';
uploadfile, import { uploadFile } from '../../service/ajax';
serchList,
serchRESUMEdetail,
deleteREsumeUPLOad
} from "../../api/upload.server";
import { sapi } from "../../config";
import { uploadFile } from "../../service/ajax";
export default { export default {
data() { data() {
return { return {
uploadList: [], uploadList: [],
dataList: [], dataList: [],
fileName: "", fileName: '',
ajaxData: [], ajaxData: [],
delateARRALL: [], delateARRALL: [],
replaceArr: [], replaceArr: [],
downloadId: "", downloadId: '',
pageIndex: 1, pageIndex: 1,
pageSize: 30, pageSize: 30,
isReplace: true, isReplace: true,
newArr: [], newArr: [],
replaceName: "", replaceName: '',
searchInfo: { searchInfo: {
pageSize: 30, pageSize: 30,
pageIndex: 1 pageIndex: 1,
}, },
Sid: "", Sid: '',
single: true, single: true,
checkboxList: [], checkboxList: [],
filetile: "上传中请稍后...", filetile: '上传中请稍后...',
totalSize: null, totalSize: null,
uploadModal: false, uploadModal: false,
accept: ".doc,.docx,.pdf", accept: '.doc,.docx,.pdf',
fileSize: 2048, fileSize: 2048,
progressStatus: { progressStatus: {
0: "active", 0: 'active',
2: "wrong", 2: 'wrong',
1: "wrong" 1: 'wrong',
}, },
files: null, files: null,
activeT: false, activeT: false,
change: false, change: false,
massage: "", massage: '',
Massage: "", Massage: '',
Code: "", Code: '',
action: `${sapi}/api/resume/upload`, action: `${sapi}/api/resume/upload`,
batchNum: "", batchNum: '',
modal3: false, modal3: false,
modal1: false, modal1: false,
modal2: false, modal2: false,
modal6: false, modal6: false,
Filename: "", Filename: '',
uploadNUmber: "", uploadNUmber: '',
// uploadList:[], // uploadList:[],
a: [], a: [],
files: null, files: null,
b: "", b: '',
uploadFile: [], uploadFile: [],
resume: {}, // 简历基本详情 resume: {}, // 简历基本详情
riList: [], // 实习经历列表 riList: [], // 实习经历列表
roList: [], // 工作经历列表 roList: [], // 工作经历列表
rpList: [], // 项目经历列表 rpList: [], // 项目经历列表
reList: [], // 教育经历列表 reList: [], // 教育经历列表
serchID: "" serchID: '',
}; };
}, },
methods: { methods: {
handleChange(e) { handleChange(e) {
this.fileName = ""; this.fileName = '';
this.dataList = []; this.dataList = [];
const files = e.target.files; const files = e.target.files;
this.files = e.target.files; this.files = e.target.files;
for (const key in files) { for (const key in files) {
if (key != "length" && key != "item") { if (key != 'length' && key != 'item') {
const file = files[key]; const file = files[key];
const temp = { const temp = {
name: file.name, name: file.name,
...@@ -472,10 +293,10 @@ export default { ...@@ -472,10 +293,10 @@ export default {
type: file.type, type: file.type,
size: file.size, size: file.size,
title: null, title: null,
status: "active" status: 'active',
}; };
this.dataList.push(temp); this.dataList.push(temp);
this.fileName += files[key].name + ";"; this.fileName += files[key].name + ';';
} }
} }
if (!files) { if (!files) {
...@@ -486,44 +307,44 @@ export default { ...@@ -486,44 +307,44 @@ export default {
uploadBtn() { uploadBtn() {
if (this.dataList.length < 1) { if (this.dataList.length < 1) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "请您选择文件在上传", desc: '请您选择文件在上传',
duration: 2 duration: 2,
}); });
return; return;
} }
if (this.dataList.length > 20) { if (this.dataList.length > 20) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "批量上传文件不能大于20份", desc: '批量上传文件不能大于20份',
duration: 2 duration: 2,
}); });
this.$refs.input.value = ""; this.$refs.input.value = '';
this.fileName = ""; this.fileName = '';
this.dataList = []; this.dataList = [];
return; return;
} }
if (this.handleMaxSize()) { if (this.handleMaxSize()) {
this.$Notice.error({ this.$Notice.error({
title: "提示", title: '提示',
desc: "单份文件不能大于2MB", desc: '单份文件不能大于2MB',
duration: 2 duration: 2,
}); });
this.$refs.input.value = ""; this.$refs.input.value = '';
this.fileName = ""; this.fileName = '';
this.dataList = []; this.dataList = [];
return; return;
} }
this.uploadModal = true; this.uploadModal = true;
this.filetile = "上传中请稍后..."; this.filetile = '上传中请稍后...';
uploadFile({ uploadFile({
headers: this.headers, headers: this.headers,
data: this.dataList, data: this.dataList,
batchNum: this.batchNum, batchNum: this.batchNum,
action: this.action, action: this.action,
batchNum: this.batchNum, batchNum: this.batchNum,
appendName: "batchNum", appendName: 'batchNum',
appendFile: "recFile", appendFile: 'recFile',
onProgress: e => { onProgress: e => {
setTimeout(() => { setTimeout(() => {
this.handleProgress(e); this.handleProgress(e);
...@@ -537,7 +358,7 @@ export default { ...@@ -537,7 +358,7 @@ export default {
}, },
onError: (err, response) => { onError: (err, response) => {
this.handleError(err, response, this.files); this.handleError(err, response, this.files);
} },
}); });
}, },
handleProgress(e) { handleProgress(e) {
...@@ -548,16 +369,14 @@ export default { ...@@ -548,16 +369,14 @@ export default {
selectfile(data, name) { selectfile(data, name) {
this.replaceName = name; this.replaceName = name;
if (data == false) { if (data == false) {
this.replaceArr = this.replaceArr.filter( this.replaceArr = this.replaceArr.filter(item => item !== this.replaceName);
item => item !== this.replaceName
);
} else { } else {
this.replaceArr.push(this.replaceName); this.replaceArr.push(this.replaceName);
} }
}, },
handleSuccess(res, files) { handleSuccess(res, files) {
const data = res.body; const data = res.body;
this.filetile = "上传完成"; this.filetile = '上传完成';
for (const key in data) { for (const key in data) {
const code = data[key].code; const code = data[key].code;
this.Code = data[key].code; this.Code = data[key].code;
...@@ -570,7 +389,7 @@ export default { ...@@ -570,7 +389,7 @@ export default {
if (key == item.name) { if (key == item.name) {
item.title = this.Massage; item.title = this.Massage;
if (item.Code == 2) { if (item.Code == 2) {
progressStatus = { 2: "wrong" }; progressStatus = { 2: 'wrong' };
} }
item.status = this.progressStatus[code]; item.status = this.progressStatus[code];
item.Code = this.Code; item.Code = this.Code;
...@@ -594,12 +413,12 @@ export default { ...@@ -594,12 +413,12 @@ export default {
}, },
closeModal() { closeModal() {
this.uploadModal = false; this.uploadModal = false;
this.$refs.input.value = ""; this.$refs.input.value = '';
this.dataList = []; this.dataList = [];
// this.replaceArr = [] // this.replaceArr = []
this.fileName = ""; this.fileName = '';
this.activeT = false; this.activeT = false;
this.filetile = "上传中请稍后..."; this.filetile = '上传中请稍后...';
this.serchlist(); this.serchlist();
}, },
// 下载单条简历 // 下载单条简历
...@@ -623,7 +442,7 @@ export default { ...@@ -623,7 +442,7 @@ export default {
}, },
// 查询记录列表 // 查询记录列表
serchlist(page) { serchlist(page) {
page = typeof page === "number" ? page : 1; page = typeof page === 'number' ? page : 1;
this.searchInfo.pageIndex = page; this.searchInfo.pageIndex = page;
this.pageIndex = page; this.pageIndex = page;
const parmars = { const parmars = {
...@@ -631,8 +450,8 @@ export default { ...@@ -631,8 +450,8 @@ export default {
pageIndex: this.searchInfo.pageIndex, pageIndex: this.searchInfo.pageIndex,
parameter: { parameter: {
batchNum: this.batchNum, batchNum: this.batchNum,
replaceFileNameList: this.replaceArr replaceFileNameList: this.replaceArr,
} },
}; };
serchList(parmars).then(res => { serchList(parmars).then(res => {
if (res.data.success == true) { if (res.data.success == true) {
...@@ -649,8 +468,7 @@ export default { ...@@ -649,8 +468,7 @@ export default {
item.expectedTitle = item.expectedTitle; item.expectedTitle = item.expectedTitle;
item.status = item.status; item.status = item.status;
item.uid = item.uid; item.uid = item.uid;
item.creator = item.creator = item.creator == '' ? item.creator : item.creator.split('_')[0];
item.creator == "" ? item.creator : item.creator.split("_")[0];
item.createTime = item.createTime; item.createTime = item.createTime;
return item; return item;
}); });
...@@ -661,7 +479,7 @@ export default { ...@@ -661,7 +479,7 @@ export default {
getResumeData(sid, Uid) { getResumeData(sid, Uid) {
this.downloadId = sid; this.downloadId = sid;
const parmars = { const parmars = {
uid: Uid uid: Uid,
}; };
serchRESUMEdetail(parmars).then(res => { serchRESUMEdetail(parmars).then(res => {
this.resume = res.data.body.resume; this.resume = res.data.body.resume;
...@@ -687,16 +505,16 @@ export default { ...@@ -687,16 +505,16 @@ export default {
this.roList = []; this.roList = [];
this.rpList = []; this.rpList = [];
this.reList = []; this.reList = [];
this.downloadId = ""; this.downloadId = '';
this.serchlist(); this.serchlist();
} }
}); });
} },
}, },
async mounted() { async mounted() {
await this.getnumber(); await this.getnumber();
this.serchlist(); this.serchlist();
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
import Vue from "vue"; import Vue from 'vue';
import Router from "vue-router"; import Router from 'vue-router';
const home = r => const home = r => require.ensure([], () => r(require('@/components/home.vue')), 'home');
require.ensure([], () => r(require("@/components/home.vue")), "home");
// const changepsd = r => require.ensure([], () => r(require('@/components/changepsd.vue')), 'changepsd'); // const changepsd = r => require.ensure([], () => r(require('@/components/changepsd.vue')), 'changepsd');
const login = r => const login = r => require.ensure([], () => r(require('@/page/login/login.vue')), 'login');
require.ensure([], () => r(require("@/page/login/login.vue")), "login"); const update = r => require.ensure([], () => r(require('@/page/login/update.vue')), 'update');
const update = r => const pdfdetail = r => require.ensure([], () => r(require('@/page/resume/pdfdetail.vue')), 'pdfdetail');
require.ensure([], () => r(require("@/page/login/update.vue")), "update"); const resumeDetail = r => require.ensure([], () => r(require('@/page/resume/resumeDetail.vue')), 'resumeDetail');
const pdfdetail = r => const interview = r => require.ensure([], () => r(require('@/page/interview/interview.vue')), 'interview');
require.ensure( const allResume = r => require.ensure([], () => r(require('@/page/resume/allResume.vue')), 'allResume');
[], const channel = r => require.ensure([], () => r(require('@/page/resume/channel.vue')), 'channel');
() => r(require("@/page/resume/pdfdetail.vue")), const account = r => require.ensure([], () => r(require('@/page/system/account.vue')), 'account');
"pdfdetail" const emailMange = r => require.ensure([], () => r(require('@/page/system/emailMange.vue')), 'emailMange');
); const QRcode = r => require.ensure([], () => r(require('@/page/system/QRcode.vue')), 'QRcode');
const resumeDetail = r => const upload = r => require.ensure([], () => r(require('@/page/upload/upload.vue')), 'upload');
require.ensure( const sweepCode = r => require.ensure([], () => r(require('@/page/sweepCode/sweepCode.vue')), 'sweepCode');
[], const editor = r => require.ensure([], () => r(require('@/components/editor.vue')), 'editor');
() => r(require("@/page/resume/resumeDetail.vue")), const getimage = r => require.ensure([], () => r(require('@/components/getimage.vue')), 'getimage');
"resumeDetail"
);
const interview = r =>
require.ensure(
[],
() => r(require("@/page/interview/interview.vue")),
"interview"
);
const allResume = r =>
require.ensure(
[],
() => r(require("@/page/resume/allResume.vue")),
"allResume"
);
const channel = r =>
require.ensure([], () => r(require("@/page/resume/channel.vue")), "channel");
const account = r =>
require.ensure([], () => r(require("@/page/system/account.vue")), "account");
const emailMange = r =>
require.ensure(
[],
() => r(require("@/page/system/emailMange.vue")),
"emailMange"
);
const QRcode = r =>
require.ensure([], () => r(require("@/page/system/QRcode.vue")), "QRcode");
const upload = r =>
require.ensure([], () => r(require("@/page/upload/upload.vue")), "upload");
const sweepCode = r =>
require.ensure(
[],
() => r(require("@/page/sweepCode/sweepCode.vue")),
"sweepCode"
);
const editor = r =>
require.ensure([], () => r(require("@/components/editor.vue")), "editor");
const getimage = r =>
require.ensure([], () => r(require("@/components/getimage.vue")), "getimage");
// z注释 // z注释
Vue.use(Router); Vue.use(Router);
export default new Router({ export default new Router({
mode: "history", mode: 'history',
routes: [ routes: [
{ {
path: "/", path: '/',
redirect: "/home" redirect: '/home',
}, },
{ {
path: "/login", path: '/login',
name: "login", name: 'login',
component: login, component: login,
meta: { meta: {
allowBack: false allowBack: false,
} },
}, },
{ {
path: "/sweepCode", path: '/sweepCode',
name: "sweepCode", name: 'sweepCode',
component: sweepCode component: sweepCode,
}, },
{ {
path: "/update", path: '/update',
name: "update", name: 'update',
component: update component: update,
}, },
{ {
path: "/getimage", path: '/getimage',
name: "getimage", name: 'getimage',
component: getimage component: getimage,
}, },
{ {
path: "/resumeDetail", path: '/resumeDetail',
name: "resumeDetail", name: 'resumeDetail',
component: resumeDetail component: resumeDetail,
}, },
{ {
path: "/pdfdetail", path: '/pdfdetail',
name: "pdfdetail", name: 'pdfdetail',
component: pdfdetail component: pdfdetail,
}, },
{ {
path: "/editor", path: '/editor',
name: "editor", name: 'editor',
component: editor component: editor,
}, },
{ {
path: "/home", path: '/home',
name: "home", name: 'home',
component: home, component: home,
children: [ children: [
{ {
path: "/interview", path: '/interview',
name: "interview", name: 'interview',
component: interview component: interview,
}, },
{ {
path: "/allResume", path: '/allResume',
name: "allResume", name: 'allResume',
component: allResume component: allResume,
}, },
{ {
path: "/channel/:channelname", path: '/channel/:channelname',
name: "channel", name: 'channel',
component: channel component: channel,
}, },
{ {
path: "/account", path: '/account',
name: "account", name: 'account',
component: account component: account,
}, },
{ {
path: "/emailMange", path: '/emailMange',
name: "emailMange", name: 'emailMange',
component: emailMange component: emailMange,
}, },
{ {
path: "/QRcode", path: '/QRcode',
name: "QRcode", name: 'QRcode',
component: QRcode component: QRcode,
}, },
{ {
path: "/upload", path: '/upload',
name: "upload", name: 'upload',
component: upload component: upload,
} },
] ],
} },
] ],
}); });
// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js // https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js
import axios from "./http.service.js"; import axios from './http.service.js';
function getError(action, option, xhr) { function getError(action, option, xhr) {
const msg = `fail to post ${action} ${xhr.status}'`; const msg = `fail to post ${action} ${xhr.status}'`;
const err = new Error(msg); const err = new Error(msg);
err.status = xhr.status; err.status = xhr.status;
err.method = "post"; err.method = 'post';
err.url = action; err.url = action;
return err; return err;
} }
...@@ -34,11 +34,10 @@ export function uploadFile(option) { ...@@ -34,11 +34,10 @@ export function uploadFile(option) {
.post(action, formData, { .post(action, formData, {
onUploadProgress: function(progressEvent) { onUploadProgress: function(progressEvent) {
if (progressEvent.total > 0) { if (progressEvent.total > 0) {
progressEvent.percent = progressEvent.percent = (progressEvent.loaded / progressEvent.total) * 100;
(progressEvent.loaded / progressEvent.total) * 100;
} }
option.onProgress(progressEvent); option.onProgress(progressEvent);
} },
}) })
.then(res => { .then(res => {
option.onSuccess(res.data); option.onSuccess(res.data);
...@@ -48,7 +47,7 @@ export function uploadFile(option) { ...@@ -48,7 +47,7 @@ export function uploadFile(option) {
}); });
} }
export default function upload(option) { export default function upload(option) {
if (typeof XMLHttpRequest === "undefined") { if (typeof XMLHttpRequest === 'undefined') {
return; return;
} }
...@@ -86,15 +85,15 @@ export default function upload(option) { ...@@ -86,15 +85,15 @@ export default function upload(option) {
option.onSuccess(getBody(xhr)); option.onSuccess(getBody(xhr));
}; };
xhr.open("post", action, true); xhr.open('post', action, true);
if ("withCredentials" in xhr) { if ('withCredentials' in xhr) {
xhr.withCredentials = true; xhr.withCredentials = true;
} }
const headers = option.headers || {}; const headers = option.headers || {};
if (headers["X-Requested-With"] !== null) { if (headers['X-Requested-With'] !== null) {
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
} }
for (const item in headers) { for (const item in headers) {
......
import Cookie from "js-cookie"; import Cookie from 'js-cookie';
export default { export default {
set: function(name, value) { set: function(name, value) {
...@@ -9,5 +9,5 @@ export default { ...@@ -9,5 +9,5 @@ export default {
}, },
remove: function(name) { remove: function(name) {
Cookie.remove(name); Cookie.remove(name);
} },
}; };
import axios from "axios"; import axios from 'axios';
import Promise from "./promise.service.js"; import Promise from './promise.service.js';
import { Notice } from "iview"; import { Notice } from 'iview';
import Vue from "vue"; import Vue from 'vue';
import router from "../router/index.js"; import router from '../router/index.js';
import store from "../store"; import store from '../store';
var instance = axios.create({}); var instance = axios.create({});
instance.defaults.timeout = 3600000; instance.defaults.timeout = 3600000;
instance.defaults.withCredentials = true; instance.defaults.withCredentials = true;
instance.defaults.headers.post["Content-Type"] = instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
"application/x-www-form-urlencoded"; instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest';
instance.defaults.headers["X-Requested-With"] = "XMLHttpRequest";
let needLoadingRequestCount = 0; let needLoadingRequestCount = 0;
function startLoading() { function startLoading() {
store.state.loading = true; store.state.loading = true;
...@@ -34,22 +33,16 @@ function tryHideFullScreenLoading() { ...@@ -34,22 +33,16 @@ function tryHideFullScreenLoading() {
}, 200); }, 200);
} }
} }
const needLoading = [ const needLoading = ['resume/findListByQueryVO', 'sendMail/sendEmailTemplate', 'resume/forwardResume', 'interview/findListByQueryVO', 'resume/delete'];
"resume/findListByQueryVO",
"sendMail/sendEmailTemplate",
"resume/forwardResume",
"interview/findListByQueryVO",
"resume/delete"
];
instance.interceptors.request.use( instance.interceptors.request.use(
function(config) { function(config) {
// 在发送请求之前做些什么 // 在发送请求之前做些什么
if (!config.headers["Content-Type"]) { if (!config.headers['Content-Type']) {
config.headers["Content-Type"] = "application/x-www-form-urlencoded"; config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
} }
const url = config.url.split("api/")[1]; const url = config.url.split('api/')[1];
const headers = config.headers; const headers = config.headers;
if (headers.status != "init" && needLoading.includes(url)) { if (headers.status != 'init' && needLoading.includes(url)) {
showFullScreenLoading(); showFullScreenLoading();
} }
delete headers.status; delete headers.status;
...@@ -64,38 +57,37 @@ instance.interceptors.response.use( ...@@ -64,38 +57,37 @@ instance.interceptors.response.use(
function(response) { function(response) {
// 在发送请求之前做些什么 // 在发送请求之前做些什么
const errorInfo = { const errorInfo = {
900: "cookie已失效,请重新登录", 900: 'cookie已失效,请重新登录',
901: "", 901: '',
902: "您的账号已在其他地方登录,如不是您个人操作,请及时修改密码" 902: '您的账号已在其他地方登录,如不是您个人操作,请及时修改密码',
}; };
tryHideFullScreenLoading(); tryHideFullScreenLoading();
if (response.status >= 200 && response.status < 300) { if (response.status >= 200 && response.status < 300) {
const code = const code = (response.data && response.data.body && response.data.body.code) || '';
(response.data && response.data.body && response.data.body.code) || ""; if (code == '900' || code == '901' || code == '902') {
if (code == "900" || code == "901" || code == "902") { if (!store.state.cookieTips && code != '901') {
if (!store.state.cookieTips && code != "901") { store.dispatch('cookieTipsShow', true);
store.dispatch("cookieTipsShow", true);
Notice.error({ Notice.error({
render: h => { render: h => {
return h( return h(
"div", 'div',
{ {
style: { style: {
paddingRight: "5px", paddingRight: '5px',
fontSize: "14px", fontSize: '14px',
lineHeight: "20px", lineHeight: '20px',
color: "#17233d" color: '#17233d',
} },
}, },
errorInfo[code] errorInfo[code]
); );
} },
}); });
setTimeout(() => { setTimeout(() => {
store.dispatch("cookieTipsHide", false); store.dispatch('cookieTipsHide', false);
}, 2000); }, 2000);
} }
router.replace({ name: "login" }); router.replace({ name: 'login' });
} }
if (response.data.success) { if (response.data.success) {
return Promise.resolve(response); return Promise.resolve(response);
......
import localstorage from "./localstorage.service.js"; import localstorage from './localstorage.service.js';
export default { export default {
init: function(router) { init: function(router) {
router.beforeEach((to, form, next) => { router.beforeEach((to, form, next) => {
const token = localstorage.get("token"); const token = localstorage.get('token');
if ( if (to.meta && !to.meta.allowBack && window.history && window.history.pushState) {
to.meta &&
!to.meta.allowBack &&
window.history &&
window.history.pushState
) {
// 登录页面不能后退 // 登录页面不能后退
history.pushState(null, null, document.URL); history.pushState(null, null, document.URL);
} }
if ( if (to.name == 'login' || to.name == 'update' || to.name == 'sweepCode' || to.name == 'resumeDetail' || to.name == 'pdfdetail') {
to.name == "login" ||
to.name == "update" ||
to.name == "sweepCode" ||
to.name == "resumeDetail" ||
to.name == "pdfdetail"
) {
next(); next();
return; return;
} }
...@@ -28,5 +17,5 @@ export default { ...@@ -28,5 +17,5 @@ export default {
} }
next(); next();
}); });
} },
}; };
...@@ -7,5 +7,5 @@ export default { ...@@ -7,5 +7,5 @@ export default {
}, },
remove: function(name) { remove: function(name) {
window.localStorage.removeItem(name); window.localStorage.removeItem(name);
} },
}; };
module.exports = require("es6-promise"); module.exports = require('es6-promise');
...@@ -43,61 +43,61 @@ export function emailValidata(rule, value, callback) { ...@@ -43,61 +43,61 @@ export function emailValidata(rule, value, callback) {
const field = rule.field; const field = rule.field;
const reg = rule.pattern; const reg = rule.pattern;
switch (field) { switch (field) {
case "receiveEmail": case 'receiveEmail':
if (!value) { if (!value) {
this.tip = true; this.tip = true;
this.isDisable = false; this.isDisable = false;
callback(new Error("收件人不能为空")); callback(new Error('收件人不能为空'));
} else if (rule.pattern && !rule.pattern.test(value)) { } else if (rule.pattern && !rule.pattern.test(value)) {
this.tip = true; this.tip = true;
this.isDisable = false; this.isDisable = false;
callback(new Error("请输入正确收件人地址")); callback(new Error('请输入正确收件人地址'));
} else { } else {
this.tip = false; this.tip = false;
this.isDisable = true; this.isDisable = true;
callback(); callback();
} }
break; break;
case "theme": case 'theme':
if (!value) { if (!value) {
this.isDisable = false; this.isDisable = false;
callback(new Error("主题能为空")); callback(new Error('主题能为空'));
} else { } else {
this.isDisable = true; this.isDisable = true;
callback(); callback();
} }
break; break;
case "copyname": case 'copyname':
if (value && reg && !reg.test(value)) { if (value && reg && !reg.test(value)) {
this.isDisable = false; this.isDisable = false;
callback(new Error("请输入正确抄送地址")); callback(new Error('请输入正确抄送地址'));
} else { } else {
this.isDisable = true; this.isDisable = true;
callback(); callback();
} }
break; break;
case "UpdateOWER": case 'UpdateOWER':
if (!value) { if (!value) {
this.isDisable = false; this.isDisable = false;
callback(new Error("邀约人不能为空")); callback(new Error('邀约人不能为空'));
} else { } else {
this.isDisable = true; this.isDisable = true;
callback(); callback();
} }
break; break;
case "UpdateTIME": case 'UpdateTIME':
if (!value) { if (!value) {
this.isDisable = false; this.isDisable = false;
callback(new Error("面试时间不能为空")); callback(new Error('面试时间不能为空'));
} else { } else {
this.isDisable = true; this.isDisable = true;
callback(); callback();
} }
break; break;
case "UpdateVIEW": case 'UpdateVIEW':
if (!value) { if (!value) {
this.isDisable = false; this.isDisable = false;
callback(new Error("面试官不能为空")); callback(new Error('面试官不能为空'));
} else { } else {
this.isDisable = true; this.isDisable = true;
callback(); callback();
...@@ -111,15 +111,14 @@ export function emailValidata(rule, value, callback) { ...@@ -111,15 +111,14 @@ export function emailValidata(rule, value, callback) {
export const emailRule = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/; export const emailRule = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/;
export function vidte(rule, value, callback) { export function vidte(rule, value, callback) {
if (this.emailMassage == true) { if (this.emailMassage == true) {
callback(new Error("你尚未选择简历,请先选择简历")); callback(new Error('你尚未选择简历,请先选择简历'));
} else if (this.allEmailVilitor == true) { } else if (this.allEmailVilitor == true) {
callback(new Error("不能选择多份简历,请选择单份简历")); callback(new Error('不能选择多份简历,请选择单份简历'));
} else { } else {
callback(); callback();
} }
} }
export function validator(rule, value, callback) { export function validator(rule, value, callback) {
if (!value) if (!value) this.$Notice.warning({ title: '提示', desc: '请输入您要通知的面试官' });
this.$Notice.warning({ title: "提示", desc: "请输入您要通知的面试官" });
callback(); callback();
} }
// // action.js // // action.js
import * as types from "./muationsType"; import * as types from './muationsType';
const action = { const action = {
cookieTipsShow({ commit }, value) { cookieTipsShow({ commit }, value) {
commit(types.COOKIE_SHOW, value); commit(types.COOKIE_SHOW, value);
...@@ -12,6 +12,6 @@ const action = { ...@@ -12,6 +12,6 @@ const action = {
}, },
clearInterviewee({ commit }, value) { clearInterviewee({ commit }, value) {
commit(types.CLEAR_INTERVIEWEE, value); commit(types.CLEAR_INTERVIEWEE, value);
} },
}; };
export default action; export default action;
import Vuex from "vuex"; import Vuex from 'vuex';
import Vue from "vue"; import Vue from 'vue';
import mutations from "./mutations.js"; import mutations from './mutations.js';
import actions from "./actions.js"; import actions from './actions.js';
Vue.use(Vuex); Vue.use(Vuex);
...@@ -9,10 +9,10 @@ const state = { ...@@ -9,10 +9,10 @@ const state = {
cookieTips: false, cookieTips: false,
interviewee: [], interviewee: [],
channelInterviewee: [], channelInterviewee: [],
loading: false loading: false,
}; };
export default new Vuex.Store({ export default new Vuex.Store({
mutations, mutations,
actions, actions,
state state,
}); });
export const COOKIE_SHOW = "COOKIE_SHOW"; export const COOKIE_SHOW = 'COOKIE_SHOW';
export const COOKIE_HIDE = "COOKIE_HIDE"; export const COOKIE_HIDE = 'COOKIE_HIDE';
export const ADD_INTERVIEWEE = "ADD_INTERVIEWEE"; export const ADD_INTERVIEWEE = 'ADD_INTERVIEWEE';
export const REMOVE_INTERVIEWEE = "REMOVE_INTERVIEWEE"; export const REMOVE_INTERVIEWEE = 'REMOVE_INTERVIEWEE';
export const CLEAR_INTERVIEWEE = "CLEAR_INTERVIEWEE"; export const CLEAR_INTERVIEWEE = 'CLEAR_INTERVIEWEE';
import { import { COOKIE_SHOW, COOKIE_HIDE, ADD_INTERVIEWEE, REMOVE_INTERVIEWEE, CLEAR_INTERVIEWEE } from './muationsType';
COOKIE_SHOW,
COOKIE_HIDE,
ADD_INTERVIEWEE,
REMOVE_INTERVIEWEE,
CLEAR_INTERVIEWEE
} from "./muationsType";
export default { export default {
[COOKIE_SHOW](state, value) { [COOKIE_SHOW](state, value) {
state.cookieTips = value || true; state.cookieTips = value || true;
...@@ -15,7 +9,7 @@ export default { ...@@ -15,7 +9,7 @@ export default {
[ADD_INTERVIEWEE](state, object) { [ADD_INTERVIEWEE](state, object) {
let flag = false; let flag = false;
const data = object.data; const data = object.data;
if (object.type == "channel") { if (object.type == 'channel') {
console.log(data); console.log(data);
state.channelInterviewee.map(item => { state.channelInterviewee.map(item => {
if (data && item.id == data.id) { if (data && item.id == data.id) {
...@@ -38,7 +32,7 @@ export default { ...@@ -38,7 +32,7 @@ export default {
}, },
[REMOVE_INTERVIEWEE](state, object) { [REMOVE_INTERVIEWEE](state, object) {
const data = object.data; const data = object.data;
if (object.type == "channel") { if (object.type == 'channel') {
state.channelInterviewee.map((item, index) => { state.channelInterviewee.map((item, index) => {
if (data && item.id == data.id) { if (data && item.id == data.id) {
state.channelInterviewee.splice(index, 1); state.channelInterviewee.splice(index, 1);
...@@ -54,11 +48,11 @@ export default { ...@@ -54,11 +48,11 @@ export default {
}, },
[CLEAR_INTERVIEWEE](state, object) { [CLEAR_INTERVIEWEE](state, object) {
const type = object.type; const type = object.type;
if (type == "channel") { if (type == 'channel') {
state.channelInterviewee = []; state.channelInterviewee = [];
console.log("==="); console.log('===');
} else { } else {
state.interviewee = []; state.interviewee = [];
} }
} },
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment