|
@@ -3,7 +3,8 @@
|
|
|
<el-dialog v-model="state.isShowDialog" draggable :close-on-click-modal="false" width="700px">
|
|
<el-dialog v-model="state.isShowDialog" draggable :close-on-click-modal="false" width="700px">
|
|
|
<template #header>
|
|
<template #header>
|
|
|
<div style="color: #fff">
|
|
<div style="color: #fff">
|
|
|
- <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>
|
|
|
|
|
|
|
+ <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit />
|
|
|
|
|
+ </el-icon>
|
|
|
<span> {{ props.title }} </span>
|
|
<span> {{ props.title }} </span>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -12,28 +13,34 @@
|
|
|
<el-tab-pane label="基本信息" style="height: 400px; overflow-y: auto; overflow-x: hidden">
|
|
<el-tab-pane label="基本信息" style="height: 400px; overflow-y: auto; overflow-x: hidden">
|
|
|
<el-row :gutter="35">
|
|
<el-row :gutter="35">
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="租户类型" :rules="[{ required: true, message: '租户类型不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <g-sys-dict v-model="state.ruleForm.tenantType" code="TenantTypeEnum" render-as="radio" :disabled="state.ruleForm.id != undefined" />
|
|
|
|
|
|
|
+ <el-form-item label="租户类型"
|
|
|
|
|
+ :rules="[{ required: true, message: '租户类型不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <g-sys-dict v-model="state.ruleForm.tenantType" code="TenantTypeEnum" render-as="radio"
|
|
|
|
|
+ :disabled="state.ruleForm.id != undefined" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="租户名称" prop="name" :rules="[{ required: true, message: '租户名称不能为空', trigger: 'blur' }]">
|
|
|
|
|
|
|
+ <el-form-item label="租户名称" prop="name"
|
|
|
|
|
+ :rules="[{ required: true, message: '租户名称不能为空', trigger: 'blur' }]">
|
|
|
<el-input v-model="state.ruleForm.name" placeholder="租户名称" clearable />
|
|
<el-input v-model="state.ruleForm.name" placeholder="租户名称" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="租管账号" prop="adminAccount" :rules="[{ required: true, message: '租管账号不能为空', trigger: 'blur' }]">
|
|
|
|
|
|
|
+ <el-form-item label="租管账号" prop="adminAccount"
|
|
|
|
|
+ :rules="[{ required: true, message: '租管账号不能为空', trigger: 'blur' }]">
|
|
|
<el-input v-model="state.ruleForm.adminAccount" placeholder="租管账号" clearable />
|
|
<el-input v-model="state.ruleForm.adminAccount" placeholder="租管账号" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="电话" prop="phone" :rules="[{ required: true, message: '电话号码不能为空', trigger: 'blur' }]">
|
|
|
|
|
|
|
+ <el-form-item label="电话" prop="phone"
|
|
|
|
|
+ :rules="[{ required: true, message: '电话号码不能为空', trigger: 'blur' }]">
|
|
|
<el-input v-model="state.ruleForm.phone" placeholder="电话" clearable />
|
|
<el-input v-model="state.ruleForm.phone" placeholder="电话" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
<el-form-item label="数据库类型">
|
|
<el-form-item label="数据库类型">
|
|
|
- <el-select v-model="state.ruleForm.dbType" placeholder="数据库类型" clearable class="w100" :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined">
|
|
|
|
|
|
|
+ <el-select v-model="state.ruleForm.dbType" placeholder="数据库类型" clearable class="w100"
|
|
|
|
|
+ :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined">
|
|
|
<el-option label="MySql" :value="0" />
|
|
<el-option label="MySql" :value="0" />
|
|
|
<el-option label="SqlServer" :value="1" />
|
|
<el-option label="SqlServer" :value="1" />
|
|
|
<el-option label="Sqlite" :value="2" />
|
|
<el-option label="Sqlite" :value="2" />
|
|
@@ -69,24 +76,17 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
<el-form-item label="连接字符串">
|
|
<el-form-item label="连接字符串">
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.ruleForm.connection"
|
|
|
|
|
- placeholder="连接字符串"
|
|
|
|
|
- clearable
|
|
|
|
|
|
|
+ <el-input v-model="state.ruleForm.connection" placeholder="连接字符串" clearable
|
|
|
type="textarea"
|
|
type="textarea"
|
|
|
- :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
<el-form-item label="从库连接串">
|
|
<el-form-item label="从库连接串">
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.ruleForm.slaveConnections"
|
|
|
|
|
|
|
+ <el-input v-model="state.ruleForm.slaveConnections"
|
|
|
placeholder="格式:[{'HitRate':10, 'ConnectionString':'xxx'},{'HitRate':10, 'ConnectionString':'xxx'}]"
|
|
placeholder="格式:[{'HitRate':10, 'ConnectionString':'xxx'},{'HitRate':10, 'ConnectionString':'xxx'}]"
|
|
|
- clearable
|
|
|
|
|
- type="textarea"
|
|
|
|
|
- :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ clearable type="textarea"
|
|
|
|
|
+ :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
@@ -101,54 +101,70 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
<el-form-item label="备注">
|
|
<el-form-item label="备注">
|
|
|
- <el-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea" />
|
|
|
|
|
|
|
+ <el-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable
|
|
|
|
|
+ type="textarea" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="站点信息" style="height: 400px; overflow: auto; overflow-x: hidden">
|
|
|
|
|
|
|
+ <el-tab-pane label="站点信息" style="height: 400px; overflow: auto; overflow-x: hidden"
|
|
|
|
|
+ v-if="state.ruleForm.host?.trim()">
|
|
|
<el-row :gutter="35">
|
|
<el-row :gutter="35">
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
- <el-form-item label="Logo" prop="logo" :rules="[{ required: true, message: '应用Logo不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-upload ref="uploadRef" class="avatar-uploader" :showFileList="false" :autoUpload="false" accept=".jpg,.png,.svg" action :limit="1" :onChange="handleUploadChange">
|
|
|
|
|
- <img v-if="state.ruleForm.logo" :src="state.ruleForm.logo" class="avatar" style="max-width: 100px; max-height: 100px; object-fit: contain" />
|
|
|
|
|
|
|
+ <el-form-item label="Logo" prop="logo"
|
|
|
|
|
+ :rules="[{ required: true, message: '应用Logo不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <el-upload ref="uploadRef" class="avatar-uploader" :showFileList="false"
|
|
|
|
|
+ :autoUpload="false" accept=".jpg,.png,.svg" action :limit="1"
|
|
|
|
|
+ :onChange="handleUploadChange">
|
|
|
|
|
+ <img v-if="state.ruleForm.logo" :src="state.ruleForm.logo" class="avatar"
|
|
|
|
|
+ style="max-width: 100px; max-height: 100px; object-fit: contain" />
|
|
|
<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" :size="28" />
|
|
<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" :size="28" />
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="标题" prop="title" :rules="[{ required: true, message: '标题不能为空', trigger: 'blur' }]">
|
|
|
|
|
|
|
+ <el-form-item label="标题" prop="title"
|
|
|
|
|
+ :rules="[{ required: true, message: '标题不能为空', trigger: 'blur' }]">
|
|
|
<el-input v-model="state.ruleForm.title" placeholder="应用标题" maxlength="32" clearable />
|
|
<el-input v-model="state.ruleForm.title" placeholder="应用标题" maxlength="32" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="副标题" prop="viceTitle" :rules="[{ required: true, message: '副标题不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-input v-model="state.ruleForm.viceTitle" placeholder="应用副标题" maxlength="32" clearable />
|
|
|
|
|
|
|
+ <el-form-item label="副标题" prop="viceTitle"
|
|
|
|
|
+ :rules="[{ required: true, message: '副标题不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <el-input v-model="state.ruleForm.viceTitle" placeholder="应用副标题" maxlength="32"
|
|
|
|
|
+ clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
- <el-form-item label="副标题描述" prop="viceDesc" :rules="[{ required: true, message: '副标题描述不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-input v-model="state.ruleForm.viceDesc" placeholder="应用副标题描述" maxlength="64" clearable />
|
|
|
|
|
|
|
+ <el-form-item label="副标题描述" prop="viceDesc"
|
|
|
|
|
+ :rules="[{ required: true, message: '副标题描述不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <el-input v-model="state.ruleForm.viceDesc" placeholder="应用副标题描述" maxlength="64"
|
|
|
|
|
+ clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" class="mb20">
|
|
|
- <el-form-item label="版权信息" prop="copyright" :rules="[{ required: true, message: '版权信息不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-input v-model="state.ruleForm.copyright" placeholder="版权信息" maxlength="64" clearable />
|
|
|
|
|
|
|
+ <el-form-item label="版权信息" prop="copyright"
|
|
|
|
|
+ :rules="[{ required: true, message: '版权信息不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <el-input v-model="state.ruleForm.copyright" placeholder="版权信息" maxlength="64"
|
|
|
|
|
+ clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="备案号" prop="icp" :rules="[{ required: true, message: '备案号不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-input v-model="state.ruleForm.icp" placeholder="备案号" maxlength="32" clearable />
|
|
|
|
|
|
|
+ <el-form-item label="备案号" prop="icp">
|
|
|
|
|
+ <el-input v-model="state.ruleForm.icp" placeholder="例:省ICP备12345678号" maxlength="32" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
- <el-form-item label="ICP地址" prop="icpUrl" :rules="[{ required: true, message: 'ICP地址不能为空', trigger: 'blur' }]">
|
|
|
|
|
- <el-input v-model="state.ruleForm.icpUrl" placeholder="ICP地址" maxlength="32" clearable />
|
|
|
|
|
|
|
+ <el-form-item label="ICP地址" prop="icpUrl"
|
|
|
|
|
+ :rules="[{ required: state.ruleForm.icp, message: 'ICP地址不能为空', trigger: 'blur' }]">
|
|
|
|
|
+ <el-input v-model="state.ruleForm.icpUrl" placeholder="例:https://beian.miit.gov.cn" maxlength="32"
|
|
|
|
|
+ clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
|
|
<el-form-item label="水印" prop="watermark">
|
|
<el-form-item label="水印" prop="watermark">
|
|
|
- <el-input v-model="state.ruleForm.watermark" placeholder="如果此处留空,则水印功能将被禁用" maxlength="32" clearable />
|
|
|
|
|
|
|
+ <el-input v-model="state.ruleForm.watermark" placeholder="如果此处留空,则水印功能将被禁用"
|
|
|
|
|
+ maxlength="32" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -201,8 +217,6 @@ const openDialog = async (row: any) => {
|
|
|
state.selectedTabName = '0';
|
|
state.selectedTabName = '0';
|
|
|
ruleFormRef.value?.resetFields();
|
|
ruleFormRef.value?.resetFields();
|
|
|
state.ruleForm = JSON.parse(JSON.stringify(row));
|
|
state.ruleForm = JSON.parse(JSON.stringify(row));
|
|
|
- state.ruleForm.icp ??= '省ICP备12345678号';
|
|
|
|
|
- state.ruleForm.icpUrl ??= 'https://beian.miit.gov.cn';
|
|
|
|
|
state.ruleForm.copyright ??= `Copyright \u00a9 ${new Date().getFullYear()}-present xxxxx All rights reserved.`;
|
|
state.ruleForm.copyright ??= `Copyright \u00a9 ${new Date().getFullYear()}-present xxxxx All rights reserved.`;
|
|
|
state.isShowDialog = true;
|
|
state.isShowDialog = true;
|
|
|
state.regWayData = await getAPI(SysUserRegWayApi).apiSysUserRegWayListPost({ tenantId: row.id }).then((res) => res.data.result ?? []);
|
|
state.regWayData = await getAPI(SysUserRegWayApi).apiSysUserRegWayListPost({ tenantId: row.id }).then((res) => res.data.result ?? []);
|