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
3d38696c
Commit
3d38696c
authored
Aug 20, 2019
by
zhangderong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20190819更改文件夹名
parent
53aa20b2
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
290 additions
and
172 deletions
+290
-172
index.html
index.html
+1
-1
stystem.server.js
src/api/stystem.server.js
+7
-1
home.vue
src/components/home.vue
+1
-1
env.config.js
src/config/env.config.js
+0
-6
main.js
src/main.js
+2
-2
interview.vue
src/page/Interview/interview.vue
+10
-6
login.vue
src/page/login/login.vue
+36
-17
text.vue
src/page/login/text.vue
+79
-25
allResume.vue
src/page/resume/allResume.vue
+64
-30
channel.vue
src/page/resume/channel.vue
+52
-39
QRcode.vue
src/page/system/QRcode.vue
+3
-20
account.vue
src/page/system/account.vue
+9
-7
emailMange.vue
src/page/system/emailMange.vue
+15
-7
upload.vue
src/page/upload/upload.vue
+7
-7
http.service.js
src/service/http.service.js
+4
-3
No files found.
index.html
View file @
3d38696c
...
...
@@ -3,7 +3,7 @@
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<title>
recruiting-management
</title>
<title>
思坦途
</title>
</head>
<body>
<div
id=
"app"
></div>
...
...
src/api/stystem.server.js
View file @
3d38696c
...
...
@@ -72,4 +72,10 @@ export function getErcode(){
return
axios
.
get
(
`/text/qrCode/getInterviewQrcode`
,{
headers
:
{
'
Content-Type
'
:
'
application/json
'
,
}})
}
\ No newline at end of file
}
// //下载二维码
// export function downloadErcode(){
// return axios.get(`/text/qrCode/downQrCode`,{headers: {
// 'Content-Type':'application/json',
// }})
// }
\ No newline at end of file
src/components/home.vue
View file @
3d38696c
...
...
@@ -24,7 +24,7 @@
<Col
span=
"2"
class=
"account"
>
{{massage}}
</Col>
<Col
span=
"2"
class=
"sign-out"
>
<Col
span=
"2"
class=
"sign-out"
style=
""
>
<a
@
click=
"loginOut"
>
退出
</a>
</Col>
</Row>
...
...
src/config/env.config.js
View file @
3d38696c
...
...
@@ -7,14 +7,8 @@ if(process.env.NODE_ENV === 'production'){
baseApi
=
'
http://credit.xyqb.com
'
contractApi
=
'
http://pdf.quantgroup.cn
'
}
else
{
// baseApi ='http://credit-chark.liangkebang.com'
baseApi
=
'
http://recruit-ai3.liangkebang.net
'
contractApi
=
`http://recruit-ai3.liangkebang.net`
// baseApi ='http://credit-0zhangheng.q-gp.com'
// baseApi ='http://credit-jinsong.q-gp.com'
// contractApi = `http://pdf-0zhangheng.q-gp.com`
//合同中心
// contractApi =`http://pdf-tower.q-gp.com`
}
export
{
baseApi
,
contractApi
}
\ No newline at end of file
src/main.js
View file @
3d38696c
...
...
@@ -6,10 +6,10 @@ import 'iview/dist/styles/iview.css';
import
App
from
'
./App
'
;
import
router
from
'
./router
'
;
import
initRouter
from
'
./service/init.service.js
'
import
{
HappyScroll
}
from
'
vue-happy-scroll
'
import
'
vue-happy-scroll/docs/happy-scroll.css
'
Vue
.
component
(
'
happy-scroll
'
,
HappyScroll
)
import
{
Notice
}
from
'
iview
'
Vue
.
use
(
iView
);
Vue
.
use
(
Notice
)
Vue
.
config
.
productionTip
=
false
;
initRouter
.
init
(
router
)
/* eslint-disable no-new */
...
...
src/page/Interview/interview.vue
View file @
3d38696c
<
template
>
<div
class=
"interview"
>
<!--
<Spin
size=
"large"
fix
v-if=
"spinShow"
style=
"font-size:25px"
>
加载中...
</Spin>
-->
<div
class=
"interview-left"
>
<div
class=
"leftcontentTop"
style=
"height:120px"
>
<div
style=
"height:90%;float:left;width:30%;background:rgb(0,146,255);margin-left:3%;margin-top:10px"
></div>
<div
style=
"height:90%;float:left;width:30%;background:rgb(253,85,83);margin-left:3%;margin-top:10px"
></div>
<div
style=
"height:90%;float:left;width:30%;background:rgb(0,176,160);margin-left:3%;margin-top:10px"
></div>
</div>
<div
style=
"margin-bottom:40px;float:left;margin-left:
2
0px;width:100%"
>
<div
style=
"margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px
"
v-show=
"Essentialinformation.length==0"
>
暂无数据
</div>
<div
style=
"margin-bottom:40px;float:left;margin-left:
1
0px;width:100%"
>
<div
style=
"margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px
;color:red"
v-show=
"Essentialinformation.length==0"
>
未能找到你搜索的内容
</div>
<div
class=
"leftcontentContent"
v-for=
"(item,index) in Essentialinformation "
:key=
'index'
>
<div
class=
"contentMassage"
>
<p
style=
"margin-top:7px"
>
...
...
@@ -239,6 +240,7 @@ export default {
modal3
:
false
,
modal4
:
false
,
modal5
:
false
,
spinShow
:
true
,
Ishow
:[],
aaaaa
:
''
,
nowstate
:[{
value
:
'
已邀约
'
,
label
:
'
已邀约
'
},{
value
:
'
邀约失败
'
,
label
:
'
邀约失败
'
},{
value
:
'
面试淘汰
'
,
label
:
'
面试淘汰
'
},{
value
:
'
待offer
'
,
label
:
'
待offer
'
},{
value
:
'
已发offer
'
,
label
:
'
已发offer
'
},{
value
:
'
待入职
'
,
label
:
'
待入职
'
},{
value
:
'
未入职
'
,
label
:
'
未入职
'
},{
value
:
'
已入职
'
,
label
:
'
已入职
'
},],
...
...
@@ -398,6 +400,7 @@ export default {
}
SerchList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
spinShow
=
false
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
Essentialinformation
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
...
...
@@ -649,6 +652,7 @@ export default {
SerchList
(
parmars
).
then
(
res
=>
{
let
Ishow
=
res
.
data
.
items
if
(
res
.
data
.
success
==
true
){
this
.
spinShow
=
false
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
Essentialinformation
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
...
...
@@ -712,16 +716,16 @@ export default {
}
.interview-left
{
/* min-height: 1900px; */
height
:
800px
;
min-
height
:
800px
;
overflow-y
:
auto
;
overflow-x
:
hidden
;
width
:
63
%
;
width
:
70
%
;
float
:
left
;
background
:
#F2F2F2
;
}
.interview-right
{
height
:
500px
;
width
:
36
%
;
width
:
29
%
;
float
:
left
;
background
:
white
;
margin-top
:
10px
;
...
...
@@ -740,7 +744,7 @@ export default {
width
:
53%
;
height
:
60px
;
float
:
left
;
margin-left
:
1
%
;
margin-left
:
0
%
;
background
:
white
;
margin-top
:
10px
/* margin-bottom: 35px */
...
...
src/page/login/login.vue
View file @
3d38696c
...
...
@@ -11,19 +11,20 @@
<h3>
登录
</h3>
</div>
<div
class=
"login_content"
>
<Form
ref=
"formInline"
:model=
"formInline"
:rules=
"ruleInline"
>
<Form
ref=
"formInline"
:model=
"formInline"
:rules=
"ruleInline"
style=
"height:120px;width:92%"
>
<FormItem
prop=
"user"
>
<Input
type=
"text"
v-model=
"formInline.user"
placeholder=
"
Username
"
class=
"wordStyle"
>
<Input
type=
"text"
v-model=
"formInline.user"
placeholder=
"
请输入11位默认手机号
"
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=
"
请输入默认密码"
class=
"wordStyle"
@
keyup.enter.native=
'login'
>
<Icon
type=
"ios-lock-outline"
slot=
"prepend"
></Icon>
</Input>
<span
style=
"color:red;margin-top;5px"
v-show=
"noteconTime==true"
>
{{
notecontent
}}
</span>
</FormItem>
</Form>
<
span
type=
"primary"
style=
"line-height:30px;height:30px;width:440px;margin-left:30px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255);display:inline-block;text-align:center"
@
click=
"login"
>
登录
</spa
n>
<
Button
type=
"primary"
class=
"loginBtu"
@
click=
"login"
>
登录
</Butto
n>
</div>
<div
class=
"copy"
>
...
...
@@ -42,6 +43,8 @@ export default {
data
()
{
return
{
channelarr
:[],
notecontent
:
''
,
noteconTime
:
false
,
ISIDMIN
:
''
,
formInline
:
{
user
:
''
,
...
...
@@ -49,11 +52,11 @@ export default {
},
ruleInline
:
{
user
:
[
{
required
:
true
,
message
:
'
请输入正确的手机号
'
,
trigger
:
'
blur
'
}
{
required
:
true
,
pattern
:
/^
[
1
][
3,4,5,7,8,6,9
][
0-9
]{9}
$/
,
message
:
'
请输入正确的手机号
'
,
trigger
:
'
blur
'
}
],
password
:
[
{
required
:
true
,
message
:
'
请输入正确的密码
'
,
trigger
:
'
blur
'
},
{
type
:
'
string
'
,
min
:
4
,
message
:
''
,
trigger
:
'
blur
'
}
{
type
:
'
string
'
,
min
:
4
,
message
:
'
请输入正确的密码
'
,
trigger
:
'
blur
'
}
]
}
}
...
...
@@ -73,15 +76,26 @@ export default {
userCode
:
this
.
formInline
.
user
,
password
:
this
.
formInline
.
password
}
if
(
this
.
formInline
.
user
==
''
||
this
.
formInline
.
password
==
''
){
return
}
login
(
params
).
then
(
res
=>
{
if
(
res
.
data
.
body
.
code
==
'
100
'
){
this
.
$router
.
push
({
name
:
'
text
'
,
params
:{
userCode
:
this
.
formInline
.
user
}})
console
.
log
(
'
3323aa
'
)
}
if
(
res
.
data
.
success
==
true
){
this
.
ISIDMIN
=
res
.
data
.
body
this
.
$router
.
push
({
name
:
"
allResume
"
})
localStorage
.
setItem
(
'
isADMIN
'
,
JSON
.
stringify
(
this
.
ISIDMIN
))
return
}
if
(
res
.
data
.
success
==
false
){
this
.
noteconTime
=
true
this
.
notecontent
=
res
.
data
.
body
.
message
setTimeout
(()
=>
{
this
.
noteconTime
=
false
},
3000
)
return
}
})
}
...
...
@@ -92,23 +106,27 @@ export default {
.login
{
width
:
100%
;
height
:
100%
;
background
:
#EAEAEA
;
}
.login-content
{
width
:
1200px
;
height
:
100
0px
;
margin
-left
:
500px
;
width
:
65%
;
height
:
76
0px
;
margin
:
2.5%
auto
}
.loginContent-left
{
float
:
left
;
width
:
620px
;
height
:
740px
width
:
60%
;
height
:
760px
;
}
.loginBtu
{
width
:
440px
;
}
.loginContent-right
{
float
:
left
;
width
:
500px
;
height
:
740px
;
background
:
#ffffff
width
:
40%
;
height
:
760px
;
border
:
1px
solid
rgba
(
241
,
241
,
241
,
1
)
/* background:rgba(241,241,241,1) */
}
.loginContent-left
img
{
width
:
100%
;
...
...
@@ -132,6 +150,7 @@ export default {
.login_content
{
height
:
200px
;
width
:
100%
;
margin-left
:
40px
}
.copy
{
width
:
100%
;
...
...
@@ -144,6 +163,6 @@ export default {
}
.wordStyle
{
width
:
440px
;
margin-left
:
30px
/* margin-left: 30px */
}
</
style
>
src/page/login/text.vue
View file @
3d38696c
...
...
@@ -11,16 +11,18 @@
<h3>
首次登录请修改密码
</h3>
</div>
<div
class=
"updatePsd_content"
>
<Form
ref=
"formInline"
:model=
"formInline"
:rules=
"ruleInline"
>
<FormItem
prop=
"password
"
>
<Input
type=
"password"
v-model=
"formInline.password"
placeholder=
"Password"
class=
"wordStyle"
>
<Form
ref=
"formInline"
:model=
"formInline"
class=
"formcontent"
>
<FormItem
class=
"formitemcontent
"
>
<Input
type=
"password"
v-model=
"formInline.password"
placeholder=
"Password"
class=
"wordStyle"
@
on-change=
'verification'
>
<Icon
type=
"ios-lock-outline"
slot=
"prepend"
></Icon>
</Input>
<span
style=
"color:Grey;margin-left:30px"
v-show=
"fistcontent"
>
4-20位且不得与默认密码相同
</span>
</FormItem>
<FormItem
prop=
"passwordTwo
"
>
<Input
type=
"password"
v-model=
"formInline.passwordTwo"
placeholder=
"Password"
class=
"wordStyle"
>
<FormItem
style=
"margin-top:-20px"
class=
"formitemcontent
"
>
<Input
type=
"password"
v-model=
"formInline.passwordTwo"
placeholder=
"Password"
class=
"wordStyle"
>
<Icon
type=
"ios-lock-outline"
slot=
"prepend"
></Icon>
</Input>
<span
style=
"color:Grey;margin-left:30px;color:red"
v-show=
"twocontent"
>
{{
twocontentmessage
}}
</span>
</FormItem>
</Form>
<button
type=
"primary"
style=
"height:30px;width:440px;margin-left:30px; border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255)"
@
click=
"loginT"
>
登录
</button>
...
...
@@ -44,18 +46,11 @@ export default {
passwordTwo
:
''
,
password
:
''
},
fistcontent
:
true
,
twocontent
:
false
,
twocontentmessage
:
''
,
channelarr
:[],
ISIDMIN
:
''
,
ruleInline
:
{
passwordTwo
:
[
{
required
:
true
,
message
:
'
请输入相同的的密码
'
,
trigger
:
'
blur
'
},
{
type
:
'
string
'
,
min
:
4
,
message
:
''
,
trigger
:
'
blur
'
}
],
password
:
[
{
required
:
true
,
message
:
'
请输入正确的密码
'
,
trigger
:
'
blur
'
},
{
type
:
'
string
'
,
min
:
4
,
message
:
''
,
trigger
:
'
blur
'
}
]
}
}
},
methods
:
{
...
...
@@ -74,22 +69,75 @@ export default {
password
:
this
.
formInline
.
password
,
confirmPassWord
:
this
.
formInline
.
passwordTwo
}
if
(
this
.
formInline
.
passwordTwo
!==
this
.
formInline
.
password
){
this
.
twocontentmessage
=
'
输入密码不一致,请重新输入
'
this
.
twocontent
=
true
setInterval
(()
=>
{
this
.
twocontent
=
false
},
3000
)
return
}
if
(
this
.
formInline
.
password
.
length
>
20
){
this
.
twocontentmessage
=
'
请输入4-20位密码
'
setInterval
(()
=>
{
this
.
twocontent
=
false
},
3000
)
return
}
if
(
this
.
formInline
.
password
.
length
<
4
){
this
.
twocontentmessage
=
'
请输入4-20位密码
'
setInterval
(()
=>
{
this
.
twocontent
=
false
},
3000
)
return
}
if
(
this
.
formInline
.
password
.
length
==
0
){
this
.
twocontentmessage
=
'
密码不能为空
'
setInterval
(()
=>
{
this
.
twocontent
=
false
},
3000
)
return
}
if
(
this
.
formInline
.
passwordTwo
.
length
==
0
){
this
.
twocontentmessage
=
'
请输入相同的确认密码
'
setInterval
(()
=>
{
this
.
twocontent
=
false
},
3000
)
return
}
updatePsd
(
params
).
then
(
res
=>
{
if
(
res
.
data
.
body
.
code
==
'
101
'
){
this
.
$Message
.
error
(
'
输入的密码与初始密码相同,请输入不同的密码
'
)
return
}
if
(
res
.
data
.
body
.
code
==
'
102
'
){
this
.
$Message
.
error
(
'
两次输入的密码不一致,请输入不同的密码
'
)
return
}
if
(
res
.
data
.
success
==
true
){
this
.
ISIDMIN
=
res
.
data
.
body
localStorage
.
setItem
(
'
isADMIN
'
,
JSON
.
stringify
(
this
.
ISIDMIN
))
this
.
$router
.
push
({
name
:
'
allResume
'
})
this
.
$router
.
replace
({
name
:
'
allResume
'
})
}
if
(
res
.
data
.
body
.
code
=
'
101
'
){
this
.
twocontentmessage
=
res
.
data
.
body
.
message
}
})
}
},
verification
(){
if
(
this
.
formInline
.
password
.
length
==
0
){
this
.
fistcontent
=
true
}
if
(
this
.
formInline
.
password
==
''
){
this
.
fistcontent
=
true
}
if
(
this
.
formInline
.
password
.
length
<
4
){
this
.
fistcontent
=
true
}
if
(
this
.
formInline
.
password
.
length
>
4
){
this
.
fistcontent
=
false
}
if
(
this
.
formInline
.
password
.
length
>
20
){
this
.
fistcontent
=
true
}
},
}
}
</
script
>
...
...
@@ -151,4 +199,10 @@ export default {
width
:
440px
;
margin-left
:
30px
}
.formcontent
{
height
:
130px
;
}
.formitemcontent
{
height
:
60px
;
}
</
style
>
src/page/resume/allResume.vue
View file @
3d38696c
This diff is collapsed.
Click to expand it.
src/page/resume/channel.vue
View file @
3d38696c
<
template
>
<div
class=
"channel"
>
<!--
<Spin
size=
"large"
fix
v-if=
"spinShow"
style=
"font-size:20px"
>
加载中...
</Spin>
-->
<div
class=
"channel-left"
>
<Form
:label-width=
"80"
>
<FormItem
label=
"关键词:"
style=
"margin-top:20px"
>
...
...
@@ -47,8 +48,8 @@
<Button
type=
"primary"
size=
"small"
style=
"margin-left:2%;width:50px"
@
click=
"delateAll"
>
删除
</Button>
<Button
type=
"primary"
size=
"small"
style=
"float:right;margin-right:10px;"
@
click=
"allexport"
>
导出列表
</Button>
</div>
<div
style=
"margin-bottom:40px;float:left;width:100%"
>
<div
style=
"margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px
"
v-show=
"ajaxData.length==0"
>
暂无数据
</div>
<div
style=
"margin-bottom:40px;float:left;width:100%"
class=
"a"
>
<div
style=
"margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px
;color:red"
v-show=
"ajaxData.length==0"
>
未能找到你搜索的内容
</div>
<div
class=
"Resumecontent"
v-for=
'(item,i) in ajaxData'
:key=
"i"
>
<div
class=
"detailResume"
id=
"a"
style=
"background:rgba(241,241,241,1);height:65px"
>
<p
class=
"massage"
style=
"margin-top:10px"
>
...
...
@@ -72,6 +73,7 @@
<option
value=
"1"
>
邀请面试
</option>
<option
value=
"2"
>
备选
</option>
<option
value=
"3"
>
PASS
</option>
<option
value=
"4"
>
待处理
</option>
</select>
</span>
</span>
...
...
@@ -82,6 +84,7 @@
<option
value=
"1"
>
备选
</option>
<option
value=
"2"
>
邀请面试
</option>
<option
value=
"3"
>
PASS
</option>
<option
value=
"4"
>
待处理
</option>
</select>
</span>
</span>
...
...
@@ -95,6 +98,7 @@
<option
value=
"1"
>
PASS
</option>
<option
value=
"2"
>
邀请面试
</option>
<option
value=
"3"
>
备选
</option>
<option
value=
"4"
>
待处理
</option>
</select>
</span>
</span>
...
...
@@ -290,6 +294,7 @@ export default {
clickIndex1
:
0
,
clickIndex2
:
0
,
clickIndex3
:
0
,
spinShow
:
true
,
keywords
:
''
,
biaoshi
:
''
,
toseeid
:
''
,
...
...
@@ -304,6 +309,7 @@ export default {
lrgs
:
''
,
a
:
''
,
id
:
''
,
pageT
:
''
,
modal1
:
false
,
modal2
:
false
,
modal3
:
false
,
...
...
@@ -354,6 +360,7 @@ export default {
}
},
methods
:{
//查询列表
quxiaoxi
(){
let
parmars
=
{
pageSize
:
this
.
searchInfo
.
pageSize
,
...
...
@@ -364,6 +371,8 @@ export default {
}
adoptOneSeeResumeList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
checkboxList
=
[]
thid
.
spinShow
=
false
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
quanxuan
.
push
(
res
.
data
.
body
.
items
.
id
)
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
...
...
@@ -638,6 +647,7 @@ export default {
window
.
open
(
newpage
.
href
,
'
_blank
'
);
},
pageChange
(
page
){
this
.
pageT
=
page
this
.
SearchList
(
page
)
},
pageSizeChange
(
page
){
...
...
@@ -660,7 +670,7 @@ export default {
deleteREsume
(
this
.
delateARRALL2
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
modal3
=
false
this
.
quxiaoxi
()
this
.
quxiaoxi
(
this
.
pageT
)
}
})
},
...
...
@@ -744,40 +754,40 @@ export default {
},
// 批量删除
delateAll
(){
var
array1
=
this
.
orignarr
;
//数组1
var
array2
=
this
.
flowStatusarr
;
//数组2
var
tempArray1
=
[];
//临时数组1
var
tempArray2
=
[];
//临时数组2
Array
.
prototype
.
indexOf
=
function
(
val
)
{
for
(
var
i
=
0
;
i
<
this
.
length
;
i
++
)
{
if
(
this
[
i
]
==
val
)
return
i
;
}
return
-
1
;
}
Array
.
prototype
.
remove
=
function
(
val
)
{
var
index
=
this
.
indexOf
(
val
);
if
(
index
>
-
1
)
{
this
.
splice
(
index
,
1
);
}
}
for
(
var
i
=
0
;
i
<
array2
.
length
;
i
++
){
tempArray1
[
array2
[
i
]]
=
true
;
//将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for
(
var
i
=
0
;
i
<
array1
.
length
;
i
++
){
if
(
tempArray1
[
array1
[
i
]]){
tempArray2
.
push
(
array1
[
i
]);
//过滤array1 中与array2 相同的元素;
}
}
if
(
tempArray2
.
length
!==
0
){
this
.
modal5
=
true
}
if
(
this
.
delateARRALL
.
length
==
0
){
this
.
$Message
.
error
(
'
未选择删除元素
'
)
return
}
if
(
tempArray2
.
length
==
0
){
this
.
modal7
=
true
}
var
array1
=
this
.
orignarr
;
//数组1
var
array2
=
this
.
flowStatusarr
;
//数组2
var
tempArray1
=
[];
//临时数组1
var
tempArray2
=
[];
//临时数组2
Array
.
prototype
.
indexOf
=
function
(
val
)
{
for
(
var
i
=
0
;
i
<
this
.
length
;
i
++
)
{
if
(
this
[
i
]
==
val
)
return
i
;
}
return
-
1
;
}
Array
.
prototype
.
remove
=
function
(
val
)
{
var
index
=
this
.
indexOf
(
val
);
if
(
index
>
-
1
)
{
this
.
splice
(
index
,
1
);
}
}
for
(
var
i
=
0
;
i
<
array2
.
length
;
i
++
){
tempArray1
[
array2
[
i
]]
=
true
;
//将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for
(
var
i
=
0
;
i
<
array1
.
length
;
i
++
){
if
(
tempArray1
[
array1
[
i
]]){
tempArray2
.
push
(
array1
[
i
]);
//过滤array1 中与array2 相同的元素;
}
}
if
(
tempArray2
.
length
!==
0
){
this
.
modal5
=
true
}
if
(
this
.
delateARRALL
.
length
==
0
){
this
.
$Message
.
error
(
'
未选择删除元素
'
)
return
}
if
(
tempArray2
.
length
==
0
){
this
.
modal7
=
true
}
},
//确认批量删除
cofdelateAll
(){
...
...
@@ -814,11 +824,11 @@ export default {
this
.
modal7
=
false
this
.
delateARRALL
=
[]
this
.
flowStatusarr
=
[]
this
.
quxiaoxi
()
this
.
quxiaoxi
(
this
.
pageT
)
}
})
},
// 刷新列表
// 刷新列表
pushlist
(){
this
.
modal2
=
false
this
.
quxiaoxi
()
...
...
@@ -900,6 +910,8 @@ export default {
sousuoList
(
parmars
).
then
(
res
=>
{
let
Ishow
=
res
.
data
.
items
if
(
res
.
data
.
success
==
true
){
this
.
checkboxList
=
[]
this
.
spinShow
=
false
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
item
.
ownerName
=
item
.
ownerName
...
...
@@ -941,6 +953,7 @@ export default {
}
adoptOneSeeResumeList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
checkboxList
=
[]
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
quanxuan
.
push
(
res
.
data
.
body
.
items
.
id
)
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
...
...
src/page/system/QRcode.vue
View file @
3d38696c
...
...
@@ -9,7 +9,7 @@
</div>
</
template
>
<
script
>
import
{
getErcode
}
from
'
../../api/stystem.server.js
'
import
{
getErcode
,
downloadErcode
}
from
'
../../api/stystem.server.js
'
export
default
{
data
(){
return
{
...
...
@@ -21,36 +21,19 @@ export default {
//取到二维码
getercode
(){
getErcode
().
then
(
res
=>
{
console
.
log
(
res
)
console
.
log
(
res
.
data
.
body
)
if
(
res
.
data
.
success
==
true
){
this
.
url
=
res
.
data
.
body
}
})
},
downPic
(
img
)
{
// this.url2='/text/qrCode/getQrCodeBase64'
var
image
=
new
Image
()
image
.
setAttribute
(
'
crossOrigin
'
,
'
anonymous
'
)
image
.
onload
=
function
()
{
var
canvas
=
document
.
createElement
(
'
canvas
'
)
canvas
.
width
=
image
.
width
canvas
.
height
=
image
.
height
var
context
=
canvas
.
getContext
(
'
2d
'
)
context
.
drawImage
(
image
,
0
,
0
,
image
.
width
,
image
.
height
)
var
url
=
canvas
.
toDataURL
(
'
image/png
'
)
// 得到图片的base64编码数据
var
a
=
document
.
createElement
(
'
a
'
)
// 生成一个a元素
var
event
=
new
MouseEvent
(
'
click
'
)
// 创建一个单击事件
a
.
download
=
img
.
name
||
'
photo
'
// 设置图片名称
a
.
href
=
url
// 将生成的URL设置为a.href属性
a
.
dispatchEvent
(
event
)
// 触发a的单击事件
}
image
.
src
=
img
.
url
window
.
location
.
href
=
`/text/qrCode/downQrCode`
}
},
mounted
(){
this
.
getercode
()
console
.
log
(
this
.
url2
=
'
/text/qrCode/getQrCodeBase64
'
)
}
}
</
script
>
...
...
src/page/system/account.vue
View file @
3d38696c
...
...
@@ -3,7 +3,7 @@
<div
class=
"addAcount"
>
<p
style=
"margin-top:10px"
>
<span
style=
"font-size:18px;color:#2d8cf0;margin-left:18px;"
>
新增账户
</span>
<span
style=
"margin-left:10px"
>
以下内容均为必填项
</span>
<span
style=
"margin-left:10px
;color:Grey
"
>
以下内容均为必填项
</span>
</p>
<Form
:label-width=
"130"
:model=
"formInline"
:rules=
"ruleInline"
>
<FormItem
label=
"配置登录账号:"
style=
"margin-top:20px"
prop=
"PhoneNumber"
>
...
...
@@ -14,15 +14,15 @@
</FormItem>
</Form>
<p>
<span
style=
"margin-left:
18
px"
>
初始登录密码
</span>
<span
style=
"margin-left:
8
px"
>
默认是"123456",新用户首次登录需修改后才能进入系统。
</span>
<span
style=
"
"
><Button
type=
"primary"
size=
'small'
style=
"color:#ffffff;margin-left:20px; border-radius: 5
px"
@
click=
"addacount"
>
添加
</Button></span>
<span
style=
"margin-left:
25
px"
>
初始登录密码
</span>
<span
style=
"margin-left:
10
px"
>
默认是"123456",新用户首次登录需修改后才能进入系统。
</span>
<span
style=
"
margin-left:30px"
><Button
type=
"primary"
size=
'small'
style=
"color:#ffffff;margin-left:20px;width:60
px"
@
click=
"addacount"
>
添加
</Button></span>
</p>
</div>
<div
class=
"accountMange"
>
<p
style=
"height:40px;line-height:40px"
>
<span
style=
"font-size:18px;color:#2d8cf0;margin-left:18px"
>
账户管理
</span>
<span
style=
"margin-left:10px"
>
删除后该用户将无法登录,该账户上传的简历仍然保留。
</span>
<span
style=
"margin-left:10px
;color:Grey
"
>
删除后该用户将无法登录,该账户上传的简历仍然保留。
</span>
</p>
<p
style=
"border-bottom:1px solid black;line-height:30px;margin-bottom:10px"
>
...
...
@@ -31,6 +31,7 @@
</p>
<!--
<Table
ref=
"selection"
:columns=
"columns4"
:data=
"data1"
></Table>
-->
<div
style=
"overflow-y: auto;height:480px;amrgin-bottom:40px"
>
<!--
<Spin
size=
"large"
fix
v-if=
"spinShow"
style=
"font-size:25px"
>
加载中...
</Spin>
-->
<div
v-for=
'item in ajaxData'
:key=
"item.id"
style=
""
>
<div
class=
"detailQQ"
>
<input
type=
'checkbox'
name=
'checkboxinput'
class=
'input-checkbox'
v-model=
'checkboxList'
:value=
"item.id"
style=
"margin-left:25px"
@
click=
"delateArr(item.id)"
>
...
...
@@ -116,6 +117,7 @@ export default {
checked
:
false
,
userName
:
''
,
userCode
:
''
,
spinShow
:
true
,
delateARR
:[],
id
:
''
,
I
:
''
,
...
...
@@ -171,7 +173,6 @@ export default {
this
.
delateARR
.
push
(
item
.
id
)
});
}
console
.
log
(
11111111
,
this
.
delateARR
,
this
.
checkboxList
)
},
//添加账户
addacount
(){
...
...
@@ -209,6 +210,7 @@ export default {
}
queryaccountList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
spinShow
=
false
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
id
=
item
.
id
...
...
@@ -306,7 +308,7 @@ export default {
<
style
>
.pageBottom
{
height
:
40px
;
width
:
8
1
.4%
;
width
:
8
4
.4%
;
background
:
#EDEDED
;
position
:
fixed
;
bottom
:
0
;
...
...
src/page/system/emailMange.vue
View file @
3d38696c
...
...
@@ -3,7 +3,7 @@
<div
class=
"addEmail"
>
<p
style=
"margin-top:10px"
>
<span
style=
"font-size:18px;color:#2d8cf0;margin-left:18px"
>
新增接受邮箱
</span>
<span
style=
"margin-left:10px"
>
绑定邮箱以接收简历
</span>
<span
style=
"margin-left:10px
;color:Grey
"
>
绑定邮箱以接收简历
</span>
</p>
<Form
:label-width=
"100"
:model=
"formInline"
:rules=
"ruleInline"
>
<FormItem
label=
"邮箱账号"
style=
"margin-top:20px"
prop=
"emailNumber"
>
...
...
@@ -26,13 +26,15 @@
<div
class=
"Emailmange"
>
<p
style=
"height:40px;line-height:40px"
>
<span
style=
"font-size:18px;color:#2d8cf0;margin-left:18px"
>
邮箱管理
</span>
<span
style=
"margin-left:10px
"
>
解绑后不在接受该邮箱下的简历,之前接受
的简历仍然保留。
</span>
<span
style=
"margin-left:10px
;color:Grey"
>
解绑后不再接受该邮箱下的简历,之前接收
的简历仍然保留。
</span>
</p>
<p
style=
"border-bottom:1px solid black;line-height:30px"
>
<input
type=
'checkbox'
class=
'input-checkbox'
v-model=
'checked'
v-on:click=
'checkedAll'
style=
"margin-left:25px"
><span
style=
"margin-left:15px"
>
全选
</span>
<span
style=
"margin-left:40px;color:#2d8cf0"
@
click=
"UntyingAll"
>
解绑
</span>
<p
style=
"border-bottom:1px solid black;line-height:30px"
>
<input
type=
'checkbox'
class=
'input-checkbox'
v-model=
'checked'
v-on:click=
'checkedAll'
style=
"margin-left:25px"
v-show=
"idAdmin==true"
>
<span
style=
"margin-left:15px"
v-show=
"idAdmin==true"
>
全选
</span>
<span
style=
"margin-left:40px;color:#2d8cf0"
@
click=
"UntyingAll"
v-show=
"idAdmin==true"
>
解绑
</span>
</p>
<Spin
size=
"large"
fix
v-if=
"spinShow"
style=
"font-size:25px"
v-show=
"idAdmin==true"
>
加载中...
</Spin>
<div
v-for=
'item in ajaxData'
:key=
"item.id"
class=
"emailList"
>
<input
type=
'checkbox'
name=
'checkboxinput'
class=
'input-checkbox'
v-model=
'checkboxList'
:value=
"item.id"
style=
"margin-left:25px;margin-top:20px"
@
click=
"selectUntyingEle(item.id)"
/>
<span
style=
"margin-left:5px"
>
{{
item
.
belongs
}}
</span>
...
...
@@ -47,7 +49,7 @@
<span
style=
"margin-left:150px"
v-if=
"item.c=='正常'"
>
{{
item
.
syncMailMsg
}}
</span>
<span
style=
"margin-left:150px;color:red"
v-if=
"item.c=='系统'"
>
{{
item
.
syncMailMsg
}}
</span>
</div>
<div
class=
"pageBottom"
>
<div
class=
"pageBottom"
v-show=
"idAdmin==true"
>
<Page
:total=
"totalSize"
show-elevator
show-total
@
on-change=
"pageChange"
@
on-page-size-change=
"pageSizeChange"
:current=
'pageIndex'
:page-size=
'pageSize'
style=
"text-align:center;margin-top:8px"
></Page>
</div>
</div>
...
...
@@ -134,6 +136,9 @@ export default {
modal3
:
false
,
modal4
:
false
,
modal5
:
false
,
condition
:
''
,
spinShow
:
true
,
idAdmin
:
''
,
NAme
:
""
,
DATA
:
""
,
Tname
:
''
,
...
...
@@ -244,6 +249,7 @@ export default {
}
queryemailList
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
success
==
true
){
this
.
spinShow
=
false
this
.
totalSize
=
res
.
data
.
body
.
totalNumber
this
.
ajaxData
=
res
.
data
.
body
.
items
.
map
((
item
,
index
)
=>
{
item
.
syncStartDate
=
item
.
syncStartDate
...
...
@@ -347,7 +353,9 @@ export default {
},
mounted
(){
this
.
SearchList
()
let
condition
=
localStorage
.
getItem
(
'
isADMIN
'
)
this
.
idAdmin
=
condition
this
.
SearchList
()
}
...
...
src/page/upload/upload.vue
View file @
3d38696c
...
...
@@ -74,12 +74,12 @@
</div>
<div
class=
"leftcontrentFotter"
>
<h5
style=
"width:100%;height:40px;background:rgb(0,176,160);text-align:center;line-height:40px;color:white"
>
上传记录
</h5>
<h5
style=
"width:100%;height:40px;background:rgb(0,176,160);text-align:center;line-height:40px;color:white
;font-size:20px
"
>
上传记录
</h5>
<div
style=
"width:100%;background:rgb(0,176,160); opacity: 0.7;height:462px;overflow-y:auto;"
>
<div
style=
"width:100%;height:10px;background:rgb(0,176,160)"
></div>
<div
class=
"contentMASSAGE"
v-for=
"(item,index) in ajaxData"
:key=
"index"
>
<p
@
click=
"getResumeData(item.resumeId)"
style=
"margin-top:
5
px"
>
<span
style=
"color:#000000;margin:
5
px 0 0 10px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
name
}}
|
</span>
<p
@
click=
"getResumeData(item.resumeId)"
style=
"margin-top:
10
px"
>
<span
style=
"color:#000000;margin:
10
px 0 0 10px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
name
}}
|
</span>
<span
style=
"color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
mobile
}}
|
</span>
<span
style=
"color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
age
}}
岁|
</span>
<span
style=
"color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
gender
}}
|
</span>
...
...
@@ -87,11 +87,11 @@
<span
style=
"color:#000000;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
degree
}}
|
</span>
<span
style=
"color:#000000;width:28%;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;"
>
{{
item
.
expectedTitle
}}
</span>
</p>
<p
style=
"margin-top:0px"
>
<span
style=
"color:
#000000
;margin:5px 0 0 10px;display:inline-block"
>
{{
item
.
createTime
}}
入库|
</span>
<p
style=
"margin-top:0px
;color:Grey
"
>
<span
style=
"color:
Grey
;margin:5px 0 0 10px;display:inline-block"
>
{{
item
.
createTime
}}
入库|
</span>
<span>
{{
item
.
creator
}}
</span>
</p>
<Button
type=
"primary"
size=
"small"
style=
"margin:-60px 0 0 85%
"
@
click=
"delateONE(item.resumeId)"
>
删除
</Button>
<Button
type=
'primary'
style=
"margin:-60px 0 0 80%;width:80px
"
@
click=
"delateONE(item.resumeId)"
>
删除
</Button>
</div>
</div>
</div>
...
...
@@ -491,7 +491,7 @@ import ajax from '../../service/ajax'
}
.contentMASSAGE{
width:90%;
height:
5
0px;
height:
7
0px;
margin-top: 3%;
margin-left: 5%;
background: white;
...
...
src/service/http.service.js
View file @
3d38696c
...
...
@@ -26,6 +26,7 @@ instance.interceptors.response.use(function (response) {
if
(
response
.
status
>=
200
&&
response
.
status
<
300
){
if
(
response
.
data
.
body
.
code
==
'
900
'
){
this
.
$Message
.
error
(
'
您的账号已在其他地方登录,如不是您个人操作,请及时修改密码
'
)
window
.
location
.
href
=
`
${
window
.
location
.
origin
}
/login`
}
if
(
response
.
data
.
success
){
...
...
@@ -34,16 +35,16 @@ instance.interceptors.response.use(function (response) {
else
{
if
(
response
.
data
.
body
.
message
){
Notice
.
error
({
desc
:
`
${
response
.
data
.
body
.
message
}
`
})
//
Notice.error({desc:`${response.data.body.message}`})
}
return
Promise
.
resolve
(
response
);
}
}
else
{
return
Promise
.
resolve
(
response
);
//
return Promise.resolve(response);
}
return
response
;
},
error
=>
{
Notice
.
error
({
desc
:
`
${
error
.
response
.
data
.
body
.
message
}
`
})
//
Notice.error({desc:`${error.response.data.body.message}`})
});
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