Browse Source

first submit

wangxx 4 months ago
parent
commit
cded942417
4 changed files with 182 additions and 0 deletions
  1. 60 0
      src/plugins/auth.js
  2. 14 0
      src/plugins/index.js
  3. 78 0
      src/plugins/modal.js
  4. 30 0
      src/plugins/tab.js

+ 60 - 0
src/plugins/auth.js

@@ -0,0 +1,60 @@
1
+import store from '@/store'
2
+
3
+function authPermission(permission) {
4
+  const all_permission = "*:*:*"
5
+  const permissions = store.getters && store.getters.permissions
6
+  if (permission && permission.length > 0) {
7
+    return permissions.some(v => {
8
+      return all_permission === v || v === permission
9
+    })
10
+  } else {
11
+    return false
12
+  }
13
+}
14
+
15
+function authRole(role) {
16
+  const super_admin = "admin"
17
+  const roles = store.getters && store.getters.roles
18
+  if (role && role.length > 0) {
19
+    return roles.some(v => {
20
+      return super_admin === v || v === role
21
+    })
22
+  } else {
23
+    return false
24
+  }
25
+}
26
+
27
+export default {
28
+  // 验证用户是否具备某权限
29
+  hasPermi(permission) {
30
+    return authPermission(permission)
31
+  },
32
+  // 验证用户是否含有指定权限,只需包含其中一个
33
+  hasPermiOr(permissions) {
34
+    return permissions.some(item => {
35
+      return authPermission(item)
36
+    })
37
+  },
38
+  // 验证用户是否含有指定权限,必须全部拥有
39
+  hasPermiAnd(permissions) {
40
+    return permissions.every(item => {
41
+      return authPermission(item)
42
+    })
43
+  },
44
+  // 验证用户是否具备某角色
45
+  hasRole(role) {
46
+    return authRole(role)
47
+  },
48
+  // 验证用户是否含有指定角色,只需包含其中一个
49
+  hasRoleOr(roles) {
50
+    return roles.some(item => {
51
+      return authRole(item)
52
+    })
53
+  },
54
+  // 验证用户是否含有指定角色,必须全部拥有
55
+  hasRoleAnd(roles) {
56
+    return roles.every(item => {
57
+      return authRole(item)
58
+    })
59
+  }
60
+}

+ 14 - 0
src/plugins/index.js

@@ -0,0 +1,14 @@
1
+import tab from './tab'
2
+import auth from './auth'
3
+import modal from './modal'
4
+
5
+export default {
6
+  install(Vue) {
7
+    // 页签操作
8
+    Vue.prototype.$tab = tab
9
+    // 认证对象
10
+    Vue.prototype.$auth = auth
11
+    // 模态框对象
12
+    Vue.prototype.$modal = modal
13
+  }
14
+}

+ 78 - 0
src/plugins/modal.js

@@ -0,0 +1,78 @@
1
+export default {
2
+  // 消息提示
3
+  msg(content) {
4
+    uni.showToast({
5
+      title: content,
6
+      icon: 'none'
7
+    })
8
+  },
9
+  // 错误消息
10
+  msgError(content) {
11
+    uni.showToast({
12
+      title: content,
13
+      icon: 'error'
14
+    })
15
+  },
16
+  // 成功消息
17
+  msgSuccess(content) {
18
+    uni.showToast({
19
+      title: content,
20
+      icon: 'success'
21
+    })
22
+  },
23
+  // 隐藏消息
24
+  hideMsg(content) {
25
+    uni.hideToast()
26
+  },
27
+  // 弹出提示
28
+  alert(content, title) {
29
+    uni.showModal({
30
+      title: title || '系统提示',
31
+      content: content,
32
+      showCancel: false
33
+    })
34
+  },
35
+  // 确认窗体
36
+  confirm(content, title) {
37
+    return new Promise((resolve, reject) => {
38
+      uni.showModal({
39
+        title: title || '系统提示',
40
+        content: content,
41
+        cancelText: '取消',
42
+        confirmText: '确定',
43
+        success: function(res) {
44
+          if (res.confirm) {
45
+            resolve(res.confirm)
46
+          }
47
+        }
48
+      })
49
+    })
50
+  },
51
+  // 提示信息
52
+  showToast(option) {
53
+    if (typeof option === "object") {
54
+      uni.showToast(option)
55
+    } else {
56
+      uni.showToast({
57
+        title: option,
58
+        icon: "none",
59
+        duration: 2500
60
+      })
61
+    }
62
+  },
63
+  // 打开遮罩层
64
+  loading(content) {
65
+    uni.showLoading({
66
+      title: content,
67
+      icon: 'none'
68
+    })
69
+  },
70
+  // 关闭遮罩层
71
+  closeLoading() {
72
+    try {
73
+        uni.hideLoading()
74
+    } catch (e) {
75
+        console.log(e)
76
+    }
77
+  }
78
+}

+ 30 - 0
src/plugins/tab.js

@@ -0,0 +1,30 @@
1
+export default {
2
+  // 关闭所有页面,打开到应用内的某个页面
3
+  reLaunch(url) {
4
+    return uni.reLaunch({
5
+      url: url
6
+    })
7
+  },
8
+  // 跳转到tabBar页面,并关闭其他所有非tabBar页面
9
+  switchTab(url) {
10
+    return uni.switchTab({
11
+      url: url
12
+    })
13
+  },
14
+  // 关闭当前页面,跳转到应用内的某个页面
15
+  redirectTo(url) {
16
+    return uni.redirectTo({
17
+      url: url
18
+    })
19
+  },
20
+  // 保留当前页面,跳转到应用内的某个页面
21
+  navigateTo(url) {
22
+    return uni.navigateTo({
23
+      url: url
24
+    })
25
+  },
26
+  // 关闭当前页面,返回上一页面或多级页面
27
+  navigateBack() {
28
+    return uni.navigateBack()
29
+  }
30
+}