Commit 4ad49cf3 authored by FE-安焕焕's avatar FE-安焕焕 👣

Merge branch 'ckeditor' of http://git.quantgroup.cn/ui/recruiting-management into Ztext1

Conflicts:
	src/page/resume/allResume.vue
	src/service/util.js
parents d870cce8 5beb8907
...@@ -121,3 +121,13 @@ export function sendEmail(parmars) { ...@@ -121,3 +121,13 @@ export function sendEmail(parmars) {
// 'Content-Type':'application/json' // 'Content-Type':'application/json'
}}) }})
} }
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'
}})
}
<template> <template>
<div> <div>
<textarea id="editor" rows="10" cols="80" v-model="editorValue"></textarea> <textarea id="editor" rows="10" cols="80"></textarea>
</div> </div>
</template> </template>
<script type="text/ecmascript-6"> <script type="text/ecmascript-6">
...@@ -31,20 +31,23 @@ ...@@ -31,20 +31,23 @@
}, },
data() { data() {
return { return {
editorValue : this.value isInit: false
}; };
}, },
watch: {
value:{
deep: true,
immediate:true,
handler(value) {
this.isInit&&this.editor.setData(value.value)
}
}
},
mounted() { mounted() {
this.init() this.init()
}, },
beforeDestroy() { beforeDestroy() {
}, },
computed: {},
watch: {
value:function (value) {
this.editor.setData()
},
},
methods: { methods: {
init () { init () {
CKEDITOR.replace('editor', { CKEDITOR.replace('editor', {
...@@ -55,16 +58,13 @@ ...@@ -55,16 +58,13 @@
filebrowserImageUploadUrl: this.uploadUrl, filebrowserImageUploadUrl: this.uploadUrl,
filebrowserUploadMethod: 'form' filebrowserUploadMethod: 'form'
}); });
this.editor = CKEDITOR.instances.editor; this.editor = CKEDITOR.instances.editor;
this.editor.on( 'change', ( evt ) =>{ setTimeout(()=> {
// getData() returns CKEditor's HTML content. this.isInit = true
this.$emit('getValue', evt.editor.getData()) }, 1000)
});
}, },
}, getValue(){
watch:{ return this.editor.getData()
value: function(value) {
this.editor.setData(value)
} }
}, },
components: {} components: {}
......
...@@ -8,6 +8,7 @@ import router from './router'; ...@@ -8,6 +8,7 @@ import router from './router';
import initRouter from './service/init.service.js' import initRouter from './service/init.service.js'
import 'vue-happy-scroll/docs/happy-scroll.css' import 'vue-happy-scroll/docs/happy-scroll.css'
import {Notice} from 'iview' import {Notice} from 'iview'
import store from '../src/store'
Vue.use(iView); Vue.use(iView);
Vue.use(Notice) Vue.use(Notice)
Vue.config.productionTip = false; Vue.config.productionTip = false;
...@@ -16,6 +17,7 @@ initRouter.init(router) ...@@ -16,6 +17,7 @@ initRouter.init(router)
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,
store,
components: { App }, components: { App },
template: '<App/>', template: '<App/>',
}); });
...@@ -21,11 +21,11 @@ ...@@ -21,11 +21,11 @@
<FormItem label="工作年限:"> <FormItem label="工作年限:">
<span style="width:100px;"> <span style="width:100px;">
<Select style="width:40%" placeholder="不限" :label-in-value='true' v-model="searchInfo.ownerWorkYears1" @on-change='judge1'> <Select style="width:40%" placeholder="不限" :label-in-value='true' v-model="searchInfo.ownerWorkYears1" @on-change='judge1'>
<Option v-for="item in ownerWorkYears1" :value="item.value" :key="item.value">{{item.label}}</Option> <Option v-for="(item, index) in ownerWorkYears1" :value="item.value" :key="index">{{item.label}}</Option>
</Select> </Select>
<span>-</span> <span>-</span>
<Select style="width:40%" placeholder="不限" :label-in-value='true' v-model="searchInfo.ownerWorkYears2" @on-change='judge2'> <Select style="width:40%" placeholder="不限" :label-in-value='true' v-model="searchInfo.ownerWorkYears2" @on-change='judge2'>
<Option v-for="item in ownerWorkYears2" :value="item.value" :key="item.value">{{item.label}}</Option> <Option v-for="(item, index) in ownerWorkYears2" :value="item.value" :key="index">{{item.label}}</Option>
</Select> </Select>
</span><br> </span><br>
</FormItem> </FormItem>
...@@ -45,7 +45,11 @@ ...@@ -45,7 +45,11 @@
<Button type="primary" size="small" style="margin-left:2%;width:50px" @click="downloadAll">下载</Button> <Button type="primary" size="small" style="margin-left:2%;width:50px" @click="downloadAll">下载</Button>
<Button type="primary" size="small" style="margin-left:2%;width:50px" @click="delateAll">删除</Button> <Button type="primary" size="small" style="margin-left:2%;width:50px" @click="delateAll">删除</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="allexport">导出列表</Button> <Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="allexport">导出列表</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="sendEmail">发送邮件</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%;" @click="sendEmail">发送邮件</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%;position:relative;position:relative" @click="transpond">
<Badge :count="interviewee.length" size='small' :class='["badge",{"badges1":interviewee.length>9, "badges": interviewee.length>99}]'></Badge>转发面试官
</Button>
</div> </div>
<div style="width:100%;float:left;margin-bottom:40px;overflow-y: auto;height:100%" class="a"> <div style="width:100%;float:left;margin-bottom:40px;overflow-y: auto;height:100%" class="a">
<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 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>
...@@ -54,7 +58,7 @@ ...@@ -54,7 +58,7 @@
<div class="detailResume" id="a" style="" @mousemove="ahove(i,item.isShow)" @mouseleave="movleave(i,item.isShow)" :class="{red:item.isShow}"> <div class="detailResume" id="a" style="" @mousemove="ahove(i,item.isShow)" @mouseleave="movleave(i,item.isShow)" :class="{red:item.isShow}">
<p> <p>
<span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px"> <span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px">
<input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id" @click="selectInputElement(i,item.id,item.flowStatus,item.STATES)" style="margin-left:10px;cursor:pointer"> <input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id" @click="selectInputElement(i,item.id,item.flowStatus,item.STATES, item)" style="margin-left:10px;cursor:pointer">
</span> </span>
<span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)" >{{item.ownerName}} <span v-show="item.ownerMobile !==''">|</span></span> <span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)" >{{item.ownerName}} <span v-show="item.ownerMobile !==''">|</span></span>
<span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerMobile}} <span v-show="item.ownerAge !==''">|</span></span> <span style="display:inline-block;height:100%;font-size: 12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerMobile}} <span v-show="item.ownerAge !==''">|</span></span>
...@@ -339,7 +343,7 @@ ...@@ -339,7 +343,7 @@
</div> </div>
</div> </div>
<div class="ckeditor"> <div class="ckeditor">
<ckeditor :value='sad' :uploadUrl='uploadurl' @getValue='getEditorValue' height='300px' width='100%' style="margin-left:3%"></ckeditor> <ckeditor :value='editorObject' ref='editor' :uploadUrl='uploadurl' height='300px' width='100%' style="margin-left:3%"></ckeditor>
</div> </div>
<div class="uploadEnclosure"> <div class="uploadEnclosure">
<p style="height:50px;"> <p style="height:50px;">
...@@ -377,11 +381,45 @@ ...@@ -377,11 +381,45 @@
<Button type='primary' @click="confireSendEmail" :disabled="!isDisable">确定</Button> <Button type='primary' @click="confireSendEmail" :disabled="!isDisable">确定</Button>
</div> </div>
</Modal> </Modal>
<!-- 转发邮件 -->
<Modal
v-model="modal8"
width='400'
:closable='false'>
<div style='min-height:300px;'>
<div class='title'>
<h2>转发给面试官</h2>
<p class='hint'>该通知将以微信形式发送给面试官,面试官可通过微信筛选简历</p>
</div>
<Form ref="transpondFrom" :model="transpondFrom" :rules="transpondRule">
<FormItem label='面试官' prop='interviewerName'>
<Select v-model ='transpondFrom.interviewerName' filterable style='width:250px;' remote
:remote-method="remoteMethod"
:loading="loading1" placeholder='请输入面试官全名'>
<Option v-for='(item, index) in options' :key='index' :value='item.email'>{{item.name}}({{item.email}})</Option>
</Select>
</FormItem>
<FormItem label='' prop='interviewee' >
<div v-for='(item, index) in interviewee' :key='index' class='interviewee'>
<div class='pic'>
<Icon type="ios-close" size='25' style='color:red' @click='delInterviewee(item)'/>
<img src='https://o7oe0d6qz.qnssl.com/resume.png'></img>
</div>
<span style='overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width:100%;display: inline-block;'>{{item.ownerName}}</span>
</div>
</FormItem>
</Form>
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal8=false'>取消</Button>
<Button type='primary' @click="sendNotice" >发送</Button>
</div>
</Modal>
</div> </div>
</template> </template>
<script> <script>
import moment from 'moment' import moment from 'moment'
import { serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,updatastatus,TODORes,sendEmail,getEmailMoo,getEmailContent,uploadimage} from '../../api/resume.server' import { serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,updatastatus,TODORes,sendEmail,getEmailMoo,getEmailContent,uploadimage, findCompanyEmailByKey,forwardResume} from '../../api/resume.server'
import qs from 'qs' import qs from 'qs'
import { import {
sapi sapi
...@@ -390,6 +428,7 @@ import{_debounce,_throttle} from '../../service/util.js' ...@@ -390,6 +428,7 @@ import{_debounce,_throttle} from '../../service/util.js'
import localStorage from '../../service/localstorage.service' import localStorage from '../../service/localstorage.service'
import Router from 'vue-router'; import Router from 'vue-router';
import ckeditor from '../../components/ckeditor' import ckeditor from '../../components/ckeditor'
import {mapState} from 'vuex'
// import ckeditor from '../../../static/ckeditor' // import ckeditor from '../../../static/ckeditor'
export default { export default {
data () { data () {
...@@ -404,8 +443,15 @@ import ckeditor from '../../components/ckeditor' ...@@ -404,8 +443,15 @@ import ckeditor from '../../components/ckeditor'
callback () callback ()
} }
} }
const validator = (rule, value, callback) => {
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
return { return {
sad:'', sad:'',
loading1: false,
options: [],
editorObject: {type: '', value: ''},
ruleInline: { ruleInline: {
UpdateOWER: [ UpdateOWER: [
{ required: true, message: '邀约人不能为空', trigger: 'blur' } { required: true, message: '邀约人不能为空', trigger: 'blur' }
...@@ -463,6 +509,14 @@ import ckeditor from '../../components/ckeditor' ...@@ -463,6 +509,14 @@ import ckeditor from '../../components/ckeditor'
modal5:false, modal5:false,
modal6:false, modal6:false,
modal7:false, modal7:false,
modal8: false,
transpondFrom: {
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator}]
},
interviewerList: [{name: 'test', value: '1'}],
modal10:false, modal10:false,
title:'', title:'',
emailMOdal:false, emailMOdal:false,
...@@ -548,21 +602,18 @@ import ckeditor from '../../components/ckeditor' ...@@ -548,21 +602,18 @@ import ckeditor from '../../components/ckeditor'
watch: { watch: {
checkboxList: { checkboxList: {
handler: function (val, oldVal) { handler: function (val, oldVal) {
if(this.ajaxData.length==0){
this.checked=false if(this.delateARRALL.length==30 || (this.ajaxData.length!=0&&this.checkboxList.length === this.ajaxData.length)){
return
}
if(this.delateARRALL.length==30){
this.checked=true this.checked=true
return
}
if(this.delateARRALL.length!==30){
this.checked=false
return
}
if (this.checkboxList.length === this.ajaxData.length) {
this.checked=true;
} }
// if(this.delateARRALL.length!==30){
// this.checked=false
// return
// }
// if(this.ajaxData.length==0){
// this.checked=false
// return
// }
else { else {
this.checked=false; this.checked=false;
} }
...@@ -572,7 +623,10 @@ import ckeditor from '../../components/ckeditor' ...@@ -572,7 +623,10 @@ import ckeditor from '../../components/ckeditor'
}, },
components:{ components:{
ckeditor ckeditor
},
computed:{
...mapState({interviewee: 'interviewee'})
}, },
methods: { methods: {
//全选与反选 //全选与反选
...@@ -580,6 +634,7 @@ import ckeditor from '../../components/ckeditor' ...@@ -580,6 +634,7 @@ import ckeditor from '../../components/ckeditor'
if (this.checked) {//实现反选 if (this.checked) {//实现反选
this.checkboxList = []; this.checkboxList = [];
this.ajaxData.forEach( (item) => { this.ajaxData.forEach( (item) => {
this.removeInterviewee(item)
this.checkboxList = []; this.checkboxList = [];
this.delateARRALL=[]; this.delateARRALL=[];
this.flowStatusarr=[] this.flowStatusarr=[]
...@@ -588,6 +643,7 @@ import ckeditor from '../../components/ckeditor' ...@@ -588,6 +643,7 @@ import ckeditor from '../../components/ckeditor'
} else { //实现全选 } else { //实现全选
this.checkboxList = []; this.checkboxList = [];
this.ajaxData.forEach( (item) => { this.ajaxData.forEach( (item) => {
this.addInterviewee(item)
this.checkboxList.push(item.id); this.checkboxList.push(item.id);
this.delateARRALL.push(item.id); this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus) this.flowStatusarr.push(item.flowStatus)
...@@ -654,7 +710,7 @@ import ckeditor from '../../components/ckeditor' ...@@ -654,7 +710,7 @@ import ckeditor from '../../components/ckeditor'
let parmars={ let parmars={
resumeId: this.toseeid, resumeId: this.toseeid,
inviterName:this.formInline.UpdateOWER, inviterName:this.formInline.UpdateOWER,
interviewerName:this.formInline.UpdateVIEW, intervieweeName:this.formInline.UpdateVIEW,
seeTime:moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'), seeTime:moment(this.formInline.UpdateTIME).format('YYYY-MM-DD HH:mm'),
} }
if(this.formInline.UpdateOWER==''||this.formInline.UpdateVIEW==''||this.formInline.UpdateTIME==''){ if(this.formInline.UpdateOWER==''||this.formInline.UpdateVIEW==''||this.formInline.UpdateTIME==''){
...@@ -863,15 +919,27 @@ import ckeditor from '../../components/ckeditor' ...@@ -863,15 +919,27 @@ import ckeditor from '../../components/ckeditor'
item.srcSite=item.srcSite item.srcSite=item.srcSite
item.optSource=item.optSource item.optSource=item.optSource
item.modifier=item.modifier item.modifier=item.modifier
item.STATES=isClick.call(this, item.id)
item.hasForward=item.hasForward item.hasForward=item.hasForward
item.STATES=false
item.isShow=false item.isShow=false
item.c=item.modifier==''?item.modifier:item.modifier.split('_') item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0] item.d=item.c[0]
if (item.STATES) { //以选中
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus)
}
return item return item
}) })
} }
}) })
function isClick (id) { // 是否已选中转发
let filterArr = this.interviewee.filter(item => {
return item.id == id
})
return filterArr.length > 0
}
}, },
//选择搜索元素 //选择搜索元素
selectElement1(tItem,Tindex){ selectElement1(tItem,Tindex){
...@@ -950,12 +1018,15 @@ import ckeditor from '../../components/ckeditor' ...@@ -950,12 +1018,15 @@ import ckeditor from '../../components/ckeditor'
return return
} }
this.ajaxData=[] this.ajaxData=[]
this.checkboxList = []
sousuoList(parmars).then(res=>{ sousuoList(parmars).then(res=>{
let Ishow=res.data.items let Ishow=res.data.items
if(res.data.success==true){ if(res.data.success==true){
this.checkboxList=[] this.checkboxList=[]
this.spinShow=false this.spinShow=false
this.totalSize=res.data.body.totalNumber this.totalSize=res.data.body.totalNumber
let data = res.data.body.items || []
console.log('')
this.ajaxData=res.data.body.items.map((item,index)=>{ this.ajaxData=res.data.body.items.map((item,index)=>{
item.id=item.id item.id=item.id
item.ownerName=item.ownerName item.ownerName=item.ownerName
...@@ -972,15 +1043,26 @@ import ckeditor from '../../components/ckeditor' ...@@ -972,15 +1043,26 @@ import ckeditor from '../../components/ckeditor'
item.srcSite=item.srcSite item.srcSite=item.srcSite
item.hasForward=item.hasForward item.hasForward=item.hasForward
item.optSource=item.optSource item.optSource=item.optSource
item.STATES=false item.STATES=isClick.call(this, item.id)
item.isShow=false item.isShow=false
item.modifier=item.modifier item.modifier=item.modifier
item.c=item.modifier==''?item.modifier:item.modifier.split('_') item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0] item.d=item.c[0]
if (item.STATES) { //以选中
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus)
}
return item return item
}) })
} }
}) })
function isClick (id) { // 是否已选中转发
let filterArr = this.interviewee.filter(item => {
return item.id == id
})
return filterArr.length > 0
}
}, },
// 判断输入年限的大小 // 判断输入年限的大小
judge1(value){ judge1(value){
...@@ -1017,7 +1099,7 @@ import ckeditor from '../../components/ckeditor' ...@@ -1017,7 +1099,7 @@ import ckeditor from '../../components/ckeditor'
}) })
}, },
// 选择input元素 // 选择input元素
selectInputElement(index,doID,doStatus,sss){ selectInputElement(index,doID,doStatus,sss, item){
this.DOWNLOAD=doID this.DOWNLOAD=doID
sss=!sss sss=!sss
this.ajaxData[index].STATES=sss this.ajaxData[index].STATES=sss
...@@ -1039,11 +1121,13 @@ import ckeditor from '../../components/ckeditor' ...@@ -1039,11 +1121,13 @@ import ckeditor from '../../components/ckeditor'
this.delateARRALL.push(doID) this.delateARRALL.push(doID)
this.delateARRALL2.push(doID) this.delateARRALL2.push(doID)
this.flowStatusarr.push(doStatus) this.flowStatusarr.push(doStatus)
this.addInterviewee(item)
} }
if(sss==false){ if(sss==false){
this.delateARRALL.remove(doID) this.delateARRALL.remove(doID)
this.delateARRALL2.remove(doID) this.delateARRALL2.remove(doID)
this.flowStatusarr.remove(doStatus) this.flowStatusarr.remove(doStatus)
this.removeInterviewee(item)
this.emailIdArr.remove(doID) this.emailIdArr.remove(doID)
} }
}, },
...@@ -1075,17 +1159,22 @@ import ckeditor from '../../components/ckeditor' ...@@ -1075,17 +1159,22 @@ import ckeditor from '../../components/ckeditor'
url+=index==0?`?resumeId=${item}`:`&resumeId=${item}` url+=index==0?`?resumeId=${item}`:`&resumeId=${item}`
}) })
window.location.href=url window.location.href=url
this.checkboxList=[] // this.checkboxList=[]
}, },
// 可删除状态下点击 // 可删除状态下点击
delateR(delateid){ delateR(delateid){
this.delateARRALL3 = []
this.delateARRALL3.push(delateid) this.delateARRALL3.push(delateid)
this.modal3=true this.modal3=true
}, },
// 删除单条简历 // 删除单条简历
delateONE(){ delateONE(){
console.log(this.delateARRALL3)
deleteREsume(this.delateARRALL3).then(res=>{ deleteREsume(this.delateARRALL3).then(res=>{
if(res.data.success==true){ if(res.data.success==true){
this.delateARRALL3.map(item => {
this.removeInterviewee({id:item})
})
this.modal3=false this.modal3=false
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
} }
...@@ -1177,6 +1266,9 @@ import ckeditor from '../../components/ckeditor' ...@@ -1177,6 +1266,9 @@ import ckeditor from '../../components/ckeditor'
deleteREsume(this.DELATEARR).then(res=>{ deleteREsume(this.DELATEARR).then(res=>{
if(res.data.success==true){ if(res.data.success==true){
this.modal7=false this.modal7=false
this.delateARRALL.map(item => {
this.removeInterviewee({id:item})
})
this.delateARRALL=[] this.delateARRALL=[]
this.flowStatusarr=[] this.flowStatusarr=[]
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
...@@ -1282,16 +1374,18 @@ import ckeditor from '../../components/ckeditor' ...@@ -1282,16 +1374,18 @@ import ckeditor from '../../components/ckeditor'
this.emailMassage=false this.emailMassage=false
}} }}
this.emailCode=value this.emailCode=value
let parmars={ let params={
resumeId:this.emailId==''?'':this.emailId, resumeId:this.emailId==''?'':this.emailId,
templateCode:this.emailCode templateCode:this.emailCode
} }
getEmailContent(parmars).then(res=>{ getEmailContent(params).then(res=>{
this.emailInline.theme=res.data.body.templateSubject this.emailInline.theme=res.data.body.templateSubject
this.emailInline.receiveEmail=res.data.body.receiveEmail this.emailInline.receiveEmail=res.data.body.receiveEmail
// this.emailInline.templateContent=res.data.body.templateContent this.emailInline.templateContent=res.data.body.templateContent
// this.sad=this.emailInline.templateContent this.editorObject = {
this.sad=res.data.body.templateContent type: value,
value: this.emailInline.templateContent || ''
}
if(res.data.body&&res.data.body.resumeInterviewVO){ if(res.data.body&&res.data.body.resumeInterviewVO){
this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.interviewerName this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.inviterName this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.inviterName
...@@ -1347,36 +1441,16 @@ import ckeditor from '../../components/ckeditor' ...@@ -1347,36 +1441,16 @@ import ckeditor from '../../components/ckeditor'
this.uploadFileList=[] this.uploadFileList=[]
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
}, },
// getEditorValue(value){ getEditorValue(value){ // 调编辑器组件方法获取数据
// this.emailContent=value return this.$refs.editor.getValue()
// this.sad = value },
// console.log( this.emailContent,777777,this.sad)
// // if(this.sad==''){this.$Notice.error({
// // title: '提示',
// // desc: '正文不能为空'
// // });
// // }
// // if(this.emailContent==''){
// // this.isDisable=false
// // }else{
// // this.isDisable=true
// // }
// },
// getEditorValue: _debounce(function (value) {
// this.emailContent=value
// this.sad = value
// }),
getEditorValue: _debounce((value)=> {
this.emailContent=value
this.sad = value
}),
delateFile(index){ delateFile(index){
this.fileList.splice(index,1) this.fileList.splice(index,1)
this.uploadFileList.splice(index,1) this.uploadFileList.splice(index,1)
}, },
// 确认发送邮件 // 确认发送邮件
confireSendEmail(){ confireSendEmail(){
this.sad = this.getEditorValue()
if(this.sad==''){ if(this.sad==''){
this.$Notice.error({ this.$Notice.error({
title: '提示', title: '提示',
...@@ -1591,6 +1665,110 @@ import ckeditor from '../../components/ckeditor' ...@@ -1591,6 +1665,110 @@ import ckeditor from '../../components/ckeditor'
} }
}) })
} }
},
removeInterviewee (value) {
let data = {
type: 'all',
data: value
}
this.$store.dispatch('removeInterviewee', data)
},
addInterviewee (value) {
let data = {
type: 'all',
data: value
}
this.$store.dispatch('addInterviewee', data)
},
clearInterviewee (value) {
let data = {
type: 'all',
data: value
}
this.$store.dispatch('clearInterviewee', data)
this.checkboxList = []
this.delateARRALL = []
this.flowStatusarr = []
},
transpond() { //打开转发简历的modal
if(this.interviewee.length == 0) {
this.$Notice.error({
title: '提示',
desc: '请选择您要转发的简历'
});
return
}
this.$refs.transpondFrom.resetFields()
this.modal8= true
},
delInterviewee (item) {
this.removeInterviewee(item)
let indexOf = this.checkboxList.indexOf(item.id)
if (indexOf < 0) return
this.checkboxList.splice(indexOf, 1)
this.delateARRALL.splice(indexOf, 1)
this.flowStatusarr.splice(indexOf, 1)
this.ajaxData.filter((item, index) => {
item
})
this.ajaxData.map((data, index) => {
if (data.id == item.id) {
data.STATES = false
}
})
},
sendNotice() {
this.$refs.transpondFrom.validate(valid => {
if(!this.transpondFrom.interviewerName){
return
}
if (this.interviewee.length < 1) {
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.success) {
this.clearInterviewee()
this.modal8 = false
this.$Notice.warn({
title: '提示',
desc: '发送成功'
});
} else{
this.$Notice.error({
title: '提示',
desc: '发送失败'
});
this.clearInterviewee()
this.modal8 = false
}
})
})
},
remoteMethod (query) {
if (query !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
let list = []
findCompanyEmailByKey(query).then(res => {
list = res
this.options = list.data.body.filter(item => item.name.toLowerCase().indexOf(query.toLowerCase()) > -1 || item.email.toLowerCase().indexOf(query.toLowerCase()) > -1);
}, 200);
})
} else {
this.options = [];
}
}, },
changenotice(a){ changenotice(a){
}, },
...@@ -1658,7 +1836,7 @@ import ckeditor from '../../components/ckeditor' ...@@ -1658,7 +1836,7 @@ import ckeditor from '../../components/ckeditor'
} }
} }
</script> </script>
<style scoped> <style scoped lang='less'>
.allResume{ .allResume{
width: 100%; width: 100%;
height:100% height:100%
...@@ -1785,6 +1963,59 @@ select{ ...@@ -1785,6 +1963,59 @@ select{
.Ubt button{ .Ubt button{
margin-left: 40px margin-left: 40px
} }
.badge1{
display: inline-block;
position: absolute;
width:25%;
height:73%;
line-height: 130%;
top:-23%;
left: -10%;
background:red;
border-radius: 50%;
}
.badge{
position: absolute;
top: -32%;
right: -15px;
}
.badges {
right: -30px;
}
.badges1 {
right: -21px;
}
.interviewee{
float:left;
width:50px;
margin :10px;
height: 60px;
text-align: center;
.pic{
position: relative;
height:40px;
}
img{
width:100%;
}
p{
width: 100%;
text-align: center;
}
i{
position: absolute;
right:-10px;
top:-10px;
}
.hint{
}
}
.title{
text-align: center;
width:100%;
margin-bottom: 10px;
}
</style> </style>
<style> <style>
.emailForm .ivu-form-item-label{ .emailForm .ivu-form-item-label{
......
...@@ -45,6 +45,9 @@ ...@@ -45,6 +45,9 @@
<Button type="primary" size="small" style="margin-left:2%;width:50px" @click="delateAll">删除</Button> <Button type="primary" size="small" style="margin-left:2%;width:50px" @click="delateAll">删除</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="allexport">导出列表</Button> <Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="allexport">导出列表</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="sendEmail">发送邮件</Button> <Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="sendEmail">发送邮件</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%;position:relative;position:relative" @click="transpond">
<Badge :count="interviewee.length" size='small' :class='["badge",{"badges1":interviewee.length>9, "badges": interviewee.length>99}]'></Badge>转发面试官
</Button>
</div> </div>
<div style="margin-bottom:40px;float:left;width:100%;overflow-y: auto;height:100%" class="a"> <div style="margin-bottom:40px;float:left;width:100%;overflow-y: auto;height:100%" class="a">
<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 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>
...@@ -52,7 +55,7 @@ ...@@ -52,7 +55,7 @@
<div class="detailResume" id="a" @mousemove="ahove(i,item.isShow)" @mouseleave="movleave(i,item.isShow)" :class="{red:item.isShow}" > <div class="detailResume" id="a" @mousemove="ahove(i,item.isShow)" @mouseleave="movleave(i,item.isShow)" :class="{red:item.isShow}" >
<p class="massage" style="margin-top:10px"> <p class="massage" style="margin-top:10px">
<span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px"> <span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px">
<input type='checkbox' name='checkboxinput' style="margin-left:10px;cursor:pointer" class='input-checkbox' v-model='checkboxList' :value="item.id" @click="selectInputElement(i,item.id,item.flowStatus,item.STATES)"></span> <input type='checkbox' name='checkboxinput' style="margin-left:10px;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: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)">{{item.ownerName}} |</span> <span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)">{{item.ownerName}} |</span>
<span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerMobile}} |</span> <span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerMobile}} |</span>
<span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerAge}}岁 |</span> <span style="display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer" @click="Seedetail(item.id)"> {{item.ownerAge}}岁 |</span>
...@@ -332,7 +335,7 @@ ...@@ -332,7 +335,7 @@
</div> </div>
</div> </div>
<div class="ckeditor"> <div class="ckeditor">
<ckeditor :value='sad' :uploadUrl='uploadurl' @getValue='getEditorValue' height='300px' width='100%' style="margin-left:3%"></ckeditor> <ckeditor :value='editorObject' ref='editor' :uploadUrl='uploadurl' height='300px' width='100%' style="margin-left:3%"></ckeditor>
</div> </div>
<div class="uploadEnclosure"> <div class="uploadEnclosure">
<p style="height:50px;"> <p style="height:50px;">
...@@ -369,20 +372,59 @@ ...@@ -369,20 +372,59 @@
<Button type='primary' @click='modal10=false'>取消</Button> <Button type='primary' @click='modal10=false'>取消</Button>
<Button type='primary' @click="confireSendEmail" :disabled="!isDisable">确定</Button> <Button type='primary' @click="confireSendEmail" :disabled="!isDisable">确定</Button>
</div> </div>
</Modal>
<!-- 转发邮件 -->
<Modal
v-model="modal8"
width='400'
:closable='false'>
<div style='min-height:300px;'>
<div class='title'>
<h2>转发给面试官</h2>
<p class='hint'>该通知将以微信形式发送给面试官,面试官可通过微信筛选简历</p>
</div>
<Form ref="transpondFrom" :model="transpondFrom" :rules="transpondRule">
<FormItem label='面试官' prop='interviewerName'>
<Select v-model ='transpondFrom.interviewerName' filterable style='width:250px;' remote
:remote-method="remoteMethod"
:loading="loading1" placeholder='请输入面试官全名'>
<Option v-for='(item, index) in options' :key='index' :value='item.email'>{{item.name}}({{item.email}})</Option>
</Select>
</FormItem>
<FormItem label='' prop='interviewee' >
<div v-for='(item, index) in interviewee' :key='index' class='interviewee'>
<div class='pic'>
<Icon type="ios-close" size='25' style='color:red' @click='delInterviewee(item)'/>
<img src='https://o7oe0d6qz.qnssl.com/resume.png'></img>
</div>
<span style='overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width:100%;display: inline-block;'>{{item.ownerName}}</span>
</div>
</FormItem>
</Form>
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal8=false'>取消</Button>
<Button type='primary' @click="sendNotice" >发送</Button>
</div>
</Modal> </Modal>
</div> </div>
</template> </template>
<script> <script>
import moment from 'moment' import moment from 'moment'
import {adoptOneSeeResumeList, serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,TODORes,getEmailMoo,getEmailContent,sendEmail} from '../../api/resume.server.js' import {adoptOneSeeResumeList, serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,TODORes,getEmailMoo,getEmailContent, sendEmail,findCompanyEmailByKey,forwardResume } from '../../api/resume.server.js'
import { import {
sapi sapi
} from '../../config' } from '../../config'
import{_debounce,_throttle} from '../../service/util.js' import{_debounce,_throttle} from '../../service/util.js'
import ckeditor from '../../components/ckeditor' import ckeditor from '../../components/ckeditor'
import {mapState} from 'vuex'
import localStorage from '../../service/localstorage.service' import localStorage from '../../service/localstorage.service'
export default { export default {
data(){ data(){
const validator = (rule, value, callback) => {
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
const vidte=(rule,value,callback)=>{ const vidte=(rule,value,callback)=>{
if(this.emailMassage==true){ if(this.emailMassage==true){
callback(new Error('你尚未选择简历,请先选择简历')) callback(new Error('你尚未选择简历,请先选择简历'))
...@@ -414,6 +456,7 @@ export default { ...@@ -414,6 +456,7 @@ export default {
UpdateTIME:'', UpdateTIME:'',
UpdateVIEW:'' UpdateVIEW:''
}, },
editorObject: {type: '', value: ''},
emailInline:{ emailInline:{
moo:'', moo:'',
modalArr:[], modalArr:[],
...@@ -423,6 +466,15 @@ export default { ...@@ -423,6 +466,15 @@ export default {
Enclosure:[],//附件 Enclosure:[],//附件
templateContent:'',//模板内容 templateContent:'',//模板内容
}, },
transpondFrom: {
interviewerName: ''
},
transpondRule: {
interviewerName: [{required: true, trigger: 'blur', validator: validator}]
},
interviewerList: [{name: 'test', value: '1'}],
loading1: false,
options: [],
limentName:0, limentName:0,
emailMassage:false, emailMassage:false,
allEmailVilitor:false, allEmailVilitor:false,
...@@ -476,6 +528,7 @@ export default { ...@@ -476,6 +528,7 @@ export default {
modal4:false, modal4:false,
modal5:false, modal5:false,
modal7:false, modal7:false,
modal8: false,
modal10:false, modal10:false,
optcode:'', optcode:'',
toseename:'', toseename:'',
...@@ -517,9 +570,13 @@ export default { ...@@ -517,9 +570,13 @@ export default {
value:[], value:[],
ajaxData: [], ajaxData: [],
checkData: [], checkData: [],
checkboxList:[] checkboxList:[],
delateARRALL3: []
} }
}, },
computed:{
...mapState({interviewee: state => state.channelInterviewee})
},
components:{ components:{
ckeditor ckeditor
}, },
...@@ -539,12 +596,13 @@ export default { ...@@ -539,12 +596,13 @@ export default {
}, },
//全选与反选 //全选与反选
checkedAll: function() { checkedAll: function() {
if(this.ajaxData.length==0){ // if(this.ajaxData.length==0){
this.checkboxList=[] // this.checkboxList=[]
} // }
if (this.checked) {//实现反选 if (this.checked) {//实现反选
this.checkboxList = []; this.checkboxList = [];
this.ajaxData.forEach( (item) => { this.ajaxData.forEach( (item) => {
this.removeInterviewee(item)
this.checkboxList = []; this.checkboxList = [];
this.delateARRALL=[]; this.delateARRALL=[];
this.flowStatusarr=[] this.flowStatusarr=[]
...@@ -557,6 +615,7 @@ export default { ...@@ -557,6 +615,7 @@ export default {
} }
this.checkboxList = []; this.checkboxList = [];
this.ajaxData.forEach( (item) => { this.ajaxData.forEach( (item) => {
this.addInterviewee(item)
this.checkboxList.push(item.id); this.checkboxList.push(item.id);
this.delateARRALL.push(item.id); this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus) this.flowStatusarr.push(item.flowStatus)
...@@ -832,20 +891,24 @@ export default { ...@@ -832,20 +891,24 @@ export default {
}, },
// 可删除状态下点击 // 可删除状态下点击
delateR(delateid){ delateR(delateid){
this.delateARRALL2.push(delateid) this.delateARRALL3 = []
this.delateARRALL3.push(delateid)
this.modal3=true this.modal3=true
}, },
// 删除单条简历 // 删除单条简历
delateONE(){ delateONE(){
deleteREsume(this.delateARRALL2).then(res=>{ deleteREsume(this.delateARRALL3).then(res=>{
if(res.data.success==true){ if(res.data.success==true){
this.delateARRALL3.map(item => {
this.removeInterviewee({id:item})
})
this.modal3=false this.modal3=false
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
} }
}) })
}, },
// 选择input元素 // 选择input元素
selectInputElement(index,doID,doStatus,sss){ selectInputElement(index,doID,doStatus,sss, item){
sss=!sss sss=!sss
this.emailId=doID this.emailId=doID
this.ajaxData[index].STATES=sss this.ajaxData[index].STATES=sss
...@@ -865,12 +928,14 @@ export default { ...@@ -865,12 +928,14 @@ export default {
this.delateARRALL.push(doID) this.delateARRALL.push(doID)
this.delateARRALL2.push(doID) this.delateARRALL2.push(doID)
this.flowStatusarr.push(doStatus) this.flowStatusarr.push(doStatus)
this.addInterviewee(item)
this.emailIdArr.push(doID) this.emailIdArr.push(doID)
} }
if(sss==false){ if(sss==false){
this.delateARRALL.remove(doID) this.delateARRALL.remove(doID)
this.delateARRALL2.remove(doID) this.delateARRALL2.remove(doID)
this.flowStatusarr.remove(doStatus) this.flowStatusarr.remove(doStatus)
this.removeInterviewee(item)
this.emailIdArr.remove(doID) this.emailIdArr.remove(doID)
} }
}, },
...@@ -1002,6 +1067,9 @@ export default { ...@@ -1002,6 +1067,9 @@ export default {
deleteREsume(this.DELATEARR).then(res=>{ deleteREsume(this.DELATEARR).then(res=>{
if(res.data.success==true){ if(res.data.success==true){
this.modal7=false this.modal7=false
this.delateARRALL.map(item => {
this.removeInterviewee({id:item})
})
this.delateARRALL=[] this.delateARRALL=[]
this.flowStatusarr=[] this.flowStatusarr=[]
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
...@@ -1062,6 +1130,22 @@ export default { ...@@ -1062,6 +1130,22 @@ export default {
}) })
}) })
}, },
delInterviewee (item) {
this.removeInterviewee(item)
let indexOf = this.checkboxList.indexOf(item.id)
if (indexOf < 0) return
this.checkboxList.splice(indexOf, 1)
this.delateARRALL.splice(indexOf, 1)
this.flowStatusarr.splice(indexOf, 1)
this.ajaxData.filter((item, index) => {
item
})
this.ajaxData.map((data, index) => {
if (data.id == item.id) {
data.STATES = false
}
})
},
//搜索 //搜索
SouSuo(page){ SouSuo(page){
page = typeof(page)=='number'?page:1 page = typeof(page)=='number'?page:1
...@@ -1112,16 +1196,27 @@ export default { ...@@ -1112,16 +1196,27 @@ export default {
item.ownerWorkYears=item.ownerWorkYears item.ownerWorkYears=item.ownerWorkYears
item.modifyTime=item.modifyTime item.modifyTime=item.modifyTime
item.srcSite=item.srcSite item.srcSite=item.srcSite
item.STATES=false item.STATES=isClick.call(this, item.id)
item.isShow=false item.isShow=false
item.optSource=item.optSource item.optSource=item.optSource
item.modifier=item.modifier item.modifier=item.modifier
item.c=item.modifier==''?item.modifier:item.modifier.split('_') item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0] item.d=item.c[0]
if (item.STATES) { //以选中
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus)
}
return item return item
}) })
} }
}) })
function isClick (id) { // 是否已选中转发
let filterArr = this.interviewee.filter(item => {
return item.id == id
})
return filterArr.length > 0
}
}, },
// 刷新列表 // 刷新列表
pushlist(){ pushlist(){
...@@ -1197,7 +1292,10 @@ export default { ...@@ -1197,7 +1292,10 @@ export default {
this.emailInline.theme=res.data.body.templateSubject this.emailInline.theme=res.data.body.templateSubject
this.emailInline.receiveEmail=res.data.body.receiveEmail this.emailInline.receiveEmail=res.data.body.receiveEmail
this.emailInline.templateContent=res.data.body.templateContent this.emailInline.templateContent=res.data.body.templateContent
this.sad=this.emailInline.templateContent this.editorObject = {
type: value,
value: this.emailInline.templateContent || ''
}
if(res.data.body&&res.data.body.resumeInterviewVO){ if(res.data.body&&res.data.body.resumeInterviewVO){
this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.interviewerName this.formInline.UpdateOWER=res.data.body.resumeInterviewVO.interviewerName
this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.inviterName this.formInline.UpdateVIEW=res.data.body.resumeInterviewVO.inviterName
...@@ -1254,10 +1352,9 @@ export default { ...@@ -1254,10 +1352,9 @@ export default {
this.uploadFileList=[] this.uploadFileList=[]
this.SouSuo(this.pageT) this.SouSuo(this.pageT)
}, },
getEditorValue: _debounce(function (value) { getEditorValue(){ // 调编辑器组件方法获取数据
this.emailContent=value return this.$refs.editor.getValue()
this.sad = value },
}),
delateFile(index){ delateFile(index){
this.fileList.splice(index,1) this.fileList.splice(index,1)
this.uploadFileList.splice(index,1) this.uploadFileList.splice(index,1)
...@@ -1265,6 +1362,7 @@ export default { ...@@ -1265,6 +1362,7 @@ export default {
}, },
// 确认发送邮件 // 确认发送邮件
confireSendEmail(){ confireSendEmail(){
this.sad=this.getEditorValue()
if(this.sad==''){ if(this.sad==''){
this.$Notice.error({ this.$Notice.error({
title: '提示', title: '提示',
...@@ -1538,8 +1636,104 @@ export default { ...@@ -1538,8 +1636,104 @@ export default {
}else{ }else{
this.isDisable=true this.isDisable=true
} }
} },
getEditorValue(value){
console.log(value,3333333333)
},
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
},
sendNotice() {
this.$refs.transpondFrom.validate(valid => {
if(!this.transpondFrom.interviewerName){
console.log('====')
return
}
if (this.interviewee.length < 1) {
this.$Notice.warning({title: '提示',desc: '发送内通为空,请勾选您要发送的简历'})
return
}
console.log('-----')
let resumeIdList = []
this.interviewee.map(item => {
resumeIdList.push(item.id)
})
console.log('=====')
let params = {
resumeIdList,
email: this.transpondFrom.interviewerName
}
console.log('++++',)
forwardResume(params).then(res => {
if (res.success) {
this.clearInterviewee()
this.modal8 = false
this.$Notice.warn({
title: '提示',
desc: '发送成功'
});
} else{
this.$Notice.error({
title: '提示',
desc: '发送失败'
});
this.clearInterviewee()
this.modal8 = false
}
})
})
},
remoteMethod (query) {
if (query !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
let list = []
findCompanyEmailByKey(query).then(res => {
list = res
this.options = list.data.body.filter(item => item.name.toLowerCase().indexOf(query.toLowerCase()) > -1 || item.email.toLowerCase().indexOf(query.toLowerCase()) > -1);
}, 200);
})
} else {
this.options = [];
}
},
removeInterviewee (value) {
let data = {
type: 'channel',
data: value
}
this.$store.dispatch('removeInterviewee', data)
},
addInterviewee (value) {
let data = {
type: 'channel',
data: value
}
this.$store.dispatch('addInterviewee', data)
},
clearInterviewee (value) {
let data = {
type: 'channel',
data: value
}
this.$store.dispatch('clearInterviewee', data)
this.checkboxList = []
this.delateARRALL = []
this.flowStatusarr = []
}
}, },
watch: { watch: {
'$route' (to, from) { '$route' (to, from) {
...@@ -1550,6 +1744,7 @@ export default { ...@@ -1550,6 +1744,7 @@ export default {
optSourceCode:this.$route.params.channelname optSourceCode:this.$route.params.channelname
} }
} }
this.clearInterviewee()
this.ajaxData=[] this.ajaxData=[]
adoptOneSeeResumeList(parmars).then(res=>{ adoptOneSeeResumeList(parmars).then(res=>{
if(res.data.success==true){ if(res.data.success==true){
...@@ -1574,16 +1769,27 @@ export default { ...@@ -1574,16 +1769,27 @@ export default {
item.ownerWorkYears=item.ownerWorkYears item.ownerWorkYears=item.ownerWorkYears
item.modifyTime=item.modifyTime item.modifyTime=item.modifyTime
item.srcSite=item.srcSite item.srcSite=item.srcSite
item.STATES=false item.STATES=isClick.call(this, item.id)
item.isShow=false item.isShow=false
item.optSource=item.optSource item.optSource=item.optSource
item.modifier=item.modifier item.modifier=item.modifier
item.c=item.modifier==''?item.modifier:item.modifier.split('_') item.c=item.modifier==''?item.modifier:item.modifier.split('_')
item.d=item.c[0] item.d=item.c[0]
if (item.STATES) { //以选中
this.checkboxList.push(item.id)
this.delateARRALL.push(item.id);
this.flowStatusarr.push(item.flowStatus)
}
return item return item
}) })
} }
}) })
function isClick (id) { // 是否已选中转发
let filterArr = this.interviewee.filter(item => {
return item.id == id
})
return filterArr.length > 0
}
}, },
checkboxList: { checkboxList: {
handler: function (val, oldVal) { handler: function (val, oldVal) {
...@@ -1607,15 +1813,15 @@ export default { ...@@ -1607,15 +1813,15 @@ export default {
} }
}, },
deep: true deep: true
} },
}, },
mounted(){ mounted(){
this.SouSuo() this.SouSuo()
} }
} }
</script> </script>
<style scoped> <style scoped lang='less'>
.channel{ .channel{
width: 100%; width: 100%;
height: 100% height: 100%
...@@ -1747,5 +1953,58 @@ select{ ...@@ -1747,5 +1953,58 @@ select{
.Ubt button{ .Ubt button{
margin-left: 40px margin-left: 40px
} }
.badge1{
display: inline-block;
position: absolute;
width:25%;
height:73%;
line-height: 130%;
top:-23%;
left: -10%;
background:red;
border-radius: 50%;
}
.badge{
position: absolute;
top: -32%;
right: -15px;
}
.badges {
right: -30px;
}
.badges1 {
right: -21px;
}
.interviewee{
float:left;
width:50px;
margin :10px;
height: 60px;
text-align: center;
.pic{
position: relative;
height:40px;
}
img{
width:100%;
}
p{
width: 100%;
text-align: center;
}
i{
position: absolute;
right:-10px;
top:-10px;
}
.hint{
}
.title{
text-align: center;
width:100%;
margin-bottom: 10px;
}
}
</style> </style>
...@@ -4,7 +4,6 @@ export function _debounce (fn, delay) { ...@@ -4,7 +4,6 @@ export function _debounce (fn, delay) {
return function () { return function () {
let args = arguments let args = arguments
if (timer) { if (timer) {
clearTimeout(timer) clearTimeout(timer)
...@@ -12,7 +11,6 @@ export function _debounce (fn, delay) { ...@@ -12,7 +11,6 @@ export function _debounce (fn, delay) {
timer = setTimeout(function () { timer = setTimeout(function () {
timer = null timer = null
// console.log(this)
fn.apply(this, args) fn.apply(this, args)
}.bind(this), delay) }.bind(this), delay)
} }
......
...@@ -4,8 +4,14 @@ let action = { ...@@ -4,8 +4,14 @@ let action = {
cookieTipsShow({commit}, value) { cookieTipsShow({commit}, value) {
commit(types.COOKIE_SHOW, value) commit(types.COOKIE_SHOW, value)
}, },
cookieTipsHide ({commit}, value) { addInterviewee ({commit}, value) {
commit(types.COOKIE_HIDE, 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 export default action
\ No newline at end of file
...@@ -6,7 +6,9 @@ import actions from './actions.js' ...@@ -6,7 +6,9 @@ import actions from './actions.js'
Vue.use(Vuex) Vue.use(Vuex)
const state = { const state = {
cookieTips: false cookieTips: false,
interviewee: [],
channelInterviewee: [],
} }
export default new Vuex.Store({ export default new Vuex.Store({
mutations, mutations,
......
export const COOKIE_SHOW = 'COOKIE_SHOW' export const COOKIE_SHOW = 'COOKIE_SHOW'
export const COOKIE_HIDE = 'COOKIE_HIDE' export const COOKIE_HIDE = 'COOKIE_HIDE'
export const ADD_INTERVIEWEE = 'ADD_INTERVIEWEE'
export const REMOVE_INTERVIEWEE = 'REMOVE_INTERVIEWEE'
export const CLEAR_INTERVIEWEE = 'CLEAR_INTERVIEWEE'
import {COOKIE_SHOW, COOKIE_HIDE} from './muationsType' import {COOKIE_SHOW, COOKIE_HIDE,ADD_INTERVIEWEE,REMOVE_INTERVIEWEE, CLEAR_INTERVIEWEE} from './muationsType'
export default { export default {
[COOKIE_SHOW] (state, value) { [COOKIE_SHOW] (state, value) {
state.cookieTips = value || true state.cookieTips = value || true
}, },
[COOKIE_HIDE](state, value) { [COOKIE_HIDE](state, value) {
state.cookieTips = value || false state.cookieTips = value || false
},
[ADD_INTERVIEWEE] (state, object) {
let flag = false
let data = object.data
if (object.type=='channel') {
console.log(data)
state.channelInterviewee.map(item => {
if (data&&item.id == data.id) {
flag = true
return
}
})
if (!flag) {
state.channelInterviewee.push(data)
}
} else {
state.interviewee.map(item => {
if (data&&item.id == data.id) {
flag = true
return
}
})
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) {
state.channelInterviewee.splice(index, 1)
}
})
} 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') {
state.channelInterviewee = []
console.log('===')
} else {
state.interviewee = []
}
} }
} }
\ No newline at end of file
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