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;
+ });
});
}