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
2743827d
Commit
2743827d
authored
Jul 20, 2019
by
zhangderong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2
parent
a7bced1c
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
493 additions
and
188 deletions
+493
-188
interview.server.js
src/api/interview.server.js
+43
-1
resume.server.js
src/api/resume.server.js
+7
-0
changepsd.vue
src/components/changepsd.vue
+127
-0
interview.vue
src/page/Interview/interview.vue
+229
-119
login.vue
src/page/login/login.vue
+5
-1
updatePsd.vue
src/page/login/updatePsd.vue
+2
-4
allResume.vue
src/page/resume/allResume.vue
+19
-5
account.vue
src/page/system/account.vue
+7
-6
index.js
src/router/index.js
+9
-7
http.service.js
src/service/http.service.js
+45
-45
No files found.
src/api/interview.server.js
View file @
2743827d
...
...
@@ -2,4 +2,46 @@ import axios from '../service/http.service'
import
{
baseApi
,
contractApi
}
from
'
../config/env.config
'
import
qs
from
'
qs
'
\ No newline at end of file
import
qs
from
'
qs
'
// 更改约面信息
export
function
changeinterviewMassage
(
parmars
)
{
return
axios
.
post
(
`/text/api/resumeInterview/update`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
// 重启面试
export
function
oppenInterview
()
{
return
axios
.
post
(
`/text/api/resumeFlow/reset/14/TO_SEE`
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
// 终止面试
export
function
SInterview
(
parmars
)
{
return
axios
.
post
(
`/text/api/resumeFlow/end/14`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
// 面试管理查询
export
function
SerchList
(
parmars
)
{
return
axios
.
post
(
`/text/api/interview/findListByQueryVO`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
//面试官查询
export
function
Serchinterviewor
()
{
return
axios
.
post
(
`/text/api/interview/findInterviewerList`
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
//邀约人查询
export
function
SerchInvitationOwer
()
{
return
axios
.
post
(
`/text/api/interview/findInviterList`
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
//新增约面信息
export
function
NewAddInterview
(
parmars
)
{
return
axios
.
post
(
`/text/api/resumeInterview/add`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/json;
'
,
}})
}
\ No newline at end of file
src/api/resume.server.js
View file @
2743827d
...
...
@@ -8,4 +8,11 @@ export function serchList(parmars){
return
axios
.
post
(
`/text/api/resume/findList`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/json
'
}})
}
// 下载简历(单条)
export
function
downloadone
(
parmars
)
{
parmars
=
qs
.
stringify
(
parmars
)
return
axios
.
post
(
`/text/api/resumeFile/download/formatted/one`
,
parmars
,{
headers
:
{
'
Content-Type
'
:
'
application/x-www-form-urlencoded
'
}})
}
\ No newline at end of file
src/components/changepsd.vue
0 → 100644
View file @
2743827d
<
template
>
<div>
<div
class=
"login"
>
<div
class=
"login-content"
>
<div
class=
"loginContent-left"
>
<img
src=
"../../assets/login.jpg"
>
</div>
<div
class=
"loginContent-right"
>
<div
class=
"logo"
>
<img
src=
"../../assets/log.png"
>
<h3>
首次登录请修改密码
</h3>
</div>
<div
class=
"login_content"
>
<Form
ref=
"formInline"
:model=
"formInline"
:rules=
"ruleInline"
>
<FormItem
prop=
"user"
>
<Input
type=
"text"
v-model=
"formInline.user"
placeholder=
"Username"
class=
"wordStyle"
/>
<Icon
type=
"ios-person-outline"
slot=
"prepend"
></Icon>
</FormItem>
<FormItem
prop=
"password"
>
<Input
type=
"password"
v-model=
"formInline.password"
placeholder=
"Password"
class=
"wordStyle"
/>
<Icon
type=
"ios-lock-outline"
slot=
"prepend"
></Icon>
</FormItem>
<FormItem>
<button
style=
"width:440px;margin-left:30px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255)"
>
登录
</button>
</FormItem>
</Form>
</div>
<div
class=
"copy"
>
<p>
量化派为你提供全程服务
</p>
<p>
量化派版权所有
</p>
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
formInline
:
{
user
:
''
,
password
:
''
},
ruleInline
:
{
user
:
[
{
required
:
true
,
message
:
'
请输入正确的手机号
'
,
trigger
:
'
blur
'
}
],
password
:
[
{
required
:
true
,
message
:
'
请输入正确的密码
'
,
trigger
:
'
blur
'
},
{
type
:
'
string
'
,
min
:
4
,
message
:
''
,
trigger
:
'
blur
'
}
]
}
}
},
methods
:
{
handleSubmit
(
name
)
{
this
.
$refs
[
name
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$Message
.
success
(
'
Success!
'
);
}
else
{
this
.
$Message
.
error
(
'
Fail!
'
);
}
})
}
}
}
</
script
>
<
style
>
.login
{
width
:
100%
;
height
:
100%
;
background
:
#EAEAEA
;
}
.login-content
{
width
:
1100px
;
height
:
1000px
;
margin-left
:
500px
}
.loginContent-left
{
float
:
left
;
width
:
600px
;
height
:
800px
}
.loginContent-right
{
float
:
left
;
width
:
500px
;
height
:
800px
;
background
:
#ffffff
}
.loginContent-left
img
{
width
:
100%
;
height
:
100%
;
}
.logo
{
width
:
100%
;
height
:
140px
;
margin-top
:
80px
;
}
.logo
img
{
width
:
100px
;
height
:
60px
;
margin-left
:
30px
}
.logo
h3
{
font-size
:
25px
;
color
:
black
;
margin-left
:
40px
}
.login_content
{
height
:
200px
;
width
:
100%
;
}
.copy
{
width
:
100%
;
height
:
100px
;
margin-top
:
200px
;
}
.copy
p
{
margin-left
:
30px
}
.wordStyle
{
width
:
440px
;
margin-left
:
30px
}
</
style
>
src/page/Interview/interview.vue
View file @
2743827d
...
...
@@ -9,29 +9,41 @@
<div
class=
"leftcontentContent"
v-for=
"(item,index) in Essentialinformation "
:key=
'index'
>
<div
class=
"contentMassage"
>
<p
style=
"font-size:16px;color:black"
>
<span
style=
"margin-left:10px"
>
{{
item
.
name
}}
|
</span>
<span>
{{
item
.
phone
}}
|
</span>
<span>
{{
item
.
a
}}
</span>
<span
style=
"margin-left:100px;color:#2d8cf0"
@
click=
"updateInterview"
>
更改约面信息
</span>
<span
style=
"margin-left:10px"
>
{{
item
.
ownerName
}}
|
</span>
<span>
{{
item
.
ownerMobile
}}
|
</span>
<span>
{{
item
.
ownerExpectTitles
}}
</span>
<span
style=
"margin-left:100px;color:#2d8cf0"
@
click=
"updateInterview(item.interviewerName,item.seeTime,item.inviterName)"
v-if=
"item.flowStatus=='OPTION'"
>
更改约面信息
</span>
<span
style=
"margin-left:100px;color:#999999"
@
click=
"updateInterview"
v-if=
"item.status==2"
>
暂无约面信息
</span>
</p>
<p
style=
"font-size:14px;margin-top:15px"
>
<span
style=
"margin-left:10px"
>
邀约人:
{{
item
.
Invitation
}}
</span>
<span
style=
"margin-left:20px"
>
面试官:
{{
item
.
Interviewer
}}
</span>
<span
style=
"margin-left:35px"
>
面试时间:
{{
item
.
b
}}
{{
item
.
data
}}
</span>
<span
style=
"margin-left:10px"
>
邀约人:
{{
item
.
interviewerName
}}
</span>
<span
style=
"margin-left:20px"
>
面试官:
{{
item
.
inviterName
}}
</span>
<span
style=
"margin-left:35px"
>
面试时间:
{{
item
.
seeTime
}}
</span>
</p>
</div>
<div
class=
"contentState"
>
<p
style=
"font-size:14px;"
>
<span
style=
"margin-left:20px"
@
click=
"modal4=true"
>
当前状态
</span>
<!--
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
@
click=
"UpdateStatus(item.status)"
>
{{
item
.
status
}}
</span>
-->
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
v-if=
"item.
status==1
"
@
click=
"Stopinterview"
>
终止面试
</span>
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
v-if=
"item.
status==2
"
@
click=
"OPPeninterview"
>
重启面试
</span>
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
v-if=
"item.
flowStatus=='OPTION'
"
@
click=
"Stopinterview"
>
终止面试
</span>
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
v-if=
"item.
flowStatus=='TO_DO'
"
@
click=
"OPPeninterview"
>
重启面试
</span>
</p>
<p
style=
"font-size:14px;margin-top:15px"
>
<span
style=
"margin:0 20px 0 10px"
>
面试结果待定
</span>
<select
name=
"2"
id=
"qq"
>
<option
value=
"1"
></option>
<option
value=
""
></option>
<span
style=
"margin:0 20px 0 10px"
v-if=
"item.flowStatus=='OPTION'"
>
面试结果待定
</span>
<select
name=
"1"
id=
"a"
style=
"margin-left:20px"
@
change=
"selectFn2($event)"
>
<option
value=
"1"
>
待处理
</option>
<option
value=
"2"
>
Pass
</option>
<option
value=
"3"
>
备选
</option>
<option
value=
"4"
>
待邀约
</option>
<option
value=
"5"
>
已邀约
</option>
<option
value=
"6"
>
邀约失败
</option>
<option
value=
"7"
>
已面试
</option>
<option
value=
"8"
>
未面试
</option>
<option
value=
"9"
>
面试通过
</option>
<option
value=
"10"
>
面试淘汰
</option>
<option
value=
"11"
>
待Offer
</option>
<option
value=
"12"
>
已发Offer
</option>
<option
value=
"13"
>
待入职
</option>
</select>
<!--
<span
style=
"float:right;margin:0 20px 0 10px;color:#2d8cf0"
>
变更状态
<br>
<Icon
type=
"ios-arrow-down"
style=
"margin-left:20px;color:#999999"
/>
...
...
@@ -41,8 +53,8 @@
</div>
<div
class=
"contentRecord"
>
<p
style=
"color:#2d8cf0"
@
click=
"Recode"
>
操作记录
</p>
<p>
最后操作人|
李宁
</p>
<p>
2019-07-02 12:07:33
</p>
<p>
最后操作人|
<span
style=
"margin-left:8px"
>
{{
item
.
modifier
}}
</span>
</p>
<p>
{{
item
.
modifyTime
}}
</p>
</div>
<div
style=
"height:10px;width:100%;background:#F2F2F2;float:left"
></div>
</div>
...
...
@@ -80,7 +92,7 @@
<span
v-for=
"(item,index) in state"
:class=
"
{'active':index==clickIndex2}" @click="clickIndex2 = index" :key="index">
{{
item
}}
</span>
</FormItem>
</Form>
<button
style=
"width:200px;margin-left:150px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255);font-size:18px"
>
搜索
</button>
<button
style=
"width:200px;margin-left:150px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255);font-size:18px"
@
click=
"SerchInvitation"
>
搜索
</button>
</div>
<!-- 操作记录弹出框 -->
<Modal
...
...
@@ -118,13 +130,13 @@
<h3
style=
"text-align:center"
>
更改约面信息
</h3>
<Form
:label-width=
"80"
>
<FormItem
label=
"*邀约人"
style=
"margin-top:20px"
>
<Input/>
<Input
v-model=
"UpdateOWER"
/>
</FormItem>
<FormItem
label=
"*面试时间"
style=
"margin-top:20px"
>
<DatePicker
type=
"datetime"
style=
"width:185px"
></DatePicker>
<DatePicker
type=
"datetime"
style=
"width:185px"
v-model=
"UpdateTIME"
></DatePicker>
</FormItem>
<FormItem
label=
"*面试官"
style=
"margin-top:20px"
>
<Input/>
<Input
v-model=
"UpdateVIEW"
/>
</FormItem>
</Form>
<div
slot=
'footer'
style=
"text-align:center"
>
...
...
@@ -132,6 +144,30 @@
<Button
type=
'primary'
>
确定
</Button>
</div>
</Modal>
<!-- 新增约面录入信息弹出框 -->
<Modal
v-model=
"modal5"
@
on-ok=
"ok"
:closable=
"false"
width=
'300px'
@
on-cancel=
"cancel"
>
<h3
style=
"text-align:center"
>
录入约面信息
</h3>
<Form
:label-width=
"80"
>
<FormItem
label=
"*邀约人"
style=
"margin-top:20px"
>
<Input
v-model=
"UpdateOWERNEW"
placeholder=
"请输入邀约人全名"
/>
</FormItem>
<FormItem
label=
"*面试时间"
style=
"margin-top:20px"
>
<DatePicker
type=
"datetime"
style=
"width:185px"
v-model=
"UpdateTIMENEW"
></DatePicker>
</FormItem>
<FormItem
label=
"*面试官"
style=
"margin-top:20px"
>
<Input
v-model=
"UpdateVIEWNEW"
placeholder=
"请输入面试官全名"
/>
</FormItem>
</Form>
<div
slot=
'footer'
style=
"text-align:center"
>
<Button
type=
'primary'
@
click=
'modal5=false'
>
取消
</Button>
<Button
type=
'primary'
>
确定
</Button>
</div>
</Modal>
<!-- 终止面试弹出框 -->
<Modal
v-model=
"modal3"
...
...
@@ -143,7 +179,7 @@
<p>
终止面试流程后,仍可以重启流程,
<br>
是否确定终止该后选人的面试
</p>
<div
slot=
'footer'
style=
"text-align:center"
>
<Button
type=
'primary'
@
click=
'modal3=false'
>
取消
</Button>
<Button
type=
'primary'
>
确定
</Button>
<Button
type=
'primary'
@
click=
"STOPinterview"
>
确定
</Button>
</div>
</Modal>
<!-- 重启面试弹出框 -->
...
...
@@ -156,21 +192,21 @@
<h3
style=
"text-align:center"
>
提示
</h3>
<p
style=
"text-align:center"
>
结束流程时的简历状态为:待邀约,
<br>
请选择重启后的状态
</p>
<div
style=
"text-align:center;margin-top:15px;"
>
<select
name=
"
"
id=
""
placeholder=
"待邀约
"
>
<option
value=
"1"
>
待处理
</option>
<option
value=
"2"
>
Pass
</option>
<option
value=
"3"
>
备选
</option>
<option
value=
"4"
>
待邀约
</option>
<option
value=
"5"
>
已邀约
</option>
<option
value=
"6"
>
邀约失败
</option>
<option
value=
"7"
>
已面试
</option>
<option
value=
"8"
>
未面试
</option>
<option
value=
"9"
>
面试通过
</option>
<option
value=
"10"
>
面试淘汰
</option>
<option
value=
"11"
>
待Offer
</option>
<option
value=
"12"
>
已发Offer
</option>
<option
value=
"13"
>
待入职
</option>
</select>
<select
name=
"
a"
id=
"333333"
@
change=
"selectFn($event)"
style=
"text-align:center;margin-top:15px;display:inline-block
"
>
<option
value=
"1"
>
待处理
</option>
<option
value=
"2"
>
Pass
</option>
<option
value=
"3"
>
备选
</option>
<option
value=
"4"
>
待邀约
</option>
<option
value=
"5"
>
已邀约
</option>
<option
value=
"6"
>
邀约失败
</option>
<option
value=
"7"
>
已面试
</option>
<option
value=
"8"
>
未面试
</option>
<option
value=
"9"
>
面试通过
</option>
<option
value=
"10"
>
面试淘汰
</option>
<option
value=
"11"
>
待Offer
</option>
<option
value=
"12"
>
已发Offer
</option>
<option
value=
"13"
>
待入职
</option>
</select>
</div>
<div
slot=
'footer'
style=
"text-align:center"
>
<Button
type=
'primary'
@
click=
'modal4=false'
>
取消
</Button>
...
...
@@ -180,6 +216,7 @@
</div>
</
template
>
<
script
>
import
{
changeinterviewMassage
,
SerchList
,
Serchinterviewor
,
SerchInvitationOwer
,
NewAddInterview
,
SInterview
,
oppenInterview
}
from
'
../../api/interview.server.js
'
export
default
{
data
(){
return
{
...
...
@@ -187,62 +224,24 @@ export default {
modal2
:
false
,
modal3
:
false
,
modal4
:
false
,
modal5
:
false
,
clickIndex1
:
0
,
clickIndex2
:
0
,
clickIndex3
:
0
,
UpdateOWER
:
''
,
UpdateTIME
:
''
,
UpdateVIEW
:
''
,
UpdateOWERNEW
:
''
,
UpdateTIMENEW
:
''
,
UpdateVIEWNEW
:
''
,
pageIndex
:
''
,
pageSize
:
"
30
"
,
Education
:[
'
不限
'
,
'
专科以下
'
,
'
专科及以上
'
,
'
本科及以上
'
,
'
硕士及以上
'
,
'
博士及以上
'
,
'
985/211
'
],
state
:[
'
不限
'
,
'
准备约面
'
,
'
已邀约
'
,
'
邀约失败
'
,
'
面试淘汰
'
,
'
待Offer
'
,
'
待入职
'
,
'
已入职
'
,
'
未入职
'
,
'
终止面试
'
],
activeName
:
''
,
Essentialinformation
:[
{
id
:
'
1
'
,
name
:
'
李宁
'
,
phone
:
'
12345678998
'
,
Invitation
:
'
张三
'
,
Interviewer
:
'
李四
'
,
age
:
'
33岁
'
,
status
:
'
1
'
,
sex
:
'
女
'
,
work
:
'
10年
'
,
a
:
'
java工程师
'
,
b
:
'
2019-09-02
'
,
data
:
'
13:09:09
'
,
qudao
:
'
boss直聘
'
,
email
:
'
445151511516516@quiwhu.cn
'
},
{
id
:
'
2
'
,
name
:
'
李宁
'
,
phone
:
'
12345678998
'
,
age
:
'
33岁
'
,
sex
:
'
女
'
,
Invitation
:
'
张三
'
,
Interviewer
:
'
李四
'
,
work
:
'
10年
'
,
a
:
'
java工程师
'
,
status
:
'
2
'
,
b
:
'
2019-09-02
'
,
data
:
'
13:09:09
'
,
qudao
:
'
boss直聘
'
,
email
:
'
445151511516516@quiwhu.cn
'
},
{
id
:
'
2
'
,
name
:
'
李宁
'
,
phone
:
'
12345678998
'
,
age
:
'
33岁
'
,
sex
:
'
女
'
,
Invitation
:
'
张三
'
,
Interviewer
:
'
李四
'
,
work
:
'
10年
'
,
a
:
'
java工程师
'
,
status
:
'
2
'
,
b
:
'
2019-09-02
'
,
data
:
'
13:09:09
'
,
qudao
:
'
boss直聘
'
,
email
:
'
445151511516516@quiwhu.cn
'
}
]
Essentialinformation
:[],
serchData
:[],
serchData2
:[]
}
},
methods
:
{
...
...
@@ -252,45 +251,156 @@ export default {
cancel
()
{
this
.
$Message
.
info
(
'
Clicked cancel
'
);
},
//操作记录
Recode
(){
this
.
modal1
=
true
},
//更改面试信息弹出框
updateInterview
(){
this
.
modal2
=
true
},
//准备约面取消
StopInterview
(){
this
.
status
=
status
this
.
modal2
=
false
},
//终止面试弹出框
Stopinterview
(){
this
.
modal3
=
true
},
//重启面试
OPPeninterview
(){
this
.
modal4
=
true
},
//操作状态
UpdateStatus
(
LLL
){
let
STATUS
=
LLL
;
if
(
this
.
STATUS
==
'
终止面试
'
){
console
.
log
(
this
.
STATUS
)
// 变更状态
selectFn2
(
e
)
{
if
(
e
.
target
.
value
==
5
){
this
.
modal5
=
true
}
},
//操作记录
Recode
(){
this
.
modal1
=
true
},
//更改面试信息弹出框
updateInterview
(
InterOWOR
,
InterTime
,
InterVIEW
){
this
.
UpdateOWER
=
InterOWOR
,
this
.
UpdateTIME
=
InterTime
,
this
.
UpdateVIEW
=
InterVIEW
,
this
.
modal2
=
true
},
//准备约面取消
StopInterview
(){
this
.
status
=
status
this
.
modal2
=
false
},
//终止面试弹出框
Stopinterview
(){
this
.
modal3
=
true
}
if
(
this
.
STATUS
==
'
重启面试
'
){
this
.
modal4
=
true
}
},
//重启面试
OPPeninterview
(){
this
.
modal4
=
true
},
//操作状态
UpdateStatus
(
LLL
){
let
STATUS
=
LLL
;
if
(
this
.
STATUS
==
'
终止面试
'
){
console
.
log
(
this
.
STATUS
)
this
.
modal3
=
true
}
if
(
this
.
STATUS
==
'
重启面试
'
){
this
.
modal4
=
true
}
},
// 更改约面信息
changeUpdate
(){
let
parmars
=
{
id
:
''
,
inviterName
:
''
,
seeTime
:
''
,
interviewerName
:
''
}
changeinterviewMassage
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
modal2
=
false
;
}
}
})
},
// 查询面试信息
serchListInterview
()
{
let
parmars
=
{
pageSize
:
this
.
pageSize
,
pageIndex
:
this
.
pageIndex
,
parameter
:{
// keywordString:'',
// highestDegreeNum:'',
// // flowStatusList:'',
// interviewerName:'',
// inviterName:'',
// highSchoolFlag:'',
}
}
SerchList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
Essentialinformation
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
item
.
flowStatus
=
item
.
flowStatus
item
.
interviewerName
=
item
.
interviewerName
item
.
inviterName
=
item
.
inviterName
item
.
modifier
=
item
.
modifier
item
.
modifyTime
=
item
.
modifyTime
item
.
ownerExpectTitles
=
item
.
ownerExpectTitles
item
.
ownerMobile
=
item
.
ownerMobile
item
.
ownerName
=
item
.
ownerName
item
.
seeTime
=
item
.
seeTime
return
item
})
}
})
},
// 面试官查询
Serchlistinterview
(){
Serchinterviewor
().
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
data
.
success
==
true
){
this
.
serchData
=
res
.
data
.
body
.
map
((
item
,
index
)
=>
{
// item.ower=item[0]
})
this
.
$Message
.
success
(
'
查询成功
'
)
}
})
},
// 邀约人查询
SerchInvitation
(){
SerchInvitationOwer
().
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
serchData2
=
res
.
data
.
body
.
map
((
item
,
index
)
=>
{
// item.ower=item[0]
})
}
})
},
//新增约面信息
newaddInterview
(){
let
parmars
=
{
resumeId
:
this
.
UpdateOWERNEW
,
inviterName
:
this
.
UpdateTIMENEW
,
interviewerName
:
this
.
UpdateVIEWNEW
,
seeTime
:
this
.
UpdateTIMENEW
}
NewAddInterview
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
$Message
.
success
(
'
新增约面信息成功
'
)
}
})
},
// 终止面试
STOPinterview
(){
SInterview
().
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
$Message
.
success
(
'
已终止面试
'
)
this
.
modal3
=
false
}
})
},
//重启面试
OPPinterview
(){
oppenInterview
().
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
$Message
.
success
(
'
重启流程成功
'
)
this
.
modal4
=
false
}
})
},
},
mounted
(){
this
.
serchListInterview
()
}
}
</
script
>
...
...
src/page/login/login.vue
View file @
2743827d
...
...
@@ -70,9 +70,13 @@ export default {
userCode
:
this
.
formInline
.
user
,
password
:
this
.
formInline
.
password
}
// if(this.formInline.password=='123456'){
// this.$router.push({name:'updatePsd'})
// return
// }
login
(
params
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
data
!==
''
){
if
(
res
.
data
.
success
==
true
){
this
.
$router
.
push
({
name
:
"
allResume
"
})
}
})
...
...
src/page/login/updatePsd.vue
View file @
2743827d
...
...
@@ -13,14 +13,12 @@
<div
class=
"login_content"
>
<Form
ref=
"formInline"
:model=
"formInline"
:rules=
"ruleInline"
>
<FormItem
prop=
"user"
>
<Input
type=
"text"
v-model=
"formInline.user"
placeholder=
"Username"
class=
"wordStyle"
>
<Input
type=
"text"
v-model=
"formInline.user"
placeholder=
"Username"
class=
"wordStyle"
/
>
<Icon
type=
"ios-person-outline"
slot=
"prepend"
></Icon>
</Input>
</FormItem>
<FormItem
prop=
"password"
>
<Input
type=
"password"
v-model=
"formInline.password"
placeholder=
"Password"
class=
"wordStyle"
>
<Input
type=
"password"
v-model=
"formInline.password"
placeholder=
"Password"
class=
"wordStyle"
/
>
<Icon
type=
"ios-lock-outline"
slot=
"prepend"
></Icon>
</Input>
</FormItem>
<FormItem>
<button
style=
"width:440px;margin-left:30px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255)"
>
登录
</button>
...
...
src/page/resume/allResume.vue
View file @
2743827d
...
...
@@ -90,14 +90,16 @@
<span
style=
"margin-right:30px;margin-top:5px"
v-else-if=
"item.flowStatus=='TO_SENT_OFFER'"
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
已发Offer
</span></span>
<span
style=
"margin-right:30px;margin-top:5px"
v-else-if=
"item.flowStatus=='TO_ENTRY('"
><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==' HAS_ENTRY'"
><Icon
type=
"ios-radio-button-on"
style=
"color:#43CD80"
/><span
style=
"margin-left:10px"
>
已入职
</span></span>
<select
name=
"1"
id=
"a"
style=
"margin-right:20px;margin-top:5px"
@
change=
"selectFn($event)"
v-else-if=
"item.
s
tatus=='TO_DO'"
>
<select
name=
"1"
id=
"a"
style=
"margin-right:20px;margin-top:5px"
@
change=
"selectFn($event)"
v-else-if=
"item.
flowS
tatus=='TO_DO'"
>
<option
value=
"1"
>
待处理
</option>
<option
value=
"2"
>
pass
</option>
<option
value=
"3"
>
准备约面
</option>
<option
value=
"4"
>
备选
</option>
</select>
<p
style=
"font-size:18px;margin:5px 35px 0 0"
><span><Icon
type=
"md-download"
/></span>
<span
><Icon
type=
"md-trash"
/></span></p>
<p
style=
"font-size:18px;margin:5px 35px 0 0"
>
<span><Icon
type=
"md-download"
@
click=
"downLoad(item.id)"
/></span>
<span
><Icon
type=
"md-trash"
/></span>
</p>
</div>
<div
style=
"width:190px;float:left;height:60px;margin-left:40px"
>
<span
style=
"margin:10px 0 0 10px;display:inline-block"
>
最后操作人 |
</span><span
style=
"margin-left:13px"
>
{{
item
.
modifier
}}
</span><br>
...
...
@@ -163,7 +165,7 @@
</div>
</
template
>
<
script
>
import
{
serchList
}
from
'
../../api/resume.server.js
'
import
{
serchList
,
downloadone
}
from
'
../../api/resume.server.js
'
export
default
{
data
()
{
return
{
...
...
@@ -229,6 +231,7 @@ import { serchList} from '../../api/resume.server.js'
this
.
modal2
=
true
}
},
// *****************************************
ok
()
{
this
.
$Message
.
info
(
'
Clicked ok
'
);
...
...
@@ -247,7 +250,7 @@ import { serchList} from '../../api/resume.server.js'
console
.
log
(
res
)
if
(
res
.
data
.
success
==
true
){
console
.
log
(
res
.
data
.
body
.
items
)
this
.
ajaxData
=
res
.
items
.
map
((
item
,
index
)
=>
{
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
ownerName
=
item
.
ownerName
item
.
ownerSex
=
item
.
ownerSex
item
.
belongs
=
item
.
belongs
...
...
@@ -283,6 +286,17 @@ import { serchList} from '../../api/resume.server.js'
this
.
clickIndex3
=
Tindex
console
.
log
(
Item
)
},
//下载单条简历
downLoad
(
ID
){
let
parmars
=
{
resumeId
:
ID
}
downloadone
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
=
true
){
this
.
$Message
.
success
(
'
下载成功
'
)
}
})
},
},
mounted
(){
this
.
SearchList
()
...
...
src/page/system/account.vue
View file @
2743827d
...
...
@@ -139,12 +139,12 @@ export default {
return
}
addAccount
(
parmars
).
then
(
res
=>
{
//
if(res.data.success==true){
if
(
res
.
data
.
success
==
true
){
this
.
$Message
.
success
(
'
添加成功
'
)
this
.
SearchList
()
this
.
formInline
.
PhoneNumber
=
''
this
.
formInline
.
PerName
=
''
//
}
}
})
}
,
...
...
@@ -156,7 +156,7 @@ export default {
}
queryaccountList
(
parmars
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
data
!==
''
){
if
(
res
.
data
.
success
==
true
){
// console.log(res.data.body.items)
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
...
...
@@ -181,9 +181,10 @@ export default {
id
:
this
.
I
}
Delateaccount
(
parmars
).
then
(
res
=>
{
// if(res.data.success==true){
// this.SearchList()
// }
if
(
res
.
data
.
success
==
true
){
this
.
modal2
=
false
this
.
SearchList
()
}
this
.
SearchList
()
})
},
...
...
src/router/index.js
View file @
2743827d
...
...
@@ -2,7 +2,7 @@ import Vue from 'vue';
import
Router
from
'
vue-router
'
;
const
home
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/components/home.vue
'
)),
'
home
'
);
// const
login = r => require.ensure([], () => r(require('@/components/login.vue')), 'login
');
// const
changepsd = r => require.ensure([], () => r(require('@/components/changepsd.vue')), 'changepsd
');
const
login
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/login/login.vue
'
)),
'
login
'
);
const
interview
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/interview/interview.vue
'
)),
'
interview
'
);
const
allResume
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/resume/allResume.vue
'
)),
'
allResume
'
);
...
...
@@ -10,7 +10,7 @@ const account = r => require.ensure([], () => r(require('@/page/system/account.v
const
emailMange
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/system/emailMange.vue
'
)),
'
emailMange
'
);
const
QRcode
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/system/QRcode.vue
'
)),
'
QRcode
'
);
const
upload
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/upload/upload.vue
'
)),
'
upload
'
);
const
text
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
@/page/login/text.vue
'
)),
'
text
'
);
...
...
@@ -26,11 +26,13 @@ export default new Router({
path
:
'
/login
'
,
name
:
'
login
'
,
component
:
login
,
},{
path
:
'
/text
'
,
name
:
'
text
'
,
component
:
text
},{
},
// {
// path: '/changepsd',
// name: 'changepsd',
// component: changepsd
// },
{
path
:
'
/home
'
,
name
:
'
home
'
,
component
:
home
,
...
...
src/service/http.service.js
View file @
2743827d
import
axios
from
'
axios
'
import
Promise
from
'
./promise.service.js
'
import
{
Notice
}
from
'
iview
'
import
Vue
from
'
vue
'
var
instance
=
axios
.
create
({});
instance
.
defaults
.
timeout
=
2500
;
//
import Promise from './promise.service.js'
//
import {Notice} from 'iview'
//
import Vue from 'vue'
//
var instance = axios.create({});
//
instance.defaults.timeout = 2500;
//instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
instance
.
defaults
.
headers
.
post
[
'
Content-Type
'
]
=
'
application/x-www-form-urlencoded
'
;
instance
.
defaults
.
headers
[
'
X-Requested-With
'
]
=
'
XMLHttpRequest
'
instance
.
defaults
.
headers
[
'
X-auth-Token
'
]
=
'
XMLHttpRequest
'
//
//
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
//
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
//
instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
//
instance.defaults.headers['X-auth-Token'] = 'XMLHttpRequest'
instance
.
interceptors
.
request
.
use
(
function
(
config
)
{
// 在发送请求之前做些什么
if
(
!
config
.
headers
[
'
Content-Type
'
])
{
config
.
headers
[
'
Content-Type
'
]
=
'
application/x-www-form-urlencoded
'
}
return
config
;
},
function
(
error
)
{
// 对请求错误做些什么
return
Promise
.
reject
(
error
);
});
instance
.
interceptors
.
response
.
use
(
function
(
response
)
{
// 在发送请求之前做些什么
//
instance.interceptors.request.use(function (config) {
//
// 在发送请求之前做些什么
//
if (!config.headers['Content-Type']) {
//
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
//
}
//
return config;
//
}, function (error) {
//
// 对请求错误做些什么
//
return Promise.reject(error);
//
});
//
instance.interceptors.response.use(function (response) {
//
// 在发送请求之前做些什么
if
(
response
.
status
>=
200
&&
response
.
status
<
300
){
if
(
response
.
data
.
success
){
return
Promise
.
resolve
(
response
.
data
.
body
)
}
else
{
if
(
response
.
data
.
body
.
message
){
Notice
.
error
({
desc
:
`
${
response
.
data
.
body
.
message
}
`
})
}
return
Promise
.
reject
(
response
.
data
);
}
}
else
{
return
Promise
.
reject
(
response
.
data
);
}
if
(
resopnse
.
status
==
403
||
resopnse
.
status
==
401
){
if
(
response
.
data
.
body
.
message
){
Notice
.
error
({
desc
:
`
${
response
.
data
.
body
.
messag
}
`
})
}
window
.
location
.
replace
=
`
${
window
.
location
.
origin
}
/login`
}
return
response
;
},
error
=>
{
console
.
log
(
error
)
});
export
default
instance
//
export default axios
//
if(response.status >= 200 && response.status < 300){
//
if(response.data.success){
//
return Promise.resolve(response.data.body)
//
} else {
//
if (response.data.body.message){
//
Notice.error({desc:`${response.data.body.message}`})
//
}
//
return Promise.reject(response.data);
//
}
//
} else {
//
return Promise.reject(response.data);
//
}
//
if (resopnse.status == 403 || resopnse.status == 401){
//
if (response.data.body.message){
//
Notice.error({desc:`${response.data.body.messag}`})
//
}
//
window.location.replace = `${window.location.origin}/login`
//
}
//
return response;
//
}, error => {
//
console.log(error)
//
});
//
export default instance
export
default
axios
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