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

1

上级 674c64ea
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -22,11 +22,16 @@
<el-table v-loading="loading" :data="list" show-overflow-tooltip style="width: 100%;">
<el-table-column label="企业名称" prop="name" />
<el-table-column label="邮政编号" prop="regionCode" />
<el-table-column label="地址" prop="address" />
<el-table-column label="地址" prop="address">
<template #default="{row}">
{{ row.province }} {{ row.city }} {{ row.region }} {{ row.address }}
</template>
</el-table-column>
<el-table-column label="企业介绍" prop="descr" />
<el-table-column label="logo" prop="logo">
<template #default="{row}">
<el-image
style="width: 80px;height: 80px;display: block;"
style="width: 50px;height: 50px;display: block;"
v-if="row.logo"
:src="row.logo"
/>
......@@ -39,7 +44,9 @@
name: row.name,
logo: row.logo,
regionCode: row.regionCode,
area: [row.province,row.city,row.region],
address: row.address,
descr: row.descr,
id: row.id,
}">编辑</el-button>
<el-button link type="primary" icon="Delete" @click="del(row)">删除</el-button>
......@@ -49,22 +56,34 @@
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改账号问答框 -->
<el-dialog title="新增企业" v-model="open" width="420px" append-to-body>
<el-form label-width="100px" style="padding-right: 15px;">
<el-dialog title="新增企业" v-model="open" width="440px" append-to-body>
<el-form label-width="100px" style="padding-right: 15px;" ref="addRef" :model="openForm" :rules="rules">
<el-form-item label="企业名称" prop="name">
<el-input v-model="openForm.name" placeholder="请输入"/>
</el-form-item>
<el-form-item label="邮政编号" prop="regionCode">
<el-input v-model="openForm.regionCode" placeholder="请输入"/>
</el-form-item>
<el-form-item label="地址" prop="address">
<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="address">
<el-input v-model="openForm.address" placeholder="请输入"/>
</el-form-item>
<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: 200px;display: block;"
style="width: 100px;display: block;margin-top: 10px;"
v-if="openForm.logo"
:src="openForm.logo"
/>
......@@ -86,6 +105,7 @@
import { orgList,orgDel,orgSave } from "@/api/enterprise";
import { ref } from "vue";
import { uploadFileToOss } from "@/utils/oss";
import { areaList,getAreaText } from '@/utils/area.js'
const { proxy } = getCurrentInstance();
const list = ref([]);
const loading = ref(false);
......@@ -99,6 +119,14 @@ 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" }]
})
// 上传文件
function handleFileChange(e) {
if (e.target.files.length > 0) {
......@@ -120,14 +148,20 @@ function getList() {
});
}
function submit() {
if (!openForm.value.name) {
return proxy.$modal.msgError("请输入企业名称");
}
orgSave(openForm.value).then(res => {
proxy.$refs.addRef.validate(valid => {
if (valid){
const submitForm = {...openForm.value}
submitForm.province = submitForm.area[0]
submitForm.city = submitForm.area[1]
submitForm.region = submitForm.area[2]
delete submitForm.area
orgSave(submitForm).then(res => {
proxy.$modal.msgSuccess("操作成功");
open.value = false;
getList();
})
}
})
}
/** 搜索按钮操作 */
......
<template>
<div class="recruitAdd">
<el-dialog :title="'新增招聘需求'" v-model="dialogShow" width="500px" @open="dialogOpen" @close="dialogClose">
<el-dialog :title="form.id ? '编辑岗位信息' : '岗位发布'" v-model="dialogShow" width="500px" @open="dialogOpen" @close="dialogClose">
<el-form :model="form" :rules="rules" label-width="100px" style="padding-right: 40px;" ref="addRef">
<el-form-item label="招聘企业" prop="orgId">
<el-select
......@@ -20,20 +20,19 @@
<el-form-item label="职位名称" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
<el-form-item label="职位类型" prop="industryId">
<el-select
v-model="form.industryId"
placeholder="请选择"
filterable
<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%"
>
<el-option
v-for="item in industryList"
:key="item.id"
:label="item.name"
:value="item.id"
:props="{
value: 'name',
label: 'name',
children: 'chilList'
}"
/>
</el-select>
</el-form-item>
<el-form-item label="招聘类型" prop="recruitTypeId">
<el-select
......@@ -92,7 +91,15 @@
/>
</el-form-item>
<el-form-item label="招聘人数" prop="times">
<el-input v-model="form.times" placeholder="请输入" />
<el-input-number
v-model="form.times"
step="1"
placeholder="请输入"
step-strictly
:min="1"
:controls="false"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="薪资待遇" prop="salaryMin">
<!-- <el-input v-model="form.salaryMin" placeholder="请输入" /> -->
......@@ -139,20 +146,28 @@
</el-select>
</div>
</el-form-item>
<!-- <el-form-item label="最低工资" prop="salaryMin">
<el-input v-model="form.salaryMin" placeholder="请输入" />
</el-form-item>
<el-form-item label="最高工资" prop="salaryMax">
<el-input v-model="form.salaryMax" placeholder="请输入" />
</el-form-item>
<el-form-item label="发薪次数" prop="payTimes">
<el-input v-model="form.payTimes" placeholder="请输入" />
</el-form-item> -->
<el-form-item label="绩效奖金" prop="bonus">
<el-input v-model="form.bonus" placeholder="请输入" />
<el-input-number
v-model="form.bonus"
:step="0.01"
placeholder="请输入"
step-strictly
:min="0"
:controls="false"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入" />
<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' }"
/>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="form.address" placeholder="请输入" type="textarea" rows="3"/>
</el-form-item>
<el-form-item label="职位描述" prop="details">
<el-input type="textarea" v-model="form.details" rows="3" placeholder="请输入" />
......@@ -170,7 +185,7 @@
<script setup>
import { recruitSave } from "@/api/recruit";
import { areaList,getAreaText } from '@/utils/area.js'
import {
ref,
defineProps,
......@@ -183,6 +198,7 @@ const form = ref({});
const rules = ref({
orgId: [{ required: true, message: "请选择招聘企业", trigger: "blur" }],
name: [{ required: true, message: "请输入职位名称", trigger: "blur" }],
industry: [{ required: true, message: "请输入职位类型", trigger: "blur" }],
recruitTypeId: [{ required: true, message: "请选择招聘类型", trigger: "blur" }],
qualificationId: [{ required: true, message: "请选择学历", trigger: "blur" }],
experienceId: [{ required: true, message: "请选择经验", trigger: "blur" }],
......@@ -190,7 +206,8 @@ const rules = ref({
times: [{ required: true, message: "请输入招聘人数", trigger: "blur" }],
salaryMin: [{ required: true, message: "请输入最低工资", trigger: "blur" }],
bonus: [{ required: true, message: "请输入绩效奖金", trigger: "blur" }],
address: [{ required: true, message: "请输入地址", trigger: "blur" }],
area: [{ required: true, message: "请选择地址", trigger: "blur" }],
address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
industryId: [{ required: true, message: "请选择职位类型", trigger: "blur" }],
details: [{ required: true, message: "请输入职位描述", trigger: "blur" }],
})
......@@ -223,24 +240,23 @@ const salaryMinList = ref([
{value: "26000", label: "26000"},
{value: "27000", label: "27000"},
{value: "28000", label: "28000"},
{value: "29000", label: "29000"},
{value: "30000", label: "30000"}
{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薪"},
{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;
......@@ -260,7 +276,8 @@ const dialogShow = computed({
salaryMaxList.value = [...salaryMinList.value]
function salaryMinChange(e) {
const index = salaryMinList.value.findIndex(item => item.value === e)
salaryMaxList.value = salaryMinList.value.slice(index)
salaryMaxList.value = salaryMinList.value.slice(index + 1)
salaryMaxList.value.push({value: "30000", label: "30000"})
form.value.salaryMax = ''
}
function dialogClose() {
......@@ -281,7 +298,8 @@ function dialogOpen(){
payTimes: props.detailInfo.payTimes,
bonus: props.detailInfo.bonus,
address: props.detailInfo.address,
industryId: props.detailInfo.industryId,
industry: [props.detailInfo.oneIndustryName,props.detailInfo.towIndustryName,props.detailInfo.industryName],
area: [props.detailInfo.province,props.detailInfo.city,props.detailInfo.region],
details: props.detailInfo.details,
times: props.detailInfo.times,
time: [props.detailInfo.startDate, props.detailInfo.expiredDate]
......@@ -303,7 +321,19 @@ function submit() {
submitForm.qualification = qualificationList.find(item => item.id == submitForm.qualificationId).name
submitForm.qualificationCode = qualificationList.find(item => item.id == submitForm.qualificationId).code
submitForm.orgName = orgList.find(item => item.id == submitForm.orgId).name
submitForm.industryName = industryList.find(item => item.id == submitForm.industryId).name
// 职位类型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]
......
......@@ -78,11 +78,15 @@
<el-table v-loading="loading" :data="list" show-overflow-tooltip>
<el-table-column label="招聘企业" prop="orgName" />
<el-table-column label="职位" prop="name" />
<el-table-column label="职位类型" prop="industryName" />
<el-table-column label="招聘类型" prop="recruitType" />
<el-table-column label="经验" prop="experience" align="center" />
<el-table-column label="学历" prop="qualification" />
<el-table-column label="地址" prop="address" />
<el-table-column label="职位类型" prop="industryName" />
<el-table-column label="地址" prop="address">
<template #default="{row}">
{{ row.province }} {{ row.city }} {{ row.region }} {{ row.address }}
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime" align="center" width="160"/>
<el-table-column label="操作" width="120" align="center" class-name="small-padding fixed-width" >
<template #default="{row}">
......
......@@ -30,8 +30,8 @@ export default defineConfig(({ mode, command }) => {
open: true,
proxy: {
'/jfb-recruit': {
// target: 'http://192.168.0.6:8000',
target: 'https://jyzp.365jft.com/jfb-recruit',
target: 'http://192.168.0.6:8000',
// target: 'https://jyzp.365jft.com/jfb-recruit',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/jfb-recruit/, '')
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论