Browse Source

2022/8/17

Cheng 3 years ago
parent
commit
ff881d8b12
3 changed files with 887 additions and 608 deletions
  1. 82 34
      src/views/client/index.vue
  2. 10 1
      src/views/login/index.vue
  3. 795 573
      src/views/user/index.vue

+ 82 - 34
src/views/client/index.vue

@@ -40,16 +40,16 @@
     <el-dialog :title="title" :visible.sync="visible" width="500px" :before-close="close">
       <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" label-position="left">
 
-        <el-form-item label="租户名称" prop="name">
+        <!-- <el-form-item label="租户名称" prop="name">
           <el-input v-model="ruleForm.name" placeholder="请输入租户名称"></el-input>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea"></el-input>
-        </el-form-item>
+        </el-form-item> -->
 
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="名称" prop="name">
+            <el-form-item label="租户名称" prop="name">
               <el-input v-model="ruleForm.name" placeholder="请输入名称"></el-input>
             </el-form-item>
           </el-col>
@@ -103,19 +103,26 @@
           </el-col>
          
         </el-row>
-         <!-- <el-row :gutter="24">
+        <el-row :gutter="24" v-if="pswdshow">
           <el-col :span="24">
             <el-form-item label="管理员密码" prop="password">
               <el-input v-model="ruleForm.password" placeholder="请输入管理员密码"></el-input>
             </el-form-item>
           </el-col>
-         
-        </el-row> -->
+        </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="可用功能权限" prop="power">
-              <el-input v-model="ruleForm.power" placeholder="请输入可用功能权限"></el-input>
-            </el-form-item>
+            <el-form-item label="功能权限" prop="function">
+           <el-cascader
+           v-model="ruleForm.function"
+              :options="authority"
+              :props="{multiple:true, checkStrictly: false,value:'id',label:'name' }"
+              collapse-tags
+              placeholder="请输入功能权限"
+              clearable
+              style="width:100%"></el-cascader>
+          <!-- <el-input v-model="ruleForm.function" placeholder="请输入功能权限"></el-input> -->
+        </el-form-item>
           </el-col>
         </el-row>
         <el-form-item label="是否启用" prop="state">
@@ -147,32 +154,43 @@
     </el-dialog>
 
     <el-dialog :title="title" :visible.sync="showvisible" width="700px" class="my-dialog-name" contentStyle="width:400px;" :before-close="close" v-if="ruleForm.apply!=null">
-        <el-form label-position="left"  class="demo-table-expand" label-width="80px">
-          <el-form-item label="管理员 :">
-            <span>{{ruleForm.apply.username}}</span>
-          </el-form-item>
-          <el-form-item label="租户名称 :">
+        <el-form label-position="left"  class="demo-table-expand" label-width="110px">
+          <el-form-item label="租户名称 :" class="marginB">
             <span>{{ruleForm.apply.name}}</span>
           </el-form-item>
-          <el-form-item label="联系人 :">
+          <el-form-item label="联系人 :" class="marginB">
             <span>{{ruleForm.apply.contacts}}</span>
           </el-form-item>
-          <el-form-item label="联系地址 :">
+          <el-form-item label="联系人邮箱 :" class="marginB">
+            <span>{{ruleForm.apply.email}}</span>
+          </el-form-item>
+          <el-form-item label="联系地址 :" class="marginB">
             <span>{{ruleForm.apply.address}}</span>
           </el-form-item>
-          <el-form-item label="租户类型 :">
-            <span>{{ruleForm.apply.type}}</span>
+          <el-form-item label="描述 :" class="marginB">
+            <span>{{ruleForm.apply.describe}}</span>
           </el-form-item>
-          <el-form-item label="邮箱 :">
-            <span>{{ruleForm.apply.email}}</span>
+
+          <el-form-item label="用户账号配额 :" class="marginB">
+            <span>{{ruleForm.apply.number}}</span>
+          </el-form-item>
+
+          <el-form-item label="管理员 :" class="marginB">
+            <span>{{ruleForm.apply.username}}</span>
+          </el-form-item>
+          <el-form-item label="可用功能权限 :" class="marginB">
+            <span>{{ruleForm.apply.function}}</span>
           </el-form-item>
-          <el-form-item label="租户状态 :">
+          <el-form-item label="租户状态 :" class="marginB">
             <span>{{ruleForm.apply.state === 1 ? '已启用' : '未启用'}}</span>
           </el-form-item>
