街道岗位管理页面

This commit is contained in:
dengxin
2024-02-18 16:49:41 +08:00
parent 1461d54104
commit ebc27796c4
10 changed files with 651 additions and 260 deletions

View File

@@ -1,97 +1,92 @@
import request from '@/router/axios'; import request from "@/router/axios";
import { getToken } from '@/util/auth' import { getToken } from "@/util/auth";
export const getList = export const getList = (current, size, params) => {
(current, size, params) => {
return request({ return request({
url: '/api/jobslink-api/missions/mission/manage/list', url: "/api/jobslink-api/missions/mission/manage/list",
method: 'get', method: "get",
params: { params: {
...params, ...params,
current, current,
size, size,
} },
}) });
} };
export const getZPView = export const getZPView = (current, size, missionNo, params) => {
(current, size, missionNo, params) => {
return request({ return request({
url: '/api/jobslink-api/missions/mission/apply/manage/list', url: "/api/jobslink-api/missions/mission/apply/manage/list",
method: 'get', method: "get",
params: { params: {
...params, ...params,
current, current,
size, size,
missionNo, missionNo,
} type: 1,
}) },
} });
};
export const getWageView = export const getWageView = (current, size, missionNo, params) => {
(current, size, missionNo, params) => {
return request({ return request({
url: '/api/jobslink-api/payment/userOrder/mission/user/list', url: "/api/jobslink-api/payment/userOrder/mission/user/list",
method: 'get', method: "get",
params: { params: {
...params, ...params,
current, current,
size, size,
missionNo, missionNo,
} },
}) });
} };
export const getDetail = export const getDetail = (missionNo) => {
(missionNo) => {
return request({ return request({
url: '/api/jobslink-api/missions/mission/detail', url: "/api/jobslink-api/missions/mission/detail",
method: 'get', method: "get",
params: {missionNo} params: { missionNo },
}) });
} };
export const delay = export const delay = (missionNo, expiryTime, remarks) => {
(missionNo, expiryTime, remarks) => {
return request({ return request({
url: '/api/jobslink-api/payment/mission/payroll/manage/delay', url: "/api/jobslink-api/payment/mission/payroll/manage/delay",
method: 'post', method: "post",
params: { params: {
missionNo, missionNo,
expiryTime, expiryTime,
remarks, remarks,
}, },
}) });
} };
export const review = export const review = (ids, remarks) => {
(ids, remarks) => {
return request({ return request({
url: '/api/jobslink-api/missions/mission/manage/review', url: "/api/jobslink-api/missions/mission/manage/review",
method: 'post', method: "post",
data: { data: {
ids, ids,
remarks, remarks,
} },
}) });
} };
export const complet = (ids) => { export const complet = (ids) => {
return request({ return request({
url: '/api/jobslink-api/missions/mission/manage/complet', url: "/api/jobslink-api/missions/mission/manage/complet",
method: 'post', method: "post",
params: {ids} params: { ids },
}) });
} };
//导出数据 //导出数据
export const download = (query) => { export const download = (query) => {
query=JSON.stringify(query).replace(/:/g,"=") query = JSON.stringify(query).replace(/:/g, "=");
query=query.replace(/{/g,"") query = query.replace(/{/g, "");
query=query.replace(/}/g,"") query = query.replace(/}/g, "");
query=query.replace(/,/g,"&") query = query.replace(/,/g, "&");
query=query.replace(/"/g,"") query = query.replace(/"/g, "");
return `jobslink-api/missions/mission/export-mission?${query}&Jobslink-Auth=${getToken()}` return `jobslink-api/missions/mission/export-mission?${query}&Jobslink-Auth=${getToken()}`;
/*let { /*let {
companyName,missionNo,missionTitle,type,stime,etime,status companyName,missionNo,missionTitle,type,stime,etime,status
@@ -99,4 +94,4 @@ export const download = (query) => {
return `jobslink-api/missions/mission/export-mission?companyName=${companyName}&missionNo=${missionNo}&missionTitle=${missionTitle}&type=${type}&stime=${stime}&etime=${etime}&status=${status}&Jobslink-Auth=${getToken()}` return `jobslink-api/missions/mission/export-mission?companyName=${companyName}&missionNo=${missionNo}&missionTitle=${missionTitle}&type=${type}&stime=${stime}&etime=${etime}&status=${status}&Jobslink-Auth=${getToken()}`
*/ */
} };

