Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
4a67d288
Commit
4a67d288
authored
Apr 13, 2021
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加
parent
d1975542
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
879 additions
and
39 deletions
+879
-39
App.vue
src/App.vue
+1
-1
webkit.js
src/api/system/webkit.js
+122
-0
comic-form.vue
src/components/system/comic-form.vue
+23
-20
monthly-form.vue
src/components/system/monthly-form.vue
+21
-18
recruit-form.vue
src/components/system/recruit-form.vue
+170
-0
recruittype-form.vue
src/components/system/recruittype-form.vue
+112
-0
recruitment.vue
src/pages/system/recruitment.vue
+252
-0
recruitmentType.vue
src/pages/system/recruitmentType.vue
+168
-0
routes.js
src/router/routes.js
+10
-0
No files found.
src/App.vue
View file @
4a67d288
...
@@ -12,7 +12,7 @@ export default {
...
@@ -12,7 +12,7 @@ export default {
<
style
>
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
jhf9m689zd9
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
mdro050mpvo
.css')
;
html
,
html
,
body
,
body
,
...
...
src/api/system/webkit.js
View file @
4a67d288
...
@@ -430,6 +430,7 @@ export function GetWebMonthly(data) {
...
@@ -430,6 +430,7 @@ export function GetWebMonthly(data) {
data
data
})
})
}
}
/**
/**
* 修改品牌月刊状态
* 修改品牌月刊状态
...
@@ -441,4 +442,125 @@ export function RemoveWebMonthlyStatus(data) {
...
@@ -441,4 +442,125 @@ export function RemoveWebMonthlyStatus(data) {
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
/**
* 获取招聘类型分页列表
*
*/
export
function
GetWebRecruitmentTypePage
(
data
)
{
return
request
({
url
:
'/WebManager/GetWebRecruitmentTypePage'
,
method
:
'post'
,
data
})
}
/**
* 获取招聘类型列表
*
*/
export
function
GetWebRecruitmentTypeList
(
data
)
{
return
request
({
url
:
'/WebManager/GetWebRecruitmentTypeList'
,
method
:
'post'
,
data
})
}
/**
* 新增修改招聘类型
*
*/
export
function
SetWebRecruitmentType
(
data
)
{
return
request
({
url
:
'/WebManager/SetWebRecruitmentType'
,
method
:
'post'
,
data
})
}
/**
* 根据编号获取招聘类型详情
*
*/
export
function
GetWebRecruitmentType
(
data
)
{
return
request
({
url
:
'/WebManager/GetWebRecruitmentType'
,
method
:
'post'
,
data
})
}
/**
* 修改招聘类型状态
*
*/
export
function
RemoveWebRecruitmentTypeStatus
(
data
)
{
return
request
({
url
:
'/WebManager/RemoveWebRecruitmentTypeStatus'
,
method
:
'post'
,
data
})
}
/**
* 获取招聘信息分页列表
*
*/
export
function
GetWebRecruitmentPage
(
data
)
{
return
request
({
url
:
'/WebManager/GetWebRecruitmentPage'
,
method
:
'post'
,
data
})
}
/**
* 新增修改招聘信息
*
*/
export
function
SetWebRecruitment
(
data
)
{
return
request
({
url
:
'/WebManager/SetWebRecruitment'
,
method
:
'post'
,
data
})
}
/**
* 根据编号获取招聘详情
*
*/
export
function
GetWebRecruitment
(
data
)
{
return
request
({
url
:
'/WebManager/GetWebRecruitment'
,
method
:
'post'
,
data
})
}
/**
* 修改招聘状态
*
*/
export
function
RemoveWebRecruitmentStatus
(
data
)
{
return
request
({
url
:
'/WebManager/RemoveWebRecruitmentStatus'
,
method
:
'post'
,
data
})
}
}
\ No newline at end of file
src/components/system/comic-form.vue
View file @
4a67d288
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
漫画信息
</div>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
漫画信息
</div>
<div
class=
"row wrap"
>
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Name"
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Name"
class=
"col-12 q-pr-lg q-pb-lg"
label=
"漫画名称"
/>
class=
"col-12 q-pr-lg q-pb-lg"
label=
"漫画名称"
ref=
"Name"
:rules=
"[val => !!val || '请填写漫画名称']"
/>
<q-input
filled
stack-label
maxlength=
"200"
:dense=
"false"
v-model=
"objOption.LinkUrl"
<q-input
filled
stack-label
maxlength=
"200"
:dense=
"false"
v-model=
"objOption.LinkUrl"
class=
"col-12 q-pr-lg q-pb-lg"
label=
"链接"
/>
class=
"col-12 q-pr-lg q-pb-lg"
label=
"链接"
/>
</div>
</div>
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
objOption
:
{
objOption
:
{
Id
:
0
,
Id
:
0
,
Name
:
''
,
Name
:
''
,
LinkUrl
:
''
LinkUrl
:
''
},
},
optionTitle
:
"新增漫画"
,
optionTitle
:
"新增漫画"
,
saveLoading
:
false
,
saveLoading
:
false
,
...
@@ -58,10 +58,10 @@
...
@@ -58,10 +58,10 @@
Id
:
this
.
saveObj
.
Id
Id
:
this
.
saveObj
.
Id
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
Name
=
res
.
Data
.
Name
;
this
.
objOption
.
Name
=
res
.
Data
.
Name
;
this
.
objOption
.
LinkUrl
=
res
.
Data
.
LinkUrl
;
this
.
objOption
.
LinkUrl
=
res
.
Data
.
LinkUrl
;
this
.
optionTitle
=
'修改漫画'
this
.
optionTitle
=
'修改漫画'
}
}
})
})
}
}
...
@@ -73,21 +73,24 @@
...
@@ -73,21 +73,24 @@
},
},
//保存菜单
//保存菜单
saveComic
()
{
saveComic
()
{
this
.
saveLoading
=
true
this
.
$refs
.
Name
.
validate
();
SetWebCartoon
(
this
.
objOption
).
then
(
res
=>
{
if
(
!
this
.
$refs
.
Name
.
hasError
)
{
this
.
saveLoading
=
false
this
.
saveLoading
=
true
this
.
$q
.
notify
({
SetWebCartoon
(
this
.
objOption
).
then
(
res
=>
{
icon
:
'iconfont icon-chenggong'
,
this
.
saveLoading
=
false
color
:
'accent'
,
this
.
$q
.
notify
({
timeout
:
2000
,
icon
:
'iconfont icon-chenggong'
,
message
:
'数据保存成功!'
,
color
:
'accent'
,
position
:
'top'
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
})
this
.
$emit
(
"success"
)
}
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
}
}
},
},
}
}
...
...
src/components/system/monthly-form.vue
View file @
4a67d288
...
@@ -7,10 +7,10 @@
...
@@ -7,10 +7,10 @@
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
月刊信息
</div>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
月刊信息
</div>
<div
class=
"row wrap"
style=
"align-items:end;"
>
<div
class=
"row wrap"
style=
"align-items:end;"
>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Name"
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Name"
class=
"col-12 q-pb-lg"
class=
"col-12 q-pb-lg"
label=
"月刊名称
"
/>
label=
"月刊名称"
ref=
"Name"
:rules=
"[val => !!val || '请填写月刊名称']
"
/>
<q-input
filled
stack-label
maxlength=
"200"
:dense=
"false"
v-model=
"objOption.LinkUrl"
<q-input
filled
stack-label
maxlength=
"200"
:dense=
"false"
v-model=
"objOption.LinkUrl"
class=
"col-12 q-pb-lg"
class=
"col-12 q-pb-lg"
label=
"链接"
/>
label=
"链接"
/>
<div
class=
"col-6 q-pb-lg q-pr-lg"
>
<div
class=
"col-6 q-pb-lg q-pr-lg"
>
<q-uploader
:style=
"
{ backgroundImage: 'url(' + objOption.CoverImg + ')' }"
<q-uploader
:style=
"
{ backgroundImage: 'url(' + objOption.CoverImg + ')' }"
style="width:auto;height:200px;background-repeat:no-repeat;background-size:cover;" flat hide-upload-btn
style="width:auto;height:200px;background-repeat:no-repeat;background-size:cover;" flat hide-upload-btn
...
@@ -91,21 +91,24 @@
...
@@ -91,21 +91,24 @@
},
},
//保存菜单
//保存菜单
saveComic
()
{
saveComic
()
{
this
.
saveLoading
=
true
this
.
$refs
.
Name
.
validate
();
SetWebMonthly
(
this
.
objOption
).
then
(
res
=>
{
if
(
!
this
.
$refs
.
Name
.
hasError
)
{
this
.
saveLoading
=
false
this
.
saveLoading
=
true
this
.
$q
.
notify
({
SetWebMonthly
(
this
.
objOption
).
then
(
res
=>
{
icon
:
'iconfont icon-chenggong'
,
this
.
saveLoading
=
false
color
:
'accent'
,
this
.
$q
.
notify
({
timeout
:
2000
,
icon
:
'iconfont icon-chenggong'
,
message
:
'数据保存成功!'
,
color
:
'accent'
,
position
:
'top'
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
})
this
.
$emit
(
"success"
)
}
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
}
}
},
},
}
}
...
...
src/components/system/recruit-form.vue
0 → 100644
View file @
4a67d288
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
optionTitle
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
招聘类型信息
</div>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"TypeName"
v-model=
"objOption.TypeId"
ref=
"TypeId"
:options=
"typeList"
label=
"招聘类型"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
:rules=
"[val => !!val || '请选择招聘类型']"
emit-value
map-options
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.PositionName"
ref=
"PositionName"
:rules=
"[val => !!val || '请填写岗位名称']"
class=
"col-6 q-pb-lg"
label=
"岗位名称"
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"objOption.SalaryType"
:options=
"SalaryTypeList"
label=
"薪资类型"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.SalaryNum"
class=
"col-6 q-pb-lg"
@
keyup
.
native=
"checkPrice(objOption,'SalaryNum')"
label=
"多少薪"
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.SalaryStart"
class=
"col-6 q-pr-lg q-pb-lg"
@
keyup
.
native=
"checkPrice(objOption,'SalaryStart')"
label=
"开始薪资"
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.SalaryEnd"
class=
"col-6 q-pb-lg"
label=
"结束薪资"
@
keyup
.
native=
"checkPrice(objOption,'SalaryEnd')"
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Experience"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"工作经验"
/>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.Education"
class=
"col-6 q-pb-lg"
label=
"学历"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.WorkPlace"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"工作地点"
/>
<q-input
filled
v-model=
"objOption.PublishTime"
class=
"col-6 q-pb-lg"
mask=
"date"
label=
"更新时间"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-date
v-model=
"objOption.PublishTime"
@
input=
"() => $refs.qDateProxy.hide()"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"objOption.PositionDesc"
style=
"margin-top: 20px"
type=
"textarea"
class=
"col-12"
label=
"岗位描述"
/>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"saveComic"
/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
SetWebRecruitment
,
GetWebRecruitmentTypeList
,
GetWebRecruitment
}
from
'../../api/system/webkit'
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
objOption
:
{
Id
:
0
,
TypeId
:
0
,
PositionName
:
''
,
SalaryType
:
1
,
SalaryStart
:
''
,
SalaryEnd
:
''
,
SalaryNum
:
''
,
Experience
:
''
,
Education
:
''
,
WorkPlace
:
''
,
PublishTime
:
''
,
PositionDesc
:
''
},
SalaryTypeList
:
[{
Id
:
1
,
Name
:
'固定薪资'
},
{
Id
:
2
,
Name
:
'面议'
}],
optionTitle
:
"新增招聘信息"
,
saveLoading
:
false
,
typeList
:
[]
//类型下拉
}
},
mounted
()
{
this
.
initObj
()
this
.
getTypeList
();
},
methods
:
{
//初始化表单
initObj
()
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
Id
>
0
)
{
GetWebRecruitment
({
Id
:
this
.
saveObj
.
Id
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
TypeId
=
res
.
Data
.
TypeId
;
this
.
objOption
.
PositionName
=
res
.
Data
.
PositionName
;
this
.
objOption
.
SalaryType
=
res
.
Data
.
SalaryType
;
this
.
objOption
.
SalaryStart
=
res
.
Data
.
SalaryStart
;
this
.
objOption
.
SalaryEnd
=
res
.
Data
.
SalaryEnd
;
this
.
objOption
.
SalaryNum
=
res
.
Data
.
SalaryNum
;
this
.
objOption
.
Experience
=
res
.
Data
.
Experience
;
this
.
objOption
.
Education
=
res
.
Data
.
Education
;
this
.
objOption
.
WorkPlace
=
res
.
Data
.
WorkPlace
;
this
.
objOption
.
PublishTime
=
res
.
Data
.
PublishTime
;
this
.
objOption
.
PositionDesc
=
res
.
Data
.
PositionDesc
;
this
.
optionTitle
=
'修改招聘信息'
}
})
}
},
//获取招聘类型下拉数据
getTypeList
()
{
let
msg
=
{
TypeName
:
''
}
GetWebRecruitmentTypeList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
typeList
=
res
.
Data
;
let
obj
=
{
Id
:
0
,
TypeName
:
'不限'
}
this
.
typeList
.
unshift
(
obj
);
}
}).
catch
(()
=>
{})
},
//关闭弹窗
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
//保存菜单
saveComic
()
{
this
.
$refs
.
TypeId
.
validate
();
this
.
$refs
.
PositionName
.
validate
();
if
(
!
this
.
$refs
.
TypeId
.
hasError
&&
!
this
.
$refs
.
PositionName
.
hasError
)
{
this
.
saveLoading
=
true
SetWebRecruitment
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
}
}
},
}
</
script
>
src/components/system/recruittype-form.vue
0 → 100644
View file @
4a67d288
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
optionTitle
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-lg q-px-md text-grey-6"
>
招聘类型信息
</div>
<div
class=
"row wrap"
style=
"align-items:end;"
>
<q-input
filled
stack-label
maxlength=
"50"
:dense=
"false"
v-model=
"objOption.TypeName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"招聘类型"
ref=
"TypeName"
:rules=
"[val => !!val || '请填写招聘类型']"
/>
<div
class=
"col-6 q-pb-lg"
>
<q-uploader
:style=
"
{ backgroundImage: 'url(' + objOption.ImgCover + ')' }"
style="width:auto;height:200px;background-repeat:no-repeat;background-size:cover;" flat hide-upload-btn
max-files="1" label="封面" accept=".jpg, image/*" :factory="uploadFile" auto-upload>
</q-uploader>
</div>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"saveRecruit"
/>
</q-card-actions>
</q-card>
</q-dialog>
</
template
>
<
script
>
import
{
SetWebRecruitmentType
,
GetWebRecruitmentType
}
from
'../../api/system/webkit'
import
{
UploadSelfFile
}
from
"../../api/common/common"
;
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
objOption
:
{
Id
:
0
,
TypeName
:
''
,
ImgCover
:
''
},
optionTitle
:
"新增招聘类型"
,
saveLoading
:
false
,
}
},
mounted
()
{
this
.
initObj
()
},
methods
:
{
//初始化表单
initObj
()
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
Id
>
0
)
{
GetWebRecruitmentType
({
Id
:
this
.
saveObj
.
Id
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
objOption
.
Id
=
res
.
Data
.
Id
;
this
.
objOption
.
TypeName
=
res
.
Data
.
TypeName
;
this
.
objOption
.
ImgCover
=
res
.
Data
.
ImgCover
;
this
.
optionTitle
=
'修改招聘信息'
}
})
}
},
uploadFile
(
files
)
{
UploadSelfFile
(
"course"
,
files
[
0
],
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
objOption
.
ImgCover
=
res
.
FileUrl
;
}
});
},
//关闭弹窗
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
//保存菜单
saveRecruit
()
{
this
.
$refs
.
TypeName
.
validate
();
if
(
!
this
.
$refs
.
TypeName
.
hasError
)
{
this
.
saveLoading
=
true
SetWebRecruitmentType
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
}
}
},
}
</
script
>
src/pages/system/recruitment.vue
0 → 100644
View file @
4a67d288
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
class=
"col-6 q-pr-lg q-pr-lg"
v-model=
"msg.TypeName"
label=
"类型名称"
maxlength=
"20"
@
clear=
"resetSearch"
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"TypeName"
v-model=
"msg.TypeId"
:options=
"typeList"
label=
"招聘类型"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
@
input=
"resetSearch()"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
招聘信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增招聘"
@
click=
"EditComic(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-TypeId=
"props"
>
<q-td>
<span>
{{
getTypeName
(
props
.
row
.
TypeId
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-SalaryType=
"props"
>
<q-td>
<span>
{{
props
.
row
.
SalaryType
==
1
?
'固定薪资'
:
'面议'
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-SalaryStart=
"props"
>
<q-td>
<span>
{{
props
.
row
.
SalaryStart
}}
-
{{
props
.
row
.
SalaryEnd
}}
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditComic(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"delMonthly(props.row)"
/>
</q-td>
</
template
>
</q-table>
<recruit-form
v-if=
"isShowRecruitForm"
:save-obj=
"recruitObjOption"
@
close=
"closeRecruit"
@
success=
"refreshPage"
>
</recruit-form>
</div>
</div>
</template>
<
script
>
import
{
GetWebRecruitmentPage
,
GetWebRecruitmentTypeList
,
RemoveWebRecruitmentStatus
}
from
'../../api/system/webkit'
import
recruitForm
from
'../../components/system/recruit-form'
export
default
{
meta
:
{
title
:
"招聘信息管理"
},
components
:
{
recruitForm
},
data
()
{
return
{
columns
:
[{
name
:
'PositionName'
,
label
:
'岗位名称'
,
field
:
'PositionName'
,
align
:
'left'
},
{
name
:
'TypeId'
,
label
:
'招聘类型'
,
field
:
'TypeId'
,
align
:
'left'
},{
name
:
'SalaryType'
,
label
:
'薪资类型'
,
field
:
'SalaryType'
,
align
:
'left'
},
{
name
:
'SalaryStart'
,
label
:
'薪资范围'
,
field
:
'SalaryStart'
,
align
:
'left'
},
{
name
:
'SalaryNum'
,
label
:
'多少薪'
,
field
:
'SalaryNum'
,
align
:
'left'
},
{
name
:
'Experience'
,
label
:
'工作经验'
,
field
:
'Experience'
,
align
:
'left'
},
{
name
:
'Education'
,
label
:
'学历'
,
field
:
'Education'
,
align
:
'left'
},
{
name
:
'WorkPlace'
,
label
:
'工作地点'
,
field
:
'WorkPlace'
,
align
:
'left'
},
{
name
:
'PublishTimeStr'
,
label
:
'更新时间'
,
field
:
'PublishTimeStr'
,
align
:
'left'
},
{
name
:
'PositionDesc'
,
label
:
'岗位描述'
,
field
:
'PositionDesc'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'MenuId'
}],
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
PositionName
:
''
,
//岗位名称
TypeId
:
0
//招聘类型
},
pageCount
:
0
,
isShowRecruitForm
:
false
,
recruitObjOption
:
null
,
typeList
:
[]
//类型下拉
}
},
mounted
()
{
this
.
getTypeList
();
this
.
getList
()
},
methods
:
{
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
//获取招聘类型下拉数据
getTypeList
()
{
let
msg
=
{
TypeName
:
''
}
GetWebRecruitmentTypeList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
typeList
=
res
.
Data
;
let
obj
=
{
Id
:
0
,
TypeName
:
'不限'
}
this
.
typeList
.
unshift
(
obj
);
}
}).
catch
(()
=>
{})
},
getTypeName
(
Id
)
{
let
str
=
''
;
this
.
typeList
.
forEach
(
x
=>
{
if
(
x
.
Id
==
Id
)
{
str
=
x
.
TypeName
;
}
})
return
str
;
},
//获取菜单分页列表
getList
()
{
this
.
loading
=
true
;
GetWebRecruitmentPage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
this
.
data
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
//刷新页面
refreshPage
()
{
if
(
!
this
.
recruitObjOption
)
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
TypeName
=
""
;
}
this
.
getList
()
},
//新增修改菜单
EditComic
(
obj
)
{
if
(
obj
)
{
this
.
recruitObjOption
=
obj
}
else
{
this
.
recruitObjOption
=
null
}
this
.
isShowRecruitForm
=
true
},
//关闭弹窗
closeRecruit
()
{
this
.
isShowRecruitForm
=
false
},
//删除
delMonthly
(
obj
)
{
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
let
delMsg
=
{
Id
:
obj
.
Id
,
Status
:
1
}
RemoveWebRecruitmentStatus
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
this
.
getList
();
}
})
})
}
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
src/pages/system/recruitmentType.vue
0 → 100644
View file @
4a67d288
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
class=
"col-6 q-pr-lg q-pr-lg"
v-model=
"msg.TypeName"
label=
"类型名称"
maxlength=
"20"
@
clear=
"resetSearch"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
招聘类型信息
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增类型"
@
click=
"EditComic(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-ImgCover=
"props"
>
<q-td>
<img
:src=
"props.row.ImgCover"
style=
"width:50px;"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditComic(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"delMonthly(props.row)"
/>
</q-td>
</
template
>
</q-table>
<recruittype-form
v-if=
"isShowRecruitForm"
:save-obj=
"recruitObjOption"
@
close=
"closeRecruit"
@
success=
"refreshPage"
>
</recruittype-form>
</div>
</div>
</template>
<
script
>
import
{
GetWebRecruitmentTypePage
,
RemoveWebRecruitmentTypeStatus
}
from
'../../api/system/webkit'
import
recruittypeForm
from
'../../components/system/recruittype-form'
export
default
{
meta
:
{
title
:
"招聘类型管理"
},
components
:
{
recruittypeForm
},
data
()
{
return
{
columns
:
[{
name
:
'TypeName'
,
label
:
'类型名称'
,
field
:
'TypeName'
,
align
:
'left'
},{
name
:
'ImgCover'
,
label
:
'封面图'
,
field
:
'ImgCover'
,
align
:
'left'
},{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'MenuId'
}],
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
TypeName
:
''
},
pageCount
:
0
,
isShowRecruitForm
:
false
,
recruitObjOption
:
null
,
}
},
mounted
()
{
this
.
getList
()
},
methods
:
{
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
//获取菜单分页列表
getList
()
{
this
.
loading
=
true
;
GetWebRecruitmentTypePage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
this
.
data
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
//刷新页面
refreshPage
()
{
if
(
!
this
.
recruitObjOption
)
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
TypeName
=
""
;
}
this
.
getList
()
},
//新增修改菜单
EditComic
(
obj
)
{
if
(
obj
)
{
this
.
recruitObjOption
=
obj
}
else
{
this
.
recruitObjOption
=
null
}
this
.
isShowRecruitForm
=
true
},
//关闭弹窗
closeRecruit
()
{
this
.
isShowRecruitForm
=
false
},
//删除
delMonthly
(
obj
)
{
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
let
delMsg
=
{
Id
:
obj
.
Id
,
Status
:
1
}
RemoveWebRecruitmentTypeStatus
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
this
.
getList
();
}
})
})
}
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
src/router/routes.js
View file @
4a67d288
...
@@ -137,6 +137,16 @@ const routes = [{
...
@@ -137,6 +137,16 @@ const routes = [{
component
:
()
=>
component
:
()
=>
import
(
"pages/system/monthlyManage.vue"
)
import
(
"pages/system/monthlyManage.vue"
)
},
},
{
path
:
"/system/recruitment"
,
// 招聘管理
component
:
()
=>
import
(
"pages/system/recruitment.vue"
)
},
{
path
:
"/system/recruitmentType"
,
//招聘类型
component
:
()
=>
import
(
"pages/system/recruitmentType.vue"
)
},
{
{
path
:
"/course/catagory"
,
//课程分类
path
:
"/course/catagory"
,
//课程分类
component
:
()
=>
component
:
()
=>
...
...
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