Skip to content

Commit 45133fa

Browse files
committed
feat(frontend): 工具箱支持资源池协议变更_codereview #8076
# Reviewed, transaction id: 28333
1 parent efac488 commit 45133fa

File tree

71 files changed

+1210
-1481
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1210
-1481
lines changed

dbm-ui/frontend/src/components/render-table/columns/spec-display/Panel.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@
2727
<div class="item-title">CPU:</div>
2828
<div class="item-content">
2929
{{
30-
data.cpu.min === data.cpu.max
31-
? t('n核', { n: data.cpu.min })
32-
: t('((n-m))核', { n: data.cpu.min, m: data.cpu.max })
30+
data.cpu?.min === data.cpu?.max
31+
? t('n核', { n: data.cpu?.min })
32+
: t('((n-m))核', { n: data.cpu?.min, m: data.cpu?.max })
3333
}}
3434
</div>
3535
</div>
3636
<div class="item">
3737
<div class="item-title">{{ $t('内存') }}:</div>
3838
<div class="item-content">
39-
{{ data.mem.min === data.mem.max ? data.mem.min : `(${data.mem.min}~${data.mem.max})` }} G
39+
{{ data.mem?.min === data.mem?.max ? data.mem?.min : `(${data.mem?.min}~${data.mem?.max})` }} G
4040
</div>
4141
</div>
4242
<div
@@ -77,7 +77,7 @@
7777
{{ $t('单机 QPS') }}
7878
</div>
7979
<div class="item-content">
80-
{{ data.qps.min === data.qps.max ? `${data.qps.min}/s` : `${data.qps.min}/s~${data.qps.max}/s` }}
80+
{{ data.qps?.min === data.qps?.max ? `${data.qps?.min}/s` : `${data.qps?.min}/s~${data.qps?.max}/s` }}
8181
</div>
8282
</div>
8383
</div>

dbm-ui/frontend/src/demo/Index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
TimePicker as EditTimePicker,
100100
} from '@components/editable-table/Index.vue';
101101
102-
import OperationColumn from '@views/db-manage/common/toolbox-field/operation-column/Index.vue';
102+
import OperationColumn from '@views/db-manage/common/toolbox-field/columns/operation-column/Index.vue';
103103
104104
const createData = () => ({
105105
name: 'name',

dbm-ui/frontend/src/hooks/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,4 @@ export * from './useTicketCloneInfo';
4040
export * from './useTicketCount';
4141
export * from './useTicketMessage';
4242
export * from './useTimeZoneFormat';
43-
export * from './useToolboxRoute';
4443
export * from './useUrlSearach';

dbm-ui/frontend/src/hooks/useCreateTicket.ts

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import InfoBox from 'bkui-vue/lib/info-box';
2+
import { useI18n } from 'vue-i18n';
3+
import { useRouter } from 'vue-router';
4+
5+
import { createTicketNew } from '@services/source/ticket';
6+
7+
import type { TicketTypes } from '@common/const';
8+
9+
import { messageError } from '@utils';
10+
11+
export function useCreateTicket<T>(ticketType: TicketTypes, options?: { onSuccess?: (ticketId: number) => void }) {
12+
const loading = ref(false);
13+
const router = useRouter();
14+
const { t, locale } = useI18n();
15+
16+
const run = async (formData: { details: T; remark: string; ignore_duplication?: boolean }) => {
17+
const params = {
18+
ticket_type: ticketType,
19+
bk_biz_id: window.PROJECT_CONFIG.BIZ_ID,
20+
...formData,
21+
};
22+
try {
23+
loading.value = true;
24+
const { id: ticketId } = await createTicketNew<T>(params);
25+
if (options?.onSuccess) {
26+
options.onSuccess(ticketId);
27+
} else {
28+
router.push({
29+
name: ticketType,
30+
params: {
31+
page: 'success',
32+
},
33+
query: {
34+
ticketId,
35+
},
36+
});
37+
}
38+
} catch (e: any) {
39+
const { code, data, message } = e;
40+
const duplicateCode = 8704005;
41+
if (code === duplicateCode) {
42+
const id = data.duplicate_ticket_id;
43+
44+
InfoBox({
45+
title: t('是否继续提交单据'),
46+
content: () => {
47+
const route = router.resolve({
48+
name: 'bizTicketManage',
49+
params: {
50+
ticketId: id,
51+
},
52+
});
53+
54+
if (locale.value === 'en') {
55+
return (
56+
<span>
57+
You have already submitted a
58+
<a
59+
href={route.href}
60+
target='_blank'>
61+
{' '}
62+
ticket[{id}]{' '}
63+
</a>
64+
with the same target cluster, continue?
65+
</span>
66+
);
67+
}
68+
69+
return (
70+
<span>
71+
你已提交过包含相同目标集群的
72+
<a
73+
href={route.href}
74+
target='_blank'>
75+
单据[{id}]
76+
</a>
77+
,是否继续?
78+
</span>
79+
);
80+
},
81+
confirmText: t('继续提单'),
82+
cancelText: t('取消提单'),
83+
onConfirm: async () => {
84+
try {
85+
await run({
86+
...params,
87+
ignore_duplication: true,
88+
});
89+
} catch (e: any) {
90+
messageError(e?.message);
91+
}
92+
},
93+
});
94+
} else {
95+
messageError(message);
96+
}
97+
} finally {
98+
loading.value = false;
99+
}
100+
};
101+
102+
return {
103+
run,
104+
loading,
105+
};
106+
}

dbm-ui/frontend/src/locales/zh-cn.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3948,5 +3948,6 @@
39483948
"目标集群xx重复": "目标集群 {0} 重复",
39493949
"目标Master主机": "目标 Master 主机",
39503950
"请输入集群域名_多个集群用分隔符输入": "请输入集群域名,多个集群用分隔符输入",
3951+
"单据创建成功": "单据创建成功",
39513952
"这行勿动!新增翻译请在上一行添加!": ""
39523953
}

dbm-ui/frontend/src/services/source/ticket.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,20 @@ export function getTickets(params: {
5757
/**
5858
* 创建单据
5959
*/
60-
export function createTicket<T>(formData: {
60+
export function createTicketNew<T>(params: {
6161
bk_biz_id: number;
6262
details: T;
63-
ignore_duplication: boolean;
63+
ignore_duplication?: boolean;
6464
remark: string;
6565
ticket_type: TicketTypes;
6666
}) {
67+
return http.post<{ id: number }>(`${path}/`, params, { catchError: true });
68+
}
69+
70+
/**
71+
* 创建单据、过后摒弃
72+
*/
73+
export function createTicket(formData: Record<string, any>) {
6774
return http
6875
.post<{ id: number }>(`${path}/`, formData, { catchError: true })
6976
.then((res) => res)

dbm-ui/frontend/src/hooks/useToolboxRoute.ts renamed to dbm-ui/frontend/src/utils/createToolboxRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DBTypes, type TicketTypes } from '@common/const';
22

3-
export function useToolboxRoute(dbType: DBTypes) {
3+
export function createToolboxRoute(dbType: DBTypes) {
44
const dbToolbox = dbType === DBTypes.TENDBCLUSTER ? 'tendb-cluster' : dbType;
55

66
const createRouteItem = (ticketType: TicketTypes, navName: string) => ({

dbm-ui/frontend/src/utils/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export * from './checkDbConsole';
1818
export * from './classes';
1919
export * from './compareVersions';
2020
export * from './convertStorageUnits';
21+
export * from './createToolboxRoute';
2122
export * from './deepMerge';
2223
export * from './dom';
2324
export * from './downloadFile';

0 commit comments

Comments
 (0)