Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
yangchao
/
invitePc
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 026a976d
authored
Jan 09, 2020
by
yangchao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
1 parent
c86b38e8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
540 additions
and
131 deletions
src/api/common.js
src/api/login.js
src/api/resume.js
src/components/Upload/upload.vue
src/utils/Cookie.js
src/utils/checkEmail.js
src/views/interview/detail.vue
src/views/interview/list.vue
src/views/login/login.vue
src/views/message/info.vue
src/views/position/detail.vue
src/views/position/edit.vue
src/views/position/list.vue
src/views/recommend/detail.vue
src/views/recommend/list.vue
src/views/resume/detail.vue
src/views/resume/list.vue
src/api/common.js
View file @
026a976
...
@@ -51,7 +51,6 @@ export function getJobClassify(data) {
...
@@ -51,7 +51,6 @@ export function getJobClassify(data) {
}
}
//投递拒绝原因
//投递拒绝原因
export
function
applyRefuseReasons
(
data
)
{
export
function
applyRefuseReasons
(
data
)
{
return
request
({
return
request
({
url
:
'recruit/common/applyRefuseReasons'
,
url
:
'recruit/common/applyRefuseReasons'
,
...
@@ -61,4 +60,18 @@ export function applyRefuseReasons(data) {
...
@@ -61,4 +60,18 @@ export function applyRefuseReasons(data) {
})
})
}
}
//获取企业类型
export
function
getEnterpriseType
(
data
)
{
return
request
({
url
:
'recruit/organization/types'
,
method
:
'post'
,
data
:
data
,
source
:
'zp'
})
}
src/api/login.js
View file @
026a976
...
@@ -48,3 +48,23 @@ export function accountLogin (data) {
...
@@ -48,3 +48,23 @@ export function accountLogin (data) {
source
:
'zp'
source
:
'zp'
})
})
}
}
//忘记密码
export
function
forgetPassword
(
data
)
{
return
request
({
url
:
'business/login/forgetPassword'
,
method
:
'post'
,
data
:
data
,
source
:
'zp'
})
}
//忘记密码发送短信
export
function
send
(
data
)
{
return
request
({
url
:
'business/login/forgetPassword/send'
,
method
:
'post'
,
data
:
data
,
source
:
'zp'
})
}
src/api/resume.js
View file @
026a976
...
@@ -20,6 +20,16 @@ export function resumeDetail (data) {
...
@@ -20,6 +20,16 @@ export function resumeDetail (data) {
})
})
}
}
//简历详情
export
function
checkResumeDetail
(
data
)
{
return
request
({
url
:
'recruit/apply/viewCv'
,
method
:
'post'
,
data
:
data
,
source
:
'zp'
})
}
//简历通过
//简历通过
export
function
resumePass
(
data
)
{
export
function
resumePass
(
data
)
{
return
request
({
return
request
({
...
...
src/components/Upload/upload.vue
View file @
026a976
<
template
>
<
template
>
<div>
<div>
<el-upload
class=
"upload-pic"
action=
"//upload.qiniup.com"
:data=
"form"
:limit=
"
66
"
multiple
<el-upload
class=
"upload-pic"
action=
"//upload.qiniup.com"
:data=
"form"
:limit=
"
1
"
multiple
:file-list=
"fileList"
:on-error=
"handleErrorpics"
:on-success=
"handleSuccesspics"
:file-list=
"fileList"
:on-error=
"handleErrorpics"
:on-success=
"handleSuccesspics"
:before-upload=
"beforeUploadpics"
list-type=
"picture-card"
:before-upload=
"beforeUploadpics"
list-type=
"picture-card"
:on-preview=
"handlePictureCardPreview"
:on-remove=
"handleRemove"
accept=
"image/*"
>
:on-preview=
"handlePictureCardPreview"
:on-remove=
"handleRemove"
accept=
"image/*"
>
<i
class=
"el-icon-plus"
></i>
<i
class=
"el-icon-plus"
></i>
</el-upload>
</el-upload>
<el-dialog
:visible
.
sync=
"dialogVisible"
width=
"40%"
center
>
<el-dialog
:visible
.
sync=
"dialogVisible"
width=
"40%"
center
:modal=
"false"
>
<div
style=
"display: flex;align-items: center;flex-direction: row;"
>
<div
style=
"display: flex;align-items: center;flex-direction: row;"
>
<!--
<div
@
click=
"toBeforeImg(imgIndex)"
>
前移
</div>
-->
<!--
<div
@
click=
"toBeforeImg(imgIndex)"
>
前移
</div>
-->
<img
width=
"80%"
:src=
"dialogImageUrl"
alt=
""
class=
"img"
>
<img
width=
"80%"
:src=
"dialogImageUrl"
alt=
""
class=
"img"
>
...
...
src/utils/Cookie.js
View file @
026a976
...
@@ -4,6 +4,11 @@ import store from '../store'
...
@@ -4,6 +4,11 @@ import store from '../store'
let
domain
=
process
.
env
.
NODE_ENV
==
'development'
?
''
:
'.ledianyun.com'
;
let
domain
=
process
.
env
.
NODE_ENV
==
'development'
?
''
:
'.ledianyun.com'
;
// 获取商铺 token
// 获取商铺 token
export
function
getMallToken
()
{
export
function
getMallToken
()
{
...
@@ -21,24 +26,24 @@ export function getMallRole() {
...
@@ -21,24 +26,24 @@ export function getMallRole() {
let
role
=
[
'master'
];
let
role
=
[
'master'
];
return
[
'master'
]
return
[
'master'
]
//基础版默认为 master 权限
//基础版默认为 master 权限
if
(
store
.
getters
.
platform
==
'basic'
)
{
//
if (store.getters.platform == 'basic') {
return
[
'master'
]
//
return ['master']
}
//
}
let
Roles
=
Cookies
.
get
(
'storeMallRoles'
);
//
let Roles = Cookies.get('storeMallRoles');
if
(
Roles
)
{
//
if (Roles) {
if
(
Cookies
.
get
(
'storeMallRoles'
))
{
//
if (Cookies.get('storeMallRoles')) {
return
JSON
.
parse
(
Decrypt
(
Roles
)).
roles
//
return JSON.parse(Decrypt(Roles)).roles
}
else
{
//
} else {
return
role
;
//
return role;
}
//
}
//
}
else
{
//
} else {
if
(
process
.
env
.
NODE_ENV
==
'development'
)
{
//
if (process.env.NODE_ENV == 'development') {
return
Roles
?
JSON
.
parse
(
Decrypt
(
Roles
)).
roles
:
role
;
//
return Roles ? JSON.parse(Decrypt(Roles)).roles : role;
}
else
{
//
} else {
return
JSON
.
parse
(
Decrypt
(
Roles
)).
roles
//
return JSON.parse(Decrypt(Roles)).roles
}
//
}
}
//
}
}
}
...
...
src/utils/checkEmail.js
0 → 100644
View file @
026a976
const
isEmail
=
(
str
)
=>
{
if
(
str
==
null
||
str
==
""
)
return
false
;
var
result
=
str
.
match
(
/^
[\w
!#$%&'*+
/
=?^_`{|}~-
]
+
(?:\.[\w
!#$%&'*+
/
=?^_`{|}~-
]
+
)
*@
(?:[\w](?:[\w
-
]
*
[\w])?\.)
+
[\w](?:[\w
-
]
*
[\w])?
$/
);
if
(
result
==
null
)
return
false
;
return
true
;
}
export
{
isEmail
}
src/views/interview/detail.vue
View file @
026a976
...
@@ -53,7 +53,8 @@
...
@@ -53,7 +53,8 @@
</div>
</div>
<div
class=
"resume-icon-style gap"
>
<div
class=
"resume-icon-style gap"
>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
<span
class=
"txt_adjust"
>
{{
detailInfo
.
intention_salary_level_txt
}}
</span>
<!--
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
-->
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -97,8 +98,8 @@
...
@@ -97,8 +98,8 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
resumeDetail
}
from
'@/api/resume'
import
{
resumeDetail
,
checkResumeDetail
}
from
'@/api/resume'
import
{
getJobClassify
}
from
'@/api/common'
import
{
getJobClassify
,
getSalaryExpectation
}
from
'@/api/common'
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
Loading
}
from
'element-ui'
;
import
{
Loading
}
from
'element-ui'
;
...
@@ -117,6 +118,7 @@
...
@@ -117,6 +118,7 @@
detailInfo
:
''
,
//获取详情
detailInfo
:
''
,
//获取详情
suggestList
:[],
suggestList
:[],
jobList
:[],
jobList
:[],
salaryLevels
:
[]
};
};
},
},
methods
:
{
methods
:
{
...
@@ -176,11 +178,10 @@
...
@@ -176,11 +178,10 @@
});
});
// this.$route.query.cv_token
// this.$route.query.cv_token
let
data
=
{
let
data
=
{
utoken
:
this
.
$route
.
query
.
utoken
,
apply_id
:
this
.
$route
.
query
.
apply_id
,
cv_token
:
"CV1577948246894fzJFS"
,
cv_token_apply
:
this
.
$route
.
query
.
cv_token_apply
mode
:
0
}
}
r
esumeDetail
(
data
).
then
(
res
=>
{
checkR
esumeDetail
(
data
).
then
(
res
=>
{
loading
.
close
();
loading
.
close
();
if
(
res
.
error
==
0
){
if
(
res
.
error
==
0
){
let
obj
=
{
let
obj
=
{
...
@@ -190,10 +191,12 @@
...
@@ -190,10 +191,12 @@
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
}
}
console
.
log
(
this
.
jobList
)
this
.
salaryLevels
.
forEach
(
v
=>
{
if
(
v
.
level
==
obj
.
intention_salary_level
)
{
obj
.
intention_salary_level_txt
=
v
.
level_name
;
}
})
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
console
.
log
(
a1
);
console
.
log
(
obj
);
this
.
detailInfo
=
obj
;
this
.
detailInfo
=
obj
;
}
}
}).
catch
()
}).
catch
()
...
@@ -213,10 +216,24 @@
...
@@ -213,10 +216,24 @@
})
})
},
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
},
},
async
created
()
{
async
created
()
{
await
this
.
getJobList
();
await
this
.
getJobList
();
await
this
.
getSalaryLevels
();
this
.
getDetail
();
this
.
getDetail
();
this
.
getSysSuggestion
();
this
.
getSysSuggestion
();
},
},
...
...
src/views/interview/list.vue
View file @
026a976
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
<el-table-column
align=
"center"
label=
"操作"
width=
"260"
>
<el-table-column
align=
"center"
label=
"操作"
width=
"260"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div>
<div>
<el-button
size=
"small"
type=
"text"
@
click=
"checkResume(scope.row.cv_token_apply, scope.row.
utoken
)"
>
查看简历
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"checkResume(scope.row.cv_token_apply, scope.row.
apply_id
)"
>
查看简历
</el-button>
<span
class=
"segmenting-line"
v-if=
"resumeStatus != 4"
>
|
</span>
<span
class=
"segmenting-line"
v-if=
"resumeStatus != 4"
>
|
</span>
<el-button
size=
"small"
type=
"text"
@
click=
"disposeResume(scope.row.apply_id,scope.row.id)"
v-if=
"resumeStatus == 1"
>
处理
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"disposeResume(scope.row.apply_id,scope.row.id)"
v-if=
"resumeStatus == 1"
>
处理
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"disposeResume(scope.row.apply_id,scope.row.id)"
v-if=
"resumeStatus == 2 || resumeStatus == 3"
>
更新
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"disposeResume(scope.row.apply_id,scope.row.id)"
v-if=
"resumeStatus == 2 || resumeStatus == 3"
>
更新
</el-button>
...
@@ -95,7 +95,7 @@
...
@@ -95,7 +95,7 @@
<div>
<div>
<div
class=
"line-style"
>
<div
class=
"line-style"
>
<div
class=
"label"
>
面试时间:
</div>
<div
class=
"label"
>
面试时间:
</div>
<el-date-picker
v-model=
"interview_time"
size=
"small"
<el-date-picker
v-model=
"interview_time"
size=
"small"
:picker-options=
"pickerOptions"
type=
"datetime"
format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"选择日期时间"
type=
"datetime"
format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"选择日期时间"
style=
"width: 270px"
>
style=
"width: 270px"
>
</el-date-picker>
</el-date-picker>
...
@@ -116,6 +116,7 @@
...
@@ -116,6 +116,7 @@
import
{
interviewList
,
interviewDispose
}
from
'@/api/interview'
;
import
{
interviewList
,
interviewDispose
}
from
'@/api/interview'
;
import
{
getAcademicQualifications
,
getWorkExperience
,
getSalaryExpectation
}
from
"@/api/common"
;
import
{
getAcademicQualifications
,
getWorkExperience
,
getSalaryExpectation
}
from
"@/api/common"
;
import
{
CodeToText
}
from
'element-china-area-data'
;
import
{
CodeToText
}
from
'element-china-area-data'
;
import
{
nsToText
}
from
'@/utils/formatDateTime'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -126,7 +127,6 @@
...
@@ -126,7 +127,6 @@
currentPage
:
1
,
//当前页
currentPage
:
1
,
//当前页
totalPages
:
0
,
//总记录数
totalPages
:
0
,
//总记录数
page_size
:
10
,
//每页10条记录
page_size
:
10
,
//每页10条记录
isShowPassResume
:
false
,
isShowRefuseResume
:
false
,
isShowRefuseResume
:
false
,
resumeStatus
:
'1'
,
resumeStatus
:
'1'
,
interview_time
:
''
,
//面试时间
interview_time
:
''
,
//面试时间
...
@@ -134,7 +134,12 @@
...
@@ -134,7 +134,12 @@
eduList
:
[],
eduList
:
[],
workAgesList
:
[],
workAgesList
:
[],
apply_id
:
''
,
apply_id
:
''
,
interview_id
:
''
interview_id
:
''
,
pickerOptions
:
{
disabledDate
(
time
)
{
return
time
.
getTime
()
<
Date
.
now
()
-
8.64e7
}
},
}
}
},
},
methods
:
{
methods
:
{
...
@@ -143,7 +148,7 @@
...
@@ -143,7 +148,7 @@
interviewDispose
({
interviewDispose
({
apply_id
:
this
.
apply_id
,
apply_id
:
this
.
apply_id
,
interview_id
:
this
.
interview_id
,
interview_id
:
this
.
interview_id
,
interview_time
:
this
.
interview_time
,
interview_time
:
nsToText
(
this
.
interview_time
)
,
interview_address
:
this
.
interview_address
interview_address
:
this
.
interview_address
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
...
@@ -163,12 +168,12 @@
...
@@ -163,12 +168,12 @@
this
.
queryForm
.
status
=
this
.
resumeStatus
;
this
.
queryForm
.
status
=
this
.
resumeStatus
;
this
.
getInterviewList
();
this
.
getInterviewList
();
},
},
checkResume
(
id
,
utoken
)
{
checkResume
(
utoken
,
id
)
{
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
this
.
$route
.
path
+
"/detail/"
,
path
:
this
.
$route
.
path
+
"/detail/"
,
query
:
{
query
:
{
utoken
:
utoken
,
cv_token_apply
:
utoken
,
cv_token
:
id
apply_id
:
id
}
}
});
});
window
.
open
(
routeUrl
.
href
,
'_blank'
);
window
.
open
(
routeUrl
.
href
,
'_blank'
);
...
...
src/views/login/login.vue
View file @
026a976
This diff is collapsed.
Click to expand it.
src/views/message/info.vue
View file @
026a976
...
@@ -15,7 +15,10 @@
...
@@ -15,7 +15,10 @@
</div>
</div>
<div
class=
"line-style"
>
<div
class=
"line-style"
>
<div
class=
"label"
>
企业类型:
</div>
<div
class=
"label"
>
企业类型:
</div>
<el-input
class=
"input"
placeholder=
"请输入企业类型"
size=
"small"
v-model=
"registerInfo.enterprise_type"
></el-input>
<el-select
class=
"input"
v-model=
"registerInfo.enterprise_type"
placeholder=
"请选择"
size=
"small"
>
<el-option
v-for=
"item in enterprise"
:key=
"item.type"
:label=
"item.type_name"
:value=
"item.type"
>
</el-option>
</el-select>
</div>
</div>
<div
class=
"line-style"
>
<div
class=
"line-style"
>
<div
class=
"label"
>
企业区域:
</div>
<div
class=
"label"
>
企业区域:
</div>
...
@@ -50,9 +53,11 @@
...
@@ -50,9 +53,11 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
uploadimage
from
'../../components/Upload/upload'
import
uploadimage
from
'../../components/Upload/upload'
;
import
{
accountGet
,
accountEdit
}
from
"@/api/login"
import
{
accountGet
,
accountEdit
}
from
"@/api/login"
;
import
{
provinceAndCityData
,
regionData
,
CodeToText
,
TextToCode
}
from
'element-china-area-data'
;
import
{
provinceAndCityData
,
regionData
,
CodeToText
,
TextToCode
}
from
'element-china-area-data'
;
import
{
getEnterpriseType
}
from
'@/api/common'
;
export
default
{
export
default
{
name
:
"newPoint"
,
name
:
"newPoint"
,
components
:
{
components
:
{
...
@@ -61,6 +66,7 @@
...
@@ -61,6 +66,7 @@
data
()
{
data
()
{
return
{
return
{
regionData
:
regionData
,
regionData
:
regionData
,
enterprise
:
[],
registerInfo
:
{
registerInfo
:
{
portrait
:
[],
//头像
portrait
:
[],
//头像
getPortrait
:
[],
getPortrait
:
[],
...
@@ -126,10 +132,25 @@
...
@@ -126,10 +132,25 @@
this
.
$message
.
success
(
'操作成功!'
);
this
.
$message
.
success
(
'操作成功!'
);
}
}
})
})
},
//获取企业类型
getEnterprise
()
{
return
new
Promise
(
resolve
=>
{
getEnterpriseType
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
enterprise
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
}
},
},
mounted
()
{
async
mounted
()
{
this
.
getInfo
();
await
this
.
getEnterprise
();
await
this
.
getInfo
();
}
}
}
}
</
script
>
</
script
>
...
...
src/views/position/detail.vue
View file @
026a976
...
@@ -8,8 +8,8 @@
...
@@ -8,8 +8,8 @@
<div
class=
"info-job_txt"
>
{{
detailInfo
.
job_name
}}
</div>
<div
class=
"info-job_txt"
>
{{
detailInfo
.
job_name
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"table-info-h1"
>
陕西当老师教育科技有限公司
</div>
<div
class=
"table-info-h1"
>
{{
detailInfo
.
organization_name
}}
</div>
<div
class=
"info-salary"
>
{{
detailInfo
.
job_require_salary_
min
/
100000
}}
K-
{{
detailInfo
.
job_require_salary_max
/
100000
}}
K
</div>
<div
class=
"info-salary"
>
{{
detailInfo
.
job_require_salary_
level_txt
}}
</div>
</div>
</div>
<div
class=
"info-item"
>
<div
class=
"info-item"
>
<div
class=
"table-inf0-h3 mb"
>
<div
class=
"table-inf0-h3 mb"
>
...
@@ -18,7 +18,8 @@
...
@@ -18,7 +18,8 @@
<span
class=
'mr'
>
{{
detailInfo
.
job_require_work_ages_txt
}}
</span>
<span
class=
'mr'
>
{{
detailInfo
.
job_require_work_ages_txt
}}
</span>
<span>
{{
detailInfo
.
job_require_people
}}
人
</span>
<span>
{{
detailInfo
.
job_require_people
}}
人
</span>
</div>
</div>
<div
class=
"info-update_time mb"
>
更新:
{{
detailInfo
.
updated_at
?
detailInfo
.
updated_at
:
'--'
}}
</div>
<div
class=
"info-update_time mb"
v-if=
"detailInfo.created_at == detailInfo.updated_at"
>
创建时间:
{{
detailInfo
.
created_at
?
detailInfo
.
created_at
:
'--'
}}
</div>
<div
class=
"info-update_time mb"
v-else
>
更新时间:
{{
detailInfo
.
updated_at
?
detailInfo
.
updated_at
:
'--'
}}
</div>
<div
class=
"flex"
v-if=
"detailInfo.job_benefits"
>
<div
class=
"flex"
v-if=
"detailInfo.job_benefits"
>
<span
class=
"item-tips"
v-for=
"(item,index) in detailInfo.job_benefits"
:key=
"index"
>
{{
item
}}
</span>
<span
class=
"item-tips"
v-for=
"(item,index) in detailInfo.job_benefits"
:key=
"index"
>
{{
item
}}
</span>
</div>
</div>
...
@@ -90,6 +91,7 @@
...
@@ -90,6 +91,7 @@
id
:
''
,
id
:
''
,
eduList
:
[],
eduList
:
[],
workAgesList
:
[],
workAgesList
:
[],
salaryLevels
:
[]
};
};
},
},
methods
:
{
methods
:
{
...
@@ -126,6 +128,7 @@
...
@@ -126,6 +128,7 @@
}
}
this
.
eduList
.
forEach
(
m
=>
{
if
(
m
.
level
==
obj
.
job_require_edu_level
){
obj
.
job_require_edu_level_txt
=
m
.
level_name
}})
this
.
eduList
.
forEach
(
m
=>
{
if
(
m
.
level
==
obj
.
job_require_edu_level
){
obj
.
job_require_edu_level_txt
=
m
.
level_name
}})
this
.
workAgesList
.
forEach
(
m
=>
{
if
(
m
.
level
==
obj
.
job_require_work_ages
){
obj
.
job_require_work_ages_txt
=
m
.
level_name
}})
this
.
workAgesList
.
forEach
(
m
=>
{
if
(
m
.
level
==
obj
.
job_require_work_ages
){
obj
.
job_require_work_ages_txt
=
m
.
level_name
}})
this
.
salaryLevels
.
forEach
(
m
=>
{
if
(
m
.
level
==
obj
.
job_require_salary_level
){
obj
.
job_require_salary_level_txt
=
m
.
level_name
}})
this
.
detailInfo
=
obj
;
this
.
detailInfo
=
obj
;
console
.
log
(
this
.
detailInfo
,
'==='
);
console
.
log
(
this
.
detailInfo
,
'==='
);
}
}
...
@@ -158,6 +161,20 @@
...
@@ -158,6 +161,20 @@
})
})
},
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
},
},
computed
:
{
computed
:
{
...
@@ -168,6 +185,7 @@
...
@@ -168,6 +185,7 @@
async
created
()
{
async
created
()
{
await
this
.
getEduLevels
();
await
this
.
getEduLevels
();
await
this
.
getWorkAges
();
await
this
.
getWorkAges
();
await
this
.
getSalaryLevels
();
if
(
this
.
$route
.
params
.
id
&&
this
.
$route
.
params
.
id
!=
0
)
{
if
(
this
.
$route
.
params
.
id
&&
this
.
$route
.
params
.
id
!=
0
)
{
this
.
id
=
this
.
$route
.
params
.
id
;
this
.
id
=
this
.
$route
.
params
.
id
;
this
.
getDetail
();
this
.
getDetail
();
...
...
src/views/position/edit.vue
View file @
026a976
...
@@ -60,13 +60,13 @@
...
@@ -60,13 +60,13 @@
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!--
<el-form-item
label=
"薪资范围:"
>
-->
<!--
<el-input
size=
"small"
class=
"input-small"
v-model=
"positionForm.min_salary"
></el-input>
-->
<!--
<span
style=
"color: #AAAAAA"
>
-
</span>
-->
<!--
<el-input
size=
"small"
class=
"input-small"
v-model=
"positionForm.max_salary"
></el-input>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"薪资范围:"
>
<el-form-item
label=
"薪资范围:"
>
<el-input
size=
"small"
class=
"input-small"
v-model=
"positionForm.min_salary"
></el-input>
<el-select
v-model=
"positionForm.salaryScope"
placeholder=
"请选择"
size=
"small"
@
change=
"selectSalary"
>
<span
style=
"color: #AAAAAA"
>
-
</span>
<el-input
size=
"small"
class=
"input-small"
v-model=
"positionForm.max_salary"
></el-input>
</el-form-item>
<el-form-item
label=
"薪资范围:"
>
<el-select
v-model=
"positionForm.experience"
placeholder=
"请选择"
size=
"small"
>
<el-option
v-for=
"item in salaryLevels"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
<el-option
v-for=
"item in salaryLevels"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-option>
</el-select>
</el-select>
...
@@ -101,7 +101,7 @@
...
@@ -101,7 +101,7 @@
</div>
</div>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"create"
class=
"form-btn"
size=
"small"
>
立即创建
</el-button>
<el-button
type=
"primary"
@
click=
"create"
class=
"form-btn"
size=
"small"
>
{{
id
?
'更新'
:
'立即创建'
}}
</el-button>
<el-button
@
click=
"goback"
class=
"form-btn"
size=
"small"
>
取消
</el-button>
<el-button
@
click=
"goback"
class=
"form-btn"
size=
"small"
>
取消
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -139,7 +139,8 @@
...
@@ -139,7 +139,8 @@
min_salary
:
''
,
//薪资范围 小
min_salary
:
''
,
//薪资范围 小
max_salary
:
''
,
//薪资范围 大
max_salary
:
''
,
//薪资范围 大
job_benefits
:
[],
//公司福利
job_benefits
:
[],
//公司福利
location_adderss
:
''
location_adderss
:
''
,
salaryScope
:
''
},
},
id
:
''
,
id
:
''
,
inputVisible
:
false
,
inputVisible
:
false
,
...
@@ -148,6 +149,11 @@
...
@@ -148,6 +149,11 @@
}
}
},
},
methods
:
{
methods
:
{
//选择薪资
selectSalary
(
e
)
{
this
.
positionForm
.
min_salary
=
this
.
salaryLevels
[
e
].
data
.
min
;
this
.
positionForm
.
max_salary
=
this
.
salaryLevels
[
e
].
data
.
max
;
},
handleClose
(
tag
)
{
handleClose
(
tag
)
{
this
.
job_benefits
.
splice
(
this
.
job_benefits
.
indexOf
(
tag
),
1
);
this
.
job_benefits
.
splice
(
this
.
job_benefits
.
indexOf
(
tag
),
1
);
},
},
...
@@ -175,6 +181,10 @@
...
@@ -175,6 +181,10 @@
},
},
//立即创建
//立即创建
create
()
{
create
()
{
if
(
!
this
.
positionForm
.
position_name
.
trim
())
{
this
.
$message
.
error
(
'请输入职位名称'
);
return
;
}
let
data
=
{
let
data
=
{
job_name
:
this
.
positionForm
.
position_name
,
job_name
:
this
.
positionForm
.
position_name
,
job_classification_id
:
this
.
positionForm
.
position_type
[
2
]?
this
.
positionForm
.
position_type
[
2
]:
this
.
positionForm
.
position_type
[
1
],
job_classification_id
:
this
.
positionForm
.
position_type
[
2
]?
this
.
positionForm
.
position_type
[
2
]:
this
.
positionForm
.
position_type
[
1
],
...
@@ -184,13 +194,14 @@
...
@@ -184,13 +194,14 @@
job_require_people
:
Number
(
this
.
positionForm
.
number
),
job_require_people
:
Number
(
this
.
positionForm
.
number
),
job_require_edu_level
:
this
.
positionForm
.
education
?
Number
(
this
.
positionForm
.
education
)
:
2
,
job_require_edu_level
:
this
.
positionForm
.
education
?
Number
(
this
.
positionForm
.
education
)
:
2
,
job_require_work_ages
:
this
.
positionForm
.
experience
?
Number
(
this
.
positionForm
.
experience
)
:
3
,
job_require_work_ages
:
this
.
positionForm
.
experience
?
Number
(
this
.
positionForm
.
experience
)
:
3
,
job_require_salary_min
:
this
.
positionForm
.
min_salary
*
100
,
job_require_salary_min
:
this
.
positionForm
.
min_salary
,
job_require_salary_max
:
this
.
positionForm
.
max_salary
*
100
,
job_require_salary_max
:
this
.
positionForm
.
max_salary
,
job_remark
:
this
.
positionForm
.
position_describe
,
job_remark
:
this
.
positionForm
.
position_describe
,
job_benefits
:
this
.
job_benefits
,
job_benefits
:
this
.
job_benefits
,
location_lng
:
this
.
positionForm
.
longitude
,
location_lng
:
this
.
positionForm
.
longitude
,
location_lat
:
this
.
positionForm
.
latitude
,
location_lat
:
this
.
positionForm
.
latitude
,
location_adderss
:
this
.
positionForm
.
location_adderss
,
location_adderss
:
this
.
positionForm
.
location_adderss
,
job_require_salary_level
:
this
.
positionForm
.
salaryScope
}
}
let
explain
=
'创建成功'
;
let
explain
=
'创建成功'
;
if
(
this
.
id
)
{
if
(
this
.
id
)
{
...
@@ -199,6 +210,7 @@
...
@@ -199,6 +210,7 @@
}
}
positionEdit
(
data
).
then
(
res
=>
{
positionEdit
(
data
).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
localStorage
.
setItem
(
"$windowState"
,
0
);
this
.
$message
.
success
(
explain
);
this
.
$message
.
success
(
explain
);
this
.
goback
();
this
.
goback
();
}
}
...
@@ -216,8 +228,8 @@
...
@@ -216,8 +228,8 @@
this
.
positionForm
.
number
=
res
.
data
.
job_require_people
;
this
.
positionForm
.
number
=
res
.
data
.
job_require_people
;
this
.
positionForm
.
address
=
res
.
data
.
work_address
;
this
.
positionForm
.
address
=
res
.
data
.
work_address
;
this
.
positionForm
.
location_adderss
=
res
.
data
.
location_adderss
;
this
.
positionForm
.
location_adderss
=
res
.
data
.
location_adderss
;
this
.
positionForm
.
min_salary
=
res
.
data
.
job_require_salary_min
/
100
;
//
this.positionForm.min_salary = res.data.job_require_salary_min / 100;
this
.
positionForm
.
max_salary
=
res
.
data
.
job_require_salary_max
/
100
;
//
this.positionForm.max_salary = res.data.job_require_salary_max / 100;
this
.
job_benefits
=
res
.
data
.
job_benefits
;
this
.
job_benefits
=
res
.
data
.
job_benefits
;
this
.
positionForm
.
get_position_describe
=
res
.
data
.
job_remark
;
this
.
positionForm
.
get_position_describe
=
res
.
data
.
job_remark
;
this
.
positionForm
.
education
=
res
.
data
.
job_require_edu_level
;
this
.
positionForm
.
education
=
res
.
data
.
job_require_edu_level
;
...
@@ -227,12 +239,12 @@
...
@@ -227,12 +239,12 @@
this
.
positionForm
.
longitude
=
res
.
data
.
location_lng
;
this
.
positionForm
.
longitude
=
res
.
data
.
location_lng
;
this
.
positionForm
.
latitude
=
res
.
data
.
location_lat
;
this
.
positionForm
.
latitude
=
res
.
data
.
location_lat
;
this
.
positionForm
.
location_adderss
=
res
.
data
.
location_adderss
;
this
.
positionForm
.
location_adderss
=
res
.
data
.
location_adderss
;
this
.
positionForm
.
salaryScope
=
res
.
data
.
job_require_salary_level
;
if
(
res
.
data
.
location_lng
!=
0
||
res
.
data
.
location_lat
!=
0
)
{
if
(
res
.
data
.
location_lng
!=
0
||
res
.
data
.
location_lat
!=
0
)
{
let
position
=
[
res
.
data
.
location_lng
,
res
.
data
.
location_lat
];
let
position
=
[
res
.
data
.
location_lng
,
res
.
data
.
location_lat
];
console
.
log
(
position
,
'position'
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
regeocoder
(
position
)
this
.
regeocoder
(
position
)
},
100
0
)
},
100
)
}
}
}
}
})
})
...
@@ -399,6 +411,9 @@
...
@@ -399,6 +411,9 @@
getAcademicQualifications
().
then
(
res
=>
{
getAcademicQualifications
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
education
=
res
.
data
;
this
.
education
=
res
.
data
;
this
.
education
.
forEach
(
v
=>
{
v
.
level
=
String
(
v
.
level
)
})
resolve
();
resolve
();
}
}
})
})
...
@@ -413,6 +428,9 @@
...
@@ -413,6 +428,9 @@
getWorkExperience
().
then
(
res
=>
{
getWorkExperience
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
experience
=
res
.
data
;
this
.
experience
=
res
.
data
;
this
.
experience
.
forEach
(
v
=>
{
v
.
level
=
String
(
v
.
level
)
})
resolve
();
resolve
();
}
}
})
})
...
@@ -438,6 +456,10 @@
...
@@ -438,6 +456,10 @@
getSalaryExpectation
().
then
(
res
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
this
.
salaryLevels
=
res
.
data
;
this
.
salaryLevels
.
forEach
(
v
=>
{
v
.
level
=
String
(
v
.
level
)
})
resolve
();
}
}
})
})
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
...
@@ -453,7 +475,6 @@
...
@@ -453,7 +475,6 @@
await
this
.
JobClassify
();
await
this
.
JobClassify
();
await
this
.
getSalaryLevels
();
await
this
.
getSalaryLevels
();
if
(
this
.
$route
.
params
.
id
&&
this
.
$route
.
params
.
id
!=
0
)
{
if
(
this
.
$route
.
params
.
id
&&
this
.
$route
.
params
.
id
!=
0
)
{
console
.
log
(
9
);
this
.
id
=
this
.
$route
.
params
.
id
;
this
.
id
=
this
.
$route
.
params
.
id
;
this
.
getPositionDetail
();
this
.
getPositionDetail
();
}
}
...
...
src/views/position/list.vue
View file @
026a976
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
prop=
"compensation"
show-overflow-tooltip
label=
"薪资"
>
<el-table-column
align=
"center"
prop=
"compensation"
show-overflow-tooltip
label=
"薪资"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"compensation"
>
{{
(
scope
.
row
.
job_require_salary_min
/
100000
).
toFixed
(
1
)
}}
~
{{
(
scope
.
row
.
job_require_salary_max
/
100000
).
toFixed
(
1
)
}}
K
</div>
<div
class=
"compensation"
>
{{
scope
.
row
.
job_require_salary_level_txt
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
prop=
"publishTime"
show-overflow-tooltip
label=
"发布时间"
>
<el-table-column
align=
"center"
prop=
"publishTime"
show-overflow-tooltip
label=
"发布时间"
>
...
@@ -69,7 +69,8 @@
...
@@ -69,7 +69,8 @@
<el-button
size=
"small"
type=
"text"
@
click=
"editPartner(scope.row.id)"
>
编辑
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"editPartner(scope.row.id)"
>
编辑
</el-button>
<span
class=
"segmenting-line"
>
|
</span>
<span
class=
"segmenting-line"
>
|
</span>
<el-button
size=
"small"
type=
"text"
@
click=
"refreshPosition(scope.row.id)"
>
刷新
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"refreshPosition(scope.row.id)"
>
刷新
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"closePosition(scope.row.id)"
>
关闭
</el-button>
<el-button
size=
"small"
type=
"text"
v-if=
"scope.row.status == 1"
@
click=
"closePosition(scope.row.id)"
>
关闭
</el-button>
<el-button
size=
"small"
type=
"text"
v-if=
"scope.row.status == 2"
@
click=
"openPosition(scope.row.id)"
>
开启
</el-button>
<span
class=
"segmenting-line"
>
|
</span>
<span
class=
"segmenting-line"
>
|
</span>
<el-button
size=
"small"
type=
"text"
style=
"color: #f56c6c"
@
click=
"deletePosition(scope.row.id)"
>
删除
</el-button>
<el-button
size=
"small"
type=
"text"
style=
"color: #f56c6c"
@
click=
"deletePosition(scope.row.id)"
>
删除
</el-button>
</div>
</div>
...
@@ -95,7 +96,17 @@
...
@@ -95,7 +96,17 @@
<div
style=
"text-align: center;margin-bottom: 40px"
>
是否已经招到合适人选?
</div>
<div
style=
"text-align: center;margin-bottom: 40px"
>
是否已经招到合适人选?
</div>
<div
class=
"operation"
>
<div
class=
"operation"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"sureClose"
>
已招到
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"sureClose"
>
已招到
</el-button>
<el-button
size=
"small"
@
click=
"isShowClose = false"
>
未招到
</el-button>
<el-button
size=
"small"
@
click=
"sureClose"
>
未招到
</el-button>
</div>
</div>
</el-dialog>
<!--开启职位弹框-->
<el-dialog
title=
"确认开启"
:visible
.
sync=
"isShowOpen"
width=
"300px"
center
>
<div>
<div
style=
"text-align: center;margin-bottom: 40px"
>
是否重新开启职位?
</div>
<div
class=
"operation"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"sureOpen"
>
确认
</el-button>
<el-button
size=
"small"
@
click=
"isShowOpen = false"
>
取消
</el-button>
</div>
</div>
</div>
</div>
</el-dialog>
</el-dialog>
...
@@ -139,11 +150,13 @@
...
@@ -139,11 +150,13 @@
totalPages
:
0
,
//总记录数
totalPages
:
0
,
//总记录数
page_size
:
10
,
//每页10条记录
page_size
:
10
,
//每页10条记录
isShowClose
:
false
,
isShowClose
:
false
,
isShowOpen
:
false
,
isShowRefresh
:
false
,
isShowRefresh
:
false
,
isShowDelete
:
false
,
isShowDelete
:
false
,
this_id
:
''
,
this_id
:
''
,
eduList
:
[],
eduList
:
[],
workAgesList
:
[],
workAgesList
:
[],
salaryLevels
:
[]
}
}
},
},
methods
:
{
methods
:
{
...
@@ -171,6 +184,24 @@
...
@@ -171,6 +184,24 @@
this
.
this_id
=
id
;
this
.
this_id
=
id
;
this
.
isShowClose
=
true
;
this
.
isShowClose
=
true
;
},
},
//开启职位
openPosition
(
id
)
{
this
.
this_id
=
id
;
this
.
isShowOpen
=
true
;
},
//确认开启职位
sureOpen
()
{
positionUpdate
({
id
:
this
.
this_id
,
status
:
1
}).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
$message
.
success
(
'开启成功'
);
this
.
isShowOpen
=
false
;
this
.
getPositionList
();
}
})
},
//确认关闭职位
//确认关闭职位
sureClose
()
{
sureClose
()
{
positionUpdate
({
positionUpdate
({
...
@@ -179,6 +210,7 @@
...
@@ -179,6 +210,7 @@
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
$message
.
success
(
'关闭成功'
);
this
.
$message
.
success
(
'关闭成功'
);
this
.
isShowClose
=
false
;
this
.
getPositionList
();
this
.
getPositionList
();
}
}
})
})
...
@@ -194,6 +226,7 @@
...
@@ -194,6 +226,7 @@
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
$message
.
success
(
'删除成功!'
);
this
.
$message
.
success
(
'删除成功!'
);
this
.
isShowDelete
=
false
;
this
.
getPositionList
();
this
.
getPositionList
();
}
}
})
})
...
@@ -203,11 +236,25 @@
...
@@ -203,11 +236,25 @@
this
.
this_id
=
id
;
this
.
this_id
=
id
;
this
.
isShowDelete
=
true
;
this
.
isShowDelete
=
true
;
},
},
//监控新标签页状态
newBlank
()
{
localStorage
.
setItem
(
"$windowState"
,
1
);
let
handle
=
function
()
{
let
changeValue
=
localStorage
.
getItem
(
"$windowState"
)
if
(
changeValue
==
0
)
{
this
.
getPositionList
();
localStorage
.
removeItem
(
"$windowState"
);
window
.
removeEventListener
(
"storage"
,
handle
);
}
}.
bind
(
this
);
window
.
addEventListener
(
"storage"
,
handle
);
},
//添加职位
//添加职位
addPartner
()
{
addPartner
()
{
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
this
.
$route
.
path
+
"/edit/"
+
0
,
path
:
this
.
$route
.
path
+
"/edit/"
+
0
,
});
});
this
.
newBlank
();
window
.
open
(
routeUrl
.
href
,
'_blank'
);
window
.
open
(
routeUrl
.
href
,
'_blank'
);
},
},
//编辑职位
//编辑职位
...
@@ -215,6 +262,7 @@
...
@@ -215,6 +262,7 @@
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
this
.
$route
.
path
+
"/edit/"
+
id
,
path
:
this
.
$route
.
path
+
"/edit/"
+
id
,
});
});
this
.
newBlank
();
window
.
open
(
routeUrl
.
href
,
'_blank'
);
window
.
open
(
routeUrl
.
href
,
'_blank'
);
},
},
//获取职位列表
//获取职位列表
...
@@ -237,8 +285,13 @@
...
@@ -237,8 +285,13 @@
work_city
:
CodeToText
[
item
.
work_area_id
.
slice
(
0
,
4
)
+
'00'
],
work_city
:
CodeToText
[
item
.
work_area_id
.
slice
(
0
,
4
)
+
'00'
],
work_area
:
CodeToText
[
item
.
work_area_id
],
work_area
:
CodeToText
[
item
.
work_area_id
],
}
}
this
.
eduList
.
forEach
(
m
=>
{
if
(
m
.
level
==
item
.
job_require_edu_level
){
obj
.
job_require_edu_level_txt
=
m
.
level_name
}})
this
.
eduList
.
forEach
(
m
=>
{
if
(
m
.
level
==
item
.
job_require_edu_level
){
obj
.
job_require_edu_level_txt
=
m
.
level_name
}});
this
.
workAgesList
.
forEach
(
m
=>
{
if
(
m
.
level
==
item
.
job_require_work_ages
){
obj
.
job_require_work_ages_txt
=
m
.
level_name
}})
this
.
workAgesList
.
forEach
(
m
=>
{
if
(
m
.
level
==
item
.
job_require_work_ages
){
obj
.
job_require_work_ages_txt
=
m
.
level_name
}});
this
.
salaryLevels
.
forEach
(
m
=>
{
if
(
m
.
level
==
item
.
job_require_salary_level
)
{
obj
.
job_require_salary_level_txt
=
m
.
level_name
;
}
})
return
obj
;
return
obj
;
})
})
resolve
();
resolve
();
...
@@ -277,6 +330,20 @@
...
@@ -277,6 +330,20 @@
})
})
},
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
//选择第几页
//选择第几页
handleCurrentChange
(
page
)
{
handleCurrentChange
(
page
)
{
this
.
currentPage
=
page
;
this
.
currentPage
=
page
;
...
@@ -292,6 +359,7 @@
...
@@ -292,6 +359,7 @@
async
mounted
()
{
async
mounted
()
{
await
this
.
getEduLevels
();
await
this
.
getEduLevels
();
await
this
.
getWorkAges
();
await
this
.
getWorkAges
();
await
this
.
getSalaryLevels
();
await
this
.
getPositionList
();
await
this
.
getPositionList
();
}
}
}
}
...
...
src/views/recommend/detail.vue
View file @
026a976
...
@@ -53,7 +53,8 @@
...
@@ -53,7 +53,8 @@
</div>
</div>
<div
class=
"resume-icon-style gap"
>
<div
class=
"resume-icon-style gap"
>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
<span
class=
"txt_adjust"
>
{{
detailInfo
.
intention_salary_level_txt
}}
</span>
<!--
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
-->
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -97,6 +98,7 @@
...
@@ -97,6 +98,7 @@
<el-button
type=
"danger"
size=
"small"
@
click=
"isShowRefuseResume = true"
>
拒绝
</el-button>
<el-button
type=
"danger"
size=
"small"
@
click=
"isShowRefuseResume = true"
>
拒绝
</el-button>
</div>
</div>
</div>
</div>
<!--拒绝简历弹框-->
<!--拒绝简历弹框-->
<el-dialog
title=
"拒绝理由"
:visible
.
sync=
"isShowRefuseResume"
width=
"360px"
center
>
<el-dialog
title=
"拒绝理由"
:visible
.
sync=
"isShowRefuseResume"
width=
"360px"
center
>
<div>
<div>
...
@@ -123,19 +125,13 @@
...
@@ -123,19 +125,13 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
resumeDetail
,
resumePass
,
resumeRefuse
}
from
'@/api/resume'
import
{
resumeDetail
,
resumePass
,
resumeRefuse
,
checkResumeDetail
}
from
'@/api/resume'
import
{
getJobClassify
,
applyRefuseReasons
}
from
'@/api/common'
import
{
getJobClassify
,
applyRefuseReasons
,
getSalaryExpectation
}
from
'@/api/common'
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
Loading
}
from
'element-ui'
;
import
{
Loading
}
from
'element-ui'
;
export
default
{
export
default
{
props
:
{
},
components
:
{
},
data
()
{
data
()
{
return
{
return
{
optimizedVisible
:
false
,
optimizedVisible
:
false
,
...
@@ -146,7 +142,8 @@
...
@@ -146,7 +142,8 @@
isShowRefuseResume
:
false
,
isShowRefuseResume
:
false
,
isShowPassResume
:
false
,
isShowPassResume
:
false
,
refuse_reason
:
''
,
refuse_reason
:
''
,
reasonList
:
[]
reasonList
:
[],
salaryLevels
:
[]
};
};
},
},
methods
:
{
methods
:
{
...
@@ -166,7 +163,7 @@
...
@@ -166,7 +163,7 @@
//确认通过
//确认通过
surePassResume
()
{
surePassResume
()
{
resumePass
({
resumePass
({
apply_id
:
Number
(
this
.
detailInfo
.
id
)
,
apply_id
:
this
.
$route
.
query
.
apply_id
,
handle
:
'pass'
handle
:
'pass'
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
...
@@ -244,11 +241,10 @@
...
@@ -244,11 +241,10 @@
});
});
// this.$route.query.cv_token
// this.$route.query.cv_token
let
data
=
{
let
data
=
{
utoken
:
this
.
$route
.
query
.
utoken
,
apply_id
:
this
.
$route
.
query
.
apply_id
,
cv_token
:
"CV1577948246894fzJFS"
,
cv_token_apply
:
this
.
$route
.
query
.
cv_token_apply
mode
:
0
}
}
r
esumeDetail
(
data
).
then
(
res
=>
{
checkR
esumeDetail
(
data
).
then
(
res
=>
{
loading
.
close
();
loading
.
close
();
if
(
res
.
error
==
0
){
if
(
res
.
error
==
0
){
let
obj
=
{
let
obj
=
{
...
@@ -258,9 +254,12 @@
...
@@ -258,9 +254,12 @@
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
}
}
this
.
salaryLevels
.
forEach
(
v
=>
{
if
(
v
.
level
==
obj
.
intention_salary_level
)
{
obj
.
intention_salary_level_txt
=
v
.
level_name
;
}
})
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
console
.
log
(
a1
);
console
.
log
(
obj
);
this
.
detailInfo
=
obj
;
this
.
detailInfo
=
obj
;
}
}
}).
catch
()
}).
catch
()
...
@@ -280,12 +279,26 @@
...
@@ -280,12 +279,26 @@
})
})
},
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
},
},
async
created
()
{
async
created
()
{
await
this
.
getJobList
();
await
this
.
getJobList
();
this
.
getResonList
();
await
this
.
getResonList
();
await
this
.
getSalaryLevels
();
this
.
getDetail
();
this
.
getDetail
();
this
.
getSysSuggestion
();
},
},
mounted
()
{
mounted
()
{
...
...
src/views/recommend/list.vue
View file @
026a976
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<el-form
:inline=
"true"
:model=
"queryForm"
size=
"small"
ref=
"queryForm"
class=
"fiter-box"
>
<el-form
:inline=
"true"
:model=
"queryForm"
size=
"small"
ref=
"queryForm"
class=
"fiter-box"
>
<div
class=
"fiter-col"
>
<div
class=
"fiter-col"
>
<el-form-item
label=
"状态:"
prop=
"searchContent"
class=
"order-item"
>
<el-form-item
label=
"
简历
状态:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.status"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-select
v-model=
"queryForm.status"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
label=
"刚投递"
value=
"1"
></el-option>
<el-option
label=
"刚投递"
value=
"1"
></el-option>
...
@@ -16,10 +16,32 @@
...
@@ -16,10 +16,32 @@
<el-option
label=
"已拒绝"
value=
"4"
></el-option>
<el-option
label=
"已拒绝"
value=
"4"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
""
prop=
"searchContent"
class=
"order-item"
>
<el-form-item
label=
"工作经验:"
prop=
"searchContent"
class=
"order-item"
>
<el-button
type=
"primary"
size=
"small"
style=
""
@
click=
"search"
>
搜索
</el-button>
<el-select
v-model=
"queryForm.work_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in experience"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"fiter-col"
>
<el-form-item
label=
"教育经历:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.edu_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in education"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"薪资范围:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.salary_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in salaryLevels"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"fiter-col"
style=
"margin-bottom: 0"
>
<el-button
type=
"primary"
size=
"small"
style=
"margin-left: 20px"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"danger"
size=
"small"
@
click=
"reset"
>
清空搜索条件
</el-button>
</div>
</el-form>
</el-form>
<div
class=
"partner-supervise-table"
>
<div
class=
"partner-supervise-table"
>
<el-table
:data=
"list"
stripe
size=
"medium"
:header-cell-class-name=
"headerName"
>
<el-table
:data=
"list"
stripe
size=
"medium"
:header-cell-class-name=
"headerName"
>
...
@@ -52,6 +74,13 @@
...
@@ -52,6 +74,13 @@
<span
class=
"table-inf0-h3"
>
{{
scope
.
row
.
job_name
}}
</span>
<span
class=
"table-inf0-h3"
>
{{
scope
.
row
.
job_name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
prop=
"refreshTime"
show-overflow-tooltip
label=
"推荐类型"
>
<
template
slot-scope=
"scope"
>
<span
class=
"table-inf0-h3"
v-if=
"scope.row.apply_type == 1"
>
用户投递
</span>
<span
class=
"table-inf0-h3"
v-if=
"scope.row.apply_type == 2"
>
人工推荐
</span>
<span
class=
"table-inf0-h3"
v-if=
"scope.row.apply_type == 3"
>
系统推荐
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"status"
show-overflow-tooltip
label=
"处理时间"
>
<el-table-column
align=
"center"
prop=
"status"
show-overflow-tooltip
label=
"处理时间"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
class=
"table-inf0-h3"
>
{{
scope
.
row
.
updated_at
}}
</span>
<span
class=
"table-inf0-h3"
>
{{
scope
.
row
.
updated_at
}}
</span>
...
@@ -60,7 +89,7 @@
...
@@ -60,7 +89,7 @@
<el-table-column
align=
"center"
label=
"操作"
width=
"160"
>
<el-table-column
align=
"center"
label=
"操作"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div>
<div>
<el-button
size=
"small"
type=
"text"
@
click=
"checkPosition(scope.row.cv_token_apply, scope.row.
utoken
)"
>
查看简历
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"checkPosition(scope.row.cv_token_apply, scope.row.
id
)"
>
查看简历
</el-button>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -82,28 +111,24 @@
...
@@ -82,28 +111,24 @@
<
script
>
<
script
>
import
{
resumeList
,
resumePass
,
resumeRefuse
}
from
"@/api/resume"
import
{
resumeList
,
resumePass
,
resumeRefuse
}
from
"@/api/resume"
import
{
CodeToText
}
from
'element-china-area-data'
;
import
{
CodeToText
}
from
'element-china-area-data'
;
import
{
applyRefuseReasons
,
getAcademicQualifications
,
getWorkExperience
,
getSalaryExpectation
}
from
"@/api/common"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
queryForm
:{
queryForm
:{
searchContent
:
''
,
searchContent
:
''
,
status
:
''
,
status
:
''
,
work_level
:
''
,
edu_level
:
''
,
salary_level
:
''
},
},
list
:
[
list
:
[],
{
position
:
'英语老师'
,
address
:
'西安-雁塔区'
,
education
:
'本科'
,
experience
:
'一年'
,
compensation
:
'4k-5k/月'
,
publishTime
:
'2019-11-12'
,
refreshTime
:
'2019-12-12'
,
status
:
'正在招聘'
}
],
currentPage
:
1
,
//当前页
currentPage
:
1
,
//当前页
totalPages
:
0
,
//总记录数
totalPages
:
0
,
//总记录数
page_size
:
10
,
//每页10条记录
page_size
:
10
,
//每页10条记录
education
:
[],
experience
:
[],
salaryLevels
:
[],
}
}
},
},
methods
:
{
methods
:
{
...
@@ -115,17 +140,20 @@
...
@@ -115,17 +140,20 @@
reset
()
{
reset
()
{
this
.
queryForm
.
searchContent
=
''
;
this
.
queryForm
.
searchContent
=
''
;
this
.
queryForm
.
status
=
''
;
this
.
queryForm
.
status
=
''
;
this
.
queryForm
.
edu_level
=
''
;
this
.
queryForm
.
work_level
=
''
;
this
.
queryForm
.
salary_level
=
''
;
this
.
getRcommendList
();
this
.
getRcommendList
();
},
},
headerName
()
{
headerName
()
{
return
'header-class-title'
return
'header-class-title'
},
},
checkPosition
(
id
,
utoken
)
{
checkPosition
(
utoken
,
id
)
{
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
this
.
$route
.
path
+
"/detail/"
,
path
:
this
.
$route
.
path
+
"/detail/"
,
query
:
{
query
:
{
utoken
:
utoken
,
cv_token_apply
:
utoken
,
cv_token
:
id
apply_id
:
id
}
}
});
});
window
.
open
(
routeUrl
.
href
,
'_blank'
);
window
.
open
(
routeUrl
.
href
,
'_blank'
);
...
@@ -138,11 +166,20 @@
...
@@ -138,11 +166,20 @@
let
data
=
{
let
data
=
{
page
:
this
.
currentPage
,
page
:
this
.
currentPage
,
page_size
:
this
.
page_size
,
page_size
:
this
.
page_size
,
apply_type
:
'
self'
apply_type
:
'
recommend'
,
}
}
if
(
this
.
queryForm
.
status
)
{
if
(
this
.
queryForm
.
status
)
{
data
.
status
=
this
.
queryForm
.
status
;
data
.
status
=
this
.
queryForm
.
status
;
}
}
if
(
this
.
queryForm
.
edu_level
)
{
data
.
edu_level
=
String
(
this
.
queryForm
.
edu_level
);
}
if
(
this
.
queryForm
.
work_level
)
{
data
.
work_level
=
this
.
queryForm
.
work_level
;
}
if
(
this
.
queryForm
.
salary_level
)
{
data
.
salary_level
=
this
.
queryForm
.
salary_level
;
}
resumeList
(
data
).
then
(
res
=>
{
resumeList
(
data
).
then
(
res
=>
{
if
(
res
.
error
==
0
&&
res
.
data
&&
res
.
data
.
info
)
{
if
(
res
.
error
==
0
&&
res
.
data
&&
res
.
data
.
info
)
{
this
.
list
=
res
.
data
.
info
;
this
.
list
=
res
.
data
.
info
;
...
@@ -168,9 +205,53 @@
...
@@ -168,9 +205,53 @@
this
.
page_size
=
e
;
this
.
page_size
=
e
;
this
.
currentPage
=
1
;
this
.
currentPage
=
1
;
this
.
getRcommendList
();
this
.
getRcommendList
();
},
//获取学历
getEduLevels
()
{
return
new
Promise
(
resolve
=>
{
getAcademicQualifications
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
education
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
//获取工作经验
getWorkAges
()
{
return
new
Promise
(
resolve
=>
{
getWorkExperience
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
experience
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
}
},
},
mounted
()
{
async
mounted
()
{
await
this
.
getEduLevels
();
await
this
.
getWorkAges
();
await
this
.
getSalaryLevels
();
this
.
getRcommendList
();
this
.
getRcommendList
();
}
}
}
}
...
...
src/views/resume/detail.vue
View file @
026a976
...
@@ -53,7 +53,8 @@
...
@@ -53,7 +53,8 @@
</div>
</div>
<div
class=
"resume-icon-style gap"
>
<div
class=
"resume-icon-style gap"
>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<i
class=
'iconfont icon-xinziyaoqiu txtSize'
></i>
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
<span
class=
"txt_adjust"
>
{{
detailInfo
.
intention_salary_level_txt
}}
</span>
<!--
<span
class=
'txt_adjust'
>
{{
detailInfo
.
intention_salary_min
?(
detailInfo
.
intention_salary_min
/
100000
).
toFixed
(
1
):
0
}}
K-
{{
detailInfo
.
intention_salary_max
?(
detailInfo
.
intention_salary_max
/
100000
).
toFixed
(
1
):
0
}}
K
</span>
-->
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -124,8 +125,8 @@
...
@@ -124,8 +125,8 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
resumeDetail
,
resumePass
,
resumeRefuse
}
from
'@/api/resume'
import
{
resumeDetail
,
resumePass
,
resumeRefuse
,
checkResumeDetail
}
from
'@/api/resume'
import
{
getJobClassify
,
applyRefuseReasons
}
from
'@/api/common'
import
{
getJobClassify
,
applyRefuseReasons
,
getSalaryExpectation
}
from
'@/api/common'
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
CodeToText
,
TextToCode
,}
from
'element-china-area-data'
;
import
{
Loading
}
from
'element-ui'
;
import
{
Loading
}
from
'element-ui'
;
...
@@ -141,7 +142,8 @@
...
@@ -141,7 +142,8 @@
isShowRefuseResume
:
false
,
isShowRefuseResume
:
false
,
isShowPassResume
:
false
,
isShowPassResume
:
false
,
refuse_reason
:
''
,
refuse_reason
:
''
,
reasonList
:
[]
reasonList
:
[],
salaryLevels
:
[]
};
};
},
},
methods
:
{
methods
:
{
...
@@ -239,11 +241,13 @@
...
@@ -239,11 +241,13 @@
});
});
// this.$route.query.cv_token
// this.$route.query.cv_token
let
data
=
{
let
data
=
{
utoken
:
this
.
$route
.
query
.
utoken
,
// utoken:this.$route.query.utoken,
cv_token
:
"CV1577948246894fzJFS"
,
// cv_token:"CV1577948246894fzJFS",
mode
:
0
// mode:0,
apply_id
:
this
.
$route
.
query
.
apply_id
,
cv_token_apply
:
this
.
$route
.
query
.
cv_token_apply
}
}
r
esumeDetail
(
data
).
then
(
res
=>
{
checkR
esumeDetail
(
data
).
then
(
res
=>
{
loading
.
close
();
loading
.
close
();
if
(
res
.
error
==
0
){
if
(
res
.
error
==
0
){
let
obj
=
{
let
obj
=
{
...
@@ -253,6 +257,11 @@
...
@@ -253,6 +257,11 @@
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
work_area
:
CodeToText
[
res
.
data
.
intention_area_id
],
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
job_name
:
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
6
)
+
'00'
][
res
.
data
.
intention_job
]
}
}
this
.
salaryLevels
.
forEach
(
v
=>
{
if
(
v
.
level
==
obj
.
intention_salary_level
)
{
obj
.
intention_salary_level_txt
=
v
.
level_name
;
}
})
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
let
a1
=
this
.
jobList
[
res
.
data
.
intention_job
.
slice
(
0
,
4
)
+
'0000'
]
this
.
detailInfo
=
obj
;
this
.
detailInfo
=
obj
;
}
}
...
@@ -273,10 +282,25 @@
...
@@ -273,10 +282,25 @@
})
})
},
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
},
},
async
created
()
{
async
created
()
{
await
this
.
getJobList
();
await
this
.
getJobList
();
this
.
getResonList
();
await
this
.
getResonList
();
await
this
.
getResonList
();
this
.
getDetail
();
this
.
getDetail
();
},
},
mounted
()
{
mounted
()
{
...
...
src/views/resume/list.vue
View file @
026a976
...
@@ -2,10 +2,7 @@
...
@@ -2,10 +2,7 @@
<div
class=
"partner-supervise-container"
>
<div
class=
"partner-supervise-container"
>
<el-form
:inline=
"true"
:model=
"queryForm"
size=
"small"
ref=
"queryForm"
class=
"fiter-box"
>
<el-form
:inline=
"true"
:model=
"queryForm"
size=
"small"
ref=
"queryForm"
class=
"fiter-box"
>
<div
class=
"fiter-col"
>
<div
class=
"fiter-col"
>
<!--
<el-form-item
label=
"搜索内容:"
prop=
"searchContent"
class=
"order-item"
>
-->
<el-form-item
label=
"简历状态:"
prop=
"searchContent"
class=
"order-item"
>
<!--
<el-input
placeholder=
"请输入内容"
v-model=
"queryForm.searchContent"
class=
"order-input"
>
</el-input>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"状态:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.status"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-select
v-model=
"queryForm.status"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
label=
"刚投递"
value=
"1"
></el-option>
<el-option
label=
"刚投递"
value=
"1"
></el-option>
...
@@ -14,11 +11,34 @@
...
@@ -14,11 +11,34 @@
<el-option
label=
"已拒绝"
value=
"4"
></el-option>
<el-option
label=
"已拒绝"
value=
"4"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
""
prop=
"searchContent"
class=
"order-item"
>
<el-form-item
label=
"工作经验:"
prop=
"searchContent"
class=
"order-item"
>
<el-button
type=
"primary"
size=
"small"
style=
""
@
click=
"search"
>
搜索
</el-button>
<el-select
v-model=
"queryForm.work_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in experience"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"fiter-col"
>
<el-form-item
label=
"教育经历:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.edu_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in education"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"薪资范围:"
prop=
"searchContent"
class=
"order-item"
>
<el-select
v-model=
"queryForm.salary_level"
placeholder=
"请选择"
class=
"input-style"
size=
"small"
>
<el-option
v-for=
"item in salaryLevels"
:key=
"item.level"
:label=
"item.level_name"
:value=
"item.level"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"fiter-col"
style=
"margin-bottom: 0"
>
<el-button
type=
"primary"
size=
"small"
style=
"margin-left: 20px"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"danger"
size=
"small"
@
click=
"reset"
>
清空搜索条件
</el-button>
</div>
</div>
</el-form>
</el-form>
<div
class=
"partner-supervise-table"
>
<div
class=
"partner-supervise-table"
>
<el-table
:data=
"list"
stripe
size=
"medium"
:header-cell-class-name=
"headerName"
>
<el-table
:data=
"list"
stripe
size=
"medium"
:header-cell-class-name=
"headerName"
>
<el-table-column
align=
"center"
prop=
"truename"
label=
"投递人信息"
width=
"300"
>
<el-table-column
align=
"center"
prop=
"truename"
label=
"投递人信息"
width=
"300"
>
...
@@ -63,7 +83,7 @@
...
@@ -63,7 +83,7 @@
<el-table-column
align=
"center"
label=
"操作"
width=
"200"
fixed=
"right"
>
<el-table-column
align=
"center"
label=
"操作"
width=
"200"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div>
<div>
<el-button
size=
"small"
type=
"text"
@
click=
"checkResume(scope.row.cv_token_apply, scope.row.
utoken
)"
>
查看简历
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"checkResume(scope.row.cv_token_apply, scope.row.
id
)"
>
查看简历
</el-button>
<span
class=
"segmenting-line"
>
|
</span>
<span
class=
"segmenting-line"
>
|
</span>
<el-button
size=
"small"
type=
"text"
@
click=
"passResume(scope.row.id)"
>
通过
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"passResume(scope.row.id)"
>
通过
</el-button>
<span
class=
"segmenting-line"
>
|
</span>
<span
class=
"segmenting-line"
>
|
</span>
...
@@ -110,7 +130,7 @@
...
@@ -110,7 +130,7 @@
</template>
</template>
<
script
>
<
script
>
import
{
resumeList
,
resumePass
,
resumeRefuse
}
from
"@/api/resume"
import
{
resumeList
,
resumePass
,
resumeRefuse
}
from
"@/api/resume"
import
{
applyRefuseReasons
}
from
"@/api/common"
;
import
{
applyRefuseReasons
,
getAcademicQualifications
,
getWorkExperience
,
getSalaryExpectation
}
from
"@/api/common"
;
import
{
CodeToText
}
from
'element-china-area-data'
;
import
{
CodeToText
}
from
'element-china-area-data'
;
export
default
{
export
default
{
data
()
{
data
()
{
...
@@ -118,6 +138,9 @@
...
@@ -118,6 +138,9 @@
queryForm
:{
queryForm
:{
searchContent
:
''
,
searchContent
:
''
,
status
:
''
,
status
:
''
,
work_level
:
''
,
edu_level
:
''
,
salary_level
:
''
},
},
list
:
[],
//合伙人列表
list
:
[],
//合伙人列表
currentPage
:
1
,
//当前页
currentPage
:
1
,
//当前页
...
@@ -127,7 +150,10 @@
...
@@ -127,7 +150,10 @@
isShowRefuseResume
:
false
,
isShowRefuseResume
:
false
,
refuse_reason
:
''
,
refuse_reason
:
''
,
checked_id
:
''
,
checked_id
:
''
,
reasonList
:
[]
reasonList
:
[],
education
:
[],
experience
:
[],
salaryLevels
:
[],
}
}
},
},
methods
:
{
methods
:
{
...
@@ -148,6 +174,9 @@
...
@@ -148,6 +174,9 @@
reset
()
{
reset
()
{
this
.
queryForm
.
searchContent
=
''
;
this
.
queryForm
.
searchContent
=
''
;
this
.
queryForm
.
status
=
''
;
this
.
queryForm
.
status
=
''
;
this
.
queryForm
.
edu_level
=
''
;
this
.
queryForm
.
work_level
=
''
;
this
.
queryForm
.
salary_level
=
''
;
this
.
getResumeList
();
this
.
getResumeList
();
},
},
//检索
//检索
...
@@ -158,12 +187,12 @@
...
@@ -158,12 +187,12 @@
return
'header-class-title'
return
'header-class-title'
},
},
checkResume
(
id
,
utoken
)
{
checkResume
(
utoken
,
id
)
{
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
this
.
$route
.
path
+
"/detail/"
,
path
:
this
.
$route
.
path
+
"/detail/"
,
query
:
{
query
:
{
utoken
:
utoken
,
cv_token_apply
:
utoken
,
cv_token
:
id
apply_id
:
id
}
}
});
});
window
.
open
(
routeUrl
.
href
,
'_blank'
);
window
.
open
(
routeUrl
.
href
,
'_blank'
);
...
@@ -177,6 +206,7 @@
...
@@ -177,6 +206,7 @@
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
$message
.
success
(
'已通过成功!'
);
this
.
$message
.
success
(
'已通过成功!'
);
this
.
isShowPassResume
=
false
;
this
.
isShowPassResume
=
false
;
this
.
getResumeList
();
}
}
})
})
},
},
...
@@ -198,6 +228,7 @@
...
@@ -198,6 +228,7 @@
if
(
res
.
error
==
0
)
{
if
(
res
.
error
==
0
)
{
this
.
$message
.
success
(
'已拒绝成功!'
);
this
.
$message
.
success
(
'已拒绝成功!'
);
this
.
isShowRefuseResume
=
false
;
this
.
isShowRefuseResume
=
false
;
this
.
getResumeList
();
}
}
})
})
},
},
...
@@ -206,11 +237,20 @@
...
@@ -206,11 +237,20 @@
let
data
=
{
let
data
=
{
page
:
this
.
currentPage
,
page
:
this
.
currentPage
,
page_size
:
this
.
page_size
,
page_size
:
this
.
page_size
,
apply_type
:
'self'
apply_type
:
'self'
,
}
}
if
(
this
.
queryForm
.
status
)
{
if
(
this
.
queryForm
.
status
)
{
data
.
status
=
this
.
queryForm
.
status
;
data
.
status
=
this
.
queryForm
.
status
;
}
}
if
(
this
.
queryForm
.
edu_level
)
{
data
.
edu_level
=
this
.
queryForm
.
edu_level
;
}
if
(
this
.
queryForm
.
work_level
)
{
data
.
work_level
=
this
.
queryForm
.
work_level
;
}
if
(
this
.
queryForm
.
salary_level
)
{
data
.
salary_level
=
this
.
queryForm
.
salary_level
;
}
resumeList
(
data
).
then
(
res
=>
{
resumeList
(
data
).
then
(
res
=>
{
if
(
res
.
error
==
0
&&
res
.
data
&&
res
.
data
.
info
)
{
if
(
res
.
error
==
0
&&
res
.
data
&&
res
.
data
.
info
)
{
this
.
list
=
res
.
data
.
info
;
this
.
list
=
res
.
data
.
info
;
...
@@ -236,9 +276,53 @@
...
@@ -236,9 +276,53 @@
this
.
page_size
=
e
;
this
.
page_size
=
e
;
this
.
currentPage
=
1
;
this
.
currentPage
=
1
;
this
.
getResumeList
();
this
.
getResumeList
();
},
//获取学历
getEduLevels
()
{
return
new
Promise
(
resolve
=>
{
getAcademicQualifications
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
education
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
//获取工作经验
getWorkAges
()
{
return
new
Promise
(
resolve
=>
{
getWorkExperience
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
experience
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
},
//获取薪资列表
getSalaryLevels
()
{
return
new
Promise
(
resolve
=>
{
getSalaryExpectation
().
then
(
res
=>
{
if
(
res
.
error
==
0
)
{
this
.
salaryLevels
=
res
.
data
;
resolve
();
}
})
}).
catch
(
error
=>
{
})
}
}
},
},
mounted
()
{
async
mounted
()
{
await
this
.
getEduLevels
();
await
this
.
getWorkAges
();
await
this
.
getSalaryLevels
();
this
.
getResonList
();
this
.
getResonList
();
this
.
getResumeList
();
this
.
getResumeList
();
}
}
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment