Commit 3720cdcd authored by FE-安焕焕's avatar FE-安焕焕 👣

Loading

parent d365abf7
......@@ -23,10 +23,11 @@ export function SInterview(tid) {
}})
}
// 面试管理查询
export function SerchList(parmars) {
export function SerchList(parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json;',
'X-Requested-With':'XMLHttpRequest'
'X-Requested-With':'XMLHttpRequest',
status
}})
}
//查看简历详情页
......
......@@ -17,9 +17,10 @@ export function downloadone (parmars) {
}})
}
// 搜索
export function sousuoList (parmars) {
export function sousuoList (parmars, status) {
return axios.post(`${sapi}/api/resume/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json'
'Content-Type':'application/json',
status
}})
}
//查看简历详情页
......
......@@ -16,7 +16,7 @@
</Menu>
</Col>
<Col span="21" class="content" style="width:83%;height:100%">
<Row class="header" style="height:35px">
<Row class="header" style="height:45px">
<Col span="20">
<Menu mode="horizontal" :active-name="levelOneName" @on-select="selectMenu">
<MenuItem v-for="menu in menuList" :name="menu.name" :key="menu.name" >
......@@ -327,8 +327,8 @@ import {mapState} from 'vuex'
line-height: 6%
}
.ivu-menu{
height: 35px;
line-height: 35px;
height: 43px;
line-height: 43px;
.ivu-menu-item{
padding: 0 13px;
margin: 0 49px;
......
......@@ -413,7 +413,7 @@ export default {
})
},
// 查询面试信息
serchListInterview(page) {
serchListInterview(page,status) {
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
......@@ -428,7 +428,7 @@ export default {
inviterName:'',
}
}
SerchList(parmars).then(res=>{
SerchList(parmars,status).then(res=>{
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
......@@ -731,7 +731,7 @@ export default {
},
mounted(){
this.serchListInterview()
this.serchListInterview(null, 'init')
// this.Serchlistinterview()
this.SerchInvitation()
this.SerchlistinterviewList()
......
......@@ -338,7 +338,7 @@
<FormItem label="面试官" style="margin-top:20px" prop='UpdateVIEW'>
<Select v-model ='formInline.UpdateVIEW' filterable style='width:100%;' remote
:remote-method="remoteMethod"
:loading="loading1" placeholder='请输入面试官全名' clearable @on-open-change='getfocus("formInline", "UpdateVIEW", $event)' ref='setQuery'>
: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>
......@@ -431,7 +431,7 @@
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='cancelSubmit'>取消</Button>
<Button type='primary' @click="confireSendEmail">确定</Button>
<Button type='primary' @click="sendFail">确定</Button>
</div>
</Modal>
</div>
......@@ -449,96 +449,9 @@ import localStorage from '../../service/localstorage.service'
import Router from 'vue-router';
import ckeditor from '../../components/ckeditor'
import {mapState} from 'vuex'
// import ckeditor from '../../../static/ckeditor'
import {emailValidata, emailRule, vidte, validator} from './validte.js'
export default {
data () {
const emailRule = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/
const vidte=(rule,value,callback)=>{
if(this.emailMassage==true){
// callback(new Error('你尚未选择简历,请先选择简历'))
}
else if(this.allEmailVilitor==true){
// callback(new Error('不能选择多份简历,请选择单份简历'))
}
else{
callback ()
}
}
const validator = (rule, value, callback) => {
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
const 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;
}
}
return {
modal11: false,
interviewee: [],
......@@ -551,19 +464,19 @@ import {mapState} from 'vuex'
editorObject: {type: '', value: ''},
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata}
{ required: true, message: '邀约人不能为空', trigger: 'blur',validator: emailValidata.bind(this)}
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata}
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata.bind(this)}
],
UpdateVIEW: [
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata, type: String}
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this), type: String}
]
},
emailruleInline: {
receiveEmail: [{required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata}],
theme: [{required: true, trigger: 'blur',message: '主题不能为空', validator: emailValidata}],
copyname: [{required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata, 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:'',
......@@ -614,7 +527,7 @@ import {mapState} from 'vuex'
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator}]
interviewerName: [{required: true, trigger: 'blur', validator: validator.bind(this)}]
},
interviewerList: [{name: 'test', value: '1'}],
modal10:false,
......@@ -1074,7 +987,7 @@ import {mapState} from 'vuex'
selectElement4(){
},
//搜索
SouSuo(page){
SouSuo(page, status){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
......@@ -1102,7 +1015,7 @@ import {mapState} from 'vuex'
}
this.ajaxData=[]
this.checkboxList = []
sousuoList(parmars).then(res=>{
sousuoList(parmars,status).then(res=>{
let Ishow=res.data.items
if(res.data.success==true){
this.checkboxList=[]
......@@ -1444,6 +1357,9 @@ import {mapState} from 'vuex'
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue(value){
if (!value){
return
}
this.isDisable=true
this.temp=value
if(this.isShowTwo==true){
......@@ -1534,6 +1450,8 @@ import {mapState} from 'vuex'
return false
},
emailModalPush(){
this.$refs.emailInline.resetFields()
this.$refs.formInline.resetFields()
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
......@@ -1554,7 +1472,6 @@ import {mapState} from 'vuex'
this.isLimitSize=false
this.uploadFileList=[]
this.clearInterviewee()
this.SouSuo(this.pageT)
},
getEditorValue(value){ // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
......@@ -1565,7 +1482,6 @@ import {mapState} from 'vuex'
},
// 确认发送邮件
confireSendEmail(){
this.modal11 = false
this.sad = this.getEditorValue()
if(this.sad==''){
this.$Notice.error({
......@@ -1649,12 +1565,13 @@ import {mapState} from 'vuex'
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
this.$Notice.success({
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
});
})
}, 500)
this.emailMOdal=false
this.modal11= false
this.modal10=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
......@@ -1702,13 +1619,15 @@ import {mapState} from 'vuex'
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
this.$Notice.success({
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
})
}, 500)
this.emailMOdal=false
this.modal10=false
this.modal11= false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
......@@ -1813,15 +1732,19 @@ import {mapState} from 'vuex'
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
})
}, 300)
} else{
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
});
} else{
this.$Notice.error({
title: '提示',
desc: '发送失败'
});
desc: '发送失败'
})
}, 500)
this.clearInterviewee()
this.modal8 = false
}
......@@ -1972,11 +1895,13 @@ import {mapState} from 'vuex'
this.isShowTwo=false
this.uploadFileList=[]
this.clearInterviewee()
// this.SouSuo(this.pageT)
},
sendFail(){
this.modal11 = false
}
},
mounted(){
this.SouSuo()
this.SouSuo(null, 'init')
}
}
</script>
......
......@@ -2,7 +2,7 @@
<div class="channel">
<!-- <Spin size="large" fix v-if="spinShow" style="font-size:20px">加载中...</Spin> -->
<div class="channel-left">
<Form :label-width="85" style="width:88%;margin:0 auto;" class='emailForm'>
<Form :label-width="90" style="width:88%;margin:0 auto;" class='emailForm'>
<FormItem label="关键词:" style="margin-top:20px">
<Input placeholder="请输入关键词" style="width:98%" v-model="keywords" @keyup.enter.native="SouSuo(item.Num1,item.Num2,item.Num3)"/>
</FormItem>
......@@ -427,7 +427,7 @@
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='cancelSubmit'>取消</Button>
<Button type='primary' @click="confireSendEmail">确定</Button>
<Button type='primary' @click="modal11=false">确定</Button>
</div>
</Modal>
</div>
......@@ -443,116 +443,29 @@ import{_debounce,_throttle} from '../../service/util.js'
import ckeditor from '../../components/ckeditor'
import {mapState} from 'vuex'
import localStorage from '../../service/localstorage.service'
import {emailValidata, emailRule, vidte, validator} from './validte.js'
export default {
data(){
const emailRule = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/
const validator = (rule, value, callback) => {
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
const vidte=(rule,value,callback)=>{
if(this.emailMassage==true){
callback(new Error('你尚未选择简历,请先选择简历'))
}
else if(this.allEmailVilitor==true){
callback(new Error('不能选择多份简历,请选择单份简历'))
}
else{
callback ()
}
}
const 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;
}
}
return {
modal11: false,
interviewee: [],
interviewerNameList: [],
tip: false,
tipInfo: '输入多个邮箱地址以英文”;“分隔',
ruleInline: {
UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata}
{ required: true, message: '邀约人不能为空', trigger: 'blur', validator: emailValidata.bind(this)}
],
UpdateTIME: [
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata}
{ required: true, message: '面试时间不能为空', trigger: 'change', type:'date', validator: emailValidata.bind(this)}
],
UpdateVIEW: [
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata}
{ required: true,message: '面试官不能为空', trigger: 'change', validator: emailValidata.bind(this)}
]
},
emailruleInline: {
receiveEmail: [{required: true, trigger: 'blur', pattern: emailRule, validator: emailValidata}],
theme: [{required: true, trigger: 'blur',message: '主题不能为空', validator: emailValidata}],
copyname: [{required: false, trigger: 'blur', pattern: emailRule, validator: emailValidata, 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:'',
......@@ -574,7 +487,7 @@ export default {
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator}]
interviewerName: [{required: true, trigger: 'blur', validator: validator.bind(this)}]
},
interviewerList: [{name: 'test', value: '1'}],
loading1: false,
......@@ -1274,7 +1187,7 @@ export default {
})
},
//搜索
SouSuo(page){
SouSuo(page, status){
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
......@@ -1301,7 +1214,7 @@ export default {
});
return
}
sousuoList(parmars).then(res=>{
sousuoList(parmars, status).then(res=>{
let Ishow=res.data.items
if(res.data.success==true){
this.checkboxList=[]
......@@ -1383,6 +1296,9 @@ export default {
this.getEmailContentValue(this.emailInline.moo)
},
getEmailContentValue(value){
if (!value){
return
}
this.isDisable=true
this.temp=value
if(this.isShowTwo==true){
......@@ -1494,7 +1410,6 @@ export default {
this.isLimitSize=false
this.uploadFileList=[]
this.clearInterviewee()
this.SouSuo(this.pageT)
},
getEditorValue(){ // 调编辑器组件方法获取数据
return this.$refs.editor.getValue()
......@@ -1506,7 +1421,6 @@ export default {
},
// 确认发送邮件
confireSendEmail(){
this.modal11 = false
this.sad=this.getEditorValue()
if(this.sad==''){
this.$Notice.error({
......@@ -1594,13 +1508,14 @@ export default {
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
this.$Notice.success({
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
});
})
}, 500)
this.emailMOdal=false
this.modal10=false
this.modal11= false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
......@@ -1623,11 +1538,7 @@ export default {
this.SouSuo(this.pageT)
}
if(res.data.success==false){
this.$Notice.error({
title: '提示',
desc: '发送邮件失败'
});
this.modal10 = false
this.modal10 = false
this.modal11 = true
}
})
......@@ -1651,13 +1562,14 @@ export default {
sendEmail(formData).then(res=>{
this.isDisable=true
if(res.data.success==true){
this.$Notice.success({
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送邮件成功'
})
})
}, 500)
this.emailMOdal=false
this.modal10=false
this.modal11= false
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
......@@ -1681,11 +1593,7 @@ export default {
this.SouSuo(this.pageT)
}
if(res.data.success==false){
this.$Notice.error({
title: '提示',
desc: '发送邮件失败'
});
this.modal10 = false
this.modal10 = false
this.modal11 = true
}
})
......@@ -1785,15 +1693,19 @@ export default {
if (res.data.success == true) {
this.clearInterviewee()
this.modal8 = false
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
})
}, 500)
} else{
setTimeout(() => {
this.$Notice.success({
title: '提示',
desc: '发送成功'
});
} else{
this.$Notice.error({
title: '提示',
desc: '发送失败'
});
desc: '发送失败'
})
}, 500)
this.clearInterviewee()
this.modal8 = false
}
......@@ -1890,13 +1802,9 @@ export default {
if (!flag){
this.modal10=true
}
},
SerchlistinterviewList(){
Serchinterviewor().then(res=>{
this.interviewerNameList=res.data.body
})
},
cancelSubmit(){
this.modal11= false
this.emailMOdal=false
this.emailInline.modalArr=[]
this.emailInline.theme=''
......@@ -1918,7 +1826,6 @@ export default {
this.isLimitSize=false
this.uploadFileList=[]
this.clearInterviewee()
// this.SouSuo(this.pageT)
}
},
watch: {
......@@ -1940,7 +1847,6 @@ export default {
this.clickIndex1 = 0
this.clickIndex2 = 0
this.lickIndex3 = 0
console.log(this.searchInfo)
this.keywords=''
this.lrgs=''
this.state.map(item => {
......@@ -2016,8 +1922,7 @@ export default {
},
mounted(){
this.SouSuo()
this.SerchlistinterviewList()
this.SouSuo(null, 'init')
}
}
</script>
......
......@@ -12,10 +12,10 @@ instance.defaults.withCredentials = true;
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
let needLoadingRequestCount = 0
function startLoading() {//使用Element loading-start 方法
function startLoading() {
store.state.loading = true
}
function endLoading() { //使用Element loading-close 方法
function endLoading() {
store.state.loading = false
}
function showFullScreenLoading () {
......@@ -30,17 +30,21 @@ function tryHideFullScreenLoading() {
if (needLoadingRequestCount === 0) {
setTimeout(() => {
endLoading()
}, 1000)
}, 200)
}
}
let needLoading = ['resume/findListByQueryVO', 'sendMail/sendEmailTemplate', 'resume/forwardResume', 'interview/findListByQueryVO']
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
if (!config.headers['Content-Type']) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
if (config.url.indexOf('findCompanyEmailByKey')<0){
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) {
// 对请求错误做些什么
......
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