Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

gt 2 éve
szülő
commit
21b5b03b75

+ 12 - 0
chuanyi-admin/src/App.vue

@@ -60,4 +60,16 @@ export default {
   color: #f04848;
 }
 
+.celBtn {
+  color: #1890ff;
+}
+
+.celBtn+span {
+  color: #1890ff;
+}
+
+.scrollbar-wrapper::-webkit-scrollbar {
+  display: none;
+  /* Chrome Safari */
+}
 </style>

+ 2 - 2
chuanyi-admin/src/api/system/dict.js

@@ -1,9 +1,9 @@
 import request from '@/utils/request'
 
-// 根据类型查询对应数据
+// 根据类型查询所有字典数据
 export function getDictListByType(query) {
   return request({
-    url: '/dict/queryByType',
+    url: '/dict/queryByTypes',
     method: 'get',
     params: query
   })

+ 7 - 0
chuanyi-admin/src/components/SelectTree/index.vue

@@ -8,6 +8,7 @@
       :searchable="false"
       :max-height="200"
       @select="handelInput"
+      @input="deselect"
     >
       <div slot="value-label" slot-scope="{ node }">{{ node.raw.id == 0 ? '主菜单' : node.raw[keyName] }}</div>
     </treeselect>
@@ -66,6 +67,12 @@ export default {
       return {
         label: node[this.keyName]
       }
+    },
+    // 删除选中节点为主菜单
+    deselect(val) {
+      if (!val) {
+        this.$emit('handelGetValue', 0)
+      }
     }
   }
 }

+ 81 - 66
chuanyi-admin/src/layout/components/Navbar.vue

@@ -7,10 +7,7 @@
       @toggleClick="toggleSideBar"
     />
 
-    <breadcrumb
-      id="breadcrumb-container"
-      class="breadcrumb-container"
-    />
+    <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
 
     <div class="right-menu">
       <template v-if="device !== 'mobile'">
@@ -26,90 +23,64 @@
 
       </template>
 
-      <el-dropdown
-        class="avatar-container right-menu-item hover-effect"
-        trigger="click"
-      >
+      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
         <div class="menu-userinfo">
-          <el-avatar
-            shape="square"
-            size="small"
-            :src="avatar"
-            @error="errorHandler"
-          >
+          <el-avatar shape="square" size="small" :src="avatar" @error="errorHandler">
             <img :src="avatarDefault">
           </el-avatar>
           <span>{{ name }}</span>
         </div>
         <el-dropdown-menu slot="dropdown">
           <el-dropdown-item @click.native="updatePwd">修改密码</el-dropdown-item>
-          <el-dropdown-item
-            divided
-            @click.native="logout"
-          >
+          <el-dropdown-item divided @click.native="logout">
             <span style="display:block;">退出登录</span>
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
 
-      <el-dialog
-        title="修改密码"
-        :visible.sync="dialogVisible"
-        width="500px"
-        :close-on-click-modal="false"
-      >
-        <el-form
-          ref="psdForm"
-          :model="form"
-          :rules="rules"
-          label-width="80px"
-        >
-          <el-form-item
-            label="旧密码"
-            prop="password"
-          >
+      <el-dialog title="修改密码" :visible.sync="dialogVisible" width="500px" :close-on-click-modal="false">
+        <el-form ref="psdForm" :model="form" :rules="rules" label-width="80px">
+          <el-form-item label="旧密码" prop="password">
             <el-input
-              v-model="form.password"
+              ref="passwordType1"
+              v-model.trim="form.password"
+              placeholder="请输入旧密码"
+              :type="passwordType1"
               style="width:300px"
-              type="password"
-              show-password
-              clearable
+              auto-complete="new-password"
             />
+            <span class="show-pwd" @click="showPwd(1)">
+              <svg-icon :icon-class="passwordType1 === 'password' ? 'eye' : 'eye-open'" />
+            </span>
           </el-form-item>
-          <el-form-item
-            label="新密码"
-            prop="newPassword"
-          >
+          <el-form-item label="新密码" prop="newPassword">
             <el-input
-              v-model="form.newPassword"
+              ref="passwordType2"
+              v-model.trim="form.newPassword"
+              placeholder="请输入新密码"
+              :type="passwordType2"
               style="width:300px"
-              type="password"
-              show-password
-              clearable
             />
