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
b45eb30c
Commit
b45eb30c
authored
Sep 26, 2019
by
zhangderong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
简历详情页加发送邮件的等功能
parent
9ed17bac
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
656 additions
and
49 deletions
+656
-49
allResume.vue
src/page/resume/allResume.vue
+12
-9
channel.vue
src/page/resume/channel.vue
+11
-9
resumeDetail.vue
src/page/resume/resumeDetail.vue
+633
-31
No files found.
src/page/resume/allResume.vue
View file @
b45eb30c
...
@@ -59,13 +59,13 @@
...
@@ -59,13 +59,13 @@
<span
style=
"display:inline-block;height:100%;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px;"
class=
'inputcheck'
>
<span
style=
"display:inline-block;height:100%;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px;"
class=
'inputcheck'
>
<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=
"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=
"cursor:pointer"
>
</span>
</span>
<span
style=
"display:inline-block;height:100%;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid)"
>
{{
item
.
ownerName
}}
<span
v-show=
"item.ownerMobile !==''"
>
|
</span></span>
<span
style=
"display:inline-block;height:100%;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid
,item.flowStatus
)"
>
{{
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.uid)"
>
{{
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.uid
,item.flowStatus
)"
>
{{
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.uid)"
>
{{
item
.
ownerAge
}}
岁
<span
v-show=
"item.ownerSex !==''"
>
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerAge
}}
岁
<span
v-show=
"item.ownerSex !==''"
>
|
</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.uid)"
>
{{
item
.
ownerSex
}}
<span
v-show=
"item.ownerWorkYears !==''"
>
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerSex
}}
<span
v-show=
"item.ownerWorkYears !==''"
>
|
</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.uid)"
>
{{
item
.
ownerWorkYears
}}
年
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerWorkYears
}}
年
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</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.uid)"
>
{{
item
.
ownerHighestDegree
}}
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerHighestDegree
}}
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</span></span>
<span
style=
"display:inline-block;height:100%;margin-top:5px;font-size:12px;width:25%;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid)"
>
{{
item
.
ownerExpectTitles
}}
</span>
<span
style=
"display:inline-block;height:100%;margin-top:5px;font-size:12px;width:25%;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid
,item.flowStatus
)"
>
{{
item
.
ownerExpectTitles
}}
</span>
<span
style=
"display:inline-block;height:100%;font-size: 12px;width:25%;float:right;text-align:right;margin-right:10px;margin-top:5px"
>
<span
style=
"display:inline-block;height:100%;font-size: 12px;width:25%;float:right;text-align:right;margin-right:10px;margin-top:5px"
>
<span
style=
"margin-right:20px;margin-top:5px"
v-if=
"item.flowStatus=='INTERVIEW_OK'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
面试合适
</span></span>
<span
style=
"margin-right:20px;margin-top:5px"
v-if=
"item.flowStatus=='INTERVIEW_OK'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
面试合适
</span></span>
<span
style=
"margin-right:20px;margin-top:5px"
v-else-if=
"item.flowStatus=='INTERVIEW_FAIL'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:red"
/><span
style=
"margin-left:10px"
>
面试淘汰
</span></span>
<span
style=
"margin-right:20px;margin-top:5px"
v-else-if=
"item.flowStatus=='INTERVIEW_FAIL'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:red"
/><span
style=
"margin-left:10px"
>
面试淘汰
</span></span>
...
@@ -508,6 +508,7 @@ import {mapState} from 'vuex'
...
@@ -508,6 +508,7 @@ import {mapState} from 'vuex'
UpdateVIEW
:
''
,
UpdateVIEW
:
''
,
sendWeixin
:
true
sendWeixin
:
true
},
},
resumeDetailSta
:
''
,
emailInline
:{
emailInline
:{
moo
:
''
,
moo
:
''
,
modalArr
:[],
modalArr
:[],
...
@@ -1151,13 +1152,15 @@ import {mapState} from 'vuex'
...
@@ -1151,13 +1152,15 @@ import {mapState} from 'vuex'
}
}
},
},
//查看简历详情
//查看简历详情
Seedetail
(
Tid
,
Uid
){
Seedetail
(
Tid
,
Uid
,
STATUS
){
console
.
log
(
STATUS
,
4444444
)
this
.
DOWNID
=
Uid
this
.
DOWNID
=
Uid
this
.
detailID
=
Tid
this
.
detailID
=
Tid
this
.
resumeDetailSta
=
STATUS
let
newpage
=
this
.
$router
.
resolve
({
let
newpage
=
this
.
$router
.
resolve
({
name
:
'
resumeDetail
'
,
name
:
'
resumeDetail
'
,
params
:{},
params
:{},
query
:{
id
:
this
.
DOWNID
,
noShowBtn
:
''
,
ID
:
this
.
detailID
}
query
:{
id
:
this
.
DOWNID
,
noShowBtn
:
''
,
ID
:
this
.
detailID
,
status
:
this
.
resumeDetailSta
}
})
})
window
.
open
(
newpage
.
href
,
'
_blank
'
);
window
.
open
(
newpage
.
href
,
'
_blank
'
);
},
},
...
...
src/page/resume/channel.vue
View file @
b45eb30c
...
@@ -56,13 +56,13 @@
...
@@ -56,13 +56,13 @@
<p
class=
"massage"
style=
"margin-left:10px;"
>
<p
class=
"massage"
style=
"margin-left:10px;"
>
<span
style=
"display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px"
class=
'inputcheck'
>
<span
style=
"display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;margin-top:5px"
class=
'inputcheck'
>
<input
type=
'checkbox'
name=
'checkboxinput'
style=
"cursor:pointer"
class=
'input-checkbox'
v-model=
'checkboxList'
:value=
"item.id"
@
click=
"selectInputElement(i,item.id,item.flowStatus,item.STATES, item)"
></span>
<input
type=
'checkbox'
name=
'checkboxinput'
style=
"cursor:pointer"
class=
'input-checkbox'
v-model=
'checkboxList'
:value=
"item.id"
@
click=
"selectInputElement(i,item.id,item.flowStatus,item.STATES, item)"
></span>
<span
style=
"display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid)"
>
{{
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.uid
,item.flowStatus
)"
>
{{
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.uid)"
>
{{
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.uid
,item.flowStatus
)"
>
{{
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.uid)"
>
{{
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.uid
,item.flowStatus
)"
>
{{
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.uid)"
>
{{
item
.
ownerSex
||
'
'
}}
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerSex
||
'
'
}}
|
</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.uid)"
>
{{
item
.
ownerWorkYears
}}
年 |
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerWorkYears
}}
年 |
</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.uid)"
>
{{
item
.
ownerHighestDegree
||
'
'
}}
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</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.uid
,item.flowStatus
)"
>
{{
item
.
ownerHighestDegree
||
'
'
}}
<span
v-show=
"item.ownerExpectTitles !==''"
>
|
</span></span>
<span
style=
"display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;width:25%;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid)"
>
{{
item
.
ownerExpectTitles
}}
</span>
<span
style=
"display:inline-block;height:100%;font-size: 12px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;width:25%;cursor:pointer"
@
click=
"Seedetail(item.id,item.uid
,item.flowStatus
)"
>
{{
item
.
ownerExpectTitles
}}
</span>
<span
style=
"display:inline-block;height:100%;font-size: 12px;float:right;text-align:right;margin-right:10px;width:25%;line-height:100%;margin-top:5px;"
>
<span
style=
"display:inline-block;height:100%;font-size: 12px;float:right;text-align:right;margin-right:10px;width:25%;line-height:100%;margin-top:5px;"
>
<span
style=
"margin-right:30px;margin-top:5px;"
v-if=
"item.flowStatus=='INTERVIEW_OK'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
面试合适
</span></span>
<span
style=
"margin-right:30px;margin-top:5px;"
v-if=
"item.flowStatus=='INTERVIEW_OK'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
面试合适
</span></span>
<span
style=
"margin-right:30px;margin-top:5px"
v-else-if=
"item.flowStatus=='INTERVIEW_FAIL'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:red"
/><span
style=
"margin-left:10px"
>
面试淘汰
</span></span>
<span
style=
"margin-right:30px;margin-top:5px"
v-else-if=
"item.flowStatus=='INTERVIEW_FAIL'"
class=
'status'
><Icon
type=
"ios-radio-button-on"
style=
"color:red"
/><span
style=
"margin-left:10px"
>
面试淘汰
</span></span>
...
@@ -564,6 +564,7 @@ export default {
...
@@ -564,6 +564,7 @@ export default {
a
:
''
,
a
:
''
,
id
:
''
,
id
:
''
,
pageT
:
''
,
pageT
:
''
,
resumeDetailSta
:
''
,
modal1
:
false
,
modal1
:
false
,
modal2
:
false
,
modal2
:
false
,
modal3
:
false
,
modal3
:
false
,
...
@@ -914,13 +915,14 @@ export default {
...
@@ -914,13 +915,14 @@ export default {
}
}
},
},
// 查看简历详情
// 查看简历详情
Seedetail
(
Tid
,
Uid
){
Seedetail
(
Tid
,
Uid
,
STATUS
){
this
.
detailID
=
Tid
this
.
detailID
=
Tid
this
.
DOWNID
=
Uid
this
.
DOWNID
=
Uid
this
.
resumeDetailSta
=
STATUS
let
newpage
=
this
.
$router
.
resolve
({
let
newpage
=
this
.
$router
.
resolve
({
name
:
'
resumeDetail
'
,
name
:
'
resumeDetail
'
,
params
:{},
params
:{},
query
:{
id
:
this
.
DOWNID
,
noShowBtn
:
''
,
ID
:
this
.
detailID
}
query
:{
id
:
this
.
DOWNID
,
noShowBtn
:
''
,
ID
:
this
.
detailID
,
status
:
this
.
resumeDetailSta
}
})
})
window
.
open
(
newpage
.
href
,
'
_blank
'
);
window
.
open
(
newpage
.
href
,
'
_blank
'
);
},
},
...
...
src/page/resume/resumeDetail.vue
View file @
b45eb30c
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<img
src=
"https://o7oe0d6qz.qnssl.com/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style=
"height:16px;width:23px; vertical-align: middle;margin-top:-4px"
>
<img
src=
"https://o7oe0d6qz.qnssl.com/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style=
"height:16px;width:23px; vertical-align: middle;margin-top:-4px"
>
</span>
</span>
<span
style=
"margin-left:7px;font-size:16px;color:#0092FF"
>
基本信息
</span>
<span
style=
"margin-left:7px;font-size:16px;color:#0092FF"
>
基本信息
</span>
<
span
style=
"float:right;width:50px;height:24px;margin-right:5px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span
>
<
!--
<span
style=
"float:right;width:50px;height:24px;margin-right:5px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
--
>
</p>
</p>
<div
class=
"massageTitle"
>
<div
class=
"massageTitle"
>
<p>
<p>
...
@@ -135,22 +135,155 @@
...
@@ -135,22 +135,155 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"resumeDetail-right"
>
<div
class=
"resumeDetail-right"
v-show=
"boxIsShow"
>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<div
class=
"testResume"
>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:0 0 0 15px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下
载
</Button><br>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:20px 0 0 15px"
@
click=
"transpond"
v-show=
"this.showBtn!=1"
>
转发给面试官
</Button><br>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<p
style=
"margin-top:40px;font-size:16px"
>
当前简历状态:
<span
style=
"color:#0092FF"
>
{{
detailStatus
[
detailSta
]
}}
</span></p>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:20px 0 0 15px"
@
click=
"sendEmail"
v-show=
"hasINterview==false"
>
邀请面试
</Button><br>
<span
style=
"float:right;width:50px;height:24px;margin-right:25px;margin-top:30px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:20px 0 0 15px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
待
处
理
</Button><br>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:20px 0 0 15px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
PASS
</Button><br>
<Button
type=
"primary"
size=
'small'
style=
"width:150px;height:34px;margin:20px 0 0 15px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
备
选
</Button><br>
</div>
</div>
</div>
</div>
<Modal
v-model=
"emailMOdal"
width=
'1000px'
:mask-closable=
'false'
:closable=
'false'
:styles=
"
{top:'50px'}">
<div
>
<!--
<h2
style=
"text-align:center;color:black"
v-show=
"this.isShowAll==false"
>
发送邮件
</h2>
-->
<h2
style=
"text-align:center;color:black"
>
新建面试
</h2>
<h3
style=
"text-align:center;color:black"
>
<span>
新建面试后,你需要从
<span
style=
"color:#0092ff"
>
“面试管理”
</span>
中对该候选人进行后续的操作。
</span></h3>
</div>
<div
class=
"emailModal-title"
>
<div
class=
"emailModalTitle-left"
>
<p>
<Form
:label-width=
"70"
:model=
"emailInline"
label-position=
"left"
style=
"margin-left:5%"
ref=
"emailInline"
:rules=
"emailruleInline"
class=
"emailForm"
>
<FormItem
label=
"选择模板"
style=
"margin-top:20px"
prop=
'moo'
>
<Select
style=
"width:95%"
@
on-change=
'getEmailContentValue'
v-model=
"emailInline.moo"
>
<Option
v-for=
"(item,index) in emailInline.modalArr"
:key=
"index"
:value=
"item.templateCode"
>
{{
item
.
templateName
}}
</Option>
</Select><br>
<!--
<span
v-show=
"emailMassage==true"
>
你尚未选择简历,请先选择简历
</span>
-->
</FormItem>
<FormItem
label=
"收件人"
style=
"margin-top:20px"
prop=
'receiveEmail'
>
<Input
style=
"width:95%"
v-model=
"emailInline.receiveEmail"
@
on-focus=
'getfocus("emailInline","receiveEmail")'
/>
<span
style=
"position: absolute;left:0;top:30px;color:gray;font-size:12px;"
v-show=
'!tip'
>
{{
tipInfo
}}
</span>
</FormItem>
<FormItem
label=
"抄送"
style=
"margin-top:20px"
prop=
'copyname'
>
<Input
style=
"width:95%"
v-model=
"emailInline.copyname"
@
on-focus=
'getfocus("emailInline","copyname")'
/>
</FormItem>
<FormItem
label=
"主题"
style=
"margin-top:20px"
prop=
'theme'
>
<Input
style=
"width:95%"
v-model=
"emailInline.theme"
@
on-focus=
'getfocus("emailInline","theme")'
/>
</FormItem>
</Form>
</p>
</div>
<div
class=
"emailModalTitle-right"
>
<h3
style=
"text-align:center;margin-top:20px"
>
请输入约面信息
</h3>
<Form
:label-width=
"80"
ref=
"formInline"
:rules=
"ruleInline"
:model=
"formInline"
style=
"margin-top:35px"
label-position=
"left"
class=
"emailForm"
>
<FormItem
label=
"邀约人"
style=
"margin-top:20px"
prop=
"UpdateOWER"
>
<Input
v-model=
"formInline.UpdateOWER"
style=
"width:100%"
:maxlength=
"5"
@
on-focus=
'getfocus("formInline", "UpdateOWER")'
/>
</FormItem>
<FormItem
label=
"面试时间"
style=
"margin-top:20px"
prop=
"UpdateTIME"
>
<DatePicker
type=
"datetime"
style=
"width:100%"
v-model=
"formInline.UpdateTIME"
format=
"yyyy-MM-dd HH:mm"
@
on-change=
"changeTime"
:options=
"options3"
:editable=
'false'
@
on-open-change=
'getfocus("formInline", "UpdateTIME", $event)'
></DatePicker>
</FormItem>
<FormItem
label=
"面试官"
style=
"margin-top:20px"
prop=
'UpdateVIEW'
>
<Select
v-model =
'formInline.UpdateVIEW'
filterable
style=
'width:100%;'
remote
:remote-method=
"remoteMethod"
:loading=
"loading1"
placeholder=
'请输入面试官全名'
clearable
@
on-open-change=
'getfocus("formInline", "UpdateVIEW", $event)'
ref=
'setQuery'
:label=
'formInline.UpdateVIEW'
>
<Option
v-for=
'(item, index) in options'
:key=
'index'
:value=
'item.name'
>
{{
item
.
name
}}
(
{{
item
.
email
}}
)
</Option>
</Select>
</FormItem>
</Form>
</div>
</div>
<div
class=
"ckeditor"
>
<ckeditor
:value=
'editorObject'
ref=
'editor'
:uploadUrl=
'uploadurl'
height=
'300px'
width=
'100%'
style=
"margin-left:3%"
></ckeditor>
</div>
<div
class=
"uploadEnclosure"
>
<p
style=
"height:50px;"
>
<span
style=
"font-size:16px;display:inline-block;margin:20px 0 0 3%"
>
添加附件
</span>
<span
style=
"margin-left:500px"
>
<Upload
multiple
:before-upload=
'beforUpload'
action=
"//jsonplaceholder.typicode.com/posts/"
>
<Button
size=
'small'
style=
"margin:-40px 0 0 95px"
type=
"primary"
@
click=
"uploadFile"
>
选择文件
</Button>
</Upload>
</span>
</p>
<p
v-for=
"(item,index) in fileList"
:key=
"index"
style=
"height:30px;line-height:30px"
>
<span
style=
"margin-left:60px"
>
{{
item
}}
</span>
<span><Icon
type=
"md-close"
@
click=
"delateFile(index)"
style=
"font-size:16px;float:right;margin-right:80px"
/></span>
</p>
</div>
<div
slot=
'footer'
style=
"text-align:center;position:relative;"
class=
"Ubt"
>
<Button
type=
'primary'
@
click=
'emailModalPush'
>
取消
</Button>
<Button
type=
'primary'
@
click=
'submit'
>
发送
</Button>
<!--
<Button
type=
'primary'
@
click=
'submit'
v-show=
"this.isShowAll==true"
>
添加并发送
</Button>
-->
<Checkbox
v-model=
"formInline.sendWeixin"
class=
'wechat'
><span>
微信通知面试官
</span></Checkbox>
</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=
'请输入面试官全名'
clearable
>
<Option
v-for=
'(item, index) in options'
:key=
'index'
:value=
'item.email'
>
{{
item
.
name
}}
(
{{
item
.
email
}}
)
</Option>
</Select>
</FormItem>
<FormItem
label=
''
prop=
'interviewee'
>
<div
class=
'interviewee'
>
<div
class=
'pic'
>
<Icon
type=
"ios-close"
size=
'25'
style=
'color:red'
@
click=
'delInterviewee(name)'
class=
"icon"
/>
<img
src=
'https://o7oe0d6qz.qnssl.com/resume.png'
></img>
</div>
<span
style=
''
class=
"name"
>
{{
name
}}
</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
v-model=
"modal10"
width=
'280px'
:closable=
'false'
>
<div
>
<h2
style=
"text-align: center;color:black"
>
提示
</h2>
<p
style=
"text-align:center"
>
确定要发送邮件吗?
</p>
</div>
<div
slot=
'footer'
style=
"text-align:center"
>
<Button
type=
'primary'
@
click=
'modal10=false'
>
取消
</Button>
<Button
type=
'primary'
@
click=
"confireSendEmail"
>
确定
</Button>
</div>
</Modal>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
seedetail
}
from
'
../../api/resume.server
'
import
moment
from
'
moment
'
import
{
seedetail
,
updatastatus
,
TODORes
,
sendEmail
,
getEmailMoo
,
getEmailContent
,
uploadimage
,
findCompanyEmailByKey
,
forwardResume
}
from
'
../../api/resume.server
'
import
localStorage
from
'
../../service/localstorage.service.js
'
import
localStorage
from
'
../../service/localstorage.service.js
'
import
{
import
{
sapi
sapi
}
from
'
../../config
'
}
from
'
../../config
'
import
ckeditor
from
'
../../components/ckeditor
'
import
{
_debounce
,
_throttle
,
emailValidata
,
emailRule
,
vidte
,
validator
}
from
'
../../service/util.js
'
export
default
{
export
default
{
data
(){
data
(){
return
{
return
{
...
@@ -159,14 +292,93 @@ export default {
...
@@ -159,14 +292,93 @@ export default {
roList
:[],
roList
:[],
rpList
:[],
rpList
:[],
reList
:[],
reList
:[],
name
:
''
,
detailSta
:
''
,
emailMOdal
:
false
,
tip
:
false
,
loading1
:
false
,
modal8
:
false
,
modal10
:
false
,
boxIsShow
:
false
,
interviewee
:
[],
a
:{
'
a_b
'
:
'
hjbjhbjbh
'
,
'
b
'
:
'
4
'
},
detailStatus
:{
'
TO_DO
'
:
'
待处理
'
,
'
INTERVIEW_OK
'
:
'
面试合适
'
,
'
INTERVIEW_FAIL
'
:
'
面试淘汰
'
,
'
END
'
:
'
终止面试
'
,
'
SEE_FAIL
'
:
'
约面失败
'
,
'
NO_ENTRY
'
:
'
未入职
'
,
'
TO_SEE
'
:
'
准备约面
'
,
'
END
'
:
'
终止面试
'
,
'
SEE_FAIL
'
:
'
约面失败
'
,
'
NO_ENTRY
'
:
'
未入职
'
,
'
HAS_SEE
'
:
'
已邀约
'
,
'
OPTION
'
:
'
备选
'
,
'
TO_SENT_OFFER
'
:
'
待Offer
'
,
'
HAS_SENT_OFFER
'
:
'
已发offer
'
,
'
TO_ENTRY
'
:
'
待入职
'
,
'
HAS_ENTRY
'
:
'
已入职
'
,
'
PASS
'
:
'
PASS
'
,
'
RESET
'
:
'
重启面试
'
,
'
ARRIVED
'
:
'
已到达
'
},
// detailStatus:[{sta:'TO_DO',detailSta:'待处理'},{sta:'INTERVIEW_OK',detailSta:'面试合适'},{sta:'INTERVIEW_FAIL',detailSta:'面试淘汰'},
// {sta:'END',detailSta:'终止面试'},{sta:'SEE_FAIL',detailSta:'约面失败'},{sta:'NO_ENTRY',detailSta:'未入职'},{sta:'TO_SEE',detailSta:'准备约面'},
// {sta:'HAS_SEE',detailSta:'已邀约'},{sta:'OPTION',detailSta:'备选'},{sta:'TO_SENT_OFFER',detailSta:'待Offer'},{sta:'HAS_SENT_OFFER',detailSta:'已发offer'},{sta:'TO_ENTRY',detailSta:'待入职'},
// {sta:'HAS_ENTRY',detailSta:'已入职'},{sta:'PASS',detailSta:'PASS'},{sta:'RESET',detailSta:'重启面试'},{sta:'ARRIVED',detailSta:'已到达'}],
emailId
:
''
,
transpondFrom
:
{
interviewerName
:
''
},
transpondRule
:
{
interviewerName
:
[{
required
:
true
,
trigger
:
'
blur
'
,
validator
:
validator
.
bind
(
this
)}]
},
options
:
[],
editorObject
:
{
type
:
''
,
value
:
''
},
tipInfo
:
'
输入多个邮箱地址以英文”;“分隔
'
,
fileList
:[],
UpdateTIMETwo
:
''
,
uploadFileList
:[],
temp
:
''
,
uploadurl
:
`
${
sapi
}
/api/ckeditor/uploadImage?token=
${
localStorage
.
get
(
'
token
'
)}
&&backUrl=/getimage`
,
downresume
:
''
,
downresume
:
''
,
detialID
:
''
,
detialID
:
''
,
showBtn
:
''
,
showBtn
:
''
,
isShowAll
:
false
,
isShowTwo
:
false
,
interviewIsShow
:
false
,
hasINterview
:
false
,
resumeIdList
:[],
options3
:
{
disabledDate
(
date
)
{
return
date
&&
date
.
valueOf
()
<
Date
.
now
()
-
3600
*
24
*
1000
;
}
},
ruleInline
:
{
UpdateOWER
:
[
{
required
:
true
,
message
:
'
邀约人不能为空
'
,
trigger
:
'
blur
'
,
validator
:
emailValidata
.
bind
(
this
)}
],
UpdateTIME
:
[
{
required
:
true
,
message
:
'
面试时间不能为空
'
,
trigger
:
'
change
'
,
type
:
'
date
'
,
validator
:
emailValidata
.
bind
(
this
)}
],
UpdateVIEW
:
[
{
required
:
true
,
message
:
'
面试官不能为空
'
,
trigger
:
'
change
'
,
validator
:
emailValidata
.
bind
(
this
),
type
:
String
}
]
},
emailruleInline
:
{
receiveEmail
:
[{
required
:
true
,
trigger
:
'
blur
'
,
pattern
:
emailRule
,
validator
:
emailValidata
.
bind
(
this
)}],
theme
:
[{
required
:
true
,
trigger
:
'
blur
'
,
message
:
'
主题不能为空
'
,
validator
:
emailValidata
.
bind
(
this
)}],
copyname
:
[{
required
:
false
,
trigger
:
'
blur
'
,
pattern
:
emailRule
,
validator
:
emailValidata
.
bind
(
this
),
empty
:
true
}]
},
formInline
:{
UpdateOWER
:
''
,
UpdateTIME
:
''
,
UpdateVIEW
:
''
,
sendWeixin
:
true
},
emailInline
:{
moo
:
''
,
modalArr
:[],
copyname
:
''
,
receiveEmail
:
''
,
//收件人
theme
:
''
,
//主题
Enclosure
:[],
//附件
templateContent
:
''
,
//模板内容
},
}
}
},
components
:{
ckeditor
},
},
methods
:
{
methods
:
{
getDETAIL
(){
getDETAIL
(){
this
.
detialID
=
this
.
$route
.
query
.
ID
this
.
detialID
=
this
.
$route
.
query
.
ID
this
.
resumeIdList
.
push
(
this
.
$route
.
query
.
ID
)
this
.
emailId
=
this
.
$route
.
query
.
ID
this
.
detailSta
=
this
.
$route
.
query
.
status
this
.
showBtn
=
this
.
$route
.
query
.
noShowBtn
this
.
showBtn
=
this
.
$route
.
query
.
noShowBtn
let
token
=
this
.
$route
.
query
.
token
||
''
let
token
=
this
.
$route
.
query
.
token
||
''
let
parmars
=
{
let
parmars
=
{
...
@@ -178,37 +390,419 @@ export default {
...
@@ -178,37 +390,419 @@ export default {
this
.
roList
=
res
.
data
.
body
.
roList
this
.
roList
=
res
.
data
.
body
.
roList
this
.
rpList
=
res
.
data
.
body
.
rpList
this
.
rpList
=
res
.
data
.
body
.
rpList
this
.
reList
=
res
.
data
.
body
.
reList
this
.
reList
=
res
.
data
.
body
.
reList
this
.
name
=
res
.
data
.
body
.
resume
.
ownerName
})
})
},
},
// 下载简历
// 下载简历
downloadONE
(
doid
){
downloadONE
(
doid
){
window
.
location
.
href
=
`
${
sapi
}
/api/resume/download/formatted/one?resumeId=
${
doid
}
`
window
.
location
.
href
=
`
${
sapi
}
/api/resume/download/formatted/one?resumeId=
${
doid
}
`
},
},
a
(){
// 发送邮件
sendEmail
(
type
){
this
.
emailInline
.
modalArr
=
[]
this
.
$refs
.
emailInline
.
resetFields
()
this
.
$refs
.
formInline
.
resetFields
()
this
.
emailInline
.
moo
=
'
TEMP_0001
'
this
.
options
=
[]
this
.
emailMOdal
=
true
getEmailMoo
().
then
(
res
=>
{
this
.
emailInline
.
modalArr
=
res
.
data
.
body
})
this
.
getEmailContentValue
(
this
.
emailInline
.
moo
)
},
getEmailContentValue
(
value
){
if
(
!
value
){
return
}
this
.
isDisable
=
true
this
.
temp
=
value
this
.
emailCode
=
value
let
params
=
{
resumeId
:
this
.
emailId
==
''
?
''
:
this
.
emailId
,
templateCode
:
this
.
emailCode
}
getEmailContent
(
params
).
then
(
res
=>
{
this
.
emailInline
.
theme
=
res
.
data
.
body
.
templateSubject
this
.
emailInline
.
receiveEmail
=
res
.
data
.
body
.
receiveEmail
this
.
emailInline
.
templateContent
=
res
.
data
.
body
.
templateContent
this
.
editorObject
=
{
type
:
value
,
value
:
this
.
emailInline
.
templateContent
||
''
}
if
(
res
.
data
.
body
&&
res
.
data
.
body
.
resumeInterviewVO
){
this
.
formInline
.
UpdateOWER
=
res
.
data
.
body
.
resumeInterviewVO
.
inviterName
this
.
formInline
.
UpdateVIEW
=
res
.
data
.
body
.
resumeInterviewVO
.
interviewerName
this
.
formInline
.
UpdateTIME
=
res
.
data
.
body
.
resumeInterviewVO
.
seeTime
this
.
changeTime
(
this
.
formInline
.
UpdateTIME
)
}
else
{
this
.
formInline
.
UpdateOWER
=
''
this
.
formInline
.
UpdateVIEW
=
''
this
.
formInline
.
UpdateTIME
=
''
}
})
},
getfocus
(
form
,
name
,
e
){
let
vm
=
this
;
let
value
=
this
[
form
][
name
]
if
(
name
==
'
receiveEmail
'
)
{
this
.
tip
&&
this
.
$refs
[
form
].
fields
.
forEach
(
function
(
e
)
{
if
(
e
.
prop
==
name
)
{
e
.
resetField
()
vm
[
form
][
name
]
=
value
vm
.
tip
=
false
}
})
}
else
{
if
(
name
==
'
UpdateTIME
'
&&
e
==
false
){
// 时间选择器关闭弹框的时候
this
.
$refs
.
formInline
.
validateField
(
'
UpdateTIME
'
,
(
e
)
=>
{})
return
}
if
(
name
==
'
UpdateVIEW
'
&&
e
==
false
){
// 选择关闭弹框的时候
this
.
$refs
.
formInline
.
validateField
(
'
UpdateVIEW
'
,
(
e
)
=>
{
})
return
}
this
.
$refs
[
form
].
fields
.
forEach
(
function
(
e
)
{
if
(
e
.
prop
==
name
)
{
e
.
resetField
()
vm
[
form
][
name
]
=
value
}
})
}
},
changeTime
(
b
){
this
.
UpdateTIME
=
b
if
(
!
b
){
this
.
editorObject
=
{
type
:
this
.
temp
,
value
:
this
.
emailInline
.
templateContent
}
this
.
isDisable
=
false
return
}
else
{
this
.
isDisable
=
true
}
var
reg
=
/<span id="email_seeTime"><span>/g
var
time
=
b
.
split
(
'
-
'
)
var
year
=
time
[
0
]
var
mon
=
time
[
1
]
var
day
=
time
[
2
].
split
(
'
'
)[
0
]
var
time
=
time
[
2
].
split
(
'
'
)[
1
]
var
content
=
`<span id="email_seeTime">
${
year
}
年
${
mon
}
月
${
day
}
日
${
time
}
<span>`
this
.
editorObject
=
{
type
:
this
.
temp
,
value
:
this
.
emailInline
.
templateContent
.
replace
(
reg
,
content
)
}
},
remoteMethod
:
async
function
(
query
){
if
(
query
!==
''
)
{
this
.
loading1
=
true
;
setTimeout
(
async
()
=>
{
this
.
loading1
=
false
;
query
=
query
.
split
(
'
(
'
)[
0
]
let
list
=
await
findCompanyEmailByKey
(
query
)
this
.
options
=
list
.
data
.
body
},
200
);
}
else
{
this
.
options
=
[];
}
},
beforUpload
(
uploadFile
){
let
isLiment
=
false
if
(
uploadFile
.
size
/
1024
>
10240
){
isLiment
=
true
this
.
limentName
+=
1
if
(
this
.
limentName
==
1
){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
单个文件不能大于10M
'
})
}
}
else
{
this
.
fileList
.
push
(
uploadFile
.
name
)
this
.
uploadFileList
.
push
(
uploadFile
)
}
return
false
},
uploadFile
(){
this
.
limentName
=
0
},
emailModalPush
(){
this
.
$refs
.
emailInline
.
resetFields
()
this
.
$refs
.
formInline
.
resetFields
()
this
.
emailInline
.
modalArr
=
[]
this
.
emailInline
.
theme
=
''
this
.
emailInline
.
receiveEmail
=
''
this
.
emailInline
.
templateContent
=
''
this
.
sad
=
''
this
.
fileList
=
[]
this
.
emailInline
.
moo
=
''
this
.
emailMOdal
=
false
this
.
emailMassage
=
false
this
.
emailIdArr
=
[]
this
.
emailFlowStatus
=
''
this
.
formInline
.
UpdateOWER
=
''
this
.
formInline
.
UpdateVIEW
=
''
this
.
formInline
.
UpdateTIME
=
''
this
.
formInline
.
sendWeixin
=
true
this
.
emailInline
.
copyname
=
''
this
.
isShowTwo
=
false
this
.
isLimitSize
=
false
this
.
uploadFileList
=
[]
// this.clearInterviewee()
// this.SouSuo(this.pageT,'init')
},
submit
()
{
let
flag
=
false
this
.
$refs
.
emailInline
.
validate
(
val
=>
{
if
(
!
val
)
{
flag
=
true
return
}
})
this
.
$refs
.
formInline
.
validate
(
val
=>
{
if
(
!
val
)
{
flag
=
true
return
}
})
if
(
!
flag
){
this
.
modal10
=
true
}
},
clearInterviewee
(
value
)
{
this
.
interviewee
=
[]
this
.
checkboxList
=
[]
this
.
delateARRALL
=
[]
this
.
flowStatusarr
=
[]
// this.ajaxData.map(item => {
// item.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
:
this
.
resumeIdList
,
email
:
this
.
transpondFrom
.
interviewerName
}
forwardResume
(
params
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
)
{
this
.
clearInterviewee
()
this
.
modal8
=
false
setTimeout
(()
=>
{
this
.
$Notice
.
success
({
title
:
'
提示
'
,
desc
:
'
发送成功
'
})
},
300
)
}
else
{
this
.
errorCode
=
res
.
data
.
body
.
code
this
.
modal8
=
false
this
.
clearInterviewee
()
if
(
this
.
errorCode
==
'
40001
'
){
this
.
modal12
=
true
}
if
(
this
.
errorCode
==
'
40002
'
){
this
.
modal13
=
true
}
}
})
})
},
transpond
()
{
//打开转发简历的modal
this
.
$refs
.
transpondFrom
.
resetFields
()
this
.
modal8
=
true
},
delInterviewee
(
name
){
this
.
name
=
''
},
// 确认发送邮件
confireSendEmail
(){
this
.
sad
=
this
.
getEditorValue
()
if
(
this
.
sad
==
''
){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
请填写完整的信息
'
});
return
}
if
(
this
.
emailInline
.
moo
==
''
){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
请填写完整的信息
'
});
return
}
if
((
this
.
temp
==
'
TEMP_0001
'
)
&&
(
this
.
emailInline
.
moo
==
''
||
this
.
emailInline
.
receiveEmail
==
''
||
this
.
emailInline
.
theme
==
''
||
this
.
formInline
.
UpdateOWER
==
''
||
this
.
formInline
.
UpdateVIEW
==
''
||
this
.
formInline
.
UpdateTIME
==
''
)){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
请填写完整的信息
'
});
return
}
if
(
this
.
emailInline
.
copyname
!==
''
&&!
(
/^
((([
a-z0-9_
\.
-
]
+
)
@
([\d
a-z
\.
-
]
+
)\.([
a-z
\.]{2,6}\;))
*
(([
a-z0-9_
\.
-
]
+
)
@
([\d
a-z
\.
-
]
+
)\.([
a-z
\.]{2,6})))
$/
.
test
(
this
.
emailInline
.
copyname
))){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
请正确填写邮箱地址
'
});
return
}
if
(
!
(
/^
((([
a-z0-9_
\.
-
]
+
)
@
([\d
a-z
\.
-
]
+
)\.([
a-z
\.]{2,6}\;))
*
(([
a-z0-9_
\.
-
]
+
)
@
([\d
a-z
\.
-
]
+
)\.([
a-z
\.]{2,6})))
$/
.
test
(
this
.
emailInline
.
receiveEmail
))){
this
.
$Notice
.
error
({
title
:
'
提示
'
,
desc
:
'
请正确填写邮箱地址
'
});
return
}
this
.
attachFileList
=
this
.
uploadFileList
.
length
==
0
?
''
:
this
.
uploadFileList
this
.
flowStatusTT
=
this
.
emailFlowStatus
==
''
?
''
:
'
TO_SEE
'
this
.
UpdateTIMETwo
=
this
.
formInline
.
UpdateTIME
==
''
?
''
:
this
.
formInline
.
UpdateTIME
if
(
this
.
temp
==
'
TEMP_0001
'
){
var
formData
=
new
FormData
()
if
(
this
.
attachFileList
.
length
!==
0
){
this
.
attachFileList
.
map
(
item
=>
{
formData
.
append
(
'
attachFileList
'
,
item
)
})
}
else
{
formData
.
append
(
'
attachFileList
'
,
''
)
}
formData
.
append
(
'
resumeId
'
,
this
.
emailId
)
formData
.
append
(
'
templateCode
'
,
this
.
emailCode
)
formData
.
append
(
'
subject
'
,
this
.
emailInline
.
theme
)
formData
.
append
(
'
toEmail
'
,
this
.
emailInline
.
receiveEmail
)
formData
.
append
(
'
ccEmail
'
,
this
.
emailInline
.
copyname
)
formData
.
append
(
'
emailContent
'
,
this
.
sad
)
formData
.
append
(
'
resumeInterviewVO.resumeId
'
,
this
.
emailId
)
formData
.
append
(
'
resumeInterviewVO.inviterName
'
,
this
.
formInline
.
UpdateOWER
==
''
?
''
:
this
.
formInline
.
UpdateOWER
)
formData
.
append
(
'
resumeInterviewVO.interviewerName
'
,
this
.
formInline
.
UpdateVIEW
==
''
?
''
:
this
.
formInline
.
UpdateVIEW
)
let
info
=
this
.
options
.
find
(
item
=>
item
.
name
==
this
.
formInline
.
UpdateVIEW
)
formData
.
append
(
'
resumeInterviewVO.email
'
,(
info
&&
info
.
email
)
||
''
)
formData
.
append
(
'
sendWeixin
'
,
this
.
formInline
.
sendWeixin
==
true
?
1
:
0
)
formData
.
append
(
'
resumeInterviewVO.seeTime
'
,
moment
(
this
.
UpdateTIMETwo
).
format
(
'
YYYY/MM/DD HH:mm
'
))
formData
.
append
(
'
flowStatus
'
,
this
.
flowStatusTT
)
this
.
isDisable
=
false
sendEmail
(
formData
).
then
(
res
=>
{
this
.
isDisable
=
true
if
(
res
.
data
.
success
==
true
){
setTimeout
(()
=>
{
this
.
$Notice
.
success
({
title
:
'
提示
'
,
desc
:
'
发送邮件成功
'
})
},
500
)
this
.
emailMOdal
=
false
this
.
modal10
=
false
this
.
emailInline
.
modalArr
=
[]
this
.
emailInline
.
theme
=
''
this
.
emailInline
.
receiveEmail
=
''
this
.
emailInline
.
templateContent
=
''
this
.
sad
=
''
this
.
fileList
=
[]
this
.
emailInline
.
moo
=
''
this
.
emailMOdal
=
false
this
.
emailMassage
=
false
this
.
emailIdArr
=
[]
this
.
emailFlowStatus
=
''
this
.
formInline
.
UpdateOWER
=
''
this
.
formInline
.
UpdateVIEW
=
''
this
.
formInline
.
UpdateTIME
=
''
this
.
formInline
.
sendWeixin
=
true
this
.
emailInline
.
copyname
=
''
this
.
isShowTwo
=
false
this
.
uploadFileList
=
[]
this
.
clearInterviewee
()
}
if
(
res
.
data
.
success
==
false
){
this
.
modal10
=
false
this
.
modal11
=
true
this
.
errorInfo
=
res
.
data
.
body
.
message
}
})
}
},
getEditorValue
(
value
){
// 调编辑器组件方法获取数据
return
this
.
$refs
.
editor
.
getValue
()
},
// 判断按钮的显示与隐藏
judeBtn
(){
if
(
this
.
detailSta
==
'
TO_DO
'
||
this
.
detailSta
==
'
PASS
'
||
this
.
detailSta
==
'
OPTION
'
){
this
.
hasINterview
=
false
}
else
{
this
.
hasINterview
=
true
}
}
}
},
},
mounted
(){
mounted
(){
this
.
getDETAIL
()
this
.
getDETAIL
()
this
.
boxIsShow
=
true
this
.
judeBtn
()
}
}
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.resumeDetail
{
.resumeDetail
{
width
:
1
0
00px
;
width
:
1
1
00px
;
margin
:
30px
auto
;
margin
:
30px
auto
;
color
:
#000000
;
color
:
#000000
;
font-family
:
"\5FAE\8F6F\96C5\9ED1"
;
font-family
:
"\5FAE\8F6F\96C5\9ED1"
;
}
}
.resumeDetail-left
{
.resumeDetail-left
{
float
:
left
;
float
:
left
;
width
:
860px
width
:
860px
;
min-height
:
1000px
/* border: 1px solid #999 */
}
.pic
img
{
width
:
100px
;
height
:
100px
}
.pic
.icon
{
position
:
relative
;
left
:
100px
;
top
:
-90px
}
.interviewee
.name
{
position
:
relative
;
left
:
58px
;
top
:
-25px
;
display
:
inline-block
;
/* margin-left: 200px */
}
}
.resumeDetail-right
{
.resumeDetail-right
{
float
:
left
;
float
:
left
;
width
:
120px
;
width
:
200px
;
height
:
8000px
}
}
.wechat
{
float
:
right
;
margin-top
:
10px
}
.emailModal-title
{
height
:
280px
;
width
:
100%
;
}
.emailModalTitle-left
{
height
:
100%
;
width
:
60%
;
float
:
left
;
}
.emailModalTitle-right
{
height
:
100%
;
width
:
40%
;
float
:
left
;
}
.personalInformation
{
.personalInformation
{
width
:
860px
;
width
:
860px
;
/* height: 600px; */
/* height: 600px; */
...
@@ -228,7 +822,15 @@ export default {
...
@@ -228,7 +822,15 @@ export default {
float
:
left
;
float
:
left
;
font-size
:
14px
;
font-size
:
14px
;
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
20px
margin-left
:
20px
;
}
.testResume
{
position
:
fixed
;
/* float: left; */
top
:
280px
;
width
:
180px
;
/* border: 1px solid black; */
margin-left
:
20px
}
}
/* .test{
/* .test{
position: relative;
position: relative;
...
...
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