Commit 680dfdeb authored by 郝聪敏's avatar 郝聪敏

添加eslint

parent c4c3cb8f
/build/
/config/
/dist/
/*.js
node_modules/*
build/*
config/*
dist/*
lib/*
static/*
\ No newline at end of file
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
parser: 'babel-eslint',
},
env: {
browser: true,
},
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
extends: ['plugin:vue/essential', 'airbnb-base'],
// required to lint *.vue files
extends: [
'plugin:vue/essential',
'standard',
],
plugins: [
'vue'
'vue',
],
// check if imports actually resolve
settings: {
'import/resolver': {
webpack: {
config: 'build/webpack.base.conf.js'
}
}
},
// add your custom rules here
rules: {
// don't require .vue extension when importing
'import/extensions': ['error', 'always', {
js: 'never',
vue: 'never'
}],
// disallow reassignment of function parameters
// disallow parameter object manipulation except for specific exclusions
'no-param-reassign': ['error', {
props: true,
ignorePropertyModificationsFor: [
'state', // for vuex state
'acc', // for reduce accumulators
'e' // for e.returnvalue
]
}],
// allow optionalDependencies
'import/no-extraneous-dependencies': ['error', {
optionalDependencies: ['test/unit/index.js']
}],
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'global-require': 'off',
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// 防止iview的标签报错
"vue/no-parsing-error": [1, { "x-invalid-end-tag": false }],
"linebreak-style": 0,
'indent': [0, 2],
"comma-dangle": 0,
"semi": 0,
"max-len": 0,
"no-tabs": 0,
"no-mixed-spaces-and-tabs": 0,
"eol-last": 0,
"key-spacing": 0
}
"vue/no-parsing-error": [2, { "x-invalid-end-tag": false }],
},
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -7,7 +7,7 @@
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"lint": "eslint --fix --cache --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
......@@ -28,7 +28,7 @@
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-eslint": "^8.2.6",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
......@@ -39,13 +39,17 @@
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^4.15.0",
"eslint": "^5.16.0",
"eslint-config-airbnb-base": "^11.3.0",
"eslint-config-standard": "^14.1.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-import-resolver-webpack": "^0.8.3",
"eslint-loader": "^1.7.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-vue": "^4.0.0",
"eslint-loader": "^1.9.0",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-node": "^10.0.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"eslint-plugin-vue": "^6.0.1",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
......@@ -69,7 +73,8 @@
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
"webpack-merge": "^4.1.0",
"husky": "^3.1.0"
},
"engines": {
"node": ">= 6.0.0",
......@@ -79,5 +84,10 @@
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
],
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
}
}
\ No newline at end of file
......@@ -5,21 +5,21 @@
</template>
<script>
window.onload = function() {
  document.addEventListener('touchstart', function(event) {
    if (event.touches.length > 1) {
      event.preventDefault()
    }
  })
  document.addEventListener('gesturestart', function(event) {
    event.preventDefault()
  })
window.onload = function () {
document.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault()
}
})
document.addEventListener('gesturestart', function (event) {
event.preventDefault()
})
}
export default {
name: 'App',
data() {
data () {
return {
appClass: 'pc',
appClass: 'pc'
}
},
created: function () {
......@@ -27,7 +27,7 @@ export default {
this.appClass = 'mobile'
}
}
};
}
</script>
<style>
......@@ -46,8 +46,7 @@ export default {
-khtml-user-select: text !important; /*早期浏览器*/
-moz-user-select: text !important; /*火狐*/
-ms-user-select: text !important; /*IE10*/
user-select: text !important;
user-select: text !important;
}
.pc {
......@@ -59,28 +58,28 @@ export default {
min-width: unset;
min-height: unset;
}
::-webkit-scrollbar
{
width: 8px;
height: 8px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: #Eff4f6;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #BDBDBD;
}
::-webkit-scrollbar
{
width: 8px;
height: 8px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: #Eff4f6;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #BDBDBD;
}
/* .ivu-btn-primary{
background: #0092FF!important
} */
......
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
// 获取个人信息
export function getpersonMassage(params) {
export function getpersonMassage (params) {
// params=qs.stringify(params)
return axios.get(`${sapi}/api/login/me`,params,{headers: {
'Content-Type':'application/json'
}})
return axios.get(`${sapi}/api/login/me`, params, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 用户退出
export function loginOUT() {
export function loginOUT () {
// params=qs.stringify(params)
return axios.get(`${sapi}/api/login/logout`,{headers: {
'Content-Type':'application/json'
}})
return axios.get(`${sapi}/api/login/logout`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//通过某一来源查询简历信息
export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`,parmars,{headers: {
'Content-Type':'application/json'
}})
// 通过某一来源查询简历信息
export function adoptOneSeeResumeList (parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
//通过渠道机简历信息
export function getChannelMassage() {
return axios.get(`${sapi}/api/resume/getSourceList`,{headers: {
'Content-Type':'application/json'
}})
// 通过渠道机简历信息
export function getChannelMassage () {
return axios.get(`${sapi}/api/resume/getSourceList`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 判断是否为超级管理员
export function judeAdmin() {
return axios.get(`${sapi}/api/user/isAdmin`,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
export function judeAdmin () {
return axios.get(`${sapi}/api/user/isAdmin`, {
headers: {
'Content-Type': 'application/json'
}
})
}
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
// 更改约面信息
export function changeinterviewMassage(parmars) {
return axios.post(`${sapi}/api/resumeInterview/update`,parmars,{headers: {
'Content-Type':'application/json;',
}})
export function changeinterviewMassage (parmars) {
return axios.post(`${sapi}/api/resumeInterview/update`, parmars, {
headers: {
'Content-Type': 'application/json;'
}
})
}
// 重启面试
export function oppenInterview(tid,tstatus) {
console.log(tid,tstatus)
return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`,{headers: {
'Content-Type':'application/json;',
}})
export function oppenInterview (tid, tstatus) {
console.log(tid, tstatus)
return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`, {
headers: {
'Content-Type': 'application/json;'
}
})
}
// 终止面试
export function SInterview(tid) {
return axios.post(`${sapi}/api/resumeFlow/end/${tid}`,{headers: {
'Content-Type':'application/json;',
}})
export function SInterview (tid) {
return axios.post(`${sapi}/api/resumeFlow/end/${tid}`, {
headers: {
'Content-Type': 'application/json;'
}
})
}
// 面试管理查询
export function SerchList(parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json;',
'X-Requested-With':'XMLHttpRequest',
status
}})
export function SerchList (parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`, parmars, {
headers: {
'Content-Type': 'application/json;',
'X-Requested-With': 'XMLHttpRequest',
status
}
})
}
//查看简历详情页
// 查看简历详情页
export function seedetail (parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`,{headers: {
'Content-Type':'application/json'
}})
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//面试官查询
export function Serchinterviewor() {
return axios.get(`${sapi}/api/interview/findInterviewerList`)
// 面试官查询
export function Serchinterviewor () {
return axios.get(`${sapi}/api/interview/findInterviewerList`)
}
//邀约人查询
export function SerchInvitationOwer() {
return axios.post(`${sapi}/api/interview/findInviterList`,{headers: {
'Content-Type':'application/json;',
}})
// 邀约人查询
export function SerchInvitationOwer () {
return axios.post(`${sapi}/api/interview/findInviterList`, {
headers: {
'Content-Type': 'application/json;'
}
})
}
//新增约面信息
export function NewAddInterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`,parmars,{headers: {
'Content-Type':'application/json;',
}})
// 新增约面信息
export function NewAddInterview (parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: {
'Content-Type': 'application/json;'
}
})
}
// 查询记录
export function recodeLIST (parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`,{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 变更状态
export function changestatus (tid,tstatus) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`,{headers: {
'Content-Type':'application/json'
}})
export function changestatus (tid, tstatus) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 获取终止面试前的前一个状态
export function formstatus (parmars) {
return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
//登录
export function login(params) {
// params=qs.stringify(params)
return axios.post(`${sapi}/api/login/doLogin`,params,{headers: {
'Content-Type':'application/json'
}})
// 登录
export function login (params) {
// params=qs.stringify(params)
return axios.post(`${sapi}/api/login/doLogin`, params, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 修改密码
export function updatePsd (params) {
// params=qs.stringify(params)
return axios.post(`${sapi}/api/login/modifyPassword`, params, {
headers: {
'Content-Type': 'application/json'
}
})
}
//修改密码
export function updatePsd(params) {
// params=qs.stringify(params)
return axios.post(`${sapi}/api/login/modifyPassword`,params,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
// 查询简历列表
export function serchList(parmars){
return axios.post(`${sapi}/api/resume/findList`,parmars,{headers: {
'Content-Type':'application/json'
}})
export function serchList (parmars) {
return axios.post(`${sapi}/api/resume/findList`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 下载简历(单条)
export function downloadone (parmars) {
parmars=qs.stringify(parmars)
return axios.post(`${sapi}/api/resumeFile/download/formatted/one`,parmars,{headers: {
'Content-Type':'application/x-www-form-urlencoded'
}})
parmars = qs.stringify(parmars)
return axios.post(`${sapi}/api/resumeFile/download/formatted/one`, parmars, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
// 搜索
export function sousuoList (parmars, status) {
return axios.post(`${sapi}/api/resume/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json',
status
}})
return axios.post(`${sapi}/api/resume/findListByQueryVO`, parmars, {
headers: {
'Content-Type': 'application/json',
status
}
})
}
//查看简历详情页
// 查看简历详情页
export function seedetail (parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`,{headers: {
'Content-Type':'application/json'
}})
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 简历pass
export function PASS (parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,'',{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
headers: {
'Content-Type': 'application/json'
}
})
}
//待处理
// 待处理
export function TODORes (parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,'',{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
headers: {
'Content-Type': 'application/json'
}
})
}
// 备选
export function OPTION (parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,'',{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', {
headers: {
'Content-Type': 'application/json'
}
})
}
// 删除简历
export function deleteREsume (deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`,JSON.stringify(deleteallArr),{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: {
'Content-Type': 'application/json'
}
})
}
// 单条下载简历
export function downloadOne (parmars) {
return axios.get(`${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`,{headers: {
// 'Content-Type':'application/x-www-form-urlencoded'
}})
return axios.get(`${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`, {
headers: {
// 'Content-Type':'application/x-www-form-urlencoded'
}
})
}
// 批量下载简历
export function downloadALL () {
return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`,{headers: {
'Content-Type':'application/x-www-form-urlencoded'
}})
return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
// 导出列表
export function exportLIST (parmars) {
return axios.get(`${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: {
'Content-Type':'application/json'
}})
return axios.get(`${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: {
'Content-Type': 'application/json'
}
})
}
// 操作记录
export function recodeLIST (parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`,{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//通过某一来源查询简历信息
export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`,parmars,{headers: {
'Content-Type':'application/json'
}})
// 通过某一来源查询简历信息
export function adoptOneSeeResumeList (parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 新增约面信息
export function addinterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`,parmars,{headers: {
'Content-Type':'application/json'
}})
export function addinterview (parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 修改流程状态
export function updatastatus(parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,{headers: {
'Content-Type':'application/json'
}})
}
//获取邮件模板
export function getEmailMoo() {
return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`,{headers: {
'Content-Type':'application/json'
}})
}
//根据获取id邮件模板内容
export function getEmailContent(parmars) {
return axios.post(`${sapi}/api/emailTemplate/loadTemplate`,parmars,{headers: {
'Content-Type':'application/json'
}})
}
//上传图片
export function uploadimage() {
return axios.get(`${sapi}/api/ckeditor/uploadImage`,{headers: {
'Content-Type':'application/json'
}})
export function updatastatus (parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 获取邮件模板
export function getEmailMoo () {
return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 根据获取id邮件模板内容
export function getEmailContent (parmars) {
return axios.post(`${sapi}/api/emailTemplate/loadTemplate`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 上传图片
export function uploadimage () {
return axios.get(`${sapi}/api/ckeditor/uploadImage`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 发送邮件
export function sendEmail(parmars) {
return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`,parmars,{headers: {
'Content-Type':'multipart/form-data',
// 'Content-Disposition':'multipart/form-data'
// 'Content-Type':'application/json'
}})
export function sendEmail (parmars) {
return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`, parmars, {
headers: {
'Content-Type': 'multipart/form-data'
// 'Content-Disposition':'multipart/form-data'
// 'Content-Type':'application/json'
}
})
}
export function findCompanyEmailByKey(key) { //公司通讯录
return axios.get(`${sapi}/api/companyEmail/findCompanyEmailByKey?key=${key}`)
export function findCompanyEmailByKey (key) { // 公司通讯录
return axios.get(`${sapi}/api/companyEmail/findCompanyEmailByKey?key=${key}`)
}
// 转发邮箱通知
export function forwardResume(params) {
return axios.post(`${sapi}/api/resume/forwardResume`,params, {headers: {
'Content-Type':'application/json'
}})
export function forwardResume (params) {
return axios.post(`${sapi}/api/resume/forwardResume`, params, {
headers: {
'Content-Type': 'application/json'
}
})
}
export function getPdf(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`,{
export function getPdf (parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`, {
responseType: 'arraybuffer',
headers: {
'Content-Type':'application/json'
'Content-Type': 'application/json'
}
})
}
// 是否展示原件的PDF
export function isShowPDF(parmars) {
return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, {headers: {
'Content-Type':'application/json'
}})
}
export function getpdfUrl(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, {headers: {
'Content-Type':'application/json'
}})
}
//获取职位列表
export function getlist(parmars) {
return axios.get(`${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`, {headers: {
'Content-Type':'application/json'
}})
}
export function isShowPDF (parmars) {
return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
export function getpdfUrl (parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 获取职位列表
export function getlist (parmars) {
return axios.get(`${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
//账号列表查询
export function queryaccountList(params) {
return axios.post(`${sapi}/api/user/findList`,params,{headers: {
'Content-Type':'application/json;',
}})
// 账号列表查询
export function queryaccountList (params) {
return axios.post(`${sapi}/api/user/findList`, params, {
headers: {
'Content-Type': 'application/json;'
}
})
}
//添加账户
// 添加账户
export function addAccount (params) {
return axios.post(`${sapi}/api/user/add`,params,{headers: {
'Content-Type':'application/json'
}})
return axios.post(`${sapi}/api/user/add`, params, {
headers: {
'Content-Type': 'application/json'
}
})
}
//删除单条账户
export function Delateaccount(parmars){
return axios.get(`${sapi}/api/user/delete/${parmars.id}`,{headers: {
'Content-Type':'application/json',
}})
// 删除单条账户
export function Delateaccount (parmars) {
return axios.get(`${sapi}/api/user/delete/${parmars.id}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//批量删除
export function delateAllAccount(DelateARR){
return axios.post(`${sapi}//api/user/delete`,JSON.stringify(DelateARR),{headers: {
'Content-Type':'application/json',
}})
// 批量删除
export function delateAllAccount (DelateARR) {
return axios.post(`${sapi}//api/user/delete`, JSON.stringify(DelateARR), {
headers: {
'Content-Type': 'application/json'
}
})
}
//恢复初始密码
export function recoveryPassword(parmars){
return axios.post(`${sapi}/api/user/initial/${parmars.id}`,{headers: {
'Content-Type':'application/json',
}})
// 恢复初始密码
export function recoveryPassword (parmars) {
return axios.post(`${sapi}/api/user/initial/${parmars.id}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//查询邮箱列表
export function queryemailList(parmars){
return axios.post(`${sapi}/api/email/list`,parmars,{headers: {
'Content-Type':'application/json',
}})
// 查询邮箱列表
export function queryemailList (parmars) {
return axios.post(`${sapi}/api/email/list`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 同步邮箱
export function Synchronization(parmars){
return axios.post(`${sapi}/api/email/bindAndSync`,parmars,{headers: {
'Content-Type':'application/json'
}})
export function Synchronization (parmars) {
return axios.post(`${sapi}/api/email/bindAndSync`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 解绑邮箱
export function jiebangEmail(id){
return axios.post(`${sapi}/api/email/unbind/${id}`,{headers: {
'Content-Type':'application/x-www-form-urlencoded'
}})
export function jiebangEmail (id) {
return axios.post(`${sapi}/api/email/unbind/${id}`, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
// 修改邮箱并重新绑定
export function updateemailTWO(parmars){
return axios.post(`${sapi}/api/email/modify`,parmars,{headers: {
'Content-Type':'application/json'
}})
}
export function updateemailTWO (parmars) {
return axios.post(`${sapi}/api/email/modify`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 批量解绑邮箱
export function UntyingAll(UntyingAllARR){
return axios.post(`${sapi}/api/email/unbind/batch`,JSON.stringify(UntyingAllARR),{headers: {
'Content-Type':'application/json'
}})
export function UntyingAll (UntyingAllARR) {
return axios.post(`${sapi}/api/email/unbind/batch`, JSON.stringify(UntyingAllARR), {
headers: {
'Content-Type': 'application/json'
}
})
}
// 获取二维码
export function getErcode(){
return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`,{headers: {
'Content-Type':'application/json',
}})
export function getErcode () {
return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// //修改账户
export function updateAccount(parmars){
return axios.post(`${sapi}/api/user/modify/${parmars.id}`,parmars,{headers: {
'Content-Type':'application/json',
}})
}
\ No newline at end of file
export function updateAccount (parmars) {
return axios.post(`${sapi}/api/user/modify/${parmars.id}`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
// 提交应聘登记表
export function submitMassage(params) {
export function submitMassage (params) {
// params=qs.stringify(params)
return axios.post(`${sapi}/api/interview/arrive`,params,{headers: {
'Content-Type':'application/json' }})
}
\ No newline at end of file
return axios.post(`${sapi}/api/interview/arrive`, params, {
headers: { 'Content-Type': 'application/json' }
})
}
import axios from '../service/http.service'
import {
sapi
sapi
} from '../config'
import qs from 'qs'
// 获取上传批次号
export function getuploadNumber() {
export function getuploadNumber () {
// params=qs.stringify(params)
return axios.get(`${sapi}/api/resume/upload/batchNum`,{headers: {
'Content-Type':'application/json'
}})
return axios.get(`${sapi}/api/resume/upload/batchNum`, {
headers: {
'Content-Type': 'application/json'
}
})
}
//上传文件
export function uploadfile(parmars) {
return axios.post(`${sapi}/api/resume/upload`,parmars,{headers: {
// 'Content-Type':'multipart/form-data',
processData : false,
contentType : false,
async: false,
}})
// 上传文件
export function uploadfile (parmars) {
return axios.post(`${sapi}/api/resume/upload`, parmars, {
headers: {
// 'Content-Type':'multipart/form-data',
processData: false,
contentType: false,
async: false
}
})
}
// 查询上传列表记录
export function serchList(parmars) {
return axios.post(`${sapi}/api/resume/upload/history`,parmars,{headers: {
'Content-Type':'application/json',
}})
export function serchList (parmars) {
return axios.post(`${sapi}/api/resume/upload/history`, parmars, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 查询简历详情
export function serchRESUMEdetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`,{headers: {
'Content-Type':'application/json',
}})
export function serchRESUMEdetail (parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: {
'Content-Type': 'application/json'
}
})
}
// 查询简历详情
export function deleteREsumeUPLOad(deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`,JSON.stringify(deleteallArr),{headers: {
'Content-Type':'application/json',
}})
export function deleteREsumeUPLOad (deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: {
'Content-Type': 'application/json'
}
})
}
......@@ -4,73 +4,73 @@
</div>
</template>
<script type="text/ecmascript-6">
import CKEDITOR from 'CKEDITOR';
export default {
name: 'ckeditor',
props: {
height: {
default: '400px'
},
width: {
default: '100%'
},
color: {
default: '#ffffff'
},
uploadUrl: {
require: true,
default: ''
},
tokenUrl: {
default: ''
},
value: {
require: true,
default: ''
}
import CKEDITOR from 'CKEDITOR'
export default {
name: 'ckeditor',
props: {
height: {
default: '400px'
},
data() {
return {
isInit: false
};
width: {
default: '100%'
},
watch: {
value:{
deep: true,
immediate:true,
handler(value) {
this.isInit&&this.editor.setData(value.value)
}
}
color: {
default: '#ffffff'
},
mounted() {
this.init()
uploadUrl: {
require: true,
default: ''
},
beforeDestroy() {
tokenUrl: {
default: ''
},
methods: {
init () {
CKEDITOR.replace('editor', {
height: this.height,
width: this.width,
uiColor: this.color,
lang: 'zh-cn',
filebrowserImageUploadUrl: this.uploadUrl,
filebrowserUploadMethod: 'form'
});
this.editor = CKEDITOR.instances.editor;
setTimeout(()=> {
this.isInit = true
}, 1000)
},
getValue(){
return this.editor.getData()
value: {
require: true,
default: ''
}
},
data () {
return {
isInit: false
}
},
watch: {
value: {
deep: true,
immediate: true,
handler (value) {
this.isInit && this.editor.setData(value.value)
}
}
},
mounted () {
this.init()
},
beforeDestroy () {
},
methods: {
init () {
CKEDITOR.replace('editor', {
height: this.height,
width: this.width,
uiColor: this.color,
lang: 'zh-cn',
filebrowserImageUploadUrl: this.uploadUrl,
filebrowserUploadMethod: 'form'
})
this.editor = CKEDITOR.instances.editor
setTimeout(() => {
this.isInit = true
}, 1000)
},
components: {}
};
getValue () {
return this.editor.getData()
}
},
components: {}
}
</script>
<style lang="less" rel="stylesheet/less" scoped>
</style>
\ No newline at end of file
</style>
......@@ -6,8 +6,8 @@
<editor @getValue='getInfo' :uploadUrl='uploadUrl' :value='value' height='400px'></editor>
<div slot='footer'>
<Button @click='getInfo'>获取内容</Button>
</div>
</div>
</Modal>
<Form ref="formInline" :model="formInline" :rules="ruleInline" inline>
<FormItem prop="user">
......@@ -26,67 +26,74 @@
</Form>
</div>
</template>
<script>
import editor from './ckeditor.vue'
import {sapi} from '../config/index.js'
import localStorage from '../service/localstorage.service.js'
export default {
data () {
return {
modal: true,
fullscreen: true,
content: '<h2>I am Example</h2>',
content1: '<h2>I am Example</h2>',
uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
value: '22',
editorOption: {
// some quill options
},
formInline: {
user: '',
password: ''
},
ruleInline: {
user: [
{ required: false, message: 'Please fill in the user name', trigger: 'blur', pattern:/^1[3456789]\d{9}$/, validator: function(rule, value, call){
console.log(rule, value)
return call(new Error()) } }
],
password: [
{ required: true, message: 'Please fill in the password.', trigger: 'blur' },
{ type: 'string', min: 6, message: 'The password length cannot be less than 6 bits', trigger: 'blur' }
]
}
}
},
watch:{},
components: {
editor
},
// manually control the data synchronization
// 如果需要手动控制数据同步,父组件需要显式地处理changed事件
methods: {
getInfo(value) {
console.log(value)
},
handleSubmit(name) {
// this.$refs[name].validate((valid) => {
// if (valid) {
// this.$Message.success('Success!');
// } else {
// this.$Message.error('Fail!');
// }
// })
this.$refs[name].validateField('user', (error) => {
console.log('------', error)
})
}
<script>
import editor from './ckeditor.vue'
import { sapi } from '../config/index.js'
import localStorage from '../service/localstorage.service.js'
export default {
data () {
return {
modal: true,
fullscreen: true,
content: '<h2>I am Example</h2>',
content1: '<h2>I am Example</h2>',
uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
value: '22',
editorOption: {
// some quill options
},
computed: {
formInline: {
user: '',
password: ''
},
mounted() {
ruleInline: {
user: [
{
required: false,
message: 'Please fill in the user name',
trigger: 'blur',
pattern: /^1[3456789]\d{9}$/,
validator: function (rule, value, call) {
console.log(rule, value)
return call(new Error())
}
}
],
password: [
{ required: true, message: 'Please fill in the password.', trigger: 'blur' },
{ type: 'string', min: 6, message: 'The password length cannot be less than 6 bits', trigger: 'blur' }
]
}
}
</script>
\ No newline at end of file
},
watch: {},
components: {
editor
},
// manually control the data synchronization
// 如果需要手动控制数据同步,父组件需要显式地处理changed事件
methods: {
getInfo (value) {
console.log(value)
},
handleSubmit (name) {
// this.$refs[name].validate((valid) => {
// if (valid) {
// this.$Message.success('Success!');
// } else {
// this.$Message.error('Fail!');
// }
// })
this.$refs[name].validateField('user', (error) => {
console.log('------', error)
})
}
},
computed: {
},
mounted () {
}
}
</script>
......@@ -2,25 +2,24 @@
<div></div>
</template>
<script>
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : decodeURIComponent(context);
}
export default{
function GetQueryString (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
var r = window.location.search.substr(1).match(reg) // 获取url中"?"符后的字符串并正则匹配
var context = ''
if (r != null) { context = r[2] }
reg = null
r = null
return context == null || context == '' || context == 'undefined' ? '' : decodeURIComponent(context)
}
export default {
data () {
return {}
},
mounted() {
mounted () {
console.log(777)
window.parent.CKEDITOR.tools.callFunction(GetQueryString("CKEditorFuncNum"),GetQueryString("ImageUrl"),GetQueryString("Message"))
window.parent.CKEDITOR.tools.callFunction(GetQueryString('CKEditorFuncNum'), GetQueryString('ImageUrl'), GetQueryString('Message'))
}
}
}
</script>
\ No newline at end of file
</script>
......@@ -38,261 +38,273 @@
</Row>
</template>
<script>
import {getpersonMassage,loginOUT,adoptOneSeeResumeList,getChannelMassage,judeAdmin} from '../api/home.server.js'
import { getpersonMassage, loginOUT, adoptOneSeeResumeList, 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{
data() {
return {
massage:'',
isAdmin: false,
arr:[],
biaoshi:'',
channelARR:[],
isadmin:'',
pageindex:0,
pageSize:10,
condition:'',
xiabiao:'',
itemSelect:'',
type:'',
levelOneName: '1',
levelTwoName: ['1-1', '2-1', '3-1', '4-1'],
levelThreeName: '1-1-1',
menuList: [
{ name: '1',
item: '简历管理',
loadMenu: true,
child: [
{
name: '1-1',
item: '全部管理',
import { mapState } from 'vuex'
export default {
data () {
return {
massage: '',
isAdmin: false,
arr: [],
biaoshi: '',
channelARR: [],
isadmin: '',
pageindex: 0,
pageSize: 10,
condition: '',
xiabiao: '',
itemSelect: '',
type: '',
levelOneName: '1',
levelTwoName: ['1-1', '2-1', '3-1', '4-1'],
levelThreeName: '1-1-1',
menuList: [
{
name: '1',
item: '简历管理',
loadMenu: true,
child: [
{
name: '1-1',
item: '全部管理',
icon: 'ios-apps-outline',
child: [
{
name: '1-1-1',
item:'全部简历',
route: '/allResume'
}
]
},
{ name: '1-2',
item: '渠道简历',
icon: 'ios-list',
child: []
}]
child: [
{
name: '1-1-1',
item: '全部简历',
route: '/allResume'
}
]
},
{ name: '2',
item: '面试管理',
{
name: '1-2',
item: '渠道简历',
icon: 'ios-list',
child: []
}]
},
{
name: '2',
item: '面试管理',
child: [
{
name: '2-1',
item: '面试管理',
icon: 'ios-paper-outline',
child: [
{ name: '2-1',
item: '面试管理',
icon: 'ios-paper-outline',
child: [
{ name: '2-1-1',
item:'全部简历',
route: '/interview'
}]
}]
},
{ name: '3',
item: '上传简历',
child: [{
name: '3-1',
item: '上传简历',
icon: 'ios-cloud-upload-outline',
child: [
{ name: '3-1-1',
item:'上传简历',
route: '/upload'
}]
}]
},
{ name: '4',
item: '系统管理',
isAdmin: true,
child: [{
name: '4-1',
item: '账户管理',
icon: 'ios-contact-outline',
show: true,
child: [{
name: '4-1-1',
item:'账户管理',
route: '/account'
}]
},
{ name: '4-2',
item: '邮箱管理',
icon:'ios-mail-outline',
child: [{
name: '4-2-1',
item:'邮箱管理',
route: '/emailMange'
}]},
{ name: '4-3',
item: '二维码管理',
icon: 'ios-qr-scanner',
child: [
{ name: '4-3-1',
item:'二维码管理',
route: '/QRcode'
}]}
] },
],
childMenu: []
}
},
watch:{
$route(to,from){
if (to.params.fromInterview){
this.getActiveName()
{
name: '2-1-1',
item: '全部简历',
route: '/interview'
}]
}]
},
{
name: '3',
item: '上传简历',
child: [{
name: '3-1',
item: '上传简历',
icon: 'ios-cloud-upload-outline',
child: [
{
name: '3-1-1',
item: '上传简历',
route: '/upload'
}]
}]
},
{
name: '4',
item: '系统管理',
isAdmin: true,
child: [{
name: '4-1',
item: '账户管理',
icon: 'ios-contact-outline',
show: true,
child: [{
name: '4-1-1',
item: '账户管理',
route: '/account'
}]
},
{
name: '4-2',
item: '邮箱管理',
icon: 'ios-mail-outline',
child: [{
name: '4-2-1',
item: '邮箱管理',
route: '/emailMange'
}]
},
{
name: '4-3',
item: '二维码管理',
icon: 'ios-qr-scanner',
child: [
{
name: '4-3-1',
item: '二维码管理',
route: '/QRcode'
}]
}
]
}
],
childMenu: []
}
},
watch: {
$route (to, from) {
if (to.params.fromInterview) {
this.getActiveName()
}
},
computed: {
}
},
computed: {
...mapState({
showLoading: state => state.loading
})
},
components: {
},
components: {
loading
},
methods: {
go(name) {
this.levelThreeName = name
this.childMenu.map(par => {
par.child.map(child => {
if (child.name == name) {
this.$router.push(child.route)
}
})
},
methods: {
go (name) {
this.levelThreeName = name
this.childMenu.map(par => {
par.child.map(child => {
if (child.name == name) {
this.$router.push(child.route)
}
})
},
async selectMenu(name, refesh) {
// // refesh是否为刷新页面
this.levelOneName = name
const menus = this.menuList.filter(v => name === v.name)
this.childMenu = menus.length >0? menus[0].child : this.menuList[0].child
if (!refesh) { // 点击菜单默认展示第一个菜单
this.levelTwoName = []
let initName = this.getInitName(name, menus[0])
this.levelTwoName.push(initName.levelTwoName)
this.levelThreeName = initName.levelThreeName
}
if (menus[0].loadMenu) { // 简历管理模块需要加载渠道简历
await this.getChannelMenu()
})
},
async selectMenu (name, refesh) {
// // refesh是否为刷新页面
this.levelOneName = name
const menus = this.menuList.filter(v => name === v.name)
this.childMenu = menus.length > 0 ? menus[0].child : this.menuList[0].child
if (!refesh) { // 点击菜单默认展示第一个菜单
this.levelTwoName = []
const initName = this.getInitName(name, menus[0])
this.levelTwoName.push(initName.levelTwoName)
this.levelThreeName = initName.levelThreeName
}
if (menus[0].loadMenu) { // 简历管理模块需要加载渠道简历
await this.getChannelMenu()
}
if (refesh && this.$route.path.indexOf('channel') > -1) {
this.levelThreeName = this.$route.path.split('/')[2]
}
this.$nextTick(() => {
this.$refs.subMenu.updateOpened()
this.$refs.subMenu.updateActiveName()
})
this.go(this.levelThreeName)
},
// 获取个人信息
getmassage () {
getpersonMassage().then(res => {
this.massage = res.data.body && res.data.body.userName || ''
})
},
// 用户退出
loginOut () {
loginOUT().then(res => {
if (res.data.success == true) {
localstorage.remove('token')
localstorage.remove('isADMIN')
this.$router.replace('/login')
}
if (refesh&&this.$route.path.indexOf('channel') > -1) {
this.levelThreeName = this.$route.path.split('/')[2]
})
},
getChannelMenu () {
this.menuList[0].child[1].child = []
return getChannelMassage().then(res => {
if (res.data.status == false || !res.data.success) {
return
}
this.$nextTick(() => {
this.$refs.subMenu.updateOpened();
this.$refs.subMenu.updateActiveName();
})
this.go(this.levelThreeName)
},
// 获取个人信息
getmassage(){
getpersonMassage().then(res=>{
this.massage=res.data.body&&res.data.body.userName || ''
})
},
// 用户退出
loginOut(){
loginOUT().then(res=>{
if(res.data.success==true){
localstorage.remove('token')
localstorage.remove('isADMIN')
this.$router.replace('/login')
}
})
},
getChannelMenu(){
this.menuList[0].child[1].child = []
return getChannelMassage().then(res=>{
if (res.data.status == false || !res.data.success) {
return
}
this.channelARR=res.data.body || []
this.channelARR.map((item,index) => {
this.channelARR = res.data.body || []
this.channelARR.map((item, index) => {
var obj = {
name: `${item.sourceName}`,
item: item.sourceName,
route: `/channel/${item.sourceCode}?handUpload=${item.handUpload==null?'':item.handUpload}`
route: `/channel/${item.sourceCode}?handUpload=${item.handUpload == null ? '' : item.handUpload}`
}
this.menuList[0].child[1].child.push(obj)
})
})
},
getActiveName (change) {
let pathName = this.$route.path
if (pathName.indexOf('channel') > -1) {
this.levelOneName = '1'
this.levelThreeName = pathName.split('/')[2]
this.levelTwoName = []
this.levelTwoName.push('1-2')
this.selectMenu(this.levelOneName, 'refresh')
return
}
this.menuList.map(parent => {
parent.child.map(child => {
child.child.map(grandson => {
if (grandson.route == pathName) {
this.levelThreeName = grandson.name
this.levelOneName = parent.name
this.levelTwoName = []
this.levelTwoName.push(child.name)
}
})
})
})
})
},
getActiveName (change) {
const pathName = this.$route.path
if (pathName.indexOf('channel') > -1) {
this.levelOneName = '1'
this.levelThreeName = pathName.split('/')[2]
this.levelTwoName = []
this.levelTwoName.push('1-2')
this.selectMenu(this.levelOneName, 'refresh')
},
getInitName (name, menu, child) {
// 超级管理员
let isAdmin = menu.isAdmin
let hightMenu = {
levelTwoName: '',
levelThreeName: ''
}
if (isAdmin || isAdmin == undefined) { // 默认展示一级菜单
hightMenu.levelTwoName = menu.child[0].name
hightMenu.levelThreeName = menu.child[0].child[0].name
} else if(isAdmin == false){ //展示二级菜单
hightMenu.levelTwoName = menu.child[1].name
hightMenu.levelThreeName = menu.child[1].child[0].name
}
return hightMenu
},
// 判断是否为超级管理员
judgeadmin(){
judeAdmin().then(res=>{
this.isAdmin = res.data.body
this.menuList[3].isAdmin = this.isAdmin
})
},
goBack () {
this.getActiveName()
return
}
this.menuList.map(parent => {
parent.child.map(child => {
child.child.map(grandson => {
if (grandson.route == pathName) {
this.levelThreeName = grandson.name
this.levelOneName = parent.name
this.levelTwoName = []
this.levelTwoName.push(child.name)
}
})
})
})
this.selectMenu(this.levelOneName, 'refresh')
},
mounted() {
this.getmassage()
this.getActiveName()
this.judgeadmin()
if (window.history && window.history.pushState) {
history.pushState(null, null, document.URL);
window.addEventListener('popstate', this.goBack, false);
getInitName (name, menu, child) {
// 超级管理员
const isAdmin = menu.isAdmin
const hightMenu = {
levelTwoName: '',
levelThreeName: ''
}
if (isAdmin || isAdmin == undefined) { // 默认展示一级菜单
hightMenu.levelTwoName = menu.child[0].name
hightMenu.levelThreeName = menu.child[0].child[0].name
} else if (isAdmin == false) { // 展示二级菜单
hightMenu.levelTwoName = menu.child[1].name
hightMenu.levelThreeName = menu.child[1].child[0].name
}
return hightMenu
},
destroyed(){
window.removeEventListener('popstate', this.goBack, false);
// 判断是否为超级管理员
judgeadmin () {
judeAdmin().then(res => {
this.isAdmin = res.data.body
this.menuList[3].isAdmin = this.isAdmin
})
},
goBack () {
this.getActiveName()
}
},
mounted () {
this.getmassage()
this.getActiveName()
this.judgeadmin()
if (window.history && window.history.pushState) {
history.pushState(null, null, document.URL)
window.addEventListener('popstate', this.goBack, false)
}
},
destroyed () {
window.removeEventListener('popstate', this.goBack, false)
}
}
</script>
<style lang="less" scoped>
......
......@@ -20,7 +20,7 @@
</div>
</template>
<script>
export default{
export default {
name: 'loading',
props: {
width: {
......
const sapi = "http://recruitapi-ai3.liangkebang.net"
export {
sapi
}
\ No newline at end of file
const sapi = 'http://recruitapi-ai3.liangkebang.net'
export {
sapi
}
module.exports = process.env.NODE_ENV === 'production' ? require('./prod.config.js') : require('./env.config.js')
\ No newline at end of file
module.exports = process.env.NODE_ENV === 'production' ? require('./prod.config.js') : require('./env.config.js')
......@@ -2,4 +2,4 @@ const sapi = '//api.stantoo.com'
export {
sapi
}
\ No newline at end of file
}
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue';
import iView from 'iview';
import 'iview/dist/styles/iview.css';
import App from './App';
import router from './router';
import Vue from 'vue'
import { Notice } from iView from 'iview'
import 'iview/dist/styles/iview.css'
import App from './App'
import router from './router'
import initRouter from './service/init.service.js'
import 'vue-happy-scroll/docs/happy-scroll.css'
import {Notice} from 'iview'
import store from '../src/store'
Vue.use(iView);
Vue.use(iView)
Vue.use(Notice)
Vue.config.productionTip = false;
Vue.config.productionTip = false
initRouter.init(router)
/* eslint-disable no-new */
new Vue({
......@@ -19,5 +19,5 @@ new Vue({
router,
store,
components: { App },
template: '<App/>',
});
template: '<App/>'
})
......@@ -64,7 +64,7 @@
<option value="5" style="color:#2d8cf0">待offer</option>
<option value="6" style="color:#2d8cf0">已发offer</option>
<option value="8" style="color:#2d8cf0">未入职</option>
<option value="9" style="color:#2d8cf0">已入职</option>
<option value="9" style="color:#2d8cf0">已入职</option>
</select>
</span>
<span v-show="item.flowStatus=='END'" style="float:right;margin-right:10px;">
......@@ -78,10 +78,10 @@
<p style="color:Grey">{{item.modifyTime}}</p>
</div>
</div>
</div>
</div>
<div class="InpageBottom">
<Page :total="totalSize" show-elevator show-total @on-change="pageChange" @on-page-size-change="pageSizeChange" :current='pageIndex' :page-size='pageSize' style="text-align:center;margin-top:4px"></Page>
</div>
</div>
</div>
<div class="interview-right">
<Form :label-width="80" onsubmit="return false;" class='emailForm'>
......@@ -157,7 +157,7 @@
<span style="color:#0092FF" v-if=" item.afterState=='ARRIVED'">已到达</span>
</p>
</div>
</div>
<div style="height:30px;width:100%;text-align:center;margin-top:30px">
<Button type="primary" size='small' @click="recordModal=false">关闭</Button>
......@@ -230,528 +230,525 @@
</Modal>
</div>
</template>
<script>
<script>
import moment from 'moment'
import {changeinterviewMassage,SerchList,Serchinterviewor,SerchInvitationOwer,NewAddInterview,SInterview,oppenInterview,recodeLIST,changestatus,seedetail,formstatus} from '../../api/interview.server.js'
import {findCompanyEmailByKey} from '../../api/resume.server.js'
import { changeinterviewMassage, SerchList, Serchinterviewor, SerchInvitationOwer, NewAddInterview, SInterview, oppenInterview, recodeLIST, changestatus, seedetail, formstatus } from '../../api/interview.server.js'
import { findCompanyEmailByKey } from '../../api/resume.server.js'
export default {
data(){
return{
pageT:'',
statusValue: '0',
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur' }
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'date' }
],
UpdateVIEW: [
{ required: true,message: '面试官不能为空', trigger: 'blur' }
],
},
formInline:{
UpdateOWER:'',
UpdateTIME:'',
UpdateVIEW:''
},
recordModal:false,
modal2:false,
modal3:false,
modal4:false,
modal5:false,
interdeTailSta:"",
changestatuss:'',
spinShow:true,
Ishow:[],
aaaaa:'',
detailID:'',
nowstate:[{value:'已邀约',label:'已邀约'},{value:'邀约失败',label:'邀约失败'},{value:'面试淘汰',label:'面试淘汰'},{value:'待offer',label:'待offer'},{value:'已发offer',label:'已发offer'},{value:'待入职',label:'待入职'},{value:'未入职',label:'未入职'},{value:'已入职',label:'已入职'},],
keywords:'',
recordList:[],
oppenInterviewStatus:'TO_DO',
oppenInterviewID:'',
OPPeninterviewSTA:'',
toseename:'',
clickIndex1: 0,
clickIndex2: 0,
clickIndex3: 0,
// UpdateOWER:'',
// UpdateTIME:'',
// UpdateVIEW:'',
UpdateID:'',
options3: {
disabledDate (date) {
return date && date.valueOf() <Date.now()-3600*24*1000;
}
},
Interviewer:[],
Inviter:[],
stopinterviewID:'',
Interviewoperation:0,
UpdateOWERNEW:'',
UpdateTIMENEW:'',
UpdateVIEWNEW:'',
highestDegreeNum:'',
emailName:'',
flowStatusList:[],
inviterName:'',//邀约人
interviewerName:'',//面试官
changestatusSTATUS:'',
pageIndex:1,
pageSize:30,
totalSize:null,
searchInfo:{
pageSize:30,
pageIndex:1,
STA:[],
},
Education2:[{Num2:'',status2:'不限'},{Num2:"0",status2:'专科以下'},{Num2:'1',status2:'专科及以上'},{Num2:'2',status2:'本科及以上'},{Num2:'3',status2:'硕士及以上'},{Num2:'4',status2:'博士及以上'},{Num2:'99',status2:'985/211'}],
state:[{Num3:[],status3:'不限',sta:true},{Num3:'HAS_SEE',status3:'已邀约',sta:false},{Num3:'SEE_FAIL',status3:'邀约失败',sta:false},
{Num3:'INTERVIEW_FAIL',status3:'面试淘汰',sta:false},{Num3:'TO_SENT_OFFER',status3:'待Offer',sta:false},{Num3:'HAS_SENT_OFFER',status3:'已发offer',sta:false},{Num3:'HAS_ENTRY',status3:'已入职',sta:false},{Num3:'NO_ENTRY',status3:'未入职',sta:false},{Num3:'END',status3:'终止面试',sta:false},],
OPtionData:[{value:'0',label:'面试淘汰'}],
activeName:'',
Essentialinformation:[],
serchData:[],
serchData2:[],
options: [],
loading1: false
data () {
return {
pageT: '',
statusValue: '0',
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur' }
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'date' }
],
UpdateVIEW: [
{ required: true, message: '面试官不能为空', trigger: 'blur' }
]
},
formInline: {
UpdateOWER: '',
UpdateTIME: '',
UpdateVIEW: ''
},
recordModal: false,
modal2: false,
modal3: false,
modal4: false,
modal5: false,
interdeTailSta: '',
changestatuss: '',
spinShow: true,
Ishow: [],
aaaaa: '',
detailID: '',
nowstate: [{ value: '已邀约', label: '已邀约' }, { value: '邀约失败', label: '邀约失败' }, { value: '面试淘汰', label: '面试淘汰' }, { value: '待offer', label: '待offer' }, { value: '已发offer', label: '已发offer' }, { value: '待入职', label: '待入职' }, { value: '未入职', label: '未入职' }, { value: '已入职', label: '已入职' }],
keywords: '',
recordList: [],
oppenInterviewStatus: 'TO_DO',
oppenInterviewID: '',
OPPeninterviewSTA: '',
toseename: '',
clickIndex1: 0,
clickIndex2: 0,
clickIndex3: 0,
// UpdateOWER:'',
// UpdateTIME:'',
// UpdateVIEW:'',
UpdateID: '',
options3: {
disabledDate (date) {
return date && date.valueOf() < Date.now() - 3600 * 24 * 1000
}
},
Interviewer: [],
Inviter: [],
stopinterviewID: '',
Interviewoperation: 0,
UpdateOWERNEW: '',
UpdateTIMENEW: '',
UpdateVIEWNEW: '',
highestDegreeNum: '',
emailName: '',
flowStatusList: [],
inviterName: '', // 邀约人
interviewerName: '', // 面试官
changestatusSTATUS: '',
pageIndex: 1,
pageSize: 30,
totalSize: null,
searchInfo: {
pageSize: 30,
pageIndex: 1,
STA: []
},
Education2: [{ Num2: '', status2: '不限' }, { Num2: '0', status2: '专科以下' }, { Num2: '1', status2: '专科及以上' }, { Num2: '2', status2: '本科及以上' }, { Num2: '3', status2: '硕士及以上' }, { Num2: '4', status2: '博士及以上' }, { Num2: '99', status2: '985/211' }],
state: [{ Num3: [], status3: '不限', sta: true }, { Num3: 'HAS_SEE', status3: '已邀约', sta: false }, { Num3: 'SEE_FAIL', status3: '邀约失败', sta: false },
{ Num3: 'INTERVIEW_FAIL', status3: '面试淘汰', sta: false }, { Num3: 'TO_SENT_OFFER', status3: '待Offer', sta: false }, { Num3: 'HAS_SENT_OFFER', status3: '已发offer', sta: false }, { Num3: 'HAS_ENTRY', status3: '已入职', sta: false }, { Num3: 'NO_ENTRY', status3: '未入职', sta: false }, { Num3: 'END', status3: '终止面试', sta: false }],
OPtionData: [{ value: '0', label: '面试淘汰' }],
activeName: '',
Essentialinformation: [],
serchData: [],
serchData2: [],
options: [],
loading1: false
}
},
methods: {
// 变更状态
selectFn2 (e) {
if (e.target.value == 5) {
this.modal5 = true
}
},
methods: {
// 变更状态
selectFn2(e) {
if(e.target.value==5){
this.modal5=true
}
},
// 操作记录查询
RecordSEE(RID,sname){
this.toseename=sname
this.recordModal=true
let parmars={
resumeId:RID
}
recodeLIST(parmars).then(res=>{
this.ownerName=res.data.body.ownerName
this.recordList=res.data.body.map((item,index)=>{
item.ownerName=item.ownerName
item.approveUserName=item.approveUserName
item.dateTime=item.dateTime
item.previousState=item.previousState
item.afterState=item.afterState
return item
})
})
},
//更改面试信息弹出框
updateInterview(InterID,InterOWOR,InterTime,InterVIEW){
this.formInline.UpdateOWER=InterVIEW,
this.formInline.UpdateVIEW=InterOWOR,
this.formInline.UpdateTIME=InterTime,
this.UpdateID=InterID
this.modal2=true
},
selectTime(b){
this.UpdateTIME=b
},
//准备约面取消
StopInterview(){
this.status=status
this.modal2=false
},
//终止面试弹出框
Stopinterview(sid){
this.stopinterviewID=sid
this.modal3=true
},
//重启面试
OPPeninterview(tid,sta4){
this.oppenInterviewID=tid
let parmars={
resumeId:tid
}
formstatus(parmars).then(res=>{
if(res.data.success==true){
this.OPPeninterviewSTA=res.data.body.workFlow
}
})
this.modal4=true
},
//操作状态
UpdateStatus(LLL){
let STATUS=LLL;
if(this.STATUS=='终止面试'){
this.modal3=true
}
if(this.STATUS=='重启面试'){
this.modal4=true
}
},
// 更改约面信息
changeUpdate(){
let parmars={
resumeId:this.UpdateID,
inviterName:this.formInline.UpdateOWER,
seeTime:moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'),
interviewerName:this.formInline.UpdateVIEW,
email:this.emailName
}
if(this.formInline.UpdateOWER==''||this.formInline.UpdateTIME==""||this.formInline.UpdateVIEW==''){
this.$Notice.error({
title: '提示',
desc: '请您填写完整的约面信息'
});
return
}
changeinterviewMassage(parmars).then(res=>{
if(res.data.success==true){
this.formInline.UpdateTIME==""
this.formInline.UpdateVIEW==''
this.formInline.UpdateOWER==''
this.modal2=false;
this.Sousuo( this.pageT)
}
})
},
// 查询面试信息
serchListInterview(page,status) {
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
parameter:{
keywordString:'',
highestDegreeNum:'',
flowStatusList:[],
interviewerName:'',
inviterName:'',
}
}
SerchList(parmars,status).then(res=>{
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
this.Essentialinformation=res.data.body.items.map((item,index)=>{
item.id=item.id
item.flowStatus=item.flowStatus
item.interviewerName= item.interviewerName
item.inviterName=item.inviterName
item.modifier=item.modifier
item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0]
item.modifyTime=item.modifyTime
item.ownerExpectTitles=item.ownerExpectTitles
item.ownerMobile=item.ownerMobile
item.ownerName=item.ownerName
item.seeTime=item.seeTime
item.uid=item.uid
return item
})
}
})
},
// 面试官查询
SerchlistinterviewList(){
Serchinterviewor().then(res=>{
this.Interviewer=res.data.body
this.Interviewer.unshift('不限')
})
},
// 邀约人查询
SerchInvitation(){
SerchInvitationOwer().then(res=>{
if (!res.data.success) {
return
}
this.Inviter= res.data.body
this.Inviter.unshift('不限')
})
// 操作记录查询
RecordSEE (RID, sname) {
this.toseename = sname
this.recordModal = true
const parmars = {
resumeId: RID
}
recodeLIST(parmars).then(res => {
this.ownerName = res.data.body.ownerName
this.recordList = res.data.body.map((item, index) => {
item.ownerName = item.ownerName
item.approveUserName = item.approveUserName
item.dateTime = item.dateTime
item.previousState = item.previousState
item.afterState = item.afterState
return item
})
})
},
// 更改面试信息弹出框
updateInterview (InterID, InterOWOR, InterTime, InterVIEW) {
this.formInline.UpdateOWER = InterVIEW,
this.formInline.UpdateVIEW = InterOWOR,
this.formInline.UpdateTIME = InterTime,
this.UpdateID = InterID
this.modal2 = true
},
selectTime (b) {
this.UpdateTIME = b
},
// 准备约面取消
StopInterview () {
this.status = status
this.modal2 = false
},
// 终止面试弹出框
Stopinterview (sid) {
this.stopinterviewID = sid
this.modal3 = true
},
// 重启面试
OPPeninterview (tid, sta4) {
this.oppenInterviewID = tid
const parmars = {
resumeId: tid
}
formstatus(parmars).then(res => {
if (res.data.success == true) {
this.OPPeninterviewSTA = res.data.body.workFlow
}
})
this.modal4 = true
},
// 操作状态
UpdateStatus (LLL) {
const STATUS = LLL
},
//新增约面信息
newaddInterview(){
let parmars={
resumeId:this.UpdateOWERNEW,
inviterName:this.UpdateTIMENEW,
interviewerName:this.UpdateVIEWNEW,
seeTime:this.UpdateTIMENEW
}
NewAddInterview(parmars).then(res=>{
if(res.data.success==true){
this.$Message.success('新增约面信息成功')
}
})
},
// 终止面试
STOPinterview(){
SInterview(this.stopinterviewID).then(res=>{
if(res.data.success==true){
this.modal3=false
this.Sousuo(this.pageT)
}
})
},
// 操作重启时选择的状态
selectFnelement(e){
if(e.target.value==1){
this.oppenInterviewStatus='TO_DO'
}
if(e.target.value==2){
this.oppenInterviewStatus='PASS'
}
if(e.target.value==3){
this.oppenInterviewStatus='OPTION'
}
if(e.target.value==4){
this.oppenInterviewStatus='OPTION'
}
if(e.target.value==5){
this.oppenInterviewStatus='HAS_SEE'
}
if(e.target.value==6){
this.oppenInterviewStatus='SEE_FAIL'
}
if(e.target.value==10){
this.oppenInterviewStatus='INTERVIEW_FAIL'
}
if(e.target.value==11){
this.oppenInterviewStatus='TO_SENT_OFFER'
}
if(e.target.value==12){
this.oppenInterviewStatus='HAS_SENT_OFFER'
}
if(e.target.value==13){
this.oppenInterviewStatus='TO_ENTRY'
}
},
//重启面试
OPPinterview(){
oppenInterview(this.oppenInterviewID,this.oppenInterviewStatus).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '已成功重启流程'
});
this.serchListInterview()
}
})
this.modal4=false
},
// 选择变更状态时的元素
selectchangeElement(e,SID){
if(e.target.value==1){
this.changestatusSTATUS='HAS_SEE'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==2){
this.changestatusSTATUS='HAS_SEE'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==3){
this.changestatusSTATUS='SEE_FAIL'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==4){
this.changestatusSTATUS='INTERVIEW_FAIL'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==5){
this.changestatusSTATUS='TO_SENT_OFFER'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==6){
this.changestatusSTATUS='HAS_SENT_OFFER'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==7){
this.changestatusSTATUS='TO_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==8){
this.changestatusSTATUS='NO_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
if(e.target.value==9){
this.changestatusSTATUS='HAS_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res=>{
this.serchListInterview(this.pageT,'init')
})
}
this.statusValue = '0'
},
selectElement3(tItem,Tindex,status3,sta3){
sta3=!sta3
this.state[Tindex].sta=sta3
if(Tindex==0){
this.searchInfo.STA=[]
this.state.map((item,index)=>{
if(index!==0){
item.sta=false
}
if(index==0){
item.sta=true
}
return item
})
return
}
if(Tindex!==0){
this.state[0].sta=false
}
if(sta3==true){
this.searchInfo.STA.push(tItem)
}
if(sta3==false){
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
this.searchInfo.STA.remove(tItem)
}
},
Seedetail(Tid,Uid,sta){
this.DOWNID=Uid
this.detailID=Tid
this.interdeTailSta=sta
let newpage = this.$router.resolve({
name: 'resumeDetail',
params:{},
query:{id:this.DOWNID,noShowBtn:'',ID:this.detailID,status:this.interdeTailSta}
})
window.open(newpage.href, '_blank');
},
//搜索
Sousuo(page){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
parameter:{
keywordString:this.keywords,
highestDegreeNum:this.highestDegreeNum,
flowStatusList:this.searchInfo.STA,
interviewerName:this.interviewerName,
inviterName:this.inviterName,
handUpload:''
}
}
SerchList(parmars).then(res=>{
let Ishow=res.data.items
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
this.Essentialinformation=res.data.body.items.map((item,index)=>{
item.id=item.id
item.flowStatus=item.flowStatus
item.interviewerName= item.interviewerName
item.inviterName=item.inviterName
item.modifier=item.modifier
item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0]
item.modifyTime=item.modifyTime
item.ownerExpectTitles=item.ownerExpectTitles
item.ownerMobile=item.ownerMobile
item.ownerName=item.ownerName
item.seeTime=item.seeTime
item.uid=item.uid
return item
})
}
})
},
// 选择要搜索的元素
selectSeeElement(Titem,Tindex){
this.highestDegreeNum=Titem
this.clickIndex1=Tindex
},
selectinterviewElement(e){
if(e.value=='不限'){
this.interviewerName=''
}else{
this.interviewerName=e.value
}
},
selectinterviewElement2(e){
if(e.label=='不限'){
this.inviterName=''
}else{
this.inviterName=e.label
}
},
//改变页码
pageChange(page){
this.pageT=page
if (this.STATUS == '终止面试') {
this.modal3 = true
}
if (this.STATUS == '重启面试') {
this.modal4 = true
}
},
// 更改约面信息
changeUpdate () {
const parmars = {
resumeId: this.UpdateID,
inviterName: this.formInline.UpdateOWER,
seeTime: moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'),
interviewerName: this.formInline.UpdateVIEW,
email: this.emailName
}
if (this.formInline.UpdateOWER == '' || this.formInline.UpdateTIME == '' || this.formInline.UpdateVIEW == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写完整的约面信息'
})
return
}
changeinterviewMassage(parmars).then(res => {
if (res.data.success == true) {
this.formInline.UpdateTIME == ''
this.formInline.UpdateVIEW == ''
this.formInline.UpdateOWER == ''
this.modal2 = false
this.Sousuo(this.pageT)
},
pageSizeChange(page){
this.searchInfo.pageSize=page
this.pageSize=page
this.Sousuo()
},
remoteMethod: function(query){
if (query !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
let list = []
query = query.split('(')[0]
findCompanyEmailByKey(query).then(res => {
if(res.data.success==true){
list = res
this.options = list.data.body || []
this.options.map(item=>{
this.emailName=item.email
})
} else{
this.options=[]
}
// this.options.push({name: '不限', email: ''})
})
}, 200);
} else {
this.options = [];
}
})
},
// 查询面试信息
serchListInterview (page, status) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex,
parameter: {
keywordString: '',
highestDegreeNum: '',
flowStatusList: [],
interviewerName: '',
inviterName: ''
}
}
SerchList(parmars, status).then(res => {
if (res.data.success == true) {
this.spinShow = false
this.totalSize = res.data.body.totalNumber
this.Essentialinformation = res.data.body.items.map((item, index) => {
item.id = item.id
item.flowStatus = item.flowStatus
item.interviewerName = item.interviewerName
item.inviterName = item.inviterName
item.modifier = item.modifier
item.c = item.modifier == '' ? item.modifier : item.modifier.split('_')
item.d = item.c[0]
item.modifyTime = item.modifyTime
item.ownerExpectTitles = item.ownerExpectTitles
item.ownerMobile = item.ownerMobile
item.ownerName = item.ownerName
item.seeTime = item.seeTime
item.uid = item.uid
return item
})
}
})
},
// 面试官查询
SerchlistinterviewList () {
Serchinterviewor().then(res => {
this.Interviewer = res.data.body
this.Interviewer.unshift('不限')
})
},
// 邀约人查询
SerchInvitation () {
SerchInvitationOwer().then(res => {
if (!res.data.success) {
return
}
this.Inviter = res.data.body
this.Inviter.unshift('不限')
})
},
// 新增约面信息
newaddInterview () {
const parmars = {
resumeId: this.UpdateOWERNEW,
inviterName: this.UpdateTIMENEW,
interviewerName: this.UpdateVIEWNEW,
seeTime: this.UpdateTIMENEW
}
NewAddInterview(parmars).then(res => {
if (res.data.success == true) {
this.$Message.success('新增约面信息成功')
}
})
},
// 终止面试
STOPinterview () {
SInterview(this.stopinterviewID).then(res => {
if (res.data.success == true) {
this.modal3 = false
this.Sousuo(this.pageT)
}
})
},
// 操作重启时选择的状态
selectFnelement (e) {
if (e.target.value == 1) {
this.oppenInterviewStatus = 'TO_DO'
}
if (e.target.value == 2) {
this.oppenInterviewStatus = 'PASS'
}
if (e.target.value == 3) {
this.oppenInterviewStatus = 'OPTION'
}
if (e.target.value == 4) {
this.oppenInterviewStatus = 'OPTION'
}
if (e.target.value == 5) {
this.oppenInterviewStatus = 'HAS_SEE'
}
if (e.target.value == 6) {
this.oppenInterviewStatus = 'SEE_FAIL'
}
if (e.target.value == 10) {
this.oppenInterviewStatus = 'INTERVIEW_FAIL'
}
if (e.target.value == 11) {
this.oppenInterviewStatus = 'TO_SENT_OFFER'
}
if (e.target.value == 12) {
this.oppenInterviewStatus = 'HAS_SENT_OFFER'
}
if (e.target.value == 13) {
this.oppenInterviewStatus = 'TO_ENTRY'
}
},
// 重启面试
OPPinterview () {
oppenInterview(this.oppenInterviewID, this.oppenInterviewStatus).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '已成功重启流程'
})
this.serchListInterview()
}
})
this.modal4 = false
},
// 选择变更状态时的元素
selectchangeElement (e, SID) {
if (e.target.value == 1) {
this.changestatusSTATUS = 'HAS_SEE'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 2) {
this.changestatusSTATUS = 'HAS_SEE'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 3) {
this.changestatusSTATUS = 'SEE_FAIL'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 4) {
this.changestatusSTATUS = 'INTERVIEW_FAIL'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 5) {
this.changestatusSTATUS = 'TO_SENT_OFFER'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 6) {
this.changestatusSTATUS = 'HAS_SENT_OFFER'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 7) {
this.changestatusSTATUS = 'TO_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 8) {
this.changestatusSTATUS = 'NO_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
if (e.target.value == 9) {
this.changestatusSTATUS = 'HAS_ENTRY'
changestatus(SID, this.changestatusSTATUS).then(res => {
this.serchListInterview(this.pageT, 'init')
})
}
this.statusValue = '0'
},
selectElement3 (tItem, Tindex, status3, sta3) {
sta3 = !sta3
this.state[Tindex].sta = sta3
if (Tindex == 0) {
this.searchInfo.STA = []
this.state.map((item, index) => {
if (index !== 0) {
item.sta = false
}
if (index == 0) {
item.sta = true
}
},
return item
})
return
}
if (Tindex !== 0) {
this.state[0].sta = false
}
if (sta3 == true) {
this.searchInfo.STA.push(tItem)
}
if (sta3 == false) {
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i
}
return -1
}
Array.prototype.remove = function (val) {
var index = this.indexOf(val)
if (index > -1) {
this.splice(index, 1)
}
}
this.searchInfo.STA.remove(tItem)
}
},
Seedetail (Tid, Uid, sta) {
this.DOWNID = Uid
this.detailID = Tid
this.interdeTailSta = sta
const newpage = this.$router.resolve({
name: 'resumeDetail',
params: {},
query: { id: this.DOWNID, noShowBtn: '', ID: this.detailID, status: this.interdeTailSta }
})
window.open(newpage.href, '_blank')
},
mounted(){
this.serchListInterview(null, 'init')
// this.Serchlistinterview()
this.SerchInvitation()
this.SerchlistinterviewList()
}
// 搜索
Sousuo (page) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex,
parameter: {
keywordString: this.keywords,
highestDegreeNum: this.highestDegreeNum,
flowStatusList: this.searchInfo.STA,
interviewerName: this.interviewerName,
inviterName: this.inviterName,
handUpload: ''
}
}
SerchList(parmars).then(res => {
const Ishow = res.data.items
if (res.data.success == true) {
this.spinShow = false
this.totalSize = res.data.body.totalNumber
this.Essentialinformation = res.data.body.items.map((item, index) => {
item.id = item.id
item.flowStatus = item.flowStatus
item.interviewerName = item.interviewerName
item.inviterName = item.inviterName
item.modifier = item.modifier
item.c = item.modifier == '' ? item.modifier : item.modifier.split('_')
item.d = item.c[0]
item.modifyTime = item.modifyTime
item.ownerExpectTitles = item.ownerExpectTitles
item.ownerMobile = item.ownerMobile
item.ownerName = item.ownerName
item.seeTime = item.seeTime
item.uid = item.uid
return item
})
}
})
},
// 选择要搜索的元素
selectSeeElement (Titem, Tindex) {
this.highestDegreeNum = Titem
this.clickIndex1 = Tindex
},
selectinterviewElement (e) {
if (e.value == '不限') {
this.interviewerName = ''
} else {
this.interviewerName = e.value
}
},
selectinterviewElement2 (e) {
if (e.label == '不限') {
this.inviterName = ''
} else {
this.inviterName = e.label
}
},
// 改变页码
pageChange (page) {
this.pageT = page
this.Sousuo(this.pageT)
},
pageSizeChange (page) {
this.searchInfo.pageSize = page
this.pageSize = page
this.Sousuo()
},
remoteMethod: function (query) {
if (query !== '') {
this.loading1 = true
setTimeout(() => {
this.loading1 = false
let list = []
query = query.split('(')[0]
findCompanyEmailByKey(query).then(res => {
if (res.data.success == true) {
list = res
this.options = list.data.body || []
this.options.map(item => {
this.emailName = item.email
})
} else {
this.options = []
}
// this.options.push({name: '不限', email: ''})
})
}, 200)
} else {
this.options = []
}
}
},
mounted () {
this.serchListInterview(null, 'init')
// this.Serchlistinterview()
this.SerchInvitation()
this.SerchlistinterviewList()
}
}
</script>
<style>
......@@ -773,7 +770,7 @@ font-size: 14px;
}
.interview-left{
height:100%;
overflow:hidden;
overflow:hidden;
width: 70%;
float: left;
background: #F2F2F2;
......
......@@ -2,11 +2,11 @@
<div class="login">
<div class="login-content">
<div class="loginContent-left">
<div class="logimg">
<div class="logimg">
<img src="http://xyqbui.lkbang.net/image/logo99.png">
</div>
</div>
</div>
<div class="loginContent-right">
<div class="loginContent-right">
<div class="logo">
<img src="http://xyqbui.lkbang.net/image/log.jpg">
<h3>登录</h3>
......@@ -27,7 +27,7 @@
</Form>
<Button type="primary" class="loginBtu" @click.prevent="login">登录</Button>
</div>
<div class="copy">
<p>量化派为你提供全程服务</p>
<p>量化派版权所有</p>
......@@ -38,72 +38,71 @@
</template>
<script>
import { login} from '../../api/login.server.js'
import { login } from '../../api/login.server.js'
import localstorage from '../../service/localstorage.service.js'
export default {
data () {
return {
channelarr:[],
notecontent:'',
noteconTime:false,
ISIDMIN:'',
formInline: {
user: '',
password: ''
},
ruleInline: {
user: [
{ required: true, pattern:/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入正确的密码', trigger: 'blur' },
// { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' }
]
}
}
},
methods: {
handleSubmit(name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('Success!');
} else {
this.$Message.error('Fail!');
}
})
},
login(){
let params={
userCode:this.formInline.user,
password:this.formInline.password
}
if(this.formInline.user==''||this.formInline.password==''){
return
}
login(params).then(res=>{
if(res.data.body.code=='100'){
this.$router.push({name:'update',params:{userCode:this.formInline.user}})
return
}
if(res.data.success==true){
this.ISIDMIN=res.data.body
localstorage.set('token', res.data.body.token)
this.$router.push({name:"allResume"})
localstorage.set('isADMIN',JSON.stringify(this.ISIDMIN))
return
}
if(res.data.success==false){
this.noteconTime=true
this.notecontent=res.data.body.message
setTimeout(() => {
this.noteconTime=false
}, 3000)
return
}
})
}
data () {
return {
channelarr: [],
notecontent: '',
noteconTime: false,
ISIDMIN: '',
formInline: {
user: '',
password: ''
},
ruleInline: {
user: [
{ required: true, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入正确的密码', trigger: 'blur' }
// { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' }
]
}
}
},
methods: {
handleSubmit (name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('Success!')
} else {
this.$Message.error('Fail!')
}
})
},
login () {
const params = {
userCode: this.formInline.user,
password: this.formInline.password
}
if (this.formInline.user == '' || this.formInline.password == '') {
return
}
login(params).then(res => {
if (res.data.body.code == '100') {
this.$router.push({ name: 'update', params: { userCode: this.formInline.user } })
return
}
if (res.data.success == true) {
this.ISIDMIN = res.data.body
localstorage.set('token', res.data.body.token)
this.$router.push({ name: 'allResume' })
localstorage.set('isADMIN', JSON.stringify(this.ISIDMIN))
return
}
if (res.data.success == false) {
this.noteconTime = true
this.notecontent = res.data.body.message
setTimeout(() => {
this.noteconTime = false
}, 3000)
}
})
}
}
}
</script>
<style scoped>
.login{
......@@ -169,7 +168,7 @@ export default {
height:100px;
margin-top: 80px;
margin-left: 7%
}
.copy p{
font-size: 17px;
......
......@@ -2,11 +2,11 @@
<div class="updatePsd">
<div class="updatePsd-content">
<div class="updatePsdContent-left">
<div class="logimg">
<div class="logimg">
<img src="http://xyqbui.lkbang.net/image/logo99.png">
</div>
</div>
</div>
<div class="updatePsdContent-right">
<div class="updatePsdContent-right">
<div class="logo">
<img src="http://xyqbui.lkbang.net/image/log.jpg">
<h3>首次登录请修改密码</h3>
......@@ -38,130 +38,124 @@
</template>
<script>
import { updatePsd} from '../../api/login.server.js'
import { updatePsd } from '../../api/login.server.js'
export default {
data () {
return {
formInline: {
passwordTwo: '',
password: ''
},
fistcontent:true,
twocontent:false,
twocontentmessage:'',
channelarr:[],
Massage:'',
ISIDMIN:'',
}
},
methods: {
handleSubmit(name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('Success!');
} else {
this.$Message.error('Fail!');
}
})
},
loginT(){
let params={
userCode:this.$route.params.userCode,
password:this.formInline.password,
confirmPassWord:this.formInline.passwordTwo
}
if(this.formInline.passwordTwo!==this.formInline.password){
this.twocontentmessage='输入密码不一致,请重新输入'
this.twocontent=true
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
if(this.formInline.passwordTwo.length<4||this.formInline.password.length<4){
this.twocontentmessage='请输入4-20位密码'
this.twocontent=true
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
if(this.formInline.password.length>20){
this.twocontentmessage='请输入4-20位密码'
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
if(this.formInline.password.length<4){
this.twocontentmessage='请输入4-20位密码'
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
if(this.formInline.password.length==0){
this.twocontentmessage='密码不能为空'
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
if(this.formInline.passwordTwo.length==0){
this.twocontentmessage='请输入相同的确认密码'
setTimeout(() => {
this.twocontent=false
}, 3000)
return
}
updatePsd(params).then(res=>{
if(res.data.success==true){
this.ISIDMIN=res.data.body
localStorage.setItem('isADMIN',JSON.stringify(this.ISIDMIN))
localStorage.setItem('token',res.data.body.token)
this.$router.replace({name:'allResume'})
}
if(res.data.success==false){
this.Massage=res.data.body.message
this.twocontent=true
this.twocontentmessage=this.Massage
setTimeout(() => {
this.twocontent=false
}, 3000)
}
})
},
verification(){
if(this.formInline.password==123456){
this.twocontentmessage='输入密码与初始密码相同,请重新输入'
setTimeout(() => {
this.twocontent=false
}, 3000)
}
if(this.formInline.password.length==0){
this.fistcontent=true
}
if(this.formInline.password==''){
this.fistcontent=true
}
if(this.formInline.password.length<4){
this.fistcontent=true
}
if(this.formInline.password.length>4){
this.fistcontent=false
}
if(this.formInline.password.length>20){
this.fistcontent=true
}
},
data () {
return {
formInline: {
passwordTwo: '',
password: ''
},
fistcontent: true,
twocontent: false,
twocontentmessage: '',
channelarr: [],
Massage: '',
ISIDMIN: ''
}
},
methods: {
handleSubmit (name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('Success!')
} else {
this.$Message.error('Fail!')
}
})
},
loginT () {
const params = {
userCode: this.$route.params.userCode,
password: this.formInline.password,
confirmPassWord: this.formInline.passwordTwo
}
if (this.formInline.passwordTwo !== this.formInline.password) {
this.twocontentmessage = '输入密码不一致,请重新输入'
this.twocontent = true
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
if (this.formInline.passwordTwo.length < 4 || this.formInline.password.length < 4) {
this.twocontentmessage = '请输入4-20位密码'
this.twocontent = true
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
if (this.formInline.password.length > 20) {
this.twocontentmessage = '请输入4-20位密码'
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
if (this.formInline.password.length < 4) {
this.twocontentmessage = '请输入4-20位密码'
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
if (this.formInline.password.length == 0) {
this.twocontentmessage = '密码不能为空'
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
if (this.formInline.passwordTwo.length == 0) {
this.twocontentmessage = '请输入相同的确认密码'
setTimeout(() => {
this.twocontent = false
}, 3000)
return
}
updatePsd(params).then(res => {
if (res.data.success == true) {
this.ISIDMIN = res.data.body
localStorage.setItem('isADMIN', JSON.stringify(this.ISIDMIN))
localStorage.setItem('token', res.data.body.token)
this.$router.replace({ name: 'allResume' })
}
if (res.data.success == false) {
this.Massage = res.data.body.message
this.twocontent = true
this.twocontentmessage = this.Massage
setTimeout(() => {
this.twocontent = false
}, 3000)
}
})
},
verification () {
if (this.formInline.password == 123456) {
this.twocontentmessage = '输入密码与初始密码相同,请重新输入'
setTimeout(() => {
this.twocontent = false
}, 3000)
}
if (this.formInline.password.length == 0) {
this.fistcontent = true
}
if (this.formInline.password == '') {
this.fistcontent = true
}
if (this.formInline.password.length < 4) {
this.fistcontent = true
}
if (this.formInline.password.length > 4) {
this.fistcontent = false
}
if (this.formInline.password.length > 20) {
this.fistcontent = true
}
}
}
}
</script>
<style scoped>
.updatePsd{
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -33,7 +33,7 @@
<Select v-model="position" filterable multiple style="width:96%" placeholder="不限">
<Option v-for="(item,index) in positionArr" :value="item" :key="index">{{ item }}</Option>
</Select>
</FormItem>
</FormItem>
</Form>
<Button type="primary" style="width:30%;margin-left:34%;font-size:13px" @click="SouSuo(item.Num1,item.Num2,item.Num3)">搜索</Button>
</div>
......@@ -58,7 +58,7 @@
<div style="margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px;color:LightGray" v-show="ajaxData.length==0">暂无数据</div>
<div class="Resumecontent" v-for='(item,i) in ajaxData' :key="i">
<div class="detailResume" id="a" @mousemove="ahove(i,item.isShow)" @mouseleave="movleave(i,item.isShow)" :class="{red:item.isShow, grey: i%2!=0}" >
<p class="massage" style="margin-left:10px;padding-top:10px">
<p class="massage" style="margin-left:10px;padding-top:10px">
<span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px" class='inputcheck'>
<input type='checkbox' name='checkboxinput' style="cursor:pointer" class='input-checkbox' v-model='checkboxList' :value="item.id" @click="selectInputElement(i,item.id,item.flowStatus,item.STATES, item)"></span>
<span style="display:inline-block;height:100%;font-size: 14px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" class="allResumeBassage" :class="{massagecolor:item.hasRead==1}" @click="Seedetail(item.id,item.uid,item.flowStatus)">{{item.ownerName}} |</span>
......@@ -108,13 +108,13 @@
</span>
</p>
<p style="margin-top:5px;color:Greys;padding-left:10px;" class="info">
<span style="display:inline-block;font-size: 14px;color:orange" v-show="item.hasForward=='1'" class='transmit' >已转</span>
<span style="display:inline-block;font-size: 14px;margin-left:20px;color:Grey" v-if="item.srcSite!==''" v-show="item.hasForward==null">{{item.deliveryTime}}投递 |</span>
<span style="display:inline-block;font-size: 14px;color:orange" v-show="item.hasForward=='1'" class='transmit' >已转</span>
<span style="display:inline-block;font-size: 14px;margin-left:20px;color:Grey" v-if="item.srcSite!==''" v-show="item.hasForward==null">{{item.deliveryTime}}投递 |</span>
<span style="display:inline-block;font-size: 14px;color:Grey;margin-left:20px" v-if="item.srcSite==''" v-show="item.hasForward==null">{{item.deliveryTime}}上传 <span v-show="item.optSource!==''"> |</span></span>
<span style="display:inline-block;font-size: 14px;margin-left:-2px;color:Grey" v-if="item.srcSite!==''" v-show="item.hasForward!==null">{{item.deliveryTime}}投递 |</span>
<span style="display:inline-block;font-size: 14px;margin-left:-2px;color:Grey" v-if="item.srcSite!==''" v-show="item.hasForward!==null">{{item.deliveryTime}}投递 |</span>
<span style="display:inline-block;font-size: 14px;color:Grey;margin-left:-2px" v-if="item.srcSite==''" v-show="item.hasForward!==null">{{item.deliveryTime}}上传 <span v-show="item.optSource!==''"> |</span></span>
<span style="display:inline-block;font-size: 14px;margin-left:3px;color:Grey">{{item.optSource}}<span v-show="item.srcSite!==''"> |</span></span>
<span style="display:inline-block;font-size: 14px;margin-left:3px;color:Grey">{{item.srcSite}}</span>
<span style="display:inline-block;font-size: 14px;margin-left:3px;color:Grey">{{item.optSource}}<span v-show="item.srcSite!==''"> |</span></span>
<span style="display:inline-block;font-size: 14px;margin-left:3px;color:Grey">{{item.srcSite}}</span>
<span style="display:inline-block;font-size: 14px;float:right;text-align:right;margin-right:10px;color:Grey">
<span>{{item.modifyTime}}</span>
<span >最后操作人:{{item.d}}</span>
......@@ -182,7 +182,7 @@
<span style="color:blue" v-if=" item.afterState=='SX_TWO_CONFIRM'">二次确认</span>
</p>
</div>
</div>
<div style="height:30px;width:100%;text-align:center;margin-top:30px">
<Button type="primary" size='small' @click="modal1=false">关闭</Button>
......@@ -324,7 +324,7 @@
</span>
</p>
<p v-for="(item,index) in fileList" :key="index" style="height:30px;line-height:30px">
<span style="margin-left:60px">{{item}}</span>
<span style="margin-left:60px">{{item}}</span>
<span><Icon type="md-close" @click="delateFile(index)" style="font-size:16px;float:right;margin-right:80px" /></span>
</p>
</div>
......@@ -403,620 +403,618 @@
</template>
<script>
import moment from 'moment'
import {adoptOneSeeResumeList, serchList,downloadone,sousuoList,getlist,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,TODORes,getEmailMoo,getEmailContent, sendEmail,findCompanyEmailByKey,forwardResume } from '../../api/resume.server.js'
import {Serchinterviewor} from '../../api/interview.server.js'
import { adoptOneSeeResumeList, serchList, downloadone, sousuoList, getlist, seedetail, PASS, OPTION, deleteREsume, downloadOne, exportLIST, recodeLIST, addinterview, TODORes, getEmailMoo, getEmailContent, sendEmail, findCompanyEmailByKey, forwardResume } from '../../api/resume.server.js'
import { Serchinterviewor } from '../../api/interview.server.js'
import {
sapi
} from '../../config'
import{_debounce,_throttle, emailValidata, emailRule, vidte, validator} from '../../service/util.js'
import { _debounce, _throttle, emailValidata, emailRule, vidte, validator } from '../../service/util.js'
import ckeditor from '../../components/ckeditor'
import {mapState} from 'vuex'
import { mapState } from 'vuex'
import localStorage from '../../service/localstorage.service'
export default {
data(){
data () {
return {
modal11: false,
interviewee: [],
tip: false,
tipInfo: '输入多个邮箱地址以英文”;“分隔',
errorInfo: '',
position:[],
isShowRep:false,
positionArr:[
position: [],
isShowRep: false,
positionArr: [
],
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata.bind(this)}
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata.bind(this)}
],
UpdateVIEW: [
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this)}
]
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata.bind(this) }
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'change', type: 'date', validator: emailValidata.bind(this) }
],
UpdateVIEW: [
{ required: true, message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this) }
]
},
emailruleInline: {
receiveEmail: [{required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this)}],
theme: [{required: true, trigger: 'blur',message: '主题不能为空', validator: emailValidata.bind(this)}],
copyname: [{required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this), empty: true}]
receiveEmail: [{ required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this) }],
theme: [{ required: true, trigger: 'blur', message: '主题不能为空', validator: emailValidata.bind(this) }],
copyname: [{ required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this), empty: true }]
},
formInline:{
UpdateOWER:'',
UpdateTIME:'',
UpdateVIEW:'',
formInline: {
UpdateOWER: '',
UpdateTIME: '',
UpdateVIEW: '',
sendWeixin: true
},
editorObject: {type: '', value: ''},
emailInline:{
moo:'',
modalArr:[],
copyname:'',
receiveEmail:'',//收件人
theme:'',//主题
Enclosure:[],//附件
templateContent:'',//模板内容
editorObject: { type: '', value: '' },
emailInline: {
moo: '',
modalArr: [],
copyname: '',
receiveEmail: '', // 收件人
theme: '', // 主题
Enclosure: [], // 附件
templateContent: ''// 模板内容
},
transpondFrom: {
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator.bind(this)}]
interviewerName: [{ required: true, trigger: 'blur', validator: validator.bind(this) }]
},
interviewerList: [{name: 'test', value: '1'}],
interviewerList: [{ name: 'test', value: '1' }],
loading1: false,
options: [],
limentName:0,
emailMassage:false,
allEmailVilitor:false,
emailContent:'',
emailFlowStatus:'',
fileList:[],
UpdateTIMETwo:'',
uploadFileList:[],
detailID:'',
temp:'',
uploadurl:`${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
isShowAll:false,
isShowTwo:false,
isLimitSize:false,
isDisable:true,
disabledSingle:true,
emailId:'',
RescopyArr:[],
errorMassage:'',
interelement:'1',
emailIdArr:[],
attachFileList:[],
flowStatusTT:'',
sad:'',
interviewIsShow:false,
emailMOdal:false,
a:[],
limentName: 0,
emailMassage: false,
allEmailVilitor: false,
emailContent: '',
emailFlowStatus: '',
fileList: [],
UpdateTIMETwo: '',
uploadFileList: [],
detailID: '',
temp: '',
uploadurl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
isShowAll: false,
isShowTwo: false,
isLimitSize: false,
isDisable: true,
disabledSingle: true,
emailId: '',
RescopyArr: [],
errorMassage: '',
interelement: '1',
emailIdArr: [],
attachFileList: [],
flowStatusTT: '',
sad: '',
interviewIsShow: false,
emailMOdal: false,
a: [],
checked: false,
activeClass: 0,
clickIndex1: 0,
clickIndex2: 0,
clickIndex3:0,
pageT:'',
spinShow:true,
keywords:'',
biaoshi:'',
toseeid:'',
clickIndex3: 0,
pageT: '',
spinShow: true,
keywords: '',
biaoshi: '',
toseeid: '',
options3: {
disabledDate (date) {
return date && date.valueOf() <Date.now()-3600*24*1000;
}
return date && date.valueOf() < Date.now() - 3600 * 24 * 1000
}
},
Black:false,
recordList:[],
all:'all',
lrgs:'',
a:'',
id:'',
pageT:'',
resumeDetailSta:'',
modal1:false,
modal2:false,
modal3:false,
modal4:false,
modal5:false,
modal7:false,
Black: false,
recordList: [],
all: 'all',
lrgs: '',
a: '',
id: '',
pageT: '',
resumeDetailSta: '',
modal1: false,
modal2: false,
modal3: false,
modal4: false,
modal5: false,
modal7: false,
modal8: false,
modal10:false,
modal12:false,
modal13:false,
modal14:false,
modal15:false,
modal16:false,
modal17:false,
errorNotice:'',
resumePushId:'',
reResumeName:'',
optcode:'',
toseename:'',
modal10: false,
modal12: false,
modal13: false,
modal14: false,
modal15: false,
modal16: false,
modal17: false,
errorNotice: '',
resumePushId: '',
reResumeName: '',
optcode: '',
toseename: '',
// UpdateOWER:'',
// UpdateTIME:'',
// UpdateVIEW:'',
item:[],
delateARRALL:[],
delateARRALL2:[],
flowStatusarr:[],
quanxuan:[],
orignarr:['TO_SEE','HAS_SEE','SEE_FAIL','INTERVIEW_FAIL','TO_SENT_OFFER','TO_ENTRY','HAS_ENTRY','NO_ENTRY','END','ARRIVED'],
totalSize:0,
pageSize:30,
pageIndex:1,
searchInfo:{
pageSize:30,
pageIndex:1,
id:'',
SEX:'',
Edu:'',
ccc:'',
itemSelect:'',
STA:[],
status:"",
ownerWorkYears1:'',
ownerWorkYears2:'',
item: [],
delateARRALL: [],
delateARRALL2: [],
flowStatusarr: [],
quanxuan: [],
orignarr: ['TO_SEE', 'HAS_SEE', 'SEE_FAIL', 'INTERVIEW_FAIL', 'TO_SENT_OFFER', 'TO_ENTRY', 'HAS_ENTRY', 'NO_ENTRY', 'END', 'ARRIVED'],
totalSize: 0,
pageSize: 30,
pageIndex: 1,
searchInfo: {
pageSize: 30,
pageIndex: 1,
id: '',
SEX: '',
Edu: '',
ccc: '',
itemSelect: '',
STA: [],
status: '',
ownerWorkYears1: '',
ownerWorkYears2: ''
},
arr:[],
sexs:[{Num1:'',status1:'不限'},{Num1:'0',status1:""},{Num1:'0',status1:''}],
Education:[{Num2:'',status2:'不限'},{Num2:"0",status2:'专科以下'},{Num2:'1',status2:'专科及以上'},{Num2:'2',status2:'本科及以上'},{Num2:'3',status2:'硕士及以上'},{Num2:'4',status2:'博士及以上'},{Num2:'99',status2:'985/211'}],
state:[{Num3:[],status3:'不限',sta:true},{Num3:'TO_DO',status3:'待处理',sta:false},{Num3:'OPTION',status3:'备选',sta:false},{Num3:'PASS',status3:'Pass',sta:false},{Num3:'HAS_SEE',status3:'已邀约',sta:false},{Num3:'SEE_FAIL',status3:'邀约失败',sta:false},
{Num3:'INTERVIEW_FAIL',status3:'面试淘汰',sta:false},{Num3:'TO_SENT_OFFER',status3:'待Offer',sta:false},{Num3:'HAS_SENT_OFFER',status3:'已发offer',sta:false},{Num3:'HAS_ENTRY',status3:'已入职',sta:false},{Num3:'NO_ENTRY',status3:'未入职',sta:false},{Num3:'END',status3:'终止面试',sta:false},],
active:'',
ownerWorkYears1:[{value:'',label:'不限'},{value:0,label:'0'},{value:1,label:'1'},{value:2,label:'2'},{value:3,label:'3'},{value:4,label:'4'},{value:5,label:'5'},
{value:6,label:'6'},{value:7,label:'7'},{value:8,label:'8'},{value:9,label:'9'},{value:10,label:'10'}],
ownerWorkYears2:[{value:'',label:'不限'},{value:0,label:'0'},{value:1,label:'1'},{value:2,label:'2'},{value:3,label:'3'},{value:4,label:'4'},{value:5,label:'5'},
{value:6,label:'6'},{value:7,label:'7'},{value:8,label:'8'},{value:9,label:'9'},{value:10,label:'10'}],
value:[],
arr: [],
sexs: [{ Num1: '', status1: '不限' }, { Num1: '0', status1: '' }, { Num1: '0', status1: '' }],
Education: [{ Num2: '', status2: '不限' }, { Num2: '0', status2: '专科以下' }, { Num2: '1', status2: '专科及以上' }, { Num2: '2', status2: '本科及以上' }, { Num2: '3', status2: '硕士及以上' }, { Num2: '4', status2: '博士及以上' }, { Num2: '99', status2: '985/211' }],
state: [{ Num3: [], status3: '不限', sta: true }, { Num3: 'TO_DO', status3: '待处理', sta: false }, { Num3: 'OPTION', status3: '备选', sta: false }, { Num3: 'PASS', status3: 'Pass', sta: false }, { Num3: 'HAS_SEE', status3: '已邀约', sta: false }, { Num3: 'SEE_FAIL', status3: '邀约失败', sta: false },
{ Num3: 'INTERVIEW_FAIL', status3: '面试淘汰', sta: false }, { Num3: 'TO_SENT_OFFER', status3: '待Offer', sta: false }, { Num3: 'HAS_SENT_OFFER', status3: '已发offer', sta: false }, { Num3: 'HAS_ENTRY', status3: '已入职', sta: false }, { Num3: 'NO_ENTRY', status3: '未入职', sta: false }, { Num3: 'END', status3: '终止面试', sta: false }],
active: '',
ownerWorkYears1: [{ value: '', label: '不限' }, { value: 0, label: '0' }, { value: 1, label: '1' }, { value: 2, label: '2' }, { value: 3, label: '3' }, { value: 4, label: '4' }, { value: 5, label: '5' },
{ value: 6, label: '6' }, { value: 7, label: '7' }, { value: 8, label: '8' }, { value: 9, label: '9' }, { value: 10, label: '10' }],
ownerWorkYears2: [{ value: '', label: '不限' }, { value: 0, label: '0' }, { value: 1, label: '1' }, { value: 2, label: '2' }, { value: 3, label: '3' }, { value: 4, label: '4' }, { value: 5, label: '5' },
{ value: 6, label: '6' }, { value: 7, label: '7' }, { value: 8, label: '8' }, { value: 9, label: '9' }, { value: 10, label: '10' }],
value: [],
ajaxData: [],
checkData: [],
checkboxList:[],
checkboxList: [],
delateARRALL3: []
}
},
computed:{
computed: {
},
components:{
ckeditor
components: {
ckeditor
},
methods:{
// 判断输入年限的大小
judge1(value){
this.searchInfo.ownerWorkYears1=value.value
},
judge2(value){
this.searchInfo.ownerWorkYears2=value.value
if(this.searchInfo.ownerWorkYears1>this.searchInfo.ownerWorkYears2){
this.Black=true
setInterval(() => {
this.Black=false
}, 3000)
}
},
//全选与反选
checkedAll: function() {
if (this.checked) {//实现反选
this.checkboxList = [];
this.ajaxData.forEach( (item) => {
this.removeInterviewee(item)
this.checkboxList = [];
this.delateARRALL=[];
this.flowStatusarr=[]
item.STATES=false
});
} else { //实现全选
if(this.ajaxData.length==0){
this.checkboxList=[]
methods: {
// 判断输入年限的大小
judge1 (value) {
this.searchInfo.ownerWorkYears1 = value.value
},
judge2 (value) {
this.searchInfo.ownerWorkYears2 = value.value
if (this.searchInfo.ownerWorkYears1 > this.searchInfo.ownerWorkYears2) {
this.Black = true
setInterval(() => {
this.Black = false
}, 3000)
}
},
// 全选与反选
checkedAll: function () {
if (this.checked) { // 实现反选
this.checkboxList = []
this.ajaxData.forEach((item) => {
this.removeInterviewee(item)
this.checkboxList = []
this.delateARRALL = []
this.flowStatusarr = []
item.STATES = false
})
} else { // 实现全选
if (this.ajaxData.length == 0) {
this.checkboxList = []
}
this.checkboxList = [];
this.ajaxData.forEach( (item) => {
this.addInterviewee(item)
this.checkboxList.push(item.id);
this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus)
item.STATES=true
});
this.checkboxList = []
this.ajaxData.forEach((item) => {
this.addInterviewee(item)
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id)
this.flowStatusarr.push(item.flowStatus)
item.STATES = true
})
}
},
//操作处理面试状态
changeFlowstatus(e,SID,itemsta,orsta){
this.toseeid=SID
this.emailId=SID
this.emailIdArr=[]
this.emailIdArr.push(SID)
this.isShowTwo=true
this.ITEMSTA=itemsta
if(e.target.value=='TO_SEE'){
this.emailFlowStatus='TO_SEE'
this.isShowTwo=true
this.sendEmail('',orsta,SID)
}
if(e.target.value=='PASS'){
let parmars={
status:"PASS",
id:SID,
}
PASS(parmars).then(res=>{
if(res.data.success==true){
this.SouSuo(this.pageT,'init')
}
})
}
if(e.target.value=='OPTION'){
let parmars={
status:"OPTION",
id:SID,
}
OPTION(parmars).then(res=>{
if(res.data.success==true){
this.SouSuo(this.pageT,'init')
}
})
}
if(e.target.value=='TO_DO'){
let parmars={
status:"TO_DO",
id:SID,
}
TODORes(parmars).then(res=>{
if(res.data.success==true){
this.SouSuo(this.pageT,'init')
}
})
},
// 操作处理面试状态
changeFlowstatus (e, SID, itemsta, orsta) {
this.toseeid = SID
this.emailId = SID
this.emailIdArr = []
this.emailIdArr.push(SID)
this.isShowTwo = true
this.ITEMSTA = itemsta
if (e.target.value == 'TO_SEE') {
this.emailFlowStatus = 'TO_SEE'
this.isShowTwo = true
this.sendEmail('', orsta, SID)
}
if (e.target.value == 'PASS') {
const parmars = {
status: 'PASS',
id: SID
}
PASS(parmars).then(res => {
if (res.data.success == true) {
this.SouSuo(this.pageT, 'init')
}
},
addINTERVIEW(){
let parmars={
resumeId: this.toseeid,
inviterName:this.formInline.UpdateOWER,
interviewerName:this.formInline.UpdateVIEW,
seeTime:moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'),
}
if(this.formInline.UpdateOWER==''||this.formInline.UpdateVIEW==''||this.formInline.UpdateTIME==''){
this.$Notice.error({
title: '提示',
desc: '请您填写完整的约面信息'
});
return
}
addinterview(parmars).then(res=>{
if(res.data.success==true){
this.modal2=false
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.SouSuo(this.pageT)
}
if(res.data.body.code==0){
this.SouSuo(this.pageT,'init')
}
})
},
changeTime(b){
this.UpdateTIME=b
if (!b){
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent
}
return
})
}
if (e.target.value == 'OPTION') {
const parmars = {
status: 'OPTION',
id: SID
}
OPTION(parmars).then(res => {
if (res.data.success == true) {
this.SouSuo(this.pageT, 'init')
}
var reg = /<span id="email_seeTime"><span>/g
var time = b.split('-')
var year = time[0]
var mon = time[1]
var day = time[2].split(' ')[0]
var time = time[2].split(' ')[1]
var content = `<span id="email_seeTime">${year}${mon}${day}${time}<span>`
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent.replace(reg, content)
})
}
if (e.target.value == 'TO_DO') {
const parmars = {
status: 'TO_DO',
id: SID
}
TODORes(parmars).then(res => {
if (res.data.success == true) {
this.SouSuo(this.pageT, 'init')
}
})
}
},
addINTERVIEW () {
const parmars = {
resumeId: this.toseeid,
inviterName: this.formInline.UpdateOWER,
interviewerName: this.formInline.UpdateVIEW,
seeTime: moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm')
}
if (this.formInline.UpdateOWER == '' || this.formInline.UpdateVIEW == '' || this.formInline.UpdateTIME == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写完整的约面信息'
})
return
}
addinterview(parmars).then(res => {
if (res.data.success == true) {
this.modal2 = false
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.SouSuo(this.pageT)
}
if (res.data.body.code == 0) {
this.SouSuo(this.pageT, 'init')
}
})
},
changeTime (b) {
this.UpdateTIME = b
if (!b) {
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent
}
return
}
var reg = /<span id="email_seeTime"><span>/g
var time = b.split('-')
var year = time[0]
var mon = time[1]
var day = time[2].split(' ')[0]
var time = time[2].split(' ')[1]
var content = `<span id="email_seeTime">${year}${mon}${day}${time}<span>`
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent.replace(reg, content)
}
},
// 查看简历详情
Seedetail(Tid,Uid,STATUS){
this.detailID=Tid
this.DOWNID=Uid
this.resumeDetailSta=STATUS
let newpage = this.$router.resolve({
name: 'resumeDetail',
params:{},
query:{id:this.DOWNID,noShowBtn:'',ID:this.detailID,status:this.resumeDetailSta}
})
window.open(newpage.href, '_blank');
},
pageChange(page){
this.pageT=page
this.delateARRALL=[]
this.flowStatusarr=[]
this.searchInfo.ownerWorkYears1=''
this.searchInfo.ownerWorkYears2=''
Seedetail (Tid, Uid, STATUS) {
this.detailID = Tid
this.DOWNID = Uid
this.resumeDetailSta = STATUS
const newpage = this.$router.resolve({
name: 'resumeDetail',
params: {},
query: { id: this.DOWNID, noShowBtn: '', ID: this.detailID, status: this.resumeDetailSta }
})
window.open(newpage.href, '_blank')
},
pageChange (page) {
this.pageT = page
this.delateARRALL = []
this.flowStatusarr = []
this.searchInfo.ownerWorkYears1 = ''
this.searchInfo.ownerWorkYears2 = ''
this.SouSuo(this.pageT)
},
pageSizeChange(page){
this.searchInfo.pageSize=page
this.pageSize=page
this.SouSuo()
pageSizeChange (page) {
this.searchInfo.pageSize = page
this.pageSize = page
this.SouSuo()
},
// 跳转到面试管理
tointerview(){
tointerview () {
this.$router.push('/interview')
},
downloadAll(){
if(this.checkboxList==''){
this.$Notice.error({
title: '提示',
desc: '选项不能为空'
});
return
}
let url=`${sapi}/api/resume/download/formatted/compress`
this.checkboxList.map((item,index)=>{
url+=index==0?`?resumeId=${item}`:`&resumeId=${item}`
downloadAll () {
if (this.checkboxList == '') {
this.$Notice.error({
title: '提示',
desc: '选项不能为空'
})
window.location.href=url
this.checkboxList=[]
return
}
let url = `${sapi}/api/resume/download/formatted/compress`
this.checkboxList.map((item, index) => {
url += index == 0 ? `?resumeId=${item}` : `&resumeId=${item}`
})
window.location.href = url
this.checkboxList = []
},
// 可删除状态下点击
delateR(delateid){
this.delateARRALL3 = []
this.delateARRALL3.push(delateid)
this.modal3=true
delateR (delateid) {
this.delateARRALL3 = []
this.delateARRALL3.push(delateid)
this.modal3 = true
},
// 删除单条简历
delateONE(){
deleteREsume(this.delateARRALL3).then(res=>{
if(res.data.success==true){
delateONE () {
deleteREsume(this.delateARRALL3).then(res => {
if (res.data.success == true) {
this.delateARRALL3.map(item => {
this.removeInterviewee({id:item})
this.removeInterviewee({ id: item })
})
this.modal3=false
this.SouSuo(this.pageT)
this.modal3 = false
this.SouSuo(this.pageT)
}
})
},
getpositionList(){
let parmars={
optSourceCode:this.$route.params.channelname
}
getlist(parmars).then(res=>{
this.positionArr=[]
this.positionArr=res.data.body
})
},
getpositionList () {
const parmars = {
optSourceCode: this.$route.params.channelname
}
getlist(parmars).then(res => {
this.positionArr = []
this.positionArr = res.data.body
})
},
// 选择input元素
selectInputElement(index,doID,doStatus,sss, item){
sss=!sss
this.emailIdArr=[]
this.emailId=doID
this.ajaxData[index].STATES=sss
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
if(sss==true){
selectInputElement (index, doID, doStatus, sss, item) {
sss = !sss
this.emailIdArr = []
this.emailId = doID
this.ajaxData[index].STATES = sss
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i
}
return -1
}
Array.prototype.remove = function (val) {
var index = this.indexOf(val)
if (index > -1) {
this.splice(index, 1)
}
}
if (sss == true) {
this.delateARRALL.push(doID)
this.delateARRALL2.push(doID)
this.flowStatusarr.push(doStatus)
this.addInterviewee(item)
this.emailIdArr.push(doID)
}
if(sss==false){
if (sss == false) {
this.delateARRALL.remove(doID)
this.delateARRALL2.remove(doID)
this.flowStatusarr.remove(doStatus)
this.removeInterviewee(item)
this.emailIdArr.remove(doID)
this.emailIdArr.remove(doID)
}
},
//选择搜索元素
selectElement1(tItem,Tindex){
this.searchInfo.SEX=Tindex==0?'':tItem;
this.clickIndex1=Tindex
},
selectElement2(tItem,Tindex){
this.searchInfo.Edu=tItem;
this.clickIndex2=Tindex
// 选择搜索元素
selectElement1 (tItem, Tindex) {
this.searchInfo.SEX = Tindex == 0 ? '' : tItem
this.clickIndex1 = Tindex
},
selectElement2 (tItem, Tindex) {
this.searchInfo.Edu = tItem
this.clickIndex2 = Tindex
},
selectElement3 (tItem, Tindex, status3, sta3) {
sta3 = !sta3
this.state[Tindex].sta = sta3
if (Tindex == 0) {
this.searchInfo.STA = []
this.state.map((item, index) => {
if (index !== 0) {
item.sta = false
}
if (index == 0) {
item.sta = true
}
return item
})
return
}
if (Tindex !== 0) {
this.state[0].sta = false
}
if (sta3 == true) {
this.searchInfo.STA.push(tItem)
}
if (sta3 == false) {
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i
}
return -1
}
Array.prototype.remove = function (val) {
var index = this.indexOf(val)
if (index > -1) {
this.splice(index, 1)
}
}
this.searchInfo.STA.remove(tItem)
}
},
selectElement3(tItem,Tindex,status3,sta3){
sta3=!sta3
this.state[Tindex].sta=sta3
if(Tindex==0){
this.searchInfo.STA=[]
this.state.map((item,index)=>{
if(index!==0){
item.sta=false
}
if(index==0){
item.sta=true
}
return item
})
return
}
if(Tindex!==0){
this.state[0].sta=false
}
if(sta3==true){
this.searchInfo.STA.push(tItem)
}
if(sta3==false){
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
this.searchInfo.STA.remove(tItem)
}
},
// 不可删除状态下点击
undelate(){
this.modal4=true
undelate () {
this.modal4 = true
},
// 批量删除
delateAll(){
var array1 = this.orignarr;//数组1
var array2 = this.flowStatusarr;//数组2
var tempArray1 = [];//临时数组1
var tempArray2 = [];//临时数组2
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
for(var i=0;i<array2.length;i++){
tempArray1[array2[i]]=true;//将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for(var i=0;i<array1.length;i++){
if(tempArray1[array1[i]]){
tempArray2.push(array1[i]);//过滤array1 中与array2 相同的元素;
}
delateAll () {
var array1 = this.orignarr// 数组1
var array2 = this.flowStatusarr// 数组2
var tempArray1 = []// 临时数组1
var tempArray2 = []// 临时数组2
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i
}
return -1
}
Array.prototype.remove = function (val) {
var index = this.indexOf(val)
if (index > -1) {
this.splice(index, 1)
}
}
for (var i = 0; i < array2.length; i++) {
tempArray1[array2[i]] = true// 将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for (var i = 0; i < array1.length; i++) {
if (tempArray1[array1[i]]) {
tempArray2.push(array1[i])// 过滤array1 中与array2 相同的元素;
}
}
if(tempArray2.length!==0){
if (tempArray2.length !== 0) {
this.$Notice.error({
title: '提示',
desc: '您选中的简历中包含不可删除简历'
});
desc: '您选中的简历中包含不可删除简历'
})
return
}
if(this.delateARRALL.length==0){
if (this.delateARRALL.length == 0) {
this.$Notice.error({
title: '提示',
desc: '选项不能为空'
});
return
desc: '选项不能为空'
})
return
}
if(tempArray2.length==0){
this.modal7=true
}
},
//确认批量删除
cofdelateAll(){
var array1 = this.orignarr;//数组1
var array2 = this.flowStatusarr;//数组2
var tempArray1 = [];//临时数组1
var tempArray2 = [];//临时数组2
for(var i=0;i<array2.length;i++){
tempArray1[array2[i]]=true;//将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for(var i=0;i<array1.length;i++){
if(tempArray1[array1[i]]){
tempArray2.push(array1[i]);//过滤array1 中与array2 相同的元素;
}
}
if(tempArray2.length!==0){
this.modal5=true
}
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
this.DELATEARR=this.delateARRALL
deleteREsume(this.DELATEARR).then(res=>{
if(res.data.success==true){
this.modal7=false
this.delateARRALL.map(item => {
this.removeInterviewee({id:item})
})
this.delateARRALL=[]
this.flowStatusarr=[]
this.SouSuo(this.pageT)
}
})
},
// 刷新列表
pushlist(){
this.modal2=false
this.SouSuo(this.pageT)
},
if (tempArray2.length == 0) {
this.modal7 = true
}
},
// 确认批量删除
cofdelateAll () {
var array1 = this.orignarr// 数组1
var array2 = this.flowStatusarr// 数组2
var tempArray1 = []// 临时数组1
var tempArray2 = []// 临时数组2
for (var i = 0; i < array2.length; i++) {
tempArray1[array2[i]] = true// 将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for (var i = 0; i < array1.length; i++) {
if (tempArray1[array1[i]]) {
tempArray2.push(array1[i])// 过滤array1 中与array2 相同的元素;
}
}
if (tempArray2.length !== 0) {
this.modal5 = true
}
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i
}
return -1
}
Array.prototype.remove = function (val) {
var index = this.indexOf(val)
if (index > -1) {
this.splice(index, 1)
}
}
this.DELATEARR = this.delateARRALL
deleteREsume(this.DELATEARR).then(res => {
if (res.data.success == true) {
this.modal7 = false
this.delateARRALL.map(item => {
this.removeInterviewee({ id: item })
})
this.delateARRALL = []
this.flowStatusarr = []
this.SouSuo(this.pageT)
}
})
},
// 刷新列表
pushlist () {
this.modal2 = false
this.SouSuo(this.pageT)
},
// 批量导出
allexport(){
this.optcode=this.$route.params.channelname
let parmars={
optSourceCode:this.optcode,
keywordString:this.keywords==''?'':this.keywords,
company:this.lrgs==''?'':this.lrgs,
ownerSex:this.searchInfo.SEX,
highestDegreeNum:this.searchInfo.Edu,
flowStatusList:this.clickIndex3=0?this.searchInfo.STA=[]:this.searchInfo.STA,
ownerWorkYears1:this.searchInfo.ownerWorkYears1,
ownerWorkYears2:this.searchInfo.ownerWorkYears2,
}
if(this.searchInfo.ownerWorkYears1>this.searchInfo.ownerWorkYears2){
this.$Message.error('最低年限不能大于最高年限')
return
}
if(this.searchInfo.ownerWorkYears2<this.searchInfo.ownerWorkYears1){
this.$Message.error('最高年限不能小于最小年限')
return
}
window.location.href=`${sapi}/api/excel/output?optSourceCode=${parmars.optSourceCode}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`
allexport () {
this.optcode = this.$route.params.channelname
const parmars = {
optSourceCode: this.optcode,
keywordString: this.keywords == '' ? '' : this.keywords,
company: this.lrgs == '' ? '' : this.lrgs,
ownerSex: this.searchInfo.SEX,
highestDegreeNum: this.searchInfo.Edu,
flowStatusList: this.clickIndex3 = 0 ? this.searchInfo.STA = [] : this.searchInfo.STA,
ownerWorkYears1: this.searchInfo.ownerWorkYears1,
ownerWorkYears2: this.searchInfo.ownerWorkYears2
}
if (this.searchInfo.ownerWorkYears1 > this.searchInfo.ownerWorkYears2) {
this.$Message.error('最低年限不能大于最高年限')
return
}
if (this.searchInfo.ownerWorkYears2 < this.searchInfo.ownerWorkYears1) {
this.$Message.error('最高年限不能小于最小年限')
return
}
window.location.href = `${sapi}/api/excel/output?optSourceCode=${parmars.optSourceCode}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`
},
//下载单条简历
downloadONE(downID){
window.location.href=`${sapi}/api/resume/download/formatted/one?resumeId=${downID}`
// 下载单条简历
downloadONE (downID) {
window.location.href = `${sapi}/api/resume/download/formatted/one?resumeId=${downID}`
},
// 操作记录查询
RecordSEE(RID,sname){
this.toseename=sname
this.modal1=true
let parmars={
resumeId:RID
}
recodeLIST(parmars).then(res=>{
this.ownerName=res.data.body.ownerName
this.recordList=res.data.body.map((item,index)=>{
item.ownerName=item.ownerName
item.approveUserName=item.approveUserName
item.dateTime=item.dateTime
item.previousState=item.previousState
item.afterState=item.afterState
return item
})
RecordSEE (RID, sname) {
this.toseename = sname
this.modal1 = true
const parmars = {
resumeId: RID
}
recodeLIST(parmars).then(res => {
this.ownerName = res.data.body.ownerName
this.recordList = res.data.body.map((item, index) => {
item.ownerName = item.ownerName
item.approveUserName = item.approveUserName
item.dateTime = item.dateTime
item.previousState = item.previousState
item.afterState = item.afterState
return item
})
})
},
delInterviewee (item) {
this.removeInterviewee(item)
let indexOf = this.checkboxList.indexOf(item.id)
const indexOf = this.checkboxList.indexOf(item.id)
if (indexOf < 0) return
this.checkboxList.splice(indexOf, 1)
this.delateARRALL.splice(indexOf, 1)
......@@ -1030,584 +1028,577 @@ export default {
}
})
},
//搜索
SouSuo(page, status){
page = typeof(page)=='number'?page:1
// 搜索
SouSuo (page, status) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
this.interviewee = []
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
parameter:{
optSourceCode:this.$route.params.channelname,
keywordString:this.keywords==''?'':this.keywords,
company:this.lrgs==''?'':this.lrgs,
ownerSex:this.searchInfo.SEX,
highestDegreeNum:this.searchInfo.Edu,
flowStatusList:this.clickIndex3=0?this.searchInfo.STA=[]:this.searchInfo.STA,
ownerWorkYears1:this.searchInfo.ownerWorkYears1,
ownerWorkYears2:this.searchInfo.ownerWorkYears2,
ownerExpectTitlesList:this.position,
handUpload:this.$route.query.handUpload==null?'':this.$route.query.handUpload
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex,
parameter: {
optSourceCode: this.$route.params.channelname,
keywordString: this.keywords == '' ? '' : this.keywords,
company: this.lrgs == '' ? '' : this.lrgs,
ownerSex: this.searchInfo.SEX,
highestDegreeNum: this.searchInfo.Edu,
flowStatusList: this.clickIndex3 = 0 ? this.searchInfo.STA = [] : this.searchInfo.STA,
ownerWorkYears1: this.searchInfo.ownerWorkYears1,
ownerWorkYears2: this.searchInfo.ownerWorkYears2,
ownerExpectTitlesList: this.position,
handUpload: this.$route.query.handUpload == null ? '' : this.$route.query.handUpload
}
}
this.ajaxData=[]
if(this.searchInfo.ownerWorkYears1>this.searchInfo.ownerWorkYears2){
this.$Notice.error({
this.ajaxData = []
if (this.searchInfo.ownerWorkYears1 > this.searchInfo.ownerWorkYears2) {
this.$Notice.error({
title: '提示',
desc: '最高年限不能小于最低年限'
});
desc: '最高年限不能小于最低年限'
})
return
}
sousuoList(parmars, status).then(res=>{
let Ishow=res.data.items
if(res.data.success==true){
this.checkboxList=[]
if(res.data.body.totalNumber==0){
this.totalSize=0
sousuoList(parmars, status).then(res => {
const Ishow = res.data.items
if (res.data.success == true) {
this.checkboxList = []
if (res.data.body.totalNumber == 0) {
this.totalSize = 0
}
this.spinShow=false
this.ajaxData=res.data.body.items.map((item,index)=>{
this.totalSize=res.data.body.totalNumber
item.id=item.id
item.ownerName=item.ownerName
item.ownerSex=item.ownerSex
item.belongs=item.belongs
item.emailSendtime=item.emailSendtime
item.ownerMobile=item.ownerMobile
item.ownerHighestDegree=item.ownerHighestDegree
item.ownerExpectTitles=item.ownerExpectTitles
item.flowStatus=item.flowStatus
item.ownerAge=item.ownerAge
item.ownerWorkYears=item.ownerWorkYears
item.modifyTime=item.modifyTime
item.srcSite=item.srcSite
item.STATES=false
item.isShow=false
item.optSource=item.optSource
item.modifier=item.modifier
item.originValue=item.flowStatus
item.uid=item.uid
item.hasRead=item.hasRead
item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0]
if (item.STATES) { //以选中
this.spinShow = false
this.ajaxData = res.data.body.items.map((item, index) => {
this.totalSize = res.data.body.totalNumber
item.id = item.id
item.ownerName = item.ownerName
item.ownerSex = item.ownerSex
item.belongs = item.belongs
item.emailSendtime = item.emailSendtime
item.ownerMobile = item.ownerMobile
item.ownerHighestDegree = item.ownerHighestDegree
item.ownerExpectTitles = item.ownerExpectTitles
item.flowStatus = item.flowStatus
item.ownerAge = item.ownerAge
item.ownerWorkYears = item.ownerWorkYears
item.modifyTime = item.modifyTime
item.srcSite = item.srcSite
item.STATES = false
item.isShow = false
item.optSource = item.optSource
item.modifier = item.modifier
item.originValue = item.flowStatus
item.uid = item.uid
item.hasRead = item.hasRead
item.c = item.modifier == '' ? item.modifier : item.modifier.split('_')
item.d = item.c[0]
if (item.STATES) { // 以选中
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id);
this.delateARRALL.push(item.id)
this.flowStatusarr.push(item.flowStatus)
}
return item
})
})
}
})
})
},
// 刷新列表
pushlist(){
this.modal2=false
pushlist () {
this.modal2 = false
this.SouSuo(this.pageT)
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
},
// 鼠标滑过事件
ahove(index,vvv){
this.ajaxData[index].isShow=true
ahove (index, vvv) {
this.ajaxData[index].isShow = true
},
movleave(index,vvv){
this.ajaxData[index].isShow=false
movleave (index, vvv) {
this.ajaxData[index].isShow = false
},
// 发送邮件
sendEmail(type,status,SID){
this.selectElementValue=status
this.resumePushId=SID
if(this.checkboxList.length == 0&&type) {
this.$Notice.error({
title: '提示',
desc: '你尚未选择简历,请先选择简历'
})
return
}
if (this.checkboxList.length > 1&&type){
this.$Notice.error({
title: '提示',
desc: '不能选择多份简历,请选择单份简历'
})
return
}
this.emailInline.modalArr=[]
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.options=[]
this.emailMOdal=true
getEmailMoo().then(res=>{
this.emailInline.modalArr=res.data.body
// 发送邮件
sendEmail (type, status, SID) {
this.selectElementValue = status
this.resumePushId = SID
if (this.checkboxList.length == 0 && type) {
this.$Notice.error({
title: '提示',
desc: '你尚未选择简历,请先选择简历'
})
this.emailInline.moo = 'TEMP_0001'
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue(value){
if (!value){
return
return
}
if (this.checkboxList.length > 1 && type) {
this.$Notice.error({
title: '提示',
desc: '不能选择多份简历,请选择单份简历'
})
return
}
this.emailInline.modalArr = []
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.options = []
this.emailMOdal = true
getEmailMoo().then(res => {
this.emailInline.modalArr = res.data.body
})
this.emailInline.moo = 'TEMP_0001'
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue (value) {
if (!value) {
return
}
this.isDisable = true
this.temp = value
if (this.isShowTwo == true) {
this.isShowAll = true
this.interviewIsShow = true
} else {
if (this.emailIdArr.length > 1 && (value == 'TEMP_0001' || value == 'TEMP_0005' || value == 'TEMP_0006')) {
this.allEmailVilitor = true
} else {
this.allEmailVilitor = false
if (this.temp == 'TEMP_0001') {
this.isShowAll = true
} else {
this.isShowAll = false
}
}
this.isDisable=true
this.temp=value
if(this.isShowTwo==true){
this.isShowAll=true
this.interviewIsShow=true
}else{
if(this.emailIdArr.length>1&&(value=='TEMP_0001'||value=='TEMP_0005'||value=='TEMP_0006')){
this.allEmailVilitor=true
}else {
this.allEmailVilitor=false
if(this.temp=='TEMP_0001'){
this.isShowAll=true
}else{
this.isShowAll=false
}
if (value == 'TEMP_0001') {
this.interviewIsShow = true
this.isShowAll = true
} else {
this.interviewIsShow = false
this.isShowAll = false
}
if(value=='TEMP_0001'){
this.interviewIsShow=true
this.isShowAll=true
}else{
this.interviewIsShow=false
this.isShowAll=false
this.emailId = this.emailIdArr.length == 0 ? '' : this.emailIdArr[0]
if (value == 'TEMP_0001' && this.emailId == '') {
this.interviewBtu = true
this.isShowAll = true
this.emailMassage = true
} else if (value == 'TEMP_0005' && this.emailId == '') {
this.emailMassage = true
} else if (value == 'TEMP_0006' && this.emailId == '') {
this.emailMassage = true
} else {
if (value == 'TEMP_0001') { this.isShowAll = true } else { this.isShowAll = false }
this.interviewBtu = false
this.emailMassage = false
}
this.emailId=this.emailIdArr.length==0?'':this.emailIdArr[0]
if(value=='TEMP_0001' &&this.emailId==''){
this.interviewBtu=true
this.isShowAll=true
this.emailMassage=true
}
this.emailCode = value
const parmars = {
resumeId: this.emailId == '' ? '' : this.emailId,
templateCode: this.emailCode
}
getEmailContent(parmars).then(res => {
this.emailInline.theme = res.data.body.templateSubject
this.emailInline.receiveEmail = res.data.body.receiveEmail
this.emailInline.templateContent = res.data.body.templateContent
this.editorObject = {
type: value,
value: this.emailInline.templateContent || ''
}
else if(value=='TEMP_0005' && this.emailId==''){
this.emailMassage=true
if (res.data.body && res.data.body.resumeInterviewVO) {
this.formInline.UpdateOWER = res.data.body.resumeInterviewVO.inviterName
this.formInline.UpdateVIEW = res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateTIME = res.data.body.resumeInterviewVO.seeTime
this.changeTime(this.formInline.UpdateTIME)
} else {
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
}
else if(value=='TEMP_0006' && this.emailId==''){
this.emailMassage=true
})
},
uploadFile () {
// this.uploadFileList=[]
this.limentName = 0
},
beforUpload (uploadFile) {
let isLiment = false
if (uploadFile.size / 1024 > 10240) {
isLiment = true
this.limentName += 1
if (this.limentName == 1) {
this.$Notice.error({
title: '提示',
desc: '单个文件不能大于10M'
})
}
} else {
this.fileList.push(uploadFile.name)
this.uploadFileList.push(uploadFile)
}
return false
},
// 发送全部内容
sendContent () {},
emailModalPush () {
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.isLimitSize = false
this.uploadFileList = []
// this.SouSuo(this.pageT,'init')
// this.clearInterviewee()
this.ajaxData.map(item => {
if (item.id == this.resumePushId) {
item.flowStatus = item.originValue
}
else{
if(value=='TEMP_0001'){this.isShowAll=true}else{this.isShowAll=false}
this.interviewBtu=false
this.emailMassage=false
}}
this.emailCode=value
let parmars={
resumeId:this.emailId==''?'':this.emailId,
templateCode:this.emailCode
})
},
getEditorValue () { // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
},
delateFile (index) {
this.fileList.splice(index, 1)
this.uploadFileList.splice(index, 1)
// this.isLimitSize=false
},
// 确认发送邮件
confireSendEmail: _debounce(function () {
this.sad = this.getEditorValue()
if (this.sad == '') {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if (this.emailInline.moo == '') {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if ((this.temp == 'TEMP_0001') && (this.emailInline.moo == '' || this.emailInline.receiveEmail == '' || this.emailInline.theme == '' || this.formInline.UpdateOWER == '' || this.formInline.UpdateVIEW == '' || this.formInline.UpdateTIME == '')) {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if ((this.temp == 'TEMP_0002' || this.temp == 'TEMP_0003' || this.temp == 'TEMP_0004' || this.temp == 'TEMP_0005' || this.temp == 'TEMP_0006') && (this.emailInline.moo == '' || this.emailInline.receiveEmail == '' || this.emailInline.theme == '')) {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if ((this.temp == 'TEMP_0001' || this.temp == 'TEMP_0005' || this.temp == 'TEMP_0006') && this.emailId == '') {
this.$Notice.error({
title: '提示',
desc: '请先选择简历'
})
return
}
if (this.emailInline.copyname !== '' && !(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
return
}
if (!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
return
}
if ((this.emailIdArr.length > 1) && (this.temp == 'TEMP_0001' || this.temp == 'TEMP_0005' || this.temp == 'TEMP_0006')) {
this.$Notice.error({
title: '提示',
desc: '不能选择多份简历,请选择单份简历'
})
return
}
this.attachFileList = this.uploadFileList.length == 0 ? '' : this.uploadFileList
this.flowStatusTT = this.emailFlowStatus == '' ? '' : 'TO_SEE'
this.UpdateTIMETwo = this.formInline.UpdateTIME == '' ? '' : this.formInline.UpdateTIME
if (this.temp == 'TEMP_0001') {
var formData = new FormData()
if (this.attachFileList.length !== 0) {
this.attachFileList.map(item => {
formData.append('attachFileList', item)
})
} else {
formData.append('attachFileList', '')
}
getEmailContent(parmars).then(res=>{
this.emailInline.theme=res.data.body.templateSubject
this.emailInline.receiveEmail=res.data.body.receiveEmail
this.emailInline.templateContent=res.data.body.templateContent
this.editorObject = {
type: value,
value: this.emailInline.templateContent || ''
formData.append('resumeId', this.emailId)
formData.append('templateCode', this.emailCode)
formData.append('subject', this.emailInline.theme)
formData.append('toEmail', this.emailInline.receiveEmail)
formData.append('ccEmail', this.emailInline.copyname)
formData.append('emailContent', this.sad)
formData.append('resumeInterviewVO.resumeId', this.emailId)
formData.append('resumeInterviewVO.inviterName', this.formInline.UpdateOWER == '' ? '' : this.formInline.UpdateOWER)
formData.append('resumeInterviewVO.interviewerName', this.formInline.UpdateVIEW == '' ? '' : this.formInline.UpdateVIEW)
const info = this.options.find(item => item.name == this.formInline.UpdateVIEW)
formData.append('resumeInterviewVO.email', (info && info.email) || '')
formData.append('sendWeixin', this.formInline.sendWeixin == true ? 1 : 0)
formData.append('resumeInterviewVO.seeTime', moment(this.UpdateTIMETwo).format('YYYY/MM/DD HH:mm'))
formData.append(' flowStatus', this.flowStatusTT)
sendEmail(formData).then(res => {
this.isDisable = true
if (res.data.success == true) {
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
}, 500)
this.emailMOdal = false
this.modal10 = false
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.uploadFileList = []
this.clearInterviewee()
this.SouSuo(this.pageT)
}
if(res.data.body&&res.data.body.resumeInterviewVO){
this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.inviterName
this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateTIME=res.data.body.resumeInterviewVO.seeTime
this.changeTime(this.formInline.UpdateTIME)
}else{
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
if (res.data.success == false) {
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
})
},
uploadFile(){
// this.uploadFileList=[]
this.limentName=0
},
beforUpload(uploadFile){
let isLiment=false
if(uploadFile.size/1024 > 10240){
isLiment=true
this.limentName+=1
if(this.limentName==1){
this.$Notice.error({
title: '提示',
desc: '单个文件不能大于10M'
})
}
}else{
this.fileList.push(uploadFile.name)
this.uploadFileList.push(uploadFile)
}
return false
},
// 发送全部内容
sendContent(){},
emailModalPush(){
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.isLimitSize=false
this.uploadFileList=[]
// this.SouSuo(this.pageT,'init')
// this.clearInterviewee()
this.ajaxData.map(item=>{
if(item.id==this.resumePushId){
item.flowStatus=item.originValue
}
})
},
getEditorValue(){ // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
},
delateFile(index){
this.fileList.splice(index,1)
this.uploadFileList.splice(index,1)
// this.isLimitSize=false
},
// 确认发送邮件
confireSendEmail:_debounce(function(){
this.sad=this.getEditorValue()
if(this.sad==''){
this.$Notice.error({
} else {
var formData = new FormData()
if (this.attachFileList.length !== 0) {
this.attachFileList.map(item => {
formData.append('attachFileList', item)
})
} else {
formData.append('attachFileList', '')
}
formData.append('resumeId', this.emailId)
formData.append('templateCode', this.emailCode)
formData.append('subject', this.emailInline.theme)
formData.append('toEmail', this.emailInline.receiveEmail)
formData.append('ccEmail', this.emailInline.copyname)
formData.append('emailContent', this.sad)
formData.append(' flowStatus', this.flowStatusTT)
this.isDisable = false
sendEmail(formData).then(res => {
this.isDisable = true
if (res.data.success == true) {
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '请填写完整的信息'
});
return
desc: '发送邮件成功'
})
}, 500)
this.emailMOdal = false
this.modal10 = false
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.isShowTwo = false
this.isLimitSize = false
this.emailInline.copyname = ''
this.uploadFileList = []
this.clearInterviewee()
this.SouSuo(this.pageT)
}
if(this.emailInline.moo==''){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
return
}
if((this.temp=='TEMP_0001')&&(this.emailInline.moo==''||this.emailInline.receiveEmail==''||this.emailInline.theme==''||this.formInline.UpdateOWER==''||this.formInline.UpdateVIEW==''||this.formInline.UpdateTIME=='')){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
return
}
if((this.temp=='TEMP_0002'||this.temp=='TEMP_0003'||this.temp=='TEMP_0004'||this.temp=='TEMP_0005'||this.temp=='TEMP_0006')&&(this.emailInline.moo==''||this.emailInline.receiveEmail==''||this.emailInline.theme=='')){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
return
}
if((this.temp=='TEMP_0001'|| this.temp=='TEMP_0005'|| this.temp=='TEMP_0006')&&this.emailId==''){
this.$Notice.error({
title: '提示',
desc: '请先选择简历'
});
return
}
if(this.emailInline.copyname!==''&&!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))){
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
return
}
if(!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))){
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
return
}
if((this.emailIdArr.length>1)&&(this.temp=='TEMP_0001'|| this.temp=='TEMP_0005'|| this.temp=='TEMP_0006')){
this.$Notice.error({
title: '提示',
desc: '不能选择多份简历,请选择单份简历'
});
return
}
this.attachFileList=this.uploadFileList.length==0?'':this.uploadFileList
this.flowStatusTT=this.emailFlowStatus==''?'':'TO_SEE'
this.UpdateTIMETwo=this.formInline.UpdateTIME==''?'':this.formInline.UpdateTIME
if(this.temp=='TEMP_0001'){
var formData= new FormData()
if(this.attachFileList.length!==0){
this.attachFileList.map(item=>{
formData.append('attachFileList',item)
})
}else{
formData.append('attachFileList','')
}
formData.append('resumeId',this.emailId)
formData.append('templateCode',this.emailCode)
formData.append('subject',this.emailInline.theme)
formData.append('toEmail',this.emailInline.receiveEmail)
formData.append('ccEmail',this.emailInline.copyname)
formData.append('emailContent',this.sad)
formData.append('resumeInterviewVO.resumeId',this.emailId)
formData.append('resumeInterviewVO.inviterName',this.formInline.UpdateOWER==''?'':this.formInline.UpdateOWER)
formData.append('resumeInterviewVO.interviewerName',this.formInline.UpdateVIEW==''?'':this.formInline.UpdateVIEW)
let info = this.options.find(item => item.name == this.formInline.UpdateVIEW)
formData.append('resumeInterviewVO.email',(info&&info.email) || '')
formData.append('sendWeixin',this.formInline.sendWeixin==true? 1:0)
formData.append('resumeInterviewVO.seeTime',moment( this.UpdateTIMETwo).format('YYYY/MM/DD HH:mm'))
formData.append(' flowStatus',this.flowStatusTT)
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
}, 500)
this.emailMOdal=false
this.modal10=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.uploadFileList=[]
this.clearInterviewee()
this.SouSuo(this.pageT)
}
if(res.data.success==false){
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
})
}else{
var formData= new FormData()
if(this.attachFileList.length!==0){
this.attachFileList.map(item=>{
formData.append('attachFileList',item)
})
}else{
formData.append('attachFileList','')
}
formData.append('resumeId',this.emailId)
formData.append('templateCode',this.emailCode)
formData.append('subject',this.emailInline.theme)
formData.append('toEmail',this.emailInline.receiveEmail)
formData.append('ccEmail',this.emailInline.copyname)
formData.append('emailContent',this.sad)
formData.append(' flowStatus',this.flowStatusTT)
this.isDisable=false
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
}, 500)
this.emailMOdal=false
this.modal10=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.isShowTwo=false
this.isLimitSize=false
this.emailInline.copyname=''
this.uploadFileList=[]
this.clearInterviewee()
this.SouSuo(this.pageT)
}
if(res.data.success==false){
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
})
}
},800),
changenotice(a){
},
receiveEmail(){
if(!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))){
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
this.isDisable=false
return
}else{
this.isDisable=true
}
},
copyname(){
if(this.emailInline.copyname!==''&&!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))){
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
this.isDisable=false
return
}else{
this.isDisable=true
}
},
theme(){
if(this.emailInline.theme==''){
this.$Notice.error({
title: '提示',
desc: '请填写主题'
});
this.isDisable=false
return
}else{
this.isDisable=true
}
},
UpdateOWER(){
if(this.formInline.UpdateOWER==''){
this.isDisable=false
}else{
this.isDisable=true
}
},
UpdateTIME(){
if(this.formInline.UpdateTIME==''){
this.isDisable=false
}else{
this.isDisable=true
}
},
UpdateVIEW(){
if(this.formInline.UpdateVIEW==''){
this.isDisable=false
}else{
this.isDisable=true
}
},
delateFile(index){
this.fileList.splice(index,1)
if (res.data.success == false) {
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
})
}
}, 800),
changenotice (a) {
},
transpond() { //打开转发简历的modal
if(this.interviewee.length == 0) {
this.$Notice.error({
title: '提示',
desc: '请选择您要转发的简历'
});
receiveEmail () {
if (!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
this.isDisable = false
} else {
this.isDisable = true
}
},
copyname () {
if (this.emailInline.copyname !== '' && !(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
this.isDisable = false
} else {
this.isDisable = true
}
},
theme () {
if (this.emailInline.theme == '') {
this.$Notice.error({
title: '提示',
desc: '请填写主题'
})
this.isDisable = false
} else {
this.isDisable = true
}
},
UpdateOWER () {
if (this.formInline.UpdateOWER == '') {
this.isDisable = false
} else {
this.isDisable = true
}
},
UpdateTIME () {
if (this.formInline.UpdateTIME == '') {
this.isDisable = false
} else {
this.isDisable = true
}
},
UpdateVIEW () {
if (this.formInline.UpdateVIEW == '') {
this.isDisable = false
} else {
this.isDisable = true
}
},
delateFile (index) {
this.fileList.splice(index, 1)
},
transpond () { // 打开转发简历的modal
if (this.interviewee.length == 0) {
this.$Notice.error({
title: '提示',
desc: '请选择您要转发的简历'
})
return
}
this.$refs.transpondFrom.resetFields()
this.modal8= true
this.modal8 = true
},
sendNotice:_debounce( function() {
sendNotice: _debounce(function () {
this.$refs.transpondFrom.validate(valid => {
if(!this.transpondFrom.interviewerName){
if (!this.transpondFrom.interviewerName) {
return
}
if (this.interviewee.length < 1) {
this.$Notice.warning({title: '提示',desc: '发送内容为空,请勾选您要发送的简历'})
this.$Notice.warning({ title: '提示', desc: '发送内容为空,请勾选您要发送的简历' })
return
}
let resumeIdList = []
this.interviewee.map(item => {
resumeIdList.push(item.id)
})
let params = {
resumeIdList,
email: this.transpondFrom.interviewerName
}
forwardResume(params).then(res => {
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
this.isShowRep=false
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
})
}, 500)
this.SouSuo(this.pageT)
}
if(res.data.body.code=='40009'){
this.reResumeName=res.data.body.message
this.isShowRep=true
return
}
if(res.data.body.code=='0'){
this.modal8=false
this.isShowRep=false
this.$Notice.error({
const resumeIdList = []
this.interviewee.map(item => {
resumeIdList.push(item.id)
})
const params = {
resumeIdList,
email: this.transpondFrom.interviewerName
}
forwardResume(params).then(res => {
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
this.isShowRep = false
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: res.data.body.message
})
return
}
if(res.data.success==false){
this.modal8=false
this.modal12=true
this.isShowRep=false
this.errorNotice=res.data.body.message
}
})
desc: '发送成功'
})
}, 500)
this.SouSuo(this.pageT)
}
if (res.data.body.code == '40009') {
this.reResumeName = res.data.body.message
this.isShowRep = true
return
}
if (res.data.body.code == '0') {
this.modal8 = false
this.isShowRep = false
this.$Notice.error({
title: '提示',
desc: res.data.body.message
})
return
}
if (res.data.success == false) {
this.modal8 = false
this.modal12 = true
this.isShowRep = false
this.errorNotice = res.data.body.message
}
})
})
},800),
pushSendNotice(){
this.modal8=false,
this.isShowRep=false
}, 800),
pushSendNotice () {
this.modal8 = false,
this.isShowRep = false
},
remoteMethod: function(query){
remoteMethod: function (query) {
if (query !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
let list = []
query = query.split('(')[0]
findCompanyEmailByKey(query).then(res => {
list = res
this.options = list.data.body || []
}, 200);
})
this.loading1 = true
setTimeout(() => {
this.loading1 = false
let list = []
query = query.split('(')[0]
findCompanyEmailByKey(query).then(res => {
list = res
this.options = list.data.body || []
}, 200)
})
} else {
this.options = [];
this.options = []
}
},
removeInterviewee (value) {
this.interviewee.map((item, index) => {
if (value&&item.id == value.id) {
if (value && item.id == value.id) {
this.interviewee.splice(index, 1)
}
})
......@@ -1615,10 +1606,9 @@ export default {
addInterviewee (data) {
let flag = false
this.interviewee.map(item => {
if (data&&item.id == data.id) {
flag = true
return
}
if (data && item.id == data.id) {
flag = true
}
})
if (!flag) {
this.interviewee.push(data)
......@@ -1633,182 +1623,178 @@ export default {
item.STATES = false
})
},
getfocus(form, name, e){
let vm = this;
let value = this[form][name]
if(name == 'receiveEmail') {
this.tip&&this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
vm.tip = false
}
getfocus (form, name, e) {
const vm = this
const value = this[form][name]
if (name == 'receiveEmail') {
this.tip && this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
vm.tip = false
}
})
} else {
if (name=='UpdateTIME'&&e==false){ // 时间选择器关闭弹框的时候
if (name == 'UpdateTIME' && e == false) { // 时间选择器关闭弹框的时候
this.$refs.formInline.validateField('UpdateTIME', (e) => {})
return
}
if (name=='UpdateVIEW'&&e==false){ // 选择关闭弹框的时候
if (name == 'UpdateVIEW' && e == false) { // 选择关闭弹框的时候
this.$refs.formInline.validateField('UpdateVIEW', (e) => {})
return
}
this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
}
if (e.prop == name) {
e.resetField()
vm[form][name] = value
}
})
}
},
submit() {
submit () {
let flag = false
this.$refs.emailInline.validate(val => {
if (!val) {
flag = true
return
}
})
this.$refs.formInline.validate(val => {
if (!val) {
flag = true
return
if (!val) {
flag = true
}
})
this.$refs.formInline.validate(val => {
if (!val) {
flag = true
}
})
if (!flag) {
this.modal10 = true
}
})
if (!flag){
this.modal10=true
}
},
cancelSubmit(){
this.modal11= false
this.emailMOdal=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.isLimitSize=false
this.uploadFileList=[]
cancelSubmit () {
this.modal11 = false
this.emailMOdal = false
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.isLimitSize = false
this.uploadFileList = []
this.clearInterviewee()
}
},
watch: {
'$route' (to, from) {
this.searchInfo={
pageSize:30,
pageIndex:1,
id:'',
SEX:'',
Edu:'',
ccc:'',
itemSelect:'',
STA:[],
status:"",
ownerWorkYears1:'',
ownerWorkYears2:'',
this.searchInfo = {
pageSize: 30,
pageIndex: 1,
id: '',
SEX: '',
Edu: '',
ccc: '',
itemSelect: '',
STA: [],
status: '',
ownerWorkYears1: '',
ownerWorkYears2: ''
}
this.activeClass = 0
this.clickIndex1 = 0
this.clickIndex2 = 0
this.lickIndex3 = 0
this.keywords=''
this.lrgs=''
this.position=[]
this.keywords = ''
this.lrgs = ''
this.position = []
this.state.map(item => {
item.sta = item.status3=='不限' ?true:false
item.sta = item.status3 == '不限'
})
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
parameter:{
sourceCode:this.$route.params.channelname,
handUpload:this.$route.query.handUpload==null?'':this.$route.query.handUpload
}
}
this.getpositionList()
this.ajaxData=[]
this.interviewee = []
adoptOneSeeResumeList(parmars).then(res=>{
if(res.data.success==true){
this.checkboxList=[]
if(res.data.body.totalNumber==0){
this.totalSize=0
}
this.totalSize=res.data.body.totalNumber
this.quanxuan.push(res.data.body.items.id)
this.ajaxData=res.data.body.items.map((item,index)=>{
item.id=item.id
item.ownerName=item.ownerName
item.ownerSex=item.ownerSex
item.deliveryTime=item.deliveryTime
item.belongs=item.belongs
item.emailSendtime=item.emailSendtime
item.ownerMobile=item.ownerMobile
item.ownerHighestDegree=item.ownerHighestDegree
item.ownerExpectTitles=item.ownerExpectTitles
item.flowStatus=item.flowStatus
item.ownerAge=item.ownerAge
item.ownerWorkYears=item.ownerWorkYears
item.modifyTime=item.modifyTime
item.srcSite=item.srcSite
item.STATES=false
item.isShow=false
item.hasRead=item.hasRead
item.optSource=item.optSource
item.originValue=item.flowStatus
item.modifier=item.modifier
item.uid=item.uid
item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0]
return item
})
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex,
parameter: {
sourceCode: this.$route.params.channelname,
handUpload: this.$route.query.handUpload == null ? '' : this.$route.query.handUpload
}
}
this.getpositionList()
this.ajaxData = []
this.interviewee = []
adoptOneSeeResumeList(parmars).then(res => {
if (res.data.success == true) {
this.checkboxList = []
if (res.data.body.totalNumber == 0) {
this.totalSize = 0
}
})
this.totalSize = res.data.body.totalNumber
this.quanxuan.push(res.data.body.items.id)
this.ajaxData = res.data.body.items.map((item, index) => {
item.id = item.id
item.ownerName = item.ownerName
item.ownerSex = item.ownerSex
item.deliveryTime = item.deliveryTime
item.belongs = item.belongs
item.emailSendtime = item.emailSendtime
item.ownerMobile = item.ownerMobile
item.ownerHighestDegree = item.ownerHighestDegree
item.ownerExpectTitles = item.ownerExpectTitles
item.flowStatus = item.flowStatus
item.ownerAge = item.ownerAge
item.ownerWorkYears = item.ownerWorkYears
item.modifyTime = item.modifyTime
item.srcSite = item.srcSite
item.STATES = false
item.isShow = false
item.hasRead = item.hasRead
item.optSource = item.optSource
item.originValue = item.flowStatus
item.modifier = item.modifier
item.uid = item.uid
item.c = item.modifier == '' ? item.modifier : item.modifier.split('_')
item.d = item.c[0]
return item
})
}
})
},
checkboxList: {
handler: function (val, oldVal) {
if(this.ajaxData.length==0){
this.checked=false
return
handler: function (val, oldVal) {
if (this.ajaxData.length == 0) {
this.checked = false
return
}
if(this.delateARRALL.length==30){
this.checked=true
if (this.delateARRALL.length == 30) {
this.checked = true
return
}
if(this.delateARRALL.length!==30){
this.checked=false
if (this.delateARRALL.length !== 30) {
this.checked = false
return
}
if (this.checkboxList.length === this.ajaxData.length) {
this.checked=true;
}
else {
this.checked=false;
this.checked = true
} else {
this.checked = false
}
},
deep: true
}
},
mounted(){
mounted () {
this.SouSuo(null, 'init')
this.getpositionList()
document.addEventListener('visibilitychange',()=>{
var isHidden = document.hidden;
if(isHidden){
document.addEventListener('visibilitychange', () => {
var isHidden = document.hidden
if (isHidden) {
document.title = '思坦途'
} else {
document.title = '思坦途'
......@@ -1855,7 +1841,7 @@ export default {
width: 70.5%;
float: left;
position:relative;
}
.resumeRightContentTop{
width: 100%;
......
......@@ -135,45 +135,45 @@
</div>
</template>
<script>
import {seedetail} from '../../api/resume.server'
import { seedetail } from '../../api/resume.server'
import localStorage from '../../service/localstorage.service.js'
import {
import {
sapi
}from '../../config'
} from '../../config'
export default {
data(){
data () {
return {
resume:{},
riList:[],
roList:[],
rpList:[],
reList:[],
downresume:'',
detialID:'',
showBtn:'',
resume: {},
riList: [],
roList: [],
rpList: [],
reList: [],
downresume: '',
detialID: '',
showBtn: ''
}
},
methods: {
getDETAIL(){
this.detialID=this.$route.query.ID
this.showBtn=this.$route.query.noShowBtn
let token = this.$route.query.token || ''
let parmars={
uid:this.$route.query.id
// uid:"0646215721cc43ccb51ff3e979959e35"
}
seedetail(parmars).then(res=>{
this.resume=res.data.body.resume
this.riList=res.data.body.riList
this.roList=res.data.body.roList
this.rpList=res.data.body.rpList
this.reList=res.data.body.reList
})
},
},
mounted(){
this.getDETAIL()
methods: {
getDETAIL () {
this.detialID = this.$route.query.ID
this.showBtn = this.$route.query.noShowBtn
const token = this.$route.query.token || ''
const parmars = {
uid: this.$route.query.id
// uid:"0646215721cc43ccb51ff3e979959e35"
}
seedetail(parmars).then(res => {
this.resume = res.data.body.resume
this.riList = res.data.body.riList
this.roList = res.data.body.roList
this.rpList = res.data.body.rpList
this.reList = res.data.body.reList
})
}
},
mounted () {
this.getDETAIL()
}
}
</script>
<style scoped>
......@@ -329,4 +329,3 @@ export default {
/* border: 1px solid red */
}
</style>
......@@ -206,9 +206,9 @@
:loading="loading1" placeholder='请输入面试官全名' clearable @on-open-change='getfocus("formInline", "UpdateVIEW", $event)' ref='setQuery' :label='formInline.UpdateVIEW'>
<Option v-for='(item, index) in options' :key='index' :value='item.name'>{{item.name}}({{item.email}})</Option>
</Select>
</FormItem>
</FormItem>
</Form>
</div>
</div>
<div class="ckeditor">
......@@ -227,7 +227,7 @@
</span>
</p>
<p v-for="(item,index) in fileList" :key="index" style="height:30px;line-height:30px">
<span style="margin-left:60px">{{item}}</span>
<span style="margin-left:60px">{{item}}</span>
<span><Icon type="md-close" @click="delateFile(index)" style="font-size:16px;float:right;margin-right:80px" /></span>
</p>
</div>
......@@ -317,635 +317,650 @@
<script>
import moment from 'moment'
import pdf from 'vue-pdf'
// import moment from '../../../static/1.pdf'
require('../../../static/pdf/pdf.js')
// let mammoth = require("mammoth");
import {seedetail,updatastatus,TODORes,sendEmail,getEmailMoo,getEmailContent,uploadimage, findCompanyEmailByKey,forwardResume,getPdf,isShowPDF,getpdfUrl} from '../../api/resume.server'
// let mammoth = require("mammoth");
import { seedetail, updatastatus, TODORes, sendEmail, getEmailMoo, getEmailContent, uploadimage, findCompanyEmailByKey, forwardResume, getPdf, isShowPDF, getpdfUrl } from '../../api/resume.server'
import localStorage from '../../service/localstorage.service.js'
import {
import {
sapi
}from '../../config'
} from '../../config'
import ckeditor from '../../components/ckeditor'
import{_debounce,_throttle,emailValidata, emailRule, vidte, validator} from '../../service/util.js'
import { _debounce, _throttle, emailValidata, emailRule, vidte, validator } from '../../service/util.js'
// import moment from '../../../static/1.pdf'
require('../../../static/pdf/pdf.js')
export default {
data(){
data () {
return {
resume:{},
riList:[],
roList:[],
rpList:[],
reList:[],
name:'',
detailSta:'',
pdfUrl:'',
emailMOdal:false,
resume: {},
riList: [],
roList: [],
rpList: [],
reList: [],
name: '',
detailSta: '',
pdfUrl: '',
emailMOdal: false,
tip: false,
loading1: false,
modal8:false,
modal10:false,
modal11:false,
modal12:false,
modal13:false,
modal14:false,
modal15:false,
modal16:false,
modal17:false,
boxIsShow:false,
resumeBTn:false,
isShowPdf:true,
errorNotice:'',
px:1200,
showOriginalDisabled:true,
OriginalContent:'',
StandardContent:'',
showStandardDisabled:false,
errorMassage:'',
modal8: false,
modal10: false,
modal11: false,
modal12: false,
modal13: false,
modal14: false,
modal15: false,
modal16: false,
modal17: false,
boxIsShow: false,
resumeBTn: false,
isShowPdf: true,
errorNotice: '',
px: 1200,
showOriginalDisabled: true,
OriginalContent: '',
StandardContent: '',
showStandardDisabled: false,
errorMassage: '',
interviewee: [],
contentName:'',
a:{'a_b':'hjbjhbjbh','b':'4'},
detailStatus:{'TO_DO':'待处理','INTERVIEW_OK':'面试合适','INTERVIEW_FAIL':'面试淘汰','END':'终止面试','SEE_FAIL':'约面失败','NO_ENTRY':'未入职',
'TO_SEE':'准备约面','END':'终止面试','SEE_FAIL':'约面失败','NO_ENTRY':'未入职','HAS_SEE':'已邀约','OPTION':'备选','TO_SENT_OFFER':'待Offer','HAS_SENT_OFFER':'已发offer',
'TO_ENTRY':'待入职', 'HAS_ENTRY':'已入职', 'PASS':'PASS', 'RESET':'重启面试','ARRIVED':'已到达'},
contentName: '',
a: { a_b: 'hjbjhbjbh', b: '4' },
detailStatus: {
TO_DO: '待处理',
INTERVIEW_OK: '面试合适',
INTERVIEW_FAIL: '面试淘汰',
END: '终止面试',
SEE_FAIL: '约面失败',
NO_ENTRY: '未入职',
TO_SEE: '准备约面',
END: '终止面试',
SEE_FAIL: '约面失败',
NO_ENTRY: '未入职',
HAS_SEE: '已邀约',
OPTION: '备选',
TO_SENT_OFFER: '待Offer',
HAS_SENT_OFFER: '已发offer',
TO_ENTRY: '待入职',
HAS_ENTRY: '已入职',
PASS: 'PASS',
RESET: '重启面试',
ARRIVED: '已到达'
},
// detailStatus:[{sta:'TO_DO',detailSta:'待处理'},{sta:'INTERVIEW_OK',detailSta:'面试合适'},{sta:'INTERVIEW_FAIL',detailSta:'面试淘汰'},
// {sta:'END',detailSta:'终止面试'},{sta:'SEE_FAIL',detailSta:'约面失败'},{sta:'NO_ENTRY',detailSta:'未入职'},{sta:'TO_SEE',detailSta:'准备约面'},
// {sta:'HAS_SEE',detailSta:'已邀约'},{sta:'OPTION',detailSta:'备选'},{sta:'TO_SENT_OFFER',detailSta:'待Offer'},{sta:'HAS_SENT_OFFER',detailSta:'已发offer'},{sta:'TO_ENTRY',detailSta:'待入职'},
// {sta:'HAS_ENTRY',detailSta:'已入职'},{sta:'PASS',detailSta:'PASS'},{sta:'RESET',detailSta:'重启面试'},{sta:'ARRIVED',detailSta:'已到达'}],
emailId:'',
emailId: '',
transpondFrom: {
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator.bind(this)}]
interviewerName: [{ required: true, trigger: 'blur', validator: validator.bind(this) }]
},
options: [],
todoDisabled:false,
passDisabled:false,
optionDisabled:false,
editorObject: {type: '', value: ''},
todoDisabled: false,
passDisabled: false,
optionDisabled: false,
editorObject: { type: '', value: '' },
tipInfo: '输入多个邮箱地址以英文”;“分隔',
fileList:[],
UpdateTIMETwo:'',
uploadFileList:[],
temp:'',
uploadurl:`${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
downresume:'',
detialID:'',
showBtn:'',
errorInfo:'',
isShowAll:false,
isShowTwo:false,
interviewIsShow:false,
reResumeName:'',
isShowRep:false,
hasINterview:false,
resumeIdList:[],
fileList: [],
UpdateTIMETwo: '',
uploadFileList: [],
temp: '',
uploadurl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`,
downresume: '',
detialID: '',
showBtn: '',
errorInfo: '',
isShowAll: false,
isShowTwo: false,
interviewIsShow: false,
reResumeName: '',
isShowRep: false,
hasINterview: false,
resumeIdList: [],
options3: {
disabledDate (date) {
return date && date.valueOf() <Date.now()-3600*24*1000;
return date && date.valueOf() < Date.now() - 3600 * 24 * 1000
}
},
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur',validator: emailValidata.bind(this)}
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata.bind(this) }
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata.bind(this)}
{ required: true, message: '面试时间不能为空', trigger: 'change', type: 'date', validator: emailValidata.bind(this) }
],
UpdateVIEW: [
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this), type: String}
UpdateVIEW: [
{ required: true, message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this), type: String }
]
},
emailruleInline: {
receiveEmail: [{required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this)}],
theme: [{required: true, trigger: 'blur',message: '主题不能为空', validator: emailValidata.bind(this)}],
copyname: [{required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this), empty: true}]
},
formInline:{
UpdateOWER:'',
UpdateTIME:'',
UpdateVIEW:'',
},
emailruleInline: {
receiveEmail: [{ required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this) }],
theme: [{ required: true, trigger: 'blur', message: '主题不能为空', validator: emailValidata.bind(this) }],
copyname: [{ required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata.bind(this), empty: true }]
},
formInline: {
UpdateOWER: '',
UpdateTIME: '',
UpdateVIEW: '',
sendWeixin: true
},
emailInline:{
moo:'',
modalArr:[],
copyname:'',
receiveEmail:'',//收件人
theme:'',//主题
Enclosure:[],//附件
templateContent:'',//模板内容
},
},
emailInline: {
moo: '',
modalArr: [],
copyname: '',
receiveEmail: '', // 收件人
theme: '', // 主题
Enclosure: [], // 附件
templateContent: ''// 模板内容
}
}
},
components:{
components: {
ckeditor,
pdf
},
methods: {
getDETAIL(){
this.detialID=this.$route.query.ID
methods: {
getDETAIL () {
this.detialID = this.$route.query.ID
this.resumeIdList.push(this.$route.query.ID)
this.emailId=this.$route.query.ID
this.detailSta=this.$route.query.status
this.showBtn=this.$route.query.noShowBtn
let token = this.$route.query.token || ''
let parmars={
uid:this.$route.query.id
this.emailId = this.$route.query.ID
this.detailSta = this.$route.query.status
this.showBtn = this.$route.query.noShowBtn
const token = this.$route.query.token || ''
const parmars = {
uid: this.$route.query.id
}
seedetail(parmars).then(res=>{
this.resume=res.data.body.resume
this.riList=res.data.body.riList
this.roList=res.data.body.roList
this.rpList=res.data.body.rpList
this.reList=res.data.body.reList
this.name=res.data.body.resume.ownerName
seedetail(parmars).then(res => {
this.resume = res.data.body.resume
this.riList = res.data.body.riList
this.roList = res.data.body.roList
this.rpList = res.data.body.rpList
this.reList = res.data.body.reList
this.name = res.data.body.resume.ownerName
})
},
// 下载简历
downloadONE(doid){
window.location.href=`${sapi}/api/resume/download/formatted/one?resumeId=${doid}`
// 下载简历
downloadONE (doid) {
window.location.href = `${sapi}/api/resume/download/formatted/one?resumeId=${doid}`
},
// 发送邮件
sendEmail(type){
this.emailInline.modalArr=[]
sendEmail (type) {
this.emailInline.modalArr = []
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.emailInline.moo = 'TEMP_0001'
this.options=[]
this.emailMOdal=true
getEmailMoo().then(res=>{
this.emailInline.modalArr=res.data.body
})
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue(value){
if (!value){
return
}
this.isDisable=true
this.temp=value
this.emailCode=value
let params={
resumeId:this.emailId==''?'':this.emailId,
templateCode:this.emailCode
this.options = []
this.emailMOdal = true
getEmailMoo().then(res => {
this.emailInline.modalArr = res.data.body
})
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue (value) {
if (!value) {
return
}
this.isDisable = true
this.temp = value
this.emailCode = value
const params = {
resumeId: this.emailId == '' ? '' : this.emailId,
templateCode: this.emailCode
}
getEmailContent(params).then(res => {
this.emailInline.theme = res.data.body.templateSubject
this.emailInline.receiveEmail = res.data.body.receiveEmail
this.emailInline.templateContent = res.data.body.templateContent
this.editorObject = {
type: value,
value: this.emailInline.templateContent || ''
}
getEmailContent(params).then(res=>{
this.emailInline.theme=res.data.body.templateSubject
this.emailInline.receiveEmail=res.data.body.receiveEmail
this.emailInline.templateContent=res.data.body.templateContent
this.editorObject = {
type: value,
value: this.emailInline.templateContent || ''
}
if(res.data.body&&res.data.body.resumeInterviewVO){
this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.inviterName
this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateTIME=res.data.body.resumeInterviewVO.seeTime
if (res.data.body && res.data.body.resumeInterviewVO) {
this.formInline.UpdateOWER = res.data.body.resumeInterviewVO.inviterName
this.formInline.UpdateVIEW = res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateTIME = res.data.body.resumeInterviewVO.seeTime
this.changeTime(this.formInline.UpdateTIME)
}else{
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
}
})
},
getfocus(form, name, e){
let vm = this;
let value = this[form][name]
if(name == 'receiveEmail') {
this.tip&&this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
vm.tip = false
}
})
} else {
if (name=='UpdateTIME'&&e==false){ // 时间选择器关闭弹框的时候
this.$refs.formInline.validateField('UpdateTIME', (e) => {})
return
}
if (name=='UpdateVIEW'&&e==false){ // 选择关闭弹框的时候
this.$refs.formInline.validateField('UpdateVIEW', (e) => {
})
return
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
}
})
},
getfocus (form, name, e) {
const vm = this
const value = this[form][name]
if (name == 'receiveEmail') {
this.tip && this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
vm.tip = false
}
this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
}
})
} else {
if (name == 'UpdateTIME' && e == false) { // 时间选择器关闭弹框的时候
this.$refs.formInline.validateField('UpdateTIME', (e) => {})
return
}
if (name == 'UpdateVIEW' && e == false) { // 选择关闭弹框的时候
this.$refs.formInline.validateField('UpdateVIEW', (e) => {
})
}
},
changeTime(b){
this.UpdateTIME=b
if (!b){
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent
}
this.isDisable = false
return
} else {
this.isDisable = true
}
var reg = /<span id="email_seeTime"><span>/g
var time = b.split('-')
var year = time[0]
var mon = time[1]
var day = time[2].split(' ')[0]
var time = time[2].split(' ')[1]
var content = `<span id="email_seeTime">${year}${mon}${day}${time}<span>`
this.$refs[form].fields.forEach(function (e) {
if (e.prop == name) {
e.resetField()
vm[form][name] = value
}
})
}
},
changeTime (b) {
this.UpdateTIME = b
if (!b) {
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent.replace(reg, content)
}
},
remoteMethod: async function(query){
if (query !== '') {
this.loading1 = true;
setTimeout(async () => {
this.loading1 = false;
query = query.split('(')[0]
let list = await findCompanyEmailByKey(query)
this.options = list.data.body || []
}, 200);
} else {
this.options = [];
value: this.emailInline.templateContent
}
},
beforUpload(uploadFile){
let isLiment=false
if(uploadFile.size/1024 > 10240){
isLiment=true
this.limentName+=1
if(this.limentName==1){
this.$Notice.error({
title: '提示',
desc: '单个文件不能大于10M'
})
this.isDisable = false
return
} else {
this.isDisable = true
}
var reg = /<span id="email_seeTime"><span>/g
var time = b.split('-')
var year = time[0]
var mon = time[1]
var day = time[2].split(' ')[0]
var time = time[2].split(' ')[1]
var content = `<span id="email_seeTime">${year}${mon}${day}${time}<span>`
this.editorObject = {
type: this.temp,
value: this.emailInline.templateContent.replace(reg, content)
}
},
remoteMethod: async function (query) {
if (query !== '') {
this.loading1 = true
setTimeout(async () => {
this.loading1 = false
query = query.split('(')[0]
const list = await findCompanyEmailByKey(query)
this.options = list.data.body || []
}, 200)
} else {
this.options = []
}
}else{
this.fileList.push(uploadFile.name)
this.uploadFileList.push(uploadFile)
},
beforUpload (uploadFile) {
let isLiment = false
if (uploadFile.size / 1024 > 10240) {
isLiment = true
this.limentName += 1
if (this.limentName == 1) {
this.$Notice.error({
title: '提示',
desc: '单个文件不能大于10M'
})
}
return false
},
uploadFile(){
this.limentName=0
},
emailModalPush(){
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.isLimitSize=false
this.uploadFileList=[]
},
submit() {
let flag = false
this.$refs.emailInline.validate(val => {
} else {
this.fileList.push(uploadFile.name)
this.uploadFileList.push(uploadFile)
}
return false
},
uploadFile () {
this.limentName = 0
},
emailModalPush () {
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.isLimitSize = false
this.uploadFileList = []
},
submit () {
let flag = false
this.$refs.emailInline.validate(val => {
if (!val) {
flag = true
return
}
})
this.$refs.formInline.validate(val => {
})
this.$refs.formInline.validate(val => {
if (!val) {
flag = true
}
})
if (!flag) {
this.modal10 = true
}
},
clearInterviewee (value) {
this.interviewee = []
this.checkboxList = []
this.delateARRALL = []
this.flowStatusarr = []
},
sendNotice: _debounce(function () {
this.$refs.transpondFrom.validate(valid => {
if (!this.transpondFrom.interviewerName) {
return
}
})
if (!flag){
this.modal10=true
const params = {
resumeIdList: this.resumeIdList,
email: this.transpondFrom.interviewerName
}
},
clearInterviewee (value) {
this.interviewee = []
this.checkboxList = []
this.delateARRALL = []
this.flowStatusarr = []
},
sendNotice: _debounce( function() {
this.$refs.transpondFrom.validate(valid => {
if(!this.transpondFrom.interviewerName){
return
}
let params = {
resumeIdList:this.resumeIdList,
email: this.transpondFrom.interviewerName
}
forwardResume(params).then(res => {
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
this.isShowRep=false
setTimeout(() => {
forwardResume(params).then(res => {
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
this.isShowRep = false
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
desc: '发送成功'
})
}, 300)
}
if(res.data.body.code=='40009'){
this.reResumeName=res.data.body.message
this.isShowRep=true
return
}
if(res.data.body.code=='0'){
this.modal8=false
this.isShowRep=false
this.$Notice.error({
title: '提示',
desc: res.data.body.message
})
}
if(res.data.success==false){
this.modal8=false
this.modal12=true
this.isShowRep=false
this.errorNotice=res.data.body.message
}
})
})
},800),
pushSendNotice(){
this.modal8=false,
this.isShowRep=false
},
transpond() { //打开转发简历的modal
this.$refs.transpondFrom.resetFields()
this.modal8= true
this.contentName=this.name
},
delInterviewee(name){
this.contentName=''
},
showOriginal(){
// this.showPDF()
this.isShowPdf=true
this.showOriginalDisabled=true
this.showStandardDisabled=false
},
showStandard(){
this.isShowPdf=false
// this.clearPDF()
this.showStandardDisabled=true
this.showOriginalDisabled=false
},
judeShowPdf(){
let parmars={
uid:this.$route.query.id
}
isShowPDF(parmars).then(res=>{
if(res.data.body==true){
this.isShowPdf=true
this.resumeBTn=true
}else{
this.isShowPdf=false
this.resumeBTn=false
}, 300)
}
})
},
getPdfUrl(){
let parmars={
uid:this.$route.query.id
}
getpdfUrl(parmars).then(res=>{
this.pdfUrl=res.data
})
},
// 确认发送邮件
confireSendEmail: _debounce(function(){
this.sad = this.getEditorValue()
if(this.sad==''){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
return
}
if(this.emailInline.moo==''){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
return
}
if((this.temp=='TEMP_0001')&&(this.emailInline.moo==''||this.emailInline.receiveEmail==''||this.emailInline.theme==''||this.formInline.UpdateOWER==''||this.formInline.UpdateVIEW==''||this.formInline.UpdateTIME=='')){
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
});
if (res.data.body.code == '40009') {
this.reResumeName = res.data.body.message
this.isShowRep = true
return
}
if(this.emailInline.copyname!==''&&!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))){
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
return
}
if(!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))){
}
if (res.data.body.code == '0') {
this.modal8 = false
this.isShowRep = false
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
});
return
}
this.attachFileList=this.uploadFileList.length==0?'':this.uploadFileList
this.flowStatusTT=this.emailFlowStatus==''?'':'TO_SEE'
this.UpdateTIMETwo=this.formInline.UpdateTIME==''?'':this.formInline.UpdateTIME
if(this.temp=='TEMP_0001'){
var formData= new FormData()
if(this.attachFileList.length!==0){
this.attachFileList.map(item=>{
formData.append('attachFileList',item)
})
}else{
formData.append('attachFileList','')
}
formData.append('resumeId',this.emailId)
formData.append('templateCode',this.emailCode)
formData.append('subject',this.emailInline.theme)
formData.append('toEmail',this.emailInline.receiveEmail)
formData.append('ccEmail',this.emailInline.copyname)
formData.append('emailContent',this.sad)
formData.append('resumeInterviewVO.resumeId',this.emailId)
formData.append('resumeInterviewVO.inviterName',this.formInline.UpdateOWER==''?'':this.formInline.UpdateOWER)
formData.append('resumeInterviewVO.interviewerName',this.formInline.UpdateVIEW==''?'':this.formInline.UpdateVIEW)
let info = this.options.find(item => item.name == this.formInline.UpdateVIEW)
formData.append('resumeInterviewVO.email',(info&&info.email) || '')
formData.append('sendWeixin',this.formInline.sendWeixin==true ? 1 : 0)
formData.append('resumeInterviewVO.seeTime',moment( this.UpdateTIMETwo).format('YYYY/MM/DD HH:mm'))
formData.append(' flowStatus',this.flowStatusTT)
this.isDisable=false
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
}, 500)
this.detailSta='HAS_SEE'
this.hasINterview=true
this.emailMOdal=false
this.modal10=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.uploadFileList=[]
this.clearInterviewee()
}
if(res.data.success==false){
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
title: '提示',
desc: res.data.body.message
})
}
},800),
getEditorValue(value){ // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
},
// 判断按钮的显示与隐藏
judeBtn(){
if(this.detailSta == 'TO_DO'|| this.detailSta == 'PASS' || this.detailSta == 'OPTION'){
this.hasINterview=false
}else{
this.hasINterview=true
}
if(this.detailSta == 'TO_DO'){
this.todoDisabled=true
}
if(this.detailSta == 'PASS'){
this.passDisabled=true
}
if(this.detailSta == 'OPTION'){
this.optionDisabled=true
if (res.data.success == false) {
this.modal8 = false
this.modal12 = true
this.isShowRep = false
this.errorNotice = res.data.body.message
}
},
cancelSubmit(){
this.emailMOdal=false
this.modal11=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.sad=''
this.fileList=[]
this.emailInline.moo=''
this.emailMOdal=false
this.emailMassage=false
this.emailIdArr=[]
this.emailFlowStatus=''
this.formInline.UpdateOWER=''
this.formInline.UpdateVIEW=''
this.formInline.UpdateTIME=''
this.formInline.sendWeixin=true
this.emailInline.copyname=''
this.isShowTwo=false
this.uploadFileList=[]
this.clearInterviewee()
},
sendFail(){
this.modal11 = false
},
// 待处理
todo(){
let parmars={
id: this.detialID,
status:'TO_DO'
}
updatastatus(parmars).then(res=>{
this.detailSta='TO_DO'
this.todoDisabled=true
this.passDisabled=false
this.optionDisabled=false
})
})
}, 800),
pushSendNotice () {
this.modal8 = false,
this.isShowRep = false
},
transpond () { // 打开转发简历的modal
this.$refs.transpondFrom.resetFields()
this.modal8 = true
this.contentName = this.name
},
delInterviewee (name) {
this.contentName = ''
},
showOriginal () {
// this.showPDF()
this.isShowPdf = true
this.showOriginalDisabled = true
this.showStandardDisabled = false
},
showStandard () {
this.isShowPdf = false
// this.clearPDF()
this.showStandardDisabled = true
this.showOriginalDisabled = false
},
judeShowPdf () {
const parmars = {
uid: this.$route.query.id
}
isShowPDF(parmars).then(res => {
if (res.data.body == true) {
this.isShowPdf = true
this.resumeBTn = true
} else {
this.isShowPdf = false
this.resumeBTn = false
}
})
},
getPdfUrl () {
const parmars = {
uid: this.$route.query.id
}
getpdfUrl(parmars).then(res => {
this.pdfUrl = res.data
})
},
// 确认发送邮件
confireSendEmail: _debounce(function () {
this.sad = this.getEditorValue()
if (this.sad == '') {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if (this.emailInline.moo == '') {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if ((this.temp == 'TEMP_0001') && (this.emailInline.moo == '' || this.emailInline.receiveEmail == '' || this.emailInline.theme == '' || this.formInline.UpdateOWER == '' || this.formInline.UpdateVIEW == '' || this.formInline.UpdateTIME == '')) {
this.$Notice.error({
title: '提示',
desc: '请填写完整的信息'
})
return
}
if (this.emailInline.copyname !== '' && !(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.copyname))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
return
}
if (!(/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/.test(this.emailInline.receiveEmail))) {
this.$Notice.error({
title: '提示',
desc: '请正确填写邮箱地址'
})
return
}
this.attachFileList = this.uploadFileList.length == 0 ? '' : this.uploadFileList
this.flowStatusTT = this.emailFlowStatus == '' ? '' : 'TO_SEE'
this.UpdateTIMETwo = this.formInline.UpdateTIME == '' ? '' : this.formInline.UpdateTIME
if (this.temp == 'TEMP_0001') {
var formData = new FormData()
if (this.attachFileList.length !== 0) {
this.attachFileList.map(item => {
formData.append('attachFileList', item)
})
},
// 备选
option(){
let parmars={
id: this.detialID,
status:'OPTION'
} else {
formData.append('attachFileList', '')
}
formData.append('resumeId', this.emailId)
formData.append('templateCode', this.emailCode)
formData.append('subject', this.emailInline.theme)
formData.append('toEmail', this.emailInline.receiveEmail)
formData.append('ccEmail', this.emailInline.copyname)
formData.append('emailContent', this.sad)
formData.append('resumeInterviewVO.resumeId', this.emailId)
formData.append('resumeInterviewVO.inviterName', this.formInline.UpdateOWER == '' ? '' : this.formInline.UpdateOWER)
formData.append('resumeInterviewVO.interviewerName', this.formInline.UpdateVIEW == '' ? '' : this.formInline.UpdateVIEW)
const info = this.options.find(item => item.name == this.formInline.UpdateVIEW)
formData.append('resumeInterviewVO.email', (info && info.email) || '')
formData.append('sendWeixin', this.formInline.sendWeixin == true ? 1 : 0)
formData.append('resumeInterviewVO.seeTime', moment(this.UpdateTIMETwo).format('YYYY/MM/DD HH:mm'))
formData.append(' flowStatus', this.flowStatusTT)
this.isDisable = false
sendEmail(formData).then(res => {
this.isDisable = true
if (res.data.success == true) {
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
}, 500)
this.detailSta = 'HAS_SEE'
this.hasINterview = true
this.emailMOdal = false
this.modal10 = false
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.uploadFileList = []
this.clearInterviewee()
}
updatastatus(parmars).then(res=>{
this.detailSta='OPTION'
this.todoDisabled=false
this.passDisabled=false
this.optionDisabled=true
})
},
// PASS
pass(){
let parmars={
id: this.detialID,
status:'PASS'
if (res.data.success == false) {
this.modal10 = false
this.modal11 = true
this.errorInfo = res.data.body.message
}
updatastatus(parmars).then(res=>{
this.detailSta='PASS'
this.todoDisabled=false
this.passDisabled=true
this.optionDisabled=false
})
},
addCss(){
document.querySelector('#app').style['overflow-x']='hidden'
},
remove(){
document.querySelector('#app').style.removeProperty('overflow-x')
},
},
// created(){
//     this.src = pdf.createLoadingTask(this.src)
//    },
async mounted(){
this.getPdfUrl()
this.getDETAIL()
this.boxIsShow=true
this.judeBtn()
this.addCss()
// await this.getData()
// this.clearPDF()
await this.judeShowPdf()
},
beforeDestroy(){
this.remove()
})
}
}, 800),
getEditorValue (value) { // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
},
// 判断按钮的显示与隐藏
judeBtn () {
if (this.detailSta == 'TO_DO' || this.detailSta == 'PASS' || this.detailSta == 'OPTION') {
this.hasINterview = false
} else {
this.hasINterview = true
}
if (this.detailSta == 'TO_DO') {
this.todoDisabled = true
}
if (this.detailSta == 'PASS') {
this.passDisabled = true
}
if (this.detailSta == 'OPTION') {
this.optionDisabled = true
}
},
cancelSubmit () {
this.emailMOdal = false
this.modal11 = false
this.emailInline.modalArr = []
this.emailInline.theme = ''
this.emailInline.receiveEmail = ''
this.emailInline.templateContent = ''
this.sad = ''
this.fileList = []
this.emailInline.moo = ''
this.emailMOdal = false
this.emailMassage = false
this.emailIdArr = []
this.emailFlowStatus = ''
this.formInline.UpdateOWER = ''
this.formInline.UpdateVIEW = ''
this.formInline.UpdateTIME = ''
this.formInline.sendWeixin = true
this.emailInline.copyname = ''
this.isShowTwo = false
this.uploadFileList = []
this.clearInterviewee()
},
sendFail () {
this.modal11 = false
},
// 待处理
todo () {
const parmars = {
id: this.detialID,
status: 'TO_DO'
}
updatastatus(parmars).then(res => {
this.detailSta = 'TO_DO'
this.todoDisabled = true
this.passDisabled = false
this.optionDisabled = false
})
},
// 备选
option () {
const parmars = {
id: this.detialID,
status: 'OPTION'
}
updatastatus(parmars).then(res => {
this.detailSta = 'OPTION'
this.todoDisabled = false
this.passDisabled = false
this.optionDisabled = true
})
},
// PASS
pass () {
const parmars = {
id: this.detialID,
status: 'PASS'
}
updatastatus(parmars).then(res => {
this.detailSta = 'PASS'
this.todoDisabled = false
this.passDisabled = true
this.optionDisabled = false
})
},
addCss () {
document.querySelector('#app').style['overflow-x'] = 'hidden'
},
remove () {
document.querySelector('#app').style.removeProperty('overflow-x')
}
},
// created(){
//     this.src = pdf.createLoadingTask(this.src)
//    },
async mounted () {
this.getPdfUrl()
this.getDETAIL()
this.boxIsShow = true
this.judeBtn()
this.addCss()
// await this.getData()
// this.clearPDF()
await this.judeShowPdf()
},
beforeDestroy () {
this.remove()
}
}
</script>
<style scoped>
......@@ -991,7 +1006,7 @@ export default {
.emailModal-title{
height: 280px;
width: 100%;
}
.emailModalTitle-left{
height: 100%;
......@@ -1166,4 +1181,3 @@ export default {
/* border: 1px solid red */
}
</style>
......@@ -11,7 +11,7 @@
<FormItem label="邀约人手机" style="" class="phone">
<Input placeholder="请输入" 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">
<Input placeholder="请输入" style="width:40%;" v-model="formInline.date" :readonly="true" size="large" />
<TimePicker type="time" placeholder="请选择时间" style="width: 43%" v-model="formInline.time" format="HH:mm" @on-change="selectTime" @on-focus="defaultRRRR" :editable="false" size="large"></TimePicker>
......@@ -23,7 +23,7 @@
<Select v-model="formInline.model1" style="width:85%;" size="large">
<Option v-for="item in origen" :value="item.value" :key="item.value">{{ item.label}}</Option>
</Select>
</FormItem>
</FormItem>
<FormItem label="姓名" prop="name" class="name">
<Input placeholder="请与简历保持一致" style="width:85%;" v-model="formInline.name" size="large"/>
</FormItem>
......@@ -34,7 +34,7 @@
<Select v-model="formInline.model2" style="width:85%;" size="large">
<Option v-for="item in isGET" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</FormItem>
</FormItem>
</Form>
</div>
<div class="submission">
......@@ -67,53 +67,53 @@
</template>
<script>
import moment from 'moment'
import {submitMassage} from '../../api/sweepCode.server.js'
import { submitMassage } from '../../api/sweepCode.server.js'
export default {
data(){
data () {
return {
docmHeight: '0',
showHeight: '0',
showHeight: '0',
loading: false,
hidshow:true,
isResize:false,
modal3:false,
modal4:false,
hidshow: true,
isResize: false,
modal3: false,
modal4: false,
ruleInline: {
Inviter: [
{ required: true, message: '请输入邀约人', trigger: 'blur' }
{ required: true, message: '请输入邀约人', trigger: 'blur' }
],
time: [
{ required: true,message: '面试时间不能为空', trigger: 'date' },
{ required: true, message: '面试时间不能为空', trigger: 'date' }
],
// InviterPhoneNumber: [
// { required: false, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
// ],
position: [
{ required: true,message: '请输入应聘职位', trigger: 'blur' }
position: [
{ required: true, message: '请输入应聘职位', trigger: 'blur' }
],
model1: [
{ required: true,message: '请输入应聘来源', trigger: 'blur' }
model1: [
{ required: true, message: '请输入应聘来源', trigger: 'blur' }
],
name: [
{ required: true,message: '请输入姓名', trigger: 'blur' }
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
],
phoneNUmber: [
{ required: true,message: '请输入正确的手机号码', trigger: 'blur' },
{ required: true, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
phoneNUmber: [
{ required: true, message: '请输入正确的手机号码', trigger: 'blur' },
{ required: true, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
model2: [
{ required: true,message: '请选择是否携带简历', trigger: 'blur' }
],
},
saleDate:'',
isV:false,
model2: [
{ required: true, message: '请选择是否携带简历', trigger: 'blur' }
]
},
saleDate: '',
isV: false,
options3: {
disabledDate (date) {
return date && date.valueOf() <Date.now()-3600*24*1000|| date.valueOf() >Date.now();
}
return date && date.valueOf() < Date.now() - 3600 * 24 * 1000 || date.valueOf() > Date.now()
}
},
origen:[
origen: [
{
value: '智联招聘',
label: '智联招聘'
......@@ -141,9 +141,9 @@ export default {
{
value: '其他',
label: '其他'
},
}
],
isGET:[
isGET: [
{
value: '',
label: ''
......@@ -151,129 +151,129 @@ export default {
{
value: '',
label: ''
},
}
],
formInline:{
model1:'',
model2:'',
Inviter:'',
InviterPhoneNumber:'',
date:'',
time:'',
position:'',
phoneNUmber:'',
name:'',
formInline: {
model1: '',
model2: '',
Inviter: '',
InviterPhoneNumber: '',
date: '',
time: '',
position: '',
phoneNUmber: '',
name: ''
},
isV:false,
hh:['01',"02","03","04","05","06","07","08","09","10","11","12"],
mm:['00','10','20','30','40','50','60']
isV: false,
hh: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
mm: ['00', '10', '20', '30', '40', '50', '60']
}
},
methods:{
methods: {
// 确认提交
confirmSubmission(){
if(this.formInline.model1==''||this.formInline.model2==''||this.formInline.Inviter==''||this.formInline.date==''||this.formInline.time===''||this.formInline.position==''||this.formInline.phoneNUmber==''||this.formInline.name==''){
confirmSubmission () {
if (this.formInline.model1 == '' || this.formInline.model2 == '' || this.formInline.Inviter == '' || this.formInline.date == '' || this.formInline.time === '' || this.formInline.position == '' || this.formInline.phoneNUmber == '' || this.formInline.name == '') {
this.$Message.error('请填写完整的信息')
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('请输入正确的手机号')
return
}
if(this.formInline.InviterPhoneNumber!==''&&!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))){
if (this.formInline.InviterPhoneNumber !== '' && !(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))) {
this.$Message.error('请输入正确的手机号')
return
}
let parmars={
invitePerson:this.formInline.Inviter,
inviterMobile:this.formInline.InviterPhoneNumber,
dateTime:moment(this.formInline.date).format('YYYY-MM-DD') + ' ' + this.formInline.time,
interviewTitle:this.formInline.position,
source:this.formInline.model1,
name:this.formInline.name,
mobile:this.formInline.phoneNUmber,
takeResume:this.formInline.model2
const parmars = {
invitePerson: this.formInline.Inviter,
inviterMobile: this.formInline.InviterPhoneNumber,
dateTime: moment(this.formInline.date).format('YYYY-MM-DD') + ' ' + this.formInline.time,
interviewTitle: this.formInline.position,
source: this.formInline.model1,
name: this.formInline.name,
mobile: this.formInline.phoneNUmber,
takeResume: this.formInline.model2
}
this.loading = true
submitMassage(parmars).then(res=>{
if(res.data.success==true){
submitMassage(parmars).then(res => {
if (res.data.success == true) {
this.loading = false
this.formInline.model1=''
this.formInline.model2=''
this.formInline.Inviter=''
this.formInline.InviterPhoneNumber=''
this.formInline.time=''
this.formInline.position=''
this.formInline.name=''
this.formInline.phoneNUmber=''
this.formInline.model1 = ''
this.formInline.model2 = ''
this.formInline.Inviter = ''
this.formInline.InviterPhoneNumber = ''
this.formInline.time = ''
this.formInline.position = ''
this.formInline.name = ''
this.formInline.phoneNUmber = ''
this.modal4=true
this.modal4 = true
}
})
},
selectDate(a){
this.formInline.date=a
selectDate (a) {
this.formInline.date = a
},
selectTime(b){
this.formInline.time=b
selectTime (b) {
this.formInline.time = b
},
welconme(){
this.modal3=true
},
jedugePhone(){
if(this.formInline.InviterPhoneNumber==''){
this.isV=false
return
}
if(!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))){
this.isV=true
}
if((/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))){
this.isV=false
welconme () {
this.modal3 = true
},
jedugePhone () {
if (this.formInline.InviterPhoneNumber == '') {
this.isV = false
return
}
if (!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))) {
this.isV = true
}
if ((/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))) {
this.isV = false
}
},
// 阻止弹出键盘
defaultRRRR () {
document.activeElement.blur()
}
},
// 阻止弹出键盘
defaultRRRR(){
document.activeElement.blur()
},
},
mounted(){
mounted () {
this.welconme()
const myDate = new Date();
const year = myDate.getFullYear(); // 获取当前年份
const month = myDate.getMonth() + 1; // 获取当前月份(0-11,0代表1月所以要加1);
const day = myDate.getDate(); // 获取当前日(1-31)
this.saleDate = `${year}/${month}/${day}`;
this.formInline.date=this.saleDate
function getRem() {
var html = document.getElementsByTagName("html")[0];
var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
html.style.fontSize = oWidth / 7.5 + "px";
}
this.$nextTick(()=>{
getRem()
})
window.onresize = ()=>{
return(()=>{ 
const myDate = new Date()
const year = myDate.getFullYear() // 获取当前年份
const month = myDate.getMonth() + 1 // 获取当前月份(0-11,0代表1月所以要加1);
const day = myDate.getDate() // 获取当前日(1-31)
this.saleDate = `${year}/${month}/${day}`
this.formInline.date = this.saleDate
function getRem () {
var html = document.getElementsByTagName('html')[0]
var oWidth = document.body.clientWidth || document.documentElement.clientWidth
html.style.fontSize = oWidth / 7.5 + 'px'
}
this.$nextTick(() => {
getRem()
})
window.onresize = () => {
return (() => {
getRem()
if (!this.isResize) {   
this.docmHeight=document.documentElement.clientHeight                              
 this.isResize = true                     
 }                       
this.showHeight = document.body.clientHeight         
})()   
if (!this.isResize) {
this.docmHeight = document.documentElement.clientHeight
this.isResize = true
}
this.showHeight = document.body.clientHeight
})()
}
},
beforeDestroy() {
document.getElementsByTagName("html")[0].removeAttribute("style");
beforeDestroy () {
document.getElementsByTagName('html')[0].removeAttribute('style')
},
watch :{
showHeight:function() { 
if(this.docmHeight > this.showHeight){           
 this.hidshow=false       
}else{
this.hidshow=true    
}    
watch: {
showHeight: function () {
if (this.docmHeight > this.showHeight) {
this.hidshow = false
} else {
this.hidshow = true
}
}
}
}
......@@ -310,7 +310,7 @@ export default {
height: 80%;
border-top: 1px solid rgba(241,241,241,1);
}
</style>
<style >
.sweepcode_content input.ivu-input.ivu-input-large{
......@@ -347,10 +347,10 @@ export default {
}
.fontsize .ivu-form-item.ivu-form-item-required{
height:7.5%;
}
}
.fontsize .phone{
height:7%;
}
}
.fontsize .ivu-input.ivu-input-large{
font-size: 0.23rem
}
......@@ -372,4 +372,4 @@ export default {
.model1 .ivu-form-item-content{
margin-top:6px
} */
</style>
\ No newline at end of file
</style>
......@@ -7,7 +7,7 @@
</div>
<p class="xiazai" @click="downPic">下载</p>
<!-- <p style="margin-top:40px"><span>请点击&nbsp;</span>
<a href="http://192.168.28.10:7086/acceptInterview?isResufe=false"
<a href="http://192.168.28.10:7086/acceptInterview?isResufe=false"
style="text-decoration:none;width:100px;height:30px;background:#0092ff;color:white;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important">接受面试安排</a>&nbsp;
<a href="http://192.168.28.10:7086/acceptInterview?isResufe=true"
style="text-decoration:none;width:100px;height:30px;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important;border:1px solid #0092ff;">拒绝面试安排</a>&nbsp;
......@@ -16,34 +16,34 @@
</div>
</template>
<script>
import {getErcode,downloadErcode} from '../../api/stystem.server.js'
import { getErcode, downloadErcode } from '../../api/stystem.server.js'
import {
sapi
sapi
} from '../../config'
export default {
data(){
return {
url:'',
url2:''
}
},
methods:{
//取到二维码
getercode(){
getErcode().then(res=>{
if(res.data.success==true){
this.url=res.data.body
}
})
data () {
return {
url: '',
url2: ''
}
},
methods: {
// 取到二维码
getercode () {
getErcode().then(res => {
if (res.data.success == true) {
this.url = res.data.body
}
})
},
downPic (img) {
window.location.href=`${sapi}/api/qrCode/downQrCode`
window.location.href = `${sapi}/api/qrCode/downQrCode`
}
},
mounted(){
this.getercode()
}
},
mounted () {
this.getercode()
}
}
</script>
<style>
......@@ -63,6 +63,6 @@ export default {
border-radius: 5px ;
position: absolute;
left: 230px;
top:270px
top:270px
}
</style>
......@@ -14,7 +14,7 @@
</FormItem>
<FormItem label="真实姓名" style="margin-top:1%" prop="PerName">
<Input placeholder="请输入真实姓名" style="width:300px" v-model="formInline.PerName" :maxlength="5"/>
</FormItem>
</FormItem>
</Form>
<p>
<span style="margin-left:25px;fnt-size:14px">初始登录密码</span>
......@@ -29,15 +29,15 @@
<span style="margin-left:10px;color:Grey">删除后该用户将无法登录,该账户上传的简历仍然保留。</span>
</p>
<p 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>
<span style="margin-left:40px;color:#2d8cf0;cursor:pointer" @click="delateall">删除</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>
</p>
</div>
<!-- <Table ref="selection" :columns="columns4" :data="data1"></Table> -->
<div style="overflow-y: auto;height:80%;margin-bottom:40px">
<!-- <Spin size="large" fix v-if="spinShow" style="font-size:25px">加载中...</Spin> -->
<div v-for='item in ajaxData' :key="item.id" style="">
<div class="detailQQ">
<div class="detailQQ">
<input 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:35px">{{item.userCode}}</span>
......@@ -50,11 +50,11 @@
<div style="height:10px;background:white;width:100%;"></div>
</div>
</div>
<div class="pageBottom">
<Page :total="totalSize" show-elevator show-total @on-change="pageChange" @on-page-size-change="pageSizeChange" :current='pageIndex' :page-size='pageSize' style="text-align:center;margin-top:8px"></Page>
</div>
</div>
</div>
<!-- 恢复初始密码 -->
<Modal
v-model="modal1"
......@@ -81,7 +81,7 @@
</FormItem>
<FormItem label="真实姓名" style="margin-top:1%" prop="updatePerName">
<Input placeholder="请输入真实姓名" style="width:300px;" v-model="formInline.updatePerName" :maxlength="5"/>
</FormItem>
</FormItem>
</Form>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal6=false'>取消</Button>
......@@ -124,325 +124,322 @@
</div>
</template>
<script>
import { queryaccountList,addAccount,Delateaccount,delateAllAccount,recoveryPassword,updateAccount} from '../../api/stystem.server.js'
import { queryaccountList, addAccount, Delateaccount, delateAllAccount, recoveryPassword, updateAccount } from '../../api/stystem.server.js'
export default {
data(){
return {
modal1:false,
modal2:false,
modal3:false,
modal4:false,
modal6:false,
checkboxList:[],
checked: false,
updateAccountId:'',
pageT:'',
userName:'',
userCode:'',
Massage:'',
spinShow:true,
delateARR:[],
id:'',
I:'',
pageIndex:1,
pageSize:30,
totalSize:null,
searchInfo:{
pageSize:30,
pageIndex:1,
id:''
},
formInline: {
PhoneNumber: '',
PerName: '',
emailNumber:'',
updatePhoneNumber: '',
updatePerName: '',
updateemailNumber:''
},
ruleInline: {
PhoneNumber: [
{ required: true, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
PerName: [
{ required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: 'string', message: '', trigger: 'blur' }
],
updateemailNumber: [
{ required: true, pattern:/^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
updatePerName: [
{ required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: 'string', message: '', trigger: 'blur' }
],
emailNumber: [
{ required: true, pattern:/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
],
},
ajaxData:[],
checkData: [] ,// 双向数据绑定的数组
data () {
return {
modal1: false,
modal2: false,
modal3: false,
modal4: false,
modal6: false,
checkboxList: [],
checked: false,
updateAccountId: '',
pageT: '',
userName: '',
userCode: '',
Massage: '',
spinShow: true,
delateARR: [],
id: '',
I: '',
pageIndex: 1,
pageSize: 30,
totalSize: null,
searchInfo: {
pageSize: 30,
pageIndex: 1,
id: ''
},
formInline: {
PhoneNumber: '',
PerName: '',
emailNumber: '',
updatePhoneNumber: '',
updatePerName: '',
updateemailNumber: ''
},
ruleInline: {
PhoneNumber: [
{ required: true, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
PerName: [
{ required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: 'string', message: '', trigger: 'blur' }
],
updateemailNumber: [
{ required: true, pattern: /^[1][3,4,5,7,8,6,9][0-9]{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
updatePerName: [
{ required: true, message: '请输入真实的姓名', trigger: 'blur' },
{ type: 'string', message: '', trigger: 'blur' }
],
emailNumber: [
{ required: true, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
]
},
ajaxData: [],
checkData: [] // 双向数据绑定的数组
}
},
methods: {
handleSelectAll (status) {
this.$refs.selection.selectAll(status)
},
ok () {
this.$Message.info('Clicked ok')
},
cancel () {
this.$Message.info('Clicked cancel')
},
//
delateArr (DElateID) {
this.delateARR.push(DElateID)
},
// 全选与反选
checkedAll: function () {
if (this.checked) { // 实现反选
this.checkboxList = []
this.checkboxList.push(item.id)
this.delateARR.push(item.id)
} else { // 实现全选
this.checkboxList = []
this.ajaxData.forEach((item) => {
this.checkboxList.push(item.id)
this.delateARR.push(item.id)
})
}
},
// 修改
updateModal (item) {
this.modal6 = true
this.updateAccountId = item.id
this.formInline.updateemailNumber = item.userCode
this.formInline.updatePhoneNumber = item.phone
this.formInline.updatePerName = item.userName
},
// 确认修改
confireUpdate () {
const parmars = {
id: this.updateAccountId,
userCode: this.formInline.updateemailNumber,
userName: this.formInline.updatePerName,
phone: this.formInline.updatePhoneNumber
}
if (this.formInline.updatePhoneNumber == '' || this.formInline.updatePerName == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号码或姓名',
duration: 2
})
return
}
if (!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.updatePhoneNumber))) {
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号',
duration: 2
})
return
}
updateAccount(parmars).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '修改成功',
duration: 2
})
this.modal6 = false
this.SearchList()
}
if (res.data.success == false) {
this.$Notice.error({
title: '提示',
desc: res.data.body.message,
duration: 2
})
this.modal6 = false
}
})
},
methods:{
handleSelectAll (status) {
this.$refs.selection.selectAll(status);
},
ok () {
this.$Message.info('Clicked ok');
},
cancel () {
this.$Message.info('Clicked cancel');
},
//
delateArr(DElateID){
this.delateARR.push(DElateID)
},
//全选与反选
checkedAll: function() {
if (this.checked) {//实现反选
this.checkboxList = [];
this.checkboxList.push(item.id)
this.delateARR.push(item.id)
} else { //实现全选
this.checkboxList = [];
this.ajaxData.forEach( (item) => {
this.checkboxList.push(item.id);
this.delateARR.push(item.id)
});
}
},
// 修改
updateModal(item){
this.modal6=true
this.updateAccountId=item.id
this.formInline.updateemailNumber=item.userCode
this.formInline.updatePhoneNumber=item.phone
this.formInline.updatePerName=item.userName
},
// 确认修改
confireUpdate(){
let parmars={
id:this.updateAccountId,
userCode:this.formInline.updateemailNumber,
userName:this.formInline.updatePerName,
phone:this.formInline.updatePhoneNumber
}
if(this.formInline.updatePhoneNumber==''||this.formInline.updatePerName==''){
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号码或姓名',
duration:2
});
return
}
if(!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.updatePhoneNumber))){
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号',
duration:2
});
return
}
updateAccount(parmars).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '修改成功',
duration:2
});
this.modal6=false
this.SearchList()
}
if(res.data.success==false){
this.$Notice.error({
title: '提示',
desc: res.data.body.message,
duration:2
});
this.modal6=false
}
})
},
//添加账户
addacount(){
let parmars={
userCode:this.formInline.emailNumber,
userName:this.formInline.PerName,
phone:this.formInline.PhoneNumber
}
if(this.formInline.PhoneNumber==''||this.formInline.PerName==''||this.formInline.emailNumber==''){
this.$Notice.error({
title: '提示',
desc: '请您填写正确的账号或姓名',
duration:2
});
return
}
if(!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.PhoneNumber))){
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号',
duration:2
});
return
}
if(!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(this.formInline.emailNumber))){
this.$Notice.error({
title: '提示',
desc: '请您填写正确邮箱账号',
duration:2
});
return
}
addAccount(parmars).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '添加成功',
duration:2
});
this.SearchList()
this.formInline.PhoneNumber=''
this.formInline.PerName=''
this.formInline.emailNumber=''
}
if(res.data.body.code==0){
this.Massage=res.data.body.message
this.$Notice.error({
title: '提示',
desc:this.Massage,
duration:2
});
this.formInline.PhoneNumber=''
this.formInline.PerName=''
this.formInline.emailNumber=''
return
}
})
// 添加账户
addacount () {
const parmars = {
userCode: this.formInline.emailNumber,
userName: this.formInline.PerName,
phone: this.formInline.PhoneNumber
}
if (this.formInline.PhoneNumber == '' || this.formInline.PerName == '' || this.formInline.emailNumber == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写正确的账号或姓名',
duration: 2
})
return
}
} ,
//查询账户列表
SearchList(page){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
}
queryaccountList(parmars).then(res=>{
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
this.ajaxData=res.data.body.items.map((item,index)=>{
item.id=item.id
item.userName=item.userName
item.userCode=item.userCode
item.createTime=item.createTime
return item
})
}
})
},
//删除单条账户弹框
delateMaodal(DID){
this.I=DID
this.modal2=true
},
//删除单条账户
delateAccount(){
let parmars={
id:this.I
}
Delateaccount(parmars).then(res=>{
if(res.data.success==true){
this.modal2=false
this.SearchList(this.pageT)
}
this.SearchList(this.pageT)
})
},
// 批量删除弹出框
delateall(){
if(this.checkboxList.length==0||this.delateArr.length==0){
this.$Notice.error({
title: '提示',
desc: '选项不能为空',
duration:'2'
});
return
}
this.modal3=true
},
//批量删除账户
delateAll(){
delateAllAccount(this.delateARR).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '删除成功',
duration:'2'
});
this.modal3=false
this.SearchList(this.pageT)
}
})
},
//恢复初始密码弹窗
recoveryModal(ID){
this.I=ID
this.modal1=true
},
//确认恢复初始密码
recovery(){
let parmars={
id:this.I
}
recoveryPassword(parmars).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '恢复密码成功',
duration:'2'
});
this.modal1=false
}
})
},
//改变页码
pageChange(page){
this.pageT=page
this.SearchList(page)
},
pageSizeChange(page){
this.searchInfo.pageSize=page
this.pageSize=page
this.SearchList()
},
if (!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.PhoneNumber))) {
this.$Notice.error({
title: '提示',
desc: '请您填写正确的手机号',
duration: 2
})
return
}
if (!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(this.formInline.emailNumber))) {
this.$Notice.error({
title: '提示',
desc: '请您填写正确邮箱账号',
duration: 2
})
return
}
addAccount(parmars).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '添加成功',
duration: 2
})
this.SearchList()
this.formInline.PhoneNumber = ''
this.formInline.PerName = ''
this.formInline.emailNumber = ''
}
if (res.data.body.code == 0) {
this.Massage = res.data.body.message
this.$Notice.error({
title: '提示',
desc: this.Massage,
duration: 2
})
this.formInline.PhoneNumber = ''
this.formInline.PerName = ''
this.formInline.emailNumber = ''
}
})
},
watch: {
checkboxList: {
handler: function (val, oldVal) {
if(this.ajaxData.length==0){
this.checked=false
return
}
if (this.checkboxList.length === this.ajaxData.length) {
this.checked=true;
} else {
this.checked=false;
}
},
deep: true
// 查询账户列表
SearchList (page) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex
}
queryaccountList(parmars).then(res => {
if (res.data.success == true) {
this.spinShow = false
this.totalSize = res.data.body.totalNumber
this.ajaxData = res.data.body.items.map((item, index) => {
item.id = item.id
item.userName = item.userName
item.userCode = item.userCode
item.createTime = item.createTime
return item
})
}
})
},
// 删除单条账户弹框
delateMaodal (DID) {
this.I = DID
this.modal2 = true
},
// 删除单条账户
delateAccount () {
const parmars = {
id: this.I
}
Delateaccount(parmars).then(res => {
if (res.data.success == true) {
this.modal2 = false
this.SearchList(this.pageT)
}
this.SearchList(this.pageT)
})
},
// 批量删除弹出框
delateall () {
if (this.checkboxList.length == 0 || this.delateArr.length == 0) {
this.$Notice.error({
title: '提示',
desc: '选项不能为空',
duration: '2'
})
return
}
this.modal3 = true
},
// 批量删除账户
delateAll () {
delateAllAccount(this.delateARR).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '删除成功',
duration: '2'
})
this.modal3 = false
this.SearchList(this.pageT)
}
})
},
mounted(){
this.SearchList()
// 恢复初始密码弹窗
recoveryModal (ID) {
this.I = ID
this.modal1 = true
},
// 确认恢复初始密码
recovery () {
const parmars = {
id: this.I
}
recoveryPassword(parmars).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '恢复密码成功',
duration: '2'
})
this.modal1 = false
}
})
},
// 改变页码
pageChange (page) {
this.pageT = page
this.SearchList(page)
},
pageSizeChange (page) {
this.searchInfo.pageSize = page
this.pageSize = page
this.SearchList()
}
},
watch: {
checkboxList: {
handler: function (val, oldVal) {
if (this.ajaxData.length == 0) {
this.checked = false
return
}
if (this.checkboxList.length === this.ajaxData.length) {
this.checked = true
} else {
this.checked = false
}
},
deep: true
}
},
mounted () {
this.SearchList()
}
}
</script>
<style scoped>
......
......@@ -16,11 +16,11 @@
<FormItem label="邮箱密码" style="margin-top:20px; position: absolute;top:110px;left: -80px" 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 label="所属人" 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>
<Button type="primary" style="position: absolute;top:130px;left: 910px;" :disabled='disabled' @click="bindingSynchronizat">绑定并开始同步</Button>
</FormItem>
<Button type="primary" style="position: absolute;top:130px;left: 910px;" :disabled='disabled' @click="bindingSynchronizat">绑定并开始同步</Button>
</Form>
</div>
<div class="Emailmange">
......@@ -28,14 +28,14 @@
<span style="font-size:18px;color:#2d8cf0;margin-left:18px">邮箱管理</span>
<span style="margin-left:10px;color:Grey">解绑后不再接受该邮箱下的简历,之前接收的简历仍然保留。</span>
</p>
<p style="border-bottom:1px solid black;line-height:30px" >
<input type='checkbox' class='input-checkbox' 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>
<span style="margin-left:40px;color:#2d8cf0;cursor:pointer" @click="UntyingAllmodeal" v-show="idAdmin==true">解绑</span>
</p>
<!-- <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">
<input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id" style="margin-left:25px;margin-top:20px;cursor:pointer" @click="selectUntyingEle(item.id)"/>
<span style="margin-left:0.3%" >{{item.belongs}}</span>
<span style="margin-left:0.5%;">{{item.emailName}}</span>
......@@ -79,7 +79,7 @@
width='250px'>
<h3 style="text-align:center">提示</h3>
<p style="text-align:center;line-height:40px">同步中,请稍后...</p>
</Modal>
<!-- 修改弹出框 -->
<Modal
......@@ -95,16 +95,16 @@
<FormItem label="邮箱密码" prop="emailPsd" :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 label="所属人" 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>
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='updatapassT'>取消</Button>
<Button type='primary' @click="UpdateemailTwo" >保存</Button>
</div>
</div>
</Modal>
<!-- 解绑弹出框 -->
<Modal
......@@ -116,7 +116,7 @@
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal5=false'>取消</Button>
<Button type='primary' @click="Unbinding">确认</Button>
</div>
</div>
</Modal>
<Modal
v-model="modal6"
......@@ -127,337 +127,335 @@
<div slot='footer' style="text-align:center">
<Button type='primary' @click='pushlistModal6'>取消</Button>
<Button type='primary' @click="UntyingAll">确认</Button>
</div>
</div>
</Modal>
</div>
</template>
<script>
import { queryemailList,Synchronization,jiebangEmail,updateemailTWO,UntyingAll} from '../../api/stystem.server.js'
import { queryemailList, Synchronization, jiebangEmail, updateemailTWO, UntyingAll } from '../../api/stystem.server.js'
import moment from 'moment'
export default {
data(){
return {
modal1:false,
modal2:false,
modal3:false,
modal4:false,
modal5:false,
modal6:false,
condition:'',
Massage:'',
pageT:'',
spinShow:true,
idAdmin:'',
admin:'',
NAme:"",
DATA:"",
Tname:'',
options3: {
disabledDate (date) {
return date && date.valueOf() > Date.now()|| date.valueOf()<Date.now()-3600*1000*30*24;
}
},
UpassWord:'',
Uusername:'',
decisionStartTime:'',
Ublengs:'',
Uid:'',
UntyingAllARR:[],
Tblengs:'',
checkboxList:[],
checked: false,
disabled:false,
pageIndex:1,
pageSize:30,
totalSize:null,
searchInfo:{
pageSize:30,
pageIndex:1,
id:'',
},
formInline: {
emailNumber: '',
emailPsd: '',
UserName:''
},
ruleInline: {
emailNumber: [
// derong.zhang@quantgroup.cn
{ required: true, pattern:/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
],
emailPsd: [
{ required: true, message: '请输入正确的密码', trigger: 'blur' },
],
UserName:[
{ required: true, message: '请输入正确的姓名', trigger: 'blur' },
]
},
ajaxData: [],
checkData: [] ,// 双向数据绑定的数组
data () {
return {
modal1: false,
modal2: false,
modal3: false,
modal4: false,
modal5: false,
modal6: false,
condition: '',
Massage: '',
pageT: '',
spinShow: true,
idAdmin: '',
admin: '',
NAme: '',
DATA: '',
Tname: '',
options3: {
disabledDate (date) {
return date && date.valueOf() > Date.now() || date.valueOf() < Date.now() - 3600 * 1000 * 30 * 24
}
},
UpassWord: '',
Uusername: '',
decisionStartTime: '',
Ublengs: '',
Uid: '',
UntyingAllARR: [],
Tblengs: '',
checkboxList: [],
checked: false,
disabled: false,
pageIndex: 1,
pageSize: 30,
totalSize: null,
searchInfo: {
pageSize: 30,
pageIndex: 1,
id: ''
},
formInline: {
emailNumber: '',
emailPsd: '',
UserName: ''
},
ruleInline: {
emailNumber: [
// derong.zhang@quantgroup.cn
{ required: true, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' }
],
emailPsd: [
{ required: true, message: '请输入正确的密码', trigger: 'blur' }
],
UserName: [
{ required: true, message: '请输入正确的姓名', trigger: 'blur' }
]
},
ajaxData: [],
checkData: [] // 双向数据绑定的数组
}
},
methods: {
// 全选与反选
checkedAll: function () {
if (this.checked) { // 实现反选
this.checkboxList = []
} else { // 实现全选
this.checkboxList = []
this.ajaxData.forEach((item) => {
this.checkboxList.push(item.id)
this.UntyingAllARR.push(item.id)
})
}
},
methods:{
//全选与反选
checkedAll: function() {
if (this.checked) {//实现反选
this.checkboxList = [];
} else { //实现全选
this.checkboxList = [];
this.ajaxData.forEach( (item) => {
this.checkboxList.push(item.id);
this.UntyingAllARR.push(item.id)
});
}
},
//绑定同步邮箱
bindingSynchronizat(){
if(this.formInline.emailNumber==''||this.formInline.emailPsd==''||this.formInline.UserName==''||this.DATA==''){
this.$Notice.error({
title: '提示',
desc: '请您填写完整的信息',
duration:'2'
});
return
}
this.disabled=true
this.modal3=true
let parmars={
emailName:this.formInline.emailNumber,
emailPassword:this.formInline.emailPsd,
belongs:this.formInline.UserName,
syncStartDate:moment(this.DATA).format('YYYY-MM-DD HH:mm:ss')
}
Synchronization(parmars).then(res=>{
if(res.data.success==true){
this.modal3=false
this.modal2=true
this.formInline.emailNumber=''
this.formInline.emailPsd=''
this.formInline.UserName=''
this.DATA=''
this.SearchList()
// this.disabled=false
}
if(res.data.success==false){
this.modal3=false
this.disabled=false
this.Massage=res.data.body.message
this.$Notice.error({
title: '提示',
desc: this.Massage,
duration:2
});
}
},()=>{
this.modal3=false
// this.modal1=true
this.formInline.emailPsd=''
})
},
iKnow(){
this.modal2=false,
this.disabled=false
},
//选择同步的时间
selectTime(b){
this.DATA=b
},
//查询邮箱列表
SearchList(page){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
}
queryemailList(parmars).then(res=>{
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
this.ajaxData=res.data.body.items.map((item,index)=>{
item.syncStartDate=item.syncStartDate
item.syncFlag=item.syncFlag
item.createTime=item.createTime
item.belongs=item.belongs
item.emailName=item.emailName
item.id=item.id
item.STA=false
item.syncFlag=item.syncFlag
item.syncMailMsg=item.syncMailMsg
item.c= item.syncMailMsg==null? item.syncMailMsg:item.syncMailMsg.substring(0,2)
return item
})
}
})
},
//改变页码
pageChange(page){
this.pageT=page
this.SearchList(page)
},
pageSizeChange(page){
this.searchInfo.pageSize=page
this.pageSize=page
this.SearchList()
},
// 修改邮箱弹出框
UpdateEMAIL(Tname,Tblengs,Tid){
this.modal4=true
this.Uusername=Tname
this.Ublengs=Tblengs
this.Uid=Tid
},
// 修改后重新绑定邮箱并保存
UpdateemailTwo(){
if(this.UpassWord==''||this.Uusername==''||this.Ublengs==''){
this.$Notice.error({
title: '提示',
desc: '请您填写完整的信息',
duration:'2'
});
return
}
let parmars={
emailName:this.Uusername,
emailPassword:this.UpassWord,
belongs:this.Ublengs,
id:this.Uid
}
updateemailTWO(parmars).then(res=>{
if(res.data.success==true){
this.UpassWord=''
this.modal4=false
this.SearchList(this.pageT)
this.$Notice.success({
title: '提示',
desc: '修改成功',
duration:'2'
});
}else{
this.$Notice.error({
title: '提示',
desc: '你填写的密码有误',
duration:'2'
});
this.UpassWord=''
}
})
},
//解绑弹出框
UnbindingModal(Eid){
this.NAme=Eid,
this.modal5=true
},
//确认解绑邮箱
Unbinding(){
jiebangEmail(this.NAme).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '解绑成功',
duration:2
});
this.modal5=false
this.SearchList(this.pageT)
}
})
},
//批量解绑弹出框
UntyingAllmodeal(){
if(this.UntyingAllARR.length==0){
this.$Notice.error({
title: '提示',
desc: '选项不能为空',
duration:2
});
return
}
this.modal6=true
},
// 选择批量解绑的项
selectUntyingEle(id){
this.UntyingAllARR.push(id)
},
// 批量解绑邮箱
UntyingAll(){
UntyingAll(this.UntyingAllARR).then(res=>{
if(res.data.success==true){
this.$Notice.success({
title: '提示',
desc: '解绑成功',
duration:2
});
this.modal6=false
this.SearchList(this.pageT)
}
})
// 绑定同步邮箱
bindingSynchronizat () {
if (this.formInline.emailNumber == '' || this.formInline.emailPsd == '' || this.formInline.UserName == '' || this.DATA == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写完整的信息',
duration: '2'
})
return
}
this.disabled = true
this.modal3 = true
const parmars = {
emailName: this.formInline.emailNumber,
emailPassword: this.formInline.emailPsd,
belongs: this.formInline.UserName,
syncStartDate: moment(this.DATA).format('YYYY-MM-DD HH:mm:ss')
}
Synchronization(parmars).then(res => {
if (res.data.success == true) {
this.modal3 = false
this.modal2 = true
this.formInline.emailNumber = ''
this.formInline.emailPsd = ''
this.formInline.UserName = ''
this.DATA = ''
this.SearchList()
// this.disabled=false
}
if (res.data.success == false) {
this.modal3 = false
this.disabled = false
this.Massage = res.data.body.message
this.$Notice.error({
title: '提示',
desc: this.Massage,
duration: 2
})
}
}, () => {
this.modal3 = false
// this.modal1=true
this.formInline.emailPsd = ''
})
},
iKnow () {
this.modal2 = false,
this.disabled = false
},
// 选择同步的时间
selectTime (b) {
this.DATA = b
},
// 查询邮箱列表
SearchList (page) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex
}
queryemailList(parmars).then(res => {
if (res.data.success == true) {
this.spinShow = false
this.totalSize = res.data.body.totalNumber
this.ajaxData = res.data.body.items.map((item, index) => {
item.syncStartDate = item.syncStartDate
item.syncFlag = item.syncFlag
item.createTime = item.createTime
item.belongs = item.belongs
item.emailName = item.emailName
item.id = item.id
item.STA = false
item.syncFlag = item.syncFlag
item.syncMailMsg = item.syncMailMsg
item.c = item.syncMailMsg == null ? item.syncMailMsg : item.syncMailMsg.substring(0, 2)
return item
})
}
})
},
// 改变页码
pageChange (page) {
this.pageT = page
this.SearchList(page)
},
pageSizeChange (page) {
this.searchInfo.pageSize = page
this.pageSize = page
this.SearchList()
},
// 修改邮箱弹出框
UpdateEMAIL (Tname, Tblengs, Tid) {
this.modal4 = true
this.Uusername = Tname
this.Ublengs = Tblengs
this.Uid = Tid
},
// 修改后重新绑定邮箱并保存
UpdateemailTwo () {
if (this.UpassWord == '' || this.Uusername == '' || this.Ublengs == '') {
this.$Notice.error({
title: '提示',
desc: '请您填写完整的信息',
duration: '2'
})
return
}
const parmars = {
emailName: this.Uusername,
emailPassword: this.UpassWord,
belongs: this.Ublengs,
id: this.Uid
},
pushlist(){
this.modal2=false
this.SearchList(this.pageT)
},
pushlistModal6(){
this.modal6=false
this.UntyingAllARR=[]
this.SearchList(this.pageT)
},
isadminmethods(){
this.admin=localStorage.getItem('isADMIN')
let c=JSON.parse(this.admin)
this.idAdmin=c.isAdmin
},
updatapassT(){
this.modal4=false
this.UpassWord=''
},
changeStartTime: function (e,b) {
this.DATA=b
var time = e
var that = this
var days = new Date(new Date().getFullYear(), (new Date().getMonth() + 1), 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 = {
disabledDate (data) {
return data.valueOf() < 0
}
}
} else {
this.decisionStartTime = {
disabledDate (data) {
if (that.qualityCheck.decisionEndTime === '') {
return new Date()
}
return data.valueOf() < startEndTime || data.valueOf() > endEndTime
}
}
}
}
},
watch: {
checkboxList: {
handler: function (val, oldVal) {
if (this.checkboxList.length === this.ajaxData.length) {
this.checked=true;
} else {
this.checked=false;
updateemailTWO(parmars).then(res => {
if (res.data.success == true) {
this.UpassWord = ''
this.modal4 = false
this.SearchList(this.pageT)
this.$Notice.success({
title: '提示',
desc: '修改成功',
duration: '2'
})
} else {
this.$Notice.error({
title: '提示',
desc: '你填写的密码有误',
duration: '2'
})
this.UpassWord = ''
}
})
},
// 解绑弹出框
UnbindingModal (Eid) {
this.NAme = Eid,
this.modal5 = true
},
// 确认解绑邮箱
Unbinding () {
jiebangEmail(this.NAme).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '解绑成功',
duration: 2
})
this.modal5 = false
this.SearchList(this.pageT)
}
})
},
// 批量解绑弹出框
UntyingAllmodeal () {
if (this.UntyingAllARR.length == 0) {
this.$Notice.error({
title: '提示',
desc: '选项不能为空',
duration: 2
})
return
}
this.modal6 = true
},
// 选择批量解绑的项
selectUntyingEle (id) {
this.UntyingAllARR.push(id)
},
// 批量解绑邮箱
UntyingAll () {
UntyingAll(this.UntyingAllARR).then(res => {
if (res.data.success == true) {
this.$Notice.success({
title: '提示',
desc: '解绑成功',
duration: 2
})
this.modal6 = false
this.SearchList(this.pageT)
}
})
},
pushlist () {
this.modal2 = false
this.SearchList(this.pageT)
},
pushlistModal6 () {
this.modal6 = false
this.UntyingAllARR = []
this.SearchList(this.pageT)
},
isadminmethods () {
this.admin = localStorage.getItem('isADMIN')
const c = JSON.parse(this.admin)
this.idAdmin = c.isAdmin
},
updatapassT () {
this.modal4 = false
this.UpassWord = ''
},
changeStartTime: function (e, b) {
this.DATA = b
var time = e
var that = this
var days = new Date(new Date().getFullYear(), (new Date().getMonth() + 1), 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 = {
disabledDate (data) {
return data.valueOf() < 0
}
}
} else {
this.decisionStartTime = {
disabledDate (data) {
if (that.qualityCheck.decisionEndTime === '') {
return new Date()
}
},
deep: true
return data.valueOf() < startEndTime || data.valueOf() > endEndTime
}
}
}
}
},
},
mounted(){
this.isadminmethods()
this.SearchList()
watch: {
checkboxList: {
handler: function (val, oldVal) {
if (this.checkboxList.length === this.ajaxData.length) {
this.checked = true
} else {
this.checked = false
}
},
deep: true
}
},
mounted () {
this.isadminmethods()
this.SearchList()
}
}
</script>
<style>
......
......@@ -20,7 +20,7 @@
<p style="font-size:12px;margin-left:2%;text-align:center;height:40px;line-height:40px;width:90%">支持最多二十份简历批量上传</p>
</div>
<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'>
<div>
......@@ -207,314 +207,313 @@
</div>
</template>
<script>
import {getuploadNumber,uploadfile,serchList,serchRESUMEdetail,deleteREsumeUPLOad} from '../../api/upload.server'
import { getuploadNumber, uploadfile, serchList, serchRESUMEdetail, deleteREsumeUPLOad } from '../../api/upload.server'
import {
sapi
sapi
} from '../../config'
import {uploadFile} from '../../service/ajax'
export default {
data () {
return {
uploadList: [],
dataList: [],
fileName: '',
ajaxData:[],
delateARRALL:[],
replaceArr: [],
downloadId:'',
pageIndex:1,
pageSize:30,
isReplace: true,
newArr: [],
replaceName:'',
searchInfo:{
pageSize:30,
pageIndex:1,
},
Sid:'',
single: true,
checkboxList: [],
filetile:'上传中请稍后...',
totalSize:null,
uploadModal: false,
accept: '.doc,.docx,.pdf',
fileSize:2048,
progressStatus: {
'0': 'active',
'2': 'wrong',
'1': 'wrong',
},
files: null,
activeT:false,
change:false,
massage:'',
Massage:'',
Code:'',
action: `${sapi}/api/resume/upload`,
batchNum: '',
modal3:false,
modal1:false,
modal2:false,
modal6:false,
Filename:'',
uploadNUmber:'',
// uploadList:[],
a:[],
files:null,
b:'',
uploadFile: [],
resume:{},//简历基本详情
riList:[],//实习经历列表
roList:[],//工作经历列表
rpList:[],//项目经历列表
reList:[],//教育经历列表
serchID:''
}
},
methods: {
handleChange (e) {
this.fileName = ''
this.dataList = []
const files = e.target.files;
this.files = e.target.files
for (let key in files){
if (key!='length' && key!='item'){
let file = files[key]
let temp = {
name: file.name,
data: file,
percentage: 0,
type: file.type,
size: file.size,
title:null,
status: "active"
}
this.dataList.push(temp)
this.fileName += files[key].name + ';'
}
}
if (!files) {
return;
}
this.$refs.input.value = null;
},
uploadBtn() {
if (this.dataList.length < 1) {
this.$Notice.error({
title: '提示',
desc: '请您选择文件在上传',
duration:2
});
return
}
if (this.dataList.length > 20){
this.$Notice.error({
title: '提示',
desc: '批量上传文件不能大于20份',
duration:2
});
this.$refs.input.value = ''
this.fileName = ''
this.dataList = []
return
}
if (this.handleMaxSize()) {
this.$Notice.error({
title: '提示',
desc: '单份文件不能大于2MB',
duration:2
});
this.$refs.input.value = ''
this.fileName = ''
this.dataList = []
return
}
this.uploadModal = true
this.filetile='上传中请稍后...'
uploadFile({
headers: this.headers,
data: this.dataList,
batchNum: this.batchNum,
action: this.action,
batchNum: this.batchNum,
appendName: 'batchNum',
appendFile: 'recFile',
onProgress: e => {
setTimeout(() => {
this.handleProgress(e);
}, 200)
},
onSuccess: res => {
setTimeout(() => {
this.handleSuccess(res, this.files);
this.activeT=true
}, 1000)
},
onError: (err, response) => {
this.handleError(err, response, this.files);
}
})
},
handleProgress(e) {
this.dataList.map(item => {
item.percentage = e.percent-5
})
},
selectfile (data,name) {
this.replaceName = name
if (data == false) {
this.replaceArr = this.replaceArr.filter(item => item !== this.replaceName)
} else {
this.replaceArr.push(this.replaceName)
}
},
handleSuccess (res, files) {
let data = res.body
this.filetile='上传完成'
for(let key in data){
let code = data[key].code
this.Code=data[key].code
this.Massage=data[key].message
if (data[key].code==1 ){
this.replaceArr.push(key)
}
this.dataList.map(item => {
item.sStatus=true
if (key == item.name) {
item.title = this.Massage
if(item.Code==2){progressStatus={'2':'wrong'}}
item.status = this.progressStatus[code]
item.Code=this.Code
item.percentage=100
}
})
}
},
handleError (err, res, files) {
},
handleMaxSize () {
let isLimit = false
this.dataList.map(item => {
if (item.size/1024 > this.fileSize) {
isLimit = true
return
}
})
return isLimit
},
selFiles () {
this.$refs.input.click()
},
closeModal(){
this.uploadModal = false
this.$refs.input.value = ''
this.dataList = []
// this.replaceArr = []
this.fileName = ''
this.activeT=false
this.filetile='上传中请稍后...'
this.serchlist()
},
//下载单条简历
downloadONE(downID){
window.location.href=`${sapi}/api/resume/download/formatted/one?resumeId=${downID}`
},
// 获取上传批次号
getnumber(){
return getuploadNumber().then(res=>{
this.batchNum= res.data.body
})
},
//改变页码
pageChange(page){
this.SearchList(page)
},
pageSizeChange(page){
this.searchInfo.pageSize=page
this.pageSize=page
this.SearchList()
},
// 查询记录列表
serchlist(page){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex,
parameter: {
batchNum:this.batchNum,
replaceFileNameList: this.replaceArr
}
}
serchList(parmars).then(res=>{
if(res.data.success==true){
this.replaceArr = []
this.totalSize=res.data.body.totalNumber
this.ajaxData=res.data.body.items.map((item,index)=>{
item.resumeId=item.resumeId
item.name=item.name
item.mobile=item.mobile
item.age=item.age
item.gender=item.gender
item.workYears=item.workYears
item.degree=item.degree
item.expectedTitle=item.expectedTitle
item.status=item.status
item.uid=item.uid
item.creator=item.creator==''?item.creator:item.creator.split('_')[0]
item.createTime=item.createTime
return item
})
}
})
},
// 获取简历详情页数据
getResumeData(sid,Uid){
this.downloadId=sid
let parmars={
uid:Uid
}
serchRESUMEdetail(parmars).then(res=>{
this.resume=res.data.body.resume
this.riList=res.data.body.riList
this.roList=res.data.body.roList
this.reList=res.data.body.reList
this.rpList=res.data.body.rpList
})
},
// 删除提示
delateONEModal(vid){
this.Sid=vid
this.modal6=true
},
// 删除单条简历
delateONE(){
this.delateARRALL.push(this.Sid)
deleteREsumeUPLOad(this.delateARRALL).then(res=>{
if(res.data.success==true){
this.modal6=false
this.resume={}
this.riList=[]
this.roList=[]
this.rpList=[]
this.reList=[]
this.downloadId=''
this.serchlist()
}
})
import { uploadFile } from '../../service/ajax'
export default {
data () {
return {
uploadList: [],
dataList: [],
fileName: '',
ajaxData: [],
delateARRALL: [],
replaceArr: [],
downloadId: '',
pageIndex: 1,
pageSize: 30,
isReplace: true,
newArr: [],
replaceName: '',
searchInfo: {
pageSize: 30,
pageIndex: 1
},
Sid: '',
single: true,
checkboxList: [],
filetile: '上传中请稍后...',
totalSize: null,
uploadModal: false,
accept: '.doc,.docx,.pdf',
fileSize: 2048,
progressStatus: {
0: 'active',
2: 'wrong',
1: 'wrong'
},
files: null,
activeT: false,
change: false,
massage: '',
Massage: '',
Code: '',
action: `${sapi}/api/resume/upload`,
batchNum: '',
modal3: false,
modal1: false,
modal2: false,
modal6: false,
Filename: '',
uploadNUmber: '',
// uploadList:[],
a: [],
files: null,
b: '',
uploadFile: [],
resume: {}, // 简历基本详情
riList: [], // 实习经历列表
roList: [], // 工作经历列表
rpList: [], // 项目经历列表
reList: [], // 教育经历列表
serchID: ''
}
},
methods: {
handleChange (e) {
this.fileName = ''
this.dataList = []
const files = e.target.files
this.files = e.target.files
for (const key in files) {
if (key != 'length' && key != 'item') {
const file = files[key]
const temp = {
name: file.name,
data: file,
percentage: 0,
type: file.type,
size: file.size,
title: null,
status: 'active'
}
this.dataList.push(temp)
this.fileName += files[key].name + ';'
}
}
if (!files) {
return
}
this.$refs.input.value = null
},
uploadBtn () {
if (this.dataList.length < 1) {
this.$Notice.error({
title: '提示',
desc: '请您选择文件在上传',
duration: 2
})
return
}
if (this.dataList.length > 20) {
this.$Notice.error({
title: '提示',
desc: '批量上传文件不能大于20份',
duration: 2
})
this.$refs.input.value = ''
this.fileName = ''
this.dataList = []
return
}
if (this.handleMaxSize()) {
this.$Notice.error({
title: '提示',
desc: '单份文件不能大于2MB',
duration: 2
})
this.$refs.input.value = ''
this.fileName = ''
this.dataList = []
return
}
this.uploadModal = true
this.filetile = '上传中请稍后...'
uploadFile({
headers: this.headers,
data: this.dataList,
batchNum: this.batchNum,
action: this.action,
batchNum: this.batchNum,
appendName: 'batchNum',
appendFile: 'recFile',
onProgress: e => {
setTimeout(() => {
this.handleProgress(e)
}, 200)
},
onSuccess: res => {
setTimeout(() => {
this.handleSuccess(res, this.files)
this.activeT = true
}, 1000)
},
async mounted(){
await this.getnumber()
this.serchlist()
onError: (err, response) => {
this.handleError(err, response, this.files)
}
})
},
handleProgress (e) {
this.dataList.map(item => {
item.percentage = e.percent - 5
})
},
selectfile (data, name) {
this.replaceName = name
if (data == false) {
this.replaceArr = this.replaceArr.filter(item => item !== this.replaceName)
} else {
this.replaceArr.push(this.replaceName)
}
},
handleSuccess (res, files) {
const data = res.body
this.filetile = '上传完成'
for (const key in data) {
const code = data[key].code
this.Code = data[key].code
this.Massage = data[key].message
if (data[key].code == 1) {
this.replaceArr.push(key)
}
this.dataList.map(item => {
item.sStatus = true
if (key == item.name) {
item.title = this.Massage
if (item.Code == 2) { progressStatus = { 2: 'wrong' } }
item.status = this.progressStatus[code]
item.Code = this.Code
item.percentage = 100
}
})
}
},
handleError (err, res, files) {
},
handleMaxSize () {
let isLimit = false
this.dataList.map(item => {
if (item.size / 1024 > this.fileSize) {
isLimit = true
}
})
return isLimit
},
selFiles () {
this.$refs.input.click()
},
closeModal () {
this.uploadModal = false
this.$refs.input.value = ''
this.dataList = []
// this.replaceArr = []
this.fileName = ''
this.activeT = false
this.filetile = '上传中请稍后...'
this.serchlist()
},
// 下载单条简历
downloadONE (downID) {
window.location.href = `${sapi}/api/resume/download/formatted/one?resumeId=${downID}`
},
// 获取上传批次号
getnumber () {
return getuploadNumber().then(res => {
this.batchNum = res.data.body
})
},
// 改变页码
pageChange (page) {
this.SearchList(page)
},
pageSizeChange (page) {
this.searchInfo.pageSize = page
this.pageSize = page
this.SearchList()
},
// 查询记录列表
serchlist (page) {
page = typeof (page) === 'number' ? page : 1
this.searchInfo.pageIndex = page
this.pageIndex = page
const parmars = {
pageSize: this.searchInfo.pageSize,
pageIndex: this.searchInfo.pageIndex,
parameter: {
batchNum: this.batchNum,
replaceFileNameList: this.replaceArr
}
}
serchList(parmars).then(res => {
if (res.data.success == true) {
this.replaceArr = []
this.totalSize = res.data.body.totalNumber
this.ajaxData = res.data.body.items.map((item, index) => {
item.resumeId = item.resumeId
item.name = item.name
item.mobile = item.mobile
item.age = item.age
item.gender = item.gender
item.workYears = item.workYears
item.degree = item.degree
item.expectedTitle = item.expectedTitle
item.status = item.status
item.uid = item.uid
item.creator = item.creator == '' ? item.creator : item.creator.split('_')[0]
item.createTime = item.createTime
return item
})
}
}
})
},
// 获取简历详情页数据
getResumeData (sid, Uid) {
this.downloadId = sid
const parmars = {
uid: Uid
}
serchRESUMEdetail(parmars).then(res => {
this.resume = res.data.body.resume
this.riList = res.data.body.riList
this.roList = res.data.body.roList
this.reList = res.data.body.reList
this.rpList = res.data.body.rpList
})
},
// 删除提示
delateONEModal (vid) {
this.Sid = vid
this.modal6 = true
},
// 删除单条简历
delateONE () {
this.delateARRALL.push(this.Sid)
deleteREsumeUPLOad(this.delateARRALL).then(res => {
if (res.data.success == true) {
this.modal6 = false
this.resume = {}
this.riList = []
this.roList = []
this.rpList = []
this.reList = []
this.downloadId = ''
this.serchlist()
}
})
}
},
async mounted () {
await this.getnumber()
this.serchlist()
}
}
</script>
<style lang='less' scoped>
.upload{
.upload{
width: 100%;
height:100%;
background: #F2F2F2;
......@@ -537,7 +536,7 @@ import {uploadFile} from '../../service/ajax'
.detailUload{
width: 100%;
margin-top: 3px;
}
.leftcontrentFotter{
width: 100%;
......
import Vue from 'vue';
import Router from 'vue-router';
import Vue from 'vue'
import Router from 'vue-router'
const home = r => require.ensure([], () => r(require('@/components/home.vue')), 'home');
const home = r => require.ensure([], () => r(require('@/components/home.vue')), 'home')
// const changepsd = r => require.ensure([], () => r(require('@/components/changepsd.vue')), 'changepsd');
const login = r => require.ensure([], () => r(require('@/page/login/login.vue')), 'login');
const update = r => require.ensure([], () => r(require('@/page/login/update.vue')), 'update');
const pdfdetail = r =>require.ensure([], () => r(require('@/page/resume/pdfdetail.vue')),'pdfdetail')
const resumeDetail = r =>require.ensure([], () => r(require('@/page/resume/resumeDetail.vue')),'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注释
const login = r => require.ensure([], () => r(require('@/page/login/login.vue')), 'login')
const update = r => require.ensure([], () => r(require('@/page/login/update.vue')), 'update')
const pdfdetail = r => require.ensure([], () => r(require('@/page/resume/pdfdetail.vue')), 'pdfdetail')
const resumeDetail = r => require.ensure([], () => r(require('@/page/resume/resumeDetail.vue')), '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注释
Vue.use(Router);
Vue.use(Router)
export default new Router({
mode: 'history',
routes: [
{
path: '/',
redirect: '/home',
redirect: '/home'
}, {
path: '/login',
name: 'login',
......@@ -35,20 +35,20 @@ export default new Router({
allowBack: false
}
},
{
path:'/sweepCode',
name:'sweepCode',
component:sweepCode
{
path: '/sweepCode',
name: 'sweepCode',
component: sweepCode
},
{
path:'/update',
name:'update',
component:update
path: '/update',
name: 'update',
component: update
},
{
path:'/getimage',
name:'getimage',
component:getimage
path: '/getimage',
name: 'getimage',
component: getimage
},
{
path: '/resumeDetail',
......@@ -106,6 +106,6 @@ export default new Router({
component: upload
}
]
},
],
});
}
]
})
// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js
import axios from './http.service.js'
function getError(action, option, xhr) {
const msg = `fail to post ${action} ${xhr.status}'`;
const err = new Error(msg);
err.status = xhr.status;
err.method = 'post';
err.url = action;
return err;
function getError (action, option, xhr) {
const msg = `fail to post ${action} ${xhr.status}'`
const err = new Error(msg)
err.status = xhr.status
err.method = 'post'
err.url = action
return err
}
function getBody(xhr) {
const text = xhr.responseText || xhr.response;
if (!text) {
return text;
}
function getBody (xhr) {
const text = xhr.responseText || xhr.response
if (!text) {
return text
}
try {
return JSON.parse(text);
} catch (e) {
return text;
}
try {
return JSON.parse(text)
} catch (e) {
return text
}
}
export function uploadFile (option) {
const action = option.action;
const formData = new FormData();
if (option.data) {
option.data.map(item => {
formData.append(option.appendFile, item.data)
})
}
formData.append(option.appendName, option.batchNum);
axios.post(action, formData, {
onUploadProgress: function(progressEvent){
if (progressEvent.total > 0) {
progressEvent.percent = (progressEvent.loaded / progressEvent.total * 100);
}
option.onProgress(progressEvent);
}
}).then((res) => {
option.onSuccess(res.data)
}).catch((error) => {
option.onError(error)
export function uploadFile (option) {
const action = option.action
const formData = new FormData()
if (option.data) {
option.data.map(item => {
formData.append(option.appendFile, item.data)
})
}
export default function upload(option) {
if (typeof XMLHttpRequest === 'undefined') {
return;
}
formData.append(option.appendName, option.batchNum)
axios.post(action, formData, {
onUploadProgress: function (progressEvent) {
if (progressEvent.total > 0) {
progressEvent.percent = (progressEvent.loaded / progressEvent.total * 100)
}
option.onProgress(progressEvent)
}
}).then((res) => {
option.onSuccess(res.data)
}).catch((error) => {
option.onError(error)
})
}
export default function upload (option) {
if (typeof XMLHttpRequest === 'undefined') {
return
}
const xhr = new XMLHttpRequest();
const action = option.action ;
const xhr = new XMLHttpRequest()
const action = option.action
if (xhr.upload) {
xhr.upload.onprogress = function progress(e) {
if (e.total > 0) {
e.percent = (e.loaded / e.total * 100 -10 );
}
option.onProgress(e);
};
if (xhr.upload) {
xhr.upload.onprogress = function progress (e) {
if (e.total > 0) {
e.percent = (e.loaded / e.total * 100 - 10)
}
option.onProgress(e)
}
}
const formData = new FormData();
const formData = new FormData()
if (option.data) {
option.data.map(item => {
formData.append(option.appendFile, item.data);
if (option.data) {
option.data.map(item => {
formData.append(option.appendFile, item.data)
})
}
})
}
formData.append(option.appendName, option.batchNum)
formData.append(option.appendName, option.batchNum);
xhr.onerror = function error (e) {
option.onError(e)
}
xhr.onerror = function error(e) {
option.onError(e);
};
xhr.onload = function onload () {
if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(action, option, xhr), getBody(xhr))
}
xhr.onload = function onload() {
if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(action, option, xhr), getBody(xhr));
}
option.onSuccess(getBody(xhr))
}
option.onSuccess(getBody(xhr));
};
xhr.open('post', action, true)
if ('withCredentials' in xhr) {
xhr.withCredentials = true
}
xhr.open('post', action, true);
if ('withCredentials' in xhr) {
xhr.withCredentials = true;
}
const headers = option.headers || {}
const headers = option.headers || {};
if (headers['X-Requested-With'] !== null) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
}
if (headers['X-Requested-With'] !== null) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
}
for (let item in headers) {
if (headers.hasOwnProperty(item) && headers[item] !== null) {
xhr.setRequestHeader(item, headers[item]);
}
for (const item in headers) {
if (headers.hasOwnProperty(item) && headers[item] !== null) {
xhr.setRequestHeader(item, headers[item])
}
xhr.send(formData);
}
xhr.send(formData)
}
import Cookie from 'js-cookie'
export default{
set: function (name, value) {Cookie.set(name, value)},
get: function (name) {
return Cookie.get(name)
},
remove: function (name) {Cookie.remove(name)}
}
\ No newline at end of file
export default {
set: function (name, value) { Cookie.set(name, value) },
get: function (name) {
return Cookie.get(name)
},
remove: function (name) { Cookie.remove(name) }
}
import axios from 'axios'
import Promise from './promise.service.js'
import {Notice} from 'iview'
import { Notice } from 'iview'
import Vue from 'vue'
import router from '../router/index.js'
import store from '../store'
var instance = axios.create({});
instance.defaults.timeout = 3600000;
instance.defaults.withCredentials = true;
var instance = axios.create({})
instance.defaults.timeout = 3600000
instance.defaults.withCredentials = true
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
let needLoadingRequestCount = 0
function startLoading() {
store.state.loading = true
function startLoading () {
store.state.loading = true
}
function endLoading() {
store.state.loading = false
function endLoading () {
store.state.loading = false
}
function showFullScreenLoading () {
if (needLoadingRequestCount === 0) {
startLoading()
startLoading()
}
needLoadingRequestCount++
}
function tryHideFullScreenLoading() {
function tryHideFullScreenLoading () {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
setTimeout(() => {
endLoading()
}, 200)
}
setTimeout(() => {
endLoading()
}, 200)
}
let needLoading = ['resume/findListByQueryVO', 'sendMail/sendEmailTemplate', 'resume/forwardResume', 'interview/findListByQueryVO','resume/delete']
}
const needLoading = ['resume/findListByQueryVO', 'sendMail/sendEmailTemplate', 'resume/forwardResume', 'interview/findListByQueryVO', 'resume/delete']
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
if (!config.headers['Content-Type']) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
let url = config.url.split('api/')[1]
let headers = config.headers
if (headers.status!='init'&&needLoading.includes(url)){
showFullScreenLoading()
}
delete headers.status
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 在发送请求之前做些什么
if (!config.headers['Content-Type']) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
const url = config.url.split('api/')[1]
const headers = config.headers
if (headers.status != 'init' && needLoading.includes(url)) {
showFullScreenLoading()
}
delete headers.status
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error)
})
instance.interceptors.response.use(function (response) {
// 在发送请求之前做些什么
let errorInfo = {
'900': 'cookie已失效,请重新登录',
'901': '',
'902': '您的账号已在其他地方登录,如不是您个人操作,请及时修改密码'
}
tryHideFullScreenLoading()
if(response.status >= 200 && response.status < 300){
let code = response.data&&response.data.body&&response.data.body.code || ''
if (code == '900' || code == '901' || code == '902'){
if (!store.state.cookieTips && code != '901') {
store.dispatch('cookieTipsShow', true)
Notice.error({render:(h) => {return h('div', {style: {
paddingRight: '5px',
fontSize: '14px',
lineHeight: '20px',
color: '#17233d'
}}, errorInfo[code])}})
setTimeout(() => {
store.dispatch('cookieTipsHide', false)
}, 2000)
}
router.replace({name: 'login'})
}
if(response.data.success){
return Promise.resolve(response)
}
else {
return Promise.resolve(response);
// 在发送请求之前做些什么
const errorInfo = {
900: 'cookie已失效,请重新登录',
901: '',
902: '您的账号已在其他地方登录,如不是您个人操作,请及时修改密码'
}
tryHideFullScreenLoading()
if (response.status >= 200 && response.status < 300) {
const code = response.data && response.data.body && response.data.body.code || ''
if (code == '900' || code == '901' || code == '902') {
if (!store.state.cookieTips && code != '901') {
store.dispatch('cookieTipsShow', true)
Notice.error({
render: (h) => {
return h('div', {
style: {
paddingRight: '5px',
fontSize: '14px',
lineHeight: '20px',
color: '#17233d'
}
}, errorInfo[code])
}
})
setTimeout(() => {
store.dispatch('cookieTipsHide', false)
}, 2000)
}
router.replace({ name: 'login' })
}
if (response.data.success) {
return Promise.resolve(response)
} else {
// return Promise.resolve(response);
return Promise.resolve(response)
}
return response;
}, error => {
tryHideFullScreenLoading()
// Notice.error({desc:`${error.response.data.body.message}`})
});
} else {
// return Promise.resolve(response);
}
return response
}, error => {
tryHideFullScreenLoading()
// Notice.error({desc:`${error.response.data.body.message}`})
})
export default instance
// export default axios
import localstorage from './localstorage.service.js'
export default{
init: function (router) {
router.beforeEach((to, form, next) => {
let token = localstorage.get('token')
if (to.meta && !to.meta.allowBack && window.history && window.history.pushState) { //登录页面不能后退
history.pushState(null, null, document.URL)
}
if (to.name =='login' || to.name =='update' || to.name =='sweepCode'|| to.name== 'resumeDetail'|| to.name== 'pdfdetail'){
next()
return
}
if(!token){
window.location.href = `${window.location.origin}/login`
return
}
next()
})
}
}
\ No newline at end of file
export default {
init: function (router) {
router.beforeEach((to, form, next) => {
const token = localstorage.get('token')
if (to.meta && !to.meta.allowBack && window.history && window.history.pushState) { // 登录页面不能后退
history.pushState(null, null, document.URL)
}
if (to.name == 'login' || to.name == 'update' || to.name == 'sweepCode' || to.name == 'resumeDetail' || to.name == 'pdfdetail') {
next()
return
}
if (!token) {
window.location.href = `${window.location.origin}/login`
return
}
next()
})
}
}
export default{
set: function (name, value) {window.localStorage.setItem(name, value)},
get: function (name) {
return window.localStorage.getItem(name)
},
remove: function (name) {window.localStorage.removeItem(name)}
}
\ No newline at end of file
export default {
set: function (name, value) { window.localStorage.setItem(name, value) },
get: function (name) {
return window.localStorage.getItem(name)
},
remove: function (name) { window.localStorage.removeItem(name) }
}
module.exports = require('es6-promise');
\ No newline at end of file
module.exports = require('es6-promise')
......@@ -3,7 +3,7 @@ export function _debounce (fn, delay) {
delay = delay || 200
return function () {
let args = arguments
const args = arguments
if (timer) {
clearTimeout(timer)
......@@ -21,9 +21,9 @@ export function _throttle (fn, interval) {
let timer = null
interval = interval || 200
return function () {
let self = this
let args = arguments
let now = +new Date()
const self = this
const args = arguments
const now = +new Date()
if (last && now - last < interval) {
clearTimeout(timer)
timer = setTimeout(function () {
......@@ -36,90 +36,86 @@ export function _throttle (fn, interval) {
}
}
}
export function emailValidata (rule, value, callback){
let field = rule.field
let reg = rule.pattern
switch(field){
case 'receiveEmail':
if (!value) {
this.tip = true
this.isDisable=false
callback(new Error('收件人不能为空'))
}
else if (rule.pattern&&!rule.pattern.test(value)) {
this.tip = true
this.isDisable=false
callback(new Error('请输入正确收件人地址'))
}else {
this.tip = false
this.isDisable=true
callback()
}
break;
case 'theme':
if (!value) {
this.isDisable=false
callback(new Error('主题能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'copyname':
if (value&&reg&&!reg.test(value)) {
this.isDisable=false
callback(new Error('请输入正确抄送地址'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateOWER':
if (!value) {
this.isDisable=false
callback(new Error('邀约人不能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateTIME':
if (!value) {
this.isDisable=false
callback(new Error('面试时间不能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateVIEW':
if (!value) {
this.isDisable=false
callback(new Error('面试官不能为空'))
} else {
this.isDisable=true
callback()
}
break;
default:
callback()
break;
}
}
export function emailValidata (rule, value, callback) {
const field = rule.field
const reg = rule.pattern
switch (field) {
case 'receiveEmail':
if (!value) {
this.tip = true
this.isDisable = false
callback(new Error('收件人不能为空'))
} else if (rule.pattern && !rule.pattern.test(value)) {
this.tip = true
this.isDisable = false
callback(new Error('请输入正确收件人地址'))
} else {
this.tip = false
this.isDisable = true
callback()
}
break
case 'theme':
if (!value) {
this.isDisable = false
callback(new Error('主题能为空'))
} else {
this.isDisable = true
callback()
}
break
case 'copyname':
if (value && reg && !reg.test(value)) {
this.isDisable = false
callback(new Error('请输入正确抄送地址'))
} else {
this.isDisable = true
callback()
}
break
case 'UpdateOWER':
if (!value) {
this.isDisable = false
callback(new Error('邀约人不能为空'))
} else {
this.isDisable = true
callback()
}
break
case 'UpdateTIME':
if (!value) {
this.isDisable = false
callback(new Error('面试时间不能为空'))
} else {
this.isDisable = true
callback()
}
break
case 'UpdateVIEW':
if (!value) {
this.isDisable = false
callback(new Error('面试官不能为空'))
} else {
this.isDisable = true
callback()
}
break
default:
callback()
break
}
}
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){
if(this.emailMassage==true){
callback(new Error('你尚未选择简历,请先选择简历'))
}
else if(this.allEmailVilitor==true){
callback(new Error('不能选择多份简历,请选择单份简历'))
}
else{
callback ()
}
}
export function validator (rule, value, callback){
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
\ No newline at end of file
export function vidte (rule, value, callback) {
if (this.emailMassage == true) {
callback(new Error('你尚未选择简历,请先选择简历'))
} else if (this.allEmailVilitor == true) {
callback(new Error('不能选择多份简历,请选择单份简历'))
} else {
callback()
}
}
export function validator (rule, value, callback) {
if (!value) this.$Notice.warning({ title: '提示', desc: '请输入您要通知的面试官' })
callback()
}
// // action.js
import * as types from './muationsType'
let action = {
cookieTipsShow({commit}, value) {
commit(types.COOKIE_SHOW, value)
},
addInterviewee ({commit}, value) {
commit(types.ADD_INTERVIEWEE, value)
},
removeInterviewee ({commit}, value) {
commit(types.REMOVE_INTERVIEWEE, value)
},
clearInterviewee ({commit}, value) {
commit(types.CLEAR_INTERVIEWEE, value)
}
const action = {
cookieTipsShow ({ commit }, value) {
commit(types.COOKIE_SHOW, value)
},
addInterviewee ({ commit }, value) {
commit(types.ADD_INTERVIEWEE, value)
},
removeInterviewee ({ commit }, value) {
commit(types.REMOVE_INTERVIEWEE, value)
},
clearInterviewee ({ commit }, value) {
commit(types.CLEAR_INTERVIEWEE, value)
}
}
export default action
\ No newline at end of file
export default action
......@@ -6,13 +6,13 @@ import actions from './actions.js'
Vue.use(Vuex)
const state = {
cookieTips: false,
interviewee: [],
channelInterviewee: [],
loading: false
cookieTips: false,
interviewee: [],
channelInterviewee: [],
loading: false
}
export default new Vuex.Store({
mutations,
actions,
state
})
\ No newline at end of file
mutations,
actions,
state
})
......@@ -3,5 +3,3 @@ export const COOKIE_HIDE = 'COOKIE_HIDE'
export const ADD_INTERVIEWEE = 'ADD_INTERVIEWEE'
export const REMOVE_INTERVIEWEE = 'REMOVE_INTERVIEWEE'
export const CLEAR_INTERVIEWEE = 'CLEAR_INTERVIEWEE'
import {COOKIE_SHOW, COOKIE_HIDE,ADD_INTERVIEWEE,REMOVE_INTERVIEWEE, CLEAR_INTERVIEWEE} from './muationsType'
import { COOKIE_SHOW, COOKIE_HIDE, ADD_INTERVIEWEE, REMOVE_INTERVIEWEE, CLEAR_INTERVIEWEE } from './muationsType'
export default {
[COOKIE_SHOW] (state, value) {
state.cookieTips = value || true
},
[COOKIE_HIDE](state, value) {
state.cookieTips = value || false
},
[ADD_INTERVIEWEE] (state, object) {
let flag = false
let data = object.data
if (object.type=='channel') {
[COOKIE_SHOW] (state, value) {
state.cookieTips = value || true
},
[COOKIE_HIDE] (state, value) {
state.cookieTips = value || false
},
[ADD_INTERVIEWEE] (state, object) {
let flag = false
const data = object.data
if (object.type == 'channel') {
console.log(data)
state.channelInterviewee.map(item => {
if (data&&item.id == data.id) {
state.channelInterviewee.map(item => {
if (data && item.id == data.id) {
flag = true
return
}
})
if (!flag) {
}
})
if (!flag) {
state.channelInterviewee.push(data)
}
} else {
}
} else {
state.interviewee.map(item => {
if (data&&item.id == data.id) {
if (data && item.id == data.id) {
flag = true
return
}
})
if (!flag) {
}
})
if (!flag) {
state.interviewee.push(data)
}
}
},
[REMOVE_INTERVIEWEE](state, object) {
let data = object.data
if (object.type=='channel') {
state.channelInterviewee.map((item, index) => {
if (data&&item.id == data.id) {
}
}
},
[REMOVE_INTERVIEWEE] (state, object) {
const data = object.data
if (object.type == 'channel') {
state.channelInterviewee.map((item, index) => {
if (data && item.id == data.id) {
state.channelInterviewee.splice(index, 1)
}
})
} else {
state.interviewee.map((item, index) => {
if (data&&item.id == data.id) {
})
} else {
state.interviewee.map((item, index) => {
if (data && item.id == data.id) {
state.interviewee.splice(index, 1)
}
})
}
},
[CLEAR_INTERVIEWEE](state, object) {
let type = object.type
if (type == 'channel') {
})
}
},
[CLEAR_INTERVIEWEE] (state, object) {
const type = object.type
if (type == 'channel') {
state.channelInterviewee = []
console.log('===')
} else {
state.interviewee = []
}
}
}
\ No newline at end of file
} else {
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