Pārlūkot izejas kodu

新增数据库名称校验逻辑

韩帛霖 1 gadu atpakaļ
vecāks
revīzija
2f769a00c7

+ 10 - 0
ruoyi-ui/src/api/system/data.js

@@ -19,3 +19,13 @@ export function addSave(data) {
     data: data
   })
 }
+
+
+export function getDataSourceInfo(query) {
+  return request({
+    url: '/dataSource/querySelectDataSource',
+    method: 'get',
+    params: query,
+    baseURL:process.env.VUE_APP_BASE_API2
+  })
+}

+ 72 - 45
ruoyi-ui/src/views/system/tenant/index.vue

@@ -2,19 +2,22 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="租户名称" prop="tenantName">
-        <el-input v-model="queryParams.tenantName" placeholder="请输入租户名称" clearable @keyup.enter.native="handleQuery" />
+        <el-input v-model="queryParams.tenantName" placeholder="请输入租户名称" clearable
+                  @keyup.enter.native="handleQuery"/>
       </el-form-item>
       <el-form-item label="租户编号" prop="tenantCode">
-        <el-input v-model="queryParams.tenantCode" placeholder="请输入租户编号" clearable @keyup.enter.native="handleQuery" />
+        <el-input v-model="queryParams.tenantCode" placeholder="请输入租户编号" clearable
+                  @keyup.enter.native="handleQuery"/>
       </el-form-item>
       <el-form-item label="负责人" prop="owner">
-        <el-input v-model="queryParams.owner" placeholder="请输入负责人" clearable @keyup.enter.native="handleQuery" />
+        <el-input v-model="queryParams.owner" placeholder="请输入负责人" clearable @keyup.enter.native="handleQuery"/>
       </el-form-item>
       <el-form-item label="联系方式" prop="contactInfo">
-        <el-input v-model="queryParams.contactInfo" placeholder="请输入联系方式" clearable @keyup.enter.native="handleQuery" />
+        <el-input v-model="queryParams.contactInfo" placeholder="请输入联系方式" clearable
+                  @keyup.enter.native="handleQuery"/>
       </el-form-item>
       <el-form-item label="地址" prop="address">
-        <el-input v-model="queryParams.address" placeholder="请输入地址" clearable @keyup.enter.native="handleQuery" />
+        <el-input v-model="queryParams.address" placeholder="请输入地址" clearable @keyup.enter.native="handleQuery"/>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -25,7 +28,8 @@
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
-          v-hasPermi="['system:tenant:add']">新增</el-button>
+                   v-hasPermi="['system:tenant:add']">新增
+        </el-button>
       </el-col>
       <!-- <el-col :span="1.5">
         <el-button
@@ -40,23 +44,25 @@
       </el-col> -->
       <el-col :span="1.5">
         <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['system:tenant:remove']">删除</el-button>
+                   v-hasPermi="['system:tenant:remove']">删除
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
-          v-hasPermi="['system:tenant:export']">导出</el-button>
+                   v-hasPermi="['system:tenant:export']">导出
+        </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="tenantList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="租户ID" align="center" prop="tenantId" />
-      <el-table-column label="租户名称" align="center" prop="tenantName" />
-      <el-table-column label="租户编号" align="center" prop="tenantCode" />
-      <el-table-column label="负责人" align="center" prop="owner" />
-      <el-table-column label="联系方式" align="center" prop="contactInfo" />
-      <el-table-column label="地址" align="center" prop="address" />
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="租户ID" align="center" prop="tenantId"/>
+      <el-table-column label="租户名称" align="center" prop="tenantName"/>
+      <el-table-column label="租户编号" align="center" prop="tenantCode"/>
+      <el-table-column label="负责人" align="center" prop="owner"/>
+      <el-table-column label="联系方式" align="center" prop="contactInfo"/>
+      <el-table-column label="地址" align="center" prop="address"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-dropdown>
@@ -64,12 +70,21 @@
               处理<i class="el-icon-arrow-down el-icon--right"></i>
             </el-button>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item><el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-                  v-hasPermi="['system:tenant:edit']">修改</el-button></el-dropdown-item>
-              <el-dropdown-item><el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-                  v-hasPermi="['system:tenant:remove']">删除</el-button></el-dropdown-item>
-              <el-dropdown-item><el-button size="mini" type="text" icon="el-icon-edit" @click="bindDatasource(scope.row)"
-                  v-show="scope.row.datasourceId == null" >绑定数据源</el-button></el-dropdown-item>
+              <el-dropdown-item>
+                <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+                           v-hasPermi="['system:tenant:edit']">修改
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                           v-hasPermi="['system:tenant:remove']">删除
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button size="mini" type="text" icon="el-icon-edit" @click="bindDatasource(scope.row)"
+                           v-show="scope.row.datasourceId == null">绑定数据源
+                </el-button>
+              </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -77,25 +92,25 @@
     </el-table>
 
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-      @pagination="getList" />
+                @pagination="getList"/>
 
     <!-- 添加或修改租户信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="租户名称" prop="tenantName">
