浏览代码

Merge branch 'dev' into zl

zhuliu 3 年之前
父节点
当前提交
add9a01e01
共有 5 个文件被更改,包括 228 次插入54 次删除
  1. 7 1
      src/api/admin.js
  2. 61 7
      src/views/client/index.vue
  3. 1 1
      src/views/layout/components/UserBar.vue
  4. 19 15
      src/views/layout/index.vue
  5. 140 30
      src/views/user/index.vue

+ 7 - 1
src/api/admin.js

@@ -278,5 +278,11 @@ export default {
         method: 'post',
         params: params
       })
-    },
+  },
+    /**
+    * 获取租户类型
+    */
+  getDict(params) {
+    return axios.get('/permission/api/dict/getDict', { params })
+  }
 }

+ 61 - 7
src/views/client/index.vue

@@ -27,6 +27,7 @@
           <el-dropdown split-button type="primary" size="small" @click="handleEdit(scope.row)">
             编辑
             <el-dropdown-menu slot="dropdown" class="text-align_center">
+              <el-dropdown-item @click.native="handleDetails(scope.row)">详情</el-dropdown-item>
               <el-dropdown-item class="color-red" @click.native="handleDelete(scope.row)" divided>删除</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
@@ -37,7 +38,7 @@
       <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total" @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
     </div>
     <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="80px" label-position="left">
+      <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" label-position="left">
 
         <el-form-item label="租户名称" prop="name">
           <el-input v-model="ruleForm.name" placeholder="请输入租户名称"></el-input>
@@ -45,8 +46,7 @@
         <el-form-item label="备注" prop="remark">
           <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea"></el-input>
         </el-form-item>
-      </el-form> -->
-      <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" label-position="left">
+
         <el-row :gutter="24">
           <el-col :span="24">
             <el-form-item label="名称" prop="name">
@@ -103,14 +103,14 @@
           </el-col>
          
         </el-row>
-         <el-row :gutter="24">
+         <!-- <el-row :gutter="24">
           <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">
@@ -131,7 +131,10 @@
         <el-row :gutter="24">
           <el-col :span="24">
             <el-form-item label="类型" prop="type">
-              <el-input v-model="ruleForm.type" placeholder="请输入类型"></el-input>
+              <!-- <el-input v-model="ruleForm.type" placeholder="请输入类型"></el-input> -->
+              <el-select v-model="ruleForm.type" filterable placeholder="请选择类型" style="width: 100%">
+                <el-option v-for="item in select" :key="item.id" :value="item.dictChildLabel"></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
          
@@ -142,6 +145,37 @@
         <el-button type="primary" @click="submit" :loading="btnLoading">确 定</el-button>
       </div>
     </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="租户名称 :">
+            <span>{{ruleForm.apply.name}}</span>
+          </el-form-item>
+          <el-form-item label="联系人 :">
+            <span>{{ruleForm.apply.contacts}}</span>
+          </el-form-item>
+          <el-form-item label="联系地址 :">
+            <span>{{ruleForm.apply.address}}</span>
+          </el-form-item>
+          <el-form-item label="租户类型 :">
+            <span>{{ruleForm.apply.type}}</span>
+          </el-form-item>
+          <el-form-item label="邮箱 :">
+            <span>{{ruleForm.apply.email}}</span>
+          </el-form-item>
+          <el-form-item label="租户状态 :">
+            <span>{{ruleForm.apply.state === 1 ? '已启用' : '未启用'}}</span>
+          </el-form-item>
+          <el-form-item label="备注 :">
+            <span>{{ruleForm.apply.describe}}</span>
+          </el-form-item>
+         
+        </el-form>
+
+    </el-dialog>
   </div>
 </template>
 
@@ -151,6 +185,8 @@ export default {
   },
   data() {
     return {
+      select: [],
+      showvisible: false,
       visible: false,
       loading: false,
       btnLoading: false,
@@ -163,7 +199,6 @@ export default {
         name: ''
       },
       ruleForm: {
-       
       },
      rules: {
         name: [{ required: true, message: '请输入名称', trigger: 'blur' },],
@@ -183,6 +218,8 @@ export default {
   },
   mounted() {
     this.getList()
+    this.getSelect()
+    // console.log(this.select)
   },
   methods: {
     handleAdd() {
@@ -196,10 +233,19 @@ export default {
       this.title = '编辑租户'
       this.visible = true
       this.ruleForm = { ...row }
+      
+    },
+    handleDetails(row) {
+      // console.log(row)
+      this.title = '租户详情'
+      this.showvisible = true
+      this.ruleForm.apply = row
     },
     close() {
       this.visible = false
+      this.showvisible = false
     },
+
     getList() {
       this.loading = true
       this.$api.getTenantList(this.queryParams).then(response => {
@@ -210,6 +256,14 @@ export default {
         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)
+      })
+    },
     handleCurrentChange(val) {
       this.queryParams.current = val;
       this.getList();

+ 1 - 1
src/views/layout/components/UserBar.vue

@@ -8,7 +8,7 @@
       </div>
       <template slot="dropdown">
         <el-dropdown-menu>
-<!--          <el-dropdown-item command="userinfo">个人信息</el-dropdown-item>-->
+          <!-- <el-dropdown-item command="userinfo">个人信息</el-dropdown-item> -->
           <el-dropdown-item command="changePwd">修改密码</el-dropdown-item>
           <el-dropdown-item divided command="doLogout">退出登录</el-dropdown-item>
         </el-dropdown-menu>

+ 19 - 15
src/views/layout/index.vue

@@ -7,22 +7,22 @@
         </div>
       </div>
       <div class="header-right">
-        <user-bar/>
+        <user-bar />
       </div>
     </header>
     <section class="wrapper">
       <el-container>
         <el-aside width="210px" style="overflow:hidden" class="patent-articles-menu">
-           <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+          <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
   <el-radio-button :label="false">展开</el-radio-button>
   <el-radio-button :label="true">收起</el-radio-button>
 </el-radio-group> -->
-          <el-menu class="theme-dark" :default-active="activeMenu" @select="handleSelect" >
-           
-            <el-menu-item index="admin">
+          <el-menu class="theme-dark" :default-active="activeMenu" @select="handleSelect">
+
+            <!-- <el-menu-item index="admin">
                   <i class="el-icon-coordinate"></i>
                   <span slot="title">其他系统管理员管理</span>
-              </el-menu-item>
+            </el-menu-item> -->
             <el-menu-item index="client">
               <i class="el-icon-film"></i>
               <span slot="title">租户管理</span>
@@ -32,7 +32,7 @@
               <span slot="title">应用管理</span>
             </el-menu-item> -->
 
-             <!-- <el-submenu index="1">
+            <!-- <el-submenu index="1">
               <template slot="title">
                 <i class="el-icon-setting"></i>
                 <span>应用功能管理</span>
@@ -56,27 +56,27 @@
               <span slot="title">应用功能管理</span>
             </el-menu-item>
 
-             <el-menu-item index="department">
+            <el-menu-item index="department">
               <i class="el-icon-copy-document"></i>
               <span slot="title">部门管理</span>
             </el-menu-item>
-             <el-menu-item index="position">
+            <el-menu-item index="position">
               <i class="el-icon-present"></i>
               <span slot="title">职位管理</span>
             </el-menu-item>
-             <el-menu-item index="user">
+            <el-menu-item index="user">
               <i class="el-icon-user"></i>
               <span slot="title">人员管理</span>
             </el-menu-item>
-             <el-menu-item index="group">
+            <el-menu-item index="group">
               <i class="el-icon-menu"></i>
               <span slot="title">用户组管理</span>
             </el-menu-item>
-             <el-menu-item index="role">
+            <el-menu-item index="role">
               <i class="el-icon-eleme"></i>
               <span slot="title">角色管理</span>
             </el-menu-item>
-            
+
           </el-menu>
         </el-aside>
         <el-container>
@@ -139,16 +139,18 @@ export default {
   .header {
     height: 60px;
     background: #fff;
-    box-shadow: 0 1px 3px 0 rgba(0,0,0,.12), 0 0 3px 0 rgba(0,0,0,.04);
+    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
     border-bottom: 1px solid #d8dce5;
     margin-bottom: 10px;
     display: flex;
     justify-content: space-between;
+
     .logo-bar {
       font-size: 20px;
       font-weight: bold;
       display: flex;
       align-items: center;
+
       .logo {
         margin-right: 10px;
         width: 135px;
@@ -171,10 +173,12 @@ export default {
   .wrapper {
     width: 100%;
     height: calc(100% - 71px);
+
     .el-menu-item.is-active {
       background: #ecf5ff !important;
-      color: #409EFF!important;
+      color: #409EFF !important;
     }
+
     .admin-main-box {
       background: #fff !important;
       padding: 10px !important;

+ 140 - 30
src/views/user/index.vue

@@ -35,6 +35,7 @@
           <el-dropdown split-button type="primary" size="small" @click="handleEdit(scope.row)">
             编辑
             <el-dropdown-menu slot="dropdown" class="text-align_center">
+              <el-dropdown-item @click.native="handleDetails(scope.row)" divided>人员详情</el-dropdown-item>
               <el-dropdown-item @click.native="handleReset(scope.row)">重置密码</el-dropdown-item>
               <el-dropdown-item class="color-red" @click.native="handleDelete(scope.row)" divided>删除</el-dropdown-item>
             </el-dropdown-menu>
@@ -109,13 +110,13 @@
         </el-row>
 
 
-        <el-row :gutter="24">
+        <!-- <el-row :gutter="24">
           <el-col :span="24">
              <el-form-item label="职位[部门]" prop="nail">
              <template>
              <el-col :span="8" style="padding-left:0">
                  <el-form-item label-width="0" prop="position">
-              <!-- <treeselect
+              <treeselect
                   v-model="positionAndDepartment.department"
                   :options="departmentList"
                   :disable-branch-nodes="true"
@@ -123,7 +124,7 @@
                   placeholder="请选择部门"
                   :normalizer="normalizer"
                :multiple="false"
-              /> -->
+              />
                 <el-tooltip
                   class="item"
                   effect="dark"
@@ -138,32 +139,22 @@
               :show-all-levels="false"
               :props="{ checkStrictly: true,value:'id',label:'name' }"
               clearable
-        @change="handleChange"
-        placeholder="请选择部门">
+              @change="handleChange"
+              placeholder="请选择部门">
               </el-cascader>
               </el-tooltip>
-            </el-form-item>
-                   <el-form-item label-width="0" label-height="82" label-line-height="82px" prop="position">
-              <el-select v-model="positionAndDepartment.position" 
-            filterable
-            placeholder="请选择职位"
-            >
-            <el-option
-             v-for="item in positionList"
-                :key="item.name"
-                :label="item.position"
-                :value="item.id">
-              
-            </el-option>
-            
-          </el-select>
-            </el-form-item>
+              </el-form-item>
+                <el-form-item label-width="0" label-height="82" label-line-height="82px" prop="position">
+                  <el-select v-model="positionAndDepartment.position" filterable placeholder="请选择职位">
+                  <el-option v-for="item in positionList" :key="item.name" :label="item.position" :value="item.id"></el-option>
+                </el-select>
+              </el-form-item>
              </el-col>
                <el-col :span="2" style="height:82px;line-height:82px">
                     <el-button  type="primary" size="mini" @click="showInputLabel" circle icon="el-icon-plus"></el-button>
                 </el-col> 
                 <el-col :span="14" style="padding-right:0">
-                  <!-- <el-input type="textarea" :rows="3" v-model="ruleForm.position" readonly="true" placeholder="请输入职位[部门]"></el-input> -->
+                  <el-input type="textarea" :rows="3" v-model="ruleForm.position" readonly="true" placeholder="请输入职位[部门]"></el-input>
                 <template>
                   <div style="width:100%;height:75px;border:1px solid #C0C0C0;border-radius:4px;overflow:auto">
                     <el-tag
@@ -180,7 +171,9 @@
              </template>
             </el-form-item>
           </el-col>
-        <!-- <el-col :span="4">
+
+
+        <el-col :span="4">
            <el-tag  effect="dark" type="primary" size="small" closable :disable-transitions="false" @close="handleCloseLabel()">11</el-tag>
         </el-col>
         <el-col :span="18">
@@ -224,8 +217,69 @@
          
                 <el-col :span="2">
                     <el-button  type="primary" size="mini" @click="showInputLabel" circle icon="el-icon-plus"></el-button>
-                </el-col> -->        
+                </el-col>        
+
+
+        </el-row> -->
+
+
+
+        <el-row :gutter="24">
+          <el-col :span="24">
+             <el-form-item label="职位[部门]" prop="nail">
+             <template>
+             <el-col :span="8" style="padding-left:0">
+                 <el-form-item label-width="0" prop="position">
+                <el-tooltip
+                  class="item"
+                  effect="dark"
+                  :disabled="!labelVal"
+                  :content="labelVal"
+                  placement="top-start"
+                >
+            <el-cascader
+            ref="deptIdCascader"
+              v-model="positionAndDepartment.department"
+              :options="departmentList"
+              :show-all-levels="false"
+              :props="{ checkStrictly: true,value:'id',label:'name' }"
+              clearable
+              @change="handleChange"
+              placeholder="请选择部门">
+              </el-cascader>
+              </el-tooltip>
+              </el-form-item>
+              </el-col>
+
+              <el-col :span="8" style="padding-left:0">
+                <el-form-item label-width="0" label-height="82" label-line-height="82px" prop="position">
+                  <el-select v-model="positionAndDepartment.position" filterable placeholder="请选择职位">
+                  <el-option v-for="item in positionList" :key="item.name" :label="item.position" :value="item.id"></el-option>
+                </el-select>
+              </el-form-item>
+             </el-col>
+               <el-col :span="2">
+                    <el-button  type="primary" size="mini" @click="showInputLabel" circle icon="el-icon-plus"></el-button>
+                </el-col> 
+                <el-col :span="24" style="padding-left:0;margin: 10px 0 0 0;">
+                <template>
+                  <div style="width:100%;height:75px;border:1px solid #C0C0C0;border-radius:4px;overflow:auto">
+                    <el-tag
+                      v-for="(tag,index) in ruleForm.positions" :key="index"
+                      closable
+                      :disable-transitions="false"
+                      @close="handleClose(index)">
+                      <span>{{tag.positionName}}[{{tag.departmentName}}]</span>
+                    </el-tag>
+                  </div>
+                </template>
+                </el-col>
+             </template>
+            </el-form-item>
+          </el-col>      
         </el-row>
+
+
           <el-row :gutter="24">
              <el-col :span="12">
              <el-form-item label="所属用户组" prop="group">
@@ -289,14 +343,27 @@
               <el-input v-model="ruleForm.username" placeholder="请输入账号"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="密码" prop="password">
               <el-input v-model="ruleForm.password" placeholder="请输入密码"></el-input>
             </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="是否启用" prop="state">
+              <el-switch
+              :active-value="1" 
+              :inactive-value="0"
+              v-model="ruleForm.state"
+              active-color="#13ce66"
+              inactive-color="#ff4949">
+              </el-switch>
+              <!-- <el-input v-model="ruleForm.state" placeholder="请输入状态" type="textarea"></el-input> -->
+            </el-form-item>
           </el-col>
+          
         </el-row>
     
-        <el-form-item label="是否启用" prop="state">
+        <!-- <el-form-item label="是否启用" prop="state">
         <el-switch
           :active-value="1" 
           :inactive-value="0"
@@ -304,8 +371,8 @@
           active-color="#13ce66"
           inactive-color="#ff4949">
         </el-switch>
-          <!-- <el-input v-model="ruleForm.state" placeholder="请输入状态" type="textarea"></el-input> -->
-        </el-form-item>
+        <el-input v-model="ruleForm.state" placeholder="请输入状态" type="textarea"></el-input>
+        </el-form-item> -->
           
         <el-form-item label="备注" prop="remark">
           <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea" maxlength="100" show-word-limit></el-input>
@@ -316,6 +383,43 @@
         <el-button type="primary" @click="submit" :loading="btnLoading">确 定</el-button>
       </div>
     </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="姓名 :">
+            <span>{{ruleForm.apply.remark}}</span>
+          </el-form-item>
+          <el-form-item label="性别 :">
+            <span>{{ruleForm.apply.gender === 1 ? '男' : '女'}}</span>
+          </el-form-item>
+          <el-form-item label="邮箱 :">
+            <span>{{ruleForm.apply.email}}</span>
+          </el-form-item>
+          <el-form-item label="联系方式 :">
+            <span>{{ruleForm.apply.mobile}}</span>
+          </el-form-item>
+          <el-form-item label="QQ号 :">
+            <span>{{ruleForm.apply.qqNumber}}</span>
+          </el-form-item>
+          <el-form-item label="微信号 :">
+            <span>{{ruleForm.apply.mobile}}</span>
+          </el-form-item>
+          <el-form-item label="钉钉号 :">
+            <span>{{ruleForm.apply.nail}}</span>
+          </el-form-item>
+          <el-form-item label="是否启用 :">
+            <span>{{ruleForm.apply.state === 1 ? '已启用' : '未启用'}}</span>
+          </el-form-item>
+          <el-form-item label="备注 :">
+            <span>{{ruleForm.apply.remark}}</span>
+          </el-form-item>
+         
+        </el-form>
+
+    </el-dialog>
   </div>
 </template>
 
@@ -328,6 +432,7 @@ export default {
   },
   data() {
     return {
+      showvisible: false,
       visible: false,
       loading: false,
       btnLoading: false,
@@ -368,8 +473,6 @@ export default {
    positionAndDepartment:{},
       // departmentList: [],
       ruleForm: {
-        nails:[],
-        nail:''
       },
       rules: {
         name: [{ required: true, message: '请输入姓名', trigger: 'blur' },],
@@ -486,8 +589,15 @@ computed: {
       this.visible = true
       this.ruleForm = { ...row }
     },
+    handleDetails(row) {
+      console.log(row)
+      this.title = '人员详情'
+      this.showvisible = true
+      this.ruleForm.apply = row
+    },
     close() {
       this.visible = false
+      this.showvisible = false
     },
     getDepartment() {
       this.$api.getDepartmentList().then(response => {