Skip to content

Commit

Permalink
Merge pull request #2546 from hLinx/hotfix_master
Browse files Browse the repository at this point in the history
Hotfix master
  • Loading branch information
hLinx authored Oct 31, 2023
2 parents 3ec31b5 + b05c35c commit 1b7d36f
Show file tree
Hide file tree
Showing 17 changed files with 1,733 additions and 30 deletions.
2 changes: 1 addition & 1 deletion src/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"keywords": [],
"license": "ISC",
"dependencies": {
"@blueking/ip-selector": "0.0.1-beta.124",
"@blueking/ip-selector": "0.0.1-beta.134",
"@blueking/paas-login": "0.0.11",
"@blueking/user-selector": "1.0.7",
"@vue/babel-preset-jsx": "1.4.0",
Expand Down
31 changes: 20 additions & 11 deletions src/frontend/src/components/render-server-agent/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
<div class="variable-title">
<span>{{ title }}</span>
<i
class="global-variable-dialog-close bk-icon icon-close"
class="dialog-close-btn bk-icon icon-close"
@click="handleClose" />
</div>
</template>
Expand All @@ -71,6 +71,11 @@
:value="hostNodeInfo" />
</scroll-faker>
</div>
<template #footer>
<bk-button @click="handleClose">
{{ $t('关闭') }}
</bk-button>
</template>
</jb-dialog>
</lower-component>
</div>
Expand Down Expand Up @@ -217,9 +222,7 @@
}
.content-wraper {
height: 450px;
max-height: 450px;
min-height: 450px;
height: 550px;
margin-top: -1px;
}
Expand All @@ -240,17 +243,23 @@
border-bottom: 1px solid #dcdee5;
}
.global-variable-dialog-close {
.dialog-close-btn {
position: absolute;
top: 0;
right: 0;
font-size: 32px;
color: #c4c6cc;
top: 5px;
right: 5px;
z-index: 1;
width: 26px;
height: 26px;
font-size: 22px;
font-weight: 700;
line-height: 26px;
color: #979ba5;
text-align: center;
cursor: pointer;
transition: all 0.15s;
border-radius: 50%;
&:hover {
transform: rotateZ(90deg);
background-color: #f0f1f5;
}
}
}
Expand Down
11 changes: 11 additions & 0 deletions src/frontend/src/css/bk-patch.css
Original file line number Diff line number Diff line change
Expand Up @@ -299,3 +299,14 @@
.bk-button-text {
line-height: 22px;
}

