提交 6f134595 authored 作者: 赵世杰's avatar 赵世杰

1

上级 03448a8c
......@@ -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
......@@ -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({
......
......@@ -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;
......
差异被折叠。
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论