flat: 暂存,rules 表单 显示隐藏
This commit is contained in:
@@ -7,36 +7,35 @@
|
||||
<div>服务分组管理</div>
|
||||
<div>
|
||||
<el-button type="text" icon="el-icon-plus"
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)"
|
||||
@click="updateGroups('add')">新建分组
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupadd, false)" @click="updateGroups('add')">新建分组
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box" :style="{height: leftHeight}">
|
||||
<div class="box" :style="{ height: leftHeight }">
|
||||
<el-scrollbar style="height: 100%">
|
||||
<el-tree ref="tree" node-key="id" highlight-current @node-click="nodeClick"
|
||||
:default-expand-all="true" :data="treeData" :props="{ label: 'groupName', id: 'id'}">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }" style="width: 80%">
|
||||
<span style="
|
||||
<el-tree ref="tree" node-key="id" highlight-current @node-click="nodeClick" :default-expand-all="true"
|
||||
:data="treeData" :props="{ label: 'groupName', id: 'id' }">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }" style="width: 80%">
|
||||
<span style="
|
||||
flex-basis: 80%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
flex-shrink: 1;
|
||||
">
|
||||
{{ data.groupName || data.name }}
|
||||
{{ data.groupName || data.name }}
|
||||
</span>
|
||||
<span v-show="data.children && data.id && data.id !== '0'" style="flex-basis: 20%">
|
||||
<el-button type="text" icon="el-icon-edit" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupedit, false)"
|
||||
@click="() => updateGroups('edit', data)">
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" type="text" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupdel, false)"
|
||||
@click="() => removeGroups(data)">
|
||||
</el-button>
|
||||
</span>
|
||||
</span>
|
||||
<span v-show="data.children && data.id && data.id !== '0'" style="flex-basis: 20%">
|
||||
<el-button type="text" icon="el-icon-edit" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupedit, false)"
|
||||
@click="() => updateGroups('edit', data)">
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" type="text" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_serve_index_groupdel, false)"
|
||||
@click="() => removeGroups(data)">
|
||||
</el-button>
|
||||
</span>
|
||||
</span>
|
||||
</el-tree>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
@@ -44,18 +43,9 @@
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<basic-container>
|
||||
<avue-crud
|
||||
v-model="obj"
|
||||
ref="crud"
|
||||
:data="dataSource"
|
||||
:option="option"
|
||||
:search.sync="query"
|
||||
:page.sync="page"
|
||||
:table-loading="loading"
|
||||
@search-change="serveSearchChange"
|
||||
@search-reset="serveResetChange"
|
||||
@size-change="infoSizeChange"
|
||||
@current-change="infoCurrentChange">
|
||||
<avue-crud v-model="obj" ref="crud" :data="dataSource" :option="option" :search.sync="query" :page.sync="page"
|
||||
:table-loading="loading" @search-change="serveSearchChange" @search-reset="serveResetChange"
|
||||
@size-change="infoSizeChange" @current-change="infoCurrentChange">
|
||||
<!-- <template slot="menuLeft">-->
|
||||
<!-- <el-button type="primary" size="small" @click="selectPushService">推送服务</el-button>-->
|
||||
<!-- </template>-->
|
||||
@@ -72,23 +62,11 @@
|
||||
<!-- @click="matchPolicy(row)"-->
|
||||
<!-- >查看匹配政策-->
|
||||
<!-- </el-button>-->
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="phoneDataList(row)"
|
||||
>回访
|
||||
<el-button type="text" icon="el-icon-document" size="small" @click="phoneDataList(row)">回访
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="selectPushUserService(row)"
|
||||
>推送服务
|
||||
<el-button type="text" icon="el-icon-document" size="small" @click="selectPushUserService(row)">推送服务
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="serveLog(row)"
|
||||
>管理服务日志
|
||||
<el-button type="text" icon="el-icon-document" size="small" @click="serveLog(row)">管理服务日志
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
@@ -96,50 +74,28 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 匹配任务/岗位 -->
|
||||
<el-drawer
|
||||
title="匹配任务/岗位"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="() => innerDrawer1 = false"
|
||||
<el-drawer title="匹配任务/岗位" size="80%" :append-to-body="true" :before-close="() => innerDrawer1 = false"
|
||||
:visible.sync="innerDrawer1">
|
||||
<avue-crud
|
||||
:data="workData"
|
||||
:option="workOption"
|
||||
:page.sync="workPage"
|
||||
@size-change="workSizeChange"
|
||||
@current-change="workCurrentChange"
|
||||
>
|
||||
<avue-crud :data="workData" :option="workOption" :page.sync="workPage" @size-change="workSizeChange"
|
||||
@current-change="workCurrentChange">
|
||||
<template slot="missionDesc" slot-scope="{ row }">
|
||||
<TextTooltip :content="row.missionDesc"></TextTooltip>
|
||||
</template>
|
||||
<template slot-scope="{row,index}" slot="menu">
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="toWorkMissionDetail(row)"
|
||||
>查看详情
|
||||
<el-button type="text" icon="el-icon-document" size="small" @click="toWorkMissionDetail(row)">查看详情
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
<!-- 匹配政策-->
|
||||
<el-drawer
|
||||
title="匹配政策"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="() => innerDrawer2 = false"
|
||||
<el-drawer title="匹配政策" size="80%" :append-to-body="true" :before-close="() => innerDrawer2 = false"
|
||||
:visible.sync="innerDrawer2">
|
||||
<avue-crud
|
||||
:data="policyData"
|
||||
:option="policyOption"
|
||||
:page.sync="policyPage"
|
||||
@size-change="policySizeChange"
|
||||
@current-change="policyCurrentChange"
|
||||
>
|
||||
<avue-crud :data="policyData" :option="policyOption" :page.sync="policyPage" @size-change="policySizeChange"
|
||||
@current-change="policyCurrentChange">
|
||||
<template slot="policyContent" slot-scope="{ row }">
|
||||
<el-tooltip class="item" effect="dark" placement="top-start">
|
||||
<div slot="content">
|
||||
<div v-for="(item, index) in clipStr(row.policyContent)" :key="index">
|
||||
<div v-for="(item, index) in clipStr(row.policyContent)" :key="index2">
|
||||
<div>{{ item }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -149,7 +105,7 @@
|
||||
<template slot="labelName" slot-scope="{ row }">
|
||||
<el-tooltip class="item" effect="dark" placement="top-start">
|
||||
<div slot="content">
|
||||
<div v-for="(item, index) in clipStr(row.labelName)" :key="index">
|
||||
<div v-for="(item, index) in clipStr(row.labelName)" :key="index2">
|
||||
<div>{{ item }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -158,9 +114,9 @@
|
||||
</template>
|
||||
<template slot="labelNameForm" slot-scope="{row}">
|
||||
<div>
|
||||
<el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index">{{
|
||||
item
|
||||
}}
|
||||
<el-tag style="margin: 4px 10px" v-for="(item, index) in row.labelName.split(',')" :key="index2">{{
|
||||
item
|
||||
}}
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
@@ -179,27 +135,15 @@
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
<!-- 服务日志-->
|
||||
<el-drawer
|
||||
title="服务日志"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="() => innerDrawer3 = false"
|
||||
<el-drawer title="服务日志" size="80%" :append-to-body="true" :before-close="() => innerDrawer3 = false"
|
||||
:visible.sync="innerDrawer3">
|
||||
<!-- <div>
|
||||
<span>姓名:</span>
|
||||
<span>身份证号:</span>
|
||||
</div> -->
|
||||
<avue-crud
|
||||
:data="logData"
|
||||
:option="logOption"
|
||||
@row-save="saveLog"
|
||||
@row-update="saveUpdateLog"
|
||||
@row-del="removeLog"
|
||||
:page.sync="logPage"
|
||||
@size-change="logSizeChange"
|
||||
@current-change="logCurrentChange"
|
||||
ref="logCrud"
|
||||
>
|
||||
<avue-crud :data="logData" :option="logOption" @row-save="saveLog" @row-update="saveUpdateLog"
|
||||
@row-del="removeLog" :page.sync="logPage" @size-change="logSizeChange" @current-change="logCurrentChange"
|
||||
ref="logCrud">
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
@@ -209,67 +153,28 @@
|
||||
</template> -->
|
||||
<template slot-scope="{row,index}" slot="menu">
|
||||
<el-button type="text" icon="el-icon-edit" size="small"
|
||||
v-if="row.serveTheme !== '人工推送岗位' && row.serveTheme !== '人工推送政策'"
|
||||
@click="$refs.logCrud.rowEdit(row, index)"
|
||||
>编辑
|
||||
v-if="row.serveTheme !== '人工推送岗位' && row.serveTheme !== '人工推送政策'" v-show="row.serveName === '手工录入服务日志'"
|
||||
@click="$refs.logCrud.rowEdit(row, index2)">编辑
|
||||
</el-button>
|
||||
<el-button type="text" icon="el-icon-edit" size="small" v-show="row.serveName === '手工录入服务日志'"
|
||||
@click="$refs.logCrud.rowDel(row, index2)">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
<!--新建 编辑分组dialog-->
|
||||
<add-groups ref="addGroups" @refresh="refresh" :listAllPolicyTree="listAllPolicyTree"
|
||||
:treeData="treeData" :data="worktypeData" :worktypeDic="worktypeDic"
|
||||
:talentsList="talentsList"></add-groups>
|
||||
<PushService
|
||||
:visible.sync="PushServiceVisible"
|
||||
:rowData="selectPushServiceData"
|
||||
:phoneItem="phoneItem"
|
||||
ref="pushRef"
|
||||
></PushService>
|
||||
<add-groups ref="addGroups" @refresh="refresh" :listAllPolicyTree="listAllPolicyTree" :treeData="treeData"
|
||||
:data="worktypeData" :worktypeDic="worktypeDic" :talentsList="talentsList"></add-groups>
|
||||
<PushService :visible.sync="PushServiceVisible" :rowData="selectPushServiceData" :phoneItem="phoneItem"
|
||||
:selectInfo="selectInfo" ref="pushRef"></PushService>
|
||||
|
||||
<mission-view :visible.sync="viewDrawer" :model="view"></mission-view>
|
||||
|
||||
<work-view :visible.sync="workViewDrawer" :model="workViewModel"></work-view>
|
||||
|
||||
<el-dialog
|
||||
title="回访"
|
||||
append-to-body
|
||||
:visible.sync="phoneDialogVisible"
|
||||
width="40%"
|
||||
:rules="rules"
|
||||
:before-close="handlePhoneClose">
|
||||
<el-form :model="phoneForm" label-position="top" label-width="100px">
|
||||
<el-form-item label="验证手机号">
|
||||
<el-checkbox-group
|
||||
v-model="phoneForm.list"
|
||||
:min="0"
|
||||
:max="1">
|
||||
<el-checkbox v-for="phone in phoneList" :label="phone" :key="phone">{{ phone }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="输入手机号">-->
|
||||
<!-- <el-input v-model="phoneForm.phone" :disabled="phoneForm.list.length" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="是否服务">
|
||||
<el-radio-group v-model="phoneForm.isServe">
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否培训" v-show="phoneForm.isServe">
|
||||
<el-radio-group v-model="phoneForm.isTrain">
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleBasicUpdate">个人基础信息修改</el-button>
|
||||
<!-- <el-button @click="handelJobIntention">求职意愿修改</el-button>-->
|
||||
<el-button @click="handlePhoneClose">取 消</el-button>
|
||||
<el-button type="primary" @click="handelPhoneConfirm">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<FollowUpDialog :visible.sync="phoneDialogVisible" :item="phoneItem" :serveId="selectInfo ? selectInfo.id : null"
|
||||
:phoneList="phoneList" :workSkillsOptions="workSkillsOptions" :areaOptions="areaOptions" :selectInfo="selectInfo"
|
||||
:exitReasonOptions="exitReasonOptions" @curdUpdate="callbackPopup" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -281,17 +186,18 @@ import {
|
||||
getListAllPolicy,
|
||||
getListAllTalents, getMatchPolicy, getMatchServeList, getMatchWorkStation,
|
||||
getServeListTalents,
|
||||
removeDept, removeServeLog, updateServeLog, getPhoneList, phoneUpdate
|
||||
removeDept, removeServeLog, updateServeLog, getPhoneList, serveRegion, serveExitReason
|
||||
} from "@/api/tenant/serve";
|
||||
import {mapGetters} from "vuex";
|
||||
import { mapGetters } from "vuex";
|
||||
import addGroups from "./Dialog/addGroup";
|
||||
import {getLabelList} from "@/api/tenant/common";
|
||||
import { getLabelList, getWorkTypes } from "@/api/tenant/common";
|
||||
import missionView from "../../mission/Table/missionView.vue";
|
||||
import workView from "../../works/Table/missionView.vue"
|
||||
import TextTooltip from "@/components/text-tooltip/index.vue";
|
||||
import {serviceType} from "@/common/dic";
|
||||
import { serveTypeOptions, serviceType } from "@/common/dic";
|
||||
import PushService from './Dialog/pushService2.vue'
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
import { getDeptMyTree } from "@/api/tenant/talents";
|
||||
import FollowUpDialog from "@/views/tenant/main/serve/followUpVisit/qzjyknry.vue";
|
||||
|
||||
const page = {
|
||||
size: 10,
|
||||
@@ -299,11 +205,16 @@ const page = {
|
||||
total: 0,
|
||||
}
|
||||
export default {
|
||||
components: {addGroups, missionView, workView, TextTooltip, PushService},
|
||||
components: { FollowUpDialog, addGroups, missionView, workView, TextTooltip, PushService },
|
||||
data() {
|
||||
return {
|
||||
exitReasonOptions: [],
|
||||
arr: [],
|
||||
worktypeDic: {},
|
||||
arr_2: [],
|
||||
worktypeDic_2: {},
|
||||
workSkillsOptions: [],
|
||||
areaOptions: [],
|
||||
treeData: [],
|
||||
loading: false,
|
||||
tenantId: null,
|
||||
@@ -337,20 +248,30 @@ export default {
|
||||
list: [],
|
||||
isServe: 0,
|
||||
isTrain: 0,
|
||||
isWork: 1,
|
||||
salary: 4000,
|
||||
workSkillOne: '',
|
||||
workSkillTwo: '',
|
||||
},
|
||||
phoneItem: null,
|
||||
depTree: [],
|
||||
rules: {
|
||||
isServe: [
|
||||
{required: true, message: '请选择是否服务', trigger: 'change'}
|
||||
{ required: true, message: '请选择是否服务', trigger: 'change' }
|
||||
],
|
||||
isTrain: [
|
||||
{required: true, message: '请选择是否培训', trigger: 'change'}
|
||||
{ required: true, message: '请选择是否培训', trigger: 'change' }
|
||||
],
|
||||
isWork: [
|
||||
{ required: true, message: '请选择是否有就业意愿', trigger: 'change' }
|
||||
],
|
||||
salary: [
|
||||
{ required: true, message: '请选择期望薪资', trigger: 'change' }
|
||||
],
|
||||
},
|
||||
logOption: {
|
||||
editBtn: false,
|
||||
delBtn: true,
|
||||
delBtn: false,
|
||||
addBtn: true,
|
||||
viewBtn: true,
|
||||
border: true,
|
||||
@@ -388,12 +309,7 @@ export default {
|
||||
label: '服务类型',
|
||||
prop: 'serveType',
|
||||
type: 'select',
|
||||
dicData: [
|
||||
{label: '普通日志', value: 0},
|
||||
{label: '回访日志', value: 1},
|
||||
{label: '推送岗位日志', value: 2},
|
||||
{label: '推送政策日志', value: 3},
|
||||
],
|
||||
dicData: serveTypeOptions,
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务主题',
|
||||
@@ -452,7 +368,7 @@ export default {
|
||||
for (let j = 0; j < this.arr.length; j++) {
|
||||
const key = this.arr[j];
|
||||
if (this.worktypeDic.hasOwnProperty(key)) {
|
||||
rel.push({name: key})
|
||||
rel.push({ name: key })
|
||||
}
|
||||
}
|
||||
// for (let i = 0; i < this.tempWorkType.length; i++) {
|
||||
@@ -509,9 +425,30 @@ export default {
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
},
|
||||
// {
|
||||
// label: '专业',
|
||||
// prop: 'aac183Major'
|
||||
// },
|
||||
{
|
||||
label: '专业',
|
||||
prop: 'aac183Major'
|
||||
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: 'residentAddress',
|
||||
},
|
||||
{
|
||||
label: "毕业年份",
|
||||
@@ -545,25 +482,48 @@ export default {
|
||||
prop: 'aac010'
|
||||
},
|
||||
{
|
||||
label: "政策推送次数",
|
||||
prop: "servePolicyCount",
|
||||
searchType: 'number',
|
||||
search: unemployedCollegeStudents,
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
label: "最小服务次数",
|
||||
prop: "serveCountDown", // 后端对应的【最小】次数查询字段
|
||||
type: "number",
|
||||
search: true,
|
||||
hide: true, // 不在列表中展示
|
||||
display: false, // 不在表单中展示
|
||||
searchSpan: 8, // 栅格占 4 (两个加起来是 8)
|
||||
searchLabelWidth: 80,
|
||||
},
|
||||
{
|
||||
label: "岗位服务次数",
|
||||
prop: "serveCount",
|
||||
searchType: 'number',
|
||||
search: unemployedCollegeStudents,
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
label: "最大服务次数",
|
||||
prop: "serveCountUp", // 后端对应的【最大】次数查询字段
|
||||
type: "number",
|
||||
search: true,
|
||||
hide: true,
|
||||
display: false,
|
||||
searchSpan: 8, // 栅格占 4
|
||||
searchLabelWidth: 80,
|
||||
},
|
||||
// {
|
||||
// label: "政策推送次数",
|
||||
// prop: "servePolicyCount",
|
||||
// searchType: 'number',
|
||||
// search: unemployedCollegeStudents,
|
||||
// searchLabelWidth: 100,
|
||||
// searchSpan: 8,
|
||||
// },
|
||||
// {
|
||||
// label: "岗位服务次数",
|
||||
// prop: "serveCount",
|
||||
// searchType: 'number',
|
||||
// search: unemployedCollegeStudents,
|
||||
// searchLabelWidth: 100,
|
||||
// searchSpan: 8,
|
||||
// },
|
||||
{
|
||||
label: "服务次数",
|
||||
prop: "serveTotalCount",
|
||||
},
|
||||
{
|
||||
label: "识别原因",
|
||||
prop: "labelsBase",
|
||||
width: 100,
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -604,129 +564,129 @@ export default {
|
||||
label: '政策名称',
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
label: "政策级别",
|
||||
prop: "level",
|
||||
span: 12,
|
||||
hide: true,
|
||||
{
|
||||
label: "政策级别",
|
||||
prop: "level",
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: "政策文号",
|
||||
prop: "number",
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: "发文机构",
|
||||
prop: "issuingAuthority",
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: "分组",
|
||||
prop: "groupId",
|
||||
type: "tree",
|
||||
hide: true,
|
||||
span: 12,
|
||||
display: true,
|
||||
placeholder: "请选择 分组",
|
||||
},
|
||||
{
|
||||
label: "有效性",
|
||||
prop: "status",
|
||||
type: "tree",
|
||||
span: 12,
|
||||
hide: true,
|
||||
display: true,
|
||||
dicData: [{ name: "有效", value: 1 }, { name: "无效", value: 0 }],
|
||||
props: {
|
||||
label: "name",
|
||||
value: "value",
|
||||
},
|
||||
{
|
||||
label: "政策文号",
|
||||
prop: "number",
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: "服务类型",
|
||||
prop: "stype",
|
||||
type: "tree",
|
||||
span: 12,
|
||||
display: true,
|
||||
hide: true,
|
||||
dicData: serviceType,
|
||||
props: {
|
||||
label: "label",
|
||||
value: "value",
|
||||
},
|
||||
{
|
||||
label: "发文机构",
|
||||
prop: "issuingAuthority",
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: "分组",
|
||||
prop: "groupId",
|
||||
type: "tree",
|
||||
hide: true,
|
||||
span: 12,
|
||||
display: true,
|
||||
placeholder: "请选择 分组",
|
||||
},
|
||||
{
|
||||
label: "有效性",
|
||||
prop: "status",
|
||||
type: "tree",
|
||||
span: 12,
|
||||
hide: true,
|
||||
display: true,
|
||||
dicData: [{name: "有效", value: 1}, {name: "无效", value: 0}],
|
||||
props: {
|
||||
label: "name",
|
||||
value: "value",
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择服务类型",
|
||||
trigger: "change",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "服务类型",
|
||||
prop: "stype",
|
||||
type: "tree",
|
||||
span: 12,
|
||||
display: true,
|
||||
hide: true,
|
||||
dicData: serviceType,
|
||||
props: {
|
||||
label: "label",
|
||||
value: "value",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择服务类型",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
placeholder: "请选择 服务类型",
|
||||
},
|
||||
{
|
||||
label: "发文字号",
|
||||
prop: "issuingNumber",
|
||||
hide: true,
|
||||
span: 12,
|
||||
// row: true,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "类别",
|
||||
prop: "category",
|
||||
span: 12,
|
||||
hide: true,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "标签",
|
||||
prop: "labelName",
|
||||
hide: false,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "政策文件名",
|
||||
prop: "policyFileName",
|
||||
hide: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: '政策内容',
|
||||
prop: 'policyContent',
|
||||
slot: true,
|
||||
hide: true,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "指南文件名",
|
||||
prop: "guidelineFileName",
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "指南内容",
|
||||
prop: "guidelineContent",
|
||||
hide: true,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 100,
|
||||
showWordLimit: true,
|
||||
},
|
||||
],
|
||||
placeholder: "请选择 服务类型",
|
||||
},
|
||||
{
|
||||
label: "发文字号",
|
||||
prop: "issuingNumber",
|
||||
hide: true,
|
||||
span: 12,
|
||||
// row: true,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "类别",
|
||||
prop: "category",
|
||||
span: 12,
|
||||
hide: true,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "标签",
|
||||
prop: "labelName",
|
||||
hide: false,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "政策文件名",
|
||||
prop: "policyFileName",
|
||||
hide: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: '政策内容',
|
||||
prop: 'policyContent',
|
||||
slot: true,
|
||||
hide: true,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "指南文件名",
|
||||
prop: "guidelineFileName",
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 50,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: "指南内容",
|
||||
prop: "guidelineContent",
|
||||
hide: true,
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 100,
|
||||
showWordLimit: true,
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -739,19 +699,6 @@ export default {
|
||||
this.getDept()
|
||||
},
|
||||
methods: {
|
||||
// rowStyle(column) {
|
||||
// if (column.row.serveTheme === '人工推送岗位' || column.row.serveTheme === '人工推送政策') {
|
||||
// this.logOption.editBtn = true
|
||||
// } else {
|
||||
// this.logOption.editBtn = false
|
||||
// }
|
||||
// },
|
||||
handleBasicUpdate() {
|
||||
window.open('http://10.160.7.100:8000/jyback/template/general.html#/generalPage?_modulePartId_=1000076072', '_blank');
|
||||
},
|
||||
handelJobIntention() {
|
||||
this.$message({type: "info", message: "功能未配置"});
|
||||
},
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
@@ -771,55 +718,62 @@ export default {
|
||||
})
|
||||
})
|
||||
},
|
||||
handelPhoneConfirm() {
|
||||
let _this = this
|
||||
let phone = ''
|
||||
if (this.phoneForm.list.length) phone = this.phoneForm.list[0];
|
||||
// if (/^1[3-9]{1}\d{9}/.test(this.phoneForm.phone)) phone = this.phoneForm.phone;
|
||||
if (phone) {
|
||||
this.$confirm(`手机号为:${phone}`, {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async (res) => {
|
||||
let params = {
|
||||
idNumber: _this.phoneItem.idNumber,
|
||||
phone,
|
||||
serveId: this.selectInfo.id,
|
||||
serveUserId: this.phoneItem.serveUserId,
|
||||
isServe: this.phoneForm.isServe,
|
||||
isTrain: this.phoneForm.isTrain
|
||||
}
|
||||
let resData = await phoneUpdate(params)
|
||||
if (resData.data.code === 200) {
|
||||
_this.$message.success("手机号更新成功");
|
||||
_this.handlePhoneClose()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error("请选择或输入用户手机号!");
|
||||
}
|
||||
},
|
||||
handlePhoneClose() {
|
||||
this.phoneDialogVisible = false
|
||||
this.phoneForm.phone = ''
|
||||
this.phoneForm.list = []
|
||||
this.phoneForm.isServe = 0
|
||||
this.phoneForm.isTrain = 0
|
||||
},
|
||||
// 5. 重写 phoneDataList 方法
|
||||
async phoneDataList(item) {
|
||||
let params = {
|
||||
idNumber: item.idNumber
|
||||
}
|
||||
let resData = await getPhoneList(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.phoneList = resData.data.data
|
||||
this.phoneItem = item
|
||||
this.phoneDialogVisible = true
|
||||
this.phoneForm.isServe = item.isServe
|
||||
this.phoneForm.isTrain = item.isTrain
|
||||
} else {
|
||||
this.$message.error("用户数据异常!");
|
||||
// 开启 Loading
|
||||
const loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: '正在加载数据...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
try {
|
||||
// 1. 获取电话列表
|
||||
let params = { idNumber: item.idNumber };
|
||||
let resData = await getPhoneList(params);
|
||||
|
||||
// 2. (如果需要) 获取技能列表
|
||||
if (this.workSkillsOptions.length === 0) {
|
||||
let skillsRes = await getWorkTypes(1);
|
||||
if (skillsRes.data.code === 200) {
|
||||
this.workSkillsOptions = skillsRes.data.data;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.areaOptions.length === 0) {
|
||||
let regsRes = await serveRegion();
|
||||
if (regsRes.data.code === 200) {
|
||||
this.areaOptions = regsRes.data.data;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.exitReasonOptions.length === 0) {
|
||||
let Reason = await serveExitReason();
|
||||
if (Reason.data.code === 200) {
|
||||
this.exitReasonOptions = Reason.data.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 检查电话列表API结果
|
||||
if (resData.data.code === 200) {
|
||||
// 成功: 关闭 loading, 传递数据, 打开弹窗
|
||||
loadingInstance.close();
|
||||
this.phoneList = resData.data.data;
|
||||
this.phoneItem = item;
|
||||
this.phoneDialogVisible = true;
|
||||
} else {
|
||||
// 失败: 关闭 loading, 显示错误
|
||||
loadingInstance.close();
|
||||
this.$message.error("用户数据异常!");
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// 异常: 关闭 loading, 显示错误
|
||||
console.error("Error loading follow-up data:", error);
|
||||
loadingInstance.close();
|
||||
this.$message.error("获取用户数据失败!");
|
||||
}
|
||||
},
|
||||
/*点击分组加载相应人才列表*/
|
||||
@@ -859,7 +813,7 @@ export default {
|
||||
this.$nextTick(function () {
|
||||
this.$refs.tree.setCurrentKey(groupId);
|
||||
}); //默认高亮
|
||||
this.nodeClick({id: groupId});
|
||||
this.nodeClick({ id: groupId });
|
||||
} else {
|
||||
if (this.treeData.length) {
|
||||
const serveId2 = this.treeData[0].id
|
||||
@@ -867,9 +821,10 @@ export default {
|
||||
this.$nextTick(function () {
|
||||
this.$refs.tree.setCurrentKey(serveId);
|
||||
}); //默认高亮第一个
|
||||
this.nodeClick({id: serveId});
|
||||
this.nodeClick({ id: serveId });
|
||||
}
|
||||
}
|
||||
this.selectInfo = data[0].children[0]
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
@@ -888,8 +843,8 @@ export default {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", {style: "font-size: 16px"}, "您确定要删除此分组吗? "),
|
||||
h("p", {style: "color: red"}, "一旦删除则无法找回"),
|
||||
h("p", { style: "font-size: 16px" }, "您确定要删除此分组吗? "),
|
||||
h("p", { style: "color: red" }, "一旦删除则无法找回"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
@@ -933,6 +888,9 @@ export default {
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
callbackPopup() {
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
/*加载人才列表 */
|
||||
onLoad(page, params = {}) {
|
||||
this.loading = true;
|
||||
@@ -940,10 +898,12 @@ export default {
|
||||
current: page.currentPage,
|
||||
size: page.size,
|
||||
id: this.tenantId,
|
||||
...params
|
||||
}
|
||||
for (const paramsKey in params) {
|
||||
params[paramsKey] !== '' ? paramsed[paramsKey] = params[paramsKey] : null
|
||||
}
|
||||
getServeListTalents(paramsed).then((res) => {
|
||||
const {records, current, size, total} = res.data.data
|
||||
const { records, current, size, total } = res.data.data
|
||||
this.dataSource = records
|
||||
this.loading = false;
|
||||
this.page.size = size
|
||||
@@ -990,7 +950,7 @@ export default {
|
||||
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.workData = records
|
||||
this.workPage.size = size
|
||||
@@ -1000,9 +960,9 @@ export default {
|
||||
},
|
||||
// 匹配政策
|
||||
matchPolicy(row) {
|
||||
getMatchPolicy({id: row.id, serveId: this.selectInfo.id, serveUserId: row.serveUserId}).then(res => {
|
||||
getMatchPolicy({ id: row.id, serveId: this.selectInfo.id, serveUserId: row.serveUserId }).then(res => {
|
||||
let _this = this;
|
||||
const {records, current, size, total} = res.data.data
|
||||
const { records, current, size, total } = res.data.data
|
||||
_this.policyData = records
|
||||
_this.innerDrawer2 = true
|
||||
_this.policyPage.size = size
|
||||
@@ -1021,7 +981,7 @@ export default {
|
||||
size: this.logPage.size
|
||||
}).then(res => {
|
||||
let _this = this;
|
||||
const {records, current, size, total} = res.data.data
|
||||
const { records, current, size, total } = res.data.data
|
||||
_this.logData = records
|
||||
_this.innerDrawer3 = true
|
||||
_this.logPage.size = size
|
||||
@@ -1076,7 +1036,7 @@ export default {
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
return removeServeLog({ids: row.id});
|
||||
return removeServeLog({ ids: row.id });
|
||||
})
|
||||
.then(() => {
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
@@ -1144,6 +1104,4 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
Reference in New Issue
Block a user