|
|
@@ -55,6 +55,8 @@
|
|
|
:showSelect="true"
|
|
|
:pageInfo="pageInfo"
|
|
|
@getList="getList"
|
|
|
+ @select-all-change="selectAllChange"
|
|
|
+ @select-change="selectChange"
|
|
|
>
|
|
|
<template v-slot:table-title-btn>
|
|
|
<div>
|
|
|
@@ -79,7 +81,7 @@
|
|
|
</el-dropdown-menu>
|
|
|
</template>
|
|
|
</el-dropdown>
|
|
|
- <el-button type="primary" @click="add(ruleFormRef)">
|
|
|
+ <el-button type="primary" @click="manySetDeptUser()">
|
|
|
设置负责人</el-button
|
|
|
>
|
|
|
</div>
|
|
|
@@ -91,11 +93,18 @@
|
|
|
<el-dropdown placement="bottom-start">
|
|
|
<span class="el-dropdown-link"> 更 多 </span>
|
|
|
<template #dropdown>
|
|
|
- <el-dropdown-menu>
|
|
|
- <el-dropdown-item>删除</el-dropdown-item>
|
|
|
- <el-dropdown-item>禁用</el-dropdown-item>
|
|
|
- <el-dropdown-item>启用</el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
+
|
|
|
+
|
|
|
+ <el-dropdown-item v-on:click="changeDept(scope)"
|
|
|
+ >变更机构</el-dropdown-item
|
|
|
+ >
|
|
|
+ <el-dropdown-item v-on:click="resign(scope)">操作离职</el-dropdown-item>
|
|
|
+ <el-dropdown-item v-on:click="transfer(scope)"
|
|
|
+ >资源转移</el-dropdown-item
|
|
|
+ >
|
|
|
+ <el-dropdown-item v-on:click="delUser(scope)">删除</el-dropdown-item>
|
|
|
+
|
|
|
+
|
|
|
</template>
|
|
|
</el-dropdown>
|
|
|
</template>
|
|
|
@@ -104,6 +113,107 @@
|
|
|
</template>
|
|
|
</Table>
|
|
|
</div>
|
|
|
+ <el-dialog
|
|
|
+ v-model="dialogVisible"
|
|
|
+ title="资源转移"
|
|
|
+ width="800"
|
|
|
+ draggable
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="20">
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <div class="img-title">
|
|
|
+ {{ pinyin.getFullChars(operationForm.name).substring(0, 1) }}
|
|
|
+ </div>
|
|
|
+ <h4>{{ operationForm.name }}</h4>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <p style="margin-left: 50px">工号:{{ transferInfo.userId }}</p>
|
|
|
+ <p style="margin-left: 50px">所在机构:{{ transferInfo.deptName }}</p>
|
|
|
+ <p style="margin-left: 50px">需要转移的资源</p>
|
|
|
+ <el-table :data="[{}]" style="width: 100%">
|
|
|
+ <el-table-column prop="date" label="资源" width="120">
|
|
|
+ <template #default> 业务员 </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="描述" width="180">
|
|
|
+ <template #default> 转让该成员维护的业务员 </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="address" label="数量" width="80">
|
|
|
+ <template #default> {{ transferInfo.count }}人 </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="address" label="资源接收人">
|
|
|
+ <template #default>
|
|
|
+ <el-input
|
|
|
+ :value="receiveInfo?.name"
|
|
|
+ @click="deptDialogVisible = true"
|
|
|
+ placeholder="输入姓名,手机号,工号查找"
|
|
|
+ ></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="confirmTransfer">
|
|
|
+ 确认转移
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ <setDept
|
|
|
+ :dialogVisible="deptDialogVisible"
|
|
|
+ :dept-list="deptTreeData"
|
|
|
+ :dept-ids="deptIdList"
|
|
|
+ @close-dialog="confirmDialogInfo"
|
|
|
+ :title="title"
|
|
|
+ @cancel-dialog="deptDialogVisible=false"
|
|
|
+ ></setDept>
|
|
|
+ <el-dialog
|
|
|
+ v-model="changeDeptDialog"
|
|
|
+ title="变更机构"
|
|
|
+ width="600"
|
|
|
+ append-to-body
|
|
|
+ draggable
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <el-input
|
|
|
+ v-model="filterText"
|
|
|
+ style="width: 240px"
|
|
|
+ placeholder="请输入机构名称查找"
|
|
|
+ :prefix-icon="Search"
|
|
|
+ />
|
|
|
+ <el-tree
|
|
|
+ ref="treeRef"
|
|
|
+ style="max-width: 600px"
|
|
|
+ class="filter-tree"
|
|
|
+ :data="deptTreeData"
|
|
|
+ :props="defaultProps"
|
|
|
+ :default-expand-all="true"
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :filter-node-method="filterNode"
|
|
|
+ @node-click="treeClick"
|
|
|
+ >
|
|
|
+ <template #default="{ node, data }">
|
|
|
+ <span class="custom-tree-node">
|
|
|
+ <span>{{ node.label }}</span>
|
|
|
+ <span>
|
|
|
+ <a style="color: #00a0f4">
|
|
|
+ {{ node.label == deptItem.name ? "已选" : "" }}
|
|
|
+ </a>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-tree>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="changeDeptDialog = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="submitChangeDept"> 确认 </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
|
|
|
<!-- <el-dialog v-model="dialogVisible" title="基本信息" width="800" draggable> -->
|
|
|
@@ -118,13 +228,14 @@ import { ref, reactive, watch,onMounted ,h} from "vue";
|
|
|
import {useRouter} from "vue-router"
|
|
|
import type { ComponentSize, FormInstance, FormRules } from "element-plus";
|
|
|
import { Plus, Search } from "@element-plus/icons-vue";
|
|
|
-
|
|
|
-
|
|
|
+import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
+import pinyin from "js-pinyin";
|
|
|
import type Node from "element-plus/es/components/tree/src/model/node";
|
|
|
// import universalTable from "../"
|
|
|
import { ElTree } from "element-plus";
|
|
|
import api from "@/api";
|
|
|
import { getDictItems } from "@/api/dict";
|
|
|
+import setDept from "@/components/DialogSetDeptLeader/index.vue"
|
|
|
interface dictType {
|
|
|
value: string;
|
|
|
id: string;
|
|
|
@@ -315,7 +426,7 @@ const getUserList= () => {
|
|
|
api.userApi.memberList({
|
|
|
...pageInfo
|
|
|
}).then((res:any)=>{
|
|
|
- console.log(res)
|
|
|
+
|
|
|
if(res.code===200){
|
|
|
tableData.value=res.data.records
|
|
|
pageInfo.total=res.data.total
|
|
|
@@ -346,9 +457,7 @@ const add = (formEl: FormInstance | undefined) => {
|
|
|
// pageInfo.pageSize=item.pageSize
|
|
|
};
|
|
|
|
|
|
-const closeAddOperation = (bool: boolean) => {
|
|
|
- dialogVisible.value = bool
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
const operationMany = (item: any) => {
|
|
|
// pageInfo.pageNum=item.pageNum
|
|
|
@@ -375,6 +484,212 @@ const remove = (node: Node, data: Tree) => {
|
|
|
const reset = (item: any) => {
|
|
|
// ElMessage({})
|
|
|
};
|
|
|
+
|
|
|
+const deptDialogVisible=ref(false)
|
|
|
+//判断当前机构是否可以进行变更
|
|
|
+const changeDeptDialog = ref(false);
|
|
|
+const operationForm=ref({})
|
|
|
+function changeDept(item:any) {
|
|
|
+ // changeDeptDialog.value=true
|
|
|
+ operationForm.value=item.operationData.row
|
|
|
+ api.userApi
|
|
|
+ .checkChangeDept({
|
|
|
+ userId: item.operationData.row.userId,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ // transferInfo.value=res.data
|
|
|
+
|
|
|
+ changeDeptDialog.value = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+//选择变更的机构
|
|
|
+const deptItem = ref({});
|
|
|
+function treeClick(node: any) {
|
|
|
+ deptItem.value = node;
|
|
|
+}
|
|
|
+
|
|
|
+//提交变更机构信息
|
|
|
+
|
|
|
+function submitChangeDept() {
|
|
|
+ // changeDeptDialog.value=true
|
|
|
+ api.userApi
|
|
|
+ .changeDept({
|
|
|
+ userId: operationForm.value.userId,
|
|
|
+ deptId: deptItem.value.id,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ // transferInfo.value=res.data
|
|
|
+ ElMessage.success(res.msg);
|
|
|
+ changeDeptDialog.value = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//资源转移信息
|
|
|
+interface transfer {
|
|
|
+ [key: string]: any;
|
|
|
+}
|
|
|
+const transferInfo = ref<transfer>({});
|
|
|
+function transfer(item:any) {
|
|
|
+ // console.log(123)
|
|
|
+ title.value='资源转移'
|
|
|
+ operationForm.value=item.operationData.row
|
|
|
+ api.userApi
|
|
|
+ .getTransferInfo({
|
|
|
+ userId: operationForm.value.userId,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ transferInfo.value = res.data;
|
|
|
+ if (res.data.count < 1) {
|
|
|
+ ElMessage.error("当前用户没有可转移的资源");
|
|
|
+ } else {
|
|
|
+ dialogVisible.value = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//删除成员
|
|
|
+function delUser(item:any) {
|
|
|
+ operationForm.value=item.operationData.row
|
|
|
+ api.userApi
|
|
|
+ .checkChangeDept({
|
|
|
+ userId: operationForm.value.userId,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ // transferInfo.value=res.data
|
|
|
+
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ "账号删除后,该账号将无法使用访问本企业,请确定是否删除 ",
|
|
|
+ "确认要删除账号吗?",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确认删除",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ center:true
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ api.userApi
|
|
|
+ .userDelete({
|
|
|
+ id: [operationForm.value.id],
|
|
|
+
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if(res.code==200){
|
|
|
+ ElMessage.success(res.msg)
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // console.log(123);
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ ElMessage.warning("用户取消操作");
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+//确认弹框提交信息
|
|
|
+const receiveInfo = ref<transfer>({});
|
|
|
+function confirmDialogInfo(item: any) {
|
|
|
+ deptDialogVisible.value = false;
|
|
|
+ receiveInfo.value = item;
|
|
|
+}
|
|
|
+//资源转移确认
|
|
|
+function confirmTransfer() {
|
|
|
+ api.userApi
|
|
|
+ .transfer({
|
|
|
+ originalUserId: transferInfo.value.userId,
|
|
|
+ transferUserId: receiveInfo.value.id,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ // console.log(res)
|
|
|
+ if (res.code === 200) {
|
|
|
+ ElMessage.success(res.msg);
|
|
|
+ dialogVisible.value = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+const leave=ref(false)
|
|
|
+function resign(item:any) {
|
|
|
+ // console.log(123)
|
|
|
+ operationForm.value=item.operationData.row
|
|
|
+ leave.value=true
|
|
|
+ api.userApi
|
|
|
+ .getTransferInfo({
|
|
|
+ userId: operationForm.value.userId,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ transferInfo.value = res.data;
|
|
|
+ if (res.data.count < 1) {
|
|
|
+ // ElMessage.error("当前用户没有可转移的资源");
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ "离职后,账号将无法访问本企业,请确定是否离职?",
|
|
|
+ `确定要将${operationForm.value.name}设置为离职吗?`,
|
|
|
+ {
|
|
|
+ confirmButtonText: "确认",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ center:true
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ api.userApi
|
|
|
+ .userQuitApply({
|
|
|
+ userId:operationForm.value.userId,
|
|
|
+ })
|
|
|
+ .then((res: any) => {
|
|
|
+ if(res.code==200){
|
|
|
+ ElMessage.success(res.msg)
|
|
|
+ getUserList()
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // console.log(123);
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ ElMessage.warning("用户取消操作");
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage.warning("当前用户有资源未转移,请转移后执行离职操作");
|
|
|
+ // dialogVisible.value = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//批量设置负责人
|
|
|
+//设置负责人弹框
|
|
|
+const checkTableIdList=ref([])
|
|
|
+//表格选择事件
|
|
|
+function selectAllChange(list:any){
|
|
|
+
|
|
|
+ checkTableIdList.value=list
|
|
|
+}
|
|
|
+
|
|
|
+function selectChange(list:any){
|
|
|
+
|
|
|
+ checkTableIdList.value=list
|
|
|
+}
|
|
|
+
|
|
|
+const deptIdList=ref([])
|
|
|
+
|
|
|
+const title=ref('')
|
|
|
+function manySetDeptUser(){
|
|
|
+ title.value='设置负责人'
|
|
|
+
|
|
|
+ deptIdList.value=checkTableIdList.value
|
|
|
+ deptDialogVisible.value=true
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
</script>
|
|
|
<style lang="scss" scoped>、
|
|
|
:deep(.date-picker-custom.el-input__inner){
|