招聘管理初版完成

main
lijingyu007 7 months ago
parent b8e7a1962d
commit 1b0468f01c
  1. BIN
      public/assets/ability/zp.png
  2. 25
      src/page/homepage/personability/ability.vue
  3. 4
      src/page/personalpage/commonheader/personalheader.vue
  4. 134
      src/page/personalpage/jobm/addjob.vue
  5. 235
      src/page/personalpage/jobm/job.vue
  6. 189
      src/page/personalpage/jobm/jobuser.vue
  7. 6
      src/router/router.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -5,6 +5,10 @@
<img class="ijaoricon" src="/assets/home/fbrwicon.png" alt="" />
提交用人需求
</div> -->
<div class="zxzx3" @click="zpFn">
发布招聘信息
<img class="cloudMore" style="width:38px;height:38px" src="/assets/ability/zp.png" alt="">
</div>
<div class="zxzx2" @click="openDialog1('测试工程师')">
提交用人需求
<img class="cloudMore" style="width:38px;height:38px" src="/assets/ability/cloudMore1.png" alt="">
@ -591,6 +595,9 @@ export default {
},
lookMore() {
this.$router.push('/ability/more')
},
zpFn() {
this.$router.push('/console/addjob')
}
},
}
@ -656,6 +663,24 @@ export default {
align-items: center;
justify-content: center;
}
.zxzx3 {
z-index: 2147483639;
width: 172px;
height: 68px;
position: fixed;
right: 16px;
top: 335px;
font-weight: 500;
font-size: 17px;
color: #ffffff;
cursor: pointer;
background: linear-gradient(0deg, #5ea6fd, #1a81f9);
box-shadow: 0px 1px 20px 1px rgba(13, 92, 187, 0.4);
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
}
.cloudMore {
width: 39px;
height: 33px;

@ -120,6 +120,10 @@
<i class="el-icon-user"></i>
<span>发布众包任务</span>
</el-menu-item>
<el-menu-item index="/console/jobM">
<i class="el-icon-user"></i>
<span>招聘管理</span>
</el-menu-item>
<el-submenu index="3">
<template slot="title">
<i class="el-icon-s-finance"></i>

@ -0,0 +1,134 @@
<template>
<div class="crowdnum">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div class="cardtitle">
<div class="cardline"></div>
<div class="cardtext">新增招聘</div>
</div>
<div class="cardBtn" @click="backlist">{{ '< 返回' }}</div>
</div>
<!-- 表单 -->
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="formclass">
<el-form-item label="职位名称:" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="经验要求:" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="招聘人数:" prop="name" class="littleBox">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="工作方式:" prop="name" class="littleBox">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="全职" value="全职"></el-option>
<el-option label="兼职" value="兼职"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历要求:" prop="name" class="littleBox">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="硕士" value="硕士"></el-option>
<el-option label="本科" value="本科"></el-option>
<el-option label="专科" value="专科"></el-option>
<el-option label="不限学历" value="不限学历"></el-option>
</el-select>
</el-form-item>
<el-form-item label="福利:" prop="name">
<el-select v-model="form.region" multiple placeholder="请选择活动区域">
<el-option label="硕士" value="硕士"></el-option>
<el-option label="本科" value="本科"></el-option>
<el-option label="专科" value="专科"></el-option>
<el-option label="不限学历" value="不限学历"></el-option>
</el-select>
</el-form-item>
<el-form-item label="入职企业:" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="职位描述:" prop="name">
<el-input v-model="form.name" type="textarea"></el-input>
</el-form-item>
<el-form-item label="薪资范围:" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="" prop="name">
<div class="subJob">保存</div>
</el-form-item>
</el-form>
</el-card>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
data() {
return {
form: {},
rules: {
name: [{ required: true, message: '请输入职位名称', trigger: 'blur' }],
},
}
},
mounted() {},
computed: {
...mapGetters(['userinform']),
},
methods: {
//
backlist() {
this.$router.push('/console/jobM')
},
subJob() {},
},
}
</script>
<style scoped>
.clearfix {
display: flex;
justify-content: space-between;
}
.cardtitle {
display: flex;
align-items: center;
font-weight: 800;
font-size: 20px;
color: #000000;
}
.cardline {
width: 5px;
height: 18px;
background: #1578ed;
border-radius: 3px;
margin-right: 10px;
}
.cardBtn {
font-weight: 500;
font-size: 20px;
color: #1c82f9;
cursor: pointer;
}
.crowdnum >>> .el-card__body {
padding: 30px;
}
.formclass >>> .el-input {
width: 570px;
}
.formclass >>> .el-textarea {
width: 570px;
}
.littleBox >>> .el-input {
width: 265px;
}
.subJob {
width: 200px;
height: 44px;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 4px;
font-weight: 500;
font-size: 16px;
color: #ffffff;
line-height: 44px;
text-align: center;
margin-top: 20px;
}
</style>

@ -0,0 +1,235 @@
<template>
<div class="crowdnum">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div class="cardtitle">
<div class="cardline"></div>
<div class="cardtext">招聘管理</div>
</div>
<div class="cardBtn" @click="goanthor('/console/addjob')">新增招聘</div>
</div>
<el-table :data="sactionData">
<el-table-column label="序号" align="center" prop="name" />
<el-table-column label="岗位名称" align="center" prop="name" />
<el-table-column label="薪资范围" align="center" prop="name" />
<el-table-column label="工作地点" align="center" prop="name" />
<el-table-column label="经验要求" align="center" prop="name" />
<el-table-column label="学历要求" align="center" prop="name" />
<el-table-column label="招聘人数" align="center" prop="name" />
<el-table-column label="申请岗位人数" align="center" prop="name">
<template slot-scope="scope">
<span @click="goanthor('/console/jobuser')" style="color: #1578ed; cursor: pointer">{{
'123'
}}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="name" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="260">
<template slot-scope="scope">
<el-button type="text" @click="fabu(scope.row, 1)"> 发布 </el-button>
<el-button type="text" @click="fabu(scope.row, 0)"> 取消发布 </el-button>
<el-button type="text" @click="edit(scope.row)"> 编辑 </el-button>
<el-button type="text" @click="delFn(scope.row)"> 删除 </el-button>
</template>
</el-table-column>
</el-table>
<div v-if="total > 0" style="width: 100%; margin-top: 30px; text-align: center">
<el-pagination
background
@current-change="handleCurrentChange"
:page-size="queryParams.pageSize"
layout="total, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</el-card>
<!-- 弹层 -->
<el-dialog :title="titletext" :visible.sync="dialogVisible" width="550px" class="dialogClass">
<div class="textdialog">{{ dailogtext }}</div>
<div class="dialogBtn">
<div class="dialogBtnL" @click="submitDia">确定</div>
<div class="dialogBtnR" @click="cancelDia">取消</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { querydemand } from '@/api/my/testb'
export default {
data() {
return {
sactionData: [],
total: 0,
queryParams: {
pageSize: 10,
pageNum: 1,
},
dialogVisible: false,
delId: null, // id
titletext: '删除',
dailogtext: '删除后相关的申请岗位人数将无法查询,确定要删除吗?',
}
},
mounted() {
this.getList()
},
computed: {
...mapGetters(['userinform']),
},
methods: {
getList() {
querydemand(this.userinform.userId).then((res) => {
// res.rows=[{recordName:'1',recordType:'3',recordAmount:'500.363654',recordStatus:'2',recordTime:'2023.01.60 10:50'}]
this.sactionData = res.rows
this.total = res.total
})
},
handleCurrentChange(val) {
this.queryParams.pageNum = val
},
//
fabu(row, val) {
this.delId = row.id
this.dialogVisible = true
this.titletext = val ? '发布' : '取消发布'
this.dailogtext = val ? '确定要发布该职位吗?' : '确定要取消发布该职位吗?'
},
//
goanthor(val) {
this.$router.push(val)
},
//
delFn(row) {
this.delId = row.id
this.dialogVisible = true
this.titletext = '删除'
this.dailogtext = '删除后相关的申请岗位人数将无法查询,确定要删除吗?'
},
//
submitDia() {
this.dialogVisible = false
},
//
cancelDia() {
this.dialogVisible = false
},
edit(row) {
this.$router.push({
path: '/console/addjob',
query: { id: row.id },
})
},
},
}
</script>
<style scoped>
.crowdnum >>> .el-dialog {
margin-top: 30vh !important;
border-radius: 6px !important;
}
.dialogClass >>> .el-dialog__title {
font-weight: bold;
font-size: 20px;
color: #000000;
}
.textdialog {
font-weight: 500;
font-size: 16px;
color: #333333;
text-align: center;
}
.dialogBtn {
display: flex;
align-items: center;
justify-content: center;
margin-top: 50px;
}
.dialogBtnL {
width: 250px;
height: 44px;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 22px;
font-weight: 500;
font-size: 16px;
color: #ffffff;
line-height: 44px;
text-align: center;
margin-right: 6px;
cursor: pointer;
}
.dialogBtnR {
width: 250px;
height: 44px;
border-radius: 22px;
border: 1px solid #e0e0e0;
font-weight: 500;
font-size: 16px;
color: #666666;
text-align: center;
line-height: 44px;
cursor: pointer;
}
.dialogClass >>> .el-dialog__header {
padding: 20px;
border: 1px solid rgba(135, 135, 135, 0.16);
}
.clearfix {
display: flex;
justify-content: space-between;
}
.cardtitle {
display: flex;
align-items: center;
font-weight: 800;
font-size: 20px;
color: #000000;
}
.cardline {
width: 5px;
height: 18px;
background: #1578ed;
border-radius: 3px;
margin-right: 10px;
}
.cardBtn {
width: 90px;
height: 32px;
background: #2286fa;
border-radius: 3px;
font-weight: 500;
font-size: 14px;
color: #ffffff;
line-height: 32px;
text-align: center;
cursor: pointer;
}
.crowdnum >>> .el-table th {
background-color: #f7f7f7;
color: #666666;
text-align: center;
}
.crowdnum >>> .el-table td {
/* text-align:center; */
background-color: #ffffff;
height: 60px;
color: #333333;
}
.crowdnum >>> .el-table--border th {
border-right: #f7f7f7;
}
.crowdnum >>> .el-tooltip__popper {
width: 33vw;
}
</style>
<style>
.el-tooltip__popper {
width: 33vw;
}
</style>

@ -0,0 +1,189 @@
<template>
<div class="crowdnum">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div class="cardtitle">
<div class="cardline"></div>
<div class="cardtext">{{title}}</div>
</div>
<div class="cardBtn" @click="backlist">{{ '< 返回' }}</div>
</div>
<el-table :data="sactionData">
<el-table-column label="序号" align="center" prop="name" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="手机号" align="center" prop="name" />
<el-table-column label="申请时间" align="center" prop="name" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="260">
<template slot-scope="scope">
<el-button type="text" @click="jlDetail(scope.row)"> 查看简历 </el-button>
<el-button type="text"> 下载简历 </el-button>
</template>
</el-table-column>
</el-table>
<div v-if="total > 0" style="width: 100%; margin-top: 30px; text-align: center">
<el-pagination
background
@current-change="handleCurrentChange"
:page-size="queryParams.pageSize"
layout="total, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</el-card>
<!-- 弹层 -->
<el-dialog title="删除" :visible.sync="dialogVisible" width="550px" class="dialogClass">
<div class="textdialog">删除后相关的申请岗位人数将无法查询确定要删除吗</div>
<div class="dialogBtn">
<div class="dialogBtnL" @click="submitDia">确定</div>
<div class="dialogBtnR" @click="cancelDia">取消</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { querydemand } from '@/api/my/testb'
export default {
data() {
return {
sactionData: [],
total: 0,
queryParams: {
pageSize: 10,
pageNum: 1,
},
dialogVisible: false,
rowUserID: null,// id
}
},
mounted() {
this.getList()
},
computed: {
...mapGetters(['userinform']),
},
methods: {
getList() {
querydemand(this.userinform.userId).then((res) => {
this.sactionData = res.rows
this.total = res.total
})
},
handleCurrentChange(val) {
this.queryParams.pageNum = val
},
//
jlDetail(row) {
this.rowUserID = row.userId
this.dialogVisible = true
},
//
backlist() {
this.$router.push('/console/jobM')
},
},
}
</script>
<style scoped>
.crowdnum >>> .el-dialog {
margin-top: 30vh !important;
border-radius: 6px !important;
}
.dialogClass >>> .el-dialog__title {
font-weight: bold;
font-size: 20px;
color: #000000;
}
.textdialog {
font-weight: 500;
font-size: 16px;
color: #333333;
text-align: center;
}
.dialogBtn {
display: flex;
align-items: center;
justify-content: center;
margin-top: 50px;
}
.dialogBtnL {
width: 250px;
height: 44px;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 22px;
font-weight: 500;
font-size: 16px;
color: #ffffff;
line-height: 44px;
text-align: center;
margin-right: 6px;
cursor: pointer;
}
.dialogBtnR {
width: 250px;
height: 44px;
border-radius: 22px;
border: 1px solid #e0e0e0;
font-weight: 500;
font-size: 16px;
color: #666666;
text-align: center;
line-height: 44px;
cursor: pointer;
}
.dialogClass >>> .el-dialog__header {
padding: 20px;
border: 1px solid rgba(135, 135, 135, 0.16);
}
.clearfix {
display: flex;
justify-content: space-between;
}
.cardtitle {
display: flex;
align-items: center;
font-weight: 800;
font-size: 20px;
color: #000000;
}
.cardline {
width: 5px;
height: 18px;
background: #1578ed;
border-radius: 3px;
margin-right: 10px;
}
.cardBtn {
font-weight: 500;
font-size: 20px;
color: #1c82f9;
cursor: pointer;
}
.crowdnum >>> .el-table th {
background-color: #f7f7f7;
color: #666666;
text-align: center;
}
.crowdnum >>> .el-table td {
/* text-align:center; */
background-color: #ffffff;
height: 60px;
color: #333333;
}
.crowdnum >>> .el-table--border th {
border-right: #f7f7f7;
}
.crowdnum >>> .el-tooltip__popper {
width: 33vw;
}
</style>
<style>
.el-tooltip__popper {
width: 33vw;
}
</style>

@ -35,6 +35,9 @@ import myreview from '../page/personalpage/myreview/index.vue'
import myBm from '../page/personalpage/myBm/index.vue'
import currentcrowd from "../page/personalpage/testcrowd/currentcrowd.vue"
import jobM from '../page/personalpage/jobm/job.vue'
import addJob from '../page/personalpage/jobm/addjob.vue'
import jobUser from '../page/personalpage/jobm/jobuser.vue'
Vue.use(Router)
@ -98,6 +101,9 @@ const router = new Router({
{ path: 'demand', component: demand, meta: { title: '我要用人', isAuth: true, type: 6 } },
{ path: 'myreview', component: myreview, meta: { title: '我的评价', isAuth: true, type: 5 } },
{ path: 'myBm', component: myBm, meta: { title: '我的培训班', isAuth: true, type: 5 } },
{ path: 'addJob', component: addJob, meta: { title: '招聘管理', isAuth: true, type: 5 } },
{ path: 'jobUser', component: jobUser, meta: { title: '招聘管理', isAuth: true, type: 5 } },
{ path: 'jobM', component: jobM, meta: { title: '招聘管理', isAuth: true, type: 5 } },
]
},

Loading…
Cancel
Save