flat: 添加期望薪资等等

This commit is contained in:
Apcallover
2024-05-20 10:30:34 +08:00
parent 255c80eaab
commit e970733bd0
9 changed files with 1067 additions and 771 deletions

View File

@@ -5,7 +5,7 @@ export const getList = (current, size, params, groupId) => {
return request({ return request({
url: "/api/jobslink-api/serve/list", url: "/api/jobslink-api/serve/list",
method: "get", method: "get",
params: { ...params, current, size, groupId } params: {...params, current, size, groupId}
}); });
}; };
@@ -14,7 +14,7 @@ export const getUserList = (current, size, params, groupId) => {
return request({ return request({
url: "/api/jobslink-api/serve/user/list", url: "/api/jobslink-api/serve/user/list",
method: "get", method: "get",
params: { ...params, current, size, groupId } params: {...params, current, size, groupId}
}); });
}; };
@@ -41,7 +41,7 @@ export const remove = ids => {
return request({ return request({
url: "/api/jobslink-api/serve/remove", url: "/api/jobslink-api/serve/remove",
method: "post", method: "post",
params: { ids } params: {ids}
}); });
}; };
@@ -50,7 +50,7 @@ export const detail = id => {
return request({ return request({
url: "/api/jobslink-api/serve/detail", url: "/api/jobslink-api/serve/detail",
method: "get", method: "get",
params: { id } params: {id}
}); });
}; };
@@ -104,7 +104,7 @@ export const removeDept = ids => {
return request({ return request({
url: "/api/jobslink-api/serve/group/remove", url: "/api/jobslink-api/serve/group/remove",
method: "post", method: "post",
params: { ids } params: {ids}
}); });
}; };
@@ -113,7 +113,7 @@ export const transferDept = (groupIds, ids) => {
return request({ return request({
url: "/api/jobslink-api/serve/updateAllGroup", url: "/api/jobslink-api/serve/updateAllGroup",
method: "post", method: "post",
params: { groupIds, ids } params: {groupIds, ids}
}); });
}; };
@@ -205,11 +205,12 @@ export const getSearchAll = params =>
method: "get", method: "get",
params: params params: params
}); });
export const getSearchAllByUserId = params => export const getSearchAllByUserId = (params, body) =>
request({ request({
url: "/api/jobslink-api/serve/pushSearchList", url: "/api/jobslink-api/serve/pushSearchList",
method: "get", method: "post",
params: params data: body,
params: params,
}); });
export const pushPolicyUserServe = params => export const pushPolicyUserServe = params =>
@@ -233,9 +234,31 @@ export const getListAllTalents = params =>
params params
}); });
export const getListUserAllTalents = params => export const getListUserAllTalents = params =>
request({ request({
url: "/api/jobslink-api/serve/user/listAllTalents", url: "/api/jobslink-api/serve/user/listAllTalents",
method: "get", method: "get",
params params
}); });
export const addServeLog = data =>
request({
url: "/api/jobslink-api/tenant/mainserveuserlog/save",
method: "post",
data
});
export const updateServeLog = data =>
request({
url: "/api/jobslink-api/tenant/mainserveuserlog/update",
method: "post",
data
});
export const removeServeLog = data =>
request({
url: "/api/jobslink-api/tenant/mainserveuserlog/remove",
method: "post",
params: data
});

View File

