Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
recruiting-management
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
recruiting-management
Commits
f4250c06
Commit
f4250c06
authored
Sep 12, 2019
by
FE-安焕焕
👣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
转发面试官功能
parent
f1880f06
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
623 additions
and
53 deletions
+623
-53
resume.server.js
src/api/resume.server.js
+10
-0
main.js
src/main.js
+2
-0
allResume.vue
src/page/resume/allResume.vue
+277
-35
channel.vue
src/page/resume/channel.vue
+264
-14
actions.js
src/store/actions.js
+8
-2
index.js
src/store/index.js
+3
-1
muationsType.js
src/store/muationsType.js
+5
-0
mutations.js
src/store/mutations.js
+54
-1
No files found.
src/api/resume.server.js
View file @
f4250c06
...
@@ -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
'
}})
}
src/main.js
View file @
f4250c06
...
@@ -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/>
'
,
});
});
src/page/resume/allResume.vue
View file @
f4250c06
...
@@ -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>
...
@@ -356,17 +360,52 @@
...
@@ -356,17 +360,52 @@
<Button
type=
'primary'
@
click=
'confireSendEmail'
v-show=
"this.isShowAll==true"
>
添加并发送
</Button>
<Button
type=
'primary'
@
click=
'confireSendEmail'
v-show=
"this.isShowAll==true"
>
添加并发送
</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
}
from
'
../../config
'
}
from
'
../../config
'
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
()
{
...
@@ -381,8 +420,14 @@ import ckeditor from '../../components/ckeditor'
...
@@ -381,8 +420,14 @@ 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
:
[],
ruleInline
:
{
ruleInline
:
{
UpdateOWER
:
[
UpdateOWER
:
[
{
required
:
true
,
message
:
'
邀约人不能为空
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
message
:
'
邀约人不能为空
'
,
trigger
:
'
blur
'
}
...
@@ -437,6 +482,14 @@ import ckeditor from '../../components/ckeditor'
...
@@ -437,6 +482,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
'
}],
title
:
''
,
title
:
''
,
emailMOdal
:
false
,
emailMOdal
:
false
,
DOSTA
:
''
,
DOSTA
:
''
,
...
@@ -521,21 +574,18 @@ import ckeditor from '../../components/ckeditor'
...
@@ -521,21 +574,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
;
}
}
...
@@ -545,7 +595,10 @@ import ckeditor from '../../components/ckeditor'
...
@@ -545,7 +595,10 @@ import ckeditor from '../../components/ckeditor'
},
},
components
:{
components
:{
ckeditor
ckeditor
},
computed
:{
...
mapState
({
interviewee
:
'
interviewee
'
})
},
},
methods
:
{
methods
:
{
//全选与反选
//全选与反选
...
@@ -553,21 +606,21 @@ import ckeditor from '../../components/ckeditor'
...
@@ -553,21 +606,21 @@ 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
=
[]
item
.
STATES
=
false
item
.
STATES
=
false
});
});
console
.
log
(
this
.
delateARRALL
,
666666
)
}
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
)
item
.
STATES
=
true
item
.
STATES
=
true
});
});
console
.
log
(
this
.
delateARRALL
,
7777777
)
}
}
},
},
// 准备约面
// 准备约面
...
@@ -627,7 +680,7 @@ import ckeditor from '../../components/ckeditor'
...
@@ -627,7 +680,7 @@ import ckeditor from '../../components/ckeditor'
let
parmars
=
{
let
parmars
=
{
resumeId
:
this
.
toseeid
,
resumeId
:
this
.
toseeid
,
inviterName
:
this
.
formInline
.
UpdateOWER
,
inviterName
:
this
.
formInline
.
UpdateOWER
,
interviewe
r
Name
:
this
.
formInline
.
UpdateVIEW
,
interviewe
e
Name
:
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
==
''
){
...
@@ -830,14 +883,26 @@ import ckeditor from '../../components/ckeditor'
...
@@ -830,14 +883,26 @@ 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
=
false
item
.
STATES
=
isClick
.
call
(
this
,
item
.
id
)
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
){
...
@@ -916,12 +981,15 @@ import ckeditor from '../../components/ckeditor'
...
@@ -916,12 +981,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
...
@@ -937,15 +1005,26 @@ import ckeditor from '../../components/ckeditor'
...
@@ -937,15 +1005,26 @@ import ckeditor from '../../components/ckeditor'
item
.
modifyTime
=
item
.
modifyTime
item
.
modifyTime
=
item
.
modifyTime
item
.
srcSite
=
item
.
srcSite
item
.
srcSite
=
item
.
srcSite
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
){
...
@@ -982,7 +1061,7 @@ import ckeditor from '../../components/ckeditor'
...
@@ -982,7 +1061,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
this
.
emailIdArr
.
push
(
doID
)
this
.
emailIdArr
.
push
(
doID
)
this
.
emailId
=
doID
this
.
emailId
=
doID
...
@@ -1004,13 +1083,13 @@ import ckeditor from '../../components/ckeditor'
...
@@ -1004,13 +1083,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
)
console
.
log
(
this
.
delateARRALL
,
8888888
,
this
.
ajaxData
[
index
].
STATES
)
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
)
console
.
log
(
this
.
delateARRALL
,
5555555
,
this
.
ajaxData
[
index
].
STATES
)
this
.
removeInterviewee
(
item
)
}
}
},
},
//查看简历详情
//查看简历详情
...
@@ -1041,17 +1120,22 @@ import ckeditor from '../../components/ckeditor'
...
@@ -1041,17 +1120,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
)
}
}
...
@@ -1143,6 +1227,9 @@ import ckeditor from '../../components/ckeditor'
...
@@ -1143,6 +1227,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
)
...
@@ -1253,9 +1340,7 @@ import ckeditor from '../../components/ckeditor'
...
@@ -1253,9 +1340,7 @@ import ckeditor from '../../components/ckeditor'
})
})
},
},
beforUpload
(
aaa
){
beforUpload
(
aaa
){
console
.
log
(
aaa
,
File
,
aaa
.
name
)
this
.
fileList
.
push
(
aaa
.
name
)
this
.
fileList
.
push
(
aaa
.
name
)
console
.
log
(
this
.
fileList
)
return
false
return
false
},
},
// 发送全部内容
// 发送全部内容
...
@@ -1294,20 +1379,124 @@ import ckeditor from '../../components/ckeditor'
...
@@ -1294,20 +1379,124 @@ import ckeditor from '../../components/ckeditor'
formData
.
append
(
'
emailContent
'
,
this
.
emailContent
)
formData
.
append
(
'
emailContent
'
,
this
.
emailContent
)
formData
.
append
(
'
resumeInterviewVO.resumeId
'
,
this
.
emailId
)
formData
.
append
(
'
resumeInterviewVO.resumeId
'
,
this
.
emailId
)
formData
.
append
(
'
resumeInterviewVO.inviterName
'
,
this
.
formInline
.
UpdateOWER
)
formData
.
append
(
'
resumeInterviewVO.inviterName
'
,
this
.
formInline
.
UpdateOWER
)
formData
.
append
(
'
resumeInterviewVO.interviewe
r
Name
'
,
this
.
formInline
.
UpdateVIEW
)
formData
.
append
(
'
resumeInterviewVO.interviewe
e
Name
'
,
this
.
formInline
.
UpdateVIEW
)
formData
.
append
(
'
resumeInterviewVO.seeTime
'
,
moment
(
this
.
formInline
.
UpdateTIME
).
format
(
'
YYYY/MM/DD HH:mm
'
))
formData
.
append
(
'
resumeInterviewVO.seeTime
'
,
moment
(
this
.
formInline
.
UpdateTIME
).
format
(
'
YYYY/MM/DD HH:mm
'
))
formData
.
append
(
'
flowStatus
'
,
this
.
flowStatusTT
)
formData
.
append
(
'
flowStatus
'
,
this
.
flowStatusTT
)
sendEmail
(
formData
).
then
(
res
=>
{
sendEmail
(
formData
).
then
(
res
=>
{
console
.
log
(
res
)
console
.
log
(
res
)
})
})
}
},
},
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
=
[];
}
},
},
mounted
(){
mounted
(){
this
.
SearchList
()
this
.
SearchList
()
}
}
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
lang=
'less'
>
.allResume{
.allResume{
width: 100%;
width: 100%;
height:100%
height:100%
...
@@ -1433,4 +1622,57 @@ select{
...
@@ -1433,4 +1622,57 @@ 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
>
src/page/resume/channel.vue
View file @
f4250c06
...
@@ -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>
...
@@ -351,18 +354,57 @@
...
@@ -351,18 +354,57 @@
<Button
type=
'primary'
@
click=
'emailMOdal=false'
v-show=
"this.isShowAll==false"
>
发送
</Button>
<Button
type=
'primary'
@
click=
'emailMOdal=false'
v-show=
"this.isShowAll==false"
>
发送
</Button>
<Button
type=
'primary'
@
click=
'emailMOdal=false'
v-show=
"this.isShowAll==true"
>
添加并发送
</Button>
<Button
type=
'primary'
@
click=
'emailMOdal=false'
v-show=
"this.isShowAll==true"
>
添加并发送
</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
}
from
'
../../api/resume.server.js
'
import
{
adoptOneSeeResumeList
,
serchList
,
downloadone
,
sousuoList
,
seedetail
,
PASS
,
OPTION
,
deleteREsume
,
downloadOne
,
exportLIST
,
recodeLIST
,
addinterview
,
TODORes
,
getEmailMoo
,
getEmailContent
,
findCompanyEmailByKey
,
forwardResume
}
from
'
../../api/resume.server.js
'
import
{
import
{
sapi
sapi
}
from
'
../../config
'
}
from
'
../../config
'
import
ckeditor
from
'
../../components/ckeditor
'
import
ckeditor
from
'
../../components/ckeditor
'
import
{
mapState
}
from
'
vuex
'
export
default
{
export
default
{
data
(){
data
(){
const
validator
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
this
.
$Notice
.
warning
({
title
:
'
提示
'
,
desc
:
'
请输入您要通知的面试官
'
})
callback
()
}
return
{
return
{
ruleInline
:
{
ruleInline
:
{
UpdateOWER
:
[
UpdateOWER
:
[
...
@@ -389,6 +431,15 @@ export default {
...
@@ -389,6 +431,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
:
[],
fileList
:[],
fileList
:[],
uploadurl
:
'
192.168.28.10
'
,
uploadurl
:
'
192.168.28.10
'
,
isShowAll
:
false
,
isShowAll
:
false
,
...
@@ -429,6 +480,7 @@ export default {
...
@@ -429,6 +480,7 @@ export default {
modal4
:
false
,
modal4
:
false
,
modal5
:
false
,
modal5
:
false
,
modal7
:
false
,
modal7
:
false
,
modal8
:
false
,
optcode
:
''
,
optcode
:
''
,
toseename
:
''
,
toseename
:
''
,
// UpdateOWER:'',
// UpdateOWER:'',
...
@@ -469,9 +521,13 @@ export default {
...
@@ -469,9 +521,13 @@ export default {
value
:[],
value
:[],
ajaxData
:
[],
ajaxData
:
[],
checkData
:
[],
checkData
:
[],
checkboxList
:[]
checkboxList
:[],
delateARRALL3
:
[]
}
}
},
},
computed
:{
...
mapState
({
interviewee
:
state
=>
state
.
channelInterviewee
})
},
components
:{
components
:{
ckeditor
ckeditor
},
},
...
@@ -491,12 +547,13 @@ export default {
...
@@ -491,12 +547,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
=
[]
...
@@ -509,6 +566,7 @@ export default {
...
@@ -509,6 +566,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
)
...
@@ -761,20 +819,24 @@ export default {
...
@@ -761,20 +819,24 @@ export default {
downloadAll
(){},
downloadAll
(){},
// 可删除状态下点击
// 可删除状态下点击
delateR
(
delateid
){
delateR
(
delateid
){
this
.
delateARRALL2
.
push
(
delateid
)
this
.
delateARRALL3
=
[]
this
.
delateARRALL3
.
push
(
delateid
)
this
.
modal3
=
true
this
.
modal3
=
true
},
},
// 删除单条简历
// 删除单条简历
delateONE
(){
delateONE
(){
deleteREsume
(
this
.
delateARRALL
2
).
then
(
res
=>
{
deleteREsume
(
this
.
delateARRALL
3
).
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
...
@@ -794,11 +856,13 @@ export default {
...
@@ -794,11 +856,13 @@ 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
)
}
}
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
)
}
}
},
},
//选择搜索元素
//选择搜索元素
...
@@ -929,6 +993,9 @@ export default {
...
@@ -929,6 +993,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
)
...
@@ -989,6 +1056,22 @@ export default {
...
@@ -989,6 +1056,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
...
@@ -1039,16 +1122,27 @@ export default {
...
@@ -1039,16 +1122,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
(){
...
@@ -1127,6 +1221,97 @@ export default {
...
@@ -1127,6 +1221,97 @@ export default {
delateFile
(
index
){
delateFile
(
index
){
this
.
fileList
.
splice
(
index
,
1
)
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
)
{
...
@@ -1137,6 +1322,7 @@ export default {
...
@@ -1137,6 +1322,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
){
...
@@ -1161,16 +1347,27 @@ export default {
...
@@ -1161,16 +1347,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
)
{
...
@@ -1194,15 +1391,15 @@ export default {
...
@@ -1194,15 +1391,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%
...
@@ -1334,5 +1531,58 @@ select{
...
@@ -1334,5 +1531,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
>
src/store/actions.js
View file @
f4250c06
...
@@ -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
src/store/index.js
View file @
f4250c06
...
@@ -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
,
...
...
src/store/muationsType.js
View file @
f4250c06
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
'
src/store/mutations.js
View file @
f4250c06
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment