dingxin 6 年之前
父節點
當前提交
a9395c8845
共有 3 個文件被更改,包括 235 次插入0 次删除
  1. 23
    0
      src/store/modules/sysmenu.js
  2. 70
    0
      src/views/sysmenu/add.vue
  3. 142
    0
      src/views/sysmenu/list.vue

+ 23
- 0
src/store/modules/sysmenu.js 查看文件

@@ -0,0 +1,23 @@
1
+import lodash from 'lodash'
2
+import { interact } from '../../utils'
3
+import apis from '../../config/api'
4
+
5
+export default {
6
+  namespaced: true,
7
+  state: {
8
+    safety : {}
9
+  },
10
+  mutations: {
11
+    updateSafety(state, payload) {
12
+      state.safety  = payload || {}
13
+    }
14
+  },
15
+  actions: {
16
+    sysMenu({ commit }, payload) { // 查询所有
17
+      const api = lodash.get(apis, 'menu.list')
18
+      interact(api, payload).then((data) => {
19
+        commit('updateSafety', data)
20
+      })
21
+    }
22
+  }
23
+}

+ 70
- 0
src/views/sysmenu/add.vue 查看文件

@@ -0,0 +1,70 @@
1
+<template>
2
+    <div id="root">
3
+        <el-form ref="form" :model="form" label-width="80px">
4
+            <el-form-item label="菜单权限">
5
+                <el-tree
6
+                        :data="menus"
7
+                        show-checkbox
8
+                        node-key="menuId"
9
+                        ref="tree"
10
+                        :props="defaultProps">
11
+                </el-tree>
12
+            </el-form-item>
13
+        </el-form>
14
+    </div>
15
+</template>
16
+
17
+<script>
18
+import { createNamespacedHelpers } from 'vuex'
19
+const {mapState: mapSysRoleState, mapActions: mapSysRoleActions } = createNamespacedHelpers('sysyrole')
20
+
21
+export default {
22
+  name: "addRole",
23
+  data() {
24
+      return {
25
+          form: {
26
+              roleName: '',
27
+              menuIds: []
28
+          },
29
+          defaultProps: {
30
+              label: 'menuName',
31
+              children: 'children'
32
+          }
33
+      }
34
+  },
35
+  computed: {
36
+      ...mapSysRoleState({
37
+          menus: x => x.menus
38
+      })
39
+  },
40
+  methods: {
41
+    ...mapSysRoleActions([
42
+        'GetMenus',
43
+        'AddRole'
44
+    ]),
45
+    getCheckedNodes() {
46
+      let idSet = new Set();
47
+      const checkedNodes = this.$refs.tree.getCheckedNodes();
48
+      checkedNodes.map((item,index) => {
49
+          idSet.add(item.menuId)
50
+          idSet.add(item.menuPid)
51
+      })
52
+
53
+        for (let [value] of idSet.entries()) this.form.menuIds.push(value);
54
+
55
+    },
56
+    onSubmit() {
57
+        this.getCheckedNodes()
58
+        this.AddRole(this.form)
59
+        this.$router.go(-1)
60
+    }
61
+  },
62
+  created() {
63
+      this.GetMenus()
64
+  }
65
+}
66
+</script>
67
+
68
+<style scoped>
69
+
70
+</style>

+ 142
- 0
src/views/sysmenu/list.vue 查看文件

