flat: 6.5 改版
This commit is contained in:
@@ -326,7 +326,7 @@ export default {
|
||||
}, 1000),
|
||||
leftSearch() {
|
||||
this.leftPages.currentPage = 1
|
||||
this.getLeftUserList('serve')
|
||||
this.getLeftUserList('serveCopy')
|
||||
console.log('leftpages:', this.leftPages)
|
||||
},
|
||||
leftCurrentPageChange(current) {
|
||||
@@ -366,7 +366,7 @@ export default {
|
||||
}
|
||||
},
|
||||
groupNameChange() {
|
||||
this.getLeftUserList('serve')
|
||||
this.getLeftUserList('serveCopy')
|
||||
},
|
||||
async pushPostAndUser() {
|
||||
this.pushState = true
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<!-- <serve-detail ref="copy" @back="backIndex" v-show="false"></serve-detail> -->
|
||||
<!-- <serveCopy-detail ref="copy" @back="backIndex" v-show="false"></serveCopy-detail> -->
|
||||
<el-drawer
|
||||
size="85%"
|
||||
append-to-body
|
||||
@@ -398,7 +398,7 @@ import workView from "./workMissionView.vue"
|
||||
import {serviceType} from "@/common/dic";
|
||||
import Tinymce from "@/components/Tinymce";
|
||||
import {deepClone} from "@/util/util";
|
||||
import PushService from "@/views/tenant/main/serve/Dialog/pushService.vue";
|
||||
import PushService from "@/views/tenant/main/serveCopy/Dialog/pushService.vue";
|
||||
import TextTooltip from "@/components/text-tooltip/index.vue";
|
||||
|
||||
const page = {
|
||||
|
||||
423
src/views/tenant/main/serve/Dialog/addGroup.vue
Normal file
423
src/views/tenant/main/serve/Dialog/addGroup.vue
Normal file
@@ -0,0 +1,423 @@
|
||||
<template>
|
||||
<!-- 新建分组模板 -->
|
||||
<el-dialog
|
||||
:title="title"
|
||||
append-to-body
|
||||
:visible.sync="box"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
@closed="closed"
|
||||
width="70%"
|
||||
>
|
||||
<el-form
|
||||
:model="form"
|
||||
@submit.native.prevent
|
||||
:rules="rules"
|
||||
ref="groups"
|
||||
label-position="right"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-collapse v-model="activeNames">
|
||||
<el-collapse-item title="分组信息" name="1">
|
||||
<el-form-item style="width: 400px" label="分组名称" prop="groupName">
|
||||
<el-input v-model="form.groupName" placeholder="请输入 分组名称" size="small" :disabled="loading"
|
||||
maxlength="40"
|
||||
show-word-limit></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 400px" label="分组排序" prop="sort">
|
||||
<el-input type="number" v-model="form.sort" min="0" placeholder="请输入 分组名称"
|
||||
size="small"></el-input>
|
||||
</el-form-item>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="服务信息" name="2">
|
||||
<div class="scroll-row">
|
||||
<el-card class="card-row" shadow="hover" v-for="(item, index) in serveAll" :key="index">
|
||||
<div :class="`card-row-name ${selectServer.id === item.id && 'color-blue'}`" @click="changeCard(item)">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<div class="del-btn" @click="delServer(item)">
|
||||
<i style="font-size: 18px" class="el-icon-circle-close"></i>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="card-row card-add" shadow="hover">
|
||||
<div class="card-row-name" @click="changeCard(null)">添加<i
|
||||
class="el-icon-circle-plus-outline"></i></div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="car-content" v-if="selectShow">
|
||||
<el-form-item style="width: 400px" label="服务名称" prop="name">
|
||||
<el-input v-model="serveForm.name" placeholder="请输入 服务名称" size="small"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item style="width: 400px" label="机构名称" prop="companyName">-->
|
||||
<!-- <el-input v-model="serveForm.companyName" placeholder="请输入 机构名称" size="small"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="服务场景" prop="serveLabels">
|
||||
<tag-select v-model="serveForm.serveLabels" :prop="{ label: 'name', value: 'name' }" :data="workDataList">
|
||||
</tag-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="政策指南" prop="policyIds">
|
||||
<el-cascader
|
||||
style="width: 100%"
|
||||
size="small"
|
||||
v-model="serveForm.policyIds"
|
||||
:options="listAllPolicyTree"
|
||||
:props="{ expandTrigger: 'hover', multiple: true, label: 'name', value: 'value', children: 'child'}"
|
||||
@change="handleChange"
|
||||
filterable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="重点人群" prop="talentsGroupId">
|
||||
<el-select style="width: 100%" v-model="serveForm.talentsGroupId" multiple filterable
|
||||
placeholder="请输入 重点人群">
|
||||
<el-option
|
||||
v-for="item in talentsList"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input type="textarea" v-model="serveForm.remarks" placeholder="请输入 备注"
|
||||
size="small"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
<div slot="footer" style="text-align:right">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-check"
|
||||
@click="handleSubmit"
|
||||
:loading="loading"
|
||||
>提交
|
||||
</el-button>
|
||||
<el-button size="mini" icon="el-icon-circle-close" @click=" box = false" :loading="loading">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {saveGroupServeInfo, updateDept, updateGroupServeInfo} from "@/api/tenant/serve";
|
||||
import {deepClone} from "@/util/util";
|
||||
|
||||
const prefix = 'custom-'
|
||||
const initRule = {
|
||||
groupName: [
|
||||
{
|
||||
required: true,
|
||||
whitespace: true,
|
||||
message: "请填写分组名称",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
}
|
||||
const initFormValue = {
|
||||
groupName: "",
|
||||
sort: 0,
|
||||
}
|
||||
const initServeForm = {
|
||||
companyName: '',
|
||||
name: '',
|
||||
serveLabels: [],
|
||||
policyIds: [],
|
||||
talentsGroupId: [],
|
||||
remarks: '',
|
||||
}
|
||||
export default {
|
||||
props: {
|
||||
treeData: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
listAllPolicyTree: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
data: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
worktypeDic: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
talentsList: {
|
||||
type: Array,
|
||||
default: [],
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
type: "",
|
||||
title: "",
|
||||
groupId: "",
|
||||
loading: false,
|
||||
box: false,
|
||||
form: Object.assign({}, initFormValue),
|
||||
serveForm: Object.assign({}, initServeForm),
|
||||
rules: Object.assign({}, initRule),
|
||||
activeNames: ['1', '2'],
|
||||
serveAll: [],
|
||||
selectServer: {},
|
||||
selectShow: false,
|
||||
selectLabelNameTypes: [],
|
||||
tempWorkType: [],
|
||||
tabDataSource: [],
|
||||
editData: null,
|
||||
customNum: 1,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
console.log('watch', this.data)
|
||||
},
|
||||
computed: {
|
||||
workDataList() {
|
||||
let rel = deepClone(this.data)
|
||||
for (let i = 0; i < this.tempWorkType.length; i++) {
|
||||
const key = this.tempWorkType[i];
|
||||
if (key && !this.worktypeDic.hasOwnProperty(key)) {
|
||||
rel.push({name: key});
|
||||
}
|
||||
}
|
||||
return rel
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
closed() {
|
||||
this.form = {
|
||||
groupName: "",
|
||||
};
|
||||
if (this.$refs.groups) {
|
||||
this.$refs.groups.resetFields();
|
||||
}
|
||||
this.loading = false;
|
||||
},
|
||||
openDialog(type, data) {
|
||||
this.type = type;
|
||||
if (this.type === "add") {
|
||||
this.title = "新建分组";
|
||||
this.form.groupName = '';
|
||||
// this.form.sort = 0;
|
||||
this.serveAll = []
|
||||
this.editData = null
|
||||
this.box = true;
|
||||
} else if (this.type === "edit") {
|
||||
this.title = "编辑分组";
|
||||
this.groupId = data.id;
|
||||
this.form.groupName = data.groupName;
|
||||
// this.form.sort = data.sort;
|
||||
this.serveAll = data.children
|
||||
this.editData = data
|
||||
this.box = true;
|
||||
}
|
||||
this.selectShow = false
|
||||
this.selectServer = {}
|
||||
this.serveForm = Object.assign({}, initServeForm)
|
||||
this.customNum = 1
|
||||
},
|
||||
async handleSubmit() {
|
||||
if (this.selectServer.id) {
|
||||
let copyForm = deepClone(this.serveForm)
|
||||
let serve = {
|
||||
...this.selectServer,
|
||||
...copyForm,
|
||||
policyIds: copyForm.policyIds ? copyForm.policyIds.join(',') : '',
|
||||
talentsGroupId: copyForm.talentsGroupId ? copyForm.talentsGroupId.join(',') : '',
|
||||
serveLabels: copyForm.serveLabels ? copyForm.serveLabels.map((item) => item.name).join(',') : '',
|
||||
}
|
||||
if (this.tabDataSource.find((item) => item.id === serve.id)) {
|
||||
this.tabDataSource = this.tabDataSource.map((item) => {
|
||||
if (item.id === serve.id) {
|
||||
return deepClone(serve)
|
||||
}
|
||||
return item
|
||||
})
|
||||
} else {
|
||||
this.tabDataSource = [...this.tabDataSource.filter((item) => item.id !== serve.id), deepClone(serve)]
|
||||
}
|
||||
}
|
||||
const serveAll = deepClone(this.serveAll)
|
||||
const tabDataSource = deepClone(this.tabDataSource)
|
||||
// prefix
|
||||
const customList = tabDataSource.filter((item) => /^custom-/ig.test(item.id))
|
||||
// 替换数据
|
||||
for (let i = 0; i < tabDataSource.length; i++) {
|
||||
for (let j = 0; j < serveAll.length; j++) {
|
||||
if (serveAll[j].id === tabDataSource[i].id) {
|
||||
serveAll[j] = tabDataSource[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
serveAll.forEach((item) => {
|
||||
if (/^custom-/ig.test(item.id)) {
|
||||
delete item.id
|
||||
}
|
||||
})
|
||||
let params, resData
|
||||
switch (true) {
|
||||
case this.type === 'add' :
|
||||
params = {
|
||||
...this.form,
|
||||
children: serveAll
|
||||
}
|
||||
if (this.form.groupName) {
|
||||
this.loading = true;
|
||||
resData = await saveGroupServeInfo(params)
|
||||
} else {
|
||||
this.$message.error('请输入分组名称');
|
||||
}
|
||||
break
|
||||
case this.type === 'edit' :
|
||||
params = {
|
||||
...this.editData,
|
||||
...this.form,
|
||||
children: serveAll
|
||||
}
|
||||
if (this.form.groupName) {
|
||||
this.loading = true;
|
||||
resData = await updateGroupServeInfo(params)
|
||||
} else {
|
||||
this.$message.error('请输入分组名称');
|
||||
}
|
||||
}
|
||||
if (resData.data.code === 200) {
|
||||
this.$message.success('操作成功!');
|
||||
this.loading = false;
|
||||
this.$emit("refresh");
|
||||
this.box = false;
|
||||
} else {
|
||||
this.loading = false;
|
||||
this.$message.success('操作失败!');
|
||||
}
|
||||
},
|
||||
changeCard(data) {
|
||||
// 校验
|
||||
if (this.selectServer.id) {
|
||||
let copyForm = deepClone(this.serveForm)
|
||||
let serve = {
|
||||
...this.selectServer,
|
||||
...copyForm,
|
||||
policyIds: copyForm.policyIds ? copyForm.policyIds.join(',') : '',
|
||||
talentsGroupId: copyForm.talentsGroupId ? copyForm.talentsGroupId.join(',') : '',
|
||||
serveLabels: copyForm.serveLabels ? copyForm.serveLabels.map((item) => item.name).join(',') : '',
|
||||
}
|
||||
if (this.tabDataSource.find((item) => item.id === serve.id)) {
|
||||
this.tabDataSource = this.tabDataSource.map((item) => {
|
||||
if (item.id === serve.id) {
|
||||
return deepClone(serve)
|
||||
}
|
||||
return item
|
||||
})
|
||||
} else {
|
||||
this.tabDataSource = [...this.tabDataSource.filter((item) => item.id !== serve.id), deepClone(serve)]
|
||||
}
|
||||
}
|
||||
// 新增
|
||||
if (!data) {
|
||||
const fm = {
|
||||
...Object.assign({}, initServeForm),
|
||||
name: `自定义服务名${this.customNum}`,
|
||||
id: `${prefix}${this.customNum}`
|
||||
}
|
||||
this.selectShow = true
|
||||
this.selectServer = fm
|
||||
this.serveForm = fm
|
||||
this.tempWorkType = []
|
||||
this.customNum++
|
||||
this.serveAll = [...this.serveAll, deepClone(fm)]
|
||||
this.tabDataSource.push(fm)
|
||||
return
|
||||
}
|
||||
|
||||
// 回填
|
||||
let source = deepClone(data)
|
||||
if (this.tabDataSource.find((item) => item.id === data.id)) {
|
||||
source = deepClone(this.tabDataSource.filter((item) => (item.id === data.id))[0])
|
||||
} else {
|
||||
this.tabDataSource.push(data)
|
||||
}
|
||||
this.selectShow = true
|
||||
this.selectServer = source
|
||||
this.tempWorkType = source.serveLabels ? source.serveLabels.split(",") : [];
|
||||
this.serveForm.talentsGroupId = source.talentsGroupId ? source.talentsGroupId.split(',') : []
|
||||
this.serveForm.serveLabels = source.serveLabels ? source.serveLabels.split(',').map((item) => ({name: item})) : []
|
||||
const policyIds = this.treeIteration(this.listAllPolicyTree, source.policyIds.split(','))
|
||||
this.serveForm.policyIds = policyIds
|
||||
// this.serveForm.companyName = source.companyName
|
||||
this.serveForm.name = source.name
|
||||
this.serveForm.remarks = source.remarks
|
||||
this.serveForm.id = source.id
|
||||
},
|
||||
delServer(data) {
|
||||
this.serveAll = this.serveAll.filter((item) => item.id !== data.id)
|
||||
this.tabDataSource = this.tabDataSource.filter((item) => item.id !== data.id)
|
||||
},
|
||||
handleChange(policy) {
|
||||
console.log(policy)
|
||||
this.serveForm.policyIds = policy
|
||||
},
|
||||
treeIteration(tree, ids) {
|
||||
if (!(tree.length && ids.length)) return;
|
||||
let arr = []
|
||||
tree.forEach((treeItem) => {
|
||||
treeItem.child.forEach((item) => {
|
||||
if (ids.some((id) => item.value === id)) {
|
||||
arr.push([treeItem.value, item.value])
|
||||
}
|
||||
})
|
||||
})
|
||||
return arr;
|
||||
},
|
||||
},
|
||||
watch: {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.color-blue {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.scroll-row {
|
||||
overflow-x: scroll;
|
||||
width: 100%;
|
||||
height: fit-content;
|
||||
display: -webkit-box;
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card-row {
|
||||
width: fit-content;
|
||||
margin-right: 10px;
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.del-btn {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
|
||||
}
|
||||
|
||||
.card-row-name {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.card-add {
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
.car-content {
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -333,7 +333,7 @@ export default {
|
||||
}, 1000),
|
||||
leftSearch() {
|
||||
this.leftPages.currentPage = 1
|
||||
this.getLeftUserList('serve')
|
||||
this.getLeftUserList('serveCopy')
|
||||
console.log('leftpages:', this.leftPages)
|
||||
},
|
||||
leftCurrentPageChange(current) {
|
||||
@@ -373,7 +373,7 @@ export default {
|
||||
}
|
||||
},
|
||||
groupNameChange() {
|
||||
this.getLeftUserList('serve')
|
||||
this.getLeftUserList('serveCopy')
|
||||
},
|
||||
async pushPostAndUser() {
|
||||
this.pushState = true
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
594
src/views/tenant/main/serveCopy/Dialog/pushService.vue
Normal file
594
src/views/tenant/main/serveCopy/Dialog/pushService.vue
Normal file
@@ -0,0 +1,594 @@
|
||||
<template>
|
||||
<el-drawer size="100%" append-to-body title="推送服务" :visible.sync="viewDrawer">
|
||||
<div>
|
||||
<div class="content">
|
||||
<!-- 用户板块 -->
|
||||
<div class="content-left relative">
|
||||
<avue-crud height="900" width="500" ref="crud1" :data="leftUserDataList" :option="leftUserOptions"
|
||||
:page.sync="leftPages"
|
||||
@current-change="leftCurrentPageChange" @size-change="leftSizePageChange"
|
||||
@selection-change="leftSelectionChange">
|
||||
<template slot="menuLeft">
|
||||
<div class="leftInput">
|
||||
<el-input size="small" v-model="formInline.userName" class="input-with-select" placeholder="用户名">
|
||||
<el-select size="small" v-model="formInline.groupId" slot="prepend" class="selectWidth"
|
||||
placeholder="请选择">
|
||||
<el-option v-for="item in leftServeOptions" :key="item.id" :label="item.groupName"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-button size="small" slot="append" class="input-search" @click="leftSearch">搜索</el-button>
|
||||
</el-input>
|
||||
</div>
|
||||
</template>
|
||||
<template slot="labelsBase" slot-scope="{row}">
|
||||
<TextTooltip :content="row.labelsBase" length="20"></TextTooltip>
|
||||
</template>
|
||||
</avue-crud>
|
||||
<CustomLoading :visible="leftLoading" size="largeXXL" loading-text="用户数据加载中"></CustomLoading>
|
||||
</div>
|
||||
<!-- 操作 -->
|
||||
<div class="content-center">
|
||||
<div>
|
||||
<el-button type="primary" size="small" @click="changeTabs(0)">匹配政策</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 30px">
|
||||
<el-button :disabled="leftUserSelections.length > 0 ? false : true"
|
||||
type="primary" @click="changeTabs(1)" size="small">匹配岗位
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 列表 -->
|
||||
<div class="content-right relative">
|
||||
<avue-crud height="900" ref="crud2" :data="rightDataList"
|
||||
:option="rightTabs ? rightPostOptions : rightPolicyOptions" :page.sync="rightPages"
|
||||
@current-change="rightCurrentPageChange" @size-change="rightSizePageChange"
|
||||
@selection-change="rightSelectionChange">
|
||||
<template slot="menuLeft">
|
||||
<el-input style="width: 300px" placeholder="搜索岗位" v-show="rightTabs === 1"
|
||||
prefix-icon="el-icon-search"
|
||||
@input="searchInputChange" v-model="searchInput" clearable>
|
||||
</el-input>
|
||||
</template>
|
||||
<template slot="labelName" slot-scope="{row}">
|
||||
<TextTooltip :content="row.labelName" length="40"></TextTooltip>
|
||||
</template>
|
||||
<template slot="jobDescription" slot-scope="{row}">
|
||||
<TextTooltip :content="row.jobDescription" length="40"></TextTooltip>
|
||||
</template>
|
||||
<template slot="address" slot-scope="{row}">
|
||||
<TextTooltip :content="row.address" length="40"></TextTooltip>
|
||||
</template>
|
||||
</avue-crud>
|
||||
<CustomLoading :visible="rightLoading" size="largeXXL" loading-text="智能分析匹配中"></CustomLoading>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-footer">
|
||||
<el-button type="primary" style="width: 80px" size="small" :disabled="pushState" @click="onSubmit">
|
||||
{{ pushState ? '推送中...' : rightTabs ? '推送岗位' : '推送政策' }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getListByids,
|
||||
getSearchAll,
|
||||
getSearchAllByUserId,
|
||||
pushPolicyUserServe,
|
||||
pushPostUserServe,
|
||||
getListAllByPolicy
|
||||
} from "@/api/tenant/serve.js";
|
||||
import TextTooltip from "@/components/text-tooltip/index.vue";
|
||||
import {debounce} from '@/util/util'
|
||||
import {DateTime} from "@/util/dateTime";
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
|
||||
const pages = {pagerCount: 3, total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
size: 'medium',
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
editBtn: false,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
refreshBtn: false,
|
||||
menu: false,
|
||||
tip: false,
|
||||
selection: true,
|
||||
align: 'center',
|
||||
}
|
||||
let leftUserOptions = {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'companyName',
|
||||
fixed: true,
|
||||
}, {
|
||||
label: '姓名',
|
||||
prop: 'name',
|
||||
fixed: true,
|
||||
}, {
|
||||
label: '姓别',
|
||||
prop: 'aac004',
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入性别",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '身份证',
|
||||
prop: 'idNumber',
|
||||
width: 150,
|
||||
}, {
|
||||
label: '手机号',
|
||||
prop: 'telphone',
|
||||
}, {
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
}, {
|
||||
label: "民族",
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入民族",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口性质",
|
||||
prop: "aac009",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入户口性质",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
width: 150,
|
||||
}, {
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入文化程度",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '个人标签',
|
||||
prop: 'labelsBase',
|
||||
width: 150,
|
||||
slot: true,
|
||||
},
|
||||
]
|
||||
}
|
||||
let rightPolicyOptions = {
|
||||
...baseOptions,
|
||||
column: [{
|
||||
label: '政策名称',
|
||||
prop: 'name',
|
||||
}, {
|
||||
label: '政策标签',
|
||||
prop: 'labelName',
|
||||
slot: true,
|
||||
}]
|
||||
}
|
||||
let rightPostOptions = {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: '岗位名称',
|
||||
prop: 'jobName',
|
||||
}, {
|
||||
label: '用工单位',
|
||||
prop: 'companyName',
|
||||
}, {
|
||||
label: '详细地址',
|
||||
prop: 'address',
|
||||
slot: true,
|
||||
}, {
|
||||
label: '岗位描述',
|
||||
prop: 'jobDescription',
|
||||
slot: true,
|
||||
}, {
|
||||
label: "岗位类型",
|
||||
prop: "type1",
|
||||
type: "select",
|
||||
dicData: [
|
||||
{
|
||||
value: "0",
|
||||
label: "零工岗位",
|
||||
},
|
||||
{
|
||||
value: "1",
|
||||
label: "全职岗位",
|
||||
},
|
||||
],
|
||||
display: false,
|
||||
hide: true,
|
||||
},
|
||||
]
|
||||
}
|
||||
export default {
|
||||
components: {TextTooltip, CustomLoading},
|
||||
data() {
|
||||
return {
|
||||
formInline: {},
|
||||
leftServeOptions: [],
|
||||
leftUserDataList: [],
|
||||
leftUserPages: {},
|
||||
leftUserSelections: [],
|
||||
leftPages: Object.assign({}, pages),
|
||||
leftUserOptions: Object.assign({}, leftUserOptions),
|
||||
leftLoading: false,
|
||||
rightLoading: false,
|
||||
rightDataList: [],
|
||||
rightDataSelections: [],
|
||||
rightPages: Object.assign({}, pages),
|
||||
rightPolicyOptions: Object.assign({}, rightPolicyOptions),
|
||||
rightPostOptions: Object.assign({}, rightPostOptions),
|
||||
searchInput: '',
|
||||
rightTabs: 0, // 0: 政策, 1: 岗位
|
||||
pushState: false,
|
||||
}
|
||||
},
|
||||
props: {
|
||||
visible: Boolean,
|
||||
rowData: {default: null, type: Function},
|
||||
changeVisible: {default: null, type: Function},
|
||||
},
|
||||
computed: {
|
||||
viewDrawer: {
|
||||
get() {
|
||||
return this.visible;
|
||||
},
|
||||
set(val) {
|
||||
this.$emit("update:visible", val);
|
||||
},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
viewDrawer(val) {
|
||||
val ? this.onPageLoad() : this.onPageInit()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onPageLoad() {
|
||||
console.log('row', this.rowData)
|
||||
if (!this.rowData) return
|
||||
this.getLeftSignGroupList()
|
||||
this.getLeftUserList()
|
||||
// this.getRightListPolicy()
|
||||
},
|
||||
onPageInit() {
|
||||
this.formInline = {}
|
||||
this.leftServeOptions = []
|
||||
this.leftUserDataList = []
|
||||
this.leftUserSelections = []
|
||||
this.leftUserPages = Object({}, pages)
|
||||
this.leftPages = Object.assign({}, pages)
|
||||
this.leftUserOptions = Object.assign({}, leftUserOptions)
|
||||
this.leftLoading = false
|
||||
this.rightLoading = false
|
||||
this.rightDataList = []
|
||||
this.rightDataSelections = []
|
||||
this.rightPages = Object.assign({}, pages)
|
||||
this.rightPolicyOptions = Object.assign({}, rightPolicyOptions)
|
||||
this.rightPostOptions = Object.assign({}, rightPostOptions)
|
||||
this.searchInput = ''
|
||||
this.rightTabs = 0 // 0: 政策
|
||||
this.pushState = false
|
||||
this.$refs.crud1.selectClear()
|
||||
this.$refs.crud2.selectClear()
|
||||
},
|
||||
changeTabs(type) {
|
||||
this.rightDataList = []
|
||||
this.rightTabs = type
|
||||
this.rightDataSelections = []
|
||||
this.$message.success('智能分析匹配中');
|
||||
|
||||
type === 0 && this.getRightListPolicy()
|
||||
type === 1 && this.getRightSearchByUserId()
|
||||
},
|
||||
searchInputChange: debounce(function (val) {
|
||||
this.getRightSearch()
|
||||
}, 1000),
|
||||
leftSearch() {
|
||||
this.leftPages.currentPage = 1
|
||||
this.getLeftUserList('serveCopy')
|
||||
console.log('leftpages:', this.leftPages)
|
||||
},
|
||||
leftCurrentPageChange(current) {
|
||||
this.leftPages.currentPage = current
|
||||
this.getLeftUserList()
|
||||
console.log('leftpages:', this.leftPages)
|
||||
},
|
||||
leftSizePageChange(current) {
|
||||
this.leftPages.size = current
|
||||
this.getLeftUserList()
|
||||
console.log('leftpages:', this.leftPages)
|
||||
},
|
||||
rightCurrentPageChange(current) {
|
||||
this.rightPages.currentPage = current
|
||||
this.rightTabs === 0 && this.getRightListPolicy()
|
||||
this.rightTabs === 1 && this.getRightSearchByUserId()
|
||||
},
|
||||
rightSizePageChange(current) {
|
||||
this.rightPages.size = current
|
||||
this.rightTabs === 0 && this.getRightListPolicy()
|
||||
this.rightTabs === 1 && this.getRightSearchByUserId()
|
||||
},
|
||||
leftSelectionChange(val) {
|
||||
this.leftUserSelections = val
|
||||
console.log(val, '--------------------00000');
|
||||
},
|
||||
rightSelectionChange(val) {
|
||||
this.rightDataSelections = val
|
||||
},
|
||||
onSubmit() {
|
||||
if (!this.leftUserSelections.length) return this.$message.info('请选择推送用户')
|
||||
if (!this.rightDataSelections.length) return this.$message.info('请选择推送政策或岗位')
|
||||
if (this.rightTabs === 0) {
|
||||
this.pushPolicyAndUser()
|
||||
} else {
|
||||
this.pushPostAndUser()
|
||||
}
|
||||
},
|
||||
groupNameChange() {
|
||||
this.getLeftUserList('serveCopy')
|
||||
},
|
||||
async pushPostAndUser() {
|
||||
this.pushState = true
|
||||
const createTime = Date.now() + 2000
|
||||
// console.log(this.rightDataSelections,);
|
||||
let params = {
|
||||
serveId: this.rowData.id,
|
||||
posts: this.rightDataSelections.map((item) => ({id: item.id, type: item.type1, jobName: item.jobName})),
|
||||
users: this.leftUserSelections.map((item) => ({
|
||||
idNumber: item.idNumber,
|
||||
talentsId: item.id,
|
||||
userId: item.userId,
|
||||
userName: item.name
|
||||
}))
|
||||
}
|
||||
console.log(params, "999999999999999999999999999");
|
||||
let resData = await pushPostUserServe(params)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
this.$message.success('岗位推送成功')
|
||||
this.$refs.crud1.selectClear()
|
||||
this.$refs.crud2.selectClear()
|
||||
this.pushState = false
|
||||
}, timed)
|
||||
|
||||
}
|
||||
},
|
||||
async pushPolicyAndUser() {
|
||||
this.pushState = true
|
||||
const createTime = Date.now() + 2000
|
||||
let params = {
|
||||
serveId: this.rowData.id,
|
||||
policyIds: this.rightDataSelections.map((item) => item.id),
|
||||
users: this.leftUserSelections.map((item) => ({
|
||||
idNumber: item.idNumber,
|
||||
talentsId: item.id,
|
||||
userId: item.userId,
|
||||
userName: item.name
|
||||
}))
|
||||
}
|
||||
let resData = await pushPolicyUserServe(params)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
this.$message.success('政策推送成功')
|
||||
this.$refs.crud1.selectClear()
|
||||
this.$refs.crud2.selectClear()
|
||||
this.pushState = false
|
||||
}, timed)
|
||||
}
|
||||
},
|
||||
async getRightSearch() {
|
||||
let params = {keywords: this.searchInput || '1'}
|
||||
const createTime = Date.now() + 3000
|
||||
this.rightLoading = true
|
||||
let resData = await getSearchAll(params)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
this.rightLoading = false
|
||||
this.rightDataList = resData.data.data
|
||||
}, timed)
|
||||
|
||||
}
|
||||
},
|
||||
async getRightSearchByUserId() {
|
||||
const {currentPage, size} = this.rightPages
|
||||
const idNumbers = this.leftUserSelections.map(item => item.idNumber).join(',');
|
||||
const willingJobs = this.leftUserSelections.map(item => item.willingJob);
|
||||
const createTime = Date.now() + 3000
|
||||
this.rightLoading = true
|
||||
let params = {
|
||||
idNumbers,
|
||||
current: currentPage,
|
||||
size,
|
||||
}
|
||||
let paramsBody = {
|
||||
willingJobs: willingJobs
|
||||
}
|
||||
console.log(params, paramsBody)
|
||||
let resData = await getSearchAllByUserId(params, paramsBody)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
const {records, total, size, current} = resData.data.data
|
||||
this.rightLoading = false
|
||||
this.rightDataList = records
|
||||
this.rightPages = {total, size, currentPage: current}
|
||||
}, timed)
|
||||
}
|
||||
},
|
||||
async getRightListPolicy() {
|
||||
const {currentPage, size} = this.rightPages
|
||||
let params = {
|
||||
ids: this.rowData.policyIds,
|
||||
current: currentPage,
|
||||
size,
|
||||
}
|
||||
const createTime = Date.now() + 3000
|
||||
this.rightLoading = true
|
||||
let resData = await getListByids(params)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
// const {records, total, size, current} = resData.data.data
|
||||
this.rightLoading = false
|
||||
// this.rightDataList = records
|
||||
// this.rightPages = {total, size, currentPage: current}
|
||||
this.rightPages = {total: resData.data.data.length, currentPage: 1}
|
||||
this.rightDataList = resData.data.data
|
||||
}, timed)
|
||||
}
|
||||
},
|
||||
async getLeftUserList(type) {
|
||||
const {currentPage, size} = this.leftPages
|
||||
const createTime = Date.now() + 3000
|
||||
let params = {
|
||||
...this.formInline,
|
||||
current: currentPage,
|
||||
size,
|
||||
labels: this.rowData.talentsNames.join(','),
|
||||
talentsGroupId: this.rowData.talentsGroupId
|
||||
}
|
||||
console.log('params', params)
|
||||
// params.labels = '未分组'
|
||||
this.leftLoading = true
|
||||
let resData = await getListAllByPolicy(params)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
const {records, total, size, current} = resData.data.data
|
||||
this.leftUserDataList = records
|
||||
this.leftPages = {total, size, currentPage: current}
|
||||
console.log('leftpages:', this.leftPages)
|
||||
this.leftLoading = false
|
||||
}, timed)
|
||||
|
||||
}
|
||||
},
|
||||
async getLeftSignGroupList() {
|
||||
const arr = this.rowData.talentsNames.map((v) => ({groupName: v, value: v}))
|
||||
this.leftServeOptions = [{groupName: '全部'}, ...arr]
|
||||
// let params = { labels: this.rowData.talentsNames.join(',') }
|
||||
// params.labels = '未分组'
|
||||
// let resData = await getListAllByPolicy(params)
|
||||
// if ( resData.data.code === 200 ) {
|
||||
// this.leftServeOptions = [{groupName: '全部', value: ''}, ...resData.data.data]
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
display: grid;
|
||||
grid-template-columns: calc(50% - 40px) 80px calc(50% - 80px);
|
||||
grid-gap: 20px;
|
||||
|
||||
.content-left {
|
||||
}
|
||||
|
||||
.content-center {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.content-right {
|
||||
|
||||
//修改动画的大小 给文字加粗效果
|
||||
.right-search {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.leftInput {
|
||||
width: 500px;
|
||||
|
||||
.selectWidth {
|
||||
width: 160px !important;
|
||||
}
|
||||
|
||||
.el-input__inner {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.input-search {
|
||||
margin-right: -15px;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/deep/ .el-loading-spinner {
|
||||
font-size: 80px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/deep/ .el-loading-spinner .circular {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.content-footer {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
1752
src/views/tenant/main/serveCopy/index.vue
Normal file
1752
src/views/tenant/main/serveCopy/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -93,6 +93,21 @@
|
||||
<span v-else>{{ row.name }}(<span style="color: red;">未实名</span>)</span> -->
|
||||
|
||||
</template>
|
||||
<template slot-scope="{row}" slot="menu">
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="serveLog(row)"
|
||||
>查看日志
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
icon="el-icon-circle-check"
|
||||
size="small"
|
||||
@click="checkUserInfo(row)"
|
||||
>剔除
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
<!--/自定义按钮-->
|
||||
<template slot="menuRight">
|
||||
<el-button
|
||||
@@ -106,6 +121,37 @@
|
||||
</template>
|
||||
</avue-crud>
|
||||
|
||||
<el-drawer
|
||||
title="服务日志"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="handleCloseLog"
|
||||
:visible.sync="innerDrawerLog">
|
||||
<!-- <div>
|
||||
<span>姓名:</span>
|
||||
<span>身份证号:</span>
|
||||
</div> -->
|
||||
<avue-crud
|
||||
:data="logDataSource"
|
||||
:option="logOption"
|
||||
:page.sync="logPage"
|
||||
:table-loading="loadingLog"
|
||||
@row-save="saveLog"
|
||||
@row-update="saveUpdateLog"
|
||||
@row-del="removeLog"
|
||||
@size-change="logSizeChange"
|
||||
@current-change="logCurrentChange"
|
||||
>
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot="menu" slot-scope="{row}">
|
||||
<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> -->
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
|
||||
<!--批量导入-->
|
||||
<el-dialog title="导入" append-to-body :visible.sync="excelBox" :close-on-click-modal="false" width="555px">
|
||||
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"
|
||||
@@ -125,6 +171,28 @@
|
||||
<transfer-groups ref="transferGroups" @refresh="refresh" :ids="ids"></transfer-groups>
|
||||
<!--/转移分组dialog-->
|
||||
<resume ref="resume" v-show="false"></resume>
|
||||
|
||||
<PromptDialog
|
||||
:visible="dialogFlag"
|
||||
title="剔除"
|
||||
:back-btn-hide="false"
|
||||
submit-text="确 认"
|
||||
sub-title="请核对人员信息后再进行审核通过,剔除该用户将从人群中删除,在人员服务日志中可见"
|
||||
:tips="[
|
||||
'人员信息描述不清晰或过于简单;',
|
||||
'人员信息存在违法违规行为;',
|
||||
'人员信息的薪资、福利等待遇不符合市场标准;',
|
||||
]"
|
||||
@onClose="dialogFlag = false; backInput = ''"
|
||||
@onConfirm="diaLogConfirm"
|
||||
>
|
||||
<template v-slot:header>
|
||||
<div class="input_box" style="margin-top: 20px">
|
||||
<el-input type="textarea" v-model="backInput" placeholder="请输入备注"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</PromptDialog>
|
||||
|
||||
</basic-container>
|
||||
<ied ref="ied"></ied>
|
||||
</el-col>
|
||||
@@ -140,7 +208,9 @@ import {
|
||||
detail,
|
||||
getDept,
|
||||
removeDept,
|
||||
upload, getDeptMyTree,
|
||||
upload,
|
||||
getDeptMyTree,
|
||||
talentsEliminate
|
||||
} from "@/api/tenant/talents";
|
||||
import {getWorkTypes, getLabelList} from "@/api/tenant/common";
|
||||
import {mapGetters} from "vuex";
|
||||
@@ -152,7 +222,14 @@ import {getTemplate, getTemplateRecommendExportList} from "@/api/resource/templa
|
||||
import ied from "@/views/util/import-error-dialog";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import TextTooltip from '@/components/text-tooltip'
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
import PromptDialog from "@/components/promptDialog/index.vue";
|
||||
|
||||
let page = {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
}
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
@@ -166,6 +243,8 @@ export default {
|
||||
name: "tenant_talents",
|
||||
data() {
|
||||
return {
|
||||
dialogFlag: false,
|
||||
dialogInfo: null,
|
||||
downloadButton: false,
|
||||
activeNames: "1",
|
||||
isIndeterminate: false,
|
||||
@@ -196,9 +275,15 @@ export default {
|
||||
obj: {},
|
||||
depTree: [],
|
||||
excelForm: {isCovered: 1},
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
loadingLog: false,
|
||||
innerDrawerLog: false,
|
||||
selectUserServeLog: null,
|
||||
backInput: ''
|
||||
};
|
||||
},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip, PromptDialog},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
@@ -256,6 +341,7 @@ export default {
|
||||
searchShow: true,
|
||||
viewBtn: true,
|
||||
searchMenuSpan: 6,
|
||||
menuWidth: 170,
|
||||
border: true,
|
||||
index: false,
|
||||
indexLabel: "序号",
|
||||
@@ -549,6 +635,45 @@ export default {
|
||||
}
|
||||
return rel;
|
||||
},
|
||||
logOption() {
|
||||
return {
|
||||
editBtn: true,
|
||||
delBtn: true,
|
||||
addBtn: true,
|
||||
viewBtn: true,
|
||||
border: true,
|
||||
index: true,
|
||||
indexLabel: "序号",
|
||||
refreshBtn: false,
|
||||
dialogType: "drawer",
|
||||
addBtnText: "新增日志",
|
||||
height: '100',
|
||||
column: [{
|
||||
label: '服务时间',
|
||||
prop: 'createTime',
|
||||
type: 'date',
|
||||
format: "yyyy-MM-dd",
|
||||
valueFormat: "yyyy-MM-dd HH:mm:ss",
|
||||
}, {
|
||||
label: '服务发起人',
|
||||
prop: 'fromName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务对象',
|
||||
prop: 'toName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务主题',
|
||||
prop: 'serveTheme'
|
||||
}, {
|
||||
label: '服务内容',
|
||||
prop: 'serveContent'
|
||||
}, {
|
||||
label: '备注说明',
|
||||
prop: 'bak1'
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initDept();
|
||||
@@ -557,6 +682,33 @@ export default {
|
||||
this.getDept()
|
||||
},
|
||||
methods: {
|
||||
checkUserInfo(row) {
|
||||
this.dialogInfo = row
|
||||
this.dialogFlag = true
|
||||
},
|
||||
diaLogConfirm() {
|
||||
if (!this.backInput) {
|
||||
return this.$message.info('请输入剔除备注');
|
||||
}
|
||||
const params = {
|
||||
idNumber: this.dialogInfo.idNumber,
|
||||
content: this.backInput,
|
||||
name: this.dialogInfo.name,
|
||||
}
|
||||
this.$confirm("确定将选择数据剔除?", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
return talentsEliminate(params);
|
||||
})
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.query);
|
||||
this.dialogFlag = false
|
||||
this.$message.success('操作成功');
|
||||
});
|
||||
},
|
||||
handleExport() {
|
||||
this.downloadButton = true
|
||||
// 0 潜在 1 已认定
|
||||
@@ -1035,6 +1187,95 @@ export default {
|
||||
this.selectionClear();
|
||||
});
|
||||
},
|
||||
async saveLog(row, index, done, loading) {
|
||||
let params = {
|
||||
...row,
|
||||
serveId: this.selectUserServeLog.serveId,
|
||||
serveUserId: this.selectUserServeLog.serveUserId,
|
||||
talentsId: this.selectUserServeLog.id,
|
||||
idNumber: this.selectUserServeLog.idNumber,
|
||||
toName: this.selectUserServeLog.name,
|
||||
fromName: this.userInfo.real_name
|
||||
}
|
||||
console.log(params)
|
||||
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: "操作成功!",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleCloseLog() {
|
||||
this.innerDrawerLog = false
|
||||
},
|
||||
logSizeChange(pageSize) {
|
||||
this.logPage.pageSize = pageSize;
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
},
|
||||
logCurrentChange(currentPage) {
|
||||
this.logPage.currentPage = currentPage;
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
},
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
this.loadingLog = true
|
||||
getMainServeUserLog({
|
||||
idNumber: row.idNumber,
|
||||
current: this.logPage.currentPage,
|
||||
size: this.logPage.pageSize
|
||||
}).then(res => {
|
||||
this.loadingLog = false
|
||||
const {records, current, size, total} = res.data.data
|
||||
this.logDataSource = records
|
||||
this.innerDrawerLog = true
|
||||
this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -101,8 +101,7 @@
|
||||
:disabled="downloadButton"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</el-button
|
||||
>
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot-scope="{row}" slot="menu">
|
||||
<el-button type="text"
|
||||
@@ -111,6 +110,12 @@
|
||||
@click="serveLog(row)"
|
||||
>查看日志
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
icon="el-icon-circle-check"
|
||||
size="small"
|
||||
@click="checkUserInfo(row)"
|
||||
>审核
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
|
||||
@@ -141,6 +146,7 @@
|
||||
:data="logDataSource"
|
||||
:option="logOption"
|
||||
:page.sync="logPage"
|
||||
:table-loading="loadingLog"
|
||||
@row-save="saveLog"
|
||||
@row-update="saveUpdateLog"
|
||||
@row-del="removeLog"
|
||||
@@ -163,6 +169,36 @@
|
||||
<transfer-groups ref="transferGroups" @refresh="refresh" :ids="ids"></transfer-groups>
|
||||
<!--/转移分组dialog-->
|
||||
<resume ref="resume" v-show="false"></resume>
|
||||
|
||||
<PromptDialog
|
||||
:visible="dialogFlag"
|
||||
title="审核"
|
||||
:back-btn-status="1"
|
||||
submit-text="确 定"
|
||||
sub-title="请核对人员信息后再进行审核通过,通过将在已认定人群可见,驳回该用户将从人群中删除,在人员服务日志中可见"
|
||||
:tips="[
|
||||
'人员信息描述不清晰或过于简单;',
|
||||
'人员信息存在违法违规行为;',
|
||||
'人员信息的薪资、福利等待遇不符合市场标准;',
|
||||
]"
|
||||
@onClose="dialogFlag = false; GroupValue = ''"
|
||||
@onCancel="diaLogCancel"
|
||||
@onConfirm="diaLogConfirm"
|
||||
>
|
||||
<template v-slot:header>
|
||||
<div class="input_box" style="margin-top: 20px">
|
||||
<el-select style="width: 100%" clearable v-model="GroupValue" placeholder="请选择分组 (驳回不用选择此项)">
|
||||
<el-option
|
||||
v-for="item in selecTreeData"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
</PromptDialog>
|
||||
|
||||
</basic-container>
|
||||
<ied ref="ied"></ied>
|
||||
</el-col>
|
||||
@@ -179,7 +215,8 @@ import {
|
||||
getDept,
|
||||
removeDept,
|
||||
upload,
|
||||
getDeptMyTree
|
||||
getDeptMyTree,
|
||||
talentsApproval, talentsEliminate
|
||||
} from "@/api/tenant/talents";
|
||||
import {getWorkTypes, getLabelList} from "@/api/tenant/common";
|
||||
import {mapGetters} from "vuex";
|
||||
@@ -193,6 +230,7 @@ import {excelAccept} from "@/common/accept";
|
||||
import TextTooltip from '@/components/text-tooltip'
|
||||
import {exportList} from "@/api/workstation/post";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
import PromptDialog from "@/components/promptDialog/index.vue";
|
||||
|
||||
let page = {
|
||||
pageSize: 10,
|
||||
@@ -212,6 +250,8 @@ export default {
|
||||
name: "tenant_talents",
|
||||
data() {
|
||||
return {
|
||||
dialogFlag: false,
|
||||
dialogInfo: null,
|
||||
downloadButton: false,
|
||||
activeNames: "1",
|
||||
isIndeterminate: false,
|
||||
@@ -231,6 +271,7 @@ export default {
|
||||
page: Object.assign({}, page),
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
loadingLog: false,
|
||||
innerDrawerLog: false,
|
||||
selectUserServeLog: null,
|
||||
tempWorkType: [],
|
||||
@@ -242,9 +283,11 @@ export default {
|
||||
data: [],
|
||||
obj: {},
|
||||
excelForm: {isCovered: 1},
|
||||
selecTreeData: [],
|
||||
GroupValue: ''
|
||||
};
|
||||
},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip, PromptDialog},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission", "userInfo"]),
|
||||
@@ -301,6 +344,7 @@ export default {
|
||||
searchBtn: true,
|
||||
searchShow: true,
|
||||
viewBtn: true,
|
||||
menuWidth: 170,
|
||||
searchMenuSpan: 6,
|
||||
border: true,
|
||||
index: false,
|
||||
@@ -655,11 +699,72 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.initDept();
|
||||
this.groupTypeDept()
|
||||
// this.getWorkTypes();
|
||||
this.getLabelList();
|
||||
this.getDept()
|
||||
},
|
||||
methods: {
|
||||
groupTypeDept() {
|
||||
getDept({groupType: 1}).then((res) => {
|
||||
this.selecTreeData = res.data.data.list;
|
||||
});
|
||||
},
|
||||
checkUserInfo(row) {
|
||||
this.dialogInfo = row
|
||||
this.dialogFlag = true
|
||||
},
|
||||
diaLogCancel(value) {
|
||||
if (value) {
|
||||
let params = {
|
||||
idNumber: this.dialogInfo.idNumber,
|
||||
id: this.dialogInfo.id,
|
||||
approvalStatus: 1,
|
||||
content: value,
|
||||
}
|
||||
this.$confirm("确定将选择数据驳回?", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
return talentsApproval(params);
|
||||
})
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.query);
|
||||
this.dialogFlag = false
|
||||
this.$message.success('操作成功');
|
||||
});
|
||||
} else {
|
||||
this.$message.error("请填写驳回原因");
|
||||
}
|
||||
},
|
||||
diaLogConfirm(value) {
|
||||
if (this.GroupValue) {
|
||||
let params = {
|
||||
idNumber: this.dialogInfo.idNumber,
|
||||
id: this.dialogInfo.id,
|
||||
approvalStatus: 0,
|
||||
content: value,
|
||||
groupId: this.GroupValue
|
||||
}
|
||||
this.$confirm("确定通过?", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
return talentsApproval(params);
|
||||
})
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.query);
|
||||
this.dialogFlag = false
|
||||
this.$message.success('操作成功');
|
||||
});
|
||||
} else {
|
||||
this.$message.error("请选择分组");
|
||||
}
|
||||
},
|
||||
handleExport() {
|
||||
this.downloadButton = true
|
||||
// 0 潜在 1 已认定
|
||||
@@ -1186,17 +1291,17 @@ export default {
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
this.loadingLog = true
|
||||
getMainServeUserLog({
|
||||
idNumber: row.id,
|
||||
idNumber: row.idNumber,
|
||||
current: this.logPage.currentPage,
|
||||
size: this.logPage.pageSize
|
||||
}).then(res => {
|
||||
let _this = this;
|
||||
this.loadingLog = false
|
||||
const {records, current, size, total} = res.data.data
|
||||
console.log(records, total)
|
||||
_this.logDataSource = records
|
||||
_this.innerDrawerLog = true
|
||||
_this.logPage = {
|
||||
this.logDataSource = records
|
||||
this.innerDrawerLog = true
|
||||
this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
|
||||
@@ -15,14 +15,77 @@
|
||||
@size-change="sizeChange"
|
||||
class="customPage"
|
||||
>
|
||||
<!--自定义列-->
|
||||
<template slot="labelsBase" slot-scope="{ row }">
|
||||
<el-tooltip effect="dark" placement="top">
|
||||
<div slot="content" v-for="(item,index) in row.labelsBaseArr" :key="index">{{ item }}<br/></div>
|
||||
<div>{{ row.labelsBase | ellipsis }}</div>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
|
||||
<template slot-scope="{row}" slot="menu">
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="serveLog(row)"
|
||||
>查看日志
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="addServeLog(row)"
|
||||
>新增日志
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
<el-drawer
|
||||
title="服务日志"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="handleCloseLog"
|
||||
:visible.sync="innerDrawerLog">
|
||||
<!-- <div>
|
||||
<span>姓名:</span>
|
||||
<span>身份证号:</span>
|
||||
</div> -->
|
||||
<avue-crud
|
||||
:data="logDataSource"
|
||||
:option="logOption"
|
||||
:page.sync="logPage"
|
||||
:table-loading="loadingLog"
|
||||
@row-save="saveLog"
|
||||
@row-update="saveUpdateLog"
|
||||
@row-del="removeLog"
|
||||
@size-change="logSizeChange"
|
||||
@current-change="logCurrentChange"
|
||||
>
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot="menu" slot-scope="{row}">
|
||||
<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> -->
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
<el-drawer
|
||||
title="新增"
|
||||
size="60%"
|
||||
:append-to-body="true"
|
||||
:before-close="() => innerDrawerAddLog = false"
|
||||
:visible.sync="innerDrawerAddLog">
|
||||
<avue-form ref="form" :option="logOption" v-model="logValues" @submit="handleSubmitLog"/>
|
||||
</el-drawer>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from "vuex";
|
||||
import {getList} from "@/api/tenant/personnelserve";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {getDept, getDeptMyTree} from "@/api/tenant/talents";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
|
||||
const page = {
|
||||
pageSize: 10,
|
||||
@@ -36,6 +99,7 @@ const baseOptions = {
|
||||
editBtn: false,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
menuWidth: 130,
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
@@ -48,16 +112,33 @@ const baseOptions = {
|
||||
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: {},
|
||||
page: Object.assign({}, page)
|
||||
depTree: [],
|
||||
page: Object.assign({}, page),
|
||||
treeData: [],
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
loadingLog: false,
|
||||
innerDrawerLog: false,
|
||||
innerDrawerAddLog: false,
|
||||
logValues: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
...mapGetters(["permission", "userInfo"]),
|
||||
permissionList() {
|
||||
return {
|
||||
addBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_add, false),
|
||||
@@ -67,30 +148,308 @@ export default {
|
||||
};
|
||||
},
|
||||
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: "createDept",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
span: 24,
|
||||
search: true,
|
||||
searchLabelWidth: 80,
|
||||
change: this.deptChange
|
||||
},
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "name",
|
||||
// search: true,
|
||||
span: 24,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
whitespace: true,
|
||||
message: "请输入姓名",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
search: true,
|
||||
searchSpan: 6,
|
||||
},
|
||||
{
|
||||
label: "姓别",
|
||||
prop: "aac004",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入性别",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
// hide: true,
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入身份证号", trigger: "blur"},
|
||||
{trigger: "blur", validator: IdCardNo},
|
||||
],
|
||||
search: true,
|
||||
searchSpan: 6,
|
||||
},
|
||||
{
|
||||
label: "手机号",
|
||||
prop: "phone",
|
||||
prop: "telphone",
|
||||
span: 24,
|
||||
hide: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: validateTel,
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
{
|
||||
label: "民族",
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入民族",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "户口性质",
|
||||
prop: "aac009",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入户口性质",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
// hide: true,
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入口所在地", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入文化程度",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "经办时间",
|
||||
prop: "aae036",
|
||||
display: false,
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入经办时间", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "用户类型",
|
||||
prop: "userId",
|
||||
type: "select",
|
||||
dicData: [
|
||||
{
|
||||
value: "0",
|
||||
label: "未注册用户",
|
||||
},
|
||||
{
|
||||
value: "1",
|
||||
label: "已注册用户",
|
||||
},
|
||||
],
|
||||
display: false,
|
||||
hide: true,
|
||||
// search: true
|
||||
},
|
||||
{
|
||||
label: "分组",
|
||||
prop: "groupId",
|
||||
type: "tree",
|
||||
span: 24,
|
||||
display: true,
|
||||
dicData: self.treeData,
|
||||
props: {
|
||||
label: "groupName",
|
||||
value: "id",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择分组",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
placeholder: "请选择 分组",
|
||||
},
|
||||
{
|
||||
label: "标签名称",
|
||||
prop: "labelsBase",
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择标签名称",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
slot: true,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
slot: true,
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 100,
|
||||
showWordLimit: true,
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
logOption() {
|
||||
return {
|
||||
editBtn: true,
|
||||
delBtn: true,
|
||||
addBtn: true,
|
||||
viewBtn: true,
|
||||
border: true,
|
||||
index: true,
|
||||
indexLabel: "序号",
|
||||
refreshBtn: false,
|
||||
dialogType: "drawer",
|
||||
addBtnText: "新增日志",
|
||||
height: '100',
|
||||
column: [{
|
||||
label: '服务时间',
|
||||
prop: 'createTime',
|
||||
type: 'date',
|
||||
format: "yyyy-MM-dd",
|
||||
valueFormat: "yyyy-MM-dd HH:mm:ss",
|
||||
}, {
|
||||
label: '服务发起人',
|
||||
prop: 'fromName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务对象',
|
||||
prop: 'toName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务主题',
|
||||
prop: 'serveTheme'
|
||||
}, {
|
||||
label: '服务内容',
|
||||
prop: 'serveContent'
|
||||
}, {
|
||||
label: '备注说明',
|
||||
prop: 'bak1'
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.initDept()
|
||||
this.onLoad(this.page, this.query)
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
initDept(groupId) {
|
||||
getDept({groupType: 0}).then((res) => {
|
||||
const data = res.data.data.list;
|
||||
this.treeData = data;
|
||||
let treeDataOne = {
|
||||
companyId: "",
|
||||
createTime: "",
|
||||
groupName: "全部",
|
||||
id: "",
|
||||
remarks: "",
|
||||
sort: '',
|
||||
sumNum: res.data.data.sum,
|
||||
type: '',
|
||||
};
|
||||
this.treeData.unshift(treeDataOne);
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
searchChange(params, done) {
|
||||
this.query = params;
|
||||
this.page.currentPage = 1;
|
||||
@@ -109,24 +468,139 @@ export default {
|
||||
this.page.pageSize = pageSize;
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
logSizeChange(pageSize) {
|
||||
this.logPage.pageSize = pageSize;
|
||||
this.serveLog(this.selectUserServeLog);
|
||||
},
|
||||
logCurrentChange(currentPage) {
|
||||
this.logPage.currentPage = currentPage;
|
||||
this.serveLog(this.selectUserServeLog);
|
||||
},
|
||||
onLoad(page, params = {}) {
|
||||
const {releaseTimeRange} = params;
|
||||
let values = {
|
||||
...params,
|
||||
let paramsed = {
|
||||
currentPage: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...this.query
|
||||
};
|
||||
this.loading = true;
|
||||
getList(
|
||||
page.currentPage,
|
||||
page.pageSize,
|
||||
Object.assign(values, this.query)
|
||||
).then((res) => {
|
||||
const {total, records, page} = res.data.data
|
||||
this.page.total = total;
|
||||
// this.page.currentPage = page
|
||||
getList(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,
|
||||
}
|
||||
});
|
||||
},
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
this.loadingLog = true
|
||||
getMainServeUserLog({
|
||||
idNumber: row.idNumber,
|
||||
current: this.logPage.currentPage,
|
||||
size: this.logPage.pageSize
|
||||
}).then(res => {
|
||||
this.loadingLog = false
|
||||
const {records, current, size, total} = res.data.data
|
||||
this.logDataSource = records
|
||||
this.innerDrawerLog = true
|
||||
this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
})
|
||||
},
|
||||
addServeLog(row) {
|
||||
this.selectUserServeLog = row
|
||||
this.innerDrawerAddLog = true
|
||||
},
|
||||
async handleSubmitLog(row, done) {
|
||||
let params = {
|
||||
...row,
|
||||
serveId: this.selectUserServeLog.serveId,
|
||||
serveUserId: this.selectUserServeLog.serveUserId,
|
||||
talentsId: this.selectUserServeLog.id,
|
||||
idNumber: this.selectUserServeLog.idNumber,
|
||||
toName: this.selectUserServeLog.name,
|
||||
fromName: this.userInfo.real_name
|
||||
}
|
||||
console.log(params)
|
||||
let resData = await addServeLog(params)
|
||||
done()
|
||||
if (resData.data.code === 200) {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "添加成功!",
|
||||
});
|
||||
this.innerDrawerAddLog = false
|
||||
}
|
||||
},
|
||||
async saveLog(row, index, done, loading) {
|
||||
let params = {
|
||||
...row,
|
||||
serveId: this.selectUserServeLog.serveId,
|
||||
serveUserId: this.selectUserServeLog.serveUserId,
|
||||
talentsId: this.selectUserServeLog.id,
|
||||
idNumber: this.selectUserServeLog.idNumber,
|
||||
toName: this.selectUserServeLog.name,
|
||||
fromName: this.userInfo.real_name
|
||||
}
|
||||
console.log(params)
|
||||
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: "操作成功!",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleCloseLog() {
|
||||
this.innerDrawerLog = false
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user