فهرست منبع

绑定数据源:添加租户管理员账号字段及唯一校验

lph 1 سال پیش
والد
کامیت
4a9eca22ff
2فایلهای تغییر یافته به همراه46 افزوده شده و 4 حذف شده
  1. 8 0
      ruoyi-ui/src/api/system/tenant.js
  2. 38 4
      ruoyi-ui/src/views/system/tenant/index.vue

+ 8 - 0
ruoyi-ui/src/api/system/tenant.js

@@ -51,3 +51,11 @@ export function bindDatasource(data) {
     data: data
   })
 }
+
+// 获取用户信息
+export function selectAllUser() {
+  return request({
+    url: '/system/user/selectAllUser',
+    method: 'get'
+  })
+}

+ 38 - 4
ruoyi-ui/src/views/system/tenant/index.vue

@@ -233,7 +233,7 @@
         ref="dataSourceForm"
         :model="dataSourceForm"
         :rules="dataSourceFormRules"
-        label-width="100px"
+        label-width="120px"
       >
         <el-form-item label="数据源类型" prop="databaseType">
           <el-select
@@ -256,6 +256,13 @@
             placeholder="请输入数据库名称"
           />
         </el-form-item>
+        <el-form-item label="租户管理员账号" prop="tenantAccount">
+          <el-input
+            v-model="dataSourceForm.tenantAccount"
+            placeholder="请输入租户管理员账号"
+          />
+        </el-form-item>
+
         <!-- !dataSourceType -->
         <el-form-item
           label="数据库IP"
@@ -303,6 +310,7 @@ import {
   addTenant,
   updateTenant,
   bindDatasource,
+  selectAllUser,
 } from "@/api/system/tenant";
 import { getDataSourceInfo, insertDataSource } from "@/api/system/data";
 
@@ -335,6 +343,8 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      // 所有用户信息
+      allUser: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -361,6 +371,7 @@ export default {
       dataSourceForm: {
         databaseType: "",
         databaseName: "",
+        tenantAccount: "",
         databaseIp: "",
         username: "",
         password: "",
@@ -376,6 +387,10 @@ export default {
         databaseName: [
           { required: true, message: "数据库名不能为空", trigger: "blur" },
         ],
+        tenantAccount: [
+          { required: true, message: "租户账号不能为空", trigger: "change" },
+          { validator: this.tenantAccountValidator, trigger: "blur" },
+        ],
         databaseIp: [
           { required: true, message: "数据库IP不能为空", trigger: "blur" },
         ],
@@ -392,14 +407,33 @@ export default {
     };
   },
   computed: {
-    palcemsg(){
-      return this.dataSourceType ? 'mysql' : '请选择数据源类型'
-    }
+    palcemsg() {
+      return this.dataSourceType ? "mysql" : "请选择数据源类型";
+    },
   },
   created() {
     this.getList();
+    this.selectAllUser();
   },
   methods: {
+    // 获取所用用户名,作校验用
+    async selectAllUser() {
+      let res = await selectAllUser();
+      if (res.code == 200) {
+        this.allUser = res.data;
+      } else {
+        console.log(res.msg);
+      }
+    },
+    // 租户名自定义校验规则
+    tenantAccountValidator(rule, value, callback) {
+      let isRepeat = this.allUser.filter((item) => item.userName == value);
+      if (isRepeat.length !== 0) {
+        callback(new Error("租户账号重复"));
+      } else {
+        callback();
+      }
+    },
     // 数据源类型改变回调
     dataSourceTypeChange(type) {
       this.$nextTick(() => {