Skip to content

Commit

Permalink
perf(frontend): sqlserver 定点构造到其它集群去掉集群重复的校验 #8747
Browse files Browse the repository at this point in the history
hLinx authored and iSecloud committed Dec 23, 2024
1 parent 68ac2e4 commit 7bbf09e
Showing 2 changed files with 2 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -30,11 +30,8 @@
:tab-list-config="clusterSelectorTabConfig"
@change="handelClusterChange" />
</template>
<script lang="ts">
const clusterIdMemo: Record<string, number> = {};
</script>
<script setup lang="ts">
import { onBeforeUnmount, ref, watch } from 'vue';
import { ref, watch } from 'vue';
import { useI18n } from 'vue-i18n';

import SqlServerHaModel from '@services/model/sqlserver/sqlserver-ha';
@@ -46,8 +43,6 @@
import ClusterSelector from '@components/cluster-selector/Index.vue';
import TableEditInput from '@components/render-table/columns/input/index.vue';

import { random } from '@utils';

import type { IDataRow } from './Row.vue';

interface Props {
@@ -66,9 +61,6 @@
cloudId: null | number;
}>();

const instanceKey = `render_dst_cluster_${random()}`;
clusterIdMemo[instanceKey] = 0;

const compareVersion = (dstVersion: string, srcVersion: string) => {
const versionMatchReg = /[^\d]*(\d+)$/;
const [, dstversionNum] = dstVersion.match(versionMatchReg) || ['', ''];
@@ -141,34 +133,20 @@
cloudId: data[0].bk_cloud_id,
domain: data[0].master_domain,
};
clusterIdMemo[instanceKey] = data[0].id;
return true;
}
clusterIdMemo[instanceKey] = 0;
modelValue.value = undefined;
return false;
}),
message: t('目标集群不存在'),
},
{
validator: () => {
const otherClusterIdMemo = { ...clusterIdMemo };
delete otherClusterIdMemo[instanceKey];
if (Object.values(otherClusterIdMemo).includes(modelValue.value!.id)) {
return false;
}
return true;
},
message: t('目标集群重复'),
},
];

// 同步外部值
watch(
modelValue,
() => {
if (modelValue.value) {
clusterIdMemo[instanceKey] = modelValue.value.id;
localDomain.value = modelValue.value.domain;
} else {
localDomain.value = '';
@@ -194,10 +172,6 @@
};
};

onBeforeUnmount(() => {
delete clusterIdMemo[instanceKey];
});

defineExpose<Exposes>({
getValue(field) {
// 用户输入未完成验证
Original file line number Diff line number Diff line change
@@ -30,11 +30,8 @@
:tab-list-config="clusterSelectorTabConfig"
@change="handelClusterChange" />
</template>
<script lang="ts">
const clusterIdMemo: Record<string, number> = {};
</script>
<script setup lang="ts">
import { onBeforeUnmount, ref, watch } from 'vue';
import { ref, watch } from 'vue';
import { useI18n } from 'vue-i18n';

import SqlServerHaModel from '@services/model/sqlserver/sqlserver-ha';
@@ -46,8 +43,6 @@
import ClusterSelector from '@components/cluster-selector/Index.vue';
import TableEditInput from '@components/render-table/columns/input/index.vue';

import { random } from '@utils';

import type { IDataRow } from './Row.vue';

interface Exposes {
@@ -56,9 +51,6 @@

const modelValue = defineModel<IDataRow['clusterData']>();

const instanceKey = `render_src_cluster_${random()}`;
clusterIdMemo[instanceKey] = 0;

const { t } = useI18n();

const editRef = ref<InstanceType<typeof TableEditInput>>();
@@ -114,26 +106,13 @@
domain: data[0].master_domain,
majorVersion: data[0].major_version,
};
clusterIdMemo[instanceKey] = data[0].id;
return true;
}
clusterIdMemo[instanceKey] = 0;
modelValue.value = undefined;
return false;
}),
message: t('目标集群不存在'),
},
{
validator: () => {
const otherClusterIdMemo = { ...clusterIdMemo };
delete otherClusterIdMemo[instanceKey];
if (Object.values(otherClusterIdMemo).includes(modelValue.value!.id)) {
return false;
}
return true;
},
message: t('目标集群重复'),
},
];

// 同步外部值
@@ -142,7 +121,6 @@
() => {
if (modelValue.value) {
localDomain.value = modelValue.value.domain;
clusterIdMemo[instanceKey] = modelValue.value.id;
} else {
localDomain.value = '';
}
@@ -167,10 +145,6 @@
};
};

onBeforeUnmount(() => {
delete clusterIdMemo[instanceKey];
});

defineExpose<Exposes>({
getValue(field) {
// 用户输入未完成验证

0 comments on commit 7bbf09e

Please sign in to comment.