From 22a9b5696cbe7196ab4e7d125906dbf970beedf2 Mon Sep 17 00:00:00 2001 From: ailanyin Date: Fri, 14 Jul 2023 16:12:49 +0800 Subject: [PATCH] bug fix and performance improve --- src/api/tenant/tenant.js | 12 ++++++ src/views/tenant/index.vue | 78 +++++++++++++++++++++++++++++++++++--- 2 files changed, 84 insertions(+), 6 deletions(-) diff --git a/src/api/tenant/tenant.js b/src/api/tenant/tenant.js index b482e96..74b91bd 100644 --- a/src/api/tenant/tenant.js +++ b/src/api/tenant/tenant.js @@ -125,3 +125,15 @@ export const switchPrimary = (tenantId, id) => { method: "PUT", }); }; + +// 修改租户状态 +export const updateStatus = (tenantId, status) => { + return request({ + url: "/tenant/update-status", + method: "put", + params: { + tenantId, + status, + }, + }); +}; diff --git a/src/views/tenant/index.vue b/src/views/tenant/index.vue index 029ade7..9474dcf 100644 --- a/src/views/tenant/index.vue +++ b/src/views/tenant/index.vue @@ -122,7 +122,13 @@ @@ -435,10 +441,11 @@ @@ -496,6 +503,7 @@ import { updateMode, updateDatasource, updateTenant, + updateStatus, } from "@/api/tenant/tenant"; import { getCurrentInstance, reactive, ref, toRefs } from "vue"; import { ElMessage, ElMessageBox } from "element-plus"; @@ -814,6 +822,39 @@ const handleSetting = (row) => { showTenantSetting.value = true; }; +const tenantStatusSwitchingIndex = ref(-1); // 租户状态切换中的索引 +// 是否正在租户状态切换 +const isTenantStatusSwitching = ref(false); +/** + * 修改租户状态 + */ +const handleChangeTenantStatus = (val, row) => { + const messageVNode = () => ( + <> + 要修改 + {row.companyName} + 的状态, 请在下方输入"确定". + + ); + ElMessageBox.prompt(messageVNode, "修改租户状态", { + inputPattern: /^确定$/, + inputErrorMessage: "输入不正确", + }).then(async () => { + // tenantStatusSwitchingIndex.value = index; + isTenantStatusSwitching.value = true; + updateStatus(row.tenantId, val) + .then(() => { + ElMessage.success("修改租户状态成功"); + }) + .finally(() => { + isTenantStatusSwitching.value = false; + }) + .then(() => { + getList(); + }); + }); +}; + /** 提交按钮 */ function submitForm() { proxy.$refs["tenantRef"].validate((valid) => { @@ -891,14 +932,39 @@ function handleRefreshCache() { }); } +// 正在切换isPrimary 的索引 +const switchingIsPrimaryIndex = ref(-1); +const isSwitchingIsPrimary = ref(false); + /** * 切换数据源使用状态 + * @param val * @param row */ -function handleSwitchIsPrimary(row) { - switchPrimary(tempTenantId.value, row.datasourceId).then(async () => { - const resp = await datasourceList(tempTenantId.value); - datasource.value = resp.data; +function handleSwitchIsPrimary(val, row) { + const messageVNode = () => ( + <> + 要修改 + {row.dbName} + 的状态, 请在下方输入"确定". + + ); + ElMessageBox.prompt(messageVNode, "修改数据源使用状态", { + inputPattern: /^确定$/, + inputErrorMessage: "输入不正确", + }).then(async () => { + isSwitchingIsPrimary.value = true; + switchPrimary(tempTenantId.value, row.datasourceId) + .then(() => { + ElMessage.success("修改租户状态成功"); + }) + .finally(() => { + isSwitchingIsPrimary.value = false; + }) + .then(async () => { + const resp = await datasourceList(tempTenantId.value); + datasource.value = resp.data; + }); }); }