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_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
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_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
VUE_APP_TIANDITU_APIKEY = e4266a5e84fe6c10f60c559967f0a03f
VUE_APP_LARGESCREEN = http://10.165.0.77/largescreen/

View File

@@ -64,11 +64,11 @@ export const getDetail =
}
export const detailCompany =
(id) => {
(params) => {
return request({
url: '/api/jobslink-api/tenant/company/detailCompany',
method: 'get',
params: { id }
params: params
})
}
// 仅保存或提交审核
@@ -133,6 +133,7 @@ function getCompanyInfo(companyId) {
params: {companyId}
})
}
// 获取一堆公司信息
function getCompanyInfoNew(companyId) {
return request({
@@ -141,6 +142,7 @@ function getCompanyInfoNew(companyId) {
params: {companyId}
})
}
// 审核通过
export const examine =
(companyId) => {

View File

@@ -6,10 +6,10 @@ export const getList =
url: '/api/jobslink-api/system/tuser/page',
method: 'get',
params: {
...params,
current,
size,
deptId,
...params,
}
})
}

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

View File

@@ -60,7 +60,18 @@ function sleep(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;
new Vue({router, store, i18n, render: h => h(App)}).$mount('#app')

View File

@@ -600,7 +600,11 @@ export default {
if (["edit", "view"].includes(type)) {
this.imgList = [];
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.form = res.data.data;
if (this.form.motoleyUrl) {

View File

@@ -1,128 +1,7 @@
<template>
<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.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-form :option="searchOption" v-model="query" @submit="searchChange1" @reset-change="searchReset1"></avue-form>
<!--搜索-->
<avue-crud
:option="option"
@@ -226,6 +105,7 @@ wageUnitCategoryState.map((item) => {
wageUnitCategoryStateEnum[item.value] = item.label
})
import lodash from "lodash";
import {getDeptMyTree} from "@/api/tenant/talents";
const message = lodash.throttle(
function (options) {
@@ -250,7 +130,7 @@ export default {
view: {},
form: {},
selectionList: [],
query: {type: ''},
query: {type: '', reviewState: 0},
loading: false,
page: {
pageSize: 10,
@@ -437,6 +317,7 @@ export default {
],
},
data: [],
depTree: [],
};
},
computed: {
@@ -456,8 +337,72 @@ export default {
});
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: {
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
initData() {
this.onLoad(this.page, this.query);
},
@@ -485,14 +430,15 @@ export default {
this.onLoad(this.page, params);
done();
},
searchChange1() {
searchChange1(form, done) {
if (this.query.time) {
this.query.stime = this.query.time[0];
this.query.etime = this.query.time[1];
// delete this.query.time;
}
this.page.currentPage = 1;
this.page.currentPage = 1
this.onLoad(this.page, this.query);
done && done()
},
searchReset1() {
this.query = {};
@@ -528,11 +474,12 @@ export default {
},
onLoad(page, params = {}) {
params = Object.assign(this.query, params);
params = this.$api.filterObject(params)
this.loading = true;
getList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
params
).then((res) => {
const data = res.data.data;
this.page.total = data.total;

View File

@@ -1,84 +1,7 @@
<template>
<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.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-form :option="searchOption" v-model="query" @submit="searchChange1" @reset-change="searchReset1"></avue-form>
<!--搜索-->
<avue-crud
:option="option"
@@ -192,6 +115,7 @@ import {Message} from "element-ui";
import lodash from "lodash";
import {Auditing} from "@/api/manage/mission";
import PromptDialog from "@/components/promptDialog/index.vue";
import {getDeptMyTree} from "@/api/tenant/talents";
const wageUnitCategoryStateEnum = {}
wageUnitCategoryState.map((item) => {
@@ -220,7 +144,7 @@ export default {
view: {},
form: {},
selectionList: [],
query: {type: ''},
query: {type: '', reviewState: 0},
loading: false,
page: {
pageSize: 10,
@@ -405,6 +329,7 @@ export default {
],
},
data: [],
depTree: [],
};
},
computed: {
@@ -424,8 +349,72 @@ export default {
});
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: {
async getDept() {
let params = {
tenantId: '000000'
}
let resData = await getDeptMyTree(params)
if (resData.data.code === 200) {
this.depTree = resData.data.data
}
},
initData() {
this.onLoad(this.page, this.query);
},
@@ -456,7 +445,7 @@ export default {
this.onLoad(this.page, params);
done();
},
searchChange1() {
searchChange1(from, done) {
if (this.query.time) {
this.query.stime = this.query.time[0];
this.query.etime = this.query.time[1];
@@ -464,6 +453,7 @@ export default {
}
this.page.currentPage = 1;
this.onLoad(this.page, this.query);
done && done()
},
searchReset1() {
this.query = {};
@@ -499,6 +489,7 @@ export default {
},
onLoad(page, params = {}) {
params = Object.assign(this.query, params);
params = this.$api.filterObject(params)
this.loading = true;
getList(
page.currentPage,

View File

@@ -2,50 +2,6 @@
<el-row>
<el-col :span="24">
<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
:option="option"
:table-loading="loading"
@@ -160,6 +116,7 @@ import {getToken} from "@/util/auth";
import {isMobile} from "@/util/validate";
import md5 from "js-md5";
import {excelAccept} from "@/common/accept";
import {getDeptMyTree} from "@/api/tenant/talents";
export default {
name: "user",
@@ -191,6 +148,7 @@ export default {
currentPage: 1,
total: 0,
},
depTree: [],
init: {
roleTree: [],
deptTree: [],
@@ -203,7 +161,94 @@ export default {
roleTreeObj: [],
treeDeptId: "",
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",
calcHeight: 125,
tip: false,
@@ -217,6 +262,25 @@ export default {
dialogType: "drawer",
dialogClickModal: false,
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: "所属部门",
prop: "deptName",
@@ -228,13 +292,20 @@ export default {
prop: "account",
// search: true,
display: false,
search: true,
span: 6,
searchLabelWidth: 80,
searchSpan: 6,
},
{
label: "用户姓名",
prop: "realName",
// search: true,
display: false,
search: true,
span: 6,
searchLabelWidth: 80,
searchSpan: 6,
},
{
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() {
this.initData(this.userInfo.tenant_id);
this.getDept()
},
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) {
this.treeDeptId = data.id;
this.page.currentPage = 1;

View File

@@ -198,6 +198,7 @@
:page.sync="logPage"
@size-change="logSizeChange"
@current-change="logCurrentChange"
ref="logCrud"
>
<!-- <template slot="menuLeft">
<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>
</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>
</el-drawer>
<!--新建 编辑分组dialog-->
@@ -313,7 +321,83 @@ export default {
list: []
},
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: {
@@ -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() {
this.initDept();
@@ -702,6 +708,13 @@ export default {
this.getDept()
},
methods: {
// rowStyle(column) {
// if (column.row.serveTheme === '人工推送岗位' || column.row.serveTheme === '人工推送政策') {
// this.logOption.editBtn = true
// } else {
// this.logOption.editBtn = false
// }
// },
async getDept() {
let params = {
tenantId: '000000'
@@ -733,7 +746,8 @@ export default {
}).then(async (res) => {
let params = {
idNumber: _this.phoneItem.idNumber,
phone
phone,
serveId: this.selectInfo.id,
}
let resData = await phoneUpdate(params)
if (resData.data.code === 200) {

View File

@@ -235,11 +235,11 @@
back-text="不符合"
dialogWidth="60%"
:isInputInfo="false"
:placeholder="`请输入不符合潜在 ${selectGroupName} 的具体原因`"
:placeholder="`请输入不符合 ${selectGroupName} 的具体原因`"
:sub-title="[
`请核实人员相关信息进行以下操作`,
`符合表示为已初步判定该人员符合 ${selectGroupName} 相关条件但仍需与该人员主动联系并进一步核实最终以省就业3.0实际政策经办情况为准`,
`不符合表示经核查后该人员不符合 ${selectGroupName} 相关条件并将该人员从潜在的{就业困难}列表中剔除`,
`不符合表示经核查后该人员不符合 ${selectGroupName} 相关条件并将该人员从 ${selectGroupName} 列表中剔除`,
'核实完成后会产生服务日志记录'
]"
:tips="dialogTips"
@@ -896,7 +896,7 @@ export default {
this.selectGroupName = groupInfo.groupName
switch (groupInfo.groupName) {
case '潜在就业困难人员':
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
break
case '潜在登记失业人员':
this.dialogTips = ['不满足断保3个月', '存在工商信息']
@@ -908,10 +908,10 @@ export default {
this.dialogTips = ['已经进行就业登记', '存在工商信息', '不是以个人身份参保']
break
case '潜在公益性岗位申请人员':
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
break
case '潜在就业见习申请人员':
this.dialogTips = ['已就业登记', '不满足16-24岁']
this.dialogTips = ['已经进行就业登记', '不满足16-24岁']
break
default :
this.dialogTips = []
@@ -936,7 +936,7 @@ export default {
return talentsApproval(params);
})
.then(() => {
this.initDept();
// this.initDept();
this.onLoad(this.page, this.query);
this.dialogFlag = false
this.$message.success('操作成功');
@@ -964,8 +964,8 @@ export default {
return talentsApproval(params);
})
.then(() => {
this.initDept();
this.onLoad(this.page, this.query);
// this.initDept();
// this.onLoad(this.page, this.query);
this.dialogFlag = false
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,10 +27,14 @@
<!--自定义列-->
<template slot="period" slot-scope="{row}">
<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="success" 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>
<el-tag type="warning"
v-if="row.serviceStatus==0">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="success"
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>
</template>
<template slot="serviceStatus" slot-scope="{row}">
@@ -52,7 +56,8 @@
size="mini"
@click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'"
>查看简历</el-button
>查看简历
</el-button
>
<div v-else>暂无简历</div>
</div>
@@ -81,6 +86,7 @@ import {mapGetters} from 'vuex'
import {dateFormat} from "@/util/date";
import {getConfig} from '@/api/tenant/config'
import EmployInformation from "./EmployInformation";
export default {
comments: {},
components: {
@@ -95,8 +101,7 @@ export default {
const validatePwdLength = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
} else {
callback();
}
}
@@ -104,16 +109,14 @@ export default {
const validatePwd = (rule, value, callback) => {
if (value != this.resetPwdForm.pwd) {
callback(new Error('两次输入密码不一致'));
}
else {
} else {
callback();
}
};
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
} else {
callback();
}
}
@@ -227,8 +230,8 @@ export default {
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: true,
searchShow: true,
searchBtn: false,
searchShow: false,
searchMenuSpan: 6,
searchLabelWidth: 60,
menu: false,
@@ -258,15 +261,12 @@ export default {
{
label: "姓名",
prop: "realName",
search: true,
searchSpan: 4,
width:70,
},
{
label: "性别",
prop: "sex",
search: false,
width:50,
dicData: [
{
label: "男",
@@ -282,48 +282,17 @@ export default {
label: "年龄",
prop: "age",
search: false,
width:50,
},
{
label: "手机号",
prop: "telphone",
search: false,
width:100,
},
{
label: "身份证",
prop: "cardNumber",
search: false,
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: "请选择分组",
},
],
};
@@ -552,9 +521,11 @@ export default {
.selectBtn {
color: #787879 !important;
}
.selectBtn:hover {
color: #787879 !important;
}
.tipsWrap {
font-size: 14px;
color: #ff0000;
@@ -562,9 +533,11 @@ export default {
top: 26px;
left: 120px;
}
.employ-employNum-count {
color: #2098ee;
}
.employ-forgetPwd {
float: right;
margin-top: -33px;

View File

@@ -56,15 +56,19 @@
<!--自定义操作栏-->
<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="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)"
v-show="vaildData(permission.tenant_mission_view, false)">查看
</el-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')"
v-if="row.reviewState === 0 || row.reviewState === 1"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_edit, false)">编辑
</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)"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_cancel, false)">取消
</el-button>

View File

@@ -1,107 +1,7 @@
<template>
<basic-container>
<!--搜索栏-->
<el-form size="small" label-position="right" :inline="true" style="padding-left: 10px;padding-right: 10px;">
<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>
<avue-form :option="option" v-model="search" @submit="handleSearch" @reset-change="handleClear"></avue-form>
<!--/搜索栏-->
<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>
@@ -116,7 +16,11 @@ import OngoingMission from './Table/OngoingMission'
import FinishedMission from './Table/FinishedMission'
import ExpiredMission from './Table/ExpiredMission'
import {companyMissionState, educationState, recruitStatus} from '@/common/dic'
import {getDeptMyTree} from "@/api/tenant/talents";
const searchData = {
status: 1
}
export default {
comments: {},
name: "tenant_mission",
@@ -134,10 +38,10 @@ export default {
currentPage: 1,
total: 0,
},
search: {
status: 1
},
timeScreenTerm: [{
search: Object.assign({}, searchData),
depTree: [],
timeScreenTerm: [
{
value: 2,
label: '开始日期',
},
@@ -156,18 +60,85 @@ export default {
FinishedMission,
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: {},
created() {
this.getDept()
},
methods: {
handleSearch() {
handleSearch(form, done) {
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) {
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) {
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) {
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() {
@@ -192,26 +163,10 @@ export default {
},
handleClear() {
let curStatus = this.search.status;
this.search = {
status: curStatus,
missionNo: '',
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime: '',
stimeEndTime: '',
etimeBeninTime: '',
etimeEndTime: '',
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue = "";
this.successTimeValue = "";
this.$nextTick(() => {
this.search = Object.assign({}, searchData)
this.handleSearch()
})
},
// 开始时间
beginDateChange(val) {

View File

@@ -27,10 +27,14 @@
<!--自定义列-->
<template slot="period" slot-scope="{row}">
<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="success" 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>
<el-tag type="warning"
v-if="row.serviceStatus==0">{{ dateFormat(row.startTime) }}-{{ dateFormat(row.endTime) }}</el-tag>
<el-tag type="success"
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>
</template>
<template slot="serviceStatus" slot-scope="{row}">
@@ -52,7 +56,8 @@
size="mini"
@click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'"
>查看简历</el-button
>查看简历
</el-button
>
<div v-else>暂无简历</div>
</div>
@@ -81,6 +86,7 @@ import {mapGetters} from 'vuex'
import {dateFormat} from "@/util/date";
import {getConfig} from '@/api/tenant/config'
import EmployInformation from "./EmployInformation";
export default {
comments: {},
components: {
@@ -95,8 +101,7 @@ export default {
const validatePwdLength = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
} else {
callback();
}
}
@@ -104,16 +109,14 @@ export default {
const validatePwd = (rule, value, callback) => {
if (value != this.resetPwdForm.pwd) {
callback(new Error('两次输入密码不一致'));
}
else {
} else {
callback();
}
};
const validPwdNums = (rule, value, callback) => {
if (value.length != 6 || isNaN(Number(value))) {
callback(new Error('请输入6位数的数字密码'));
}
else{
} else {
callback();
}
}
@@ -227,8 +230,8 @@ export default {
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: true,
searchShow: true,
searchBtn: false,
searchShow: false,
searchMenuSpan: 6,
searchLabelWidth: 60,
menu: false,
@@ -258,15 +261,12 @@ export default {
{
label: "姓名",
prop: "realName",
search: true,
searchSpan: 4,
width:70,
},
{
label: "性别",
prop: "sex",
search: false,
width:50,
dicData: [
{
label: "男",
@@ -282,48 +282,17 @@ export default {
label: "年龄",
prop: "age",
search: false,
width:50,
},
{
label: "手机号",
prop: "telphone",
search: false,
width:100,
},
{
label: "身份证",
prop: "cardNumber",
search: false,
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: "请选择分组",
},
],
};
@@ -552,9 +521,11 @@ export default {
.selectBtn {
color: #787879 !important;
}
.selectBtn:hover {
color: #787879 !important;
}
.tipsWrap {
font-size: 14px;
color: #ff0000;
@@ -562,9 +533,11 @@ export default {
top: 26px;
left: 120px;
}
.employ-employNum-count {
color: #2098ee;
}
.employ-forgetPwd {
float: right;
margin-top: -33px;

View File

@@ -59,16 +59,18 @@
<!--自定义操作栏-->
<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="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)"
v-show="vaildData(permission.tenant_mission_view, false)">查看
</el-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"
v-if="row.reviewState === 0 || row.reviewState === 1"
v-show="vaildData(permission.tenant_mission_edit, false)">编辑
</el-button>
<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 type="text" size="mini" @click="contrast(row)"
>比对人才库</el-button> -->

View File

@@ -1,156 +1,8 @@
<template>
<basic-container>
<!--搜索栏-->
<!-- <el-form size="small" label-position="right" :inline="true" style="padding-left: 10px;padding-right: 10px;">
<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>
<!--/搜索栏-->
<avue-form :option="searchOption" v-model="search" @submit="handleSearch" @reset-change="handleClear"></avue-form>
<!--搜索栏-->
<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>
<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 ExpiredMission from './Table/ExpiredMission'
import {companyMissionState, recruitStatus, educationState} from '@/common/dic'
import {getDeptMyTree} from "@/api/tenant/talents";
// import {mapGetters} from "vuex";
const searchData = {
status: 1
}
export default {
comments: {},
name: "tenant_mission",
@@ -194,9 +49,8 @@ export default {
value: 9,
},
],
search: {
status: 1
},
search: Object.assign({}, searchData),
depTree: [],
timeScreenTerm: [{
value: 1,
label: '报名截止日期',
@@ -217,11 +71,76 @@ export default {
FinishedMission,
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: {},
created() {
this.getDept()
},
methods: {
handleSearch() {
let params = {...this.search}
async getDept() {
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) {
params.stime = this.search.time[0],
params.etime = this.search.time[1]
@@ -239,6 +158,7 @@ export default {
console.log("444444444");
this.$refs.expired.onLoad(this.page, params);
}
done && done()
},
date() {
this.dateChange(this.timeValue)
@@ -263,28 +183,10 @@ export default {
},
handleClear() {
let curStatus = this.search.status;
this.search = {
status: curStatus,
missionNo: '',
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime: '',
stimeEndTime: '',
etimeBeninTime: '',
etimeEndTime: '',
jobName: '',
companyName: '',
jobStatus: ''
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue = "";
this.successTimeValue = "";
this.$nextTick(() => {
this.search = Object.assign({}, searchData)
this.handleSearch()
})
},
// 开始时间
beginDateChange(val) {

View File

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