Commit dfbf3eac authored by 张俊's avatar 张俊
parents aeb7ef92 ff29ae2e
......@@ -1474,14 +1474,14 @@ border-radius:8px;
}
.flex_left {
height: calc(100% - 20px);
height: calc(100% - 16px);
width: 320px;
margin-right: 10px;
overflow: hidden;
}
.flex_right {
height: calc(100% - 20px);
height: calc(100% - 16px);
flex: 1;
overflow: hidden;
......
......@@ -401,7 +401,7 @@ const serviceTest = () => {
.post(`/apaas/service/v5/service/test`,params)
.then((res) => {
if (res.data.code !== 200) {
$message.error(res.data.msg)
$message.error(res.data.data)
} else {
detailData.test_state = true
detailData.backJSONdata = res.data.data.response_str
......
......@@ -278,7 +278,7 @@ const getTypeList = () => {
getTableRows()
}
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
}).catch((err) => {
console.log(err)
......@@ -352,7 +352,7 @@ const getTableRows = () => {
state.tableRows[state.tableRows.length - 1].canMoveDown = false
}
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 获取表格数据
......@@ -365,7 +365,7 @@ const changeUseRow = (row) => {
ElMessage.success(res.data.msg)
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 启用禁用
......@@ -411,7 +411,7 @@ const edit_row = (row) => {
state: state.actionRow.state
}
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
}).catch((err) => {
console.log(err)
......@@ -445,7 +445,7 @@ const addConfirm = () => {
state.addDialog = false
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}else { // 编辑
......@@ -461,7 +461,7 @@ const addConfirm = () => {
state.addDialog = false
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}
......@@ -485,7 +485,7 @@ const deleteData = () => {
state.dialogDelete = false
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 确定删除
......@@ -520,7 +520,7 @@ const moveRow = (row,type) => {
ElMessage.success(res.data.msg)
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
.catch((err) => {
......
......@@ -607,12 +607,12 @@ import CryptoJS from "crypto-js";
background-color: var(--el-tree-node-hover-bg-color);
}
.main_container {
padding: 15px;
height: 100%;
}
.table_container {
height: calc(100% - 30px);
overflow: auto;
padding: 0 16px;
}
.pagination_box {
......
......@@ -177,7 +177,7 @@ const getMenuTree = (type) => {
})
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 获取菜单树
......@@ -307,7 +307,7 @@ const fileAction = (val,data,parent,disabled=false) => {
let type = parent ? 1 : 2 // 1--有父级 2--无父级
getMenuTree(type)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}else if (val == 4) { // 菜单上移
......@@ -378,7 +378,7 @@ const changeSort = (data,nextObj) => {
ElMessage.success(res.data.msg)
getMenuTree()
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 菜单上下移
......@@ -406,7 +406,7 @@ const saveMenu = (el,type) => {
ElMessage.success(res.data.msg)
getMenuTree()
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}else { // 新增
......@@ -429,7 +429,7 @@ const saveMenu = (el,type) => {
state.selectData = null
getMenuTree()
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}
......
......@@ -151,7 +151,7 @@ const getGroupList = () => {
if (res.data.code == 200) {
state.groupList = res.data.data || []
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
}).catch((err) => {
console.log(err)
......
......@@ -281,7 +281,7 @@ import { downloadFileFormatNew } from '@/services/helper'
router.push({
path: "/system/organization/org-detail",
query: {
id: selectTreeData.value.organization_id
id: selectOrgNode.value.organization_id
}
})
......@@ -389,7 +389,9 @@ import { downloadFileFormatNew } from '@/services/helper'
const tableTotal = ref(0);
const orgTree = ref(null);
const selectTreeData = ref(null)
const actionTreeData = ref(null)
const selectTreeDataType = ref(2);
const selectOrgNode = ref(null);
const dialogDelNode = ref(false)
const router = useRouter();
const filter = reactive({
......@@ -437,7 +439,7 @@ import { downloadFileFormatNew } from '@/services/helper'
router.push({
path: "/system/organization/org-user",
query: {
orgId: selectTreeData.value.organization_id
orgId: selectOrgNode.value.organization_id
}
})
}else {
......@@ -448,11 +450,6 @@ import { downloadFileFormatNew } from '@/services/helper'
}
}
const treeSelected = ref(null);
const handleNodeClick = (data) => {
treeSelected.value = data.dept
console.log(treeSelected.value)
}
const changeSize = (size) => {
......@@ -507,7 +504,7 @@ import { downloadFileFormatNew } from '@/services/helper'
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(res.data.data.id);
}else {
$message.error(res.data.data)
}
......@@ -518,11 +515,11 @@ import { downloadFileFormatNew } from '@/services/helper'
name: data.name,
data_type: 0
}
$axios.put(`/apaas/system/v5/org/${selectTreeData.value.id}`, params)
$axios.put(`/apaas/system/v5/org/${actionTreeData.value.id}`, params)
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(actionTreeData.value.id);
}else {
$message.error(res.data.data)
}
......@@ -557,7 +554,7 @@ import { downloadFileFormatNew } from '@/services/helper'
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(res.data.data.id);
}else {
$message.error(res.data.data)
}
......@@ -572,11 +569,11 @@ import { downloadFileFormatNew } from '@/services/helper'
attachment: data.attachment && data.attachment.length > 0 ? data.attachment.map(item => item.url).join(',') : '',
data_type: 1
}
$axios.put(`/apaas/system/v5/org/${selectTreeData.value.id}`, params)
$axios.put(`/apaas/system/v5/org/${actionTreeData.value.id}`, params)
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(actionTreeData.value.id);
}else {
$message.error(res.data.data)
}
......@@ -592,11 +589,11 @@ import { downloadFileFormatNew } from '@/services/helper'
//删除目录/组织
const confirmDelNode = () => {
$axios.delete(`/apaas/system/v5/org/${selectTreeData.value.id}`)
$axios.delete(`/apaas/system/v5/org/${actionTreeData.value.id}`)
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(actionTreeData.value.id === selectTreeData.value.id ? null : selectTreeData.value.id);
}else {
$message.error(res.data.data)
}
......@@ -609,7 +606,7 @@ import { downloadFileFormatNew } from '@/services/helper'
.then((res) => {
if (res.data.code == 200) {
$message.success(res.data.msg)
orgTree.value.getOrgTree();
orgTree.value.getOrgTree(selectTreeData.value.id);
}else {
$message.error(res.data.data)
}
......@@ -662,10 +659,15 @@ import { downloadFileFormatNew } from '@/services/helper'
}
const treeSelect = (data) => {
selectTreeData.value = data.value;
if(data.value.data_type === 1 || data.value.data_type === 2) {
selectTreeDataType.value = data.value.data_type;
if(data.type === 'action') {
actionTreeData.value = data.data.value;
}else {
selectTreeData.value = data.data.value;
}
if(data.type === 'click' && (data.data.value.data_type === 1 || data.data.value.data_type === 2)) {
selectTreeDataType.value = data.data.value.data_type;
selectOrgNode.value = data.data.value;
getTableRows();
}
}
......@@ -939,13 +941,28 @@ import { downloadFileFormatNew } from '@/services/helper'
font-size: 14px;
}
.main_container {
padding: 15px;
flex: 1;
overflow: hidden;
}
.filter-group .left-filter {
flex: 1;
display: flex;
justify-content: start;
flex-wrap: wrap;
}
.filter-group .right-action {
width: 144px;
padding-bottom: 16px;
}
.filter-group .right-action .el-button {
width: 64px;
}
.table_container {
height: calc(100% - 20px);
overflow: auto;
padding: 0 16px;
}
.bg-pagination {
......
......@@ -8,16 +8,17 @@
node-key="id"
:highlight-current="true"
:filter-node-method="filterNode"
:expand-on-click-node="false"
:default-expand-all="true">
<template #default="{ node, data }">
<div class="custom_tree_node">
<span
class="label-text "
:class="{'is_active': selectData && selectData.id === data.id}"
:title="data.name"
>{{ data.name }}
</span>
<span v-if="data.data_type === 2" class="tree-action-box first_node" @click.stop="showAction($event, data,node)">
<span v-if="data.data_type === 2" class="tree-action-box first_node" :class="{'first_node_focus': selectData && selectData.id === data.id || !selectData}" @click.stop="showAction($event, data,node)">
<bg-icon
class="tree-more"
icon="#bg-ic-s-more"
......@@ -48,14 +49,14 @@
<div v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'org',action: 'create',target: 'child'})">新建下级组织</div>
<div v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'edit',target: 'local'})">编辑目录</div>
<div v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'delete',target: 'local'})">删除</div>
<div v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'mvup',target: 'local'})">上移</div>
<div v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'mvdown',target: 'local'})">下移</div>
<div :class="{'disable': mvDataParent.indexOf(selectData) === 0 }" v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'mvup',target: 'local'})">上移</div>
<div :class="{'disable': mvDataParent.indexOf(selectData) === (mvDataParent.length-1) }" v-if="selectData && selectData.data_type === 0" class="action" @click="treeAction({type: 'directory',action: 'mvdown',target: 'local'})">下移</div>
<!-- 组织 -->
<div v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'create',target: 'local'})">新建本级组织</div>
<div v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'edit',target: 'local'})">编辑组织</div>
<div v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'delete',target: 'local'})">删除</div>
<div v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'mvup',target: 'local'})">上移</div>
<div v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'mvdown',target: 'local'})">下移</div>
<div :class="{'disable': mvDataParent.indexOf(selectData) === 0 }" v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'mvup',target: 'local'})">上移</div>
<div :class="{'disable': mvDataParent.indexOf(selectData) === (mvDataParent.length-1) }" v-if="selectData && selectData.data_type === 1" class="action" @click="treeAction({type: 'org',action: 'mvdown',target: 'local'})">下移</div>
</div>
</Teleport>
</template>
......@@ -83,15 +84,21 @@ import { useRouter } from 'vue-router';
value: 'organization_id'
}
const getOrgTree = () => {
const getOrgTree = (data) => {
$axios.get(`/apaas/system/v5/org/tree`)
.then((res) => {
if (res.data.code == 200) {
orgData.value = res.data.data || [];
if(data) {
nextTick(() =>{
setCurrentNode(data)
})
}else {
nextTick(() =>{
treeRef.value.setCurrentNode(orgData.value[0],true)
emit('select',ref(orgData.value[0]));
setCurrentNode(orgData.value[0].id)
})
}
}else {
$message.error(res.data.data)
......@@ -104,6 +111,21 @@ import { useRouter } from 'vue-router';
treeRef.value.filter(val)
}
const setCurrentNode = (data) => {
if(data) {
treeRef.value.setCurrentKey(data,true);
const curNode = treeRef.value.getCurrentNode();
selectData.value = curNode
emit('select',{data:ref(curNode),type: 'click'});
}else {
treeRef.value.setCurrentKey(orgData.value[0].id,true);
const curNode = treeRef.value.getCurrentNode();
selectData.value = curNode
emit('select',{data:ref(curNode),type: 'click'});
}
}
const filterNode = (value, data) => {
if (!value) return true
return data.name.includes(value)
......@@ -136,13 +158,13 @@ import { useRouter } from 'vue-router';
const emit = defineEmits(['action','select'])
const handleNodeClick = (node,nodeAttr,treeNode,event) => {
selectData.value = node;
emit('select',selectData);
emit('select',{data: selectData,type: 'click'});
//只读则无操作事件
closeAction();
}
const treeAction = (params) => {
emit('select',selectData);
emit('select',{data:selectData,type: 'action'});
let data = null;
if(params.action === 'create') {
if(params.target === 'local') {
......@@ -154,7 +176,7 @@ import { useRouter } from 'vue-router';
}
}else if(params.action === 'mvup') {
if(mvDataParent.value.indexOf(selectData.value) === 0) {
$message.error('已经是第一个元素,不可上移')
// $message.error('已经是第一个元素,不可上移')
return 0;
}else {
let brother = mvDataParent.value[mvDataParent.value.indexOf(selectData.value) - 1];
......@@ -163,7 +185,7 @@ import { useRouter } from 'vue-router';
}else if(params.action === 'mvdown') {
if(mvDataParent.value.indexOf(selectData.value) === (mvDataParent.value.length-1)) {
$message.error('已经是最后一个元素,不可下移')
// $message.error('已经是最后一个元素,不可下移')
return 0;
}else {
let brother = mvDataParent.value[mvDataParent.value.indexOf(selectData.value) + 1];
......@@ -190,7 +212,7 @@ import { useRouter } from 'vue-router';
})
defineExpose({getOrgTree, filterTree })
defineExpose({getOrgTree, filterTree, setCurrentNode })
</script>
......@@ -220,8 +242,21 @@ import { useRouter } from 'vue-router';
.file-tree :deep() .el-tree-node__content:hover .tree-action-box {
display: inline-block;
}
.file-tree :deep() .el-tree-node__content .first_node {
display: inline-block;
background-color: #fff;
box-shadow: none;
}
.file-tree :deep() .el-tree-node__content .first_node_focus {
background-color: #f2f3f7;
box-shadow: -3px 0px 8px -3px
rgba(0, 7, 101, 0.15);
}
.file-tree :deep() .el-tree-node__content:hover .first_node {
background-color: #f2f3f7;
box-shadow: -3px 0px 8px -3px
rgba(0, 7, 101, 0.15);
}
.file-tree :deep() .el-tree-node > .el-tree-node__children {
overflow: visible;
......@@ -302,4 +337,13 @@ import { useRouter } from 'vue-router';
height: 36px!important;
}
.tree-action .disable{
cursor: not-allowed;
color: #616f94;
}
.tree-action .disable:hover{
background-color: #fff;
color: #616f94;
}
</style>
\ No newline at end of file
......@@ -60,7 +60,7 @@
</el-form>
</div>
<div class="bottom_action">
<el-button>
<el-button @click="goList">
取消
</el-button>
<el-button type="primary" @click="saveRole">
......@@ -100,9 +100,7 @@ const roleState = reactive({
role_name: [
{ required: true, message: "请输入角色名称", trigger: "blur" },
],
role_desc: [
{ required: true, message: "请输入描述", trigger: "blur" },
],
data_purview: [
{ required: true, message: "请选择数据权限", trigger: "change" },
],
......@@ -127,7 +125,7 @@ const getMenuTree = () => {
if (res.data.code == 200) {
roleState.permissionData = res.data.data || []
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 获取菜单数据
......@@ -157,7 +155,7 @@ const getRoleDetail = () => {
}
console.log(roleState.formData.permission_arr)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 获取角色详情
......@@ -180,7 +178,7 @@ const saveRole = () => {
ElMessage.success(res.data.msg)
router.push('/system/role')
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}else { // 编辑
......@@ -192,13 +190,16 @@ const saveRole = () => {
ElMessage.success(res.data.msg)
router.push('/system/role')
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}
}
})
} // 新增或编辑角色的保存
const goList = () => {
router.push("/system/role")
}
onBeforeMount(() => {
getMenuTree()
......
......@@ -306,7 +306,7 @@ const getRoleRows = () => {
state.tableRows = res.data.data || []
state.tableTotal = res.data.total
}else {
ElMessage.error(re.data.msg)
ElMessage.error(re.data.data)
}
})
} // 获取角色列表
......@@ -319,7 +319,7 @@ const getOrgList = () => {
console.log(res.data.data)
userState.orgList = res.data.data || []
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 获取组织列表
......@@ -346,7 +346,7 @@ const changeUseRow = (row) => {
ElMessage.success(res.data.msg)
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
} // 更改启用禁用状态
......@@ -408,7 +408,7 @@ const getUserList = () => {
})
})
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}
......@@ -465,7 +465,7 @@ const distribute = () => {
userState.distributeDialog = false
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
......@@ -506,7 +506,7 @@ const deleteData = () => {
state.delDialog = false
changePage(1)
}else {
ElMessage.error(res.data.msg)
ElMessage.error(res.data.data)
}
})
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment