Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jy_jfb_vue
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
jy_jfb_vue
Commits
9d4f42d8
提交
9d4f42d8
authored
9月 22, 2025
作者:
赵世杰
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1
上级
f6fe7994
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
120 行增加
和
43 行删除
+120
-43
personnel.js
src/api/personnel.js
+22
-0
element-ui.scss
src/assets/styles/element-ui.scss
+1
-1
index.js
src/router/index.js
+14
-14
index.vue
src/views/enterprise/index.vue
+4
-9
add.vue
src/views/recruit/add.vue
+14
-13
index.vue
src/views/registration/index.vue
+63
-4
vite.config.js
vite.config.js
+2
-2
没有找到文件。
src/api/personnel.js
浏览文件 @
9d4f42d8
...
@@ -22,3 +22,24 @@ export function signRecordList(query) {
...
@@ -22,3 +22,24 @@ export function signRecordList(query) {
params
:
query
params
:
query
})
})
}
}
export
function
objectiveIndustry
(
query
)
{
return
request
({
url
:
'/objective/l'
,
method
:
'get'
,
params
:
query
})
}
export
function
personEducational
(
query
)
{
return
request
({
url
:
'/personEducational/l'
,
method
:
'get'
,
params
:
query
})
}
export
function
workExperienceList
(
query
)
{
return
request
({
url
:
'/workExperience/l'
,
method
:
'get'
,
params
:
query
})
}
\ No newline at end of file
src/assets/styles/element-ui.scss
浏览文件 @
9d4f42d8
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
position
:
relative
;
position
:
relative
;
margin
:
0
auto
;
margin
:
0
auto
;
.el-dialog__body
{
.el-dialog__body
{
max-height
:
45
0px
;
max-height
:
60
0px
;
overflow
:
auto
;
overflow
:
auto
;
}
}
}
}
...
...
src/router/index.js
浏览文件 @
9d4f42d8
...
@@ -77,7 +77,7 @@ export const constantRoutes = [
...
@@ -77,7 +77,7 @@ export const constantRoutes = [
path
:
''
,
path
:
''
,
component
:
()
=>
import
(
'@/views/personnel/index'
),
component
:
()
=>
import
(
'@/views/personnel/index'
),
name
:
''
,
name
:
''
,
meta
:
{
title
:
'
用户注册
'
,
icon
:
'dashboard'
}
meta
:
{
title
:
'
注册用户
'
,
icon
:
'dashboard'
}
},
},
]
]
},
},
...
@@ -94,19 +94,19 @@ export const constantRoutes = [
...
@@ -94,19 +94,19 @@ export const constantRoutes = [
},
},
]
]
},
},
{
//
{
path
:
'/industry'
,
//
path: '/industry',
component
:
Layout
,
//
component: Layout,
redirect
:
'/industry'
,
//
redirect: '/industry',
children
:
[
//
children: [
{
//
{
path
:
''
,
//
path: '',
component
:
()
=>
import
(
'@/views/industry/index'
),
//
component: () => import('@/views/industry/index'),
name
:
''
,
//
name: '',
meta
:
{
title
:
'职位类型管理'
,
icon
:
'dashboard'
}
//
meta: { title: '职位类型管理', icon: 'dashboard' }
},
//
},
]
//
]
},
//
},
{
{
path
:
'/account'
,
path
:
'/account'
,
component
:
Layout
,
component
:
Layout
,
...
...
src/views/enterprise/index.vue
浏览文件 @
9d4f42d8
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container
enterprise
"
>
<el-form
:model=
"queryParams"
ref=
"queryRef"
:inline=
"true"
>
<el-form
:model=
"queryParams"
ref=
"queryRef"
:inline=
"true"
>
<el-form-item
label=
"企业名称"
>
<el-form-item
label=
"企业名称"
>
<el-input
placeholder=
"请输入"
v-model=
"queryParams.name"
/>
<el-input
placeholder=
"请输入"
v-model=
"queryParams.name"
/>
...
@@ -56,7 +56,7 @@
...
@@ -56,7 +56,7 @@
<pagination
v-show=
"total > 0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
<pagination
v-show=
"total > 0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 添加或修改账号问答框 -->
<!-- 添加或修改账号问答框 -->
<el-dialog
title=
"新增企业"
v-model=
"open"
width=
"4
40px"
append-to-body
>
<el-dialog
title=
"新增企业"
v-model=
"open"
width=
"4
80px"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
label-width=
"100px"
style=
"padding-right: 15px;"
ref=
"addRef"
:model=
"openForm"
:rules=
"rules"
>
<el-form
label-width=
"100px"
style=
"padding-right: 15px;"
ref=
"addRef"
:model=
"openForm"
:rules=
"rules"
>
<el-form-item
label=
"企业名称"
prop=
"name"
>
<el-form-item
label=
"企业名称"
prop=
"name"
>
<el-input
v-model=
"openForm.name"
placeholder=
"请输入"
/>
<el-input
v-model=
"openForm.name"
placeholder=
"请输入"
/>
...
@@ -93,8 +93,8 @@
...
@@ -93,8 +93,8 @@
</el-form>
</el-form>
<
template
#
footer
>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<div
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submit"
>
提 交
</el-button>
<el-button
@
click=
"open = false"
>
取 消
</el-button>
<el-button
@
click=
"open = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submit"
>
提 交
</el-button>
</div>
</div>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
...
@@ -190,8 +190,3 @@ function del(row) {
...
@@ -190,8 +190,3 @@ function del(row) {
}
}
getList
();
getList
();
</
script
>
</
script
>
\ No newline at end of file
<
style
lang=
"scss"
scoped
>
.el-dialog
.el-dialog__body
{
max-height
:
650px
;
}
</
style
>
\ No newline at end of file
src/views/recruit/add.vue
浏览文件 @
9d4f42d8
<
template
>
<
template
>
<div
class=
"recruitAdd"
>
<div
class=
"recruitAdd"
>
<el-dialog
:title=
"form.id ? '编辑岗位信息' : '岗位发布'"
v-model=
"dialogShow"
width=
"
500px"
@
open=
"dialogOpen"
@
close=
"dialogClo
se"
>
<el-dialog
:title=
"form.id ? '编辑岗位信息' : '岗位发布'"
v-model=
"dialogShow"
width=
"
1200px"
@
open=
"dialogOpen"
@
close=
"dialogClose"
:close-on-click-modal=
"fal
se"
>
<el-form
:model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"padding-right: 40px;"
ref=
"addRef"
>
<el-form
:model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"padding-right: 40px;"
ref=
"addRef"
>
<el-form-item
label=
"招聘企业"
prop=
"orgId"
>
<el-form-item
label=
"招聘企业"
prop=
"orgId"
>
<el-select
<el-select
...
@@ -147,15 +147,7 @@
...
@@ -147,15 +147,7 @@
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"绩效奖金"
prop=
"bonus"
>
<el-form-item
label=
"绩效奖金"
prop=
"bonus"
>
<el-input-number
<el-input
v-model=
"form.bonus"
placeholder=
"请输入"
/>
v-model=
"form.bonus"
:step=
"0.01"
placeholder=
"请输入"
step-strictly
:min=
"0"
:controls=
"false"
style=
"width: 100%;"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"地址"
prop=
"area"
>
<el-form-item
label=
"地址"
prop=
"area"
>
<el-cascader
<el-cascader
...
@@ -166,11 +158,13 @@
...
@@ -166,11 +158,13 @@
:props="{ value: 'label' }"
:props="{ value: 'label' }"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item>
</el-form-item>
<el-form-item
label=
"详细地址"
prop=
"address"
>
<el-form-item
label=
"详细地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
placeholder=
"请输入"
type=
"textarea"
rows=
"
3
"
/>
<el-input
v-model=
"form.address"
placeholder=
"请输入"
type=
"textarea"
rows=
"
6
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"职位描述"
prop=
"details"
>
<el-form-item
label=
"职位描述"
prop=
"details"
>
<el-input
type=
"textarea"
v-model=
"form.details"
rows=
"
3
"
placeholder=
"请输入"
/>
<el-input
type=
"textarea"
v-model=
"form.details"
rows=
"
6
"
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<template
#
footer
>
<template
#
footer
>
...
@@ -205,7 +199,6 @@ const rules = ref({
...
@@ -205,7 +199,6 @@ const rules = ref({
time
:
[{
required
:
true
,
message
:
"请选择招聘时间"
,
trigger
:
"blur"
}],
time
:
[{
required
:
true
,
message
:
"请选择招聘时间"
,
trigger
:
"blur"
}],
times
:
[{
required
:
true
,
message
:
"请输入招聘人数"
,
trigger
:
"blur"
}],
times
:
[{
required
:
true
,
message
:
"请输入招聘人数"
,
trigger
:
"blur"
}],
salaryMin
:
[{
required
:
true
,
message
:
"请输入最低工资"
,
trigger
:
"blur"
}],
salaryMin
:
[{
required
:
true
,
message
:
"请输入最低工资"
,
trigger
:
"blur"
}],
bonus
:
[{
required
:
true
,
message
:
"请输入绩效奖金"
,
trigger
:
"blur"
}],
area
:
[{
required
:
true
,
message
:
"请选择地址"
,
trigger
:
"blur"
}],
area
:
[{
required
:
true
,
message
:
"请选择地址"
,
trigger
:
"blur"
}],
address
:
[{
required
:
true
,
message
:
"请输入详细地址"
,
trigger
:
"blur"
}],
address
:
[{
required
:
true
,
message
:
"请输入详细地址"
,
trigger
:
"blur"
}],
industryId
:
[{
required
:
true
,
message
:
"请选择职位类型"
,
trigger
:
"blur"
}],
industryId
:
[{
required
:
true
,
message
:
"请选择职位类型"
,
trigger
:
"blur"
}],
...
@@ -352,6 +345,14 @@ function submit() {
...
@@ -352,6 +345,14 @@ function submit() {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.recruitAdd
{
.recruitAdd
{
.el-form
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
.el-form-item
{
width
:
48%
;
}
}
.el-input-number
{
.el-input-number
{
width
:
100%
;
width
:
100%
;
.el-input__wrapper
{
.el-input__wrapper
{
...
...
src/views/registration/index.vue
浏览文件 @
9d4f42d8
...
@@ -39,29 +39,88 @@
...
@@ -39,29 +39,88 @@
{{
row
.
person
&&
row
.
person
.
idNo
}}
{{
row
.
person
&&
row
.
person
.
idNo
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<
!-- <
el-table-column label="操作" width="160" align="center">
<el-table-column
label=
"操作"
width=
"160"
align=
"center"
>
<
template
#
default=
"{row}"
>
<
template
#
default=
"{row}"
>
<el-button link type="primary" icon="
Delete" @click="del(row)">删除
</el-button>
<el-button
link
type=
"primary"
icon=
"
View"
@
click=
"look(row)"
>
简历查看
</el-button>
</
template
>
</
template
>
</el-table-column>
-->
</el-table-column>
</el-table>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
<pagination
v-show=
"total > 0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<el-dialog
title=
"简历"
v-model=
"lookShow"
width=
"1000px"
append-to-body
:close-on-click-modal=
"false"
>
<el-descriptions
title=
"基本信息"
>
<el-descriptions-item
label=
"姓名"
>
{{ lookInfo.userInfo.name }}
</el-descriptions-item>
<el-descriptions-item
label=
"性别"
>
{{ lookInfo.userInfo.sex ? '男' : '女' }}
</el-descriptions-item>
<el-descriptions-item
label=
"手机号码"
>
{{ lookInfo.userInfo.phoneNumber }}
</el-descriptions-item>
<el-descriptions-item
label=
"身份证号"
>
{{ lookInfo.userInfo.idNo }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:title=
"`求职意向${index + 1}`"
v-for=
"(item,index) in lookInfo.careerObjective"
>
<el-descriptions-item
label=
"期望职位"
>
{{ item.industryName }}
</el-descriptions-item>
<el-descriptions-item
label=
"工作城市"
>
{{ item.province }}{{ item.city }}{{ item.region }}
</el-descriptions-item>
<el-descriptions-item
label=
"薪资要求"
>
{{ item.salaryMin }}-{{ item.salaryMax }}
</el-descriptions-item>
<el-descriptions-item
label=
"工作性质"
>
{{ item.workType }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:title=
"`工作经历${index + 1}`"
v-for=
"(item,index) in lookInfo.workExperience"
>
<el-descriptions-item
label=
"公司名称"
>
{{ item.orgName }}
</el-descriptions-item>
<el-descriptions-item
label=
"职位名称"
>
{{ item.job }}
</el-descriptions-item>
<el-descriptions-item
label=
"在职时间"
>
{{ item.startTime }} ~ {{ item.endTime }}
</el-descriptions-item>
<el-descriptions-item
label=
"所属行业"
>
{{ item.industryName }}
</el-descriptions-item>
<el-descriptions-item
label=
"月薪"
>
{{ item.money }}
</el-descriptions-item>
<el-descriptions-item
label=
"工作描述"
>
{{ item.descr }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:title=
"`教育经历${index + 1}`"
v-for=
"(item,index) in lookInfo.educationalBackground"
>
<el-descriptions-item
label=
"最高学历"
>
{{ item.qualification }}
</el-descriptions-item>
<el-descriptions-item
label=
"学校名称"
>
{{ item.school }}
</el-descriptions-item>
<el-descriptions-item
label=
"所学专业"
>
{{ item.major }}
</el-descriptions-item>
<el-descriptions-item
label=
"在校时间"
>
{{ item.startTime }} ~ {{ item.endTime }}
</el-descriptions-item>
</el-descriptions>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"lookShow = false"
>
关 闭
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
signRecordList
,
personDel
}
from
"@/api/personnel"
;
import
{
signRecordList
,
workExperienceList
,
personEducational
,
objectiveIndustry
}
from
"@/api/personnel"
;
import
{
ref
}
from
"vue"
;
import
{
ref
}
from
"vue"
;
const
{
proxy
}
=
getCurrentInstance
();
const
{
proxy
}
=
getCurrentInstance
();
const
list
=
ref
([]);
const
list
=
ref
([]);
const
loading
=
ref
(
false
);
const
loading
=
ref
(
false
);
const
total
=
ref
(
0
);
const
total
=
ref
(
0
);
const
lookInfo
=
ref
({
userInfo
:
{},
// 基本信息
careerObjective
:
[],
// 求职意向
workExperience
:
[],
// 工作经历
educationalBackground
:
[],
// 教育经历
});
const
lookShow
=
ref
(
false
);
const
queryParams
=
ref
({
const
queryParams
=
ref
({
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
10
,
})
})
function
look
(
row
)
{
lookShow
.
value
=
true
lookInfo
.
value
=
{
userInfo
:
row
.
person
,
careerObjective
:
[],
workExperience
:
[],
educationalBackground
:
[],
}
workExperienceList
({
personId
:
row
.
person
.
id
}).
then
(
res
=>
{
lookInfo
.
value
.
workExperience
=
res
.
data
.
list
})
personEducational
({
personId
:
row
.
person
.
id
}).
then
(
res
=>
{
lookInfo
.
value
.
educationalBackground
=
res
.
data
.
list
})
objectiveIndustry
({
personId
:
row
.
person
.
id
}).
then
(
res
=>
{
lookInfo
.
value
.
careerObjective
=
res
.
data
.
list
})
}
/** 查询列表 */
/** 查询列表 */
function
getList
()
{
function
getList
()
{
const
form
=
{
...
queryParams
.
value
}
const
form
=
{
...
queryParams
.
value
}
...
...
vite.config.js
浏览文件 @
9d4f42d8
...
@@ -30,8 +30,8 @@ export default defineConfig(({ mode, command }) => {
...
@@ -30,8 +30,8 @@ export default defineConfig(({ mode, command }) => {
open
:
true
,
open
:
true
,
proxy
:
{
proxy
:
{
'/jfb-recruit'
:
{
'/jfb-recruit'
:
{
target
:
'http://192.168.0.6:8000'
,
//
target: 'http://192.168.0.6:8000',
//
target: 'https://jyzp.365jft.com/jfb-recruit',
target
:
'https://jyzp.365jft.com/jfb-recruit'
,
changeOrigin
:
true
,
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
jfb-recruit/
,
''
)
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
jfb-recruit/
,
''
)
},
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论