+            <span class="show-pwd" @click="showPwd(2)">
+              <svg-icon :icon-class="passwordType2 === 'password' ? 'eye' : 'eye-open'" />
+            </span>
           </el-form-item>
-          <el-form-item
-            label="确认密码"
-            prop="confimPassword"
-          >
+          <el-form-item label="确认密码" prop="confimPassword">
             <el-input
-              v-model="form.confimPassword"
+              ref="passwordType3"
+              v-model.trim="form.confimPassword"
+              placeholder="请再次输入新密码"
+              :type="passwordType3"
               style="width:300px"
-              type="password"
-              show-password
-              clearable
             />
+            <span class="show-pwd" @click="showPwd(3)">
+              <svg-icon :icon-class="passwordType3 === 'password' ? 'eye' : 'eye-open'" />
+            </span>
           </el-form-item>
         </el-form>
 
-        <span
-          slot="footer"
-          class="dialog-footer"
-        >
-          <el-button
-            type="primary"
-            @click="submit"
-          >确 定</el-button>
+        <span slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submit">确 定</el-button>
           <el-button @click="dialogVisible = false">取 消</el-button>
         </span>
       </el-dialog>
@@ -147,7 +118,9 @@ export default {
     }
     // 确认密码验证
     var confimPassword = (rule, value, callback) => {
-      if (value === '') {
+      if (!value) {
+        callback(new Error('确认密码不能为空'))
+      } else if (value === '') {
         callback(new Error('请再次输入密码'))
       } else if (value !== this.form.newPassword) {
         callback(new Error('两次输入密码不一致!'))
@@ -167,17 +140,20 @@ export default {
       // 表单验证
       rules: {
         password: [
-          { required: true, message: '请输入旧密码', trigger: 'blur' },
+          { required: true, message: '旧密码不能为空', trigger: 'blur' },
           { min: 5, max: 20, message: '长度在 5 到 20 个字符', trigger: 'blur' }
         ],
         newPassword: [
-          { required: true, message: '请输入新密码', trigger: 'blur' },
+          { required: true, message: '新密码不能为空', trigger: 'blur' },
           { validator: validatePass, trigger: 'blur' }
         ],
         confimPassword: [
           { required: true, validator: confimPassword, trigger: 'blur' }
         ]
-      }
+      },
+      passwordType1: 'password',
+      passwordType2: 'password',
+      passwordType3: 'password'
     }
   },
   computed: {
@@ -234,6 +210,30 @@ export default {
       if (this.$refs.psdForm) {
         this.$refs.psdForm.resetFields()
       }
+    },
+    /** 显示密码 */
+    showPwd(type) {
+      switch (type) {
+        case 1:
+          this.psdType('passwordType1')
+          break
+        case 2:
+          this.psdType('passwordType2')
+          break
+        case 3:
+          this.psdType('passwordType3')
+          break
+      }
+    },
+    psdType(btn) {
+      if (this[btn] === 'password') {
+        this[btn] = ''
+      } else {
+        this[btn] = 'password'
+      }
+      this.$nextTick(() => {
+        this.$refs[btn].focus()
+      })
     }
   }
 }
@@ -340,4 +340,19 @@ export default {
 .el-avatar {
   margin-right: 5px;
 }
+
+.show-pwd {
+  position: absolute;
+  right: 89px;
+  top: 1px;
+  font-size: 16px;
+  color: #889aa4;
+  cursor: pointer;
+  user-select: none;
+}
+
+::v-deep .el-dialog__header {
+  display: flex;
+  align-items: center;
+}
 </style>

+ 2 - 2
chuanyi-admin/src/store/modules/user.js

@@ -22,10 +22,10 @@ const state = {
   }],
   // 用户类型
   userType: [{
-    'name': '端用户',
+    'name': '客户端用户',
     'value': 0
   }, {
-    'name': '端用户',
+    'name': '管理端用户',
     'value': 1
   }]
 }

+ 1 - 0
chuanyi-admin/src/styles/sidebar.scss