@@ -0,0 +1,142 @@
1
+<template>
2
+  <div id="root">
3
+  <el-row>
4
+    <el-button type="primary" @click="addUserRole()">添加</el-button>
5
+  </el-row>
6
+   
7
+    <el-table
8
+    :data="menuList.records"
9
+    border>
10
+    <el-table-column
11
+      prop="menuId"
12
+      align='center'
13
+      label="菜单ID">
14
+    </el-table-column>
15
+    <el-table-column
16
+      prop="menuName"
17
+      align='center'
18
+      label="菜单名称">
19
+    </el-table-column>
20
+    <el-table-column
21
+      prop="menuPid"
22
+      align='center'
23
+      label="子级名称">
24
+    </el-table-column>
25
+      <el-table-column
26
+      prop="menuParents"
27
+      align='center'
28
+      label="父级名称">
29
+    </el-table-column> 
30
+     <el-table-column
31
+      prop="status"
32
+      align='center'
33
+      label="当前状态">
34
+    </el-table-column>
35
+    <el-table-column
36
+      prop="createDate"
37
+      align='center'
38
+      label="创建时间">
39
+    </el-table-column>
40
+
41
+     <el-table-column
42
+        fixed="right"
43
+        label="操作"
44
+        align='center'>
45
+        <template slot-scope="scope">
46
+          <el-button type="text" @click="handleEdit(scope.row.userId)" size="small">编辑</el-button>
47
+          <el-button type="text" @click="userRoleDelete(scope.row.userId)" size="small">删除</el-button>
48
+        </template>
49
+      </el-table-column>
50
+  </el-table>
51
+    <el-pagination
52
+            style="margin-top:50px;float:right"
53
+            @size-change="handleSizeChange"
54
+            @current-change="handleCurrentChange"
55
+            :current-page="formInline.pageNum"
56
+            :page-sizes="[1,10, 20, 30, 40]"
57
+            :page-size="formInline.pageSize"
58
+            layout="total, sizes, prev, pager, next, jumper"
59
+          :total="menuList.total || 0"
60
+            >
61
+           
62
+           
63
+    </el-pagination>
64
+  </div>
65
+</template>
66
+<script>
67
+import { createNamespacedHelpers } from 'vuex'
68
+const {mapState: mapSysMenuState, mapActions: mapSysMenuActions } = createNamespacedHelpers('sysmenu')
69
+
70
+export default {
71
+  name: 'followup-index',
72
+  data() {
73
+    return {
74
+      formInline: {
75
+        userName:'',
76
+        personName: '',
77
+        phone: '',
78
+        platNumber: '',
79
+        pageNum: 1,
80
+        pageSize: 10,
81
+        userId: ''
82
+      }
83
+    }
84
+  },
85
+  computed: {
86
+    ...mapSysMenuState({
87
+     menuList: x => x.safety,
88
+    })
89
+  },
90
+  created() {
91
+     
92
+    this.getPage()
93
+  },
94
+  methods: {
95
+    ...mapSysMenuActions([
96
+      'sysMenu',
97
+      'deleteRole'
98
+    ]),
99
+    onSubmit() {
100
+      this.getPage()
101
+    },
102
+    getPage() {
103
+       this.sysMenu(this.formInline)
104
+      // window.console.log(this.$store)
105
+      // this.$store.commit('security/foo')
106
+      // this.$store.dispatch('security/getSecurity')
107
+      // this.$store.commit('security/foo')
108
+    },
109
+    handleSizeChange(val) {
110
+      // console.log(`每页 ${val} 条`)
111
+      this.formInline.pageSize = val
112
+    },
113
+    handleCurrentChange(val) {
114
+      // console.log(`当前页: ${val}`)
115
+      this.formInline.pageNum = val
116
+      this.getPage()
117
+    },
118
+    clear(){
119
+      this.formInline.userName = ''
120
+      this.formInline.customerName = ''
121
+      this.formInline.phone = ''
122
+      this.formInline.platNumber = ''
123
+      this.formInline.pageNum = 1
124
+      this.formInline.pageSize = 10
125
+      this.getPage()
126
+    },
127
+    addUserRole(){
128
+      this.$router.push({ name: 'sysmenuAdd' })
129
+
130
+    },
131
+    handleEdit(id){
132
+       this.$router.push({ name: 'userRoleedit', query: {id:id} })
133
+    },
134
+    userRoleDelete(id){
135
+       this.formInline.userId = id
136
+       this.deleteRole(this.formInline)
137
+       this.getPage()
138
+    }
139
+   }
140
+}
141
+</script>
142
+