flat:9-11暂存

This commit is contained in:
史典卓
2024-09-11 15:10:55 +08:00
parent 1016f6f3f3
commit c40af81ac4
21 changed files with 1339 additions and 1292 deletions

View File

@@ -4,3 +4,4 @@ VUE_APP_REPLACE_STR = {"{oss_file_url}": "http://10.165.0.173:8000", "https://dy
VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.173/manage/login&stService=http%3A%2F%2F10.165.0.173%2Fmanage%2Flogin VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.173/manage/login&stService=http%3A%2F%2F10.165.0.173%2Fmanage%2Flogin
VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768 VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
VUE_APP_TIANDITU_APIKEY = e4266a5e84fe6c10f60c559967f0a03f VUE_APP_TIANDITU_APIKEY = e4266a5e84fe6c10f60c559967f0a03f
VUE_APP_LARGESCREEN = http://10.165.0.173/largescreen/

View File

@@ -4,3 +4,4 @@ VUE_APP_REPLACE_STR = {"{oss_file_url}": "http://10.165.0.173:8000", "https://dy
VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.54:8300/manage/login&stService=http%3A%2F%2F10.165.0.54%3A8300%2Fmanage%2Flogin VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.54:8300/manage/login&stService=http%3A%2F%2F10.165.0.54%3A8300%2Fmanage%2Flogin
VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768 VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
VUE_APP_TIANDITU_APIKEY = e4266a5e84fe6c10f60c559967f0a03f VUE_APP_TIANDITU_APIKEY = e4266a5e84fe6c10f60c559967f0a03f
VUE_APP_LARGESCREEN = http://10.165.0.77/largescreen/

View File

@@ -1,5 +1,5 @@
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) => {
@@ -13,32 +13,32 @@ export const getList =
} }
}) })
} }
// 企业列表 // 企业列表
export const getListNew = export const getListNew =
(current, size, params) => { (current, size, params) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/manage/listNew', url: '/api/jobslink-api/tenant/company/manage/listNew',
method: 'get', method: 'get',
params: { params: {
...params, ...params,
current, current,
size, size,
} }
}) })
} }
//暂不处理 //暂不处理
export const getNoProcessing = export const getNoProcessing =
(id, desc, status) => { (id, desc, status) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/noProcessing', url: '/api/jobslink-api/tenant/company/noProcessing',
method: 'get', method: 'get',
params: { params: {
id, id,
desc, desc,
status, status,
} }
}) })
} }
// 认证企业列表菜单 // 认证企业列表菜单
export const getMenuList = export const getMenuList =
(current, size, params) => { (current, size, params) => {
@@ -59,34 +59,34 @@ export const getDetail =
return request({ return request({
url: '/api/jobslink-api/tenant/company/detail', url: '/api/jobslink-api/tenant/company/detail',
method: 'get', method: 'get',
params: { id } params: {id}
}) })
} }
export const detailCompany = export const detailCompany =
(id) => { (params) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/detailCompany', url: '/api/jobslink-api/tenant/company/detailCompany',
method: 'get', method: 'get',
params: { id } params: params
}) })
} }
// 仅保存或提交审核 // 仅保存或提交审核
export const detailNew = export const detailNew =
(flag,company,saveFlag) => { (flag, company, saveFlag) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/detailNew', url: '/api/jobslink-api/tenant/company/detailNew',
method: 'post', method: 'post',
data: {flag,company,saveFlag} data: {flag, company, saveFlag}
}) })
} }
//审核接口 //审核接口
export const review = export const review =
(id,status,desc) => { (id, status, desc) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/review', url: '/api/jobslink-api/tenant/company/review',
method: 'get', method: 'get',
params: { id ,status ,desc} params: {id, status, desc}
}) })
} }
// 企业开户 // 企业开户
@@ -115,39 +115,41 @@ export const configDetail =
return request({ return request({
url: '/api/jobslink-api/tenant/base/config/detail', url: '/api/jobslink-api/tenant/base/config/detail',
method: 'get', method: 'get',
params: { companyId, tenantId } params: {companyId, tenantId}
}) })
} }
//下载全部 //下载全部
export const downloadList = export const downloadList =
(urls) => { (urls) => {
return `/api/jobslink-api/tenant/company/downloadList?urls=${urls}&Jobslink-Auth=${getToken()}` return `/api/jobslink-api/tenant/company/downloadList?urls=${urls}&Jobslink-Auth=${getToken()}`
} }
// 获取一堆公司信息 // 获取一堆公司信息
function getCompanyInfo(companyId) { function getCompanyInfo(companyId) {
return request({ return request({
url: '/api/jobslink-api/tenant/company/examineInfo', url: '/api/jobslink-api/tenant/company/examineInfo',
method: 'get', method: 'get',
params: { companyId } params: {companyId}
}) })
} }
// 获取一堆公司信息 // 获取一堆公司信息
function getCompanyInfoNew(companyId) { function getCompanyInfoNew(companyId) {
return request({ return request({
url: '/api/jobslink-api/tenant/company/examineInfoNew', url: '/api/jobslink-api/tenant/company/examineInfoNew',
method: 'get', method: 'get',
params: { companyId } params: {companyId}
}) })
} }
// 审核通过 // 审核通过
export const examine = export const examine =
(companyId) => { (companyId) => {
return request({ return request({
url: '/api/jobslink-api/tenant/company/examine', url: '/api/jobslink-api/tenant/company/examine',
method: 'post', method: 'post',
params: { companyId } params: {companyId}
}) })
} }
@@ -174,7 +176,7 @@ export const reject =
return request({ return request({
url: '/api/jobslink-api/tenant/company/reject', url: '/api/jobslink-api/tenant/company/reject',
method: 'post', method: 'post',
params: { companyId, remarks } params: {companyId, remarks}
}) })
} }
@@ -182,7 +184,7 @@ function state(companyId, flag) {
return request({ return request({
url: '/api/jobslink-api/tenant/company/status', url: '/api/jobslink-api/tenant/company/status',
method: 'post', method: 'post',
params: { companyId, flag } params: {companyId, flag}
}) })
} }
@@ -222,7 +224,7 @@ export const getAdmin =
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
getCompanyInfo(companyId) getCompanyInfo(companyId)
.then(function (resp) { .then(function (resp) {
const result = { data: { data: resp.data.data.user } }; const result = {data: {data: resp.data.data.user}};
resolve(result) resolve(result)
}) })
.catch(reject) .catch(reject)
@@ -237,28 +239,28 @@ export const getConfig =
.then(function (resp) { .then(function (resp) {
const data = resp.data.data const data = resp.data.data
const result = { const result = {
data: { data: { config: data.config, fee: data.fee } } data: {data: {config: data.config, fee: data.fee}}
}; };
resolve(result) resolve(result)
}) })
.catch(reject) .catch(reject)
}) })
} }
// 获取配置 // 获取配置
export const getConfigNew = export const getConfigNew =
(companyId) => { (companyId) => {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
getCompanyInfoNew(companyId) getCompanyInfoNew(companyId)
.then(function (resp) { .then(function (resp) {
const data = resp.data.data const data = resp.data.data
const result = { const result = {
data: { data: { config: data.config, fee: data.fee } } data: {data: {config: data.config, fee: data.fee}}
}; };
resolve(result) resolve(result)
}) })
.catch(reject) .catch(reject)
}) })
} }
// 设置配置 // 设置配置
export const setConfig = export const setConfig =
(data) => { (data) => {
@@ -284,7 +286,7 @@ export const serviceEnable = (id, companyId) => {
return request({ return request({
url: '/api/jobslink-api/tenant/config/service/fee/isEnabled', url: '/api/jobslink-api/tenant/config/service/fee/isEnabled',
method: 'post', method: 'post',
data: { id, companyId } data: {id, companyId}
}) })
} }

View File

@@ -1,134 +1,134 @@
import request from '@/router/axios'; import request from '@/router/axios';
export const getList = export const getList =
(current, size, params, deptId) => { (current, size, params, deptId) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/page', url: '/api/jobslink-api/system/tuser/page',
method: 'get', method: 'get',
params: { params: {
...params, current,
current, size,
size, deptId,
deptId, ...params,
} }
}) })
} }
export const getAllList = export const getAllList =
(current, size, params, tenantId) => { (current, size, params, tenantId) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/list', url: '/api/jobslink-api/system/tuser/list',
method: 'get', method: 'get',
params: { params: {
...params, ...params,
current, current,
size, size,
tenantId, tenantId,
} }
}) })
} }
export const remove = export const remove =
(ids) => { (ids) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/remove', url: '/api/jobslink-api/system/tuser/remove',
method: 'post', method: 'post',
params: { params: {
ids, ids,
} }
}) })
} }
export const add = export const add =
(row) => { (row) => {
return request( return request(
{url: '/api/jobslink-api/system/tuser/submit', method: 'post', data: row}) {url: '/api/jobslink-api/system/tuser/submit', method: 'post', data: row})
} }
export const update = export const update =
(row) => { (row) => {
return request( return request(
{url: '/api/jobslink-api/system/tuser/update', method: 'post', data: row}) {url: '/api/jobslink-api/system/tuser/update', method: 'post', data: row})
} }
export const getUser = export const getUser =
(id) => { (id) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/detail', url: '/api/jobslink-api/system/tuser/detail',
method: 'get', method: 'get',
params: { params: {
id, id,
} }
}) })
} }
export const getUserInfo = export const getUserInfo =
() => { () => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/info', url: '/api/jobslink-api/system/tuser/info',
method: 'get', method: 'get',
}) })
} }
export const resetPassword = export const resetPassword =
(userIds) => { (userIds) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/reset-password', url: '/api/jobslink-api/system/tuser/reset-password',
method: 'post', method: 'post',
params: { params: {
userIds, userIds,
} }
}) })
} }
export const updatePassword = export const updatePassword =
(oldPassword, newPassword, newPassword1) => { (oldPassword, newPassword, newPassword1) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/update-password', url: '/api/jobslink-api/system/tuser/update-password',
method: 'post', method: 'post',
params: { params: {
oldPassword, oldPassword,
newPassword, newPassword,
newPassword1, newPassword1,
} }
}) })
} }
export const updateInfo = export const updateInfo =
(row) => { (row) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/update-info', url: '/api/jobslink-api/system/tuser/update-info',
method: 'post', method: 'post',
data: row data: row
}) })
} }
export const grant = export const grant =
(userIds, roleIds) => { (userIds, roleIds) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/grant', url: '/api/jobslink-api/system/tuser/grant',
method: 'post', method: 'post',
params: { params: {
userIds, userIds,
roleIds, roleIds,
} }
}) })
} }
export const enableUser = export const enableUser =
(ids) => { (ids) => {
return request( return request(
{url: '/api/jobslink-api/system/tuser/on', method: 'post', params: {ids}}) {url: '/api/jobslink-api/system/tuser/on', method: 'post', params: {ids}})
} }
export const disableUser = export const disableUser =
(ids) => { (ids) => {
return request({ return request({
url: '/api/jobslink-api/system/tuser/off', url: '/api/jobslink-api/system/tuser/off',
method: 'post', method: 'post',
params: {ids} params: {ids}
}) })
} }
export const getUserInfoById = (userId) => { export const getUserInfoById = (userId) => {
return request({ return request({

View File

@@ -0,0 +1,10 @@
import request from "@/router/axios";
/*获取人才列表*/
export const getServeLogList = (params) => {
return request({
url: "/api/jobslink-api/serve/log/list",
method: "get",
params
});
};

View File

@@ -340,18 +340,16 @@ export const genderState = [
]; ];
// 服务类型 // 服务类型
export const serviceType = [ export const serviceType = [
{ {value: 0, label: "其他指导和服务"},
label: "政策标签", {value: 1, label: "就业指导课程宣讲"},
value: 0, {value: 2, label: "职业选择"},
}, {value: 3, label: "求职择业心理辅导"},
{ {value: 4, label: "就业政策宣讲与就业市场分析"},
label: "个人标签", {value: 5, label: "求职简历面试技巧辅导"},
value: 1, {value: 6, label: "劳动权益与法律保障解读"},
}, {value: 7, label: "创业服务与辅导"},
{ {value: 8, label: "职场适应与职业发展指导"},
label: "服务标签", {value: 9, label: "就业典型案例宣传与就业干预"},
value: 2,
}
]; ];
export const recruitStatus = [ export const recruitStatus = [

View File

@@ -60,7 +60,18 @@ function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time)) return new Promise((resolve) => setTimeout(resolve, time))
} }
Vue.prototype.$api = {sleep} function filterObject(obj) {
const filteredObj = {...obj}; // 创建对象的副本
Object.keys(filteredObj).forEach(key => {
// 判断属性名是否以 $ 开头 且值为 falsy
if (key.startsWith('$') || !filteredObj[key] && filteredObj[key] !== 0) {
delete filteredObj[key];
}
});
return filteredObj;
}
Vue.prototype.$api = {sleep, filterObject}
Vue.config.productionTip = false; Vue.config.productionTip = false;
new Vue({router, store, i18n, render: h => h(App)}).$mount('#app') new Vue({router, store, i18n, render: h => h(App)}).$mount('#app')

View File

@@ -600,7 +600,11 @@ export default {
if (["edit", "view"].includes(type)) { if (["edit", "view"].includes(type)) {
this.imgList = []; this.imgList = [];
this.loading = true; this.loading = true;
detailCompany(this.form.id).then((res) => { let params = {
id: this.form.id,
createDept: this.form.createDept
}
detailCompany(params).then((res) => {
this.loading = false; this.loading = false;
this.form = res.data.data; this.form = res.data.data;
if (this.form.motoleyUrl) { if (this.form.motoleyUrl) {

View File

@@ -1,128 +1,7 @@
<template> <template>
<basic-container> <basic-container>
<!--搜索栏--> <!--搜索栏-->
<el-form <avue-form :option="searchOption" v-model="query" @submit="searchChange1" @reset-change="searchReset1"></avue-form>
size="small"
label-position="right"
style="padding-left: 10px; padding-right: 10px"
:inline="true"
>
<el-row :span="24">
<el-form-item label="机构名称:">
<el-input
v-model="query.companyName"
placeholder="机构名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位编码:">
<el-input
v-model="query.missionNo"
placeholder="岗位编码"
clearable
></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input
v-model="query.address"
placeholder="地址"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位名称:">
<el-input
v-model="query.missionTitle"
placeholder="岗位名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工工种:">
<el-input
v-model="query.worktypeNames"
placeholder="零工工种"
clearable
></el-input>
</el-form-item>
<el-form-item label="审核状态:">
<el-select v-model="query.reviewState">
<el-option
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历:">
<el-select v-model="query.education">
<el-option
v-for="(item, index) in educationState"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<div class="searchBtn">
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="searchChange1"
>
</el-button
>
<el-button size="small" icon="el-icon-delete" @click="searchReset1"
>
</el-button
>
</div>
</el-row>
<el-row :span="24">
<!-- <el-form-item>
<el-select v-model="query.type" placeholder="请选择搜索时间类型">
<el-option label="任务开始日期" :value="0"></el-option>
<el-option label="任务结束日期" :value="2"></el-option>
<el-option label="报名截止日期" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="query.time"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<tool-tip></tool-tip>
<br>
<el-form-item label="任务状态:">
<el-select v-model="query.status">
<el-option
v-for="(item, index) in mStatusList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="数据来源:">
<el-select v-model="query.dataSources">
<el-option
v-for="(item, index) in dataSourcesEnum"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item> -->
</el-row>
</el-form>
<!--搜索--> <!--搜索-->
<avue-crud <avue-crud
:option="option" :option="option"
@@ -226,6 +105,7 @@ wageUnitCategoryState.map((item) => {
wageUnitCategoryStateEnum[item.value] = item.label wageUnitCategoryStateEnum[item.value] = item.label
}) })
import lodash from "lodash"; import lodash from "lodash";
import {getDeptMyTree} from "@/api/tenant/talents";
const message = lodash.throttle( const message = lodash.throttle(
function (options) { function (options) {
@@ -250,7 +130,7 @@ export default {
view: {}, view: {},
form: {}, form: {},
selectionList: [], selectionList: [],
query: {type: ''}, query: {type: '', reviewState: 0},
loading: false, loading: false,
page: { page: {
pageSize: 10, pageSize: 10,
@@ -437,6 +317,7 @@ export default {
], ],
}, },
data: [], data: [],
depTree: [],
}; };
}, },
computed: { computed: {
@@ -456,8 +337,72 @@ export default {
}); });
return ids; return ids;
}, },
searchOption() {
return {
menuSpan: 6,
column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
span: 6,
},
{
label: '机构名称',
prop: 'companyName',
span: 6,
},
{
label: '岗位名称',
prop: 'missionTitle',
span: 6,
},
{
label: '地址',
prop: 'address',
placeholder: "北京-北京市-崇文区",
span: 6,
}, {
label: '零工工种',
prop: 'worktypeNames',
span: 6,
},
{
label: '审核状态',
prop: 'reviewState',
type: 'select',
dicData: recruitStatus,
span: 6,
}, {
label: '学历',
prop: 'education',
type: 'select',
dicData: educationState,
span: 6,
},
]
}
}
},
created() {
this.getDept()
}, },
methods: { methods: {
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
initData() { initData() {
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
@@ -485,14 +430,15 @@ export default {
this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
searchChange1() { searchChange1(form, done) {
if (this.query.time) { if (this.query.time) {
this.query.stime = this.query.time[0]; this.query.stime = this.query.time[0];
this.query.etime = this.query.time[1]; this.query.etime = this.query.time[1];
// delete this.query.time; // delete this.query.time;
} }
this.page.currentPage = 1; this.page.currentPage = 1
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
done && done()
}, },
searchReset1() { searchReset1() {
this.query = {}; this.query = {};
@@ -528,11 +474,12 @@ export default {
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
params = Object.assign(this.query, params); params = Object.assign(this.query, params);
params = this.$api.filterObject(params)
this.loading = true; this.loading = true;
getList( getList(
page.currentPage, page.currentPage,
page.pageSize, page.pageSize,
Object.assign(this.query, params) params
).then((res) => { ).then((res) => {
const data = res.data.data; const data = res.data.data;
this.page.total = data.total; this.page.total = data.total;

View File

@@ -1,84 +1,7 @@
<template> <template>
<basic-container> <basic-container>
<!--搜索栏--> <!--搜索栏-->
<el-form <avue-form :option="searchOption" v-model="query" @submit="searchChange1" @reset-change="searchReset1"></avue-form>
size="small"
label-position="right"
style="padding-left: 10px; padding-right: 10px"
:inline="true"
>
<el-row :span="24">
<el-form-item label="机构名称:">
<el-input
v-model="query.companyName"
placeholder="机构名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位编码:">
<el-input
v-model="query.missionNo"
placeholder="岗位编码"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位名称:">
<el-input
v-model="query.jobName"
placeholder="岗位名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input
v-model="query.address"
placeholder="地址"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工岗位工种:">
<el-input
v-model="query.worktypeNames"
placeholder="零工岗位工种"
clearable
></el-input>
</el-form-item>
<el-form-item label="学历:">
<el-select v-model="query.education">
<el-option
v-for="(item, index) in educationState"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="审核状态:">
<el-select v-model="query.reviewState">
<el-option
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<div class="searchBtn">
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="searchChange1"
>
</el-button
>
<el-button size="small" icon="el-icon-delete" @click="searchReset1"
>
</el-button
>
</div>
</el-row>
</el-form>
<!--搜索--> <!--搜索-->
<avue-crud <avue-crud
:option="option" :option="option"
@@ -192,6 +115,7 @@ import {Message} from "element-ui";
import lodash from "lodash"; import lodash from "lodash";
import {Auditing} from "@/api/manage/mission"; import {Auditing} from "@/api/manage/mission";
import PromptDialog from "@/components/promptDialog/index.vue"; import PromptDialog from "@/components/promptDialog/index.vue";
import {getDeptMyTree} from "@/api/tenant/talents";
const wageUnitCategoryStateEnum = {} const wageUnitCategoryStateEnum = {}
wageUnitCategoryState.map((item) => { wageUnitCategoryState.map((item) => {
@@ -220,7 +144,7 @@ export default {
view: {}, view: {},
form: {}, form: {},
selectionList: [], selectionList: [],
query: {type: ''}, query: {type: '', reviewState: 0},
loading: false, loading: false,
page: { page: {
pageSize: 10, pageSize: 10,
@@ -405,6 +329,7 @@ export default {
], ],
}, },
data: [], data: [],
depTree: [],
}; };
}, },
computed: { computed: {
@@ -424,8 +349,72 @@ export default {
}); });
return ids; return ids;
}, },
searchOption() {
return {
menuSpan: 6,
column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
span: 6,
},
{
label: '机构名称',
prop: 'companyName',
span: 6,
},
{
label: '岗位名称',
prop: 'missionTitle',
span: 6,
},
{
label: '地址',
prop: 'address',
placeholder: "北京-北京市-崇文区",
span: 6,
}, {
label: '零工工种',
prop: 'worktypeNames',
span: 6,
},
{
label: '审核状态',
prop: 'reviewState',
type: 'select',
dicData: recruitStatus,
span: 6,
}, {
label: '学历',
prop: 'education',
type: 'select',
dicData: educationState,
span: 6,
},
]
}
}
},
created() {
this.getDept()
}, },
methods: { methods: {
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
initData() { initData() {
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
@@ -456,7 +445,7 @@ export default {
this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
searchChange1() { searchChange1(from, done) {
if (this.query.time) { if (this.query.time) {
this.query.stime = this.query.time[0]; this.query.stime = this.query.time[0];
this.query.etime = this.query.time[1]; this.query.etime = this.query.time[1];
@@ -464,6 +453,7 @@ export default {
} }
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
done && done()
}, },
searchReset1() { searchReset1() {
this.query = {}; this.query = {};
@@ -499,6 +489,7 @@ export default {
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
params = Object.assign(this.query, params); params = Object.assign(this.query, params);
params = this.$api.filterObject(params)
this.loading = true; this.loading = true;
getList( getList(
page.currentPage, page.currentPage,

View File

@@ -2,50 +2,6 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<basic-container> <basic-container>
<!--搜索栏-->
<el-form
size="small"
label-position="right"
style="padding-left: 10px; padding-right: 10px"
:inline="true"
>
<el-row :span="24">
<el-form-item label="登录账号:">
<el-input
v-model="query.account"
placeholder="登录账号"
clearable
></el-input>
</el-form-item>
<el-form-item label="用户姓名:">
<el-input
v-model="query.realName"
placeholder="用户姓名"
clearable
></el-input>
</el-form-item>
<div class="searchBtn">
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="searchChange1"
>
</el-button
>
<el-button
size="small"
icon="el-icon-delete"
@click="searchReset1"
>
</el-button
>
</div>
<!-- </el-col> -->
</el-row>
</el-form>
<!--搜索-->
<avue-crud <avue-crud
:option="option" :option="option"
:table-loading="loading" :table-loading="loading"
@@ -160,6 +116,7 @@ import {getToken} from "@/util/auth";
import {isMobile} from "@/util/validate"; import {isMobile} from "@/util/validate";
import md5 from "js-md5"; import md5 from "js-md5";
import {excelAccept} from "@/common/accept"; import {excelAccept} from "@/common/accept";
import {getDeptMyTree} from "@/api/tenant/talents";
export default { export default {
name: "user", name: "user",
@@ -191,6 +148,7 @@ export default {
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
depTree: [],
init: { init: {
roleTree: [], roleTree: [],
deptTree: [], deptTree: [],
@@ -203,7 +161,94 @@ export default {
roleTreeObj: [], roleTreeObj: [],
treeDeptId: "", treeDeptId: "",
treeData: [], treeData: [],
option: { data: [],
excelForm: {},
excelOption: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: "文件上传",
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中,请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: "/api/jobslink-api/system/tuser/import-user",
},
{
label: "数据覆盖",
prop: "isCovered",
type: "switch",
align: "center",
width: 80,
dicData: [
{
label: "否",
value: 0,
},
{
label: "是",
value: 1,
},
],
value: 0,
slot: true,
rules: [
{
required: true,
message: "请选择是否覆盖",
trigger: "blur",
},
],
},
{
label: "模板下载",
prop: "excelTemplate",
formslot: true,
span: 24,
},
],
},
};
},
watch: {
"form.tenantId"() {
if (this.form.tenantId !== "" && this.form.tenantId !== undefined) {
this.initData(this.form.tenantId);
}
},
"excelForm.isCovered"() {
if (this.excelForm.isCovered !== "") {
const column = this.findObject(this.excelOption.column, "excelFile");
column.action = `/api/jobslink-api/system/tuser/import-user?isCovered=${this.excelForm.isCovered}`;
}
},
},
computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.user_add, false),
viewBtn: this.vaildData(this.permission.user_view, false),
delBtn: this.vaildData(this.permission.user_delete, false),
editBtn: this.vaildData(this.permission.user_edit, false),
};
},
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids.join(",");
},
option() {
return {
height: "auto", height: "auto",
calcHeight: 125, calcHeight: 125,
tip: false, tip: false,
@@ -217,6 +262,25 @@ export default {
dialogType: "drawer", dialogType: "drawer",
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
display: false,
// searchDisplay: true,
checkStrictly: true,
search: true,
span: 6,
hide: true,
searchLabelWidth: 80,
searchSpan: 6,
},
{ {
label: "所属部门", label: "所属部门",
prop: "deptName", prop: "deptName",
@@ -228,13 +292,20 @@ export default {
prop: "account", prop: "account",
// search: true, // search: true,
display: false, display: false,
search: true,
span: 6,
searchLabelWidth: 80,
searchSpan: 6,
}, },
{ {
label: "用户姓名", label: "用户姓名",
prop: "realName", prop: "realName",
// search: true, // search: true,
display: false, display: false,
search: true,
span: 6,
searchLabelWidth: 80,
searchSpan: 6,
}, },
{ {
label: "所属角色", label: "所属角色",
@@ -394,99 +465,24 @@ export default {
], ],
}, },
], ],
},
data: [],
excelForm: {},
excelOption: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: "文件上传",
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中,请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: "/api/jobslink-api/system/tuser/import-user",
},
{
label: "数据覆盖",
prop: "isCovered",
type: "switch",
align: "center",
width: 80,
dicData: [
{
label: "否",
value: 0,
},
{
label: "是",
value: 1,
},
],
value: 0,
slot: true,
rules: [
{
required: true,
message: "请选择是否覆盖",
trigger: "blur",
},
],
},
{
label: "模板下载",
prop: "excelTemplate",
formslot: true,
span: 24,
},
],
},
};
},
watch: {
"form.tenantId"() {
if (this.form.tenantId !== "" && this.form.tenantId !== undefined) {
this.initData(this.form.tenantId);
} }
}, }
"excelForm.isCovered"() {
if (this.excelForm.isCovered !== "") {
const column = this.findObject(this.excelOption.column, "excelFile");
column.action = `/api/jobslink-api/system/tuser/import-user?isCovered=${this.excelForm.isCovered}`;
}
},
},
computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.user_add, false),
viewBtn: this.vaildData(this.permission.user_view, false),
delBtn: this.vaildData(this.permission.user_delete, false),
editBtn: this.vaildData(this.permission.user_edit, false),
};
},
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids.join(",");
},
}, },
mounted() { mounted() {
this.initData(this.userInfo.tenant_id); this.initData(this.userInfo.tenant_id);
this.getDept()
}, },
methods: { methods: {
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
console.log(this.depTree)
}
},
nodeClick(data) { nodeClick(data) {
this.treeDeptId = data.id; this.treeDeptId = data.id;
this.page.currentPage = 1; this.page.currentPage = 1;

View File

@@ -198,6 +198,7 @@
:page.sync="logPage" :page.sync="logPage"
@size-change="logSizeChange" @size-change="logSizeChange"
@current-change="logCurrentChange" @current-change="logCurrentChange"
ref="logCrud"
> >
<!-- <template slot="menuLeft"> <!-- <template slot="menuLeft">
<el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button> <el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button>
@@ -206,6 +207,13 @@
<el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">修改</el-button> <el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">修改</el-button>
<el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">查看附件</el-button> <el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">查看附件</el-button>
</template> --> </template> -->
<template slot-scope="{row,index}" slot="menu">
<el-button type="text" icon="el-icon-edit" size="small"
v-if="row.serveTheme !== '人工推送岗位' && row.serveTheme !== '人工推送政策'"
@click="$refs.logCrud.rowEdit(row, index)"
>编辑
</el-button>
</template>
</avue-crud> </avue-crud>
</el-drawer> </el-drawer>
<!--新建 编辑分组dialog--> <!--新建 编辑分组dialog-->
@@ -313,7 +321,83 @@ export default {
list: [] list: []
}, },
phoneItem: null, phoneItem: null,
depTree: [] depTree: [],
logOption: {
editBtn: false,
delBtn: true,
addBtn: true,
viewBtn: true,
border: true,
index: true,
indexLabel: "序号",
refreshBtn: false,
dialogType: "drawer",
height: '100',
column: [{
label: '服务时间',
prop: 'createTime',
type: 'date',
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd HH:mm:ss",
rules: [
{
required: true,
message: "请选择服务时间",
trigger: "blur",
},
],
}, {
label: '服务名称',
prop: 'serveName',
display: false,
}, {
label: '服务发起人',
prop: 'fromName',
display: false,
}, {
label: '服务对象',
prop: 'toName',
display: false,
}, {
label: '服务类型',
prop: 'serveType',
type: 'select',
dicData: [
{label: '普通日志', value: 0},
{label: '回访日志', value: 1},
{label: '推送岗位日志', value: 2},
{label: '推送政策日志', value: 3},
],
display: false,
}, {
label: '服务主题',
prop: 'serveTheme',
rules: [
{
required: true,
message: "请输入服务主题",
trigger: "blur",
},
],
}, {
label: '服务内容',
span: 24,
prop: 'serveContent',
type: 'textarea',
rules: [
{
required: true,
message: "请输入服务内容",
trigger: "blur",
},
],
}, {
label: '备注说明',
span: 24,
type: 'textarea',
prop: 'bak1'
}]
}
} }
}, },
computed: { computed: {
@@ -615,84 +699,6 @@ export default {
] ]
} }
}, },
logOption() {
return {
editBtn: true,
delBtn: true,
addBtn: true,
viewBtn: true,
border: true,
index: true,
indexLabel: "序号",
refreshBtn: false,
dialogType: "drawer",
height: '100',
column: [{
label: '服务时间',
prop: 'createTime',
type: 'date',
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd HH:mm:ss",
rules: [
{
required: true,
message: "请选择服务时间",
trigger: "blur",
},
],
}, {
label: '服务名称',
prop: 'serveName',
display: false,
}, {
label: '服务发起人',
prop: 'fromName',
display: false,
}, {
label: '服务对象',
prop: 'toName',
display: false,
}, {
label: '服务类型',
prop: 'serveType',
type: 'select',
dicData: [
{label: '普通日志', value: 0},
{label: '回访日志', value: 1},
{label: '推送岗位日志', value: 2},
{label: '推送政策日志', value: 3},
],
display: false,
}, {
label: '服务主题',
prop: 'serveTheme',
rules: [
{
required: true,
message: "请输入服务主题",
trigger: "blur",
},
],
}, {
label: '服务内容',
span: 24,
prop: 'serveContent',
type: 'textarea',
rules: [
{
required: true,
message: "请输入服务内容",
trigger: "blur",
},
],
}, {
label: '备注说明',
span: 24,
type: 'textarea',
prop: 'bak1'
}]
}
},
}, },
created() { created() {
this.initDept(); this.initDept();
@@ -702,6 +708,13 @@ export default {
this.getDept() this.getDept()
}, },
methods: { methods: {
// rowStyle(column) {
// if (column.row.serveTheme === '人工推送岗位' || column.row.serveTheme === '人工推送政策') {
// this.logOption.editBtn = true
// } else {
// this.logOption.editBtn = false
// }
// },
async getDept() { async getDept() {
let params = { let params = {
tenantId: '000000' tenantId: '000000'
@@ -733,7 +746,8 @@ export default {
}).then(async (res) => { }).then(async (res) => {
let params = { let params = {
idNumber: _this.phoneItem.idNumber, idNumber: _this.phoneItem.idNumber,
phone phone,
serveId: this.selectInfo.id,
} }
let resData = await phoneUpdate(params) let resData = await phoneUpdate(params)
if (resData.data.code === 200) { if (resData.data.code === 200) {

View File

@@ -235,11 +235,11 @@
back-text="不符合" back-text="不符合"
dialogWidth="60%" dialogWidth="60%"
:isInputInfo="false" :isInputInfo="false"
:placeholder="`请输入不符合潜在 ${selectGroupName} 的具体原因`" :placeholder="`请输入不符合 ${selectGroupName} 的具体原因`"
:sub-title="[ :sub-title="[
`请核实人员相关信息进行以下操作`, `请核实人员相关信息进行以下操作`,
`符合表示为已初步判定该人员符合 ${selectGroupName} 相关条件但仍需与该人员主动联系并进一步核实最终以省就业3.0实际政策经办情况为准`, `符合表示为已初步判定该人员符合 ${selectGroupName} 相关条件但仍需与该人员主动联系并进一步核实最终以省就业3.0实际政策经办情况为准`,
`不符合表示经核查后该人员不符合 ${selectGroupName} 相关条件并将该人员从潜在的{就业困难}列表中剔除`, `不符合表示经核查后该人员不符合 ${selectGroupName} 相关条件并将该人员从 ${selectGroupName} 列表中剔除`,
'核实完成后会产生服务日志记录' '核实完成后会产生服务日志记录'
]" ]"
:tips="dialogTips" :tips="dialogTips"
@@ -896,7 +896,7 @@ export default {
this.selectGroupName = groupInfo.groupName this.selectGroupName = groupInfo.groupName
switch (groupInfo.groupName) { switch (groupInfo.groupName) {
case '潜在就业困难人员': case '潜在就业困难人员':
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息'] this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
break break
case '潜在登记失业人员': case '潜在登记失业人员':
this.dialogTips = ['不满足断保3个月', '存在工商信息'] this.dialogTips = ['不满足断保3个月', '存在工商信息']
@@ -908,10 +908,10 @@ export default {
this.dialogTips = ['已经进行就业登记', '存在工商信息', '不是以个人身份参保'] this.dialogTips = ['已经进行就业登记', '存在工商信息', '不是以个人身份参保']
break break
case '潜在公益性岗位申请人员': case '潜在公益性岗位申请人员':
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息'] this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
break break
case '潜在就业见习申请人员': case '潜在就业见习申请人员':
this.dialogTips = ['已就业登记', '不满足16-24岁'] this.dialogTips = ['已经进行就业登记', '不满足16-24岁']
break break
default : default :
this.dialogTips = [] this.dialogTips = []
@@ -936,7 +936,7 @@ export default {
return talentsApproval(params); return talentsApproval(params);
}) })
.then(() => { .then(() => {
this.initDept(); // this.initDept();
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
this.dialogFlag = false this.dialogFlag = false
this.$message.success('操作成功'); this.$message.success('操作成功');
@@ -964,8 +964,8 @@ export default {
return talentsApproval(params); return talentsApproval(params);
}) })
.then(() => { .then(() => {
this.initDept(); // this.initDept();
this.onLoad(this.page, this.query); // this.onLoad(this.page, this.query);
this.dialogFlag = false this.dialogFlag = false
this.$message.success('操作成功'); this.$message.success('操作成功');
}); });

View File

@@ -0,0 +1,263 @@
<template>
<el-row>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="dataSource"
:page.sync="page"
ref="crud"
v-model="crudValues"
:permission="permissionList"
@search-change="searchChange"
@search-reset="searchReset"
@current-change="currentChange"
@size-change="sizeChange"
class="customPage"
:row-style="rowStyle"
>
</avue-crud>
</basic-container>
</el-row>
</template>
<script>
import {mapGetters} from "vuex";
import {getList} from "@/api/tenant/personnelserve";
import {isvalidatemobile} from "@/util/validate";
import {detail, getDept, getDeptMyTree, talentsDetail} from "@/api/tenant/talents";
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
import {getTenantTalentsWarn, tenantTalentsWarn, updateTenantTalentsWarn} from "@/api/tenant/LocalWarningDisposal";
import {getServeLogList} from '@/api/tenant/serverRecords'
const page = {
pageSize: 10,
currentPage: 1,
total: 0,
}
const baseOptions = {
size: 'medium',
dateBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
delBtn: false,
height: "auto",
menuWidth: 130,
reserveSelection: false,
border: true,
columnBtn: false,
refreshBtn: false,
menu: false,
tip: false,
selection: false,
align: 'center',
searchMenuSpan: 6,
// dialogType: "drawer",
searchLabelWidth: 60,
}
export default {
filters: {
ellipsis(value) {
if (!value) return "";
if (value.length > 15) {
return value.slice(0, 14) + "...";
}
return value;
},
},
data() {
return {
loading: false,
dataSource: [],
crudValues: {},
depTree: [],
page: Object.assign({}, page),
logPage: Object.assign({}, page),
logDataSource: [],
loadingLog: false,
innerDrawerLog: false,
innerDrawerAddLog: false,
logValues: {}
}
},
computed: {
...mapGetters(["permission", "userInfo"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_add, false),
viewBtn: true,
delBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_del, false),
editBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_edit, false),
};
},
option() {
const self = this;
const IdCardNo = (rule, value, callback) => {
// if (check18IdCardNo(value)) {
callback();
// } else {
// callback(new Error("身份证格式不正确"));
// }
};
const validateTel = (rule, value, callback) => {
if (isvalidatemobile(value)[0]) {
callback(new Error(isvalidatemobile(value)[1]));
} else {
callback();
}
};
return {
...baseOptions,
column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
hide: true,
search: true,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
searchSpan: 8,
searchLabelWidth: 100,
},
{
label: "姓名",
prop: "name",
display: false
},
{
label: "身份证",
prop: "idNumber",
search: true,
display: false,
searchSpan: 8,
},
{
label: '机构名称',
prop: 'deptName',
display: false
},
{
label: '服务主题',
prop: 'serveTheme',
display: false
},
{
label: '服务时间',
prop: 'time',
display: false
},
{
label: "开始时间",
prop: "stime",
type: "date",
placeholder: "请选开始日期",
search: true,
hide: true,
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
searchLabelWidth: 100,
searchValue: this.getdate(),
searchSpan: 8,
},
{
label: "结束时间",
prop: "etime",
type: "date",
placeholder: "请选择结束日期",
search: true,
hide: true,
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
searchLabelWidth: 100,
searchSpan: 8,
},
]
}
},
},
created() {
this.getDept()
this.onLoad(this.page, {...this.query, stime: this.getdate()})
},
activated() {
this.$nextTick(() => {
this.$refs.crud.refreshTable()
})
},
methods: {
rowStyle(column) {
if (column.row.status == "0") {
this.option.editBtn = true;
} else {
this.option.editBtn = false;
}
},
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad(this.page, this.query);
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
const {releaseTimeRange} = params;
let paramsed = {
current: page.currentPage,
pageSize: page.pageSize,
...params
};
this.loading = true;
getServeLogList(paramsed).then((res) => {
const {total, size, current, records, page} = res.data.data
this.dataSource = records;
this.loading = false;
this.page = {
pageSize: size,
currentPage: current,
total: total,
}
});
},
getdate() {
let time = new Date();
let day = ("0" + time.getDate()).slice(-2);
let month = ("0" + (time.getMonth() + 1)).slice(-2);
let today = time.getFullYear() + "-" + month + "-" + day;
return today;
},
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@@ -27,13 +27,17 @@
<!--自定义列--> <!--自定义列-->
<template slot="period" slot-scope="{row}"> <template slot="period" slot-scope="{row}">
<span v-if="row.startTime && row.endTime"> <span v-if="row.startTime && row.endTime">
<el-tag type="warning" v-if="row.serviceStatus==0">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> <el-tag type="warning"
<el-tag type="success" v-if="row.serviceStatus==1">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> v-if="row.serviceStatus==0">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="danger" v-if="row.serviceStatus==2">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> <el-tag type="success"
<el-tag type="info" v-if="row.serviceStatus==3">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> v-if="row.serviceStatus==1">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="danger"
v-if="row.serviceStatus==2">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="info"
v-if="row.serviceStatus==3">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
</span> </span>
</template> </template>
<template slot="serviceStatus" slot-scope="{row}" > <template slot="serviceStatus" slot-scope="{row}">
<span> <span>
<el-tag type="warning" v-if="row.serviceStatus==0">未生效</el-tag> <el-tag type="warning" v-if="row.serviceStatus==0">未生效</el-tag>
<el-tag type="success" v-if="row.serviceStatus==1">生效中</el-tag> <el-tag type="success" v-if="row.serviceStatus==1">生效中</el-tag>
@@ -41,7 +45,7 @@
<el-tag type="info" v-if="row.serviceStatus==3">已失效</el-tag> <el-tag type="info" v-if="row.serviceStatus==3">已失效</el-tag>
</span> </span>
</template> </template>
<template slot="missionDate" slot-scope="{ row }"> <template slot="missionDate" slot-scope="{ row }">
<div>{{ row.startDate }}{{ row.endDate }}</div> <div>{{ row.startDate }}{{ row.endDate }}</div>
</template> </template>
@@ -52,7 +56,8 @@
size="mini" size="mini"
@click="$refs.resume.openDialog(row)" @click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'" v-if="row.userId && row.userId !== '0'"
>查看简历</el-button >查看简历
</el-button
> >
<div v-else>暂无简历</div> <div v-else>暂无简历</div>
</div> </div>
@@ -64,7 +69,7 @@
</template> </template>
<!--/自定义列--> <!--/自定义列-->
<template v-slot:cardNumber="{row}"> <template v-slot:cardNumber="{row}">
<span>{{idNumberDDesensitization(row.cardNumber)}}</span> <span>{{ idNumberDDesensitization(row.cardNumber) }}</span>
</template> </template>
</avue-crud> </avue-crud>
@@ -73,14 +78,15 @@
</template> </template>
<script> <script>
import { employList, cancelEmploy, } from "@/api/tenant/mission"; import {employList, cancelEmploy,} from "@/api/tenant/mission";
import {getCode,resetPwd} from "@/api/manage/econtract.js";//api import {getCode, resetPwd} from "@/api/manage/econtract.js";//api
import Resume from "@/components/resume/index"; import Resume from "@/components/resume/index";
import { idNumberDDesensitization } from "@/util/util"; import {idNumberDDesensitization} from "@/util/util";
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import { dateFormat } from "@/util/date"; import {dateFormat} from "@/util/date";
import {getConfig} from '@/api/tenant/config' import {getConfig} from '@/api/tenant/config'
import EmployInformation from "./EmployInformation"; import EmployInformation from "./EmployInformation";
export default { export default {
comments: {}, comments: {},
components: { components: {
@@ -92,89 +98,86 @@ export default {
}, },
data() { data() {
const validatePwdLength=(rule,value,callback)=>{ const validatePwdLength = (rule, value, callback) => {
if(value.length!=6 || isNaN(Number(value))){ if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码')); callback(new Error('请输入6位数的数字密码'));
} } else {
else{ callback();
callback();
}
} }
}
const validatePwd = (rule, value, callback) => { const validatePwd = (rule, value, callback) => {
if (value != this.resetPwdForm.pwd) { if (value != this.resetPwdForm.pwd) {
callback(new Error('两次输入密码不一致')); callback(new Error('两次输入密码不一致'));
} } else {
else { callback();
callback();
}
};
const validPwdNums=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
callback(new Error('请输入6位数的数字密码'));
}
else{
callback();
}
} }
};
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
} else {
callback();
}
}
return { return {
selectTaskInfo:{}, selectTaskInfo: {},
getUserConfig:{}, getUserConfig: {},
checkDisplayVisible: false, checkDisplayVisible: false,
fpTitleId:'', fpTitleId: '',
fpData: {}, fpData: {},
pwdFormRules:{ pwdFormRules: {
pwd:[ pwd: [
{ {
required:true,message:'请输入密码',trigger:'blur' required: true, message: '请输入密码', trigger: 'blur'
}, },
{ {
validator:validatePwdLength,trigger:'blur' validator: validatePwdLength, trigger: 'blur'
}, },
] ]
}, },
selectionFlag:true, selectionFlag: true,
/*忘记密码*/ /*忘记密码*/
resetPwdDialogVisible:false, resetPwdDialogVisible: false,
resetPwdForm:{}, resetPwdForm: {},
formLabelWidth:'150px', formLabelWidth: '150px',
msgText: '获取验证码', msgText: '获取验证码',
msgTime:120, msgTime: 120,
//重置密码校验 //重置密码校验
resetPwdRules: { resetPwdRules: {
code: [ code: [
{ {
required: true, message: '请输入验证码', trigger: 'blur' required: true, message: '请输入验证码', trigger: 'blur'
} }
], ],
pwd: [ pwd: [
{ {
required: true, message: '请输入密码', trigger: 'blur' required: true, message: '请输入密码', trigger: 'blur'
}, },
{ {
validator: validPwdNums, trigger: 'blur' validator: validPwdNums, trigger: 'blur'
} }
], ],
pwd2: [ pwd2: [
{ {
required: true, message: '请输入确认密码', trigger: 'blur' required: true, message: '请输入确认密码', trigger: 'blur'
}, },
{ {
validator: validatePwd, trigger: 'blur' validator: validatePwd, trigger: 'blur'
} }
] ]
}, },
loadingbut:false, loadingbut: false,
loadingbuttext:'确定', loadingbuttext: '确定',
downLoadRow:{}, downLoadRow: {},
dataCurClick:{}, dataCurClick: {},
employDataIds:1, employDataIds: 1,
employNum:1, employNum: 1,
imgStr:'', imgStr: '',
isIndeterminate: false, isIndeterminate: false,
checkAll: false, checkAll: false,
checked: false, checked: false,
@@ -183,11 +186,11 @@ export default {
selectionList: [], selectionList: [],
dialogVisible: false, dialogVisible: false,
dialogVisible1: false, dialogVisible1: false,
contractId:'', contractId: '',
labelPosition: 'right', labelPosition: 'right',
pwdForm: { pwdForm: {
pwd: '' pwd: ''
}, },
page: { page: {
pageSize: 20, pageSize: 20,
currentPage: 1, currentPage: 1,
@@ -227,11 +230,11 @@ export default {
editBtn: false, editBtn: false,
excelBtn: false, excelBtn: false,
columnBtn: false, columnBtn: false,
searchBtn: true, searchBtn: false,
searchShow: true, searchShow: false,
searchMenuSpan: 6, searchMenuSpan: 6,
searchLabelWidth: 60, searchLabelWidth: 60,
menu:false, menu: false,
// menuPosition: "center", // menuPosition: "center",
labelPosition: "right", labelPosition: "right",
border: true, border: true,
@@ -258,15 +261,12 @@ export default {
{ {
label: "姓名", label: "姓名",
prop: "realName", prop: "realName",
search: true,
searchSpan: 4, searchSpan: 4,
width:70,
}, },
{ {
label: "性别", label: "性别",
prop: "sex", prop: "sex",
search: false, search: false,
width:50,
dicData: [ dicData: [
{ {
label: "男", label: "男",
@@ -282,48 +282,17 @@ export default {
label: "年龄", label: "年龄",
prop: "age", prop: "age",
search: false, search: false,
width:50,
}, },
{ {
label: "手机号", label: "手机号",
prop: "telphone", prop: "telphone",
search: false, search: false,
width:100,
}, },
{ {
label: "身份证", label: "身份证",
prop: "cardNumber", prop: "cardNumber",
search: false, search: false,
slot: true, slot: true,
width:110
},
{
label: "工种",
prop: "workTypes",
},
{
label: "来源",
prop: "src",
search: false,
width:70,
},
{
label: "人才库",
prop: "groupId",
type: "tree",
span: 24,
search: true,
display: true,
width: '150',
dicUrl: `/api/jobslink-api/tenant/talents/group/listAll`,
dicFormatter: (res) => {
return res.data.list; //返回字典的层级结构
},
props: {
label: "groupName",
value: "id",
},
placeholder: "请选择分组",
}, },
], ],
}; };
@@ -341,31 +310,31 @@ export default {
}, },
}, },
methods: { methods: {
checkDisplayVisibleClose(){ checkDisplayVisibleClose() {
this.checkDisplayVisible = false; this.checkDisplayVisible = false;
}, },
rowEmployDisabled(){ rowEmployDisabled() {
}, },
dateFormat(date){ dateFormat(date) {
return dateFormat(new Date(date),'yyyy/MM/dd') return dateFormat(new Date(date), 'yyyy/MM/dd')
}, },
idNumberDDesensitization, idNumberDDesensitization,
drawerClose(){ drawerClose() {
this.$emit('refresh'); this.$emit('refresh');
this.drawer = false; this.drawer = false;
}, },
radioButtonChange(){ radioButtonChange() {
this.query.realName = ''; this.query.realName = '';
this.query.groupId = ''; this.query.groupId = '';
if(this.query.status == 2){ if (this.query.status == 2) {
this.selectionFlag = false; this.selectionFlag = false;
}else{ } else {
this.selectionFlag = true; this.selectionFlag = true;
} }
}, },
/*打开drawer*/ /*打开drawer*/
openDialog(row, status) { openDialog(row, status) {
this.selectTaskInfo = row; this.selectTaskInfo = row;
this.missionId = row.missionNo; this.missionId = row.missionNo;
this.query = { this.query = {
status: status, status: status,
@@ -382,7 +351,7 @@ export default {
const h = this.$createElement; const h = this.$createElement;
this.$confirm( this.$confirm(
h("div", null, [ h("div", null, [
h("p", { style: "font-size: 16px" }, "您确定要取消录用该人员吗? "), h("p", {style: "font-size: 16px"}, "您确定要取消录用该人员吗? "),
]), ]),
{ {
type: "warning", type: "warning",
@@ -456,8 +425,8 @@ export default {
}, },
/*加载数据*/ /*加载数据*/
onLoad(page, params) { onLoad(page, params) {
getConfig().then((res)=>{ getConfig().then((res) => {
this.getUserConfig = res.data.data; this.getUserConfig = res.data.data;
}); });
this.loading = true; this.loading = true;
let paramscur = params ? Object.assign(params, this.query) : this.query; let paramscur = params ? Object.assign(params, this.query) : this.query;
@@ -469,7 +438,7 @@ export default {
).then((res) => { ).then((res) => {
const data = res.data.data; const data = res.data.data;
this.page.total = data.total; this.page.total = data.total;
this.data=data.records; this.data = data.records;
// if(this.getUserConfig.insuranceOn == 1){ // if(this.getUserConfig.insuranceOn == 1){
// this.data.forEach((ele)=>{ // this.data.forEach((ele)=>{
// if(!ele.effect){ // if(!ele.effect){
@@ -498,75 +467,79 @@ export default {
backIndex() { backIndex() {
this.$emit("refresh"); this.$emit("refresh");
}, },
forgetPwd(){ forgetPwd() {
this.phone=this.userInfo.account; this.phone = this.userInfo.account;
var pat=/(\d{3})\d*(\d{4})/; var pat = /(\d{3})\d*(\d{4})/;
this.phone=this.phone.replace(pat,'$1****$2'); this.phone = this.phone.replace(pat, '$1****$2');
this.resetPwdDialogVisible=true; this.resetPwdDialogVisible = true;
this.resetPwdForm={}; this.resetPwdForm = {};
}, },
/*获取验证码*/ /*获取验证码*/
getCode() { getCode() {
this.msgKey = true; this.msgKey = true;
this.msgText = "发送中..."; this.msgText = "发送中...";
getCode(this.userInfo.account) getCode(this.userInfo.account)
.then(() => { .then(() => {
this.msgText = "剩余" + 120 + "s"; this.msgText = "剩余" + 120 + "s";
this.msgKey = true; this.msgKey = true;
const time = setInterval(() => { const time = setInterval(() => {
this.msgTime--; this.msgTime--;
this.msgText = "剩余" + this.msgTime + "s"; this.msgText = "剩余" + this.msgTime + "s";
if (this.msgTime <= 0) { if (this.msgTime <= 0) {
this.msgTime = 120; this.msgTime = 120;
this.msgText = "重新获取"; this.msgText = "重新获取";
this.msgKey = false; this.msgKey = false;
clearInterval(time); clearInterval(time);
} }
}, 1000); }, 1000);
}) })
.catch(() => { .catch(() => {
this.msgText = "重新获取"; this.msgText = "重新获取";
this.msgKey = false; this.msgKey = false;
}); });
}, },
/*重置密码*/ /*重置密码*/
submitResetPwd() { submitResetPwd() {
this.$refs.resetPwdForm.validate(valid => { this.$refs.resetPwdForm.validate(valid => {
if (valid) { if (valid) {
resetPwd(this.userInfo.account,this.resetPwdForm.pwd,this.resetPwdForm.code).then(()=>{ resetPwd(this.userInfo.account, this.resetPwdForm.pwd, this.resetPwdForm.code).then(() => {
this.$message.success('密码重置成功'); this.$message.success('密码重置成功');
this.resetPwdDialogVisible=false; this.resetPwdDialogVisible = false;
}) })
.catch((err)=>{ .catch((err) => {
this.$message.error(err); this.$message.error(err);
}) })
} }
}) })
}, },
}, },
}; };
</script> </script>
<style> <style>
.selectBtn{ .selectBtn {
color: #787879 !important; color: #787879 !important;
} }
.selectBtn:hover{
color: #787879 !important; .selectBtn:hover {
} color: #787879 !important;
.tipsWrap{ }
.tipsWrap {
font-size: 14px; font-size: 14px;
color: #ff0000; color: #ff0000;
position: absolute; position: absolute;
top: 26px; top: 26px;
left: 120px; left: 120px;
} }
.employ-employNum-count{
color: #2098ee; .employ-employNum-count {
} color: #2098ee;
.employ-forgetPwd{ }
float: right;
margin-top: -33px; .employ-forgetPwd {
} float: right;
margin-top: -33px;
}
</style> </style>

View File

@@ -56,15 +56,19 @@
<!--自定义操作栏--> <!--自定义操作栏-->
<div slot="menu" slot-scope="{ size, type, row }"> <div slot="menu" slot-scope="{ size, type, row }">
<!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> --> <!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> -->
<el-button type="text" size="mini" @click="employ(row, 1)">申请录用</el-button> <el-button v-if="row.reviewState === 1" type="text" size="mini" @click="employ(row, 1)">申请录用</el-button>
<el-button icon="el-icon-view" type="text" v-if="row.reviewState === 8" size="mini" @click="employmentNum(row)">
已录用
</el-button>
<el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)" <el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)"
v-show="vaildData(permission.tenant_mission_view, false)">查看 v-show="vaildData(permission.tenant_mission_view, false)">查看
</el-button> </el-button>
<!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> --> <!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> -->
<el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')" <el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')"
v-if="row.reviewState === 0 || row.reviewState === 1"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_edit, false)">编辑 :disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_edit, false)">编辑
</el-button> </el-button>
<el-button v-if="row.reviewState !== 8" icon="el-icon-delete" :size="size" :type="type" <el-button v-if="row.reviewState !== 9" icon="el-icon-delete" :size="size" :type="type"
@click="$refs.crud.rowDel(row)" @click="$refs.crud.rowDel(row)"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_cancel, false)">取消 :disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_cancel, false)">取消
</el-button> </el-button>

View File

@@ -1,107 +1,7 @@
<template> <template>
<basic-container> <basic-container>
<!--搜索栏--> <!--搜索栏-->
<el-form size="small" label-position="right" :inline="true" style="padding-left: 10px;padding-right: 10px;"> <avue-form :option="option" v-model="search" @submit="handleSearch" @reset-change="handleClear"></avue-form>
<el-row :span="24">
<!-- <el-form-item label="任务名称:">-->
<!-- <el-input v-model="search.missionTitle" placeholder="任务名称" clearable></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="机构名称:">
<el-input
v-model="search.companyName"
placeholder="机构名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位编码:">
<el-input
v-model="search.missionNo"
placeholder="岗位编码"
clearable
></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input
v-model="search.address"
placeholder="北京-北京市-崇文区"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位名称:">
<el-input
v-model="search.missionTitle"
placeholder="岗位名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工工种:">
<el-input
v-model="search.worktypeNames"
placeholder="零工工种"
clearable
></el-input>
</el-form-item>
<el-form-item label="审核状态:">
<el-select v-model="search.reviewState">
<el-option
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历:">
<el-select v-model="search.education">
<el-option
v-for="(item, index) in educationState"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="任务状态:">
<el-select v-model="search.status" placeholder="任务状态" style="width:100%">
<el-option
v-for="(item,key,index) in missionTypes"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="search.state" placeholder="请选择搜索时间类型" style="width: 100%" @change="date">
<el-option
v-for="(item, key, index) in timeScreenTerm"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker
:disabled="!search.state"
v-model="timeValue"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
@change="dateChange">
</el-date-picker>
</el-form-item>
<tool-tip ></tool-tip> -->
<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-form>
<!--/搜索栏--> <!--/搜索栏-->
<waiting-mission ref="waiting" v-if="search.status === 1" @refresh="handleClear"></waiting-mission> <waiting-mission ref="waiting" v-if="search.status === 1" @refresh="handleClear"></waiting-mission>
<ongoing-mission ref="onging" v-if="search.status === 2" @refresh="handleClear"></ongoing-mission> <ongoing-mission ref="onging" v-if="search.status === 2" @refresh="handleClear"></ongoing-mission>
@@ -116,7 +16,11 @@ import OngoingMission from './Table/OngoingMission'
import FinishedMission from './Table/FinishedMission' import FinishedMission from './Table/FinishedMission'
import ExpiredMission from './Table/ExpiredMission' import ExpiredMission from './Table/ExpiredMission'
import {companyMissionState, educationState, recruitStatus} from '@/common/dic' import {companyMissionState, educationState, recruitStatus} from '@/common/dic'
import {getDeptMyTree} from "@/api/tenant/talents";
const searchData = {
status: 1
}
export default { export default {
comments: {}, comments: {},
name: "tenant_mission", name: "tenant_mission",
@@ -134,13 +38,13 @@ export default {
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
search: { search: Object.assign({}, searchData),
status: 1 depTree: [],
}, timeScreenTerm: [
timeScreenTerm: [{ {
value: 2, value: 2,
label: '开始日期', label: '开始日期',
}, },
{ {
value: 3, value: 3,
label: '结束日期', label: '结束日期',
@@ -156,18 +60,85 @@ export default {
FinishedMission, FinishedMission,
ExpiredMission ExpiredMission
}, },
computed: {}, computed: {
option() {
return {
menuSpan: 6,
column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
span: 6,
},
{
label: '机构名称',
prop: 'companyName',
span: 6,
},
{
label: '岗位名称',
prop: 'missionTitle',
span: 6,
},
{
label: '地址',
prop: 'address',
placeholder: "北京-北京市-崇文区",
span: 6,
}, {
label: '零工工种',
prop: 'worktypeNames',
span: 6,
},
{
label: '审核状态',
prop: 'reviewState',
type: 'select',
dicData: recruitStatus,
span: 6,
}, {
label: '学历',
prop: 'education',
type: 'select',
dicData: educationState,
span: 6,
},
]
}
}
},
watch: {}, watch: {},
created() {
this.getDept()
},
methods: { methods: {
handleSearch() {
handleSearch(form, done) {
if (this.search.status === 1) { if (this.search.status === 1) {
this.$refs.waiting.onLoad(this.page, this.search); this.$refs.waiting.onLoad(this.page, this.$api.filterObject(this.search));
} else if (this.search.status === 2) { } else if (this.search.status === 2) {
this.$refs.onging.onLoad(this.page, this.search); this.$refs.onging.onLoad(this.page, this.$api.filterObject(this.search));
} else if (this.search.status === 3) { } else if (this.search.status === 3) {
this.$refs.finished.onLoad(this.page, this.search); this.$refs.finished.onLoad(this.page, this.$api.filterObject(this.search));
} else if (this.search.status === 4) { } else if (this.search.status === 4) {
this.$refs.expired.onLoad(this.page, this.search); this.$refs.expired.onLoad(this.page, this.$api.filterObject(this.search));
}
done && done()
},
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
} }
}, },
date() { date() {
@@ -192,26 +163,10 @@ export default {
}, },
handleClear() { handleClear() {
let curStatus = this.search.status; this.$nextTick(() => {
this.search = { this.search = Object.assign({}, searchData)
status: curStatus, this.handleSearch()
missionNo: '', })
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime: '',
stimeEndTime: '',
etimeBeninTime: '',
etimeEndTime: '',
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue = "";
this.successTimeValue = "";
this.handleSearch()
}, },
// 开始时间 // 开始时间
beginDateChange(val) { beginDateChange(val) {

View File

@@ -27,13 +27,17 @@
<!--自定义列--> <!--自定义列-->
<template slot="period" slot-scope="{row}"> <template slot="period" slot-scope="{row}">
<span v-if="row.startTime && row.endTime"> <span v-if="row.startTime && row.endTime">
<el-tag type="warning" v-if="row.serviceStatus==0">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> <el-tag type="warning"
<el-tag type="success" v-if="row.serviceStatus==1">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> v-if="row.serviceStatus==0">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="danger" v-if="row.serviceStatus==2">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> <el-tag type="success"
<el-tag type="info" v-if="row.serviceStatus==3">{{dateFormat(row.startTime)}}-{{dateFormat(row.endTime)}}</el-tag> v-if="row.serviceStatus==1">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="danger"
v-if="row.serviceStatus==2">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="info"
v-if="row.serviceStatus==3">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
</span> </span>
</template> </template>
<template slot="serviceStatus" slot-scope="{row}" > <template slot="serviceStatus" slot-scope="{row}">
<span> <span>
<el-tag type="warning" v-if="row.serviceStatus==0">未生效</el-tag> <el-tag type="warning" v-if="row.serviceStatus==0">未生效</el-tag>
<el-tag type="success" v-if="row.serviceStatus==1">生效中</el-tag> <el-tag type="success" v-if="row.serviceStatus==1">生效中</el-tag>
@@ -41,7 +45,7 @@
<el-tag type="info" v-if="row.serviceStatus==3">已失效</el-tag> <el-tag type="info" v-if="row.serviceStatus==3">已失效</el-tag>
</span> </span>
</template> </template>
<template slot="missionDate" slot-scope="{ row }"> <template slot="missionDate" slot-scope="{ row }">
<div>{{ row.startDate }}{{ row.endDate }}</div> <div>{{ row.startDate }}{{ row.endDate }}</div>
</template> </template>
@@ -52,7 +56,8 @@
size="mini" size="mini"
@click="$refs.resume.openDialog(row)" @click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'" v-if="row.userId && row.userId !== '0'"
>查看简历</el-button >查看简历
</el-button
> >
<div v-else>暂无简历</div> <div v-else>暂无简历</div>
</div> </div>
@@ -64,7 +69,7 @@
</template> </template>
<!--/自定义列--> <!--/自定义列-->
<template v-slot:cardNumber="{row}"> <template v-slot:cardNumber="{row}">
<span>{{idNumberDDesensitization(row.cardNumber)}}</span> <span>{{ idNumberDDesensitization(row.cardNumber) }}</span>
</template> </template>
</avue-crud> </avue-crud>
@@ -73,14 +78,15 @@
</template> </template>
<script> <script>
import { employList, cancelEmploy, } from "@/api/tenant/postzp"; import {employList, cancelEmploy,} from "@/api/tenant/postzp";
import {getCode,resetPwd} from "@/api/manage/econtract.js";//api import {getCode, resetPwd} from "@/api/manage/econtract.js";//api
import Resume from "@/components/resume/index"; import Resume from "@/components/resume/index";
import { idNumberDDesensitization } from "@/util/util"; import {idNumberDDesensitization} from "@/util/util";
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import { dateFormat } from "@/util/date"; import {dateFormat} from "@/util/date";
import {getConfig} from '@/api/tenant/config' import {getConfig} from '@/api/tenant/config'
import EmployInformation from "./EmployInformation"; import EmployInformation from "./EmployInformation";
export default { export default {
comments: {}, comments: {},
components: { components: {
@@ -92,89 +98,86 @@ export default {
}, },
data() { data() {
const validatePwdLength=(rule,value,callback)=>{ const validatePwdLength = (rule, value, callback) => {
if(value.length!=6 || isNaN(Number(value))){ if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码')); callback(new Error('请输入6位数的数字密码'));
} } else {
else{ callback();
callback();
}
} }
}
const validatePwd = (rule, value, callback) => { const validatePwd = (rule, value, callback) => {
if (value != this.resetPwdForm.pwd) { if (value != this.resetPwdForm.pwd) {
callback(new Error('两次输入密码不一致')); callback(new Error('两次输入密码不一致'));
} } else {
else { callback();
callback();
}
};
const validPwdNums=(rule,value,callback)=>{
if(value.length!=6 || isNaN(Number(value))){
callback(new Error('请输入6位数的数字密码'));
}
else{
callback();
}
} }
};
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
} else {
callback();
}
}
return { return {
selectTaskInfo:{}, selectTaskInfo: {},
getUserConfig:{}, getUserConfig: {},
checkDisplayVisible: false, checkDisplayVisible: false,
fpTitleId:'', fpTitleId: '',
fpData: {}, fpData: {},
pwdFormRules:{ pwdFormRules: {
pwd:[ pwd: [
{ {
required:true,message:'请输入密码',trigger:'blur' required: true, message: '请输入密码', trigger: 'blur'
}, },
{ {
validator:validatePwdLength,trigger:'blur' validator: validatePwdLength, trigger: 'blur'
}, },
] ]
}, },
selectionFlag:true, selectionFlag: true,
/*忘记密码*/ /*忘记密码*/
resetPwdDialogVisible:false, resetPwdDialogVisible: false,
resetPwdForm:{}, resetPwdForm: {},
formLabelWidth:'150px', formLabelWidth: '150px',
msgText: '获取验证码', msgText: '获取验证码',
msgTime:120, msgTime: 120,
//重置密码校验 //重置密码校验
resetPwdRules: { resetPwdRules: {
code: [ code: [
{ {
required: true, message: '请输入验证码', trigger: 'blur' required: true, message: '请输入验证码', trigger: 'blur'
} }
], ],
pwd: [ pwd: [
{ {
required: true, message: '请输入密码', trigger: 'blur' required: true, message: '请输入密码', trigger: 'blur'
}, },
{ {
validator: validPwdNums, trigger: 'blur' validator: validPwdNums, trigger: 'blur'
} }
], ],
pwd2: [ pwd2: [
{ {
required: true, message: '请输入确认密码', trigger: 'blur' required: true, message: '请输入确认密码', trigger: 'blur'
}, },
{ {
validator: validatePwd, trigger: 'blur' validator: validatePwd, trigger: 'blur'
} }
] ]
}, },
loadingbut:false, loadingbut: false,
loadingbuttext:'确定', loadingbuttext: '确定',
downLoadRow:{}, downLoadRow: {},
dataCurClick:{}, dataCurClick: {},
employDataIds:1, employDataIds: 1,
employNum:1, employNum: 1,
imgStr:'', imgStr: '',
isIndeterminate: false, isIndeterminate: false,
checkAll: false, checkAll: false,
checked: false, checked: false,
@@ -183,11 +186,11 @@ export default {
selectionList: [], selectionList: [],
dialogVisible: false, dialogVisible: false,
dialogVisible1: false, dialogVisible1: false,
contractId:'', contractId: '',
labelPosition: 'right', labelPosition: 'right',
pwdForm: { pwdForm: {
pwd: '' pwd: ''
}, },
page: { page: {
pageSize: 20, pageSize: 20,
currentPage: 1, currentPage: 1,
@@ -227,11 +230,11 @@ export default {
editBtn: false, editBtn: false,
excelBtn: false, excelBtn: false,
columnBtn: false, columnBtn: false,
searchBtn: true, searchBtn: false,
searchShow: true, searchShow: false,
searchMenuSpan: 6, searchMenuSpan: 6,
searchLabelWidth: 60, searchLabelWidth: 60,
menu:false, menu: false,
// menuPosition: "center", // menuPosition: "center",
labelPosition: "right", labelPosition: "right",
border: true, border: true,
@@ -258,15 +261,12 @@ export default {
{ {
label: "姓名", label: "姓名",
prop: "realName", prop: "realName",
search: true,
searchSpan: 4, searchSpan: 4,
width:70,
}, },
{ {
label: "性别", label: "性别",
prop: "sex", prop: "sex",
search: false, search: false,
width:50,
dicData: [ dicData: [
{ {
label: "男", label: "男",
@@ -282,48 +282,17 @@ export default {
label: "年龄", label: "年龄",
prop: "age", prop: "age",
search: false, search: false,
width:50,
}, },
{ {
label: "手机号", label: "手机号",
prop: "telphone", prop: "telphone",
search: false, search: false,
width:100,
}, },
{ {
label: "身份证", label: "身份证",
prop: "cardNumber", prop: "cardNumber",
search: false, search: false,
slot: true, slot: true,
width:110
},
{
label: "工种",
prop: "workTypes",
},
{
label: "来源",
prop: "src",
search: false,
width:70,
},
{
label: "人才库",
prop: "groupId",
type: "tree",
span: 24,
search: true,
display: true,
width: '150',
dicUrl: `/api/jobslink-api/tenant/talents/group/listAll`,
dicFormatter: (res) => {
return res.data.list; //返回字典的层级结构
},
props: {
label: "groupName",
value: "id",
},
placeholder: "请选择分组",
}, },
], ],
}; };
@@ -341,31 +310,31 @@ export default {
}, },
}, },
methods: { methods: {
checkDisplayVisibleClose(){ checkDisplayVisibleClose() {
this.checkDisplayVisible = false; this.checkDisplayVisible = false;
}, },
rowEmployDisabled(){ rowEmployDisabled() {
}, },
dateFormat(date){ dateFormat(date) {
return dateFormat(new Date(date),'yyyy/MM/dd') return dateFormat(new Date(date), 'yyyy/MM/dd')
}, },
idNumberDDesensitization, idNumberDDesensitization,
drawerClose(){ drawerClose() {
this.$emit('refresh'); this.$emit('refresh');
this.drawer = false; this.drawer = false;
}, },
radioButtonChange(){ radioButtonChange() {
this.query.realName = ''; this.query.realName = '';
this.query.groupId = ''; this.query.groupId = '';
if(this.query.status == 2){ if (this.query.status == 2) {
this.selectionFlag = false; this.selectionFlag = false;
}else{ } else {
this.selectionFlag = true; this.selectionFlag = true;
} }
}, },
/*打开drawer*/ /*打开drawer*/
openDialog(row, status) { openDialog(row, status) {
this.selectTaskInfo = row; this.selectTaskInfo = row;
this.missionId = row.missionNo; this.missionId = row.missionNo;
this.query = { this.query = {
status: status, status: status,
@@ -382,7 +351,7 @@ export default {
const h = this.$createElement; const h = this.$createElement;
this.$confirm( this.$confirm(
h("div", null, [ h("div", null, [
h("p", { style: "font-size: 16px" }, "您确定要取消录用该人员吗? "), h("p", {style: "font-size: 16px"}, "您确定要取消录用该人员吗? "),
]), ]),
{ {
type: "warning", type: "warning",
@@ -456,8 +425,8 @@ export default {
}, },
/*加载数据*/ /*加载数据*/
onLoad(page, params) { onLoad(page, params) {
getConfig().then((res)=>{ getConfig().then((res) => {
this.getUserConfig = res.data.data; this.getUserConfig = res.data.data;
}); });
this.loading = true; this.loading = true;
let paramscur = params ? Object.assign(params, this.query) : this.query; let paramscur = params ? Object.assign(params, this.query) : this.query;
@@ -469,7 +438,7 @@ export default {
).then((res) => { ).then((res) => {
const data = res.data.data; const data = res.data.data;
this.page.total = data.total; this.page.total = data.total;
this.data=data.records; this.data = data.records;
// if(this.getUserConfig.insuranceOn == 1){ // if(this.getUserConfig.insuranceOn == 1){
// this.data.forEach((ele)=>{ // this.data.forEach((ele)=>{
// if(!ele.effect){ // if(!ele.effect){
@@ -498,75 +467,79 @@ export default {
backIndex() { backIndex() {
this.$emit("refresh"); this.$emit("refresh");
}, },
forgetPwd(){ forgetPwd() {
this.phone=this.userInfo.account; this.phone = this.userInfo.account;
var pat=/(\d{3})\d*(\d{4})/; var pat = /(\d{3})\d*(\d{4})/;
this.phone=this.phone.replace(pat,'$1****$2'); this.phone = this.phone.replace(pat, '$1****$2');
this.resetPwdDialogVisible=true; this.resetPwdDialogVisible = true;
this.resetPwdForm={}; this.resetPwdForm = {};
}, },
/*获取验证码*/ /*获取验证码*/
getCode() { getCode() {
this.msgKey = true; this.msgKey = true;
this.msgText = "发送中..."; this.msgText = "发送中...";
getCode(this.userInfo.account) getCode(this.userInfo.account)
.then(() => { .then(() => {
this.msgText = "剩余" + 120 + "s"; this.msgText = "剩余" + 120 + "s";
this.msgKey = true; this.msgKey = true;
const time = setInterval(() => { const time = setInterval(() => {
this.msgTime--; this.msgTime--;
this.msgText = "剩余" + this.msgTime + "s"; this.msgText = "剩余" + this.msgTime + "s";
if (this.msgTime <= 0) { if (this.msgTime <= 0) {
this.msgTime = 120; this.msgTime = 120;
this.msgText = "重新获取"; this.msgText = "重新获取";
this.msgKey = false; this.msgKey = false;
clearInterval(time); clearInterval(time);
} }
}, 1000); }, 1000);
}) })
.catch(() => { .catch(() => {
this.msgText = "重新获取"; this.msgText = "重新获取";
this.msgKey = false; this.msgKey = false;
}); });
}, },
/*重置密码*/ /*重置密码*/
submitResetPwd() { submitResetPwd() {
this.$refs.resetPwdForm.validate(valid => { this.$refs.resetPwdForm.validate(valid => {
if (valid) { if (valid) {
resetPwd(this.userInfo.account,this.resetPwdForm.pwd,this.resetPwdForm.code).then(()=>{ resetPwd(this.userInfo.account, this.resetPwdForm.pwd, this.resetPwdForm.code).then(() => {
this.$message.success('密码重置成功'); this.$message.success('密码重置成功');
this.resetPwdDialogVisible=false; this.resetPwdDialogVisible = false;
}) })
.catch((err)=>{ .catch((err) => {
this.$message.error(err); this.$message.error(err);
}) })
} }
}) })
}, },
}, },
}; };
</script> </script>
<style> <style>
.selectBtn{ .selectBtn {
color: #787879 !important; color: #787879 !important;
} }
.selectBtn:hover{
color: #787879 !important; .selectBtn:hover {
} color: #787879 !important;
.tipsWrap{ }
.tipsWrap {
font-size: 14px; font-size: 14px;
color: #ff0000; color: #ff0000;
position: absolute; position: absolute;
top: 26px; top: 26px;
left: 120px; left: 120px;
} }
.employ-employNum-count{
color: #2098ee; .employ-employNum-count {
} color: #2098ee;
.employ-forgetPwd{ }
float: right;
margin-top: -33px; .employ-forgetPwd {
} float: right;
margin-top: -33px;
}
</style> </style>

View File

@@ -59,16 +59,18 @@
<!--自定义操作栏--> <!--自定义操作栏-->
<div slot="menu" slot-scope="{ size, type, row }"> <div slot="menu" slot-scope="{ size, type, row }">
<!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> --> <!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> -->
<el-button type="text" size="mini" @click="employ(row, 1)">申请录用</el-button> <el-button type="text" v-if="row.reviewState === 1" size="mini" @click="employ(row, 1)">申请录用</el-button>
<el-button type="text" v-if="row.reviewState === 2" size="mini" @click="employmentNum(row)">已录用</el-button>
<el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)" <el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)"
v-show="vaildData(permission.tenant_mission_view, false)">查看 v-show="vaildData(permission.tenant_mission_view, false)">查看
</el-button> </el-button>
<!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> --> <!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> -->
<el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')" :disabled="false" <el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')" :disabled="false"
v-if="row.reviewState === 0 || row.reviewState === 1"
v-show="vaildData(permission.tenant_mission_edit, false)">编辑 v-show="vaildData(permission.tenant_mission_edit, false)">编辑
</el-button> </el-button>
<el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row)" :disabled="false" <el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row)" :disabled="false"
v-show="vaildData(permission.tenant_mission_cancel, false)" v-if="row.reviewState !== 8">取消 v-show="vaildData(permission.tenant_mission_cancel, false)" v-if="row.reviewState !== 9">取消
</el-button> </el-button>
<!-- <el-button type="text" size="mini" @click="contrast(row)" <!-- <el-button type="text" size="mini" @click="contrast(row)"
>比对人才库</el-button> --> >比对人才库</el-button> -->

View File

@@ -1,156 +1,8 @@
<template> <template>
<basic-container> <basic-container>
<!--搜索栏--> <!--搜索栏-->
<!-- <el-form size="small" label-position="right" :inline="true" style="padding-left: 10px;padding-right: 10px;"> <avue-form :option="searchOption" v-model="search" @submit="handleSearch" @reset-change="handleClear"></avue-form>
<el-row :span="24"> <!--搜索栏-->
<el-form-item label-width="0">
<el-select v-model="search.status" placeholder="岗位状态" style="width:100%">
<el-option v-for="(item, key, index) in missionTypes" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
<el-radio-group v-model="search.status" size="small">
<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>
<el-form-item label="岗位编号:">
<el-input v-model="search.missionNo" placeholder="岗位编号" clearable></el-input>
</el-form-item>
<el-form-item label="岗位名称:">
<el-input v-model="search.missionTitle" placeholder="岗位名称" clearable></el-input>
</el-form-item>
<el-form-item label="">
<el-select v-model="search.state" placeholder="请选择搜索时间类型" style="width: 100%" @change="date">
<el-option v-for="(item, key, index) in timeScreenTerm" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker :disabled="!search.state" v-model="timeValue" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
@change="dateChange">
</el-date-picker>
</el-form-item>
<tool-tip></tool-tip>
<el-form-item label="报名截止时间:">
<el-date-picker v-model="endDateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" @change="endDateChange">
</el-date-picker>
</el-form-item>
<el-form-item label="开始时间:">
<el-date-picker v-model="beginTimeValue" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" @change="beginDateChange">
</el-date-picker>
</el-form-item>
<el-form-item label="完成时间:">
<el-date-picker v-model="successTimeValue" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" @change="successDateChange">
</el-date-picker>
</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>
</div>
</el-row>
</el-form> -->
<el-form size="small" label-position="right" :inline="true">
<el-row :span="24">
<el-form-item label="机构名称:">
<el-input
v-model="search.companyName"
placeholder="机构名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位编码:">
<el-input
v-model="search.missionNo"
placeholder="岗位编码"
clearable
></el-input>
</el-form-item>
<el-form-item label="岗位名称:">
<el-input
v-model="search.jobName"
placeholder="岗位名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input
v-model="search.address"
placeholder="地址"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工岗位工种:">
<el-input
v-model="search.worktypeNames"
placeholder="零工岗位工种"
clearable
></el-input>
</el-form-item>
<el-form-item label="学历:">
<el-select v-model="search.education">
<el-option
v-for="(item, index) in educationState"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="审核状态:">
<el-select v-model="search.reviewState">
<el-option
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item>-->
<!-- <el-select v-model="search.type" placeholder="请选择搜索时间类型">-->
<!-- <el-option label="岗位开始日期" :value="0"></el-option>-->
<!-- <el-option label="岗位结束日期" :value="2"></el-option>-->
<!-- &lt;!&ndash; <el-option label="报名截止日期" :value="3"></el-option> &ndash;&gt;-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="日期范围">
<el-date-picker
v-model="search.time"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="岗位状态">
<el-select v-model="search.jobStatus">
<el-option
v-for="(item, index) in mStatusList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</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>
</div>
</el-row>
</el-form>
<!--/搜索栏-->
<waiting-mission ref="waiting" v-if="search.status === 1" @refresh="handleClear"></waiting-mission> <waiting-mission ref="waiting" v-if="search.status === 1" @refresh="handleClear"></waiting-mission>
<ongoing-mission ref="onging" v-if="search.status === 2" @refresh="handleClear"></ongoing-mission> <ongoing-mission ref="onging" v-if="search.status === 2" @refresh="handleClear"></ongoing-mission>
<finished-mission ref="finished" v-if="search.status === 3" @refresh="handleClear"></finished-mission> <finished-mission ref="finished" v-if="search.status === 3" @refresh="handleClear"></finished-mission>
@@ -164,9 +16,12 @@ import OngoingMission from './Table/OngoingMission'
import FinishedMission from './Table/FinishedMission' import FinishedMission from './Table/FinishedMission'
import ExpiredMission from './Table/ExpiredMission' import ExpiredMission from './Table/ExpiredMission'
import {companyMissionState, recruitStatus, educationState} from '@/common/dic' import {companyMissionState, recruitStatus, educationState} from '@/common/dic'
import {getDeptMyTree} from "@/api/tenant/talents";
// import {mapGetters} from "vuex"; // import {mapGetters} from "vuex";
const searchData = {
status: 1
}
export default { export default {
comments: {}, comments: {},
name: "tenant_mission", name: "tenant_mission",
@@ -194,9 +49,8 @@ export default {
value: 9, value: 9,
}, },
], ],
search: { search: Object.assign({}, searchData),
status: 1 depTree: [],
},
timeScreenTerm: [{ timeScreenTerm: [{
value: 1, value: 1,
label: '报名截止日期', label: '报名截止日期',
@@ -217,11 +71,76 @@ export default {
FinishedMission, FinishedMission,
ExpiredMission ExpiredMission
}, },
computed: {}, computed: {
searchOption() {
return {
menuSpan: 6,
column: [
{
label: "所属机构",
prop: "deptId",
type: "tree",
multiple: false,
dicData: this.depTree,
props: {
label: "title",
value: 'value'
},
span: 6,
},
{
label: '机构名称',
prop: 'companyName',
span: 6,
},
{
label: '岗位名称',
prop: 'missionTitle',
span: 6,
},
{
label: '地址',
prop: 'address',
placeholder: "北京-北京市-崇文区",
span: 6,
}, {
label: '零工工种',
prop: 'worktypeNames',
span: 6,
},
{
label: '审核状态',
prop: 'reviewState',
type: 'select',
dicData: recruitStatus,
span: 6,
}, {
label: '学历',
prop: 'education',
type: 'select',
dicData: educationState,
span: 6,
},
]
}
}
},
watch: {}, watch: {},
created() {
this.getDept()
},
methods: { methods: {
handleSearch() { async getDept() {
let params = {...this.search} let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
handleSearch(from, done) {
let params = this.$api.filterObject(this.search)
if (this.search.time) { if (this.search.time) {
params.stime = this.search.time[0], params.stime = this.search.time[0],
params.etime = this.search.time[1] params.etime = this.search.time[1]
@@ -239,6 +158,7 @@ export default {
console.log("444444444"); console.log("444444444");
this.$refs.expired.onLoad(this.page, params); this.$refs.expired.onLoad(this.page, params);
} }
done && done()
}, },
date() { date() {
this.dateChange(this.timeValue) this.dateChange(this.timeValue)
@@ -263,28 +183,10 @@ export default {
}, },
handleClear() { handleClear() {
let curStatus = this.search.status; this.$nextTick(() => {
this.search = { this.search = Object.assign({}, searchData)
status: curStatus, this.handleSearch()
missionNo: '', })
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime: '',
stimeEndTime: '',
etimeBeninTime: '',
etimeEndTime: '',
jobName: '',
companyName: '',
jobStatus: ''
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue = "";
this.successTimeValue = "";
this.handleSearch()
}, },
// 开始时间 // 开始时间
beginDateChange(val) { beginDateChange(val) {

View File

@@ -28,7 +28,7 @@ import {getMapData} from '@/api/desk/notice'
export default { export default {
data() { data() {
return { return {
getPageUrl: "http://10.165.0.173/largescreen/", getPageUrl: process.env.VUE_APP_LARGESCREEN,
// getPageUrl: "http://39.98.184.58/largescreen/", // getPageUrl: "http://39.98.184.58/largescreen/",
fullScreenFlag: false, fullScreenFlag: false,
fullScreenFlagKey: 0, fullScreenFlagKey: 0,