@@ -27,6 +27,7 @@
 
     .scrollbar-wrapper {
       overflow-x: hidden !important;
+      margin-right:0px !important;
     }
 
     .el-scrollbar__bar.is-vertical {

+ 22 - 12
chuanyi-admin/src/views/system/auth/index.vue

@@ -4,8 +4,8 @@
       <el-col :span="24">
         <!-- 表单查询 -->
         <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
-          <el-form-item label="接口名称" prop="permissionName">
-            <el-input v-model="queryParams.permissionName" placeholder="请输入接口名称" clear />
+          <el-form-item label="权限名称" prop="permissionName">
+            <el-input v-model="queryParams.permissionName" placeholder="请输入权限名称" clear />
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handelSearch">搜索</el-button>
@@ -17,9 +17,9 @@
 
         <!-- 表格数据信息 -->
         <el-table v-loading="loading" :data="authList">
-          <el-table-column type="index" width="50" align="center" prop="序号" />
-          <el-table-column key="permissionName" label="接口名称" align="center" prop="permissionName" />
-          <el-table-column key="permissionUrl" label="接口路径" align="center" prop="permissionUrl" />
+          <el-table-column type="index" width="50" align="center" label="序号" />
+          <el-table-column key="permissionName" label="权限名称" align="center" prop="permissionName" />
+          <el-table-column key="permissionUrl" label="权限路径" align="center" prop="permissionUrl" />
           <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button size="mini" type="text" icon="el-icon-edit" @click="handelEdit(scope.row.id)">修改
@@ -47,14 +47,14 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col>
-            <el-form-item label="接口名称" prop="permissionName">
+            <el-form-item label="权限名称" prop="permissionName">
               <el-input v-model.trim="form.permissionName" placeholder="请输入权限名称" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col>
-            <el-form-item label="接口路径" prop="permissionUrl">
+            <el-form-item label="权限路径" prop="permissionUrl">
               <el-input v-model.trim="form.permissionUrl" placeholder="请输入权限路径" />
             </el-form-item>
           </el-col>
@@ -72,6 +72,16 @@
 import { getAuthList, addAuthList, getAuthListById, emitAuthList, deleteAuthList } from '@/api/system/auth.js'
 export default {
   data() {
+    const valitatorUrl = (rule, value, callback) => {
+      var reg = /^([A-Za-z/]*)$/
+      if (!value) {
+        callback(new Error('权限路径不能为空'))
+      }
+      if (!(reg.test(value))) {
+        callback(new Error('只能输入斜杠和英文'))
+      }
+      callback()
+    }
     return {
       // 遮罩层
       loading: true,
@@ -98,7 +108,7 @@ export default {
           { required: true, message: '权限名称不能为空', trigger: 'blur' }
         ],
         permissionUrl: [
-          { required: true, message: '权限路径不能为空', trigger: 'blur' }
+          { required: true, trigger: 'blur', validator: valitatorUrl }
         ]
       },
       // 修改菜单id
@@ -133,7 +143,7 @@ export default {
     handelAdd() {
       this.reset()
       this.dialogVisible = true
-      this.title = '添加接口'
+      this.title = '添加权限'
     },
     /** 修改按钮 */
     handelEdit(id) {
@@ -142,11 +152,11 @@ export default {
         this.form = res.data
       })
       this.dialogVisible = true
-      this.title = '修改接口'
+      this.title = '修改'
     },
     /** 删除按钮 */
     handelDel(id) {
-      this.$confirm('您确定要删除该接口吗?', '提示', {
+      this.$confirm('您确定要删除该权限吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonClass: 'btn_custom_cancel',
@@ -174,7 +184,7 @@ export default {
     handelSubmit(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          if (this.title === '添加接口') {
+          if (this.title === '添加权限') {
             addAuthList(this.form).then(res => {
               if (res.code === 200) {
                 this.$message({

+ 9 - 6
chuanyi-admin/src/views/system/dept/index.vue

@@ -192,7 +192,7 @@ export default {
       getDeptList(this.queryParams).then(res => {
         if (res.code === 200) {
           const data = res.data
-          this.deptList = this.$utils.toArrayTree(data.departmentList)
+          this.deptList = data.departmentList
           this.total = data.count
           this.getOptionsList()
           this.loading = false
@@ -279,14 +279,15 @@ export default {
         closeOnClickModal: false,
         type: 'warning'
       }).then(() => {
-        this.depts.forEach(o => {
-          // 选中父级
-          if (o.parentId === 0) {
+        try {
+          this.depts.forEach(o => {
+            // 选中父级
             if (o.children.length) {
               this.$message({
                 type: 'warning',
                 message: '删除失败,请先删除下级部门'
               })
+              throw Error()
             } else {
               const ids = this.depts.map(item => item.id)
               delDept(ids).then(res => {
@@ -299,8 +300,10 @@ export default {
                 }
               })
             }
-          }
-        })
+          })
+        } catch (error) {
+          console.log(error)
+        }
       }).catch(() => {
         this.$refs.deptTable.clearSelection()
         this.$message({

+ 7 - 7
chuanyi-admin/src/views/system/dict/dict-detail.vue

@@ -112,7 +112,7 @@
 </template>
 
 <script>
-import { getAllDictList, delDict, addDict, getPageDictList, editDict } from '@/api/system/dict.js'
+import { delDict, addDict, getPageDictList, editDict, getDictListByType } from '@/api/system/dict.js'
 import selectTree from '@/components/SelectTree'
 export default {
   components: { selectTree },
@@ -188,17 +188,17 @@ export default {
           return
         }
         const data = res.data
-        this.dictList = this.$utils.toArrayTree(data.dictPage)
+        this.dictList = data.dictPage
         this.total = data.count
-        this.getAllDictList()
+        this.getDictListByType()
       })
     },
     /** 全量获取字典列表数据 */
-    getAllDictList() {
-      getAllDictList().then(res => {
+    getDictListByType() {
+      getDictListByType({ keyType: this.keyType }).then(res => {
         const data = res.data
-        this.options = this.$utils.toArrayTree(data.dicts)
-        this.keyName = 'dictValue'
+        this.options = this.$utils.toArrayTree(data)
+        this.keyName = 'dictKey'
       })
     },
     /** 搜索 */

+ 1 - 2
chuanyi-admin/src/views/system/dict/index.vue

@@ -195,14 +195,12 @@ export default {
     handelAdd() {
       this.dialogVisible = true
       this.title = '添加字典'
-      this.reset()
     },
     /** 修改按钮 */
     handelEdit(row) {
       this.form = JSON.parse(JSON.stringify(row))
       this.dialogVisible = true
       this.title = '修改字典'
-      this.reset()
     },
     /** 表格多选 */
     handleSelectionChange(val) {
@@ -300,6 +298,7 @@ export default {
     },
     /** 表单重置 */
     reset() {
+      this.form = {}
       if (this.$refs['form']) {
         this.$refs['form'].resetFields()
       }

+ 10 - 4
chuanyi-admin/src/views/system/log/index.vue

@@ -32,12 +32,13 @@
           <el-form-item label="操作时间" prop="changeTime">
             <el-date-picker
               v-model="queryParams.changeTime"
-              value-format="yyyy-MM-dd hh:mm:ss"
+              value-format="yyyy-MM-dd HH:mm:ss"
               type="daterange"
               :editable="false"
               range-separator="至"
               start-placeholder="开始日期"
               end-placeholder="结束日期"
+              :default-time="['00:00:00','23:59:59']"
               @change="getTime"
             />
           </el-form-item>
@@ -55,7 +56,7 @@
         </el-row>
         <!-- 表格数据信息 -->
         <el-table v-loading="loading" :data="logList">
-          <el-table-column type="index" width="50" align="center" prop="序号" />
+          <el-table-column type="index" width="50" align="center" label="序号" />
           <el-table-column key="serverName" label="服务名称" align="center" prop="serverName" />
           <el-table-column key="modelName" label="系统模块" align="center" prop="modelName" :show-overflow-tooltip="true" />
           <el-table-column key="content" label="操作内容" align="center" prop="content" :show-overflow-tooltip="true" />
@@ -161,8 +162,13 @@ export default {
     },
     /** 获取查询日志时间 */
     getTime(val) {
-      this.queryParams.startDate = val[0]
-      this.queryParams.endDate = val[1]
+      if (val) {
+        this.queryParams.startDate = val[0]
+        this.queryParams.endDate = val[1]
+      } else {
+        this.queryParams.startDate = null
+        this.queryParams.endDate = null
+      }
     }
   }
 }

+ 39 - 27
chuanyi-admin/src/views/system/menu/index.vue

@@ -41,12 +41,14 @@
         </el-table>
 
         <!-- 分页信息 -->
-        <!-- <pagination v-show="total > 0"
-                    :total="total"
-                    :page.sync="queryParams.page"
-                    :limit.sync="queryParams.limit"
-                    align="right"
-                    @pagination="getMenuList" /> -->
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.page"
+          :limit.sync="queryParams.limit"
+          align="right"
+          @pagination="getMenuList"
+        />
       </el-col>
     </el-row>
 
@@ -63,14 +65,14 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="菜单图标" prop="menuIcon">
-              <el-input v-model="form.menuIcon" placeholder="请输入图标名称" />
+              <el-input v-model.trim="form.menuIcon" placeholder="请输入菜单图标" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="菜单名称" prop="menuName">
-              <el-input v-model="form.menuName" placeholder="请输入菜单名称" />
+              <el-input v-model.trim="form.menuName" placeholder="请输入菜单名称" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -82,7 +84,7 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="路由地址" prop="menuUrl">
-              <el-input v-model="form.menuUrl" placeholder="请输入路由地址" />
+              <el-input v-model.trim="form.menuUrl" placeholder="请输入路由地址" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -106,23 +108,33 @@ export default {
     const sortNumRule = (rule, value, callback) => {
       var reg = /^[1-9][0-9]*$/
       if (!value) {
-        callback(new Error('显示排序不能为空'))
+        callback(new Error('排序不能为空'))
       }
       if (!(reg.test(value))) {
         callback(new Error('只能输入正整数'))
       }
       callback()
     }
+    const valitatorUrl = (rule, value, callback) => {
+      var reg = /^([A-Za-z/]*)$/
+      if (!value) {
+        callback(new Error('路由地址不能为空'))
+      }
+      if (!(reg.test(value))) {
+        callback(new Error('只能输入斜杠和英文'))
+      }
+      callback()
+    }
     return {
       // 遮罩层
       loading: true,
       // 查询参数
       queryParams: {
         page: 1,
-        limit: 999
+        limit: 10
       },
       // 总条数
-      // total: 0,
+      total: 0,
       // 表格数据
       menuList: [],
       // 弹出框
@@ -142,7 +154,7 @@ export default {
           { required: true, validator: sortNumRule, trigger: 'blur' }
         ],
         menuUrl: [
-          { required: true, message: '路由地址不能为空', pattern: '[^ \x22]+', trigger: 'blur' }
+          { required: true, validator: valitatorUrl, trigger: 'blur' }
         ],
         menuIcon: [
           { required: true, message: '菜单图标不能为空', pattern: '[^ \x22]+', trigger: 'blur' }
@@ -160,24 +172,24 @@ export default {
     getMenuList() {
       getMenuList(this.queryParams).then(response => {
         const data = response.data
-        this.menuList = this.$utils.toArrayTree(data.menuList)
+        this.menuList = data.menuList
         this.loading = false
-        // this.total = data.count
-        // this.getOptionsList()
+        this.total = data.count
+        this.getOptionsList()
       })
     },
     /** 获取上级菜单 */
-    // getOptionsList () {
-    //   getMenuList({
-    //     page: 1,
-    //     limit: 999
-    //   }).then(res => {
-    //     if (res.code === 200) {
-    //       const data = res.data
-    //       this.options = this.$utils.toArrayTree(data.menuList)
-    //     }
-    //   })
-    // },
+    getOptionsList() {
+      getMenuList({
+        page: 1,
+        limit: 999
+      }).then(res => {
+        if (res.code === 200) {
+          const data = res.data
+          this.options = this.$utils.toArrayTree(data.menuList)
+        }
+      })
+    },
     /** 搜索 */
     handelSearch(event) {
       this.$resetBtn(event)

+ 1 - 1
chuanyi-admin/src/views/system/menu/menu-auth.vue

@@ -71,7 +71,7 @@
         <template slot-scope="scope">
           <el-button
             type="text"
-            icon="el-icon-delete"
+            icon="el-icon-circle-close"
             size="mini"
             :disabled="!multiple"
             @click="cancelAuthMenu(scope.row)"

+ 4 - 4
chuanyi-admin/src/views/system/menu/menu-dist.vue

@@ -29,7 +29,7 @@
       @selection-change="handelAddMenuAuth"
     >
       <el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
-      <el-table-column label="接口名称" prop="permissionUrl" :show-overflow-tooltip="true" align="center" />
+      <el-table-column label="权限名称" prop="permissionUrl" :show-overflow-tooltip="true" align="center" />
       <el-table-column label="备注" prop="permissionName" :show-overflow-tooltip="true" align="center" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -40,7 +40,7 @@
             size="mini"
             :disabled="!distribution"
             @click="distMenuAuthBtn(scope.row, $event)"
-          >分配菜单
+          >分配权限
           </el-button>
         </template>
       </el-table-column>
@@ -110,7 +110,7 @@ export default {
     },
     /** 分配按钮操作 */
     distMenuAuthBtn(row, event) {
-      this.$confirm('您确定要分配该接口权限吗?', '提示', {
+      this.$confirm('您确定要分配该权限吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonClass: 'btn_custom_cancel',
@@ -129,7 +129,7 @@ export default {
     },
     /** 批量分配按钮操作 */
     distMenuAuthBtns() {
-      this.$confirm('您确定要批量分配接口权限吗?', '提示', {
+      this.$confirm('您确定要批量分配权限吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonClass: 'btn_custom_cancel',

+ 5 - 3
chuanyi-admin/src/views/system/role/index.vue

@@ -43,11 +43,13 @@
             <el-button
               type="danger"
               plain
-              icon="el-icon-delete"
               size="mini"
               :disabled="multiple"
+              icon="el-icon-circle-close"
               @click="handleDelete"
-            >删除</el-button>
+            >
+              删除
+            </el-button>
           </el-col>
         </el-row>
         <!-- 表格数据信息 -->
@@ -245,7 +247,7 @@ export default {
             })
           } else {
             this.$message({
-              message: '删除角色成功',
+              message: '删除成功',
               type: 'success'
             })
           }

+ 5 - 6
chuanyi-admin/src/views/system/role/user-auth.vue

@@ -120,10 +120,9 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-circle-close"
             :disabled="!multiple"
             @click="cancelAuthUser(scope.row)"
-          >取消授权
+          ><i class="el-icon-circle-close celBtn" /><span>取消授权</span>
           </el-button>
         </template>
       </el-table-column>
@@ -256,7 +255,7 @@ export default {
         roleId: this.queryParams.roleId,
         userId: row.userId
       }
-      this.$confirm('是否取消授权?', '提示', {
+      this.$confirm('您确定要取消该用户的授权吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonClass: 'btn_custom_cancel',
@@ -267,7 +266,7 @@ export default {
             this.getList()
             this.$message({
               type: 'success',
-              message: res.data
+              message: '取消授权成功'
             })
           }
         })
@@ -280,7 +279,7 @@ export default {
     },
     /** 批量取消授权按钮操作 */
     cancelAuthUserAll() {
-      this.$confirm('是否批量取消授权?', '提示', {
+      this.$confirm('您确定要取消授权吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonClass: 'btn_custom_cancel',
@@ -291,7 +290,7 @@ export default {
             this.getList()
             this.$message({
               type: 'success',
-              message: '已取消授权'
+              message: '批量取消授权成功'
             })
           }
         })

+ 26 - 107
chuanyi-admin/src/views/system/role/user-menu.vue

@@ -1,17 +1,8 @@
 <template>
   <div class="app-container">
-    <el-row
-      :gutter="10"
-      class="mb8"
-    >
+    <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handelAdd"
-        >添加菜单</el-button>
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handelAdd">添加菜单</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -25,87 +16,31 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-back"
-          size="mini"
-          @click="handleClose"
-        >返回</el-button>
+        <el-button type="warning" plain icon="el-icon-back" size="mini" @click="handleClose">返回</el-button>
       </el-col>
     </el-row>
 
-    <el-table
-      ref="roleTable"
-      v-loading="loading"
-      :data="menuList"
-      row-key="id"
-      @selection-change="handelDelDist"
-    >
-      <el-table-column
-        type="selection"
-        width="55"
-        align="center"
-      />
-      <el-table-column
-        label="菜单名称"
-        prop="menuName"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="菜单图标"
-        prop="menuIcon"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="菜单路径"
-        prop="menuUrl"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="更新时间"
-        prop="updateTime"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="创建时间"
-        prop="createTime"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
+    <el-table ref="roleTable" v-loading="loading" :data="menuList" row-key="id" @selection-change="handelDelDist">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="菜单名称" prop="menuName" :show-overflow-tooltip="true" />
+      <el-table-column label="菜单图标" prop="menuIcon" :show-overflow-tooltip="true" />
+      <el-table-column label="菜单路径" prop="menuUrl" :show-overflow-tooltip="true" />
+      <el-table-column label="更新时间" prop="updateTime" :show-overflow-tooltip="true" />
+      <el-table-column label="创建时间" prop="createTime" :show-overflow-tooltip="true" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            type="text"
-            icon="el-icon-circle-close"
-            size="mini"
-            :disabled="!celDistribution"
-            @click="delMenu(scope.row.id)"
-          >取消分配
+          <el-button type="text" size="mini" :disabled="!celDistribution" @click="delMenu(scope.row.id)"><i
+            class="el-icon-circle-close celBtn"
+          /><span>取消分配</span>
           </el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <el-dialog
-      title="分配菜单"
-      :visible.sync="dialogVisible"
-      width="35%"
-      :close-on-click-modal="false"
-    >
+    <el-dialog title="分配菜单" :visible.sync="dialogVisible" width="800px" :close-on-click-modal="false">
       <el-row>
         <el-col>
-          <el-button
-            type="primary"
-            plain
-            icon="el-icon-plus"
-            size="mini"
-            :disabled="distribution"
-            @click="handleDel"
-          >
+          <el-button type="primary" plain icon="el-icon-plus" size="mini" :disabled="distribution" @click="handleDel">
             批量分配</el-button>
         </el-col>
       </el-row>
@@ -118,31 +53,11 @@
         @select="select"
         @select-all="selectAll"
       >
-        <el-table-column
-          type="selection"
-          width="55"
-          align="center"
-        />
-        <el-table-column
-          label="菜单名称"
-          prop="menuName"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="菜单图标"
-          prop="menuIcon"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="菜单路径"
-          prop="menuUrl"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="操作"
-          align="center"
-          class-name="small-padding fixed-width"
-        >
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="菜单名称" prop="menuName" :show-overflow-tooltip="true" />
+        <el-table-column label="菜单图标" prop="menuIcon" :show-overflow-tooltip="true" />
+        <el-table-column label="菜单路径" prop="menuUrl" :show-overflow-tooltip="true" />
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template slot-scope="scope">
             <el-button
               type="primary"
@@ -150,7 +65,7 @@
               icon="el-icon-circle-plus"
               size="mini"
               :disabled="!distribution"
-              @click="addMenu(scope.row.id,$event)"
+              @click="addMenu(scope.row.id, $event)"
             >分配菜单
             </el-button>
           </template>
@@ -459,3 +374,7 @@ export default {
   }
 }
 </script>
+
+<style lang="scss" scoped>
+
+</style>

+ 16 - 10
chuanyi-admin/src/views/system/user/index.vue

@@ -41,8 +41,15 @@
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
           </el-col>
           <el-col :span="1.5" style="margin-left: 15px;">
-            <el-button type="danger" size="mini" plain :disabled="multiple" icon="el-icon-delete" @click="handleDelete">
-              删除
+            <el-button
+              type="danger"
+              size="mini"
+              plain
+              :disabled="multiple"
+              icon="el-icon-circle-close"
+              @click="handleDelete"
+            >
+              批量删除
             </el-button>
           </el-col>
         </el-row>
@@ -244,12 +251,11 @@ export default {
     /** 用户类型转换 */
     convertUserType(val) {
       let result = ''
-      // this.userType.forEach((e) => {
-      //   if (e.value === val) {
-      //     result = e.name
-      //   }
-      // })
-      val === 0 ? result = '客户端用户' : result = '管理用户'
+      this.userType.forEach((e) => {
+        if (e.value === val) {
+          result = e.name
+        }
+      })
       return result
     },
     /** 查询用户列表 */
@@ -324,7 +330,6 @@ export default {
             delUserById({
               'userId': id
             }).then(response => {
-              console.log(response)
               this.getUserList()
             })
           }
@@ -376,7 +381,7 @@ export default {
           if (res.code === 200) {
             this.$message({
               type: 'success',
-              message: '修改成功'
+              message: '重置成功'
             })
           }
         })
@@ -461,6 +466,7 @@ export default {
         this.$refs['form'].resetFields()
       }
     },
+    /** 显示密码 */
     showPwd() {
       if (this.passwordType === 'password') {
         this.passwordType = ''