Skip to content

Commit

Permalink
Merge pull request #2502 from lhzzforever/dev/develop_ci_resource_tree
Browse files Browse the repository at this point in the history
feature: resource_instance合并develop开发分支
  • Loading branch information
huangpeng0428 authored Jan 26, 2024
2 parents ea44670 + 22be877 commit cad2191
Show file tree
Hide file tree
Showing 34 changed files with 400 additions and 98 deletions.
1 change: 1 addition & 0 deletions frontend/build/paas-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ const GLOBAL_VAR = {
ENABLE_GROUP_INSTANCE_SEARCH: process.env.ENABLE_GROUP_INSTANCE_SEARCH || '',
ENABLE_ORGANIZATION_COUNT: process.env.ENABLE_ORGANIZATION_COUNT || '',
ENABLE_ASSISTANT: process.env.ENABLE_ASSISTANT || '',
ENABLE_BK_NOTICE: process.env.ENABLE_BK_NOTICE || '',
BK_COMPONENT_API_URL: process.env.BK_COMPONENT_API_URL || '',
BK_DOCS_URL_PREFIX: process.env.BK_DOCS_URL_PREFIX || ''
};
Expand Down
4 changes: 3 additions & 1 deletion frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
const ENABLE_TEMPORARY_POLICY = '{{ ENABLE_TEMPORARY_POLICY }}' || ''
const ENABLE_GROUP_INSTANCE_SEARCH = '{{ ENABLE_GROUP_INSTANCE_SEARCH }}' || ''
const ENABLE_ORGANIZATION_COUNT = '{{ ENABLE_ORGANIZATION_COUNT }}' || ''
const ENABLE_ASSISTANT = '{{ ENABLE_ASSISTANT }}' || ''
const ENABLE_ASSISTANT = '{{ ENABLE_ASSISTANT }}' || ''
const ENABLE_BK_NOTICE = '{{ ENABLE_BK_NOTICE }}' || ''
const BK_DOMAIN = '{{ BK_DOMAIN }}' || ''
const BK_COMPONENT_API_URL = '{{ BK_COMPONENT_API_URL }}' || ''
document.domain = '{{ SESSION_COOKIE_DOMAIN }}'
Expand All @@ -45,6 +46,7 @@
window.ENABLE_GROUP_INSTANCE_SEARCH = ENABLE_GROUP_INSTANCE_SEARCH
window.ENABLE_ORGANIZATION_COUNT = ENABLE_ORGANIZATION_COUNT
window.ENABLE_ASSISTANT = ENABLE_ASSISTANT
window.ENABLE_BK_NOTICE = ENABLE_BK_NOTICE
window.CE_URL = CE_URL
window.BK_DOMAIN = BK_DOMAIN
window.BK_COMPONENT_API_URL = BK_COMPONENT_API_URL
Expand Down
1 change: 1 addition & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
"@babel/preset-env": "~7.4.5",
"@babel/register": "~7.4.4",
"@babel/runtime": "~7.4.5",
"@blueking/notice-component-vue2": "^2.0.1",
"@blueking/user-selector": "^1.0.11",
"@commitlint/cli": "~13.1.0",
"@commitlint/config-conventional": "~13.1.0",
Expand Down
37 changes: 32 additions & 5 deletions frontend/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,14 @@
systemCls,
{ 'external-system-layout': externalSystemsLayout.userGroup.groupDetail.setMainLayoutHeight },
{ 'external-app-layout': $route.name === 'addMemberBoundary' },
{ 'notice-app-layout': isShowNoticeAlert },
{ 'no-perm-app-layout': ['403'].includes(routeName) }
]">
<NoticeComponent
v-if="isShowNoticeAlert"
:api-url="noticeApi"
@show-alert-change="handleShowAlertChange"
/>
<!-- <iam-guide
v-if="groupGuideShow"
type="create_group"
Expand Down Expand Up @@ -60,6 +66,8 @@
import HeaderNav from '@/components/header-nav/index.vue';
import theHeader from '@/components/header/index.vue';
import theNav from '@/components/nav/index.vue';
import NoticeComponent from '@blueking/notice-component-vue2';
import '@blueking/notice-component-vue2/dist/style.css';
// import IamGuide from '@/components/iam-guide/index.vue';
import { existValue, formatI18nKey } from '@/common/util';
import { bus } from '@/common/bus';
Expand All @@ -71,14 +79,16 @@
name: 'app',
provide () {
return {
reload: this.reload
reload: this.reload,
showNoticeAlert: this.isShowNoticeAlert
};
},
components: {
// IamGuide,
theHeader,
theNav,
HeaderNav
HeaderNav,
NoticeComponent
},
data () {
return {
Expand All @@ -100,11 +110,17 @@
groupGuideShow: false,
routeName: '',
userGroupId: '',
isRouterAlive: true
isRouterAlive: true,
showNoticeAlert: true,
noticeApi: `${window.AJAX_URL_PREFIX}/notice/announcements/`,
enableNotice: window.ENABLE_BK_NOTICE.toLowerCase() === 'true'
};
},
computed: {
...mapGetters(['mainContentLoading', 'user', 'externalSystemsLayout'])
...mapGetters(['mainContentLoading', 'user', 'externalSystemsLayout']),
isShowNoticeAlert () {
return this.enableNotice && this.showNoticeAlert && !this.externalSystemsLayout.hideNoticeAlert;
}
},
watch: {
'$route' (to, from) {
Expand Down Expand Up @@ -310,8 +326,12 @@
}
}
return false;
}
},
handleShowAlertChange (isShow) {
console.log(444, isShow);
this.showNoticeAlert = isShow;
}
}
};
</script>
Expand Down Expand Up @@ -380,6 +400,13 @@
}
.notice-app-layout {
height: calc(100% - 101px) !important;
.main-scroller {
height: calc(100% + 91px);
}
}
.no-perm {
&-app-layout,
&-main-layout {
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/infinite-tree/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@
position: relative;
font-size: 16px;
color: #a3c5fd;
margin-right: 5px;
margin: 0 5px;
&.active {
color: #3a84ff;
}
Expand Down
2 changes: 2 additions & 0 deletions frontend/src/store/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,7 @@ const store = new Vuex.Store({
hideIamSlider: false, // 第一层级侧边导航
hideIamBreadCrumbs: false, // 第一层级面包屑
hideIamGuide: false, // 隐藏所有guide的tooltip
hideNoticeAlert: false, // 隐藏跑马灯组件
myPerm: { // 我的权限
hideCustomTab: false, // 自定义权限tab - 1
hideApplyBtn: false, // 申请权限按钮 - 1
Expand Down Expand Up @@ -890,6 +891,7 @@ const store = new Vuex.Store({
hideIamSlider: true, // 第一层级侧边导航
hideIamBreadCrumbs: true, // 第一层级面包屑
hideIamGuide: true, // 隐藏所有guide的tooltip
hideNoticeAlert: true, // 隐藏跑马灯组件
myPerm: { // 我的权限
hideCustomTab: true, // 自定义权限tab - 1
hideApplyBtn: true, // 申请权限按钮 - 1
Expand Down
50 changes: 30 additions & 20 deletions frontend/src/views/group/components/iam-add-member.vue
Original file line number Diff line number Diff line change
Expand Up @@ -291,33 +291,39 @@
<template v-if="curLanguageIsCn">
<template v-if="isShowSelectedText">
{{ $t(`m.common['已选择']`) }}
<span class="organization-count">{{ hasSelectedDepartments.length }}</span
>{{ $t(`m.common['个']`) }}{{ $t(`m.common['组织']`) }}
{{ $t(`m.common[',']`) }}
<span class="user-count">{{ hasSelectedUsers.length }}</span
>{{ $t(`m.common['个']`) }}{{ $t(`m.common['用户']`) }}
<span v-if="isExistMemberTemplate">
{{ $t(`m.common[',']`) }}
<span class="template-count">{{ hasSelectedTemplates.length }}</span>{{ $t(`m.common['个']`) }}{{ $t(`m.memberTemplate['人员模板']`) }}
</span>
<template v-if="hasSelectedDepartments.length">
<span class="organization-count">{{ hasSelectedDepartments.length }}</span>
{{ $t(`m.common['个']`) }}{{ $t(`m.common['组织']`) }}
</template>
<span v-if="isShowComma">{{ $t(`m.common[',']`) }}</span>
<template v-if="hasSelectedUsers.length > 0">
<span class="user-count">{{ hasSelectedUsers.length }}</span>
{{ $t(`m.common['个']`) }}{{ $t(`m.common['用户']`) }}
</template>
<template v-if="isExistMemberTemplate && hasSelectedTemplates.length > 0">
<span v-if="hasSelectedUsers.length > 0">{{ $t(`m.common[',']`) }}</span>
<span class="template-count">{{ hasSelectedTemplates.length }}</span>
{{ $t(`m.common['个']`) }}{{ $t(`m.memberTemplate['人员模板']`) }}
</template>
</template>
<!-- <template v-else>
<span class="user-count">0</span>
</template> -->
</template>
<template v-else>
<template v-if="isShowSelectedText">
<span class="organization-count">{{ hasSelectedDepartments.length }}</span
>Org{{ $t(`m.common[',']`) }} <span class="user-count">{{ hasSelectedUsers.length }}</span
>User
<span v-if="isExistMemberTemplate">
{{ $t(`m.common[',']`) }}
<span class="organization-count">{{ hasSelectedDepartments.length }}</span>
<span>Org</span>
<span v-if="isShowComma">{{ $t(`m.common[',']`) }}</span>
<template v-if="hasSelectedUsers.length > 0">
<span class="user-count">{{ hasSelectedUsers.length }}</span>
<span>User</span>
</template>
<template v-if="isExistMemberTemplate && hasSelectedTemplates.length > 0">
<span v-if="hasSelectedUsers.length > 0">{{ $t(`m.common[',']`) }}</span>
<span class="template-count">{{ hasSelectedTemplates.length }}</span>
Member template
</span>
</template>
<template v-else>
<span class="user-count">0</span>
<span>Member template</span>
</template>
</template>
{{ $t(`m.common['已选择']`) }}
</template>
Expand Down Expand Up @@ -750,6 +756,10 @@
// 蓝盾场景
isShowExternalMemberTemplate () {
return !['staff', 'rating_manager'].includes(this.user.role.type) && this.needMemberTempRoutes.includes(this.$route.name) && !this.isAdminGroup;
},
isShowComma () {
return this.hasSelectedDepartments.length > 0
&& (this.hasSelectedUsers.length > 0 || (this.hasSelectedTemplates.length > 0 && this.isExistMemberTemplate));
}
},
watch: {
Expand Down Expand Up @@ -2244,7 +2254,7 @@
.organization-count,
.user-count,
.template-count {
margin-right: 3px;
/* margin-right: 3px; */
color: #3a84ff;
font-weight: 700;
}
Expand Down
34 changes: 21 additions & 13 deletions frontend/src/views/my-manage-space/add-member-boundary/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -271,21 +271,26 @@
<template v-if="curLanguageIsCn">
<template v-if="isShowSelectedText">
{{ $t(`m.common['已选择']`) }}
<span class="organization-count">{{ hasSelectedDepartments.length }}</span
>{{ $t(`m.common['个']`) }}{{ $t(`m.common['组织']`) }}
{{ $t(`m.common[',']`) }}
<span class="user-count">{{ hasSelectedUsers.length }}</span
>{{ $t(`m.common['个']`) }}{{ $t(`m.common['用户']`) }}
<template v-if="hasSelectedDepartments.length">
<span class="organization-count">{{ hasSelectedDepartments.length }}</span>
{{ $t(`m.common['个']`) }}{{ $t(`m.common['组织']`) }}
</template>
<span v-if="isShowComma">{{ $t(`m.common[',']`) }}</span>
<template v-if="hasSelectedUsers.length > 0">
<span class="user-count">{{ hasSelectedUsers.length }}</span>
{{ $t(`m.common['个']`) }}{{ $t(`m.common['用户']`) }}
</template>
</template>
</template>
<template v-else>
<template v-if="isShowSelectedText">
<span class="organization-count">{{ hasSelectedDepartments.length }}</span
>Org{{ $t(`m.common[',']`) }} <span class="user-count">{{ hasSelectedUsers.length }}</span
>User
</template>
<template v-else>
<span class="user-count">0</span>
<span class="organization-count">{{ hasSelectedDepartments.length }}</span>
<span>Org</span>
<span v-if="isShowComma">{{ $t(`m.common[',']`) }}</span>
<template v-if="hasSelectedUsers.length > 0">
<span class="user-count">{{ hasSelectedUsers.length }}</span>
<span>User</span>
</template>
</template>
{{ $t(`m.common['已选择']`) }}
</template>
Expand Down Expand Up @@ -626,6 +631,9 @@
},
isStaff () {
return this.user.role.type === 'staff';
},
isShowComma () {
return this.hasSelectedDepartments.length > 0 && this.hasSelectedUsers.length > 0;
}
},
watch: {
Expand Down Expand Up @@ -2190,12 +2198,12 @@
/* padding: 8px 24px 8px 14px; */
font-size: 12px;
.organization-count {
margin-right: 3px;
/* margin-right: 3px; */
color: #3a84ff;
font-weight: 700;
}
.user-count {
margin-right: 3px;
/* margin-right: 3px; */
color: #3a84ff;
font-weight: 700;
}
Expand Down
35 changes: 19 additions & 16 deletions frontend/src/views/perm-apply/apply-custom-perm/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -794,24 +794,27 @@
curSelectActions () {
const allActionIds = [];
this.originalCustomTmplList.forEach(payload => {
if (!payload.actionsAllDisabled) {
payload.actions.forEach(item => {
if (item.checked) {
allActionIds.push(item.id);
if (!payload.actionsAllDisabled) {
payload.actions.forEach(item => {
if (item.checked) {
allActionIds.push(item.id);
}
});
(payload.sub_groups || []).forEach(subItem => {
(subItem.actions || []).forEach(act => {
if (act.checked) {
allActionIds.push(act.id);
}
})
;(payload.sub_groups || []).forEach(subItem => {
(subItem.actions || []).forEach(act => {
if (act.checked) {
allActionIds.push(act.id);
}
});
});
}
});
}
});
// 监听新增或移除的操作,重新组装数据
this.getFilterAggregateAction();
this.handleUnlimitedActionChange(this.isAllUnlimited);
// 这里是为了处理无限制和无资源实例后台都是空数据的情况,所以为了兼容编辑回显状态下为空的数据,首次加载不需要调用批量无限制
if (this.isAllUnlimited) {
this.handleUnlimitedActionChange(this.isAllUnlimited);
}
return allActionIds;
}
},
Expand Down Expand Up @@ -2292,9 +2295,9 @@
}
// 此处处理related_resource_types中value的赋值
return new Policy({
...item,
related_actions: relatedActions,
tid: this.routerQuery.cache_id ? this.routerQuery.cache_id : ''
...item,
related_actions: relatedActions,
tid: this.routerQuery.cache_id ? this.routerQuery.cache_id : ''
});
});
this.tableData = data;
Expand Down
2 changes: 1 addition & 1 deletion saas/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.10.20
1.10.21
2 changes: 2 additions & 0 deletions saas/backend/api/management/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ class ManagementAPIEnum(BaseAPIEnum):
# 审批
V2_APPLICATION_APPROVAL = auto()
V2_APPLICATION_CANCEL = auto()
# 人员模版
V2_SUBJECT_TEMPLATE_LIST = auto()

_choices_labels = skip(
(
Expand Down
15 changes: 15 additions & 0 deletions saas/backend/api/management/v2/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

from backend.apps.group.models import Group
from backend.apps.role.models import Role
from backend.apps.subject_template.models import SubjectTemplate


class GroupFilter(filters.FilterSet):
Expand All @@ -35,3 +36,17 @@ class Meta:
fields = [
"name",
]


class SubjectTemplateFilter(filters.FilterSet):
id = filters.NumberFilter(label="ID")
name = filters.CharFilter(label="名字", lookup_expr="icontains")
description = filters.CharFilter(label="描述", lookup_expr="icontains")

class Meta:
model = SubjectTemplate
fields = [
"name",
"id",
"description",
]
Loading

0 comments on commit cad2191

Please sign in to comment.