Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
XBPX-ZP
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
刘旭
XBPX-ZP
Commits
6f0bba7e
提交
6f0bba7e
authored
11月 25, 2023
作者:
刘旭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新ui
上级
760da05b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
40 个修改的文件
包含
1142 行增加
和
211 行删除
+1142
-211
img.rar
src/assets/img.rar
+0
-0
Frame690(1).png
src/assets/img/Frame690(1).png
+0
-0
Frame690(2).png
src/assets/img/Frame690(2).png
+0
-0
Frame690(3).png
src/assets/img/Frame690(3).png
+0
-0
Frame690(4).png
src/assets/img/Frame690(4).png
+0
-0
Frame690(5).png
src/assets/img/Frame690(5).png
+0
-0
Frame690(6).png
src/assets/img/Frame690(6).png
+0
-0
Frame690(7).png
src/assets/img/Frame690(7).png
+0
-0
Frame690.png
src/assets/img/Frame690.png
+0
-0
policy.vue
src/components/policy.vue
+13
-3
search.vue
src/components/search.vue
+16
-5
index.ts
src/routers/index.ts
+12
-0
skillTraining.ts
src/services/api/skillTraining.ts
+7
-0
specialRecruitment.ts
src/services/api/specialRecruitment.ts
+9
-0
jobDetails.ts
src/stores/modules/jobDetails.ts
+5
-4
common.scss
src/styles/common.scss
+5
-0
index.vue
src/views/collegeStudents/index.vue
+2
-2
flexible.vue
src/views/flexibleEmploym/components/flexible.vue
+12
-6
details.vue
src/views/flexibleEmploym/details.vue
+176
-0
index.vue
src/views/flexibleEmploym/index.vue
+22
-18
index.ts
src/views/home/index.ts
+0
-19
index.vue
src/views/home/index.vue
+8
-2
index.vue
src/views/policy/index.vue
+19
-2
addAdministrator.vue
src/views/recruitmentManagement/addAdministrator.vue
+33
-0
position.vue
src/views/recruitmentManagement/components/position.vue
+119
-0
resume.vue
src/views/recruitmentManagement/components/resume.vue
+213
-0
talent.vue
src/views/recruitmentManagement/components/talent.vue
+159
-0
index.ts
src/views/recruitmentManagement/config/index.ts
+4
-6
editCompany.vue
src/views/recruitmentManagement/editCompany.vue
+98
-0
enterpriseRecruitment.vue
src/views/recruitmentManagement/enterpriseRecruitment.vue
+0
-0
index.vue
src/views/recruitmentManagement/index.vue
+3
-1
addAdministrator.scss
src/views/recruitmentManagement/style/addAdministrator.scss
+42
-0
editCompany.scss
src/views/recruitmentManagement/style/editCompany.scss
+76
-0
enterprise.scss
src/views/recruitmentManagement/style/enterprise.scss
+38
-128
index.scss
src/views/skillTraining/index.scss
+5
-0
index.vue
src/views/skillTraining/index.vue
+9
-7
index.scss
src/views/specialRecruitment/index.scss
+1
-0
index.vue
src/views/specialRecruitment/index.vue
+25
-7
index.vue
src/views/streetOfficeSpecialTopic/index.vue
+1
-1
components.d.ts
types/components.d.ts
+10
-0
没有找到文件。
src/assets/img.rar
deleted
100644 → 0
浏览文件 @
760da05b
File deleted
src/assets/img/Frame690(1).png
deleted
100644 → 0
浏览文件 @
760da05b
64.5 KB
src/assets/img/Frame690(2).png
deleted
100644 → 0
浏览文件 @
760da05b
79.7 KB
src/assets/img/Frame690(3).png
deleted
100644 → 0
浏览文件 @
760da05b
77.7 KB
src/assets/img/Frame690(4).png
deleted
100644 → 0
浏览文件 @
760da05b
70.6 KB
src/assets/img/Frame690(5).png
deleted
100644 → 0
浏览文件 @
760da05b
88.9 KB
src/assets/img/Frame690(6).png
deleted
100644 → 0
浏览文件 @
760da05b
87.5 KB
src/assets/img/Frame690(7).png
deleted
100644 → 0
浏览文件 @
760da05b
81.1 KB
src/assets/img/Frame690.png
deleted
100644 → 0
浏览文件 @
760da05b
97.4 KB
src/components/policy.vue
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"policy flx-column-center-between"
>
<div
class=
"policy-top"
>
{{
title
}}
</div>
<div
class=
"policy-content card"
>
<div
v-for=
"(item, index) in list"
:key=
"index"
class=
"policy-item"
>
<div
class=
"policy-content card"
:style=
"
{ minHeight: minHeight + 'px' }">
<div
v-for=
"(item, index) in list"
:key=
"index"
class=
"policy-item"
@
click=
"handleChange(item)"
>
<span
class=
"poliy-item-order"
:class=
"index > 2 ? 'poliy-item-postorder' : ''"
>
{{
index
+
1
}}
</span>
...
...
@@ -35,6 +40,12 @@ defineProps({
default
:
200
}
})
const
emits
=
defineEmits
([
'change'
])
const
handleChange
=
(
row
:
any
)
=>
{
emits
(
'change'
,
row
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
@@ -51,7 +62,6 @@ defineProps({
}
.policy-content
{
width
:
100%
;
min-height
:
200px
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
start
;
...
...
src/components/search.vue
浏览文件 @
6f0bba7e
...
...
@@ -8,9 +8,12 @@
>
<template
#
prefix
>
<el-select
v-model=
"selectValue"
placeholder=
""
>
<el-option
label=
"找工作"
value=
"1"
/>
<el-option
label=
"找企业"
value=
"2"
/>
<el-option
label=
"找人才"
value=
"3"
/>
<el-option
v-for=
"(item, index) in selectOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</
template
>
<
template
#
suffix
>
...
...
@@ -25,11 +28,19 @@ defineProps({
placeholder
:
{
type
:
String
,
default
:
'请输入搜索关键字'
}
},
selectOptions
:
{
type
:
Array
,
default
:
()
=>
[
{
label
:
'找工作'
,
value
:
1
},
{
label
:
'找企业'
,
value
:
2
},
{
label
:
'找人才'
,
value
:
3
}
]
}
as
any
})
const
searchValue
=
ref
()
const
selectValue
=
ref
(
'1'
)
const
selectValue
=
ref
(
1
)
const
emits
=
defineEmits
([
'searchChange'
])
const
handleSearch
=
()
=>
{
...
...
src/routers/index.ts
浏览文件 @
6f0bba7e
...
...
@@ -32,6 +32,14 @@ const routes = [
component
:
()
=>
import
(
'@/views/recruitmentManagement/enterpriseRecruitment.vue'
)
},
{
path
:
'/recruitmentManagement/editCompany'
,
component
:
()
=>
import
(
'@/views/recruitmentManagement/editCompany.vue'
)
},
{
path
:
'/recruitmentManagement/addAdministrator'
,
component
:
()
=>
import
(
'@/views/recruitmentManagement/addAdministrator.vue'
)
},
{
path
:
'/specialRecruitment'
,
component
:
()
=>
import
(
'@/views/specialRecruitment/index.vue'
)
},
...
...
@@ -90,6 +98,10 @@ const routes = [
{
path
:
'/commonDetail'
,
component
:
()
=>
import
(
'@/components/commonDetail.vue'
)
},
{
path
:
'/jobDetail'
,
component
:
()
=>
import
(
'@/views/flexibleEmploym/details.vue'
)
}
]
},
...
...
src/services/api/skillTraining.ts
浏览文件 @
6f0bba7e
...
...
@@ -8,6 +8,13 @@ export const getSkillTraining = (data: any) => {
)
}
export
const
getSkillTrainingList
=
(
data
:
any
)
=>
{
return
request
.
post
(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeSkillTraining,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc'
,
data
)
}
export
const
getPolicyList
=
(
data
:
any
)
=>
{
return
request
.
post
(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc'
,
...
...
src/services/api/specialRecruitment.ts
0 → 100644
浏览文件 @
6f0bba7e
import
request
from
'@/services'
// 查询
export
const
getSpecialRecruitment
=
(
data
:
any
)
=>
{
return
request
.
post
(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeSubjectRecruit,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc'
,
data
)
}
src/stores/modules/jobDetails.ts
浏览文件 @
6f0bba7e
import
{
defineStore
}
from
'pinia
'
import
piniaPersistConfig
from
'../helper/piniaPersist
'
export
const
use
jobStore
=
defineStore
(
'job
Store'
,
{
export
const
use
JobDetailStore
=
defineStore
(
'jobDetail
Store'
,
{
// 相当于data
state
:
()
=>
{
return
{
jobDetail
:
null
jobDetail
:
{}
as
any
}
},
// 相当于计算属性
...
...
@@ -15,5 +15,6 @@ export const usejobStore = defineStore('jobStore', {
setJobDetail
(
jobDetail
:
any
)
{
this
.
jobDetail
=
jobDetail
}
}
},
persist
:
piniaPersistConfig
(
'globalStore'
)
})
src/styles/common.scss
浏览文件 @
6f0bba7e
...
...
@@ -26,6 +26,11 @@
display
:
flex
;
flex-direction
:
column
;
}
.flx-center-column
{
display
:
flex
;
align-items
:
center
;
flex-direction
:
column
;
}
.flx-column-center-between
{
display
:
flex
;
...
...
src/views/collegeStudents/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -42,7 +42,7 @@
</div>
<div
v-else-if=
"index === 5"
class=
"live-broadcast"
>
<div
v-for=
"col in 6"
:key=
"col"
class=
"live-broadcast-item"
>
<img
src=
"@/assets/img/Frame
690(3)
.png"
height=
"214"
/>
<img
src=
"@/assets/img/Frame
377
.png"
height=
"214"
/>
<p>
有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的
有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的
...
...
@@ -62,7 +62,7 @@
</div>
<div
v-else-if=
"index === 6"
class=
"flx-direction-column"
>
<div
v-for=
"col in 5"
:key=
"col"
class=
"entrepreneurship-item"
>
<img
src=
"@/assets/img/Frame
690(3)
.png"
/>
<img
src=
"@/assets/img/Frame
379
.png"
/>
<div
class=
"entrepreneurship-item-rg"
>
Lorem ipsum dolor sit amet, consectetur adipiscingelit. Aenean euismod bibendum
laoreet. Proin gravidadolor sit amet lacus accumsan et viverra justocommodo. Proin
...
...
src/views/flexibleEmploym/components/flexible.vue
浏览文件 @
6f0bba7e
...
...
@@ -2,12 +2,14 @@
<div
class=
"flexible flx-column-center-between"
>
<div
class=
"flexible-top"
>
{{
title
}}
</div>
<div
class=
"flexible-content card"
>
<div
v-for=
"(item, index) in list"
:key=
"index"
class=
"flexible-item"
>
<span
class=
"poliy-item-order"
:class=
"index > 2 ? 'poliy-item-postorder' : ''"
>
{{
index
+
1
}}
</span>
<el-link>
{{
item
.
FTITLE
}}
</el-link>
<img
v-show=
"index
<
3
"
src=
"@/assets/img/icon-new.png"
width=
"28"
height=
"15"
alt=
""
/>
<div>
<div
v-for=
"(item, index) in list"
:key=
"index"
class=
"flexible-item"
>
<span
class=
"poliy-item-order"
:class=
"index > 2 ? 'poliy-item-postorder' : ''"
>
{{
index
+
1
}}
</span>
<el-link>
{{
item
.
FTITLE
}}
</el-link>
<img
v-show=
"index
<
3
"
src=
"@/assets/img/icon-new.png"
width=
"28"
height=
"15"
alt=
""
/>
</div>
</div>
<div
v-show=
"isMore"
class=
"flexible-footer"
>
查看更多
<el-icon><i-ep-DArrowRight
/></el-icon>
...
...
@@ -55,6 +57,7 @@ defineProps({
color
:
#ffffff
;
}
.flexible-content
{
min-height
:
401px
;
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -62,6 +65,9 @@ defineProps({
padding
:
0
20px
;
box-sizing
:
border-box
;
padding-bottom
:
16px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
.flexible-item
{
display
:
flex
;
...
...
src/views/flexibleEmploym/details.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"container"
>
<div
class=
"details-header"
>
<div
class=
"content"
>
<div>
<div
class=
"details-header-top"
>
<div>
装卸
</div>
<div
class=
"salary-range"
>
{{
detailData
?.
salaryRange
}}
</div>
</div>
<div
class=
"details-header-center"
>
{{
detailData
?.
cityName
}}
/
{{
detailData
?.
workingLife
?
detailData
?.
workingLife
:
'经验不限'
}}
/
{{
detailData
?.
academicRequirement
?
detailData
?.
academicRequirement
:
'学历不限'
}}
</div>
<div
class=
"details-header-bottom"
>
<img
src=
"https://rms.junrunrenli.com/static/img/money02.df9ff2d6.png"
class=
"icon"
/>
推荐金额
<div>
{{
detailData
?.
rewards
}}
元
</div>
</div>
</div>
<div
class=
"submit"
>
<el-button
@
click=
"show = !show"
>
立即投递
</el-button>
<div
v-if=
"show"
class=
"popupbox"
>
<img
src=
"https://rms.junrunrenli.com/static/img/popup02.691d38c2.png"
/>
</div>
</div>
</div>
</div>
<div
class=
"details-content"
>
<div
class=
"content"
>
<div
class=
"title"
>
职位描述:
</div>
<div
class=
"text"
>
{{
detailData
?.
positionDescribe
}}
</div>
<div
class=
"title"
>
工作地点
</div>
<div
class=
"text"
>
<img
:src=
"locationIcon"
class=
"address"
/>
{{
detailData
?.
workingplaceAddress
}}
</div>
<div
class=
"title"
>
公司信息
</div>
<div
class=
"text"
>
<img
:src=
"companyIcon"
class=
"comp"
/>
{{
detailData
?.
customerName
}}
</div>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
import
{
companyIcon
,
locationIcon
}
from
'@/utils/index'
import
{
useJobDetailStore
}
from
'@/stores/modules/jobDetails'
const
globalStore
=
useJobDetailStore
()
const
detailData
=
computed
(()
=>
globalStore
.
getJobDtail
)
const
show
=
ref
(
false
)
</
script
>
<
style
lang=
"scss"
scoped
>
.container
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
box-sizing
:
border-box
;
.details-header
{
background-color
:
#f5f5f5
;
width
:
100%
;
height
:
238px
;
display
:
flex
;
justify-content
:
center
;
.content
{
padding-top
:
40px
;
width
:
1316px
;
display
:
flex
;
justify-content
:
space-between
;
.details-header-top
{
display
:
flex
;
font-size
:
18px
;
color
:
#242424
;
margin-bottom
:
25px
;
align-items
:
flex-end
;
.salary-range
{
font-size
:
16px
;
color
:
#f3911d
;
margin-left
:
20px
;
}
}
.details-header-center
{
color
:
#666
;
font-size
:
15px
;
display
:
inline-block
;
margin-bottom
:
25px
;
}
.details-header-bottom
{
font-size
:
16px
;
display
:
flex
;
align-items
:
flex-end
;
.icon
{
width
:
18px
;
height
:
18px
;
margin-right
:
10px
;
}
div
{
margin-left
:
10px
;
color
:
#f3911d
;
}
}
.submit
{
position
:
relative
;
.el-button
{
width
:
140px
;
height
:
48px
;
line-height
:
48px
;
background-color
:
#f3911d
;
border-radius
:
4px
;
color
:
#fff
;
padding
:
0
;
font-size
:
20px
;
}
.popupbox
{
position
:
absolute
;
z-index
:
20
;
right
:
-5px
;
top
:
50px
;
img
{
height
:
171px
;
width
:
170px
;
}
}
}
}
}
.details-content
{
width
:
100%
;
background-color
:
#ffffff
;
padding-top
:
40px
;
display
:
flex
;
justify-content
:
center
;
.content
{
width
:
1316px
;
.title
{
font-size
:
18px
;
margin-bottom
:
16px
;
color
:
#242424
;
font-weight
:
700
;
}
.text
{
font-size
:
13px
;
color
:
#666
;
margin-bottom
:
30px
;
vertical-align
:
middle
;
display
:
flex
;
align-items
:
center
;
.address
{
width
:
18px
;
height
:
20px
;
display
:
inline-block
;
margin-right
:
10px
;
vertical-align
:
middle
;
padding-bottom
:
2px
;
}
.comp
{
width
:
50px
;
height
:
50px
;
margin-right
:
20px
;
display
:
inline-block
;
vertical-align
:
middle
;
}
}
}
}
}
</
style
>
src/views/flexibleEmploym/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -27,7 +27,12 @@
class=
"hot-position-tab-pane"
>
<div
v-if=
"positionList.length"
class=
"position-list"
>
<div
v-for=
"col in positionList"
:key=
"col.id"
class=
"position-item"
>
<div
v-for=
"col in positionList"
:key=
"col.id"
class=
"position-item"
@
click=
"toJobDetail(col)"
>
<div
class=
"flx-justify-between"
style=
"margin-bottom: 20px"
>
<div
class=
"position-title nowrap-ellipsis"
>
{{ col.postName }}
...
...
@@ -61,8 +66,11 @@
<span>
{{ col.recruitingType }}
</span>
<el-divider
v-show=
"col.recruitingType"
direction=
"vertical"
/>
<span
v-show=
"col.ageRequirement"
>
招聘{{ col.ageRequirement }}人
</span>
<el-divider
v-show=
"col.ageRequirement"
direction=
"vertical"
/>
<span>
餐饮
</span>
<el-divider
v-show=
"col.ageRequirement && col.industryType"
direction=
"vertical"
/>
<span>
{{ col.industryType }}
</span>
</div>
</div>
</div>
...
...
@@ -78,8 +86,11 @@
<
script
setup
lang=
"ts"
>
import
{
baseURL
}
from
'@/services'
import
{
getPositionList
,
getFlexibleEmploym
}
from
'@/services/api/flexibleEmploym'
import
{
useJobDetailStore
}
from
'@/stores/modules/jobDetails'
import
flexible
from
'@/views/flexibleEmploym/components/flexible.vue'
const
jobDetailStore
=
useJobDetailStore
()
const
router
=
useRouter
()
const
tabsList
=
[
{
label
:
'安保'
,
name
:
0
},
{
label
:
'技术'
,
name
:
1
},
...
...
@@ -88,9 +99,10 @@ const tabsList = [
{
label
:
'保洁'
,
name
:
4
},
{
label
:
'快递'
,
name
:
5
},
{
label
:
'促销员'
,
name
:
6
},
{
label
:
'店
名
'
,
name
:
7
},
{
label
:
'店
员
'
,
name
:
7
},
{
label
:
'服务'
,
name
:
8
}
]
const
listQuery
=
reactive
({
obj
:
{
postName
:
tabsList
[
0
].
label
...
...
@@ -113,28 +125,20 @@ const flexibleNameList = [
{
name
:
'新闻'
,
field
:
'XwData'
}
]
const
flexibleList
=
[
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'深圳市创业带动就业补贴办事指南'
},
{
detail
:
'深圳市创业带动就业补贴办事指南'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
},
{
detail
:
'关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知'
}
]
const
handleChange
=
(
name
:
number
)
=>
{
listQuery
.
obj
.
postName
=
tabsList
[
name
].
label
initPosition
()
}
const
toJobDetail
=
(
row
:
any
)
=>
{
jobDetailStore
.
setJobDetail
(
row
)
router
.
push
({
path
:
'jobDetail'
})
}
const
search
=
()
=>
{
initPosition
()
// console.log(searchValue.value)
}
const
initPosition
=
async
()
=>
{
flexibleLoading
.
value
=
true
const
res
:
any
=
await
getPositionList
(
listQuery
)
...
...
src/views/home/index.ts
浏览文件 @
6f0bba7e
import
Frame690
from
'@/assets/img/Frame690.png'
import
Frame691
from
'@/assets/img/Frame690(1).png'
import
Frame692
from
'@/assets/img/Frame690(2).png'
import
Frame693
from
'@/assets/img/Frame690(3).png'
import
Frame694
from
'@/assets/img/Frame690(4).png'
import
Frame695
from
'@/assets/img/Frame690(5).png'
import
Frame696
from
'@/assets/img/Frame690(6).png'
import
Frame697
from
'@/assets/img/Frame690(7).png'
import
gonggao
from
'@/assets/img/icon-gonggao.png'
import
zhengnc
from
'@/assets/img/icon-zhengnc.png'
import
xinwen
from
'@/assets/img/icon-xinwen.png'
...
...
@@ -17,17 +9,6 @@ import tui from '@/assets/img/icon-tui.png'
import
jia
from
'@/assets/img/icon-jia.png'
import
can
from
'@/assets/img/icon-can.png'
export
const
imgList
=
[
{
name
:
'粤海街道专题'
,
url
:
Frame690
},
{
name
:
'南头街道专题'
,
url
:
Frame691
},
{
name
:
'西丽街道专题'
,
url
:
Frame692
},
{
name
:
'沙河街道专题'
,
url
:
Frame693
},
{
name
:
'南山街道专题'
,
url
:
Frame694
},
{
name
:
'蛇口街道专题'
,
url
:
Frame695
},
{
name
:
'招商街道专题 '
,
url
:
Frame696
},
{
name
:
'桃源街道专题 '
,
url
:
Frame697
}
]
export
const
employmentList
=
[
{
name
:
'公告'
,
url
:
gonggao
},
{
name
:
'政策'
,
url
:
zhengnc
},
...
...
src/views/home/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -17,8 +17,8 @@
<div
class=
"home-tp flx-direction-column"
>
<div
class=
"n-title"
>
公共就业服务政策
</div>
<div
class=
"flx-justify-between policy-bottom"
>
<policy
title=
"南山就业政策公告"
:list=
"homeData?.GgData"
/>
<policy
title=
"南山就业活动"
:list=
"homeData?.HdData"
/>
<policy
title=
"南山就业政策公告"
:list=
"homeData?.GgData"
@
change=
"handleChange"
/>
<policy
title=
"南山就业活动"
:list=
"homeData?.HdData"
@
change=
"handleChange"
/>
</div>
</div>
<div
class=
"home-tp"
>
...
...
@@ -111,9 +111,15 @@ import { getHome } from '@/services/api/home'
import
{
employmentList
,
sceneList
}
from
'./index'
import
policy
from
'../../components/policy.vue'
const
router
=
useRouter
()
const
loading
=
ref
(
true
)
const
homeData
=
ref
()
const
handleChange
=
(
row
:
any
)
=>
{
router
.
push
({
path
:
'/commonDetail'
,
query
:
{
FID
:
row
.
FID
,
FormType
:
'B'
,
FTITLE
:
row
.
FTITLE
}
})
}
const
init
=
async
()
=>
{
loading
.
value
=
false
const
res
:
any
=
await
getHome
()
...
...
src/views/policy/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -12,8 +12,20 @@
</
template
>
</el-input>
<div
class=
"flx-justify-between"
style=
"margin-bottom: 64px"
>
<policy
title=
"南山就业政策公告"
:list=
"policyData?.GgData"
is-more
/>
<policy
title=
"南山就业活动"
:list=
"policyData?.HdData"
is-more
/>
<policy
title=
"南山就业政策公告"
:list=
"policyData?.GgData"
is-more
:min-height=
"401"
@
change=
"handleChange"
/>
<policy
title=
"南山就业活动"
:list=
"policyData?.HdData"
is-more
:min-height=
"401"
@
change=
"handleChange"
/>
</div>
</div>
</div>
...
...
@@ -24,6 +36,8 @@ import { baseURL } from '@/services'
import
{
getPolicy
}
from
'@/services/api/policy'
import
policy
from
'@/components/policy.vue'
const
router
=
useRouter
()
const
searchValue
=
ref
()
const
loading
=
ref
(
true
)
const
queryList
=
ref
({
pageIndex
:
1
,
pageSize
:
10
})
...
...
@@ -32,6 +46,9 @@ const policyData: any = ref()
const
search
=
()
=>
{
console
.
log
(
searchValue
.
value
)
}
const
handleChange
=
(
row
:
any
)
=>
{
router
.
push
({
path
:
'/commonDetail'
,
query
:
{
FID
:
row
.
FID
,
FormType
:
'B'
,
FTITLE
:
row
.
FTITLE
}
})
}
const
init
=
async
()
=>
{
const
res
:
any
=
await
getPolicy
(
queryList
.
value
)
...
...
src/views/recruitmentManagement/addAdministrator.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"administrator"
>
<div
class=
"container"
>
<div
class=
"content"
>
<div
class=
"title"
>
添加管理员
</div>
<el-form
:model=
"state.form"
label-width=
"70px"
label-position=
"left"
>
<el-form-item
label=
"姓名:"
>
<span>
货拉拉
</span>
</el-form-item>
<el-form-item
label=
"手机号:"
>
<span>
18000875009
</span>
</el-form-item>
<el-form-item
label=
"职位:"
>
<span>
经理
</span>
</el-form-item>
</el-form>
</div>
<div
class=
"confirm"
>
<span>
确定
</span>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
const
state
=
reactive
({
form
:
{}
as
any
})
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url(./style/addAdministrator.scss)
;
</
style
>
src/views/recruitmentManagement/components/position.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<div
style=
"margin-bottom: 15px"
>
<div
class=
"position-header"
>
<el-button
type=
"primary"
:icon=
"CirclePlusFilled"
>
发布职位
</el-button>
<div
class=
"tag-list"
>
<el-tag
v-for=
"item in positionList"
:key=
"item.type"
:type=
"tagActive === item.name ? '' : 'info'"
@
click=
"tagChange(item)"
>
{{
item
.
name
}}
</el-tag
>
</div>
</div>
<div
class=
"position-list"
>
<div
v-for=
"(item, index) in 6"
:key=
"index"
class=
"position-item flx-justify-between"
>
<div>
<div
class=
"position-title"
>
销售经理
</div>
<div>
<span
class=
"position-label"
>
大专
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"position-label"
>
1-3年
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"position-label"
>
招聘2人
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"position-label"
>
6K-8K.13薪
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"position-label"
>
全职
</span>
</div>
</div>
<div
class=
"options"
>
<span
class=
"open"
><span
class=
"round open-round"
/>
开放中
</span>
<span>
关闭
</span>
<span>
编辑
</span>
<span>
预览
</span>
<span>
删除
</span>
</div>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
import
{
CirclePlusFilled
}
from
'@element-plus/icons-vue'
import
{
positionList
}
from
'../config/index'
const
tagActive
=
ref
(
'全部职位'
)
const
tagChange
=
(
row
:
any
)
=>
{
tagActive
.
value
=
row
.
name
}
</
script
>
<
style
lang=
"scss"
scoped
>
.position-header
{
padding
:
26px
58px
;
background
:
#ffffff
;
border-radius
:
12px
;
margin-bottom
:
16px
;
.tag-list
{
margin-top
:
20px
;
.el-tag
{
cursor
:
pointer
;
margin-right
:
20px
;
}
}
}
.position-list
{
.position-item
{
padding
:
24px
58px
;
background
:
#ffffff
;
border-radius
:
12px
;
margin-bottom
:
16px
;
.position-title
{
font-size
:
18px
;
font-weight
:
500
;
color
:
#222222
;
margin-bottom
:
16px
;
}
.position-label
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#666666
;
}
.options
{
display
:
flex
;
font-size
:
16px
;
font-weight
:
400
;
color
:
#222222
;
span
{
cursor
:
pointer
;
margin-left
:
24px
;
}
.open
{
// background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
// color: #177cfa;
}
.round
{
display
:
inline-block
;
width
:
8px
;
height
:
8px
;
background
:
#666666
;
border-radius
:
50%
;
}
// .open-round {
// background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
// color: #177cfa;
// }
}
}
}
</
style
>
src/views/recruitmentManagement/components/resume.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"resume"
>
<search
style=
"margin-bottom: 24px"
@
search-change=
"searchChange"
/>
<div
class=
"resume-filter"
>
<div
v-for=
"item in list"
:key=
"item.name"
class=
"filter-item"
>
<span
class=
"filter-title"
>
{{
item
.
name
}}
</span>
<span
class=
"filter-item-label filter-item-active"
>
不限
</span>
<span
class=
"filter-item-label"
>
不限
</span>
<span
class=
"filter-item-label"
>
不限
</span>
</div>
<div
class=
"clear-filter"
>
<span>
清空筛选
</span>
</div>
</div>
<div
class=
"resume-list"
>
<div
v-for=
"item in 3"
:key=
"item"
class=
"resume-item"
>
<div
style=
"display: flex; padding: 20px 0 20px 40px"
>
<div
class=
"flx-center-column"
>
<el-avatar
src=
"https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
style=
"width: 64px; height: 64px"
/>
<div
class=
"salary"
>
30-35k
</div>
</div>
<div
class=
"user-info"
>
<div
class=
"user-name"
>
陈琳
</div>
<div
style=
"margin: 10px 0"
>
<span>
27岁
</span>
<el-divider
direction=
"vertical"
/>
<span>
女
</span>
<el-divider
direction=
"vertical"
/>
<span>
1年
</span>
<el-divider
direction=
"vertical"
/>
<span>
硕士
</span>
<el-divider
direction=
"vertical"
/>
<span>
离职-随时到岗
</span>
</div>
<div
class=
"flx-justify-between"
style=
"width: 838px"
>
<p>
强目标导向,并基于当下战略目标持续发现问题,定义问题,输出了解增长拉新有效策略解决问题成功的0-1及1-10经历,深入.
强目标导向,并基于当下战略目标持续发现问题,定义问题,输出了解增长拉新有效策略解决问题成功的0-1及1-10经历,深入.
</p>
<div
class=
"flx-direction-column"
style=
"font-size: 14px"
>
<div
class=
"flx-align-center"
style=
"margin-bottom: 6px"
>
<div
style=
"color: #999999"
>
职位:
</div>
<span>
华熙海御
</span>
<div
style=
"
width: 4px;
height: 4px;
background: #cccccc;
border-radius: 50%;
margin: 0 4px;
"
></div>
<span>
运营经理/主管
</span>
</div>
<div
class=
"flx-align-center"
>
<div
style=
"color: #999999"
>
职位:
</div>
<span>
华熙海御
</span>
<div
style=
"
width: 4px;
height: 4px;
background: #cccccc;
border-radius: 50%;
margin: 0 4px;
"
></div>
<spa>
运营经理/主管
</spa>
</div>
</div>
</div>
</div>
</div>
<div
class=
"flx-direction-column"
style=
"padding: 14px 40px 14px 0"
>
<div
class=
"resume-btn flx-center"
>
简历待定
</div>
<div
class=
"resume-btn flx-center"
>
人才库
</div>
<div
class=
"resume-btn flx-center"
>
人才储备
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
import
search
from
'@/components/search.vue'
const
list
=
[
{
name
:
'学历要求'
},
{
name
:
'院校要求'
},
{
name
:
'经验要求'
},
{
name
:
'年龄要求'
}
]
const
searchChange
=
(
searchValue
:
string
)
=>
{}
</
script
>
<
style
lang=
"scss"
scoped
>
.resume
{
display
:
flex
;
align-items
:
center
;
flex-direction
:
column
;
.resume-filter
{
width
:
100%
;
box-sizing
:
border-box
;
background
:
#ffffff
;
border-radius
:
12px
;
padding
:
16px
24px
;
margin-bottom
:
24px
;
.filter-item
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#222222
;
margin-bottom
:
16px
;
display
:
flex
;
flex-wrap
:
wrap
;
align-items
:
center
;
box-sizing
:
border-box
;
.filter-title
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#909090
;
margin-right
:
32px
;
}
.filter-item-label
{
cursor
:
pointer
;
padding
:
4px
12px
;
border-radius
:
4px
;
margin-right
:
16px
;
}
.filter-item-active
{
background
:
#dcecff
;
color
:
#177cfa
;
}
}
.clear-filter
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#666666
;
display
:
flex
;
justify-content
:
flex-end
;
cursor
:
pointer
;
}
}
.resume-list
{
width
:
100%
;
.resume-item
{
margin-bottom
:
16px
;
background
:
#ffffff
;
border-radius
:
12px
;
display
:
flex
;
justify-content
:
space-between
;
box-sizing
:
border-box
;
.salary
{
background
:
#ff3333
;
border-radius
:
28px
;
margin-top
:
7px
;
font-size
:
16px
;
font-weight
:
400
;
color
:
#ffffff
;
padding
:
2px
7px
;
}
.user-info
{
margin-left
:
16px
;
color
:
#222222
;
.user-name
{
font-size
:
18px
;
font-weight
:
400
;
span
{
font-size
:
16px
;
}
}
p
{
width
:
467px
;
font-size
:
16px
;
font-weight
:
400
;
color
:
#666666
;
line-height
:
19px
;
display
:
-
webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
.resume-btn
{
cursor
:
pointer
;
border-radius
:
4px
;
border
:
1px
solid
#177cfa
;
padding
:
5px
17px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#177cfa
;
margin-bottom
:
15px
;
&
:last-child
{
margin-bottom
:
0
;
}
}
}
}
}
</
style
>
src/views/recruitmentManagement/components/talent.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<el-tabs
v-model=
"activeName"
stretch
>
<el-tab-pane
v-for=
"(item, index) in recruitStatus"
:key=
"index"
:label=
"item.statu"
:name=
"item.statu"
>
<div
v-for=
"(col, colIndex) in 4"
:key=
"colIndex"
class=
"tab-item"
>
<div
class=
"tab-item-tp"
>
<div
class=
"tab-item-tp-lf"
>
<el-avatar
:src=
"can"
size=
"large"
/>
<div
class=
"user-info"
>
<div>
龙昌萍
</div>
<div
class=
"flx-align-center"
>
<span>
未知
</span>
<el-divider
direction=
"vertical"
style=
"margin-bottom: 0"
/>
<span>
20岁
</span>
</div>
<div
class=
"flx-align-center"
>
<el-icon><i-ep-OfficeBuilding
/></el-icon>
<span
style=
"margin-left: 3px"
>
在职求职中
</span>
</div>
<div
class=
"flx-align-center"
>
<el-icon><i-ep-OfficeBuilding
/></el-icon>
<span
style=
"margin-left: 3px"
>
2021-09至2024-07
</span>
</div>
</div>
</div>
<div
class=
"tab-item-tp-rg"
>
<div
class=
"flx-align-center"
>
<span
class=
"info-label"
>
简历待定
</span>
<span
class=
"info-label"
>
安排面试
</span>
<el-dropdown>
<span
class=
"info-label"
>
更多
</span>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item>
已面试
</el-dropdown-item>
<el-dropdown-item>
已录用
</el-dropdown-item>
<el-dropdown-item>
已入职
</el-dropdown-item>
<el-dropdown-item>
人才库
</el-dropdown-item>
<el-dropdown-item>
黑名单
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
</div>
<div
class=
"recommend flx-align-center"
>
推荐指数
<el-rate
v-model=
"rateValue"
style=
"margin-left: 8px"
/>
</div>
</div>
</div>
<div
class=
"tab-item-bt flx-justify-between"
>
<div>
<span
class=
"user-label"
>
大专
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"user-label"
>
长江工程职业技术学校
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"user-label"
>
计算机软件技术
</span>
</div>
<div>
<span
class=
"user-label"
>
抖音运营
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"user-label"
>
2023/07/10投递
</span>
<el-divider
direction=
"vertical"
/>
<span
class=
"user-label"
>
3323234
</span>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
</template>
<
script
setup
lang=
"ts"
>
import
{
recruitStatus
}
from
'../config/index'
import
can
from
'@/assets/img/icon-can.png'
const
activeName
=
ref
(
'简历未查看'
)
const
rateValue
=
ref
(
4
)
</
script
>
<
style
lang=
"scss"
scoped
>
.tab-item
{
background
:
#ffffff
;
border-radius
:
12px
;
margin-bottom
:
16px
;
.tab-item-tp
{
padding
:
16px
24px
;
display
:
flex
;
justify-content
:
space-between
;
.tab-item-tp-lf
{
display
:
flex
;
.user-info
{
display
:
flex
;
flex-direction
:
column
;
margin-left
:
8px
;
div
{
margin-bottom
:
12px
;
&
:last-child
{
margin-bottom
:
0
;
}
}
span
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#666666
;
}
}
}
.tab-item-tp-rg
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
.recommend
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#222222
;
}
:deep
(
.el-dropdown
)
{
line-height
:
normal
;
}
}
}
.tab-item-bt
{
background
:
linear-gradient
(
90deg
,
#e3f0ff
0%
,
rgba
(
227
,
240
,
255
,
0
.15
)
100%
);
border-radius
:
0px
0px
12px
12px
;
padding
:
15px
26px
15px
86px
;
.user-label
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#666666
;
}
}
}
:deep
(
.el-tabs__active-bar
)
{
background
:
linear-gradient
(
90deg
,
#a5cdff
0%
,
#177cfa
100%
);
}
.info-label
{
padding
:
4px
8px
;
background
:
#c0dcff
;
border-radius
:
4px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#177cfa
;
margin-right
:
8px
;
cursor
:
pointer
;
&
:focus
{
outline
:
0
!
important
;
}
}
</
style
>
src/views/recruitmentManagement/config/index.ts
浏览文件 @
6f0bba7e
...
...
@@ -173,10 +173,8 @@ export const recruitStatus = [
{
statu
:
'黑名单'
,
value
:
'10份'
}
]
export
const
talentList
=
[
{
name
:
'人才储备'
,
value
:
''
},
{
name
:
'业绩优秀'
,
value
:
''
},
{
name
:
'背景优秀'
,
value
:
''
},
{
name
:
'销售'
,
value
:
''
},
{
name
:
'技术'
,
value
:
''
}
export
const
positionList
=
[
{
name
:
'全部职位'
,
type
:
0
},
{
name
:
'开放中'
,
type
:
1
},
{
name
:
'已关闭'
,
type
:
2
}
]
src/views/recruitmentManagement/editCompany.vue
0 → 100644
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"edit-company"
>
<div
class=
"container"
>
<div
class=
"content"
>
<div
class=
"title"
>
编辑公司信息
</div>
<el-form
:model=
"state.form"
label-width=
"90px"
label-position=
"left"
>
<el-form-item
label=
"公司LOGO"
class=
"flx-align-center"
>
<img
src=
"@/assets/img/icon-chuang.png"
width=
"54"
height=
"54"
/>
</el-form-item>
<el-form-item
label=
"公司名称"
>
<span>
货拉拉科技
</span>
</el-form-item>
<el-form-item
label=
"公司类型"
>
<div
class=
"flx-direction-column"
>
<div
class=
"info-collapse flx-justify-between"
@
click=
"state.companyTypeAcive = !state.companyTypeAcive"
>
<div>
请选择
</div>
<el-icon
v-show=
"state.companyTypeAcive"
><i-ep-CaretTop
/></el-icon>
<el-icon
v-show=
"!state.companyTypeAcive"
><i-ep-CaretBottom
/></el-icon>
</div>
<div
v-show=
"state.companyTypeAcive"
class=
"info-list"
>
<span
v-for=
"(item, index) in 20"
:key=
"index"
>
不限酒水
</span>
</div>
</div>
</el-form-item>
<el-form-item
label=
"公司规模"
>
<div
class=
"flx-direction-column"
>
<div
class=
"info-collapse flx-justify-between"
@
click=
"state.companyTypeAcive = !state.companyTypeAcive"
>
<div>
请选择
</div>
<el-icon
v-show=
"state.companyTypeAcive"
><i-ep-CaretTop
/></el-icon>
<el-icon
v-show=
"!state.companyTypeAcive"
><i-ep-CaretBottom
/></el-icon>
</div>
<div
v-show=
"state.companyTypeAcive"
class=
"info-list"
>
<span
v-for=
"(item, index) in 20"
:key=
"index"
>
不限酒水
</span>
</div>
</div>
</el-form-item>
<el-form-item
label=
"融资情况"
>
<div
class=
"flx-direction-column"
>
<div
class=
"info-collapse flx-justify-between"
@
click=
"state.companyTypeAcive = !state.companyTypeAcive"
>
<div>
请选择
</div>
<el-icon
v-show=
"state.companyTypeAcive"
><i-ep-CaretTop
/></el-icon>
<el-icon
v-show=
"!state.companyTypeAcive"
><i-ep-CaretBottom
/></el-icon>
</div>
<div
v-show=
"state.companyTypeAcive"
class=
"info-list"
>
<span
v-for=
"(item, index) in 20"
:key=
"index"
>
不限酒水
</span>
</div>
</div>
</el-form-item>
<el-form-item
label=
"公司地址"
>
<span>
深圳市南山区南山街道办1109号7-6楼
</span>
</el-form-item>
<el-form-item
label=
"所在街道办"
>
<div
class=
"flx-direction-column"
>
<div
class=
"info-collapse flx-justify-between"
@
click=
"state.companyTypeAcive = !state.companyTypeAcive"
>
<div>
请选择
</div>
<el-icon
v-show=
"state.companyTypeAcive"
><i-ep-CaretTop
/></el-icon>
<el-icon
v-show=
"!state.companyTypeAcive"
><i-ep-CaretBottom
/></el-icon>
</div>
<div
v-show=
"state.companyTypeAcive"
class=
"info-list"
>
<span
v-for=
"(item, index) in 20"
:key=
"index"
>
不限酒水
</span>
</div>
</div>
</el-form-item>
<el-form-item
label=
"公司介绍"
>
<el-input
v-model=
"state.form.desc"
type=
"textarea"
:rows=
"4"
/>
</el-form-item>
</el-form>
</div>
<div
class=
"confirm"
>
<span>
确定
</span>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
const
state
=
reactive
({
form
:
{}
as
any
,
companyTypeAcive
:
false
,
companyType
:
''
})
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url(./style/editCompany.scss)
;
</
style
>
src/views/recruitmentManagement/enterpriseRecruitment.vue
浏览文件 @
6f0bba7e
差异被折叠。
点击展开。
src/views/recruitmentManagement/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -27,7 +27,9 @@
</
template
>
<el-descriptions-item
v-for=
"item1 in 4"
:key=
"item1"
>
<
template
#
default
>
<el-link
:underline=
"false"
href=
"/job"
>
销售业务
</el-link>
<router-link
:to=
"
{ path: '#' }" style="text-decoration: none">
<el-link
:underline=
"false"
>
销售业务
</el-link>
</router-link>
</
template
>
</el-descriptions-item>
</el-descriptions>
...
...
src/views/recruitmentManagement/style/addAdministrator.scss
0 → 100644
浏览文件 @
6f0bba7e
.administrator
{
display
:
flex
;
justify-content
:
center
;
padding
:
24px
0
46px
;
.container
{
width
:
1316px
;
.content
{
padding
:
24px
36px
;
background
:
#ffffff
;
box-shadow
:
0px
1px
25px
0px
rgba
(
0
,
0
,
0
,
0
.05
);
border-radius
:
8px
;
.title
{
font-size
:
24px
;
font-weight
:
500
;
color
:
#177cfa
;
text-align
:
center
;
margin-bottom
:
16px
;
}
}
.confirm
{
display
:
flex
;
justify-content
:
center
;
text-align
:
center
;
margin-bottom
:
20px
;
span
{
display
:
block
;
font-size
:
20px
;
font-weight
:
500
;
color
:
#ffffff
;
margin-top
:
36px
;
width
:
160px
;
height
:
52px
;
line-height
:
52px
;
background
:
linear-gradient
(
90deg
,
#177cfa
0%
,
#177cfa
100%
);
border-radius
:
8px
;
cursor
:
pointer
;
}
}
}
}
src/views/recruitmentManagement/style/editCompany.scss
0 → 100644
浏览文件 @
6f0bba7e
.edit-company
{
display
:
flex
;
justify-content
:
center
;
padding
:
24px
0
46px
;
.container
{
width
:
1316px
;
.content
{
padding
:
24px
36px
;
background
:
#ffffff
;
box-shadow
:
0px
1px
25px
0px
rgba
(
0
,
0
,
0
,
0
.05
);
border-radius
:
8px
;
}
.title
{
font-size
:
24px
;
font-weight
:
500
;
color
:
#177cfa
;
text-align
:
center
;
margin-bottom
:
16px
;
}
.info-collapse
{
cursor
:
pointer
;
padding
:
6px
8px
;
height
:
32px
;
width
:
140px
;
background
:
#dcecff
;
border-radius
:
4px
;
box-sizing
:
border-box
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#177cfa
;
margin-bottom
:
8px
;
}
.info-list
{
display
:
flex
;
flex-wrap
:
wrap
;
margin-bottom
:
8px
;
span
{
cursor
:
pointer
;
display
:
inline-block
;
height
:
20px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#666666
;
margin-bottom
:
8px
;
margin-right
:
16px
;
&
:hover
{
color
:
#177cfa
;
}
}
}
:deep
(
.el-textarea__inner
)
{
background
:
#f8f8f8
;
}
.confirm
{
display
:
flex
;
justify-content
:
center
;
text-align
:
center
;
span
{
display
:
block
;
font-size
:
20px
;
font-weight
:
500
;
color
:
#ffffff
;
margin-top
:
36px
;
width
:
160px
;
height
:
52px
;
line-height
:
52px
;
background
:
linear-gradient
(
90deg
,
#177cfa
0%
,
#177cfa
100%
);
border-radius
:
8px
;
cursor
:
pointer
;
}
}
}
}
src/views/recruitmentManagement/style/enterprise.scss
浏览文件 @
6f0bba7e
...
...
@@ -5,19 +5,12 @@
width
:
1316px
;
padding-top
:
24px
;
.enterprise-header
{
margin-bottom
:
48
px
;
margin-bottom
:
24
px
;
display
:
flex
;
height
:
462px
;
.enterprise-header-lf
{
width
:
869px
;
margin-right
:
24px
;
.el-input
{
height
:
62px
;
margin-bottom
:
24px
;
:deep
(
.el-input__wrapper
)
{
border-radius
:
29px
;
padding
:
0
45px
;
}
}
img
{
border-radius
:
12px
;
display
:
block
;
/* 将图片设置为块级元素 */
...
...
@@ -33,12 +26,44 @@
font-weight
:
500
;
color
:
#ffffff
;
}
.manage-list
{
display
:
flex
;
margin
:
24px
0
;
border
:
1px
solid
#177cfa
;
border-radius
:
8px
;
text-align
:
center
;
background-color
:
#ffffff
;
.manage-item
{
cursor
:
pointer
;
flex
:
0
0
25%
;
height
:
58px
;
line-height
:
58px
;
border-right
:
1px
solid
#177cfa
;
font-size
:
24px
;
font-weight
:
500
;
color
:
#177cfa
;
&
:nth-child
(
1
)
{
border-radius
:
8px
0
0
8px
;
}
&
:nth-child
(
4
)
{
border-radius
:
0
8px
8px
0
;
border-right
:
0
;
}
}
.active
{
background-color
:
#177cfa
;
color
:
#ffffff
;
// border-radius: 8px 0 0 8px;
}
}
}
.enterprise-header-rg
{
flex
:
1
;
background
:
#ffffff
;
border-radius
:
12px
;
padding
:
20px
16px
32px
;
padding
:
20px
16px
;
box-sizing
:
border-box
;
.company-tp
{
display
:
flex
;
img
{
...
...
@@ -62,40 +87,16 @@
}
.company-detail
{
width
:
391px
;
height
:
80
px
;
height
:
243
px
;
font-size
:
12px
;
font-weight
:
400
;
color
:
#666666
;
margin
:
24px
0
20px
;
display
:
-
webkit-box
;
-webkit-line-clamp
:
5
;
-webkit-line-clamp
:
1
5
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
margin-top
:
25px
;
}
.recruit-status
{
margin-bottom
:
12px
;
.status-item
{
&
:nth-child
(
2n
)
{
display
:
flex
;
justify-content
:
flex-end
;
}
.label
{
width
:
70px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#222222
;
text-align
:
justify
;
-moz-text-align-last
:
justify
;
text-align-last
:
justify
;
}
span
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#666666
;
margin-left
:
12px
;
}
}
}
.btn
{
display
:
block
;
...
...
@@ -112,92 +113,6 @@
}
}
}
.talent-list
{
width
:
222px
;
min-height
:
20px
;
background
:
#ffffff
;
box-shadow
:
0px
4px
25px
0px
rgba
(
0
,
0
,
0
,
0
.05
);
margin-right
:
24px
;
border-radius
:
8px
;
.talent-item
{
height
:
40px
;
line-height
:
40px
;
text-align
:
center
;
cursor
:
pointer
;
&
:first-child
{
border-radius
:
8px
8px
0
0
;
}
&
:last-child
{
border-radius
:
0
0
8px
8px
;
}
&
:hover
{
background
:
#f8f8f8
;
}
}
}
.tab-item
{
background
:
#ffffff
;
border-radius
:
12px
;
margin-bottom
:
16px
;
.tab-item-tp
{
padding
:
16px
24px
;
display
:
flex
;
justify-content
:
space-between
;
.tab-item-tp-lf
{
display
:
flex
;
.user-info
{
display
:
flex
;
flex-direction
:
column
;
margin-left
:
8px
;
div
{
margin-bottom
:
12px
;
&
:last-child
{
margin-bottom
:
0
;
}
}
span
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#666666
;
}
}
}
.tab-item-tp-rg
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
.recommend
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#222222
;
}
:deep
(
.el-dropdown
)
{
line-height
:
normal
;
}
}
}
.tab-item-bt
{
background
:
linear-gradient
(
90deg
,
#e3f0ff
0%
,
rgba
(
227
,
240
,
255
,
0
.15
)
100%
);
border-radius
:
0px
0px
12px
12px
;
padding
:
15px
26px
15px
86px
;
.user-label
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#666666
;
}
}
}
:deep
(
.el-tabs__active-bar
)
{
background
:
linear-gradient
(
90deg
,
#a5cdff
0%
,
#177cfa
100%
);
}
}
.info-label
{
padding
:
2px
8px
;
...
...
@@ -207,10 +122,5 @@
font-weight
:
400
;
color
:
#177cfa
;
margin-right
:
8px
;
cursor
:
pointer
;
&
:focus
{
outline
:
0
!
important
;
}
}
}
src/views/skillTraining/index.scss
浏览文件 @
6f0bba7e
...
...
@@ -15,6 +15,7 @@
border
:
1px
solid
#177cfa
;
border-radius
:
8px
;
.train-item
{
cursor
:
pointer
;
flex
:
0
0
20%
;
height
:
58px
;
line-height
:
58px
;
...
...
@@ -25,6 +26,10 @@
&
:nth-child
(
5
)
{
border-right
:
0
;
}
.active
{
background-color
:
#177cfa
;
}
}
}
}
...
...
src/views/skillTraining/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -16,20 +16,22 @@
<
script
setup
lang=
"ts"
>
import
{
baseURL
}
from
'@/services'
import
{
getSkillTraining
}
from
'@/services/api/skillTraining'
import
{
getSkillTraining
,
getSkillTrainingList
}
from
'@/services/api/skillTraining'
import
contentBlock
from
'@/components/contentBlock.vue'
const
loading
=
ref
(
true
)
const
queryList
=
ref
({
pageIndex
:
1
,
pageSize
:
10
})
const
queryList
=
ref
({
pageIndex
:
1
,
pageSize
:
10
,
type
:
'A'
})
const
skillTrainData
:
any
=
ref
()
const
trainList
=
[
{
name
:
'基础安全培训'
},
{
name
:
'专业技能培训'
},
{
name
:
'专业知识培训'
},
{
name
:
'职业发展培训'
},
{
name
:
'团队管理培训'
}
{
name
:
'基础安全培训'
,
type
:
'A'
},
{
name
:
'专业技能培训'
,
type
:
'B'
},
{
name
:
'专业知识培训'
,
type
:
'C'
},
{
name
:
'职业发展培训'
,
type
:
'D'
},
{
name
:
'团队管理培训'
,
type
:
'E'
}
]
const
handleChange
=
(
row
:
any
)
=>
{}
const
init
=
async
()
=>
{
const
res
:
any
=
await
getSkillTraining
(
queryList
.
value
)
if
(
res
.
code
===
200
)
{
...
...
src/views/specialRecruitment/index.scss
浏览文件 @
6f0bba7e
...
...
@@ -62,6 +62,7 @@
}
.special-tag
{
cursor
:
pointer
;
width
:
88px
;
height
:
28px
;
line-height
:
28px
;
...
...
src/views/specialRecruitment/index.vue
浏览文件 @
6f0bba7e
<
template
>
<div
class=
"special-container"
>
<div
v-loading=
"loading"
class=
"special-container"
>
<div
class=
"special-list"
>
<div
v-for=
"(item, index) in
9
"
:key=
"index"
class=
"special-item"
>
<img
src=
"@/assets/img/Frame690(7).png
"
width=
"398"
height=
"280"
/>
<div
class=
"special-title"
>
招商街道海上世界
&
南海意库“三新”专场
</div>
<div
class=
"special-detail"
>
劳务对接,携手并肩
</div>
<div
v-for=
"(item, index) in
specialRecruitmentData
"
:key=
"index"
class=
"special-item"
>
<img
:src=
"baseURL + '/' + item.PICTURE
"
width=
"398"
height=
"280"
/>
<div
class=
"special-title"
>
{{
item
.
FNAME
}}
</div>
<div
class=
"special-detail"
>
{{
item
.
FSUBTITLE
}}
</div>
<div
class=
"flx-justify-between"
>
<span
class=
"special-tag"
>
进入专题
</span>
<span
class=
"special-date"
>
2024.06.07
</span>
<span
class=
"special-date"
>
{{
item
.
FDATE
}}
</span>
</div>
<span
class=
"piece"
>
招聘
</span>
</div>
...
...
@@ -18,7 +18,25 @@
</div>
</
template
>
<
script
setup
lang=
"ts"
></
script
>
<
script
setup
lang=
"ts"
>
import
{
baseURL
}
from
'@/services'
import
{
getSpecialRecruitment
}
from
'@/services/api/specialRecruitment'
const
queryList
=
ref
({
pageIndex
:
1
,
pageSize
:
10
})
const
specialRecruitmentData
=
ref
()
const
loading
=
ref
(
true
)
const
init
=
async
()
=>
{
const
res
:
any
=
await
getSpecialRecruitment
(
queryList
.
value
)
if
(
res
.
code
===
200
)
{
console
.
log
(
res
)
specialRecruitmentData
.
value
=
res
.
data
loading
.
value
=
false
}
}
init
()
</
script
>
<
style
lang=
"scss"
scoped
>
@import
'./index.scss'
;
...
...
src/views/streetOfficeSpecialTopic/index.vue
浏览文件 @
6f0bba7e
...
...
@@ -3,7 +3,7 @@
<div
class=
"container"
>
<div
class=
"street-card"
>
<div
style=
"position: relative"
>
<img
src=
"@/assets/img/Frame
690(1)
.png"
width=
"850"
/>
<img
src=
"@/assets/img/Frame
377
.png"
width=
"850"
/>
<div
class=
"street-card-triangle"
></div>
</div>
<div
class=
"street-card-content flx-center"
>
...
...
types/components.d.ts
浏览文件 @
6f0bba7e
...
...
@@ -15,8 +15,13 @@ declare module 'vue' {
ElBreadcrumbItem
:
typeof
import
(
'element-plus/es'
)[
'ElBreadcrumbItem'
]
ElButton
:
typeof
import
(
'element-plus/es'
)[
'ElButton'
]
ElCheckbox
:
typeof
import
(
'element-plus/es'
)[
'ElCheckbox'
]
ElCheckboxGroup
:
typeof
import
(
'element-plus/es'
)[
'ElCheckboxGroup'
]
ElCol
:
typeof
import
(
'element-plus/es'
)[
'ElCol'
]
ElCollapse
:
typeof
import
(
'element-plus/es'
)[
'ElCollapse'
]
ElCollapseItem
:
typeof
import
(
'element-plus/es'
)[
'ElCollapseItem'
]
ElConfigProvider
:
typeof
import
(
'element-plus/es'
)[
'ElConfigProvider'
]
ElContainer
:
typeof
import
(
'element-plus/es'
)[
'ElContainer'
]
ElDatePicker
:
typeof
import
(
'element-plus/es'
)[
'ElDatePicker'
]
ElDescriptions
:
typeof
import
(
'element-plus/es'
)[
'ElDescriptions'
]
ElDescriptionsItem
:
typeof
import
(
'element-plus/es'
)[
'ElDescriptionsItem'
]
ElDialog
:
typeof
import
(
'element-plus/es'
)[
'ElDialog'
]
...
...
@@ -36,11 +41,16 @@ declare module 'vue' {
ElMenuItem
:
typeof
import
(
'element-plus/es'
)[
'ElMenuItem'
]
ElOption
:
typeof
import
(
'element-plus/es'
)[
'ElOption'
]
ElPagination
:
typeof
import
(
'element-plus/es'
)[
'ElPagination'
]
ElRadio
:
typeof
import
(
'element-plus/es'
)[
'ElRadio'
]
ElRadioGroup
:
typeof
import
(
'element-plus/es'
)[
'ElRadioGroup'
]
ElRate
:
typeof
import
(
'element-plus/es'
)[
'ElRate'
]
ElScrollbar
:
typeof
import
(
'element-plus/es'
)[
'ElScrollbar'
]
ElSelect
:
typeof
import
(
'element-plus/es'
)[
'ElSelect'
]
ElSwitch
:
typeof
import
(
'element-plus/es'
)[
'ElSwitch'
]
ElTabPane
:
typeof
import
(
'element-plus/es'
)[
'ElTabPane'
]
ElTabs
:
typeof
import
(
'element-plus/es'
)[
'ElTabs'
]
ElTag
:
typeof
import
(
'element-plus/es'
)[
'ElTag'
]
ElTimePicker
:
typeof
import
(
'element-plus/es'
)[
'ElTimePicker'
]
IEpArrowRight
:
typeof
import
(
'~icons/ep/arrow-right'
)[
'default'
]
IEpCaretBottom
:
typeof
import
(
'~icons/ep/caret-bottom'
)[
'default'
]
IEpCaretTop
:
typeof
import
(
'~icons/ep/caret-top'
)[
'default'
]
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论