/**
覆盖 ip-selector dialog 样式
*/
.bk-ip-selector .bk-dialog-wrapper .bk-dialog,
.bk-ip-selector-box .bk-dialog-wrapper .bk-dialog,
.bk-ip-selector-preview-dialog .bk-dialog-wrapper .bk-dialog,
.host-table-column-setting-popover .bk-dialog-wrapper .bk-dialog,
[data-bkpop-container="true"] .bk-dialog-wrapper .bk-dialog{
top: initial !important;
}
1 change: 1 addition & 0 deletions src/frontend/src/i18n/local.js
Original file line number Diff line number Diff line change
Expand Up @@ -595,4 +595,5 @@ export default {
'复制 IP': 'Copy IP',
'复制 IPv6': 'Copy IPv6',
无该应用的访问权限: 'Do not have access permission for the current application.',
'所有 IP': 'All IP',
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<!--
* Tencent is pleased to support the open source community by making BK-JOB蓝鲸智云作业平台 available.
*
* Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
*
* BK-JOB蓝鲸智云作业平台 is licensed under the MIT License.
*
* License for BK-JOB蓝鲸智云作业平台:
*
*
* Terms of the MIT License:
* ---------------------------------------------------
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
* to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
* the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
-->

<template>
<div
v-bkloading="{ isLoading }"
class="history-step-detail-view">
<task-step-detail
:data="stepInfo"
:variable="variableList">
<detail-item
v-if="rollingConfigExpr"
:label="$t('history.滚动策略:')">
<span
v-bk-tooltips.right="rollingExprParse(rollingConfigExpr)"
class="tips">
{{ rollingConfigExpr }}
</span>
</detail-item>
<detail-item
v-if="rollingModeText"
:label="$t('history.滚动机制:')">
{{ rollingModeText }}
</detail-item>
</task-step-detail>
</div>
</template>
<script setup>
import {
ref,
shallowRef,
} from 'vue';
import TaskExecuteService from '@service/task-execute';
import GlobalVariableModel from '@model/task/global-variable';
import TaskStepModel from '@model/task/task-step';
import rollingExprParse from '@utils/rolling-expr-parse';
import DetailItem from '@components/detail-layout/item';
import I18n from '@/i18n';
import TaskStepDetail from './task-step-detail/index.vue';
const props = defineProps({
taskId: {
type: Number,
required: true,
},
id: {
type: [Number, String],
},
});
const isLoading = ref(true);
const stepInfo = shallowRef({});
const rollingConfigExpr = ref('');
const rollingModeText = ref('');
const variableList = shallowRef([]);
// 步骤详情
const fetchStep = () => TaskExecuteService.fetchStepInstance({
id: props.id,
}).then((data) => {
if (data.rollingEnabled) {
rollingConfigExpr.value = data.rollingConfig.expr;
const modeMap = {
1: I18n.t('默认(执行失败则暂停)'),
2: I18n.t('忽略失败,自动滚动下一批'),
3: I18n.t('不自动,每批次都人工确认'),
};
rollingModeText.value = modeMap[data.rollingConfig.mode];
}
stepInfo.value = new TaskStepModel(data);
});
const fetchTaskVariables = () => TaskExecuteService.fetchStepInstanceParam({
id: props.taskId,
}).then((data) => {
variableList.value = Object.freeze(data.map(({ id, name, type, value, targetValue }) => new GlobalVariableModel({
id,
name,
type,
defaultValue: value,
defaultTargetValue: targetValue,
})));
});
Promise.all([
fetchStep(),
fetchTaskVariables(),
]).finally(() => {
isLoading.value = false;
});
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
<!--
* Tencent is pleased to support the open source community by making BK-JOB蓝鲸智云作业平台 available.
*
* Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
*
* BK-JOB蓝鲸智云作业平台 is licensed under the MIT License.
*
* License for BK-JOB蓝鲸智云作业平台:
*
*
* Terms of the MIT License:
* ---------------------------------------------------
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
* to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
* the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
-->

<template>
<div
v-bkloading="{ isLoading }"
class="artificial-view">
<detail-item :label="$t('template.确认人:')">
<div class="approval-wraper">
<div
v-for="role in renderRoleList"
:key="role"
class="item">
<icon
class="approval-flag"
type="user-group-gray" />
{{ role }}
</div>
<div
v-for="user in stepInfo.approvalUser.userList"
:key="user"
class="item">
<icon
class="approval-flag"
type="user" />
{{ user }}
</div>
</div>
</detail-item>
<detail-item :label="$t('template.通知方式:')">
{{ renderChannel }}
</detail-item>
<detail-item :label="$t('template.确认描述:')">
{{ stepInfo.approvalMessage || '--' }}
</detail-item>
<slot />
</div>
</template>
<script setup>
import {
ref,
shallowRef,
} from 'vue';
import NotifyService from '@service/notify';
import QueryGlobalSettingService from '@service/query-global-setting';
import DetailItem from '@components/detail-layout/item';
const props = defineProps({
data: {
type: Object,
default: () => ({}),
},
});
const isLoading = ref(true);
const stepInfo = shallowRef(props.data.approvalStepInfo);
const renderRoleList = shallowRef([]);
const renderChannel = ref('');
const fetchRoleList = () => {
NotifyService.fetchRoleList()
.then((data) => {
const roleMap = {};
data.forEach((role) => {
roleMap[role.code] = role.name;
});
// 过滤掉已经被删除的角色分组
renderRoleList.value = stepInfo.value.approvalUser.roleList.reduce((result, item) => {
if (roleMap[item]) {
result.push(roleMap[item]);
}
return result;
}, []);
});
};
const fetchAllChannel = () => {
if (stepInfo.value.notifyChannel.length < 1) {
renderChannel.value = '--';
return Promise.resolve();
}
QueryGlobalSettingService.fetchActiveNotifyChannel()
.then((data) => {
const channelMap = {};
data.forEach((channel) => {
channelMap[channel.code] = channel.name;
});
const channel = stepInfo.value.notifyChannel.reduce((result, item) => {
// 过滤掉已经被删除的通知渠道
if (channelMap[item]) {
result.push(channelMap[item]);
}
return result;
}, []);
if (channel.length < 1) {
renderChannel.value = '--';
}
renderChannel.value = channel.join('');
});
};
Promise.all([
fetchRoleList(),
fetchAllChannel(),
]).finally(() => {
isLoading.value = false;
});
</script>
<style lang='postcss' scoped>
.artificial-view {
.detail-item {
margin-bottom: 0;
}
.approval-wraper {
display: flex;
align-items: center;
flex-wrap: wrap;
min-height: 34px;
margin-top: -5px;
.item {
display: flex;
height: 20px;
padding: 0 6px;
margin-top: 10px;
margin-right: 10px;
font-size: 12px;
color: #63656e;
background: #f0f1f5;
border-radius: 2px;
align-items: center;
}
.approval-flag {
margin-right: 4px;
}
}
}
</style>
Loading

0 comments on commit 1b7d36f

Please sign in to comment.