2024-02-16 15:02:17 +08:00
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<basic-container>
|
|
|
|
|
<el-radio-group v-model="search.status" size="small" @change="radioGroup">
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-radio-button v-for="(item, key, index) in missionTypes" :key="index"
|
|
|
|
|
:label="item.value">{{ item.label }}</el-radio-button>
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-radio-group>
|
|
|
|
|
</basic-container>
|
|
|
|
|
|
2024-02-18 16:49:41 +08:00
|
|
|
<basic-container>
|
2024-02-16 15:02:17 +08:00
|
|
|
<div class="taskTip">
|
2024-02-18 16:49:41 +08:00
|
|
|
<p class="title">{{ search.status | searchStatus }}</p>
|
2024-02-16 15:02:17 +08:00
|
|
|
<div style="height: 30px;"></div>
|
|
|
|
|
<div v-if="search.status === 1" style="display: flex;flex-wrap: wrap;">
|
2024-02-18 16:49:41 +08:00
|
|
|
<span class="name">岗位总数 {{ taskGather.totalCount }}</span>
|
2024-02-16 15:02:17 +08:00
|
|
|
<span class="name" style="margin-left: 30px;">
|
2024-02-18 16:49:41 +08:00
|
|
|
<span class="smallTitle">招聘中</span>{{ taskGather.recruitCount }}
|
|
|
|
|
<!-- <span class="smallTitle">任务中</span>{{taskGather.startCount}} -->
|
|
|
|
|
<span class="smallTitle">已完成</span>{{ taskGather.completCount }}
|
2024-02-27 16:48:45 +08:00
|
|
|
<!-- <span class="smallTitle">已失效</span>{{ taskGather.invalidCount }} -->
|
|
|
|
|
<span class="smallTitle">未发布</span>{{ taskGather.rejectCount }}
|
2024-02-16 15:02:17 +08:00
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div v-if="search.status === 2" style="display: flex;flex-wrap: wrap;">
|
2024-02-18 16:49:41 +08:00
|
|
|
<span class="name" style="margin-right: 40px;">岗位总数 {{ taskDetail.totalCount }}</span>
|
2024-02-16 15:02:17 +08:00
|
|
|
<span class="name">
|
|
|
|
|
人员情况
|
2024-02-18 16:49:41 +08:00
|
|
|
<span class="smallTitle">招聘总人数</span>{{ taskDetail.enListCount }}
|
|
|
|
|
<span class="smallTitle">申请总人数</span>{{ taskDetail.applyCount }}
|
|
|
|
|
<span class="smallTitle">录用总人数</span>{{ taskDetail.employedCount }}
|
2024-02-16 15:02:17 +08:00
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</basic-container>
|
|
|
|
|
|
|
|
|
|
<basic-container>
|
|
|
|
|
<!-- 搜索栏 -->
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-form size="small" label-position="right" :inline="true">
|
2024-02-16 15:02:17 +08:00
|
|
|
<el-row :span="24" v-if="search.status === 1">
|
|
|
|
|
|
|
|
|
|
<el-form-item label="公司名称:">
|
|
|
|
|
<el-input v-model="search.companyName" placeholder="公司名称"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item label="联系电话:">
|
|
|
|
|
<el-input v-model="search.callTel" placeholder="联系电话"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
2024-02-18 16:49:41 +08:00
|
|
|
<!-- <el-form-item label="距离最后发任务时间:">-->
|
|
|
|
|
<!-- <el-radio-group v-model="search.status" size="small" @change="radioGroup">-->
|
|
|
|
|
<!-- <el-radio-button-->
|
|
|
|
|
<!-- v-for="(item,key,index) in missionTypes"-->
|
|
|
|
|
<!-- :key="index"-->
|
|
|
|
|
<!-- :label="item.value"-->
|
|
|
|
|
<!-- >{{item.label}}</el-radio-button>-->
|
|
|
|
|
<!-- </el-radio-group>-->
|
|
|
|
|
<!-- </el-form-item>-->
|
2024-02-16 15:02:17 +08:00
|
|
|
|
|
|
|
|
<div class="searchBtn">
|
|
|
|
|
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch">搜 索</el-button>
|
|
|
|
|
<el-button size="small" icon="el-icon-delete" @click="handleClear">清 空</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row :span="24" v-if="search.status === 2">
|
|
|
|
|
|
|
|
|
|
<el-form-item label="公司名称:">
|
|
|
|
|
<el-input v-model="search.companyName" placeholder="公司名称"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-form-item label="岗位编号:">
|
|
|
|
|
<el-input v-model="search.missionNo" placeholder="岗位编号"></el-input>
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-form-item>
|
|
|
|
|
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-form-item label="岗位标题:">
|
|
|
|
|
<el-input v-model="search.missionTitle" placeholder="岗位标题"></el-input>
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-form-item>
|
|
|
|
|
<br>
|
|
|
|
|
<el-form-item>
|
|
|
|
|
<el-select v-model="search.reviewState" placeholder="请选择搜索时间类型" style="width:100%">
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-option v-for="(item, key, index) in timeStatus" :key="index" :label="item.label"
|
|
|
|
|
:value="item.value"></el-option>
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item>
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-date-picker :disabled="search.reviewState === ''" v-model="search.taskTime" type="daterange"
|
|
|
|
|
range-separator="至" start-placeholder="开始时间" end-placeholder="完成时间" format="yyyy 年 MM 月 dd 日"
|
|
|
|
|
value-format="yyyy-MM-dd" @change="dateChangeSubTime">
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<tool-tip></tool-tip>
|
|
|
|
|
|
2024-02-18 16:49:41 +08:00
|
|
|
<el-form-item label="岗位状态:">
|
|
|
|
|
<el-select v-model="search.jobStatus" placeholder="岗位状态" style="width:100%">
|
|
|
|
|
<el-option v-for="(item, key, index) in jobStatus" :key="index" :label="item.label"
|
|
|
|
|
:value="item.value"></el-option>
|
2024-02-16 15:02:17 +08:00
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<div class="searchBtn">
|
|
|
|
|
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch">搜 索</el-button>
|
|
|
|
|
<el-button size="small" icon="el-icon-delete" @click="handleClear">清 空</el-button>
|
|
|
|
|
<el-button size="small" icon="el-icon-delete" @click="taskOut">导 出</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
<!-- table -->
|
|
|
|
|
<gather v-if="search.status === 1" ref="gather" @searchCompanyName="searchCompanyName"></gather>
|
|
|
|
|
<detail v-if="search.status === 2" ref="detail"></detail>
|
|
|
|
|
</basic-container>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-02-18 16:49:41 +08:00
|
|
|
import { postState, companyPostState, timeStatus, } from '@/common/dic'
|
|
|
|
|
import { gatherInfo, detailInfo } from '@/api/workstation/post'
|
|
|
|
|
import gather from "./table/gather";
|
|
|
|
|
import detail from "./table/detail";
|
|
|
|
|
import { setStore, getStore } from '@/util/store'
|
2024-02-16 15:02:17 +08:00
|
|
|
export default {
|
|
|
|
|
name: "index",
|
2024-02-18 16:49:41 +08:00
|
|
|
components: { gather, detail },
|
2024-02-16 15:02:17 +08:00
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
disabled: true,
|
2024-02-18 16:49:41 +08:00
|
|
|
missionTypes: postState,
|
|
|
|
|
jobStatus: companyPostState,
|
2024-02-16 15:02:17 +08:00
|
|
|
timeStatus: timeStatus,
|
|
|
|
|
activeName: 'first',
|
|
|
|
|
taskTime: '',
|
|
|
|
|
taskGather: {},
|
|
|
|
|
taskDetail: {},
|
|
|
|
|
search: {
|
|
|
|
|
status: 1,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
filters: {
|
2024-02-18 16:49:41 +08:00
|
|
|
searchStatus(v) {
|
2024-02-16 15:02:17 +08:00
|
|
|
switch (v) {
|
|
|
|
|
case 1:
|
2024-02-18 16:49:41 +08:00
|
|
|
return '岗位概况';
|
2024-02-16 15:02:17 +08:00
|
|
|
case 2:
|
2024-02-18 16:49:41 +08:00
|
|
|
return '岗位概况';
|
2024-02-16 15:02:17 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
2024-02-18 16:49:41 +08:00
|
|
|
const status = getStore({ name: 'taskStatus' })
|
2024-02-16 15:02:17 +08:00
|
|
|
if (status) {
|
|
|
|
|
this.search.status = Number(status)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.handleSearch()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2024-02-18 16:49:41 +08:00
|
|
|
searchCompanyName(companyName) {
|
2024-02-16 15:02:17 +08:00
|
|
|
this.search.status = 2
|
2024-02-18 16:49:41 +08:00
|
|
|
setStore({ name: 'taskStatus', content: 2, type: 'session' })
|
2024-02-16 15:02:17 +08:00
|
|
|
this.search.companyName = companyName
|
|
|
|
|
this.handleSearch()
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
dateChangeSubTime(val) {
|
|
|
|
|
if (val) {
|
|
|
|
|
this.search.stime = val[0] + " 00:00:00";
|
|
|
|
|
this.search.etime = val[1] + " 23:59:59";
|
|
|
|
|
} else {
|
2024-02-16 15:02:17 +08:00
|
|
|
this.search.stime = '';
|
|
|
|
|
this.search.etime = '';
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
gatherInfoInit() {
|
2024-02-16 15:02:17 +08:00
|
|
|
gatherInfo().then(res => {
|
|
|
|
|
this.taskGather = res.data.data
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
detailInfoInit() {
|
2024-02-27 16:48:45 +08:00
|
|
|
// detailInfo().then(res => {
|
|
|
|
|
// this.taskDetail = res.data.data
|
|
|
|
|
// })
|
2024-02-16 15:02:17 +08:00
|
|
|
},
|
|
|
|
|
radioGroup(v) {
|
2024-02-18 16:49:41 +08:00
|
|
|
setStore({ name: 'taskStatus', content: v, type: 'session' })
|
2024-02-16 15:02:17 +08:00
|
|
|
this.handleClear()
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
handleSearch() {
|
2024-02-16 15:02:17 +08:00
|
|
|
if (this.search.status === 1) {
|
|
|
|
|
this.gatherInfoInit()
|
|
|
|
|
var gatherObj = {
|
|
|
|
|
companyName: this.search.companyName,
|
|
|
|
|
callTel: this.search.callTel
|
|
|
|
|
}
|
|
|
|
|
this.$refs.gather.init(gatherObj)
|
|
|
|
|
} else if (this.search.status === 2) {
|
|
|
|
|
this.detailInfoInit()
|
|
|
|
|
var detailObj = {
|
2024-02-18 16:49:41 +08:00
|
|
|
jobStatus: this.search.jobStatus ? this.search.jobStatus : '',
|
2024-02-16 15:02:17 +08:00
|
|
|
companyName: this.search.companyName ? this.search.companyName : '',
|
|
|
|
|
missionNo: this.search.missionNo ? this.search.missionNo : '',
|
2024-02-18 16:49:41 +08:00
|
|
|
jobName: this.search.missionTitle ? this.search.missionTitle : '',
|
2024-02-16 15:02:17 +08:00
|
|
|
reviewState: this.search.reviewState ? this.search.reviewState : 0,
|
|
|
|
|
stime: this.search.stime ? this.search.stime : '',
|
|
|
|
|
etime: this.search.etime ? this.search.etime : ''
|
|
|
|
|
}
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.detail.init(detailObj)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
handleClear() {
|
2024-02-16 15:02:17 +08:00
|
|
|
this.search = {
|
|
|
|
|
status: this.search.status,
|
|
|
|
|
companyName: '',
|
|
|
|
|
callTel: '',
|
2024-02-18 16:49:41 +08:00
|
|
|
missionNo: '',
|
2024-02-16 15:02:17 +08:00
|
|
|
missionTitle: '',
|
|
|
|
|
reviewState: '',
|
|
|
|
|
jobStatus: '',
|
|
|
|
|
};
|
|
|
|
|
this.handleSearch()
|
|
|
|
|
},
|
2024-02-18 16:49:41 +08:00
|
|
|
taskOut() {
|
2024-02-16 15:02:17 +08:00
|
|
|
var detailObj = {
|
2024-02-18 16:49:41 +08:00
|
|
|
jobStatus: this.search.status ? this.search.status : '',
|
2024-02-16 15:02:17 +08:00
|
|
|
companyName: this.search.companyName ? this.search.companyName : '',
|
|
|
|
|
missionNo: this.search.missionNo ? this.search.missionNo : '',
|
2024-02-18 16:49:41 +08:00
|
|
|
jobName: this.search.missionTitle ? this.search.missionTitle : '',
|
2024-02-16 15:02:17 +08:00
|
|
|
reviewState: this.search.reviewState ? this.search.reviewState : '',
|
|
|
|
|
stime: this.search.stime ? this.search.stime : '',
|
|
|
|
|
etime: this.search.etime ? this.search.etime : ''
|
|
|
|
|
}
|
|
|
|
|
this.$refs.detail.taskOut(detailObj)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
2024-02-18 16:49:41 +08:00
|
|
|
p {
|
|
|
|
|
margin: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-form-item {
|
|
|
|
|
margin-right: 18px !important;
|
|
|
|
|
/*margin-bottom: 0 !important;*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.searchBtn {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
margin-bottom: 18px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.taskTip {
|
|
|
|
|
border-radius: 0px 4px 5px 4px;
|
|
|
|
|
/*padding: 14px;*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.taskTip .name {
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 25px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.taskTip .smallTitle {
|
|
|
|
|
width: 36px;
|
|
|
|
|
height: 25px;
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #999999;
|
|
|
|
|
line-height: 25px;
|
|
|
|
|
margin-right: 15px;
|
|
|
|
|
margin-left: 40px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.taskTip .title {
|
|
|
|
|
height: 30px;
|
|
|
|
|
font-size: 22px;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
}
|
2024-02-16 15:02:17 +08:00
|
|
|
</style>
|