@@ -40,12 +40,15 @@ export default {
county: { county: {
get() { get() {
if (this.value) { if (this.value) {
return this.value.split(this.splicer); console.log('enum', this.area)
console.log('getvalue', this.value.split(this.splicer))
return this.value.split(this.splicer).map((item) => item.replace(/\s+/g, ""));
} else { } else {
return [] return []
} }
}, },
set(val) { set(val) {
console.log('setvalue', val, val.join(this.splicer))
this.$emit("input", val.join(this.splicer)); this.$emit("input", val.join(this.splicer));
}, },
}, },

View File

@@ -137,6 +137,9 @@ let leftUserOptions = {
}, { }, {
label: '手机号', label: '手机号',
prop: 'telphone', prop: 'telphone',
}, {
label: "求职意愿",
prop: "willingJob",
}, { }, {
label: "民族", label: "民族",
prop: "aac005", prop: "aac005",

View File

@@ -34,7 +34,8 @@
<div class="footer" style="padding-left: 6px"> <div class="footer" style="padding-left: 6px">
<el-button type="text" icon="el-icon-plus" <el-button type="text" icon="el-icon-plus"
v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)" v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)"
@click="updateGroups('add')">新建分组</el-button> @click="updateGroups('add')">新建分组
</el-button>
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
@@ -68,7 +69,9 @@
<template slot="worktypes" slot-scope="{ row }"> <template slot="worktypes" slot-scope="{ row }">
<el-tooltip effect="dark" :content="row.worktypes" placement="top"> <el-tooltip effect="dark" :content="row.worktypes" placement="top">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.worktypes)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.worktypes)" :key="index">
<div>{{ item }}</div>
</div>
</div> </div>
<div>{{ row.worktypes | ellipsis }}</div> <div>{{ row.worktypes | ellipsis }}</div>
</el-tooltip> </el-tooltip>
@@ -86,16 +89,21 @@
<template slot="resume" slot-scope="{ row }"> <template slot="resume" slot-scope="{ row }">
<div> <div>
<el-button type="text" size="mini" @click="$refs.resume.openDialog(row)" <el-button type="text" size="mini" @click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'">查看简历</el-button> v-if="row.userId && row.userId !== '0'">查看简历
</el-button>
<div v-else>暂无简历</div> <div v-else>暂无简历</div>
</div> </div>
</template> </template>
<template slot="serveLabels" slot-scope="{ row }"> <template slot="serveLabels" slot-scope="{ row }">
<el-tooltip effect="dark" placement="top"> <el-tooltip effect="dark" placement="top">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.serveLabels)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.serveLabels)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.serveLabels.length > 20 ? `${row.serveLabels.substring(0, 20)}...` : row.serveLabels}}</span> </div>
<span>{{
row.serveLabels.length > 20 ? `${row.serveLabels.substring(0, 20)}...` : row.serveLabels
}}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<!--/自定义列--> <!--/自定义列-->
@@ -105,12 +113,16 @@
</template> </template>
<!--自定义按钮--> <!--自定义按钮-->
<template slot="menuLeft"> <template slot="menuLeft">
<el-button type="primary" size="small" icon="el-icon-delete" @click="() => { $refs.crud.rowAdd(); selectPolicyTree = []}" <el-button type="primary" size="small" icon="el-icon-edit"
@click="() => { $refs.crud.rowAdd(); selectPolicyTree = []}"
v-if="vaildData(permission.tenant_main_serve_index_add, false)"> v-if="vaildData(permission.tenant_main_serve_index_add, false)">
新增</el-button> 新增
</el-button>
<el-button type="danger" size="small" icon="el-icon-delete" @click="handleDelete" <el-button type="danger" size="small" icon="el-icon-delete" @click="handleDelete"
:disabled="!selectionList.length" plain v-show="vaildData(permission.tenant_talents_groupdelete, false)"> :disabled="!selectionList.length" plain
删除</el-button> v-show="vaildData(permission.tenant_talents_groupdelete, false)">
删除
</el-button>
</template> </template>
<template slot="name" slot-scope="{row}"> <template slot="name" slot-scope="{row}">
<span>{{ row.name }}</span> <span>{{ row.name }}</span>
@@ -122,6 +134,7 @@
:options="listAllPolicyTree" :options="listAllPolicyTree"
:props="{ expandTrigger: 'hover', multiple: true, label: 'name', value: 'value', children: 'child'}" :props="{ expandTrigger: 'hover', multiple: true, label: 'name', value: 'value', children: 'child'}"
@change="handleChange" @change="handleChange"
filterable
></el-cascader> ></el-cascader>
</template> </template>
<!--/自定义按钮--> <!--/自定义按钮-->
@@ -131,26 +144,30 @@
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_pushserve, false)" v-show="vaildData(permission.tenant_main_serve_index_pushserve, false)"
@click="selectPushService(row)" @click="selectPushService(row)"
>推送服务</el-button> >推送服务
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="showKeyAudience(row)" @click="showKeyAudience(row)"
>服务详情</el-button> >服务详情
</el-button>
<el-button type="text" <el-button type="text"
v-if="row.status == 0" v-if="row.status == 0"
icon="el-icon-video-play" icon="el-icon-video-play"
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_off, false)" v-show="vaildData(permission.tenant_main_serve_index_off, false)"
@click="playServe(row)" @click="playServe(row)"
>启用</el-button> >启用
</el-button>
<el-button type="text" <el-button type="text"
v-if="row.status == 1" v-if="row.status == 1"
icon="el-icon-video-pause" icon="el-icon-video-pause"
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_off, false)" v-show="vaildData(permission.tenant_main_serve_index_off, false)"
@click="pauseServe(row)" @click="pauseServe(row)"
>关闭</el-button> >关闭
</el-button>
</template> </template>
<template slot="talentsNamesForm" slot-scope="{row}"> <template slot="talentsNamesForm" slot-scope="{row}">
<el-button type="text" <el-button type="text"
@@ -158,7 +175,8 @@
icon="el-icon-video-pause" icon="el-icon-video-pause"
size="small" size="small"
@click="pauseServe(row)" @click="pauseServe(row)"
>关闭</el-button> >关闭
</el-button>
</template> </template>
<!--/父子表--> <!--/父子表-->
</avue-crud> </avue-crud>
@@ -211,17 +229,20 @@
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="matchWorkStation(row)" @click="matchWorkStation(row)"
>匹配任务/岗位</el-button> >匹配任务/岗位
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="matchPolicy(row)" @click="matchPolicy(row)"
>匹配政策</el-button> >匹配政策
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="serveLog(row)" @click="serveLog(row)"
>服务日志</el-button> >服务日志
</el-button>
</template> </template>
</avue-crud> </avue-crud>
<el-drawer <el-drawer
@@ -238,14 +259,15 @@
@current-change="workCurrentChange" @current-change="workCurrentChange"
> >
<template slot="missionDesc" slot-scope="{ row }"> <template slot="missionDesc" slot-scope="{ row }">
<TextTooltip :content="row.missionDesc" ></TextTooltip> <TextTooltip :content="row.missionDesc"></TextTooltip>
</template> </template>
<template slot-scope="{row,index}" slot="menu"> <template slot-scope="{row,index}" slot="menu">
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="toWorkMissionDetail(row)" @click="toWorkMissionDetail(row)"
>查看详情</el-button> >查看详情
</el-button>
</template> </template>
</avue-crud> </avue-crud>
</el-drawer> </el-drawer>
@@ -265,22 +287,29 @@
<template slot="policyContent" slot-scope="{ row }"> <template slot="policyContent" slot-scope="{ row }">
<el-tooltip class="item" effect="dark" placement="top-start"> <el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.policyContent)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.policyContent)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.policyContent.length > 50 ? row.policyContent.substring(0, 50) : row.policyContent}}</span> </div>
<span>{{ row.policyContent.length > 50 ? row.policyContent.substring(0, 50) : row.policyContent }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot="labelName" slot-scope="{ row }"> <template slot="labelName" slot-scope="{ row }">
<el-tooltip class="item" effect="dark" placement="top-start"> <el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.labelName)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.labelName)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.labelName.length > 50 ? row.labelName.substring(0, 50) : row.labelName}}</span> </div>
<span>{{ row.labelName.length > 50 ? row.labelName.substring(0, 50) : row.labelName }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot="labelNameForm" slot-scope="{row}"> <template slot="labelNameForm" slot-scope="{row}">
<div> <div>
<el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index">{{ item }}</el-tag> <el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index">{{
item
}}
</el-tag>
</div> </div>
</template> </template>
@@ -311,6 +340,9 @@
:data="logData" :data="logData"
:option="logOption" :option="logOption"
:page.sync="logPage" :page.sync="logPage"
@row-save="saveLog"
@row-update="saveUpdateLog"
@row-del="removeLog"
@size-change="logSizeChange" @size-change="logSizeChange"
@current-change="logCurrentChange" @current-change="logCurrentChange"
> >
@@ -330,7 +362,7 @@
:visible.sync="PushServiceVisible" :visible.sync="PushServiceVisible"
:rowData="selectPushServiceData" :rowData="selectPushServiceData"
></PushService> ></PushService>
</div> </div>
</template> </template>
<script> <script>
@@ -348,26 +380,27 @@ import {
getMatchPolicy, getMatchPolicy,
getMatchServeList, getMatchServeList,
getListAllPolicy, getListAllPolicy,
getListUserAllTalents getListUserAllTalents, addServeLog, updateServeLog, removeServeLog
} from "@/api/tenant/serve"; } from "@/api/tenant/serve";
import { detail as missionDetail } from "@/api/tenant/mission"; import {detail as missionDetail} from "@/api/tenant/mission";
import { detail as workDetail } from "@/api/tenant/postzp"; import {detail as workDetail} from "@/api/tenant/postzp";
import {getLabelList, getWorkTypes} from "@/api/tenant/common"; import {getLabelList, getWorkTypes} from "@/api/tenant/common";
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import addGroups from "./Dialog/addGroups"; import addGroups from "./Dialog/addGroups";
import transferGroups from "./Dialog/transferGroups"; import transferGroups from "./Dialog/transferGroups";
import Resume from "@/components/resume/index"; import Resume from "@/components/resume/index";
import { check18IdCardNo, isvalidatemobile, isExcel } from "@/util/validate"; import {check18IdCardNo, isvalidatemobile, isExcel} from "@/util/validate";
import { getTemplate } from "@/api/resource/template"; import {getTemplate} from "@/api/resource/template";
import ied from "@/views/util/import-error-dialog"; import ied from "@/views/util/import-error-dialog";
import { excelAccept } from "@/common/accept"; import {excelAccept} from "@/common/accept";
import missionView from "./missionView.vue"; import missionView from "./missionView.vue";
import workView from "./workMissionView.vue" import workView from "./workMissionView.vue"
import {serviceType} from "@/common/dic"; import {serviceType} from "@/common/dic";
import Tinymce from "@/components/Tinymce"; import Tinymce from "@/components/Tinymce";
import { deepClone } from "@/util/util"; import {deepClone} from "@/util/util";
import PushService from "@/views/tenant/main/serve/Dialog/pushService.vue"; import PushService from "@/views/tenant/main/serve/Dialog/pushService.vue";
import TextTooltip from "@/components/text-tooltip/index.vue"; import TextTooltip from "@/components/text-tooltip/index.vue";
const page = { const page = {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@@ -422,7 +455,7 @@ export default {
personTotal: 0, personTotal: 0,
treeData: [], treeData: [],
tenantId: "", tenantId: "",
page: Object.assign({} ,page), page: Object.assign({}, page),
tempWorkType: [], tempWorkType: [],
worktypeDic: {}, worktypeDic: {},
arr: [],////// arr: [],//////
@@ -461,18 +494,19 @@ export default {
workData: [], workData: [],
policyData: [], policyData: [],
logData: [], logData: [],
infoPage: Object.assign({} ,page), infoPage: Object.assign({}, page),
workPage: Object.assign({} ,page), workPage: Object.assign({}, page),
policyPage: Object.assign({} ,page), policyPage: Object.assign({}, page),
logPage: Object.assign({} ,page), logPage: Object.assign({}, page),
obj: {}, obj: {},
excelForm: { isCovered: 1 }, excelForm: {isCovered: 1},
listAllPolicyTree: [], listAllPolicyTree: [],
selectPolicyTree: [], selectPolicyTree: [],
talentsList: [] talentsList: [],
selectUserServeLog: null,
}; };
}, },
components: { addGroups, transferGroups, Resume, ied, missionView, workView, Tinymce, PushService, TextTooltip}, components: {addGroups, transferGroups, Resume, ied, missionView, workView, Tinymce, PushService, TextTooltip},
watch: {}, watch: {},
computed: { computed: {
...mapGetters(["permission"]), ...mapGetters(["permission"]),
@@ -480,8 +514,8 @@ export default {
return { return {
addBtn: this.vaildData(this.permission.tenant_main_serve_index_add, false), addBtn: this.vaildData(this.permission.tenant_main_serve_index_add, false),
viewBtn: true, viewBtn: true,
delBtn: this.vaildData(this.permission.tenant_main_serve_index_del,false), delBtn: this.vaildData(this.permission.tenant_main_serve_index_del, false),
editBtn: this.vaildData(this.permission.tenant_main_serve_index_edit, false ), editBtn: this.vaildData(this.permission.tenant_main_serve_index_edit, false),
}; };
}, },
ids() { ids() {
@@ -555,7 +589,7 @@ export default {
{ {
required: true, required: true,
whitespace: true, whitespace: true,
message: "请输入姓名", message: "请输入服务名称",
trigger: "blur", trigger: "blur",
}, },
], ],
@@ -686,7 +720,7 @@ export default {
indexLabel: "序号", indexLabel: "序号",
refreshBtn: false, refreshBtn: false,
height: '100', height: '100',
viewBtn:true, viewBtn: true,
dialogType: "drawer", dialogType: "drawer",
column: [{ column: [{
label: '政策名称', label: '政策名称',
@@ -726,7 +760,7 @@ export default {
span: 12, span: 12,
hide: true, hide: true,
display: true, display: true,
dicData: [{ name: "有效", value: 1 }, { name: "无效", value: 0 }], dicData: [{name: "有效", value: 1}, {name: "无效", value: 0}],
props: { props: {
label: "name", label: "name",
value: "value", value: "value",
@@ -832,20 +866,23 @@ export default {
height: '100', height: '100',
column: [{ column: [{
label: '服务时间', label: '服务时间',
prop: 'createTime' prop: 'createTime',
},{ type: 'datetime',
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
}, {
label: '服务发起人', label: '服务发起人',
prop: 'fromName' prop: 'fromName'
},{ }, {
label: '服务对象', label: '服务对象',
prop: 'toName' prop: 'toName'
},{ }, {
label: '服务主题', label: '服务主题',
prop: 'serveTheme' prop: 'serveTheme'
},{ }, {
label: '服务内容', label: '服务内容',
prop: 'serveContent' prop: 'serveContent'
},{ }, {
label: '备注说明', label: '备注说明',
prop: 'bak1' prop: 'bak1'
}] }]
@@ -900,7 +937,7 @@ export default {
const result = []; const result = [];
const wt = this.obj.serveLabels ? this.obj.serveLabels.split(",") : []; const wt = this.obj.serveLabels ? this.obj.serveLabels.split(",") : [];
wt.forEach((item) => { wt.forEach((item) => {
result.push({ name: item }); result.push({name: item});
}); });
return result; return result;
}, },
@@ -917,13 +954,13 @@ export default {
for (let j = 0; j < this.arr.length; j++) { for (let j = 0; j < this.arr.length; j++) {
const key = this.arr[j]; const key = this.arr[j];
if (this.worktypeDic.hasOwnProperty(key)) { if (this.worktypeDic.hasOwnProperty(key)) {
rel.push({ name: key }) rel.push({name: key})
} }
} }
for (let i = 0; i < this.tempWorkType.length; i++) { for (let i = 0; i < this.tempWorkType.length; i++) {
const key = this.tempWorkType[i]; const key = this.tempWorkType[i];
if (key && !this.worktypeDic.hasOwnProperty(key)) { if (key && !this.worktypeDic.hasOwnProperty(key)) {
rel.push({ name: key }); rel.push({name: key});
} }
} }
return rel; return rel;
@@ -937,18 +974,82 @@ export default {
this.ListAllTalents() this.ListAllTalents()
}, },
methods: { methods: {
workSizeChange() {}, async saveLog(row, index, done, loading) {
workCurrentChange() {}, console.log(row)
let params = {
...row,
serveId: this.selectUserServeLog.serveId,
serveUserId: this.selectUserServeLog.serveUserId,
}
let resData = await addServeLog(params)
done()
if (resData.data.code === 200) {
this.$message({
type: "success",
message: "添加成功!",
});
this.serveLog(this.selectUserServeLog)
}
},
async saveUpdateLog(row, index, done, loading) {
let params = {
id: row.id,
createTime: row.createTime,
fromName: row.fromName,
toName: row.toName,
serveTheme: row.serveTheme,
serveContent: row.serveContent,
bak1: row.bak1,
}
let resData = await updateServeLog(params)
done()
if (resData.data.code === 200) {
this.$message({
type: "success",
message: "修改成功!",
});
this.serveLog(this.selectUserServeLog)
}
},
removeLog(row, index, done, loading) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
return removeServeLog({ids: row.id});
})
.then(() => {
this.serveLog(this.selectUserServeLog)
this.$message({
type: "success",
message: "操作成功!",
});
});
},
workSizeChange() {
},
workCurrentChange() {
},
logSizeChange(pageSize) {
this.logPage.pageSize = pageSize;
this.serveLog(this.selectUserServeLog)
},
logCurrentChange(currentPage) {
this.logPage.currentPage = currentPage;
this.serveLog(this.selectUserServeLog)
},
async ListAllTalents() { async ListAllTalents() {
let resData = await getListUserAllTalents() let resData = await getListUserAllTalents()
if(resData.data.code === 200) { if (resData.data.code === 200) {
this.talentsList = resData.data.data this.talentsList = resData.data.data
} }
}, },
selectPushService(row) { selectPushService(row) {
console.log('点击') console.log('点击')
detail(row.id).then((res) => { detail(row.id).then((res) => {
if(res.data.code === 200) { if (res.data.code === 200) {
this.selectPushServiceData = res.data.data this.selectPushServiceData = res.data.data
this.PushServiceVisible = true this.PushServiceVisible = true
} }
@@ -961,7 +1062,7 @@ export default {
}, },
async getListAllPolicyTree() { async getListAllPolicyTree() {
let resData = await getListAllPolicy({}) let resData = await getListAllPolicy({})
if(resData.data.code === 200) { if (resData.data.code === 200) {
this.listAllPolicyTree = resData.data.data this.listAllPolicyTree = resData.data.data
} }
}, },
@@ -971,16 +1072,16 @@ export default {
}, },
clipStr(str) { clipStr(str) {
const clip = [] const clip = []
if(str && str.length > 50) { if (str && str.length > 50) {
for (let i = 0; i < Math.ceil(str.length / 50); i++) { for (let i = 0; i < Math.ceil(str.length / 50); i++) {
clip.push(str.slice(i * 50,i * 50 + 50)) clip.push(str.slice(i * 50, i * 50 + 50))
} }
return clip return clip
} }
return [str] return [str]
}, },
getLabelList() { getLabelList() {
getLabelList().then( (res) => { getLabelList().then((res) => {
const arr = res.data.data.flatMap(obj => obj.child.map(item => item.concatName)); const arr = res.data.data.flatMap(obj => obj.child.map(item => item.concatName));
this.arr = arr.map(concatName => { this.arr = arr.map(concatName => {
this.worktypeDic[concatName] = 1; this.worktypeDic[concatName] = 1;
@@ -998,7 +1099,7 @@ export default {
getKeyAudience(params) { getKeyAudience(params) {
const _this = this const _this = this
return getServeListTalents(params).then((res) => { return getServeListTalents(params).then((res) => {
if(res.data.code === 200) { if (res.data.code === 200) {
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
_this.infoData = records _this.infoData = records
_this.visibleAudience = true _this.visibleAudience = true
@@ -1020,7 +1121,7 @@ export default {
}) })
}, },
infoCurrentChange(currentPage) { infoCurrentChange(currentPage) {
const { pageSize, total} = this.infoPage const {pageSize, total} = this.infoPage
this.getKeyAudience({ this.getKeyAudience({
pageSize: pageSize, pageSize: pageSize,
current: currentPage, current: currentPage,
@@ -1029,7 +1130,7 @@ export default {
}) })
}, },
infoRefreshChange() { infoRefreshChange() {
const { currentPage, pageSize, total} = this.infoPage const {currentPage, pageSize, total} = this.infoPage
this.getKeyAudience({ this.getKeyAudience({
pageSize: pageSize, pageSize: pageSize,
current: currentPage, current: currentPage,
@@ -1069,13 +1170,13 @@ export default {
this.$nextTick(function () { this.$nextTick(function () {
this.$refs.tree.setCurrentKey(groupId); this.$refs.tree.setCurrentKey(groupId);
}); //默认高亮 }); //默认高亮
this.nodeClick({ id: groupId }); this.nodeClick({id: groupId});
} else { } else {
if (this.treeData.length) { if (this.treeData.length) {
this.$nextTick(function () { this.$nextTick(function () {
this.$refs.tree.setCurrentKey(this.treeData[0].id); this.$refs.tree.setCurrentKey(this.treeData[0].id);
}); //默认高亮第一个 }); //默认高亮第一个
this.nodeClick({ id: this.treeData[0].id }); this.nodeClick({id: this.treeData[0].id});
} }
} }
this.personTotal = res.data.data.sum; this.personTotal = res.data.data.sum;
@@ -1092,8 +1193,8 @@ 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"}, "您确定要删除此分组吗? "),
h("p", { style: "color: red" }, "一旦删除则无法找回"), h("p", {style: "color: red"}, "一旦删除则无法找回"),
]), ]),
{ {
type: "warning", type: "warning",
@@ -1190,11 +1291,11 @@ export default {
} }
}, },
treeIteration(tree, ids) { treeIteration(tree, ids) {
if( !(tree.length && ids.length) ) return; if (!(tree.length && ids.length)) return;
let arr = [] let arr = []
tree.forEach((treeItem) => { tree.forEach((treeItem) => {
treeItem.child.forEach((item) => { treeItem.child.forEach((item) => {
if(ids.some((id) => item.value === id)) { if (ids.some((id) => item.value === id)) {
arr.push([treeItem.value, item.value]) arr.push([treeItem.value, item.value])
} }
}) })
@@ -1260,8 +1361,8 @@ 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"}, "您确定要删除此人才吗? "),
h("p", { style: "color: red" }, "一旦删除则无法找回"), h("p", {style: "color: red"}, "一旦删除则无法找回"),
]), ]),
{ {
type: "warning", type: "warning",
@@ -1314,7 +1415,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",
@@ -1470,7 +1571,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;
console.log( data.records) console.log(data.records)
this.data = data.records.map((item) => ({ this.data = data.records.map((item) => ({
...item, talentsGroupId: item.talentsGroupId.split(',') ...item, talentsGroupId: item.talentsGroupId.split(',')
})); }));
@@ -1481,7 +1582,11 @@ export default {
// 匹配任务和岗位 // 匹配任务和岗位
matchWorkStation(row) { matchWorkStation(row) {
console.log('匹配任务和岗位') console.log('匹配任务和岗位')
getMatchWorkStation({serveUserId: row.serveUserId, serveId: this.selectInfo.id, companyId: this.selectInfo.companyId}).then(res => { getMatchWorkStation({
serveUserId: row.serveUserId,
serveId: this.selectInfo.id,
companyId: this.selectInfo.companyId
}).then(res => {
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
this.innerDrawer1 = true this.innerDrawer1 = true
this.workData = records this.workData = records
@@ -1510,7 +1615,14 @@ export default {
// 服务日志 // 服务日志
serveLog(row) { serveLog(row) {
console.log('服务日志') console.log('服务日志')
getMatchServeList({id: row.id, serveId: this.selectInfo.id, companyId: this.selectInfo.companyId, current: 1, size: 10}).then(res => { this.selectUserServeLog = row
getMatchServeList({
id: row.id,
serveId: this.selectInfo.id,
companyId: this.selectInfo.companyId,
current: this.logPage.currentPage,
size: this.logPage.pageSize
}).then(res => {
let _this = this; let _this = this;
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
_this.logData = records _this.logData = records
@@ -1539,12 +1651,12 @@ export default {
}, },
/*查看*/ /*查看*/
toWorkMissionDetail(row) { toWorkMissionDetail(row) {
if(row.type == 0) { if (row.type == 0) {
missionDetail(row.missionNo).then((res) => { missionDetail(row.missionNo).then((res) => {
this.viewDrawer = true; this.viewDrawer = true;
this.view = res; this.view = res;
}); });
} else if(row.type == 1) { } else if (row.type == 1) {
workDetail(row.id).then(res => { workDetail(row.id).then(res => {
this.workViewDrawer = true; this.workViewDrawer = true;
this.workViewModel = res; this.workViewModel = res;
@@ -1593,11 +1705,11 @@ export default {
}, },
addNewLog() { addNewLog() {
console.log('add log') console.log('add log')
this.$router.push({ name: '添加/修改日志log', params: { type: 'add', id: null } }) this.$router.push({name: '添加/修改日志log', params: {type: 'add', id: null}})
}, },
editLogInfo() { editLogInfo() {
console.log('edit log') console.log('edit log')
this.$router.push({ name: '添加/修改日志log', params: { type: 'edit', id: null } }) this.$router.push({name: '添加/修改日志log', params: {type: 'edit', id: null}})
} }
}, },
}; };

View File

@@ -402,6 +402,22 @@ export default {
], ],
span: 24, span: 24,
}, },
{
label: "求职意愿",
prop: "willingJob",
span: 24,
rules: [
{required: true, message: "请输入求职意愿", trigger: "blur"},
],
},
{
label: "期望薪资",
prop: "wage",
span: 24,
rules: [
{required: true, message: "请输入期望薪资", trigger: "blur"},
],
},
// { // {
// label: "经办时间", // label: "经办时间",
// prop: "aae036", // prop: "aae036",

View File

@@ -137,6 +137,9 @@ let leftUserOptions = {
}, { }, {
label: '手机号', label: '手机号',
prop: 'telphone', prop: 'telphone',
}, {
label: "求职意愿",
prop: "willingJob",
}, { }, {
label: "民族", label: "民族",
prop: "aac005", prop: "aac005",
@@ -436,13 +439,18 @@ export default {
async getRightSearchByUserId() { async getRightSearchByUserId() {
const {currentPage, size} = this.rightPages const {currentPage, size} = this.rightPages
const ids = this.leftUserSelections.map(item => item.userId).join(','); const ids = this.leftUserSelections.map(item => item.userId).join(',');
const willingJobs = this.leftUserSelections.map(item => item.willingJob);
const createTime = Date.now() + 3000 const createTime = Date.now() + 3000
this.rightLoading = true this.rightLoading = true
let params = { let params = {
ids, current: currentPage, ids, current: currentPage,
size, size,
} }
let resData = await getSearchAllByUserId(params) let paramsBody = {
willingJobs: willingJobs
}
console.log(params, paramsBody)
let resData = await getSearchAllByUserId(params, paramsBody)
if (resData.data.code === 200) { if (resData.data.code === 200) {
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0 const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
setTimeout(() => { setTimeout(() => {

View File

@@ -34,7 +34,8 @@
<div class="footer" style="padding-left: 6px"> <div class="footer" style="padding-left: 6px">
<el-button type="text" icon="el-icon-plus" <el-button type="text" icon="el-icon-plus"
v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)" v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)"
@click="updateGroups('add')">新建分组</el-button> @click="updateGroups('add')">新建分组
</el-button>
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
@@ -68,7 +69,9 @@
<template slot="worktypes" slot-scope="{ row }"> <template slot="worktypes" slot-scope="{ row }">
<el-tooltip effect="dark" :content="row.worktypes" placement="top"> <el-tooltip effect="dark" :content="row.worktypes" placement="top">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.worktypes)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.worktypes)" :key="index">
<div>{{ item }}</div>
</div>
</div> </div>
<div>{{ row.worktypes | ellipsis }}</div> <div>{{ row.worktypes | ellipsis }}</div>
</el-tooltip> </el-tooltip>
@@ -86,16 +89,21 @@
<template slot="resume" slot-scope="{ row }"> <template slot="resume" slot-scope="{ row }">
<div> <div>
<el-button type="text" size="mini" @click="$refs.resume.openDialog(row)" <el-button type="text" size="mini" @click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'">查看简历</el-button> v-if="row.userId && row.userId !== '0'">查看简历
</el-button>
<div v-else>暂无简历</div> <div v-else>暂无简历</div>
</div> </div>
</template> </template>
<template slot="serveLabels" slot-scope="{ row }"> <template slot="serveLabels" slot-scope="{ row }">
<el-tooltip effect="dark" placement="top"> <el-tooltip effect="dark" placement="top">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.serveLabels)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.serveLabels)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.serveLabels.length > 20 ? `${row.serveLabels.substring(0, 20)}...` : row.serveLabels}}</span> </div>
<span>{{
row.serveLabels.length > 20 ? `${row.serveLabels.substring(0, 20)}...` : row.serveLabels
}}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<!--/自定义列--> <!--/自定义列-->
@@ -105,12 +113,16 @@
</template> </template>
<!--自定义按钮--> <!--自定义按钮-->
<template slot="menuLeft"> <template slot="menuLeft">
<el-button type="primary" size="small" icon="el-icon-delete" @click="() => { $refs.crud.rowAdd(); selectPolicyTree = []}" <el-button type="primary" size="small" icon="el-icon-delete"
@click="() => { $refs.crud.rowAdd(); selectPolicyTree = []}"
v-if="vaildData(permission.tenant_main_serve_index_add, false)"> v-if="vaildData(permission.tenant_main_serve_index_add, false)">
新增</el-button> 新增
</el-button>
<el-button type="danger" size="small" icon="el-icon-delete" @click="handleDelete" <el-button type="danger" size="small" icon="el-icon-delete" @click="handleDelete"
:disabled="!selectionList.length" plain v-show="vaildData(permission.tenant_talents_groupdelete, false)"> :disabled="!selectionList.length" plain
删除</el-button> v-show="vaildData(permission.tenant_talents_groupdelete, false)">
删除
</el-button>
</template> </template>
<template slot="name" slot-scope="{row}"> <template slot="name" slot-scope="{row}">
<span>{{ row.name }}</span> <span>{{ row.name }}</span>
@@ -122,6 +134,7 @@
:options="listAllPolicyTree" :options="listAllPolicyTree"
:props="{ expandTrigger: 'hover', multiple: true, label: 'name', value: 'value', children: 'child'}" :props="{ expandTrigger: 'hover', multiple: true, label: 'name', value: 'value', children: 'child'}"
@change="handleChange" @change="handleChange"
filterable
></el-cascader> ></el-cascader>
</template> </template>
<!--/自定义按钮--> <!--/自定义按钮-->
@@ -131,26 +144,30 @@
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_pushserve, false)" v-show="vaildData(permission.tenant_main_serve_index_pushserve, false)"
@click="selectPushService(row)" @click="selectPushService(row)"
>推送服务</el-button> >推送服务
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="showKeyAudience(row)" @click="showKeyAudience(row)"
>服务详情</el-button> >服务详情
</el-button>
<el-button type="text" <el-button type="text"
v-if="row.status == 0" v-if="row.status == 0"
icon="el-icon-video-play" icon="el-icon-video-play"
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_off, false)" v-show="vaildData(permission.tenant_main_serve_index_off, false)"
@click="playServe(row)" @click="playServe(row)"
>启用</el-button> >启用
</el-button>
<el-button type="text" <el-button type="text"
v-if="row.status == 1" v-if="row.status == 1"
icon="el-icon-video-pause" icon="el-icon-video-pause"
size="small" size="small"
v-show="vaildData(permission.tenant_main_serve_index_off, false)" v-show="vaildData(permission.tenant_main_serve_index_off, false)"
@click="pauseServe(row)" @click="pauseServe(row)"
>关闭</el-button> >关闭
</el-button>
</template> </template>
<template slot="talentsNamesForm" slot-scope="{row}"> <template slot="talentsNamesForm" slot-scope="{row}">
<el-button type="text" <el-button type="text"
@@ -158,7 +175,8 @@
icon="el-icon-video-pause" icon="el-icon-video-pause"
size="small" size="small"
@click="pauseServe(row)" @click="pauseServe(row)"
>关闭</el-button> >关闭
</el-button>
</template> </template>
<!--/父子表--> <!--/父子表-->
</avue-crud> </avue-crud>
@@ -211,17 +229,20 @@
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="matchWorkStation(row)" @click="matchWorkStation(row)"
>匹配任务/岗位</el-button> >匹配任务/岗位
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="matchPolicy(row)" @click="matchPolicy(row)"
>匹配政策</el-button> >匹配政策
</el-button>
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="serveLog(row)" @click="serveLog(row)"
>服务日志</el-button> >服务日志
</el-button>
</template> </template>
</avue-crud> </avue-crud>
<el-drawer <el-drawer
@@ -238,14 +259,15 @@
@current-change="workCurrentChange" @current-change="workCurrentChange"
> >
<template slot="missionDesc" slot-scope="{ row }"> <template slot="missionDesc" slot-scope="{ row }">
<TextTooltip :content="row.missionDesc" ></TextTooltip> <TextTooltip :content="row.missionDesc"></TextTooltip>
</template> </template>
<template slot-scope="{row,index}" slot="menu"> <template slot-scope="{row,index}" slot="menu">
<el-button type="text" <el-button type="text"
icon="el-icon-document" icon="el-icon-document"
size="small" size="small"
@click="toWorkMissionDetail(row)" @click="toWorkMissionDetail(row)"
>查看详情</el-button> >查看详情
</el-button>
</template> </template>
</avue-crud> </avue-crud>
</el-drawer> </el-drawer>
@@ -265,22 +287,29 @@
<template slot="policyContent" slot-scope="{ row }"> <template slot="policyContent" slot-scope="{ row }">
<el-tooltip class="item" effect="dark" placement="top-start"> <el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.policyContent)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.policyContent)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.policyContent.length > 50 ? row.policyContent.substring(0, 50) : row.policyContent}}</span> </div>
<span>{{ row.policyContent.length > 50 ? row.policyContent.substring(0, 50) : row.policyContent }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot="labelName" slot-scope="{ row }"> <template slot="labelName" slot-scope="{ row }">
<el-tooltip class="item" effect="dark" placement="top-start"> <el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content"> <div slot="content">
<div v-for="(item, index) in clipStr(row.labelName)" :key="index"><div>{{item}}</div></div> <div v-for="(item, index) in clipStr(row.labelName)" :key="index">
<div>{{ item }}</div>
</div> </div>
<span>{{ row.labelName.length > 50 ? row.labelName.substring(0, 50) : row.labelName}}</span> </div>
<span>{{ row.labelName.length > 50 ? row.labelName.substring(0, 50) : row.labelName }}</span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot="labelNameForm" slot-scope="{row}"> <template slot="labelNameForm" slot-scope="{row}">
<div> <div>
<el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index">{{ item }}</el-tag> <el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index">{{
item
}}
</el-tag>
</div> </div>
</template> </template>
@@ -310,6 +339,9 @@
<avue-crud <avue-crud
:data="logData" :data="logData"
:option="logOption" :option="logOption"
@row-save="saveLog"
@row-update="saveUpdateLog"
@row-del="removeLog"
:page.sync="logPage" :page.sync="logPage"
@size-change="logSizeChange" @size-change="logSizeChange"
@current-change="logCurrentChange" @current-change="logCurrentChange"
@@ -330,7 +362,7 @@
:visible.sync="PushServiceVisible" :visible.sync="PushServiceVisible"
:rowData="selectPushServiceData" :rowData="selectPushServiceData"
></PushService> ></PushService>
</div> </div>
</template> </template>
<script> <script>
@@ -348,26 +380,30 @@ import {
getMatchPolicy, getMatchPolicy,
getMatchServeList, getMatchServeList,
getListAllPolicy, getListAllPolicy,
getListAllTalents getListAllTalents,
addServeLog,
updateServeLog,
removeServeLog
} from "@/api/tenant/serve"; } from "@/api/tenant/serve";
import { detail as missionDetail } from "@/api/tenant/mission"; import {detail as missionDetail} from "@/api/tenant/mission";
import { detail as workDetail } from "@/api/tenant/postzp"; import {detail as workDetail} from "@/api/tenant/postzp";
import {getLabelList, getWorkTypes} from "@/api/tenant/common"; import {getLabelList, getWorkTypes} from "@/api/tenant/common";
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import addGroups from "./Dialog/addGroups"; import addGroups from "./Dialog/addGroups";
import transferGroups from "./Dialog/transferGroups"; import transferGroups from "./Dialog/transferGroups";
import Resume from "@/components/resume/index"; import Resume from "@/components/resume/index";
import { check18IdCardNo, isvalidatemobile, isExcel } from "@/util/validate"; import {check18IdCardNo, isvalidatemobile, isExcel} from "@/util/validate";
import { getTemplate } from "@/api/resource/template"; import {getTemplate} from "@/api/resource/template";
import ied from "@/views/util/import-error-dialog"; import ied from "@/views/util/import-error-dialog";
import { excelAccept } from "@/common/accept"; import {excelAccept} from "@/common/accept";
import missionView from "../../mission/Table/missionView.vue"; import missionView from "../../mission/Table/missionView.vue";
import workView from "../../works/Table/missionView.vue" import workView from "../../works/Table/missionView.vue"
import {serviceType} from "@/common/dic"; import {serviceType} from "@/common/dic";
import Tinymce from "@/components/Tinymce"; import Tinymce from "@/components/Tinymce";
import { deepClone } from "@/util/util"; import {deepClone} from "@/util/util";
import PushService from "@/views/tenant/main/serve/Dialog/pushService.vue"; import PushService from "@/views/tenant/main/serve/Dialog/pushService.vue";
import TextTooltip from "@/components/text-tooltip/index.vue"; import TextTooltip from "@/components/text-tooltip/index.vue";
const page = { const page = {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@@ -422,7 +458,7 @@ export default {
personTotal: 0, personTotal: 0,
treeData: [], treeData: [],
tenantId: "", tenantId: "",
page: Object.assign({} ,page), page: Object.assign({}, page),
tempWorkType: [], tempWorkType: [],
worktypeDic: {}, worktypeDic: {},
arr: [],////// arr: [],//////
@@ -461,18 +497,19 @@ export default {
workData: [], workData: [],
policyData: [], policyData: [],
logData: [], logData: [],
infoPage: Object.assign({} ,page), infoPage: Object.assign({}, page),
workPage: Object.assign({} ,page), workPage: Object.assign({}, page),
policyPage: Object.assign({} ,page), policyPage: Object.assign({}, page),
logPage: Object.assign({} ,page), logPage: Object.assign({}, page),
obj: {}, obj: {},
excelForm: { isCovered: 1 }, excelForm: {isCovered: 1},
listAllPolicyTree: [], listAllPolicyTree: [],
selectPolicyTree: [], selectPolicyTree: [],
talentsList: [] talentsList: [],
selectUserServeLog: null,
}; };
}, },
components: { addGroups, transferGroups, Resume, ied, missionView, workView, Tinymce, PushService, TextTooltip}, components: {addGroups, transferGroups, Resume, ied, missionView, workView, Tinymce, PushService, TextTooltip},
watch: {}, watch: {},
computed: { computed: {
...mapGetters(["permission"]), ...mapGetters(["permission"]),
@@ -480,8 +517,8 @@ export default {
return { return {
addBtn: this.vaildData(this.permission.tenant_main_serve_index_add, false), addBtn: this.vaildData(this.permission.tenant_main_serve_index_add, false),
viewBtn: true, viewBtn: true,
delBtn: this.vaildData(this.permission.tenant_main_serve_index_del,false), delBtn: this.vaildData(this.permission.tenant_main_serve_index_del, false),
editBtn: this.vaildData(this.permission.tenant_main_serve_index_edit, false ), editBtn: this.vaildData(this.permission.tenant_main_serve_index_edit, false),
}; };
}, },
ids() { ids() {
@@ -686,7 +723,7 @@ export default {
indexLabel: "序号", indexLabel: "序号",
refreshBtn: false, refreshBtn: false,
height: '100', height: '100',
viewBtn:true, viewBtn: true,
dialogType: "drawer", dialogType: "drawer",
column: [{ column: [{
label: '政策名称', label: '政策名称',
@@ -726,7 +763,7 @@ export default {
span: 12, span: 12,
hide: true, hide: true,
display: true, display: true,
dicData: [{ name: "有效", value: 1 }, { name: "无效", value: 0 }], dicData: [{name: "有效", value: 1}, {name: "无效", value: 0}],
props: { props: {
label: "name", label: "name",
value: "value", value: "value",
@@ -832,20 +869,23 @@ export default {
height: '100', height: '100',
column: [{ column: [{
label: '服务时间', label: '服务时间',
prop: 'createTime' prop: 'createTime',
},{ type: 'datetime',
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
}, {
label: '服务发起人', label: '服务发起人',
prop: 'fromName' prop: 'fromName'
},{ }, {
label: '服务对象', label: '服务对象',
prop: 'toName' prop: 'toName'
},{ }, {
label: '服务主题', label: '服务主题',
prop: 'serveTheme' prop: 'serveTheme'
},{ }, {
label: '服务内容', label: '服务内容',
prop: 'serveContent' prop: 'serveContent'
},{ }, {
label: '备注说明', label: '备注说明',
prop: 'bak1' prop: 'bak1'
}] }]
@@ -900,7 +940,7 @@ export default {
const result = []; const result = [];
const wt = this.obj.serveLabels ? this.obj.serveLabels.split(",") : []; const wt = this.obj.serveLabels ? this.obj.serveLabels.split(",") : [];
wt.forEach((item) => { wt.forEach((item) => {
result.push({ name: item }); result.push({name: item});
}); });
return result; return result;
}, },
@@ -917,13 +957,13 @@ export default {
for (let j = 0; j < this.arr.length; j++) { for (let j = 0; j < this.arr.length; j++) {
const key = this.arr[j]; const key = this.arr[j];
if (this.worktypeDic.hasOwnProperty(key)) { if (this.worktypeDic.hasOwnProperty(key)) {
rel.push({ name: key }) rel.push({name: key})
} }
} }
for (let i = 0; i < this.tempWorkType.length; i++) { for (let i = 0; i < this.tempWorkType.length; i++) {
const key = this.tempWorkType[i]; const key = this.tempWorkType[i];
if (key && !this.worktypeDic.hasOwnProperty(key)) { if (key && !this.worktypeDic.hasOwnProperty(key)) {
rel.push({ name: key }); rel.push({name: key});
} }
} }
return rel; return rel;
@@ -937,18 +977,81 @@ export default {
this.ListAllTalents() this.ListAllTalents()
}, },
methods: { methods: {
workSizeChange() {}, async saveLog(row, index, done, loading) {
workCurrentChange() {}, let params = {
...row,
serveId: this.selectUserServeLog.serveId,
serveUserId: this.selectUserServeLog.serveUserId,
}
let resData = await addServeLog(params)
done()
if (resData.data.code === 200) {
this.$message({
type: "success",
message: "添加成功!",
});
this.serveLog(this.selectUserServeLog)
}
},
async saveUpdateLog(row, index, done, loading) {
let params = {
id: row.id,
createTime: row.createTime,
fromName: row.fromName,
toName: row.toName,
serveTheme: row.serveTheme,
serveContent: row.serveContent,
bak1: row.bak1,
}
let resData = await updateServeLog(params)
done()
if (resData.data.code === 200) {
this.$message({
type: "success",
message: "修改成功!",
});
this.serveLog(this.selectUserServeLog)
}
},
removeLog(row, index, done, loading) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
return removeServeLog({ids: row.id});
})
.then(() => {
this.serveLog(this.selectUserServeLog)
this.$message({
type: "success",
message: "操作成功!",
});
});
},
workSizeChange() {
},
workCurrentChange() {
},
logSizeChange(pageSize) {
this.logPage.pageSize = pageSize;
this.serveLog(this.selectUserServeLog)
},
logCurrentChange(currentPage) {
this.logPage.currentPage = currentPage;
this.serveLog(this.selectUserServeLog)
},
async ListAllTalents() { async ListAllTalents() {
let resData = await getListAllTalents() let resData = await getListAllTalents()
if(resData.data.code === 200) { if (resData.data.code === 200) {
this.talentsList = resData.data.data this.talentsList = resData.data.data
} }
}, },
selectPushService(row) { selectPushService(row) {
console.log('点击') console.log('点击')
detail(row.id).then((res) => { detail(row.id).then((res) => {
if(res.data.code === 200) { if (res.data.code === 200) {
this.selectPushServiceData = res.data.data this.selectPushServiceData = res.data.data
this.PushServiceVisible = true this.PushServiceVisible = true
} }
@@ -961,7 +1064,7 @@ export default {
}, },
async getListAllPolicyTree() { async getListAllPolicyTree() {
let resData = await getListAllPolicy({}) let resData = await getListAllPolicy({})
if(resData.data.code === 200) { if (resData.data.code === 200) {
this.listAllPolicyTree = resData.data.data this.listAllPolicyTree = resData.data.data
} }
}, },
@@ -971,16 +1074,16 @@ export default {
}, },
clipStr(str) { clipStr(str) {
const clip = [] const clip = []
if(str && str.length > 50) { if (str && str.length > 50) {
for (let i = 0; i < Math.ceil(str.length / 50); i++) { for (let i = 0; i < Math.ceil(str.length / 50); i++) {
clip.push(str.slice(i * 50,i * 50 + 50)) clip.push(str.slice(i * 50, i * 50 + 50))
} }
return clip return clip
} }
return [str] return [str]
}, },
getLabelList() { getLabelList() {
getLabelList().then( (res) => { getLabelList().then((res) => {
const arr = res.data.data.flatMap(obj => obj.child.map(item => item.concatName)); const arr = res.data.data.flatMap(obj => obj.child.map(item => item.concatName));
this.arr = arr.map(concatName => { this.arr = arr.map(concatName => {
this.worktypeDic[concatName] = 1; this.worktypeDic[concatName] = 1;
@@ -998,7 +1101,7 @@ export default {
getKeyAudience(params) { getKeyAudience(params) {
const _this = this const _this = this
return getServeListTalents(params).then((res) => { return getServeListTalents(params).then((res) => {
if(res.data.code === 200) { if (res.data.code === 200) {
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
_this.infoData = records _this.infoData = records
_this.visibleAudience = true _this.visibleAudience = true
@@ -1020,7 +1123,7 @@ export default {
}) })
}, },
infoCurrentChange(currentPage) { infoCurrentChange(currentPage) {
const { pageSize, total} = this.infoPage const {pageSize, total} = this.infoPage
this.getKeyAudience({ this.getKeyAudience({
pageSize: pageSize, pageSize: pageSize,
current: currentPage, current: currentPage,
@@ -1029,7 +1132,7 @@ export default {
}) })
}, },
infoRefreshChange() { infoRefreshChange() {
const { currentPage, pageSize, total} = this.infoPage const {currentPage, pageSize, total} = this.infoPage
this.getKeyAudience({ this.getKeyAudience({
pageSize: pageSize, pageSize: pageSize,
current: currentPage, current: currentPage,
@@ -1069,13 +1172,13 @@ export default {
this.$nextTick(function () { this.$nextTick(function () {
this.$refs.tree.setCurrentKey(groupId); this.$refs.tree.setCurrentKey(groupId);
}); //默认高亮 }); //默认高亮
this.nodeClick({ id: groupId }); this.nodeClick({id: groupId});
} else { } else {
if (this.treeData.length) { if (this.treeData.length) {
this.$nextTick(function () { this.$nextTick(function () {
this.$refs.tree.setCurrentKey(this.treeData[0].id); this.$refs.tree.setCurrentKey(this.treeData[0].id);
}); //默认高亮第一个 }); //默认高亮第一个
this.nodeClick({ id: this.treeData[0].id }); this.nodeClick({id: this.treeData[0].id});
} }
} }
this.personTotal = res.data.data.sum; this.personTotal = res.data.data.sum;
@@ -1092,8 +1195,8 @@ 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"}, "您确定要删除此分组吗? "),
h("p", { style: "color: red" }, "一旦删除则无法找回"), h("p", {style: "color: red"}, "一旦删除则无法找回"),
]), ]),
{ {
type: "warning", type: "warning",
@@ -1190,11 +1293,11 @@ export default {
} }
}, },
treeIteration(tree, ids) { treeIteration(tree, ids) {
if( !(tree.length && ids.length) ) return; if (!(tree.length && ids.length)) return;
let arr = [] let arr = []
tree.forEach((treeItem) => { tree.forEach((treeItem) => {
treeItem.child.forEach((item) => { treeItem.child.forEach((item) => {
if(ids.some((id) => item.value === id)) { if (ids.some((id) => item.value === id)) {
arr.push([treeItem.value, item.value]) arr.push([treeItem.value, item.value])
} }
}) })
@@ -1260,8 +1363,8 @@ 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"}, "您确定要删除此人才吗? "),
h("p", { style: "color: red" }, "一旦删除则无法找回"), h("p", {style: "color: red"}, "一旦删除则无法找回"),
]), ]),
{ {
type: "warning", type: "warning",
@@ -1314,7 +1417,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",
@@ -1470,7 +1573,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;
console.log( data.records) console.log(data.records)
this.data = data.records.map((item) => ({ this.data = data.records.map((item) => ({
...item, talentsGroupId: item.talentsGroupId.split(',') ...item, talentsGroupId: item.talentsGroupId.split(',')
})); }));
@@ -1481,7 +1584,11 @@ export default {
// 匹配任务和岗位 // 匹配任务和岗位
matchWorkStation(row) { matchWorkStation(row) {
console.log('匹配任务和岗位') console.log('匹配任务和岗位')
getMatchWorkStation({serveUserId: row.serveUserId, serveId: this.selectInfo.id, companyId: this.selectInfo.companyId}).then(res => { getMatchWorkStation({
serveUserId: row.serveUserId,
serveId: this.selectInfo.id,
companyId: this.selectInfo.companyId
}).then(res => {
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
this.innerDrawer1 = true this.innerDrawer1 = true
this.workData = records this.workData = records
@@ -1510,7 +1617,14 @@ export default {
// 服务日志 // 服务日志
serveLog(row) { serveLog(row) {
console.log('服务日志') console.log('服务日志')
getMatchServeList({id: row.id, serveId: this.selectInfo.id, companyId: this.selectInfo.companyId, current: 1, size: 10}).then(res => { this.selectUserServeLog = row
getMatchServeList({
id: row.id,
serveId: this.selectInfo.id,
companyId: this.selectInfo.companyId,
current: this.logPage.currentPage,
size: this.logPage.pageSize
}).then(res => {
let _this = this; let _this = this;
const {records, current, size, total} = res.data.data const {records, current, size, total} = res.data.data
_this.logData = records _this.logData = records
@@ -1539,12 +1653,12 @@ export default {
}, },
/*查看*/ /*查看*/
toWorkMissionDetail(row) { toWorkMissionDetail(row) {
if(row.type == 0) { if (row.type == 0) {
missionDetail(row.missionNo).then((res) => { missionDetail(row.missionNo).then((res) => {
this.viewDrawer = true; this.viewDrawer = true;
this.view = res; this.view = res;
}); });
} else if(row.type == 1) { } else if (row.type == 1) {
workDetail(row.id).then(res => { workDetail(row.id).then(res => {
this.workViewDrawer = true; this.workViewDrawer = true;
this.workViewModel = res; this.workViewModel = res;
@@ -1593,11 +1707,11 @@ export default {
}, },
addNewLog() { addNewLog() {
console.log('add log') console.log('add log')
this.$router.push({ name: '添加/修改日志log', params: { type: 'add', id: null } }) this.$router.push({name: '添加/修改日志log', params: {type: 'add', id: null}})
}, },
editLogInfo() { editLogInfo() {
console.log('edit log') console.log('edit log')
this.$router.push({ name: '添加/修改日志log', params: { type: 'edit', id: null } }) this.$router.push({name: '添加/修改日志log', params: {type: 'edit', id: null}})
} }
}, },
}; };

View File

@@ -371,6 +371,14 @@ export default {
], ],
span: 24, span: 24,
}, },
{
label: "求职意愿",
prop: "willingJob",
span: 24,
rules: [
{required: true, message: "请输入求职意愿", trigger: "blur"},
],
},
{ {
label: "户口所在地", label: "户口所在地",
prop: "aac010", prop: "aac010",

View File

@@ -56,6 +56,14 @@
placeholder="请选择 工作地址" placeholder="请选择 工作地址"
></jl-cityLabel-cascader> ></jl-cityLabel-cascader>
</template> </template>
<template slot="cityIdFrom" slot-scope="{ disabled }">
<jl-cityLabel-cascader
:disabled="disabled"
filterable
v-model="obj.cityId"
placeholder="请选择 工作地址"
></jl-cityLabel-cascader>
</template>
<template slot-scope="{ row }" slot="wage"> <template slot-scope="{ row }" slot="wage">
<el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select"> <el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select">
<el-select v-model="obj.wageUnitCategory" slot="append" placeholder="请选择" @change="getMaxAndMin"> <el-select v-model="obj.wageUnitCategory" slot="append" placeholder="请选择" @change="getMaxAndMin">
@@ -810,7 +818,7 @@ export default {
}, },
{ {
min: 1, min: 1,
max: 5, max: 8,
message: "长度在 1 到 5 个字", message: "长度在 1 到 5 个字",
trigger: "blur", trigger: "blur",
}, },
@@ -1170,7 +1178,7 @@ export default {
callName: row.callName, callName: row.callName,
callTel: row.callTel, callTel: row.callTel,
callNumber: row.callNumber, callNumber: row.callNumber,
cityId: row.cityId, cityId: row.cityId.replace(/\s+/g, ""),
address: row.address, address: row.address,
lat: row.lat, lat: row.lat,
lon: row.lon, lon: row.lon,
@@ -1207,6 +1215,7 @@ export default {
tradeNames: row.tradeNames, tradeNames: row.tradeNames,
worktypeIds: row.worktypeIds, worktypeIds: row.worktypeIds,
worktypeNames: row.worktypeNames, worktypeNames: row.worktypeNames,
jobCompanyScale: row.jobCompanyScale,
skillIds: row.workSkills[1], skillIds: row.workSkills[1],
skillNames: row.skillNames, skillNames: row.skillNames,
jobDescription: row.jobDescription, jobDescription: row.jobDescription,
@@ -1219,7 +1228,7 @@ export default {
callName: row.callName, callName: row.callName,
callTel: row.callTel, callTel: row.callTel,
callNumber: row.callNumber, callNumber: row.callNumber,
cityId: row.cityId, cityId: row.cityId.replace(/\s+/g, ""),
address: row.address, address: row.address,
lat: row.lat, lat: row.lat,
lon: row.lon, lon: row.lon,