Zt 2 роки тому
батько
коміт
69ad8dadcc

+ 1 - 2
chuanyi-admin/src/directive/permission/permission.js

@@ -3,13 +3,12 @@ import store from '@/store'
 function checkPermission(el, binding) {
   const { value } = binding
   const roles = store.getters && store.getters.roles
-
   if (value && value instanceof Array) {
     if (value.length > 0) {
       const permissionRoles = value
 
       const hasPermission = roles.some(role => {
-        return permissionRoles.includes(role)
+        return permissionRoles.includes(role.roleCode)
       })
 
       if (!hasPermission) {

+ 3 - 3
chuanyi-admin/src/layout/components/Navbar.vue

@@ -113,9 +113,9 @@ export default {
   data() {
     // 密码验证
     const validatePass = (rule, value, callback) => {
-      var reg = /(?!^[0-9]+$)(?!^[A-z]+$)(?!^[^A-z0-9]+$)^[^\s\u4e00-\u9fa5][^\s]{5,20}$/
+      var reg = /^(?!^\d+$)(?!^[A-Za-z]+$)(?!^[^A-Za-z0-9]+$)(?!^.*[\u4E00-\u9FA5].*$)^\S{5,20}$/
       if (!(reg.test(value))) {
-        callback(new Error('密码必须为5-20位的字母、数字或符号任意两种的组合,不能有中文空格'))
+        callback(new Error('密码必须为5-20位的字母、数字或符号任意两种的组合,不能有中文空格'))
       }
       callback()
     }
@@ -145,7 +145,7 @@ export default {
       rules: {
         password: [
           { required: true, message: '旧密码不能为空', trigger: 'blur' },
-          { min: 5, max: 20, message: '长度在 5 到 20 个字符', trigger: 'blur' }
+          { validator: validatePass, trigger: 'blur' }
         ],
         newPassword: [
           { required: true, message: '新密码不能为空', trigger: 'blur' },

+ 4 - 4
chuanyi-admin/src/layout/components/Sidebar/Logo.vue

@@ -1,14 +1,14 @@
 <template>
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
     <transition name="sidebarLogoFade">
-      <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
+      <div v-if="collapse" key="collapse" class="sidebar-logo-link">
         <img v-if="logo" :src="logo" class="sidebar-logo">
         <h1 v-else class="sidebar-title">{{ title }} </h1>
-      </router-link>
-      <router-link v-else key="expand" class="sidebar-logo-link" to="/">
+      </div>
+      <div v-else key="expand" class="sidebar-logo-link">
         <img v-if="logo" :src="logo" class="sidebar-logo">
         <h1 class="sidebar-title">{{ title }} </h1>
-      </router-link>
+      </div>
     </transition>
   </div>
 </template>

+ 3 - 0
chuanyi-admin/src/main.js

@@ -23,6 +23,9 @@ import 'vxe-table/lib/style.css'
 
 import { resetBtn } from './utils'
 
+import permission from '@/directive/permission'
+Vue.use(permission)
+
 Vue.prototype.$resetBtn = resetBtn
 
 Vue.prototype._ = _

+ 1 - 1
chuanyi-admin/src/utils/jsencrypt.js

@@ -16,7 +16,7 @@ export function encrypt(txt, publicKey) {
   // 设置公钥
   encryptor.setPublicKey(publicKey)
   // 对数据进行加密
-  return encryptor.encrypt(txt)
+  return encryptor.encrypt(txt.toString())
 }
 
 /**

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

@@ -180,13 +180,14 @@ export default {
     },
     /** 显示弹框 */
     show() {
-      this.allAuthQuery.page = 1
-      this.menuAuthObj.permissionList = []
-      this.getAllAuthApi()
       this.dialogVisible = true
       this.$nextTick(() => {
+        this.$refs['queryForm'].resetFields()
         this.$refs.multipleTable.clearSelection()
       })
+      this.allAuthQuery.page = 1
+      this.menuAuthObj.permissionList = []
+      this.getAllAuthApi()
     },
     /** 搜索 */
     handelSearch(event) {
@@ -196,7 +197,9 @@ export default {
     },
     /** 重置按钮操作 */
     handelReset(event) {
-      this.$refs['queryForm'].resetFields()
+      if (this.$refs['queryForm']) {
+        this.$refs['queryForm'].resetFields()
+      }
       this.handelSearch(event)
     }
   }

+ 26 - 21
chuanyi-admin/src/views/system/user/index.vue

@@ -114,12 +114,12 @@
       :close-on-click-modal="false"
     >
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-row>
+        <el-row style="margin-bottom:5px">
           <el-col>
             <el-form-item label="用户名称" prop="userName">
               <el-input
                 v-if="form.userId == undefined"
-                v-model="form.userName"
+                v-model.trim="form.userName"
                 placeholder="请输入用户名称"
                 maxlength="20"
                 style="width:300px"
@@ -127,7 +127,7 @@
               />
               <el-input
                 v-else
-                v-model="form.userName"
+                v-model.trim="form.userName"
                 placeholder="请输入用户名称"
                 maxlength="20"
                 minlength="2"
@@ -137,12 +137,12 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row style="margin-bottom:5px">
           <el-col>
             <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
               <el-input
                 ref="password"
-                v-model="form.password"
+                v-model.trim="form.password"
                 placeholder="请输入用户密码"
                 :type="passwordType"
                 maxlength="20"
@@ -155,7 +155,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row style="margin-bottom:5px">
           <el-col :span="12">
             <el-form-item label="用户类型" prop="userType">
               <el-select v-model="form.userType" placeholder="请选择用户类型">
@@ -171,18 +171,19 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row style="margin-bottom:5px">
           <el-col>
             <el-form-item v-if="form.userId !== undefined" label="所属角色">
               <template v-if="form.roleList.length">
-                <el-tag v-for="item in form.roleList" :key="item.id" style="margin-right:10px">{{ item.roleName
+                <el-tag v-for="item in form.roleList" :key="item.id" style="margin-right:10px">{{
+                  item.roleName
                 }}</el-tag>
               </template>
               <el-tag v-else>暂无角色</el-tag>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row style="margin-bottom:5px">
           <el-col>
             <el-form-item v-if="form.userId !== undefined" label="所属部门">
               <template v-if="form.departmentList.length">
@@ -213,9 +214,9 @@ export default {
   data() {
     // 密码验证
     const validatePass = (rule, value, callback) => {
-      var reg = /(?!^[0-9]+$)(?!^[A-z]+$)(?!^[^A-z0-9]+$)^[^\s\u4e00-\u9fa5][^\s]{5,20}$/
+      var reg = /(?!^\d+$)(?!^[A-Za-z]+$)(?!^[^A-Za-z0-9]+$)(?!^.*[\u4E00-\u9FA5].*$)^\S{5,20}$/
       if (!(reg.test(value))) {
-        callback(new Error('密码必须为5-20位的字母、数字或符号任意两种的组合,不能有中文空格'))
+        callback(new Error('密码必须为5-20位的字母、数字或符号任意两种的组合,不能有中文空格'))
       }
       callback()
     }
@@ -387,11 +388,13 @@ export default {
             delUserById({
               'userId': id
             }).then(response => {
-              this.$message({
-                message: '删除成功',
-                type: 'success'
-              })
-              this.getUserList()
+              if (response.code === 200) {
+                this.$message({
+                  message: '删除成功',
+                  type: 'success'
+                })
+                this.getUserList()
+              }
             })
           }
         }).catch(() => {
@@ -409,11 +412,13 @@ export default {
         delUserById({
           userId
         }).then(response => {
-          this.$message({
-            message: '删除成功',
-            type: 'success'
-          })
-          this.getUserList()
+          if (response.code === 200) {
+            this.$message({
+              message: '删除成功',
+              type: 'success'
+            })
+            this.getUserList()
+          }
         })
       }).catch(() => {
       })