[update] 修改内部工作组,企标级别映射,友情链接管理bug

This commit is contained in:
lideqin
2023-09-18 15:53:17 +08:00
parent e9c563383f
commit bae308459b
8 changed files with 170 additions and 142 deletions
@@ -1,93 +1,69 @@
<template>
<a-card :bordered="false" class="page-left-right-layout">
<div class="page-left-box">
<a-input-search v-model="treeInput" :placeholder="$t('system.internalWorkGroup.treeSearchPlaceholder')"
<a-input-search v-model="treeInput"
class="tree-search"
:placeholder="$t('system.internalWorkGroup.treeSearchPlaceholder')"
@search="handleTreeSearch" />
<a-tree
:show-line="true"
:show-icon="true"
:tree-data="treeData"
:selectedKeys="currentTreeNode"
:replaceFields="{children: 'subset', title: 'name', key: 'id'}"
:default-expand-all="defaultExpandAll"
@select="treeSelect">
<!-- <template #iconCustom="{title}">-->
<!-- <div class="tree-node">-->
<!-- <img src="@/assets/image/common/iconTreeFolder.png" class="tree-node-icon" alt="" />-->
<!-- <a-tooltip>-->
<!-- <template #title>-->
<!-- {{ title }}-->
<!-- </template>-->
<!-- <span class="tree-node-title">{{ title }}</span>-->
<!-- </a-tooltip>-->
<!-- </div>-->
<!-- </template>-->
<div class="page-tree-box page-tree-box-has-search">
<a-spin :spinning="treeLoading">
<a-tree
:show-line="true"
:show-icon="true"
:tree-data="treeData"
:selectedKeys="currentTreeNode"
:replaceFields="{children: 'subset', title: 'name', key: 'id'}"
:default-expand-all="defaultExpandAll"
@select="treeSelect">
<!-- 没有删除 -->
<template #customNoDelete="{name, id}">
<div class="tree-operate-node" @mouseenter="handleTreeMouseover(id)" @mouseleave="handleTreeMouseout(id)">
<!--<a-tooltip>-->
<!-- <template #title>-->
<!-- {{ name }}-->
<!-- </template>-->
<!-- <span v-if="name.indexOf(treeInput) > -1" class="tree-node-custom-title">-->
<!-- {{ name.substr(0, name.indexOf(treeInput)) }}-->
<!-- <span style="color: #f50">{{ treeInput }}</span>-->
<!-- {{ name.substr(name.indexOf(treeInput) + treeInput.length) }}-->
<!-- </span>-->
<!-- <span v-else class="tree-node-custom-title">{{ name }}</span>-->
<!--</a-tooltip>-->
<a-tooltip>
<template #title>
{{ name }}
</template>
<span class="tree-node-custom-title">{{ name }}</span>
</a-tooltip>
<template v-if="id === mouseInNodeKey">
<!-- 新增-->
<a-button icon="plus" class="tree-operate-node-btn" @click="handleTreeAdd" v-has="'sys:innerWorkingGroup:tree:add'"></a-button>
<!-- 编辑-->
<a-button class="tree-operate-node-btn" @click="handleTreeEdit" v-has="'sys:innerWorkingGroup:tree:edit'">
<i class="iconfont icon-bianji" style="color: #D52C26"></i>
</a-button>
</template>
</div>
</template>
<a-icon type="folder" slot="folder" class="tree-icon" />
<a-icon type="file" slot="file" class="tree-icon" />
<template #custom="{name, id}">
<div class="tree-operate-node" @mouseenter="handleTreeMouseover(id)" @mouseleave="handleTreeMouseout(id)">
<!--<a-tooltip>-->
<!-- <template #title>-->
<!-- {{ name }}-->
<!-- </template>-->
<!-- <span v-if="name.indexOf(treeInput) > -1" class="tree-node-custom-title">-->
<!-- {{ name.substr(0, name.indexOf(treeInput)) }}-->
<!-- <span style="color: #f50">{{ treeInput }}</span>-->
<!-- {{ name.substr(name.indexOf(treeInput) + treeInput.length) }}-->
<!-- </span>-->
<!-- <span v-else class="tree-node-custom-title">{{ name }}</span>-->
<!--</a-tooltip>-->
<a-tooltip>
<template #title>
{{ name }}
</template>
<span class="tree-node-custom-title">{{ name }}</span>
</a-tooltip>
<template v-if="id === mouseInNodeKey">
<!-- 新增-->
<a-button icon="plus" class="tree-operate-node-btn" @click="handleTreeAdd" v-has="'sys:innerWorkingGroup:tree:add'"></a-button>
<!-- 编辑-->
<a-button class="tree-operate-node-btn" @click="handleTreeEdit(name)" v-has="'sys:innerWorkingGroup:tree:edit'">
<i class="iconfont icon-bianji" style="color: #D52C26"></i>
</a-button>
<!-- 删除-->
<a-button class="tree-operate-node-btn" @click="handleTreeDelete" v-has="'sys:innerWorkingGroup:tree:delete'">
<i class="iconfont icon-shanchu_" style="color: #D52C26"></i>
</a-button>
<!-- 没有删除 -->
<template #customNoDelete="{name, id}">
<div class="tree-operate-node" @mouseenter="handleTreeMouseover(id)" @mouseleave="handleTreeMouseout(id)">
<a-tooltip>
<template #title>
{{ name }}
</template>
<span class="tree-node-custom-title">{{ name }}</span>
</a-tooltip>
<div class="tree-operate-node-btn-box" :class="{'tree-operate-node-btn-box-hide': id !== mouseInNodeKey}">
<!-- 新增-->
<a-button icon="plus" class="tree-operate-node-btn" @click="handleTreeAdd" v-has="'sys:innerWorkingGroup:tree:add'"></a-button>
<!-- 编辑-->
<a-button class="tree-operate-node-btn" @click="handleTreeEdit(name)" v-has="'sys:innerWorkingGroup:tree:edit'">
<i class="iconfont icon-bianji" style="color: #D52C26"></i>
</a-button>
</div>
</div>
</template>
</div>
</template>
</a-tree>
<template #custom="{name, id}">
<div class="tree-operate-node" @mouseenter="handleTreeMouseover(id)" @mouseleave="handleTreeMouseout(id)">
<a-tooltip>
<template #title>
{{ name }}
</template>
<span class="tree-node-custom-title">{{ name }}</span>
</a-tooltip>
<div class="tree-operate-node-btn-box" :class="{'tree-operate-node-btn-box-hide': id !== mouseInNodeKey}">
<!-- 新增-->
<a-button icon="plus" class="tree-operate-node-btn" @click="handleTreeAdd" v-has="'sys:innerWorkingGroup:tree:add'"></a-button>
<!-- 编辑-->
<a-button class="tree-operate-node-btn" @click="handleTreeEdit(name)" v-has="'sys:innerWorkingGroup:tree:edit'">
<i class="iconfont icon-bianji" style="color: #D52C26"></i>
</a-button>
<!-- 删除-->
<a-button class="tree-operate-node-btn" @click="handleTreeDelete" v-has="'sys:innerWorkingGroup:tree:delete'">
<i class="iconfont icon-shanchu_" style="color: #D52C26"></i>
</a-button>
</div>
</div>
</template>
</a-tree>
</a-spin>
</div>
</div>
<div class="page-right-box">
<div class="table-page-search-wrapper">
@@ -191,6 +167,7 @@ export default {
return {
treeInput: null, // 树查询绑定值
treeData: [],
treeLoading: false,
defaultExpandAll: false, // 左侧树默认展开所有
currentTreeNode: null, // 当前选中的树节点
mouseInNodeKey: null, // 鼠标悬浮的节点key值
@@ -254,11 +231,10 @@ export default {
methods: {
// 获取左侧树数据
initTreeData (params) {
this.treeLoading = true
getWorkGroupTreeList(params).then(res => {
if (res.success) {
this.treeData = this.dealTreeData(res.result)
// this.treeData = res.result
this.treeData[0].scopedSlots = { title: 'customNoDelete' }
} else {
this.treeData = []
}
@@ -266,14 +242,19 @@ export default {
this.$nextTick(() => {
this.defaultExpandAll = true
})
this.treeLoading = false
})
},
// 处理左侧树数据结构
dealTreeData (treeData) {
return treeData.map(item => {
item.scopedSlots = { title: 'custom' }
if (item.subset && item.subset.length > 0) {
item.scopedSlots = { icon: 'folder', title: 'custom' }
item.subset = this.dealTreeData(item.subset)
} else if (item.level === 1) {
item.scopedSlots = { icon: 'folder', title: 'customNoDelete' }
} else {
item.scopedSlots = { icon: 'file', title: 'custom' }
}
return item
})
@@ -365,38 +346,10 @@ export default {
<style scoped lang="less">
.tree-icon {
line-height: 24px;
color: #1D2129;
}
.tree-operate-node {
display: flex;
width: 100%;
align-items: center;
&-btn {
width: 20px;
height: 20px;
background: rgba(213, 44, 38, 0.08);
border-radius: 2px 2px 2px 2px;
border: none;
display: flex;
align-items: center;
justify-content: center;
margin-left: 4px;
padding: 0;
/deep/ .anticon {
margin-top: 2px;
color: #D52C26;
}
img {
width: 13px;
height: 13px;
}
}
/deep/ .ant-tree li span.ant-tree-switcher.ant-tree-switcher-noop {
display: none;
}
///deep/ .ant-tooltip-open {
// background: transparent;
//}
</style>