Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jy_jfb_vue
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
jy_jfb_vue
Commits
6f134595
提交
6f134595
authored
1月 15, 2026
作者:
赵世杰
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1
上级
03448a8c
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
489 行增加
和
24 行删除
+489
-24
enterprise.js
src/api/enterprise.js
+9
-0
recruit.js
src/api/recruit.js
+7
-0
index.vue
src/views/enterprise/index.vue
+86
-24
add2.vue
src/views/recruit/add2.vue
+364
-0
index.vue
src/views/recruit/index.vue
+23
-0
没有找到文件。
src/api/enterprise.js
浏览文件 @
6f134595
...
...
@@ -24,3 +24,11 @@ export function orgSave(query) {
data
:
query
})
}
export
function
uploadOrg
(
query
)
{
return
request
({
url
:
'/public/import/recruit/upload/51job/org/json'
,
method
:
'post'
,
data
:
query
})
}
\ No newline at end of file
src/api/recruit.js
浏览文件 @
6f134595
...
...
@@ -24,6 +24,13 @@ export function recruitSave(query) {
data
:
query
})
}
export
function
uploadRecruit
(
query
)
{
return
request
({
url
:
'/public/import/recruit/upload/51job/json'
,
method
:
'post'
,
data
:
query
})
}
// 招聘类型
export
function
recruitTypeAll
(
query
)
{
return
request
({
...
...
src/views/enterprise/index.vue
浏览文件 @
6f134595
...
...
@@ -18,6 +18,14 @@
icon="Plus"
>新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
@
click=
"open2 = true;openForm =
{regionCode: '610100'};"
icon="upload"
>批量上传企业
</el-button>
</el-col>
</el-row>
<el-table
v-loading=
"loading"
:data=
"list"
show-overflow-tooltip
style=
"width: 100%;"
>
<el-table-column
label=
"企业名称"
prop=
"name"
/>
...
...
@@ -57,7 +65,7 @@
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 添加或修改账号问答框 -->
<el-dialog
title=
"新增企业"
v-model=
"open"
width=
"480px"
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"
v-if=
"open"
>
<el-form-item
label=
"企业名称"
prop=
"name"
>
<el-input
v-model=
"openForm.name"
placeholder=
"请输入"
/>
</el-form-item>
...
...
@@ -79,17 +87,6 @@
<el-form-item
label=
"企业介绍"
prop=
"descr"
>
<el-input
v-model=
"openForm.descr"
placeholder=
"请输入"
type=
"textarea"
rows=
"3"
/>
</el-form-item>
<!-- <el-form-item label="企业LOGO" prop="logo">
<div>
<el-button type="primary" @click="$refs.fileInput.click()">上传图片</el-button>
<el-image
style="width: 100px;display: block;margin-top: 10px;"
v-if="openForm.logo"
:src="openForm.logo"
/>
</div>
<input type="file" ref="fileInput" @change="handleFileChange" style="display: none;" accept='image/*' />
</el-form-item> -->
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
...
...
@@ -98,11 +95,47 @@
</div>
</
template
>
</el-dialog>
<!-- 添加或修改账号问答框 -->
<el-dialog
title=
"上传企业"
v-model=
"open2"
width=
"480px"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
label-width=
"100px"
style=
"padding-right: 15px;"
ref=
"addRef"
:model=
"openForm"
:rules=
"rules"
v-if=
"open2"
>
<el-form-item
label=
"行政编码"
prop=
"regionCode"
>
<el-input
v-model=
"openForm.regionCode"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"地址"
prop=
"area"
>
<el-cascader
v-model=
"openForm.area"
:options=
"areaList"
@
change=
"(e)=>{console.log(e)}"
style=
"width: 100%"
:props=
"{ value: 'label' }"
/>
</el-form-item>
<el-form-item
label=
"选择文件"
prop=
"file"
>
<div
style=
"display: flex;justify-content: space-between;align-items: center;width: 100%;"
>
<el-input
readonly
style=
"width: 70%;"
:value=
"openForm.file && openForm.file.name"
/>
<el-button
type=
"primary"
@
click=
"$refs.fileInput.click()"
>
选择文件
</el-button>
<input
type=
"file"
ref=
"fileInput"
@
change=
"handleFileChange"
style=
"display: none;"
accept=
'.txt,.json'
/>
</div>
</el-form-item>
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"open2 = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submit2"
>
提 交
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</template>
<
script
setup
>
import
{
orgList
,
orgDel
,
orgSave
}
from
"@/api/enterprise"
;
import
{
orgList
,
orgDel
,
orgSave
,
uploadOrg
}
from
"@/api/enterprise"
;
import
{
ref
}
from
"vue"
;
import
{
uploadFileToOss
}
from
"@/utils/oss"
;
import
{
areaList
,
getAreaText
}
from
'@/utils/area.js'
...
...
@@ -114,26 +147,25 @@ const queryParams = ref({
pageNum
:
1
,
pageSize
:
10
,
})
const
open2
=
ref
(
false
);
const
open
=
ref
(
false
);
const
openForm
=
ref
({
name
:
''
,
logo
:
''
,
})
const
rules
=
ref
({
name
:
[{
required
:
true
,
message
:
"请输入企业名称"
,
trigger
:
"blur"
}],
regionCode
:
[{
required
:
true
,
message
:
"请输入行政编码"
,
trigger
:
"blur"
}],
area
:
[{
required
:
true
,
message
:
"请选择地址"
,
trigger
:
"blur"
}],
address
:
[{
required
:
true
,
message
:
"请输入详细地址"
,
trigger
:
"blur"
}],
descr
:
[{
required
:
true
,
message
:
"请输入企业介绍"
,
trigger
:
"blur"
}],
logo
:
[{
required
:
true
,
message
:
"请上传logo"
,
trigger
:
"blur"
}]
name
:
[{
required
:
true
,
message
:
"请输入企业名称"
,
trigger
:
[
'blur'
,
'change'
]
}],
regionCode
:
[{
required
:
true
,
message
:
"请输入行政编码"
,
trigger
:[
'blur'
,
'change'
]
}],
area
:
[{
required
:
true
,
message
:
"请选择地址"
,
trigger
:
[
'blur'
,
'change'
]
}],
address
:
[{
required
:
true
,
message
:
"请输入详细地址"
,
trigger
:
[
'blur'
,
'change'
]
}],
descr
:
[{
required
:
true
,
message
:
"请输入企业介绍"
,
trigger
:[
'blur'
,
'change'
]
}],
logo
:
[{
required
:
true
,
message
:
"请上传logo"
,
trigger
:
[
'blur'
,
'change'
]
}],
file
:
[{
required
:
true
,
message
:
"请上传文件"
,
trigger
:
[
'blur'
,
'change'
]
}],
})
// 上传文件
function
handleFileChange
(
e
)
{
if
(
e
.
target
.
files
.
length
>
0
)
{
const
file
=
e
.
target
.
files
[
0
];
uploadFileToOss
(
file
).
then
((
url
)
=>
{
openForm
.
value
.
logo
=
url
});
openForm
.
value
.
file
=
e
.
target
.
files
[
0
];
}
proxy
.
$refs
.
fileInput
.
value
=
null
;
}
...
...
@@ -163,7 +195,37 @@ function submit() {
}
})
}
function
submit2
()
{
proxy
.
$refs
.
addRef
.
validate
(
valid
=>
{
debugger
if
(
valid
){
const
submitForm
=
{...
openForm
.
value
}
submitForm
.
province
=
submitForm
.
area
[
0
]
submitForm
.
city
=
submitForm
.
area
[
1
]
submitForm
.
region
=
submitForm
.
area
[
2
]
delete
submitForm
.
area
uploadOrg
(
setFormData
(
submitForm
)).
then
(
res
=>
{
proxy
.
$modal
.
msgSuccess
(
"操作成功,请等待几分钟后刷新列表查看导入结果"
);
open2
.
value
=
false
;
})
}
})
}
const
setFormData
=
(
data
)
=>
{
const
formData
=
new
FormData
()
const
keys
=
Object
.
keys
(
data
)
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
if
(
data
[
keys
[
i
]]
!=
null
&&
[
keys
[
i
]]
!=
undefined
&&
data
[
keys
[
i
]].
constructor
==
Array
){
// 数组参数转FormData
for
(
let
j
=
0
;
j
<
data
[
keys
[
i
]].
length
;
j
++
)
{
formData
.
append
(
keys
[
i
],
data
[
keys
[
i
]][
j
])
}
}
else
{
formData
.
append
(
keys
[
i
],
data
[
keys
[
i
]])
}
}
return
formData
}
/** 搜索按钮操作 */
function
handleQuery
()
{
queryParams
.
value
.
pageNum
=
1
;
...
...
src/views/recruit/add2.vue
0 → 100644
浏览文件 @
6f134595
<
template
>
<div
class=
"recruitAdd"
>
<el-dialog
title=
"上传岗位"
v-model=
"dialogShow"
width=
"1300px"
@
open=
"dialogOpen"
@
close=
"dialogClose"
:close-on-click-modal=
"false"
>
<el-form
:model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"padding-right: 40px;"
ref=
"addRef"
>
<el-form-item
label=
"职位类型"
prop=
"industry"
>
<el-cascader
v-model=
"form.industry"
:options=
"industryList"
:show-all-levels=
"false"
@
change=
"(e)=>
{console.log(e)}"
style="width: 100%"
:disabled="form.title == '岗位详情'"
:props="{
value: 'name',
label: 'name',
children: 'chilList'
}"
/>
</el-form-item>
<el-form-item
label=
"招聘类型"
prop=
"recruitTypeId"
>
<el-select
v-model=
"form.recruitTypeId"
placeholder=
"请选择"
filterable
style=
"width: 100%"
:disabled=
"form.title == '岗位详情'"
>
<el-option
v-for=
"item in recruitAllList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"学历"
prop=
"qualificationId"
>
<el-select
v-model=
"form.qualificationId"
placeholder=
"请选择"
filterable
style=
"width: 100%"
:disabled=
"form.title == '岗位详情'"
>
<el-option
v-for=
"item in qualificationList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"经验"
prop=
"experienceId"
>
<el-select
v-model=
"form.experienceId"
placeholder=
"请选择"
filterable
style=
"width: 100%"
:disabled=
"form.title == '岗位详情'"
>
<el-option
v-for=
"item in experienceList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"招聘时间"
prop=
"time"
>
<el-date-picker
type=
"daterange"
unlink-panels
range-separator=
"至"
start-placeholder=
"开始时间"
end-placeholder=
"结束时间"
v-model=
"form.time"
value-format=
"YYYYMMDD"
:disabled=
"form.title == '岗位详情'"
/>
</el-form-item>
<el-form-item
label=
"招聘人数"
prop=
"times"
>
<el-input-number
v-model=
"form.times"
step=
"1"
placeholder=
"请输入"
step-strictly
:min=
"1"
:controls=
"false"
style=
"width: 100%;"
:disabled=
"form.title == '岗位详情'"
/>
</el-form-item>
<el-form-item
label=
"薪资待遇"
prop=
"payTimes"
>
<el-select
v-model=
"form.payTimes"
placeholder=
"请选择"
filterable
style=
"width: 100%"
:disabled=
"form.title == '岗位详情'"
>
<el-option
v-for=
"item in payTimeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"地址"
prop=
"area"
>
<el-cascader
v-model=
"form.area"
:options=
"areaList"
@
change=
"(e)=>
{console.log(e)}"
style="width: 100%"
:props="{ value: 'label' }"
:disabled="form.title == '岗位详情'"
/>
</el-form-item>
<el-form-item
label=
"行政编码"
prop=
"regionCode"
>
<el-input
v-model=
"form.regionCode"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"选择文件"
prop=
"file"
>
<div
style=
"display: flex;justify-content: space-between;align-items: center;width: 100%;"
>
<el-input
readonly
style=
"width: 70%;"
:value=
"form.file && form.file.name"
/>
<el-button
type=
"primary"
@
click=
"$refs.fileInput.click()"
>
选择文件
</el-button>
<input
type=
"file"
ref=
"fileInput"
@
change=
"handleFileChange"
style=
"display: none;"
accept=
'.txt,.json'
/>
</div>
</el-form-item>
<el-form-item
/>
</el-form>
<template
#
footer
>
<span
class=
"dialog-footer"
style=
"text-align: center;width: 100%;display: block;"
>
<el-button
@
click=
"calcel"
v-if=
"form.title != '岗位详情'"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"calcel"
v-if=
"form.title == '岗位详情'"
>
关 闭
</el-button>
<el-button
type=
"primary"
@
click=
"submit"
v-if=
"form.title != '岗位详情'"
>
提交
</el-button>
</span>
</
template
>
</el-dialog>
</div>
</template>
<
script
setup
>
import
{
uploadRecruit
}
from
"@/api/recruit"
;
import
{
areaList
,
getAreaText
}
from
'@/utils/area.js'
import
{
ref
,
defineProps
,
computed
,
defineEmits
,
}
from
"vue"
;
const
{
proxy
}
=
getCurrentInstance
();
const
form
=
ref
({});
const
rules
=
ref
({
industry
:
[{
required
:
true
,
message
:
"请输入职位类型"
,
trigger
:
[
'blur'
,
'change'
]
}],
recruitTypeId
:
[{
required
:
true
,
message
:
"请选择招聘类型"
,
trigger
:
[
'blur'
,
'change'
]
}],
qualificationId
:
[{
required
:
true
,
message
:
"请选择学历"
,
trigger
:
[
'blur'
,
'change'
]
}],
experienceId
:
[{
required
:
true
,
message
:
"请选择经验"
,
trigger
:
[
'blur'
,
'change'
]
}],
time
:
[{
required
:
true
,
message
:
"请选择招聘时间"
,
trigger
:
[
'blur'
,
'change'
]
}],
times
:
[{
required
:
true
,
message
:
"请输入招聘人数"
,
trigger
:
[
'blur'
,
'change'
]
}],
area
:
[{
required
:
true
,
message
:
"请选择地址"
,
trigger
:
[
'blur'
,
'change'
]
}],
address
:
[{
required
:
true
,
message
:
"请输入详细地址"
,
trigger
:
[
'blur'
,
'change'
]
}],
industryId
:
[{
required
:
true
,
message
:
"请选择职位类型"
,
trigger
:
[
'blur'
,
'change'
]
}],
file
:
[{
required
:
true
,
message
:
"请选择文件"
,
trigger
:
[
'blur'
,
'change'
]
}],
})
const
salaryMinList
=
ref
([
{
value
:
"1000"
,
label
:
"1000"
},
{
value
:
"2000"
,
label
:
"2000"
},
{
value
:
"3000"
,
label
:
"3000"
},
{
value
:
"4000"
,
label
:
"4000"
},
{
value
:
"5000"
,
label
:
"5000"
},
{
value
:
"6000"
,
label
:
"6000"
},
{
value
:
"7000"
,
label
:
"7000"
},
{
value
:
"8000"
,
label
:
"8000"
},
{
value
:
"9000"
,
label
:
"9000"
},
{
value
:
"10000"
,
label
:
"10000"
},
{
value
:
"11000"
,
label
:
"11000"
},
{
value
:
"12000"
,
label
:
"12000"
},
{
value
:
"13000"
,
label
:
"13000"
},
{
value
:
"14000"
,
label
:
"14000"
},
{
value
:
"15000"
,
label
:
"15000"
},
{
value
:
"16000"
,
label
:
"16000"
},
{
value
:
"17000"
,
label
:
"17000"
},
{
value
:
"18000"
,
label
:
"18000"
},
{
value
:
"19000"
,
label
:
"19000"
},
{
value
:
"20000"
,
label
:
"20000"
},
{
value
:
"21000"
,
label
:
"21000"
},
{
value
:
"22000"
,
label
:
"22000"
},
{
value
:
"23000"
,
label
:
"23000"
},
{
value
:
"24000"
,
label
:
"24000"
},
{
value
:
"25000"
,
label
:
"25000"
},
{
value
:
"26000"
,
label
:
"26000"
},
{
value
:
"27000"
,
label
:
"27000"
},
{
value
:
"28000"
,
label
:
"28000"
},
{
value
:
"29000"
,
label
:
"29000"
}
])
const
salaryMaxList
=
ref
([])
const
payTimeList
=
ref
([
{
value
:
12
,
label
:
"12薪"
},
{
value
:
13
,
label
:
"13薪"
},
{
value
:
14
,
label
:
"14薪"
},
{
value
:
15
,
label
:
"15薪"
},
{
value
:
16
,
label
:
"16薪"
},
{
value
:
17
,
label
:
"17薪"
},
{
value
:
18
,
label
:
"18薪"
},
{
value
:
19
,
label
:
"19薪"
},
{
value
:
20
,
label
:
"20薪"
},
{
value
:
21
,
label
:
"21薪"
},
{
value
:
22
,
label
:
"22薪"
},
{
value
:
23
,
label
:
"23薪"
},
{
value
:
24
,
label
:
"24薪"
},
])
const
props
=
defineProps
([
"selectOp"
,
"addVisible"
,
"detailInfo"
,
"selectOp"
]);
let
{
recruitAllList
,
experienceList
,
qualificationList
,
orgList
,
industryList
}
=
props
.
selectOp
;
watch
(()
=>
props
.
selectOp
,
(
newValue
,
oldValue
)
=>
{
recruitAllList
=
props
.
selectOp
.
recruitAllList
;
experienceList
=
props
.
selectOp
.
experienceList
;
qualificationList
=
props
.
selectOp
.
qualificationList
;
orgList
=
props
.
selectOp
.
orgList
;
industryList
=
props
.
selectOp
.
industryList
;
});
const
emit
=
defineEmits
([
"changeVisible"
,
"getList"
]);
const
dialogShow
=
computed
({
get
:
()
=>
props
.
addVisible
,
set
:
(
val
)
=>
emit
(
"changeVisible"
,
val
),
});
salaryMaxList
.
value
=
[...
salaryMinList
.
value
]
// 上传文件
function
handleFileChange
(
e
)
{
if
(
e
.
target
.
files
.
length
>
0
)
{
form
.
value
.
file
=
e
.
target
.
files
[
0
];
}
proxy
.
$refs
.
fileInput
.
value
=
null
;
}
function
salaryMinChange
(
e
)
{
const
index
=
salaryMinList
.
value
.
findIndex
(
item
=>
item
.
value
===
e
)
salaryMaxList
.
value
=
salaryMinList
.
value
.
slice
(
index
+
1
)
salaryMaxList
.
value
.
push
({
value
:
"30000"
,
label
:
"30000"
})
form
.
value
.
salaryMax
=
''
}
function
dialogClose
()
{
form
.
value
=
{};
proxy
.
$refs
.
addRef
.
resetFields
()
}
function
dialogOpen
(){
// if (props.detailInfo.id) {
// form.value = {
// id: props.detailInfo.id,
// title: props.detailInfo.title,
// recruitTypeId: props.detailInfo.recruitTypeId,
// qualificationId: props.detailInfo.qualificationId,
// experienceId: props.detailInfo.experienceId,
// salaryMin: props.detailInfo.salaryMin,
// salaryMax: props.detailInfo.salaryMax,
// payTimes: props.detailInfo.payTimes,
// bonus: props.detailInfo.bonus,
// address: props.detailInfo.address,
// industry: [props.detailInfo.oneIndustryName,props.detailInfo.towIndustryName,props.detailInfo.industryName],
// area: [props.detailInfo.province,props.detailInfo.city,props.detailInfo.region],
// times: props.detailInfo.times,
// time: [props.detailInfo.startDate, props.detailInfo.expiredDate]
// }
// } else {
form
.
value
.
regionCode
=
'610100'
// }
}
function
calcel
()
{
dialogShow
.
value
=
false
;
}
function
submit
()
{
proxy
.
$refs
.
addRef
.
validate
(
valid
=>
{
if
(
!
valid
)
return
;
const
submitForm
=
{...
form
.
value
}
submitForm
.
recruitType
=
recruitAllList
.
find
(
item
=>
item
.
id
==
submitForm
.
recruitTypeId
).
name
submitForm
.
experience
=
experienceList
.
find
(
item
=>
item
.
id
==
submitForm
.
experienceId
).
name
submitForm
.
experienceCode
=
experienceList
.
find
(
item
=>
item
.
id
==
submitForm
.
experienceId
).
code
submitForm
.
qualification
=
qualificationList
.
find
(
item
=>
item
.
id
==
submitForm
.
qualificationId
).
name
submitForm
.
qualificationCode
=
qualificationList
.
find
(
item
=>
item
.
id
==
submitForm
.
qualificationId
).
code
// 职位类型start
submitForm
.
oneIndustryName
=
submitForm
.
industry
[
0
]
submitForm
.
towIndustryName
=
submitForm
.
industry
[
1
]
submitForm
.
industryName
=
submitForm
.
industry
[
2
]
let
v1
=
industryList
.
find
(
item
=>
item
.
name
==
submitForm
.
industry
[
0
])
let
v2
=
v1
.
chilList
.
find
(
item
=>
item
.
name
==
submitForm
.
industry
[
1
])
submitForm
.
industryCode
=
v2
.
chilList
.
find
(
item
=>
item
.
name
==
submitForm
.
industry
[
2
]).
code
delete
submitForm
.
industry
// 职位类型end
submitForm
.
province
=
submitForm
.
area
[
0
]
submitForm
.
city
=
submitForm
.
area
[
1
]
submitForm
.
region
=
submitForm
.
area
[
2
]
delete
submitForm
.
area
if
(
submitForm
.
time
.
length
==
2
)
{
submitForm
.
startDate
=
submitForm
.
time
[
0
]
submitForm
.
expiredDate
=
submitForm
.
time
[
1
]
}
delete
submitForm
.
time
;
uploadRecruit
(
setFormData
(
submitForm
)).
then
(
res
=>
{
if
(
res
.
isSuccess
)
{
calcel
()
proxy
.
$modal
.
msgSuccess
(
res
.
code
);
emit
(
"getList"
);
}
})
});
}
const
setFormData
=
(
data
)
=>
{
const
formData
=
new
FormData
()
const
keys
=
Object
.
keys
(
data
)
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
if
(
data
[
keys
[
i
]]
!=
null
&&
[
keys
[
i
]]
!=
undefined
&&
data
[
keys
[
i
]].
constructor
==
Array
){
// 数组参数转FormData
for
(
let
j
=
0
;
j
<
data
[
keys
[
i
]].
length
;
j
++
)
{
formData
.
append
(
keys
[
i
],
data
[
keys
[
i
]][
j
])
}
}
else
{
formData
.
append
(
keys
[
i
],
data
[
keys
[
i
]])
}
}
return
formData
}
</
script
>
<
style
lang=
"scss"
>
.recruitAdd
{
.el-form
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
.el-form-item
{
width
:
33%
;
}
.el-form-item.w100
{
width
:
100%
;
}
}
.el-input-number
{
width
:
100%
;
.el-input__wrapper
{
padding
:
1px
11px
;
.el-input__inner
{
text-align
:
left
;
width
:
100%
;
}
}
}
.f_b
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
width
:
100%
;
}
.salary
{
.el-select
{
width
:
30%
;
}
}
}
</
style
>
src/views/recruit/index.vue
浏览文件 @
6f134595
...
...
@@ -78,6 +78,14 @@
@
click=
"visibleOpenpay = true; detailInfo =
{}"
>新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"Plus"
@
click=
"visibleOpenpay2 = true; detailInfo =
{}"
>批量上传岗位
</el-button>
</el-col>
</el-row>
<el-table
v-loading=
"loading"
:data=
"list"
show-overflow-tooltip
>
<el-table-column
label=
"招聘企业"
prop=
"orgName"
/>
...
...
@@ -123,6 +131,19 @@
industryList
}"
/>
<Add2
:addVisible=
"visibleOpenpay2"
@
changeVisible=
"visibleOpenpay2 = false"
@
getList=
"getList"
:detailInfo=
"detailInfo"
:selectOp=
"{
recruitAllList,
experienceList,
qualificationList,
orgList,
industryList
}"
/>
</div>
</template>
...
...
@@ -130,6 +151,7 @@
import
{
recruitList
,
recruitDel
,
recruitTypeAll
,
experienceAll
,
qualificationAll
,
orgListAll
,
industryListAll
,
recruitStatus
}
from
"@/api/recruit"
;
import
{
ref
}
from
"vue"
;
import
Add
from
"./add.vue"
;
import
Add2
from
"./add2.vue"
;
const
{
proxy
}
=
getCurrentInstance
();
const
list
=
ref
([]);
const
loading
=
ref
(
false
);
...
...
@@ -140,6 +162,7 @@ const queryParams = ref({
})
const
recruitAllList
=
ref
([])
const
experienceList
=
ref
([])
const
visibleOpenpay2
=
ref
(
false
)
const
qualificationList
=
ref
([])
const
orgList
=
ref
([])
const
industryList
=
ref
([])
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论