-          <el-form-item label="备注 :">
-            <span>{{ruleForm.apply.describe}}</span>
+
+          <el-form-item label="租户类型 :" class="marginB">
+            <span>{{ruleForm.apply.type}}</span>
           </el-form-item>
-         
+          <!-- <el-form-item label="备注 :" class="marginB">
+            <span>{{ruleForm.apply.describe}}</span>
+          </el-form-item> -->
         </el-form>
 
     </el-dialog>
@@ -185,7 +203,10 @@ export default {
   },
   data() {
     return {
-      select: [],
+      trans: [],
+      authority: [],
+      pswdshow: false,
+      select: JSON.parse(localStorage.getItem('TENANT_TYPE')),
       showvisible: false,
       visible: false,
       loading: false,
@@ -212,19 +233,20 @@ export default {
         	email:[{required:true,message: "请输入手机号码", trigger: "blur"},
       		{pattern:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\.\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
        		 message:'请输入正确的邮箱格式',trigger:'blur'}],
-          
       },
     }
   },
   mounted() {
     this.getList()
-    this.getSelect()
+    this.getFunction()
+    this.translate()
     // console.log(this.select)
   },
   methods: {
     handleAdd() {
       this.title = '新增租户'
       this.visible = true
+      this.pswdshow = true
       this.ruleForm = {
          state:1
       }
@@ -232,6 +254,7 @@ export default {
     handleEdit(row) {
       this.title = '编辑租户'
       this.visible = true
+      this.pswdshow = false
       this.ruleForm = { ...row }
       
     },
@@ -244,26 +267,48 @@ export default {
     close() {
       this.visible = false
       this.showvisible = false
+      this.pswdshow = false
+    },
+    translate() {
+      for (let i = 0; i < this.select.length; i++) {
+        this.trans.push(this.select[i].dictChildLabel)
+      }
     },
-
     getList() {
       this.loading = true
       this.$api.getTenantList(this.queryParams).then(response => {
+        for (let i = 0; i < response.data.length; i++) {
+          for (let j = 0; j < this.trans.length; j++) {
+            if (response.data[i].type === this.select[j].dictChildValue) {
+              response.data[i].type = this.trans[j]
+            }
+          }
+        }
         this.tableData = response.data
+        // console.log(response.data)
+        
         this.total = response.pageColumn.total
         this.loading = false
       }).catch(error => {
         this.loading = false
       })
     },
-    getSelect() {
-      this.$api.getDict().then(reponse => {
-        for (let i = 0; i < reponse.data.TENANT_TYPE.length; i++) {
-          this.select[i] = reponse.data.TENANT_TYPE[i]
-        }
-        // this.$set(this.select, reponse.data.TENANT_TYPE)
+    getFunction() {
+      this.$api.getFunctionList().then(response => {
+        // console.log(response.data)
+        this.authority = response.data
+        // this.tableData = response.data
+        // this.total=response.pageColumn.total
+        // this.loading = false
+      }).catch(error => {
+        this.loading = true
       })
     },
+    // getSelect() {
+    //   this.$api.getDict().then(response => {
+    //     this.select = response.data.TENANT_TYPE
+    //   })
+    // },
     handleCurrentChange(val) {
       this.queryParams.current = val;
       this.getList();
@@ -321,4 +366,7 @@ export default {
 .admin-client {
 
 }
+.marginB {
+  margin-bottom: 0;
+}
 </style>

+ 10 - 1
src/views/login/index.vue

@@ -188,6 +188,14 @@ export default {
         this.captcha = response.data.captcha
       })
     },
+    // 获取
+    getSelect() {
+      this.$api.getDict().then(response => {
+        localStorage.setItem('IS_ENABLE', response.data.IS_ENABLE)
+        localStorage.setItem('SEX', response.data.SEX)
+        localStorage.setItem('TENANT_TYPE', JSON.stringify(response.data.TENANT_TYPE))
+      })
+    },
     // 登录按钮点击
     submitForm() {
       this.btnLoading = true;
@@ -195,10 +203,11 @@ export default {
         Storage.setStr('username', this.ruleForm.username)
         Storage.setStr('password', this.ruleForm.password)
         this.btnLoading = false
-           this.$message.success('登录成功')
+          this.$message.success('登录成功')
             this.$router.push({
               path: '/admin'
             })
+            this.getSelect()
       }).catch(error => {
         this.getCode()
         this.btnLoading = false

File diff suppressed because it is too large
+ 795 - 573
src/views/user/index.vue