This commit is contained in:
2023-06-30 17:15:25 +08:00
parent 680d6876ba
commit cf3fed6448
3 changed files with 388 additions and 375 deletions

View File

@ -113,3 +113,17 @@ export const tenantStatusDict = [
elTagType: "warning",
},
];
// 初始化状态
export const initStatusDict = [
{
label: "否",
value: "0",
elTagType: "warning",
},
{
label: "是",
value: "1",
elTagType: "success",
},
];

View File

@ -86,7 +86,7 @@
</el-col>
<el-col :span="1.5">
<el-button
:disabled="single"
:disabled="single || ids[0].initialized === '1'"
icon="Refresh"
plain
type="primary"
@ -105,10 +105,10 @@
:data="tenantList"
@selection-change="handleSelectionChange"
>
<el-table-column align="center" type="selection" width="55"/>
<el-table-column align="center" label="公司名称" prop="companyName"/>
<el-table-column align="center" label="联系人名称" prop="contactName"/>
<el-table-column align="center" label="联系人电话" prop="contactPhone"/>
<el-table-column align="center" type="selection" width="55" />
<el-table-column align="center" label="公司名称" prop="companyName" />
<el-table-column align="center" label="联系人名称" prop="contactName" />
<el-table-column align="center" label="联系人电话" prop="contactPhone" />
<el-table-column
align="center"
label="过期时间"
@ -119,22 +119,23 @@
<span>{{ parseTime(scope.row.expireTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="用户数量" prop="accountCount"/>
<el-table-column align="center" label="用户数量" prop="accountCount" />
<el-table-column align="center" label="状态">
<template #default="{ row }">
<dict-tag :options="tenantStatusDict" :value="row.status"/>
<dict-tag :options="tenantStatusDict" :value="row.status" />
</template>
</el-table-column>
<el-table-column align="center" label="初始化状态">
<template #default="{ row }">
<el-tag :type="row.initialized === '1' ? 'success' : 'warning'"
>{{ row.initialized === "1" ? "是" : "否" }}
</el-tag>
<!-- <el-tag :type="row.initialized === '1' ? 'success' : 'warning'"-->
<!-- >{{ row.initialized === "1" ? "是" : "否" }}-->
<!-- </el-tag>-->
<dict-tag :options="initStatusDict" :value="row.initialized" />
</template>
</el-table-column>
<el-table-column align="center" label="模式">
<template #default="{ row }">
<dict-tag :options="tenantModeDict" :value="row.mode"/>
<dict-tag :options="tenantModeDict" :value="row.mode" />
</template>
</el-table-column>
<el-table-column
@ -206,10 +207,10 @@
>
<el-form ref="tenantRef" :model="form" :rules="rules" label-width="130px">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="form.companyName" placeholder="请输入公司名称"/>
<el-input v-model="form.companyName" placeholder="请输入公司名称" />
</el-form-item>
<el-form-item label="联系人名称" prop="contactName">
<el-input v-model="form.contactName" placeholder="请输入联系人名称"/>
<el-input v-model="form.contactName" placeholder="请输入联系人名称" />
</el-form-item>
<el-form-item label="联系人电话" prop="contactPhone">
<el-input
@ -218,7 +219,7 @@
/>
</el-form-item>
<el-form-item label="公司地址" prop="address">
<el-input v-model="form.address" placeholder="请输入公司地址"/>
<el-input v-model="form.address" placeholder="请输入公司地址" />
</el-form-item>
<el-form-item label="公司简介" prop="profile">
<el-input
@ -244,7 +245,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="用户数量" prop="accountCount">
<el-input v-model="form.accountCount" placeholder="请输入用户数量"/>
<el-input v-model="form.accountCount" placeholder="请输入用户数量" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
@ -325,7 +326,7 @@
</el-select>
</el-form-item>
<el-form-item label="数据库IP" prop="ip">
<el-input v-model="dataSourceForm.ip"/>
<el-input v-model="dataSourceForm.ip" />
</el-form-item>
<el-form-item label="数据库端口" prop="port">
<el-input-number
@ -335,7 +336,7 @@
/>
</el-form-item>
<el-form-item label="数据库名称" prop="dbName">
<el-input v-model="dataSourceForm.dbName"/>
<el-input v-model="dataSourceForm.dbName" />
</el-form-item>
<!-- schemaName 模式名称 仅当数据库类型不是Mysql时显示 -->
<el-form-item
@ -343,13 +344,13 @@
label="模式名称"
prop="schemaName"
>
<el-input v-model="dataSourceForm.schemaName"/>
<el-input v-model="dataSourceForm.schemaName" />
</el-form-item>
<el-form-item label="数据库账号" prop="username">
<el-input v-model="dataSourceForm.username"/>
<el-input v-model="dataSourceForm.username" />
</el-form-item>
<el-form-item label="数据库密码" prop="password">
<el-input v-model="dataSourceForm.password"/>
<el-input v-model="dataSourceForm.password" />
</el-form-item>
<el-form-item label="使用" prop="isPrimary">
<el-switch
@ -369,7 +370,7 @@
showDatasourceAdvanced ? 90 : 0
}deg);transition: all 0.3s;`"
>
<ArrowRight/>
<ArrowRight />
</el-icon>
<span>
<!-- 显示或隐藏高级选项 -->
@ -381,22 +382,13 @@
<div v-if="showDatasourceAdvanced">
<!-- initCount minCount maxCount -->
<el-form-item label="初始化连接数" prop="initCount">
<el-input-number
v-model="dataSourceForm.initCount"
:min="0"
/>
<el-input-number v-model="dataSourceForm.initCount" :min="0" />
</el-form-item>
<el-form-item label="最小连接数" prop="minCount">
<el-input-number
v-model="dataSourceForm.minCount"
:min="0"
/>
<el-input-number v-model="dataSourceForm.minCount" :min="0" />
</el-form-item>
<el-form-item label="最大连接数" prop="maxCount">
<el-input-number
v-model="dataSourceForm.maxCount"
:min="0"
/>
<el-input-number v-model="dataSourceForm.maxCount" :min="0" />
</el-form-item>
</div>
</Transition>
@ -499,15 +491,20 @@ import {
updateDatasource,
updateTenant,
} from "@/api/tenant/tenant";
import {getCurrentInstance, reactive, ref, toRefs} from "vue";
import {ElMessage, ElMessageBox} from "element-plus";
import {database_type_dict, tenantModeDict, tenantStatusDict,} from "@/constant/dict";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import {
database_type_dict,
initStatusDict,
tenantModeDict,
tenantStatusDict,
} from "@/constant/dict";
import DictTag from "@/components/DictTag/index.vue";
import {cloneDeep} from "lodash-es";
import {ArrowRight} from "@element-plus/icons-vue";
import {useRouter} from "vue-router";
import { cloneDeep } from "lodash-es";
import { ArrowRight } from "@element-plus/icons-vue";
import { useRouter } from "vue-router";
const {proxy} = getCurrentInstance();
const { proxy } = getCurrentInstance();
const router = useRouter();
const tenantList = ref([]);
@ -546,7 +543,7 @@ const data = reactive({
},
rules: {
companyName: [
{required: true, message: "公司名称不能为空", trigger: "blur"},
{ required: true, message: "公司名称不能为空", trigger: "blur" },
],
},
tenantSettingForm: {},
@ -857,8 +854,7 @@ function handleDelete(row) {
getList();
proxy.$modal.msgSuccess("删除成功");
})
.catch(() => {
});
.catch(() => {});
}
/** 导出按钮操作 */

View File

@ -13,10 +13,10 @@
class="init-steps"
finish-status="success"
>
<el-step title="开始"/>
<el-step title="检查"/>
<el-step title="步骤2"/>
<el-step title="步骤3"/>
<el-step title="开始" />
<el-step title="检查" />
<el-step title="步骤2" />
<el-step title="步骤3" />
</el-steps>
<!-- 错误提示 -->
@ -143,7 +143,7 @@
<el-col :span="1.5">
<div class="btn-loading">
<el-icon size="80">
<refresh/>
<refresh />
</el-icon>
</div>
</el-col>
@ -221,11 +221,11 @@
</div>
</template>
<script setup>
import {onMounted, reactive, ref, toRefs, watchEffect} from "vue";
import {check, createTables, initData} from "@/api/tenant/init";
import {useRoute, useRouter} from "vue-router";
import {tenantModeDict} from "@/constant/dict";
import {Refresh} from "@element-plus/icons-vue";
import { onMounted, reactive, ref, toRefs, watchEffect } from "vue";
import { check, createTables, initData } from "@/api/tenant/init";
import { useRoute, useRouter } from "vue-router";
import { tenantModeDict } from "@/constant/dict";
import { Refresh } from "@element-plus/icons-vue";
const route = useRoute();
const router = useRouter();
@ -236,7 +236,7 @@ const loading = ref(false);
if (route.query.id) {
tenantId.value = route.query.id;
} else {
router.push({path: "/tenant/tenant"});
router.push({ path: "/tenant/tenant" });
}
const data = reactive({
@ -245,7 +245,7 @@ const data = reactive({
initDataResult: {},
});
const {tenantInitCheckResult, createTablesResult, initDataResult} =
const { tenantInitCheckResult, createTablesResult, initDataResult } =
toRefs(data);
const initTenant = async () => {
@ -270,7 +270,8 @@ const tenantInitCheck = () => {
currentStepStatus.value = 2;
activeStep.value = 0;
throw new Error("租户初始化检查失败");
}).then((resp) => {
})
.then((resp) => {
tenantInitCheckResult.value = resp;
if (resp.result === 200) {
currentStepStatus.value = 2;
@ -278,7 +279,7 @@ const tenantInitCheck = () => {
currentStepStatus.value = 0;
throw new Error("租户初始化检查失败");
}
})
});
};
// 第二步: 创建数据库
@ -291,7 +292,8 @@ const createDatabase = () => {
currentStepStatus.value = 2;
activeStep.value = 1;
throw new Error("创建数据库失败");
}).then((resp) => {
})
.then((resp) => {
createTablesResult.value = resp;
if (resp.result === 200) {
currentStepStatus.value = 2;
@ -299,7 +301,7 @@ const createDatabase = () => {
currentStepStatus.value = 0;
throw new Error("创建数据库失败");
}
})
});
};
// 第三步,导入数据
@ -312,7 +314,8 @@ const importData = () => {
currentStepStatus.value = 2;
activeStep.value = 2;
throw new Error("导入数据失败");
}).then((resp) => {
})
.then((resp) => {
initDataResult.value = resp;
if (resp.result === 200) {
currentStepStatus.value = 2;
@ -320,7 +323,7 @@ const importData = () => {
currentStepStatus.value = 0;
throw new Error("导入数据失败");
}
})
});
};
onMounted(() => {