-          <el-input v-model="form.tenantName" placeholder="请输入租户名称" />
+          <el-input v-model="form.tenantName" placeholder="请输入租户名称"/>
         </el-form-item>
         <el-form-item label="租户编号" prop="tenantCode">
-          <el-input v-model="form.tenantCode" placeholder="请输入租户编号" />
+          <el-input v-model="form.tenantCode" placeholder="请输入租户编号"/>
         </el-form-item>
         <el-form-item label="负责人" prop="owner">
-          <el-input v-model="form.owner" placeholder="请输入负责人" />
+          <el-input v-model="form.owner" placeholder="请输入负责人"/>
         </el-form-item>
         <el-form-item label="联系方式" prop="contactInfo">
-          <el-input v-model="form.contactInfo" placeholder="请输入联系方式" />
+          <el-input v-model="form.contactInfo" placeholder="请输入联系方式"/>
         </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>
       <div slot="footer" class="dialog-footer">
@@ -106,27 +121,27 @@
 
     <!-- 添加或修改数据源信息对话框 -->
     <el-dialog :title="dataSourceTitle" :visible.sync="dataSourceOpen" width="500px" append-to-body>
-      <el-form ref="dataSourceForm" :model="dataSourceForm"  label-width="90px">
+      <el-form ref="dataSourceForm" :model="dataSourceForm" label-width="90px">
         <el-form-item label="数据源类型">
-          <el-select v-model="dataSourceForm.databaseType" placeholder="请选择数据源类型">
+          <el-select v-model="dataSourceForm.databaseType" placeholder="请选择数据源类型" @change="selecthandle">
             <el-option v-for="item in dict.type.datasource_type" :key="item.value" :label="item.label"
-              :value="item.value"></el-option>
+                       :value="item.value"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="数据库名称" >
-          <el-input v-model="dataSourceForm.databaseName" placeholder="请输入数据库名称" />
+        <el-form-item label="数据库名称">
+          <el-input v-model="dataSourceForm.databaseName" placeholder="请输入数据库名称"/>
         </el-form-item>
-        <el-form-item label="数据库IP" >
-          <el-input v-model="dataSourceForm.databaseIp" placeholder="请输数据库IP" />
+        <el-form-item label="数据库IP">
+          <el-input v-model="dataSourceForm.databaseIp" placeholder="请输数据库IP"/>
         </el-form-item>
-        <el-form-item label="用户名" >
-          <el-input v-model="dataSourceForm.username" placeholder="请输入用户名" />
+        <el-form-item label="用户名">
+          <el-input v-model="dataSourceForm.username" placeholder="请输入用户名"/>
         </el-form-item>
-        <el-form-item label="密码" >
-          <el-input v-model="dataSourceForm.password" placeholder="请输入密码" />
+        <el-form-item label="密码">
+          <el-input v-model="dataSourceForm.password" placeholder="请输入密码"/>
         </el-form-item>
-        <el-form-item label="端口号" >
-          <el-input v-model="dataSourceForm.portNumber" placeholder="请输入端口号" />
+        <el-form-item label="端口号">
+          <el-input v-model="dataSourceForm.portNumber" placeholder="请输入端口号"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -146,6 +161,7 @@ import {
   updateTenant,
   bindDatasource,
 } from "@/api/system/tenant";
+import {getDataSourceInfo} from "@/api/system/data";
 
 export default {
   name: "Tenant",
@@ -185,10 +201,10 @@ export default {
       // 表单校验
       rules: {
         tenantName: [
-          { required: true, message: "租户名称不能为空", trigger: "blur" },
+          {required: true, message: "租户名称不能为空", trigger: "blur"},
         ],
         tenantCode: [
-          { required: true, message: "租户编号不能为空", trigger: "blur" },
+          {required: true, message: "租户编号不能为空", trigger: "blur"},
         ],
       },
       //数据源表单参数
@@ -202,7 +218,8 @@ export default {
     this.getList();
   },
   methods: {
-    handleOpe() { },
+    handleOpe() {
+    },
     /** 查询租户信息列表 */
     getList() {
       this.loading = true;
@@ -325,7 +342,7 @@ export default {
 
             console.log(this.fromTenantId)
             let query = {
-              tenantId:this.fromTenantId,
+              tenantId: this.fromTenantId,
               dataSource: this.dataSourceForm
             }
             bindDatasource(query).then((response) => {
@@ -349,7 +366,8 @@ export default {
           this.getList();
           this.$modal.msgSuccess("删除成功");
         })
-        .catch(() => { });
+        .catch(() => {
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -361,6 +379,15 @@ export default {
         `tenant_${new Date().getTime()}.xlsx`
       );
     },
+    /**
+     * 选择数据源校验名称
+     */
+    selecthandle(row) {
+      console.log(row);
+      getDataSourceInfo({type: row}).then(res => {
+        console.log(res);
+      })
+    }
   },
 };
 </script>