|
@@ -1,47 +1,40 @@
|
|
|
<script setup>
|
|
|
import { ref,reactive } from 'vue'
|
|
|
import {useDepart} from './hooks/use-depart'
|
|
|
-import { departInterence } from '@/api/api.js';
|
|
|
-
|
|
|
-const {defaultDepart,defaultGroup,tablePrams,groupTeamId} = useDepart()
|
|
|
-const {useTreeMove,useTreeEvent} = useDepart()
|
|
|
+import { departInterence } from '@/api/api.js'
|
|
|
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
|
|
+import { Search } from '@element-plus/icons-vue'
|
|
|
+
|
|
|
+const {
|
|
|
+ defaultDepart,defaultGroup,departArr,tableParams,tableData,groupTeamId,
|
|
|
+ getDepartArr,getTableUser,
|
|
|
+ useTreeMove,useTreeEvent,useDepartTable
|
|
|
+ } = useDepart()
|
|
|
const {checkAllowDrag,checkAllowDrop,handleDropOver} = useTreeMove()
|
|
|
const {act_node,clickNode,openNodeDialog,removeNode} = useTreeEvent()
|
|
|
+const {openUserDialog,} = useDepartTable()
|
|
|
+
|
|
|
|
|
|
//重置部门选中
|
|
|
function initDepart(){}
|
|
|
-//部门数据
|
|
|
-let departArr = ref([])
|
|
|
const defaultProp = {label:'DepartmentName',children:'Child'}
|
|
|
-//获取部门结构
|
|
|
-async function getDepartArr(){
|
|
|
- const res = await departInterence.getDepartList()
|
|
|
- if(res.Ret!==200) return
|
|
|
- const list = res.Data.List||[]
|
|
|
- //给节点增加unicodeKey
|
|
|
- departArr.value = list.map(depart=>{
|
|
|
- depart.unicodeKey='depart_'+depart.DepartmentId
|
|
|
- depart.parentKey = 0
|
|
|
- if(depart.Child){
|
|
|
- depart.Child = depart.Child.map(group=>{
|
|
|
- group.unicodeKey = 'group_'+group.DepartmentId
|
|
|
- group.parentKey = depart.unicodeKey
|
|
|
- if(group.Child){
|
|
|
- group.Child = group.Child.map(team=>{
|
|
|
- team.unicodeKey = 'team_'+team.DepartmentId
|
|
|
- team.parentKey = group.unicodeKey
|
|
|
- return team
|
|
|
- })
|
|
|
- }
|
|
|
- return group
|
|
|
- })
|
|
|
- }
|
|
|
- return depart
|
|
|
- })
|
|
|
-}
|
|
|
-getDepartArr()
|
|
|
-
|
|
|
let shareCustomDepartmentId = ref(0)
|
|
|
+function synchronizationMEIKE(){}
|
|
|
+function searchHandle(){}
|
|
|
+const tableColumns = [
|
|
|
+ { label:"姓名", key:"RealName" },{ label:"账号", key:"AdminName" },{ label:"手机号", key:"Mobile"},
|
|
|
+ { label:"角色", key:"RoleName" },{ label:"部门/分组", key:"DepartmentGroup" },{ label:"状态", key:"Enabled"}
|
|
|
+]
|
|
|
+let isShowloadding = ref('')
|
|
|
+function getUserDetail(){}
|
|
|
+
|
|
|
+function handleCurrentChange(){}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+getTableUser()
|
|
|
+getDepartArr()
|
|
|
|
|
|
</script>
|
|
|
|
|
@@ -50,7 +43,7 @@ let shareCustomDepartmentId = ref(0)
|
|
|
<div class="left_cont">
|
|
|
<div class="company_top" @click="initDepart">
|
|
|
<img src="@/assets/img/set_m/home_ico.png" alt="" style="width:30px;height:30px;">
|
|
|
- <span :class="!defaultGroup&&!defaultDepart?'act':''">部门信息</span>
|
|
|
+ <span :class="(!defaultGroup&&!defaultDepart)?'act':''">部门信息</span>
|
|
|
</div>
|
|
|
<el-tree
|
|
|
ref="departTree"
|
|
@@ -69,10 +62,10 @@ let shareCustomDepartmentId = ref(0)
|
|
|
<span class="custom-tree-node" @click="clickNode(node,data)">
|
|
|
<span>{{ node.label }}</span>
|
|
|
<span style="display:flex;align-items:center;" v-show="act_node===data.unicodeKey">
|
|
|
- <img src="~@/assets/img/data_m/move_ico.png" alt="" @click.stop>
|
|
|
- <img src="~@/assets/img/set_m/add.png" alt="" @click.stop="openNodeDialog('add',data,node)" v-if="data.IsDepartment">
|
|
|
- <img src="~@/assets/img/set_m/add.png" alt="" @click.stop="openNodeDialog('add',data,node)" v-if="data.IsGroup">
|
|
|
- <img src="~@/assets/img/set_m/edit.png" alt="" @click.stop="openNodeDialog('edit',data,node)">
|
|
|
+ <img src="~@/assets/img/data_m/move_ico.png" alt="" class="icon-img" @click.stop>
|
|
|
+ <img src="~@/assets/img/set_m/add.png" alt="" class="icon-img" @click.stop="openNodeDialog('add',data,node)" v-if="data.IsDepartment">
|
|
|
+ <img src="~@/assets/img/set_m/add.png" alt="" class="icon-img" @click.stop="openNodeDialog('add',data,node)" v-if="data.IsGroup">
|
|
|
+ <img src="~@/assets/img/set_m/edit.png" alt="" class="icon-img" @click.stop="openNodeDialog('edit',data,node)">
|
|
|
<el-popconfirm
|
|
|
@onConfirm="removeNode(node,data)"
|
|
|
confirmButtonText='删除'
|
|
@@ -98,7 +91,74 @@ let shareCustomDepartmentId = ref(0)
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="right_cont">
|
|
|
-
|
|
|
+ <div class="right_cont_top">
|
|
|
+ <div>
|
|
|
+ <el-button type="primary" @click="openUserDialog('add',{})">添加用户</el-button>
|
|
|
+ <el-button type="primary" @click="synchronizationMEIKE" style="margin-left: 26px;">同步每刻</el-button>
|
|
|
+ </div>
|
|
|
+ <el-input
|
|
|
+ placeholder="姓名/账号/手机号搜索"
|
|
|
+ v-model="tableParams.searchTxt"
|
|
|
+ :prefix-icon="Search"
|
|
|
+ @input="searchHandle"
|
|
|
+ style="max-width:359px">
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ <div class="right_cont_bot">
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ @row-click="getUserDetail"
|
|
|
+ v-loading="isShowloadding"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ highlight-current-row border
|
|
|
+ >
|
|
|
+ <el-table-column v-for="column in tableColumns" :key="column.key"
|
|
|
+ :prop="column.key"
|
|
|
+ :label="column.label"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template #default="{row}">
|
|
|
+ <span v-if="column.key==='Enabled'"
|
|
|
+ :style="{color:row.Enabled===0?'#FF0000':null}"
|
|
|
+ >{{row.Enabled===0?'禁用':'启用'}}</span>
|
|
|
+ <span v-else-if="column.key==='RealName'">
|
|
|
+ <el-tag
|
|
|
+ v-if="row.LabelVal"
|
|
|
+ :style="row.LabelVal==1||row.LabelVal==2?'color:#fff;background:#409EFF':'color:#409EFF;background:#ECF5FF'"
|
|
|
+ style="position:absolute;left:10px"
|
|
|
+ >{{
|
|
|
+ row.LabelVal==1?'超管'
|
|
|
+ :row.LabelVal==2?'管理员'
|
|
|
+ :row.LabelVal==3?'部门经理'
|
|
|
+ :row.LabelVal==4?'组长':'主管'
|
|
|
+ }}</el-tag>
|
|
|
+ <span>{{row.RealName}}</span>
|
|
|
+ </span>
|
|
|
+ <span v-else>{{row[column.key]}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" width="260">
|
|
|
+ <template #default="{row}">
|
|
|
+ <div style="color:#4099ef; font-size:24px;display: flex;gap:0 10px;">
|
|
|
+ <span class="editsty" @click.stop="editUser(row)">编辑</span>
|
|
|
+ <span class="editsty" @click.stop="resetPassWord(row)">重置密码</span>
|
|
|
+ <span class="editsty" @click.stop="moveDepart(row)">移动分组</span>
|
|
|
+ <span
|
|
|
+ class="editsty"
|
|
|
+ @click.stop="handleChangeStatus(row)"
|
|
|
+ >{{row.Enabled===0?'启用':'禁用'}}</span>
|
|
|
+ <!-- <span class="deletesty" @click.stop="delUser(row)">删除</span> -->
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-config-provider :locale="zhCn">
|
|
|
+ <el-pagination background layout="total,prev,pager,next,jumper" :current-page="tableParams.pageNo"
|
|
|
+ :page-size="tableParams.pageSize" :total="tableParams.total"
|
|
|
+ @current-change="handleCurrentChange" style="margin-top: 60px; justify-content: flex-end;">
|
|
|
+ </el-pagination>
|
|
|
+ </el-config-provider>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -247,8 +307,11 @@ let shareCustomDepartmentId = ref(0)
|
|
|
.right_cont {
|
|
|
width: 82%;
|
|
|
background: #F5F7F9;
|
|
|
+ height: calc(100vh - 120px);
|
|
|
// box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
|
|
|
border-radius: 4px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
|
|
|
.right_cont_top {
|
|
|
display: flex;
|
|
@@ -262,7 +325,7 @@ let shareCustomDepartmentId = ref(0)
|
|
|
}
|
|
|
|
|
|
.right_cont_bot {
|
|
|
- height: calc(100vh - 222px);
|
|
|
+ flex: 1;
|
|
|
overflow-y: auto;
|
|
|
padding: 20px 30px;
|
|
|
background: #fff;
|