144
src/api/workstation/post.js Normal file
View File

@@ -0,0 +1,144 @@
import request from "@/router/axios";
import { getToken } from "@/util/auth";
// 任务汇总概况
export const gatherInfo = (params) => {
return request({
url: "/api/jobslink-api/works/station/gatherInfo",
method: "get",
params: params,
});
};
// 任务明细概况
export const detailInfo = (params) => {
return request({
url: "/api/jobslink-api/works/station/detailInfo",
method: "get",
params: params,
});
};
// 任务汇总列表分页
export const gatherList = (params) => {
return request({
url: "/api/jobslink-api/works/station/gatherList",
method: "get",
params: params,
});
};
// 任务明细列表分页
export const detailList = (params) => {
return request({
url: "/api/jobslink-api/works/station/detailList",
method: "get",
params: params,
});
};
// 任务明细列表导出
export const stationExport = (
status,
companyName,
missionNo,
missionTitle,
reviewState,
stime,
etime,
current,
size
) => {
return `jobslink-api/works/station/export?status=${status}&companyName=${companyName}&missionNo=${missionNo}&missionTitle=${missionTitle}&reviewState=${reviewState}&stime=${stime}&etime=${etime}&current=${current}&size=${size}&Jobslink-Auth=${getToken()}`;
};
export const getList = (current, size, params) => {
return request({
url: "/api/jobslink-api/jkWorks/jkWorks/list",
method: "get",
params: {
...params,
current,
size,
},
});
};
export const getZPView = (current, size, missionNo, params) => {
return request({
url: "/api/jobslink-api/missions/mission/apply/manage/list",
method: "get",
params: {
...params,
current,
size,
missionNo,
type: 2,
},
});
};
export const getWageView = (current, size, missionNo, params) => {
return request({
url: "/api/jobslink-api/payment/userOrder/mission/user/list",
method: "get",
params: {
...params,
current,
size,
missionNo,
},
});
};
export const getDetail = (missionNo) => {
return request({
url: "/api/jobslink-api/jkWorks/jkWorks/detail",
method: "get",
params: { missionNo },
});
};
export const delay = (missionNo, expiryTime, remarks) => {
return request({
url: "/api/jobslink-api/payment/mission/payroll/manage/delay",
method: "post",
params: {
missionNo,
expiryTime,
remarks,
},
});
};
export const review = (ids, remarks) => {
return request({
url: "/api/jobslink-api/jkWorks/jkWorks/manage/review",
method: "post",
data: {
ids,
remarks,
},
});
};
export const complet = (ids) => {
return request({
url: "/api/jobslink-api/jkWorks/jkWorks/manage/complet",
method: "post",
params: { ids },
});
};
//导出数据
export const download = (query) => {
query = JSON.stringify(query).replace(/:/g, "=");
query = query.replace(/{/g, "");
query = query.replace(/}/g, "");
query = query.replace(/,/g, "&");
query = query.replace(/"/g, "");
return `jobslink-api/jkWorks/jkWorks/export-mission?${query}&Jobslink-Auth=${getToken()}`;
/*let {
companyName,missionNo,missionTitle,type,stime,etime,status
}=query;
return `jobslink-api/jkWorks/jkWorks/export-mission?companyName=${companyName}&missionNo=${missionNo}&missionTitle=${missionTitle}&type=${type}&stime=${stime}&etime=${etime}&status=${status}&Jobslink-Auth=${getToken()}`
*/
};

View File

@@ -53,6 +53,9 @@ export const payState = [
export const taskState = [ export const taskState = [
{value: 1, label: '任务汇总'}, {value: 2, label: '任务明细'} {value: 1, label: '任务汇总'}, {value: 2, label: '任务明细'}
]; ];
export const postState = [
{value: 1, label: '岗位汇总'}, {value: 2, label: '岗位明细'}
];
export const enterpriseState = [ export const enterpriseState = [
{value: 1, label: '审核中企业'}, {value: 2, label: '合作中企业'}, {value: 1, label: '审核中企业'}, {value: 2, label: '合作中企业'},
{value: 3, label: '终止合作企业'} {value: 3, label: '终止合作企业'}
@@ -61,6 +64,10 @@ export const companyMissionState = [
{value: 1, label: '招聘中'}, {value: 2, label: '任务中'}, {value: 1, label: '招聘中'}, {value: 2, label: '任务中'},
{value: 3, label: '已完成'}, {value: 4, label: '已失效'} {value: 3, label: '已完成'}, {value: 4, label: '已失效'}
]; ];
export const companyPostState = [
{value: 1, label: '在招'}, {value: 2, label: '已招'},
{value: 3, label: '过期'}, {value: 4, label: '未正式发布'}
];
//电子签章管理 //电子签章管理
export const esignatureState = [ export const esignatureState = [
{value: 0, label: '待签发'}, {value: 1, label: '签发成功'},{value: 2, label: '签发失败'} {value: 0, label: '待签发'}, {value: 1, label: '签发成功'},{value: 2, label: '签发失败'}

View File

@@ -2,11 +2,8 @@
<div> <div>
<basic-container> <basic-container>
<el-radio-group v-model="search.status" size="small" @change="radioGroup"> <el-radio-group v-model="search.status" size="small" @change="radioGroup">
<el-radio-button <el-radio-button v-for="(item, key, index) in missionTypes" :key="index"
v-for="(item,key,index) in missionTypes" :label="item.value">{{ item.label }}</el-radio-button>
:key="index"
:label="item.value"
>{{item.label}}</el-radio-button>
</el-radio-group> </el-radio-group>
</basic-container> </basic-container>
@@ -15,11 +12,10 @@
<p class="title">{{ search.status | searchStatus }}</p> <p class="title">{{ search.status | searchStatus }}</p>
<div style="height: 30px;"></div> <div style="height: 30px;"></div>
<div v-if="search.status === 1" style="display: flex;flex-wrap: wrap;"> <div v-if="search.status === 1" style="display: flex;flex-wrap: wrap;">
<span class="name">任务总数&nbsp;&nbsp;&nbsp;{{taskGather.totalCount}}</span> <span class="name">岗位总数&nbsp;&nbsp;&nbsp;{{ taskGather.totalCount }}</span>
<span class="name" style="margin-left: 30px;"> <span class="name" style="margin-left: 30px;">
任务阶段
<span class="smallTitle">招聘中</span>{{ taskGather.recruitCount }} <span class="smallTitle">招聘中</span>{{ taskGather.recruitCount }}
<span class="smallTitle">任务中</span>{{taskGather.startCount}} <!-- <span class="smallTitle">任务中</span>{{taskGather.startCount}} -->
<span class="smallTitle">已完成</span>{{ taskGather.completCount }} <span class="smallTitle">已完成</span>{{ taskGather.completCount }}
<span class="smallTitle">已失效</span>{{ taskGather.invalidCount }} <span class="smallTitle">已失效</span>{{ taskGather.invalidCount }}
<span class="smallTitle">审核未通过</span>{{ taskGather.rejectCount }} <span class="smallTitle">审核未通过</span>{{ taskGather.rejectCount }}
@@ -27,7 +23,7 @@
</div> </div>
<div v-if="search.status === 2" style="display: flex;flex-wrap: wrap;"> <div v-if="search.status === 2" style="display: flex;flex-wrap: wrap;">
<span class="name" style="margin-right: 40px;">任务总数&nbsp;&nbsp;&nbsp;{{taskDetail.totalCount}}</span> <span class="name" style="margin-right: 40px;">岗位总数&nbsp;&nbsp;&nbsp;{{ taskDetail.totalCount }}</span>
<span class="name"> <span class="name">
人员情况 人员情况
<span class="smallTitle">招聘总人数</span>{{ taskDetail.enListCount }} <span class="smallTitle">招聘总人数</span>{{ taskDetail.enListCount }}
@@ -40,11 +36,7 @@
<basic-container> <basic-container>
<!-- 搜索栏 --> <!-- 搜索栏 -->
<el-form <el-form size="small" label-position="right" :inline="true">
size="small"
label-position="right"
:inline="true"
>
<el-row :span="24" v-if="search.status === 1"> <el-row :span="24" v-if="search.status === 1">
<el-form-item label="公司名称:"> <el-form-item label="公司名称:">
@@ -76,48 +68,33 @@
<el-input v-model="search.companyName" placeholder="公司名称"></el-input> <el-input v-model="search.companyName" placeholder="公司名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="任务编号:"> <el-form-item label="岗位编号:">
<el-input v-model="search.missionNo" placeholder="任务编号" ></el-input> <el-input v-model="search.missionNo" placeholder="岗位编号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="任务标题:"> <el-form-item label="岗位标题:">
<el-input v-model="search.missionTitle" placeholder="任务标题" ></el-input> <el-input v-model="search.missionTitle" placeholder="岗位标题"></el-input>
</el-form-item> </el-form-item>
<br> <br>
<el-form-item> <el-form-item>
<el-select v-model="search.reviewState" placeholder="请选择搜索时间类型" style="width:100%"> <el-select v-model="search.reviewState" placeholder="请选择搜索时间类型" style="width:100%">
<el-option <el-option v-for="(item, key, index) in timeStatus" :key="index" :label="item.label"
v-for="(item,key,index) in timeStatus" :value="item.value"></el-option>
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker :disabled="search.reviewState === ''" v-model="search.taskTime" type="daterange"
:disabled="search.reviewState === ''" range-separator="" start-placeholder="开始时间" end-placeholder="完成时间" format="yyyy 年 MM 月 dd 日"
v-model="search.taskTime" value-format="yyyy-MM-dd" @change="dateChangeSubTime">
type="daterange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="完成时间"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
@change="dateChangeSubTime">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<tool-tip></tool-tip> <tool-tip></tool-tip>
<el-form-item label="任务状态:"> <el-form-item label="岗位状态:">
<el-select v-model="search.jobStatus" placeholder="任务状态" style="width:100%"> <el-select v-model="search.jobStatus" placeholder="岗位状态" style="width:100%">
<el-option <el-option v-for="(item, key, index) in jobStatus" :key="index" :label="item.label"
v-for="(item,key,index) in jobStatus" :value="item.value"></el-option>
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -137,8 +114,8 @@
</template> </template>
<script> <script>
import { taskState, jobStatus, timeStatus } from '@/common/dic' import { postState, companyPostState, timeStatus, } from '@/common/dic'
import {gatherInfo, detailInfo} from '@/api/workstation/task' import { gatherInfo, detailInfo } from '@/api/workstation/post'
import gather from "./table/gather"; import gather from "./table/gather";
import detail from "./table/detail"; import detail from "./table/detail";
import { setStore, getStore } from '@/util/store' import { setStore, getStore } from '@/util/store'
@@ -148,8 +125,8 @@ export default {
data() { data() {
return { return {
disabled: true, disabled: true,
missionTypes: taskState, missionTypes: postState,
jobStatus: jobStatus, jobStatus: companyPostState,
timeStatus: timeStatus, timeStatus: timeStatus,
activeName: 'first', activeName: 'first',
taskTime: '', taskTime: '',
@@ -164,9 +141,9 @@ export default {
searchStatus(v) { searchStatus(v) {
switch (v) { switch (v) {
case 1: case 1:
return '任务概况'; return '岗位概况';
case 2: case 2:
return '任务概况'; return '岗位概况';
} }
} }
}, },
@@ -220,10 +197,10 @@ export default {
} else if (this.search.status === 2) { } else if (this.search.status === 2) {
this.detailInfoInit() this.detailInfoInit()
var detailObj = { var detailObj = {
status: this.search.jobStatus ? this.search.jobStatus : '', jobStatus: this.search.jobStatus ? this.search.jobStatus : '',
companyName: this.search.companyName ? this.search.companyName : '', companyName: this.search.companyName ? this.search.companyName : '',
missionNo: this.search.missionNo ? this.search.missionNo : '', missionNo: this.search.missionNo ? this.search.missionNo : '',
missionTitle: this.search.missionTitle ? this.search.missionTitle : '', jobName: this.search.missionTitle ? this.search.missionTitle : '',
reviewState: this.search.reviewState ? this.search.reviewState : 0, reviewState: this.search.reviewState ? this.search.reviewState : 0,
stime: this.search.stime ? this.search.stime : '', stime: this.search.stime ? this.search.stime : '',
etime: this.search.etime ? this.search.etime : '' etime: this.search.etime ? this.search.etime : ''
@@ -247,10 +224,10 @@ export default {
}, },
taskOut() { taskOut() {
var detailObj = { var detailObj = {
status: this.search.jobStatus ? this.search.jobStatus : '', jobStatus: this.search.status ? this.search.status : '',
companyName: this.search.companyName ? this.search.companyName : '', companyName: this.search.companyName ? this.search.companyName : '',
missionNo: this.search.missionNo ? this.search.missionNo : '', missionNo: this.search.missionNo ? this.search.missionNo : '',
missionTitle: this.search.missionTitle ? this.search.missionTitle : '', jobName: this.search.missionTitle ? this.search.missionTitle : '',
reviewState: this.search.reviewState ? this.search.reviewState : '', reviewState: this.search.reviewState ? this.search.reviewState : '',
stime: this.search.stime ? this.search.stime : '', stime: this.search.stime ? this.search.stime : '',
etime: this.search.etime ? this.search.etime : '' etime: this.search.etime ? this.search.etime : ''
@@ -265,24 +242,29 @@ export default {
p { p {
margin: 0 !important; margin: 0 !important;
} }
.el-form-item { .el-form-item {
margin-right: 18px !important; margin-right: 18px !important;
/*margin-bottom: 0 !important;*/ /*margin-bottom: 0 !important;*/
} }
.searchBtn { .searchBtn {
display: inline-block; display: inline-block;
margin-bottom: 18px; margin-bottom: 18px;
} }
.taskTip { .taskTip {
border-radius: 0px 4px 5px 4px; border-radius: 0px 4px 5px 4px;
/*padding: 14px;*/ /*padding: 14px;*/
} }
.taskTip .name { .taskTip .name {
font-size: 18px; font-size: 18px;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
line-height: 25px; line-height: 25px;
} }
.taskTip .smallTitle { .taskTip .smallTitle {
width: 36px; width: 36px;
height: 25px; height: 25px;
@@ -293,6 +275,7 @@ export default {
margin-right: 15px; margin-right: 15px;
margin-left: 40px; margin-left: 40px;
} }
.taskTip .title { .taskTip .title {
height: 30px; height: 30px;
font-size: 22px; font-size: 22px;

View File

@@ -38,7 +38,7 @@
</div> </div>
</avue-crud> </avue-crud>
<el-drawer title="详情" :visible.sync="viewDrawer" size="60%"> <el-drawer title="详情" :visible.sync="viewDrawer" size="60%">
<mission-view :model="view"></mission-view> <post-view :model="view"></post-view>
</el-drawer> </el-drawer>
</div> </div>
</template> </template>
@@ -46,15 +46,16 @@
<script> <script>
import { import {
getDetail, getDetail,
} from "@/api/manage/mission"; } from "@/api/workstation/post";
import missionView from "@/views/util/mission-view"; import postView from "@/views/util/post-view";
import {detailList, stationExport} from '@/api/workstation/task' import {detailList, stationExport} from '@/api/workstation/post'
import { missionState,companyPostState } from "@/common/dic";
import {dateFormat} from '@/util/date' import {dateFormat} from '@/util/date'
// import {download} from '@/util/util' // import {download} from '@/util/util'
export default { export default {
name: "task", name: "post",
components: {missionView}, components: {postView},
filters: { filters: {
jobStatus (v) { jobStatus (v) {
switch (v) { switch (v) {
@@ -109,11 +110,11 @@ export default {
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ {
label: "任务标题", label: "岗位标题",
prop: "missionTitle", prop: "jobName",
}, },
{ {
label: "任务编码", label: "岗位编码",
prop: "missionNo", prop: "missionNo",
display: false, display: false,
}, },
@@ -122,8 +123,9 @@ export default {
prop: "companyName", prop: "companyName",
}, },
{ {
label: "任务状态", label: "岗位状态",
prop: "status", prop: "jobStatus",
dicData: companyPostState,
slot: true slot: true
}, },
{ {

View File

@@ -31,12 +31,12 @@
<script> <script>
import missionView from "@/views/util/mission-view"; import missionView from "@/views/util/mission-view";
import {gatherList} from '@/api/workstation/task' import {gatherList} from '@/api/workstation/post'
import {dateFormat} from '@/util/date' import {dateFormat} from '@/util/date'
export default { export default {
name: "task", name: "post",
components: {missionView}, components: {missionView},
data () { data () {
return { return {
@@ -134,7 +134,7 @@ export default {
// display: false, // display: false,
// }, // },
{ {
label: "最新发布任务时间", label: "最新发布岗位时间",
prop: "openTime", prop: "openTime",
slot: true, slot: true,
display: false display: false

View File

@@ -15,24 +15,24 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="任务编码:"> <el-form-item label="岗位编码:">
<el-input <el-input
v-model="query.missionNo" v-model="query.missionNo"
placeholder="任务编码" placeholder="岗位编码"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="任务标题:"> <el-form-item label="岗位标题:">
<el-input <el-input
v-model="query.missionTitle" v-model="query.jobName"
placeholder="任务标题" placeholder="岗位标题"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="query.type" placeholder="请选择搜索时间类型"> <el-select v-model="query.type" placeholder="请选择搜索时间类型">
<el-option label="任务开始日期" :value="0"></el-option> <el-option label="岗位开始日期" :value="0"></el-option>
<el-option label="任务结束日期" :value="2"></el-option> <el-option label="岗位结束日期" :value="2"></el-option>
<el-option label="报名截止日期" :value="3"></el-option> <el-option label="报名截止日期" :value="3"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -49,10 +49,10 @@
</el-form-item> </el-form-item>
<tool-tip></tool-tip> <tool-tip></tool-tip>
<br> <br>
<el-form-item label="任务状态:"> <el-form-item label="岗位状态:">
<el-select v-model="query.status"> <el-select v-model="query.jobStatus">
<el-option <el-option
v-for="(item, index) in mStatusList" v-for="(item, index) in option.mStatusList"
:key="index" :key="index"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@@ -94,7 +94,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
> >
<template slot="menuLeft"> <!-- <template slot="menuLeft">
<el-button <el-button
v-if="vaildData(permission.manage_mission_check, false)" v-if="vaildData(permission.manage_mission_check, false)"
size="small" size="small"
@@ -102,7 +102,7 @@
type="primary" type="primary"
>任务审核</el-button >任务审核</el-button
> >
</template> </template> -->
<template slot="menuRight"> <template slot="menuRight">
<el-button size="small" @click.stop="downRecords" type="primary" <el-button size="small" @click.stop="downRecords" type="primary"
>导出</el-button >导出</el-button
@@ -110,7 +110,7 @@
</template> </template>
<template slot-scope="{ row }" slot="menu"> <template slot-scope="{ row }" slot="menu">
<el-button <el-button
v-if="vaildData(permission.manage_mission_delay, false) && row.status==3" v-if="vaildData(permission.manage_mission_delay, false) && row.jobStatus==3"
size="small" size="small"
@click.stop="handleDelay(row)" @click.stop="handleDelay(row)"
type="text" type="text"
@@ -131,7 +131,7 @@
>招聘情况</el-button >招聘情况</el-button
> >
<el-button <el-button
v-if="row.status==2" v-if="row.jobStatus==2"
size="small" size="small"
@click.stop="handleFinish(row)" @click.stop="handleFinish(row)"
type="text" type="text"
@@ -145,7 +145,7 @@
@success="onLoad(page, query)" @success="onLoad(page, query)"
></delay-dialog> ></delay-dialog>
<el-drawer title="详情" :visible.sync="viewDrawer" size="60%"> <el-drawer title="详情" :visible.sync="viewDrawer" size="60%">
<mission-view :model="view"></mission-view> <post-view :model="view"></post-view>
</el-drawer> </el-drawer>
<zp-view ref="zpView"></zp-view> <zp-view ref="zpView"></zp-view>
<wage-view ref="wageView"></wage-view> <wage-view ref="wageView"></wage-view>
@@ -159,13 +159,13 @@ import {
complet, complet,
getDetail, getDetail,
download, download,
} from "@/api/manage/mission"; } from "@/api/workstation/post";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import delayDialog from "./delayDialog"; import delayDialog from "./delayDialog";
import missionView from "@/views/util/mission-view"; import postView from "@/views/util/post-view";
import zpView from "./zpView"; import zpView from "./zpView";
import wageView from "./wageView"; import wageView from "./wageView";
import { missionState, wageUnitCategoryState } from "@/common/dic"; import { companyPostState, wageUnitCategoryState } from "@/common/dic";
import { calcDate } from "@/util/date"; import { calcDate } from "@/util/date";
import { Message } from "element-ui"; import { Message } from "element-ui";
import lodash from "lodash"; import lodash from "lodash";
@@ -179,7 +179,7 @@ const message = lodash.throttle(
); );
export default { export default {
components: { delayDialog, missionView, zpView, wageView }, components: { delayDialog, postView, zpView, wageView },
name: "manage_mission", name: "manage_mission",
data() { data() {
return { return {
@@ -222,7 +222,7 @@ export default {
dialogClickModal: false, dialogClickModal: false,
dialogType: "drawer", dialogType: "drawer",
dialogFullscreen: true, dialogFullscreen: true,
mStatusList: missionState, mStatusList: companyPostState,
column: [ column: [
{ {
label: "公司名称", label: "公司名称",
@@ -230,13 +230,13 @@ export default {
display: false, display: false,
}, },
{ {
label: "任务编码", label: "岗位编码",
prop: "missionNo", prop: "missionNo",
display: false, display: false,
}, },
{ {
label: "任务标题", label: "岗位标题",
prop: "missionTitle", prop: "jobName",
display: false, display: false,
}, },
{ {
@@ -264,7 +264,7 @@ export default {
minWidth: 70, minWidth: 70,
}, },
{ {
label: "任务时长", label: "岗位时长",
prop: "missionDuration", prop: "missionDuration",
search: false, search: false,
searchSpan: 5, searchSpan: 5,
@@ -279,7 +279,7 @@ export default {
valueFormat: "yyyy-MM-dd", valueFormat: "yyyy-MM-dd",
}, },
{ {
label: "任务开始日期", label: "岗位开始日期",
prop: "stime", prop: "stime",
type: "date", type: "date",
display: false, display: false,
@@ -287,7 +287,7 @@ export default {
format: "yyyy-MM-dd", format: "yyyy-MM-dd",
}, },
{ {
label: "任务结束日期", label: "岗位结束日期",
prop: "etime", prop: "etime",
type: "date", type: "date",
display: false, display: false,
@@ -321,17 +321,17 @@ export default {
display: false, display: false,
}, },
{ {
label: "任务状态", label: "岗位状态",
prop: "status",
type: "select", type: "select",
dicData: missionState, prop: "jobStatus",
dicData: companyPostState,
display: false, display: false,
span: 24, span: 24,
width: 80, width: 80,
}, },
{ {
label:"备注", label:"备注",
prop:"remarks" prop:"jobDescription"
} }
], ],
}, },
@@ -467,7 +467,7 @@ export default {
let idList = []; let idList = [];
for (let i = 0; i < this.ids.length; i++) { for (let i = 0; i < this.ids.length; i++) {
this.data.forEach((ele) => { this.data.forEach((ele) => {
if (ele.status == 1 && ele.id == this.ids[i]) { if (ele.jobStatus == 1 && ele.id == this.ids[i]) {
idList.push(ele.id); idList.push(ele.id);
} }
}); });
@@ -508,7 +508,7 @@ export default {
} }
}, },
handleFinish(row) { handleFinish(row) {
if (row.status!=2) { if (row.jobStatus!=2) {
this.$message.error('只能提前完成【任务中】的任务') this.$message.error('只能提前完成【任务中】的任务')
} }
/*只能提前完成【任务中】的任务*/ /*只能提前完成【任务中】的任务*/

View File

@@ -20,7 +20,7 @@
</template> </template>
<script> <script>
import { getZPView } from "@/api/manage/mission"; import { getZPView } from "@/api/workstation/post";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
export default { export default {

View File

@@ -0,0 +1,259 @@
<template>
<div class="mission-view">
<el-form label-position="left" size="small">
<el-collapse v-model="activeNames" @change="handleChange" class="avue-group">
<el-collapse-item title="岗位信息" name="1" disabled="true">
<template slot="title">
<div class="avue-group__header">
<div class="avue-group__title">岗位信息</div>
</div>
</template>
<el-row>
<el-col span="12">
<el-form-item label="岗位名称:">{{
model.jobName
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="岗位编码:">{{
model.missionNo
}}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="报名截止:">{{
format(model.etimePub)
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="岗位时间:">{{ format(model.stime) }}
{{ format(model.etime) }}</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="岗位要求" name="2" disabled="true">
<template slot="title">
<div class="avue-group__header">
<div class="avue-group__title">岗位要求</div>
</div>
</template>
<el-row>
<el-col span="12">
<el-form-item label="招聘人数:">{{ model.peopleNum }}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="参考工资:">{{ model.wage
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="行业类型:">{{
model.tradeNames
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item>
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
{{ model.worktypeNames }}
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>
<el-col span="24">
<el-form-item label="技能要求:">
<el-tag :key="skill" v-for="skill in getSkill(model.skillNames)">{{ skill }}</el-tag>
</el-form-item>
</el-col>
</el-row> -->
<el-row>
<el-col span="24">
<el-form-item label="岗位描述:">{{
model.jobDescription
}}</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="人员要求" name="3" disabled="true">
<template slot="title">
<div class="avue-group__header">
<div class="avue-group__title">人员要求</div>
</div>
</template>
<el-row>
<!-- <el-col span="16">
<el-form-item label="人员属性:">{{
model.userNature
}}</el-form-item>
</el-col> -->
<el-col span="16">
<el-form-item label="性别要求:">{{ gender[model.sex] }}</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="年龄要求:">{{
model.ageDesc
}}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="16">
<el-form-item label="学历要求:">{{
education[model.education]
}}</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="经验要求:">{{
model.experienceDesc
}}</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="联系人" name="4" disabled="true">
<template slot="title">
<div class="avue-group__header">
<div class="avue-group__title">企业信息</div>
</div>
</template>
<el-row>
<el-col span="12">
<el-form-item label="企业名称:">{{
model.companyName
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="企业规模:">{{
model.jobCompanyScale
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="企业性质:">{{
model.jobCompanyNature
}}</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="所属行业:">{{
model.jobCompanyIndustry
}}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="24">
<el-form-item label="企业介绍:">{{
model.jobCompanyDescription
}}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="8">
<el-form-item label="联 系 人:">{{
model.callName
}}</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="联系方式:">{{
model.callTel
}}</el-form-item>
</el-col>
<el-col span="8">
<el-form-item>
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
{{ model.callNumber }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="24">
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label
}}
{{ city[2] && city[2].label }}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="24">
<el-form-item label="详细地址:">{{
model.address
}}</el-form-item>
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</template>
<script>
import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex";
import { dateFormat } from "@/util/date";
import {
wageUnitCategoryState,
educationState,
genderState,
} from "@/common/dic";
function getDic(arr) {
let rel = {};
arr.forEach((element) => {
rel[element.value] = element.label;
});
return rel;
}
export default {
components: { SelectMap },
props: { model: Object },
data() {
return {
activeNames: ["1", "2", "3", "4"],
wageUnitCategory: getDic(wageUnitCategoryState),
education: getDic(educationState),
gender: getDic(genderState),
};
},
mounted() { },
methods: {
getSkill(skillStr) {
return skillStr.split(",");
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
},
computed: {
...mapGetters(["area"]),
city() {
return this.$store.getters.getAreaParents(this.model.cityId);
},
},
};
</script>
<style>
.mission-view .el-tag+.el-tag {
margin-left: 5px;
}
.mission-view .el-form {
padding: 0 20px;
}
.mission-view .el-form .el-col {
padding: 0 10px;
}
.mission-view .el-form .el-col .el-form-item {
margin-bottom: 18px;
}
.mission-view .el-collapse {
border-top: 0px;
}
</style>

View File

@@ -24,7 +24,8 @@ module.exports = {
proxy: { proxy: {
"/api": { "/api": {
// target: 'http://127.0.0.1:8000', // 本地服务接口地址 // target: 'http://127.0.0.1:8000', // 本地服务接口地址
target: "http://39.98.184.58:8000", // 阿里云后台地址 // target: "http://39.98.184.58:8000", // 阿里云后台地址
target: "http://192.168.0.106:8000", // 本地
ws: true, ws: true,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {