|
@@ -8,16 +8,17 @@
|
|
|
<div class="">新增</div>
|
|
<div class="">新增</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-tree ref="treeRef2" :data="dataSource" node-key="id" default-expand-all :expand-on-click-node="false"
|
|
|
|
|
|
|
+ <el-tree ref="treeRef2" :data="dataSource" node-key="deptId" default-expand-all :expand-on-click-node="false"
|
|
|
:props="defaultProps" @node-click="handleNodeClick">
|
|
:props="defaultProps" @node-click="handleNodeClick">
|
|
|
<template #default="{ node, data }">
|
|
<template #default="{ node, data }">
|
|
|
<div class="custom-tree-node flex-center-between flex_1">
|
|
<div class="custom-tree-node flex-center-between flex_1">
|
|
|
<div class="">{{ node.label }}</div>
|
|
<div class="">{{ node.label }}</div>
|
|
|
- <div class="flex-align-center custom-tree-node-right">
|
|
|
|
|
- <img src="/src/assets/imgs/my/jia2@2x.png" alt="">
|
|
|
|
|
|
|
+ <div @click.stop="" v-if="data.isBtn" class="flex-align-center custom-tree-node-right">
|
|
|
|
|
+ <el-input v-model="input" placeholder="Please input" />
|
|
|
|
|
+ <img @click.stop="changeNode(data,index,0)" src="/src/assets/imgs/my/jia2@2x.png" alt="">
|
|
|
|
|
|
|
|
- <img src="/src/assets/imgs/my/bianji@2x.png" alt="">
|
|
|
|
|
- <img src="/src/assets/imgs/my/shanchu@2x.png" alt="">
|
|
|
|
|
|
|
+ <img @click.stop="changeNode(data,index,1)" src="/src/assets/imgs/my/bianji@2x.png" alt="">
|
|
|
|
|
+ <img @click.stop="changeNode(data,index,2)" src="/src/assets/imgs/my/shanchu@2x.png" alt="">
|
|
|
<!-- <el-button type="primary" link @click="append(data)">
|
|
<!-- <el-button type="primary" link @click="append(data)">
|
|
|
Append
|
|
Append
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -30,22 +31,29 @@
|
|
|
</el-tree>
|
|
</el-tree>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="businessManagement-right">
|
|
<div class="businessManagement-right">
|
|
|
- <div class="">我的员工</div>
|
|
|
|
|
- <div class="">
|
|
|
|
|
- <div class=""></div>
|
|
|
|
|
|
|
+ <div class="title gap10">
|
|
|
|
|
+ <div class="line_vertical"></div>
|
|
|
|
|
+ <div class="">我的员工</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="flex-center-around">
|
|
|
|
|
+ <div class="flex-align-center">
|
|
|
|
|
+ <img src="" alt="">
|
|
|
|
|
+ <input type="text" placeholder="请输入要搜索的员工手机号">
|
|
|
|
|
+ </div>
|
|
|
<div class="flex-align-center">
|
|
<div class="flex-align-center">
|
|
|
- <div class="">
|
|
|
|
|
- <img src="" alt="">
|
|
|
|
|
|
|
+ <div class="flex-align-center" @click="">
|
|
|
|
|
+ <img src="/src/assets/imgs/my/jia1@2x.png" alt="">
|
|
|
|
|
+ <div class="">添加</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<ul class="list">
|
|
<ul class="list">
|
|
|
- <li>
|
|
|
|
|
|
|
+ <li v-for="(item,index) in list" :key="index">
|
|
|
<div class="list_left">
|
|
<div class="list_left">
|
|
|
- <el-avatar :size="52" :src="''" />
|
|
|
|
|
|
|
+ <el-avatar :size="52" :src="item.userAvatar" />
|
|
|
<div class="list_left_con">
|
|
<div class="list_left_con">
|
|
|
- <div class="">苗子辰</div>
|
|
|
|
|
- <div class="">米币:1000</div>
|
|
|
|
|
|
|
+ <div class="">{{ item.nickName }}</div>
|
|
|
|
|
+ <div class="">米币:{{ item.points || 0 }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="list_right">
|
|
<div class="list_right">
|
|
@@ -60,13 +68,24 @@
|
|
|
</div>
|
|
</div>
|
|
|
</li>
|
|
</li>
|
|
|
</ul>
|
|
</ul>
|
|
|
|
|
+ <template v-if="list.length">
|
|
|
|
|
+ <Pagination :total="form.total" :page-size="form.pageSize" :current-page="form.pageNum"
|
|
|
|
|
+ @page-change="handlePageChange" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <el-empty v-else :description="$t('common.empty')" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
|
|
+
|
|
|
import { ref, onMounted } from 'vue';
|
|
import { ref, onMounted } from 'vue';
|
|
|
-import { deptList } from '@/api/my';
|
|
|
|
|
|
|
+
|
|
|
|
|
+import { deptList, employeeList,applyDept ,deleteDept} from '@/api/my';
|
|
|
|
|
+
|
|
|
|
|
+import Pagination from '@/components/Pagination.vue'
|
|
|
|
|
+
|
|
|
const list = ref([]);
|
|
const list = ref([]);
|
|
|
|
|
+
|
|
|
const dataSource = ref([])
|
|
const dataSource = ref([])
|
|
|
|
|
|
|
|
const defaultProps = {
|
|
const defaultProps = {
|
|
@@ -74,14 +93,64 @@ const defaultProps = {
|
|
|
label: 'deptName',
|
|
label: 'deptName',
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const form = ref({
|
|
|
|
|
+ total: 0,
|
|
|
|
|
+ pageSize: 10,
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+})
|
|
|
|
|
+const handlePageChange = (pageNum) => {
|
|
|
|
|
+ form.value.pageNum = pageNum;
|
|
|
|
|
+ getemployeeList();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
|
let res = await deptList();
|
|
let res = await deptList();
|
|
|
- console.log(res.rows);
|
|
|
|
|
|
|
+ addFieldsToAllElements(res.rows);
|
|
|
dataSource.value = res.rows;
|
|
dataSource.value = res.rows;
|
|
|
|
|
+ getemployeeList();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const addFieldsToAllElements = (arr)=> {
|
|
|
|
|
+
|
|
|
|
|
+ // 遍历当前层级的每一个元素
|
|
|
|
|
+ arr.map(element => {
|
|
|
|
|
+ // 给当前元素添加字段
|
|
|
|
|
+ element.isBtn = false;
|
|
|
|
|
+ element.isIpt = false;
|
|
|
|
|
+
|
|
|
|
|
+ // 如果当前元素有children,并且children是数组,就递归处理下一层
|
|
|
|
|
+ if (element.children && Array.isArray(element.children)) {
|
|
|
|
|
+ addFieldsToAllElements(element.children);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const getemployeeList = async () => {
|
|
|
|
|
+ let res = await employeeList();
|
|
|
|
|
+ console.log(res.rows);
|
|
|
|
|
+ list.value = res.rows;
|
|
|
|
|
+ form.value.total = res.total;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const changeNode = async (item,index,type) => {
|
|
|
|
|
+ console.log(item,index,type)
|
|
|
|
|
+ if (type == 0) {
|
|
|
|
|
+ let res = await applyDept({
|
|
|
|
|
+ deptName:'测试部门1730',
|
|
|
|
|
+ parentId:item.deptId
|
|
|
|
|
+ })
|
|
|
|
|
+ getList()
|
|
|
|
|
+ } else if (type == 1) {
|
|
|
|
|
+
|
|
|
|
|
+ } else if (type == 2) {
|
|
|
|
|
+ let res = await deleteDept(item.deptId);
|
|
|
|
|
+ getList()
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const handleNodeClick = (data) => {
|
|
const handleNodeClick = (data) => {
|
|
|
- console.log(data)
|
|
|
|
|
|
|
+ // console.log(data.isBtn = true)
|
|
|
|
|
+ data.isBtn = !data.isBtn
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
@@ -204,15 +273,15 @@ onMounted(() => {
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
color: #2D71FF;
|
|
color: #2D71FF;
|
|
|
|
|
+
|
|
|
img {
|
|
img {
|
|
|
width: 14px;
|
|
width: 14px;
|
|
|
height: 14px;
|
|
height: 14px;
|
|
|
margin-right: 4px;
|
|
margin-right: 4px;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
&:last-child {
|
|
&:last-child {
|
|
|
- div {
|
|
|
|
|
- color: #E43434;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ color: #E43434;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|