Browse Source

角色 页面

weiximei 6 years ago
parent
commit
27359fc21c
18 changed files with 619 additions and 25 deletions
  1. 18
    6
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java
  2. 27
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/controller/SysMenuController.java
  3. 11
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/dao/ToSysMenuMapper.java
  4. 2
    1
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/dao/ToSysRoleMapper.java
  5. 15
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/model/ToSysMenu.java
  6. 26
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/model/ToSysRole.java
  7. 16
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/IToSysMenuService.java
  8. 43
    0
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/impl/ToSysMenuServiceImpl.java
  9. 26
    2
      CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/impl/ToSysRoleServiceImpl.java
  10. 13
    0
      CODE/smart-community/operate-api/src/main/resources/mapper/ToSysMenuMapper.xml
  11. 1
    1
      CODE/smart-community/operate-api/src/main/resources/mapper/ToSysRoleMapper.xml
  12. 21
    0
      VUECODE/smart-operate-manage/src/router/index.js
  13. 3
    1
      VUECODE/smart-operate-manage/src/store/index.js
  14. 9
    4
      VUECODE/smart-operate-manage/src/store/modules/role.js
  15. 79
    0
      VUECODE/smart-operate-manage/src/views/account/role/add/index.vue
  16. 114
    0
      VUECODE/smart-operate-manage/src/views/account/role/edi/index.vue
  17. 81
    10
      VUECODE/smart-operate-manage/src/views/account/role/index.vue
  18. 114
    0
      VUECODE/smart-operate-manage/src/views/account/role/info/index.vue

+ 18
- 6
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java View File

232
         // 下发门禁权限
232
         // 下发门禁权限
233
         HKOpenApi.downloadAuthorityByDeviceUuids();
233
         HKOpenApi.downloadAuthorityByDeviceUuids();
234
 
234
 
235
+        //--------- 可视对讲 ----------
236
+        visualIntercom(user);
237
+
238
+
239
+        TaUserVO taUserVO = new TaUserVO();
240
+        BeanUtils.copyProperties(user,taUserVO);
241
+        response.addSuccess(taUserVO);
242
+        return response;
243
+    }
244
+
245
+    /**
246
+     * 可视对讲下发
247
+     * @param user
248
+     */
249
+    private void visualIntercom(TaUser user){
235
         // TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
250
         // TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
236
         // TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
251
         // TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
237
 
252
 
254
 //        // 可视对讲 指定人员指纹权限下载
269
 //        // 可视对讲 指定人员指纹权限下载
255
 //        HKOpenApi.downloadFinger(downloadFingerMap);
270
 //        HKOpenApi.downloadFinger(downloadFingerMap);
256
 
271
 
257
-
258
-
259
-        TaUserVO taUserVO = new TaUserVO();
260
-        BeanUtils.copyProperties(user,taUserVO);
261
-        response.addSuccess(taUserVO);
262
-        return response;
263
     }
272
     }
264
 
273
 
265
     @Transactional(rollbackFor = Exception.class)
274
     @Transactional(rollbackFor = Exception.class)
540
         // 下发门禁权限
549
         // 下发门禁权限
541
         HKOpenApi.downloadAuthorityByDeviceUuids();
550
         HKOpenApi.downloadAuthorityByDeviceUuids();
542
 
551
 
552
+        //--------- 可视对讲 ----------
553
+        visualIntercom(user);
554
+
543
         if ("0".equals(response.getCode())) {
555
         if ("0".equals(response.getCode())) {
544
             response.addSuccess(user);
556
             response.addSuccess(user);
545
         }
557
         }

+ 27
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/controller/SysMenuController.java View File

1
+package com.community.huiju.controller;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import com.community.huiju.service.IToSysMenuService;
5
+import io.swagger.annotations.Api;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.cloud.context.config.annotation.RefreshScope;
8
+import org.springframework.web.bind.annotation.RequestMapping;
9
+import org.springframework.web.bind.annotation.RequestMethod;
10
+import org.springframework.web.bind.annotation.RestController;
11
+
12
+@RestController
13
+@RequestMapping("/")
14
+@RefreshScope
15
+@Api(value = "菜单 API", description = "菜单 API")
16
+public class SysMenuController {
17
+
18
+    @Autowired
19
+    private IToSysMenuService iToSysMenuService;
20
+
21
+    @RequestMapping(value = "/menu/list", method = RequestMethod.GET)
22
+    public ResponseBean getAll() {
23
+        ResponseBean responseBean = iToSysMenuService.getMenuAll();
24
+        return responseBean;
25
+    }
26
+
27
+}

+ 11
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/dao/ToSysMenuMapper.java View File

2
 
2
 
3
 import com.community.huiju.model.ToSysMenu;
3
 import com.community.huiju.model.ToSysMenu;
4
 import org.apache.ibatis.annotations.Mapper;
4
 import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
6
+
7
+import java.util.List;
5
 
8
 
6
 @Mapper
9
 @Mapper
7
 public interface ToSysMenuMapper {
10
 public interface ToSysMenuMapper {
16
     int updateByPrimaryKeySelective(ToSysMenu record);
19
     int updateByPrimaryKeySelective(ToSysMenu record);
17
 
20
 
18
     int updateByPrimaryKey(ToSysMenu record);
21
     int updateByPrimaryKey(ToSysMenu record);
22
+
23
+    /**
24
+     * 根据 parentId 查询菜单
25
+     * @param parentId 父级菜单ID
26
+     * @param menuType 菜单类型 0 页面菜单  1功能菜单
27
+     * @return
28
+     */
29
+    List<ToSysMenu> selectParentId(@Param("parentId") Integer parentId, @Param("menuType") Integer menuType);
19
 }
30
 }

+ 2
- 1
CODE/smart-community/operate-api/src/main/java/com/community/huiju/dao/ToSysRoleMapper.java View File

2
 
2
 
3
 import com.community.huiju.model.ToSysRole;
3
 import com.community.huiju.model.ToSysRole;
4
 import org.apache.ibatis.annotations.Mapper;
4
 import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
5
 
6
 
6
 import java.util.List;
7
 import java.util.List;
7
 
8
 
33
      *
34
      *
34
      * @return
35
      * @return
35
      */
36
      */
36
-    List<ToSysRole> selectAll(String roleName);
37
+    List<ToSysRole> selectAll(@Param("roleName") String roleName);
37
 }
38
 }

+ 15
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/model/ToSysMenu.java View File

1
 package com.community.huiju.model;
1
 package com.community.huiju.model;
2
 
2
 
3
+import java.util.List;
4
+
3
 public class ToSysMenu {
5
 public class ToSysMenu {
4
     private Integer id;
6
     private Integer id;
5
 
7
 
17
 
19
 
18
     private String status;
20
     private String status;
19
 
21
 
22
+    /**
23
+     * 节点
24
+     */
25
+    private List<ToSysMenu> children;
26
+
20
     public Integer getId() {
27
     public Integer getId() {
21
         return id;
28
         return id;
22
     }
29
     }
80
     public void setStatus(String status) {
87
     public void setStatus(String status) {
81
         this.status = status == null ? null : status.trim();
88
         this.status = status == null ? null : status.trim();
82
     }
89
     }
90
+
91
+    public List<ToSysMenu> getChildren() {
92
+        return children;
93
+    }
94
+
95
+    public void setChildren(List<ToSysMenu> children) {
96
+        this.children = children;
97
+    }
83
 }
98
 }

+ 26
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/model/ToSysRole.java View File

19
 
19
 
20
     private Date updateDate;
20
     private Date updateDate;
21
 
21
 
22
+    /**
23
+     * 创建人用户名
24
+     */
25
+    private String createUserName;
26
+
27
+    /**
28
+     * 修改人用户名
29
+     */
30
+    private String updateUserName;
31
+
22
     public Integer getId() {
32
     public Integer getId() {
23
         return id;
33
         return id;
24
     }
34
     }
82
     public void setUpdateDate(Date updateDate) {
92
     public void setUpdateDate(Date updateDate) {
83
         this.updateDate = updateDate;
93
         this.updateDate = updateDate;
84
     }
94
     }
95
+
96
+    public String getCreateUserName() {
97
+        return createUserName;
98
+    }
99
+
100
+    public void setCreateUserName(String createUserName) {
101
+        this.createUserName = createUserName;
102
+    }
103
+
104
+    public String getUpdateUserName() {
105
+        return updateUserName;
106
+    }
107
+
108
+    public void setUpdateUserName(String updateUserName) {
109
+        this.updateUserName = updateUserName;
110
+    }
85
 }
111
 }

+ 16
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/IToSysMenuService.java View File

1
+package com.community.huiju.service;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+
5
+/**
6
+ * 运营web端菜单 业务
7
+ */
8
+public interface IToSysMenuService {
9
+
10
+    /**
11
+     * 获取所有 菜单
12
+     * @return
13
+     */
14
+    ResponseBean getMenuAll();
15
+
16
+}

+ 43
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/impl/ToSysMenuServiceImpl.java View File

1
+package com.community.huiju.service.impl;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import com.community.huiju.dao.ToSysMenuMapper;
5
+import com.community.huiju.model.ToSysMenu;
6
+import com.community.huiju.service.IToSysMenuService;
7
+import lombok.extern.slf4j.Slf4j;
8
+import org.apache.commons.collections.CollectionUtils;
9
+import org.springframework.beans.factory.annotation.Autowired;
10
+import org.springframework.stereotype.Service;
11
+
12
+import java.util.List;
13
+
14
+@Service
15
+@Slf4j
16
+public class ToSysMenuServiceImpl implements IToSysMenuService {
17
+
18
+    @Autowired
19
+    private ToSysMenuMapper toSysMenuMapper;
20
+
21
+    @Override
22
+    public ResponseBean getMenuAll() {
23
+        ResponseBean responseBean = new ResponseBean();
24
+        List<ToSysMenu> menuList = getMenu(1, 0);
25
+        responseBean.addSuccess(menuList);
26
+        return responseBean;
27
+    }
28
+
29
+    /**
30
+     * 根据 parentId 查询菜单
31
+     * @param parentId 父级菜单ID
32
+     * @param menuType 菜单类型 0 页面菜单  1功能菜单
33
+     * @return
34
+     */
35
+    private List<ToSysMenu> getMenu (Integer parentId, Integer menuType){
36
+        List<ToSysMenu> sysMenuList = toSysMenuMapper.selectParentId(parentId, menuType);
37
+        if (CollectionUtils.isNotEmpty(sysMenuList)) {
38
+            sysMenuList.forEach(e -> getMenu(e.getId(), menuType));
39
+        }
40
+        return sysMenuList;
41
+    }
42
+
43
+}

+ 26
- 2
CODE/smart-community/operate-api/src/main/java/com/community/huiju/service/impl/ToSysRoleServiceImpl.java View File

2
 
2
 
3
 import com.alibaba.fastjson.JSONObject;
3
 import com.alibaba.fastjson.JSONObject;
4
 import com.community.commom.mode.ResponseBean;
4
 import com.community.commom.mode.ResponseBean;
5
+import com.community.huiju.dao.TaUserMapper;
5
 import com.community.huiju.dao.ToSysRoleMapper;
6
 import com.community.huiju.dao.ToSysRoleMapper;
7
+import com.community.huiju.dao.ToUserMapper;
8
+import com.community.huiju.model.TaUser;
6
 import com.community.huiju.model.ToSysRole;
9
 import com.community.huiju.model.ToSysRole;
10
+import com.community.huiju.model.ToUser;
7
 import com.community.huiju.service.IToSysRoleService;
11
 import com.community.huiju.service.IToSysRoleService;
12
+import com.github.pagehelper.Page;
8
 import com.github.pagehelper.PageHelper;
13
 import com.github.pagehelper.PageHelper;
9
 import lombok.extern.slf4j.Slf4j;
14
 import lombok.extern.slf4j.Slf4j;
10
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.stereotype.Service;
16
 import org.springframework.stereotype.Service;
12
 
17
 
18
+import java.util.HashMap;
13
 import java.util.List;
19
 import java.util.List;
20
+import java.util.Map;
14
 
21
 
15
 @Service("iToSysRoleService")
22
 @Service("iToSysRoleService")
16
 @Slf4j
23
 @Slf4j
19
     @Autowired
26
     @Autowired
20
     private ToSysRoleMapper toSysRoleMapper;
27
     private ToSysRoleMapper toSysRoleMapper;
21
 
28
 
29
+    @Autowired
30
+    private ToUserMapper toUserMapper;
31
+
22
     @Override
32
     @Override
23
     public List<ToSysRole> selectRoleByUserId(Integer userId) {
33
     public List<ToSysRole> selectRoleByUserId(Integer userId) {
24
 
34
 
34
         Integer pageSize = jsonObject.getInteger("pageSize");
44
         Integer pageSize = jsonObject.getInteger("pageSize");
35
         String roleName = jsonObject.getString("roleName").trim();
45
         String roleName = jsonObject.getString("roleName").trim();
36
 
46
 
37
-        PageHelper.startPage(pageNum, pageSize);
47
+        Page<ToSysRole> pageInfo = PageHelper.startPage(pageNum, pageSize);
38
         List<ToSysRole> roleList = toSysRoleMapper.selectAll(roleName);
48
         List<ToSysRole> roleList = toSysRoleMapper.selectAll(roleName);
39
-        responseBean.addSuccess(roleList);
49
+        roleList.forEach(e -> {
50
+            ToUser createUser = toUserMapper.selectByPrimaryKey(e.getCreateUser());
51
+            ToUser updateUser = toUserMapper.selectByPrimaryKey(e.getUpdateUser());
52
+            e.setCreateUserName(createUser.getUserName());
53
+            e.setUpdateUserName(updateUser.getUserName());
54
+        });
55
+
56
+        Map<String, Object> resMap = new HashMap<>();
57
+        resMap.put("list", roleList);
58
+        resMap.put("pageNum", pageInfo.getPageNum());
59
+        resMap.put("pageSize", pageInfo.getPageSize());
60
+        resMap.put("total", pageInfo.getTotal());
61
+
62
+
63
+        responseBean.addSuccess(resMap);
40
         return responseBean;
64
         return responseBean;
41
     }
65
     }
42
 }
66
 }

+ 13
- 0
CODE/smart-community/operate-api/src/main/resources/mapper/ToSysMenuMapper.xml View File

125
       status = #{status,jdbcType=CHAR}
125
       status = #{status,jdbcType=CHAR}
126
     where id = #{id,jdbcType=INTEGER}
126
     where id = #{id,jdbcType=INTEGER}
127
   </update>
127
   </update>
128
+  <select id="selectParentId" parameterType="integer" resultMap="BaseResultMap">
129
+    select
130
+    <include refid="Base_Column_List"/>
131
+    from to_sys_menu
132
+    <trim prefix="where" prefixOverrides="and">
133
+      <if test="parentId != null">
134
+        and parent_id = #{parentId,jdbcType=INTEGER}
135
+      </if>
136
+      <if test="menuType != null">
137
+        and menu_type = #{menuType,jdbcType=CHAR}
138
+      </if>
139
+    </trim>
140
+  </select>
128
 </mapper>
141
 </mapper>

+ 1
- 1
CODE/smart-community/operate-api/src/main/resources/mapper/ToSysRoleMapper.xml View File

138
     from to_sys_role
138
     from to_sys_role
139
     <where>
139
     <where>
140
       <if test="roleName != null and roleName != ''">
140
       <if test="roleName != null and roleName != ''">
141
-        role_name = #{roleName,jdbcType=VARCHAR}
141
+        role_name like concat('%',#{roleName,jdbcType=VARCHAR},'%')
142
       </if>
142
       </if>
143
     </where>
143
     </where>
144
   </select>
144
   </select>

+ 21
- 0
VUECODE/smart-operate-manage/src/router/index.js View File

120
         component: () => import('@/views/account/role/index'),
120
         component: () => import('@/views/account/role/index'),
121
         name: 'role-index',
121
         name: 'role-index',
122
         meta: { title: '角色管理', icon: 'table' }
122
         meta: { title: '角色管理', icon: 'table' }
123
+      },
124
+      {
125
+        path: '/account/role/add',
126
+        component: () => import('@/views/account/role/add/index'),
127
+        name: 'role-add',
128
+        hidden: true,
129
+        meta: { title: '添加角色', icon: 'table' }
130
+      },
131
+      {
132
+        path: '/account/role/edi',
133
+        component: () => import('@/views/account/role/edi/index'),
134
+        name: 'role-edi',
135
+        hidden: true,
136
+        meta: { title: '修改角色', icon: 'table' }
137
+      },
138
+      {
139
+        path: '/account/role/info',
140
+        component: () => import('@/views/account/role/info/index'),
141
+        name: 'role-info',
142
+        hidden: true,
143
+        meta: { title: '角色详情', icon: 'table' }
123
       }
144
       }
124
     ]
145
     ]
125
   },
146
   },

+ 3
- 1
VUECODE/smart-operate-manage/src/store/index.js View File

6
 import community from './modules/community'
6
 import community from './modules/community'
7
 import trunkIndex from './modules/trunkIndex'
7
 import trunkIndex from './modules/trunkIndex'
8
 import getters from './getters'
8
 import getters from './getters'
9
+import role from './modules/role'
9
 
10
 
10
 Vue.use(Vuex)
11
 Vue.use(Vuex)
11
 
12
 
15
     user,
16
     user,
16
     community,
17
     community,
17
     banner,
18
     banner,
18
-    trunkIndex
19
+    trunkIndex,
20
+    role
19
   },
21
   },
20
   getters
22
   getters
21
 })
23
 })

+ 9
- 4
VUECODE/smart-operate-manage/src/store/modules/role.js View File

1
-import { getRoleList } from "@/api/role";
1
+import { getRoleList } from '@/api/role'
2
 
2
 
3
 const role = {
3
 const role = {
4
 
4
 
5
   actions: {
5
   actions: {
6
-    GetRoleList() {
7
-      getRoleList().then().catch((err)=>{
8
-        
6
+    GetRoleList({ commit }, data) { // 根据条件获取所有的角色列表
7
+      console.log('角色列表请求参数: ', data)
8
+      return new Promise((resolve, reject) => {
9
+        getRoleList(data).then(response => {
10
+          resolve(response)
11
+        }).catch((err) => {
12
+          reject(err)
13
+        })
9
       })
14
       })
10
     }
15
     }
11
   }
16
   }

+ 79
- 0
VUECODE/smart-operate-manage/src/views/account/role/add/index.vue View File

1
+<template>
2
+  <div id="root">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
4
+      <el-form-item label="角色名称" prop="roleName">
5
+        <el-input v-model="ruleForm.roleName"/>
6
+      </el-form-item>
7
+      <el-form-item label="角色描述" prop="description">
8
+        <el-input v-model="ruleForm.description"/>
9
+      </el-form-item>
10
+      <el-form-item label="权限资源" prop="menuArray">
11
+        <el-tree
12
+          :data="menuData"
13
+          :default-expanded-keys="[2, 3]"
14
+          :default-checked-keys="[5]"
15
+          :props="defaultProps"
16
+          show-checkbox
17
+          node-key="id"
18
+          @check-change="handleCheckChange"/>
19
+      </el-form-item>
20
+      <el-form-item>
21
+        <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
22
+        <el-button @click="resetForm('ruleForm')">重置</el-button>
23
+      </el-form-item>
24
+    </el-form>
25
+  </div>
26
+</template>
27
+
28
+<script>
29
+export default {
30
+  data() {
31
+    return {
32
+      ruleForm: {
33
+        roleName: '',
34
+        description: '',
35
+        menuArray: [] // 已选中的权限资源
36
+      },
37
+      menuData: [], // 所有权限资源
38
+      defaultProps: { // 设置树形节点的渲染的属性
39
+        id: 'id',
40
+        children: 'children',
41
+        label: 'label'
42
+      },
43
+      rules: {
44
+        roleName: [
45
+          { required: true, message: '请输入角色名称', trigger: 'blur' }
46
+        ],
47
+        description: [
48
+          { required: true, message: '请输入角色描述', trigger: 'blur' }
49
+        ],
50
+        menuArray: [
51
+          { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
52
+        ]
53
+      }
54
+    }
55
+  },
56
+  methods: {
57
+    submitForm(formName) {
58
+      this.$refs[formName].validate((valid) => {
59
+        if (valid) {
60
+          alert('submit!')
61
+        } else {
62
+          console.log('error submit!!')
63
+          return false
64
+        }
65
+      })
66
+    },
67
+    resetForm(formName) {
68
+      this.$refs[formName].resetFields()
69
+    },
70
+    handleCheckChange(data, checked, indeterminate) { // 树形图选择事件
71
+      console.log(data, checked, indeterminate)
72
+    }
73
+  }
74
+}
75
+</script>
76
+
77
+<style scoped>
78
+
79
+</style>

+ 114
- 0
VUECODE/smart-operate-manage/src/views/account/role/edi/index.vue View File

1
+<template>
2
+  <div id="root">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
4
+      <el-form-item label="活动名称" prop="name">
5
+        <el-input v-model="ruleForm.name"/>
6
+      </el-form-item>
7
+      <el-form-item label="活动区域" prop="region">
8
+        <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
9
+          <el-option label="区域一" value="shanghai"/>
10
+          <el-option label="区域二" value="beijing"/>
11
+        </el-select>
12
+      </el-form-item>
13
+      <el-form-item label="活动时间" required>
14
+        <el-col :span="11">
15
+          <el-form-item prop="date1">
16
+            <el-date-picker v-model="ruleForm.date1" type="date" placeholder="选择日期" style="width: 100%;"/>
17
+          </el-form-item>
18
+        </el-col>
19
+        <el-col :span="2" class="line">-</el-col>
20
+        <el-col :span="11">
21
+          <el-form-item prop="date2">
22
+            <el-time-picker v-model="ruleForm.date2" type="fixed-time" placeholder="选择时间" style="width: 100%;"/>
23
+          </el-form-item>
24
+        </el-col>
25
+      </el-form-item>
26
+      <el-form-item label="即时配送" prop="delivery">
27
+        <el-switch v-model="ruleForm.delivery"/>
28
+      </el-form-item>
29
+      <el-form-item label="活动性质" prop="type">
30
+        <el-checkbox-group v-model="ruleForm.type">
31
+          <el-checkbox label="美食/餐厅线上活动" name="type"/>
32
+          <el-checkbox label="地推活动" name="type"/>
33
+          <el-checkbox label="线下主题活动" name="type"/>
34
+          <el-checkbox label="单纯品牌曝光" name="type"/>
35
+        </el-checkbox-group>
36
+      </el-form-item>
37
+      <el-form-item label="特殊资源" prop="resource">
38
+        <el-radio-group v-model="ruleForm.resource">
39
+          <el-radio label="线上品牌商赞助"/>
40
+          <el-radio label="线下场地免费"/>
41
+        </el-radio-group>
42
+      </el-form-item>
43
+      <el-form-item label="活动形式" prop="desc">
44
+        <el-input v-model="ruleForm.desc" type="textarea"/>
45
+      </el-form-item>
46
+      <el-form-item>
47
+        <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
48
+        <el-button @click="resetForm('ruleForm')">重置</el-button>
49
+      </el-form-item>
50
+    </el-form>
51
+  </div>
52
+</template>
53
+
54
+<script>
55
+export default {
56
+  data() {
57
+    return {
58
+      ruleForm: {
59
+        name: '',
60
+        region: '',
61
+        date1: '',
62
+        date2: '',
63
+        delivery: false,
64
+        type: [],
65
+        resource: '',
66
+        desc: ''
67
+      },
68
+      rules: {
69
+        name: [
70
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
71
+          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
72
+        ],
73
+        region: [
74
+          { required: true, message: '请选择活动区域', trigger: 'change' }
75
+        ],
76
+        date1: [
77
+          { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
78
+        ],
79
+        date2: [
80
+          { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
81
+        ],
82
+        type: [
83
+          { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
84
+        ],
85
+        resource: [
86
+          { required: true, message: '请选择活动资源', trigger: 'change' }
87
+        ],
88
+        desc: [
89
+          { required: true, message: '请填写活动形式', trigger: 'blur' }
90
+        ]
91
+      }
92
+    }
93
+  },
94
+  methods: {
95
+    submitForm(formName) {
96
+      this.$refs[formName].validate((valid) => {
97
+        if (valid) {
98
+          alert('submit!')
99
+        } else {
100
+          console.log('error submit!!')
101
+          return false
102
+        }
103
+      })
104
+    },
105
+    resetForm(formName) {
106
+      this.$refs[formName].resetFields()
107
+    }
108
+  }
109
+}
110
+</script>
111
+
112
+<style scoped>
113
+
114
+</style>

+ 81
- 10
VUECODE/smart-operate-manage/src/views/account/role/index.vue View File

5
         <el-input v-model="listQuery.roleName" placeholder="角色名称"/>
5
         <el-input v-model="listQuery.roleName" placeholder="角色名称"/>
6
       </el-form-item>
6
       </el-form-item>
7
       <el-form-item>
7
       <el-form-item>
8
-        <el-button type="info" @click="onSubmit">清空</el-button>
9
-        <el-button type="primary" @click="onSubmit">查询</el-button>
8
+        <el-button type="info" @click="cleanQuery">清空</el-button>
9
+        <el-button type="primary" @click="queryData">查询</el-button>
10
       </el-form-item>
10
       </el-form-item>
11
     </el-form>
11
     </el-form>
12
     <div class="but-content">
12
     <div class="but-content">
13
-      <el-button type="primary" @click="onSubmit">添加</el-button>
14
-      <el-button type="warning" @click="onSubmit">修改</el-button>
15
-      <el-button type="danger" @click="onSubmit">删除</el-button>
13
+      <el-button type="primary" @click="addRole">添加</el-button>
14
+      <el-button type="warning" @click="updateRole">修改</el-button>
15
+      <el-button type="danger" @click="deleteRole">删除</el-button>
16
     </div>
16
     </div>
17
     <el-table
17
     <el-table
18
+      v-loading="listLoading"
18
       ref="multipleTable"
19
       ref="multipleTable"
19
       :data="listData"
20
       :data="listData"
20
       tooltip-effect="dark"
21
       tooltip-effect="dark"
36
         label="角色描述"
37
         label="角色描述"
37
         align="center"/>
38
         align="center"/>
38
       <el-table-column
39
       <el-table-column
39
-        prop="createUser"
40
+        prop="createUserName"
40
         label="创建人"
41
         label="创建人"
41
         align="center"/>
42
         align="center"/>
42
       <el-table-column
43
       <el-table-column
43
         prop="createDate"
44
         prop="createDate"
44
         label="创建时间"
45
         label="创建时间"
45
-        align="center"/>
46
+        align="center">
47
+        <template slot-scope="scope">{{ formatDate(scope.row.createDate) }}</template>
48
+      </el-table-column>
46
       <el-table-column
49
       <el-table-column
47
-        prop="updateUuser"
50
+        prop="updateUserName"
48
         label="修改人"
51
         label="修改人"
49
         align="center"/>
52
         align="center"/>
50
       <el-table-column
53
       <el-table-column
51
         prop="updateDate"
54
         prop="updateDate"
52
         label="修改时间"
55
         label="修改时间"
53
-        align="center"/>
56
+        align="center">
57
+        <template slot-scope="scope">{{ formatDate(scope.row.updateDate) }}</template>
58
+      </el-table-column>
54
     </el-table>
59
     </el-table>
55
     <div class="footer-page">
60
     <div class="footer-page">
56
       <el-pagination
61
       <el-pagination
75
         pageSize: 10
80
         pageSize: 10
76
       },
81
       },
77
       total: 0, // 总数
82
       total: 0, // 总数
78
-      listData: []
83
+      listData: [],
84
+      listLoading: false // 表格加载框
79
     }
85
     }
80
   },
86
   },
87
+  mounted() {
88
+    this.getRoleList()
89
+  },
81
   methods: {
90
   methods: {
82
     onSubmit() {
91
     onSubmit() {
83
       console.log('submit!')
92
       console.log('submit!')
93
+    },
94
+    getRoleList() { // 查询Role列表
95
+      this.listLoading = true
96
+      this.$store.dispatch('GetRoleList', this.listQuery).then((response) => {
97
+        const resCode = response.code
98
+        const resData = response.data
99
+        if (resCode === '0') {
100
+          this.listData = resData.list
101
+          this.listQuery.pageSize = resData.pageSize
102
+          this.listQuery.pageNum = resData.pageNum
103
+          this.total = resData.total
104
+          this.listLoading = false
105
+          return
106
+        }
107
+        this.$message.error(response.message)
108
+        this.listLoading = false
109
+      }).catch(() => {
110
+        console.log('error GetRoleList')
111
+        this.listLoading = false
112
+      })
113
+    },
114
+    handleSizeChange(val) {
115
+      console.log(`每页 ${val} 条`)
116
+      this.listQuery.pageSize = val
117
+      this.getRoleList()
118
+    },
119
+    handleCurrentChange(val) {
120
+      console.log(`当前页: ${val}`)
121
+      this.listQuery.pageNum = val
122
+      this.getRoleList()
123
+    },
124
+    handleSelectionChange(rows) { // 表格选择框
125
+      console.log(rows)
126
+    },
127
+    formatDate(val) {
128
+      var value = new Date(val)
129
+      var year = value.getFullYear()
130
+      var month = value.getMonth() + 1
131
+      var day = value.getDate()
132
+      // var hour = value.getHours()
133
+      // var minutes = value.getMinutes()
134
+      // var seconds = value.getSeconds()
135
+      // return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds
136
+      return year + '-' + month + '-' + day
137
+    },
138
+    queryData() { // 点击查询按钮
139
+      this.listQuery.pageNum = 1
140
+      this.listQuery.pageSize = 10
141
+      this.getRoleList()
142
+    },
143
+    cleanQuery() { // 清楚查询条件
144
+      this.listQuery.pageNum = 1
145
+      this.listQuery.pageSize = 10
146
+      this.listQuery.roleName = ''
147
+      this.getRoleList()
148
+    },
149
+    deleteRole() { // 删除角色
150
+    },
151
+    updateRole() { // 修改角色
152
+    },
153
+    addRole() { // 添加角色
154
+      this.$router.push({ name: 'role-add' })
84
     }
155
     }
85
   }
156
   }
86
 }
157
 }

+ 114
- 0
VUECODE/smart-operate-manage/src/views/account/role/info/index.vue View File

1
+<template>
2
+  <div id="root">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
4
+      <el-form-item label="活动名称" prop="name">
5
+        <el-input v-model="ruleForm.name"/>
6
+      </el-form-item>
7
+      <el-form-item label="活动区域" prop="region">
8
+        <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
9
+          <el-option label="区域一" value="shanghai"/>
10
+          <el-option label="区域二" value="beijing"/>
11
+        </el-select>
12
+      </el-form-item>
13
+      <el-form-item label="活动时间" required>
14
+        <el-col :span="11">
15
+          <el-form-item prop="date1">
16
+            <el-date-picker v-model="ruleForm.date1" type="date" placeholder="选择日期" style="width: 100%;"/>
17
+          </el-form-item>
18
+        </el-col>
19
+        <el-col :span="2" class="line">-</el-col>
20
+        <el-col :span="11">
21
+          <el-form-item prop="date2">
22
+            <el-time-picker v-model="ruleForm.date2" type="fixed-time" placeholder="选择时间" style="width: 100%;"/>
23
+          </el-form-item>
24
+        </el-col>
25
+      </el-form-item>
26
+      <el-form-item label="即时配送" prop="delivery">
27
+        <el-switch v-model="ruleForm.delivery"/>
28
+      </el-form-item>
29
+      <el-form-item label="活动性质" prop="type">
30
+        <el-checkbox-group v-model="ruleForm.type">
31
+          <el-checkbox label="美食/餐厅线上活动" name="type"/>
32
+          <el-checkbox label="地推活动" name="type"/>
33
+          <el-checkbox label="线下主题活动" name="type"/>
34
+          <el-checkbox label="单纯品牌曝光" name="type"/>
35
+        </el-checkbox-group>
36
+      </el-form-item>
37
+      <el-form-item label="特殊资源" prop="resource">
38
+        <el-radio-group v-model="ruleForm.resource">
39
+          <el-radio label="线上品牌商赞助"/>
40
+          <el-radio label="线下场地免费"/>
41
+        </el-radio-group>
42
+      </el-form-item>
43
+      <el-form-item label="活动形式" prop="desc">
44
+        <el-input v-model="ruleForm.desc" type="textarea"/>
45
+      </el-form-item>
46
+      <el-form-item>
47
+        <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
48
+        <el-button @click="resetForm('ruleForm')">重置</el-button>
49
+      </el-form-item>
50
+    </el-form>
51
+  </div>
52
+</template>
53
+
54
+<script>
55
+export default {
56
+  data() {
57
+    return {
58
+      ruleForm: {
59
+        name: '',
60
+        region: '',
61
+        date1: '',
62
+        date2: '',
63
+        delivery: false,
64
+        type: [],
65
+        resource: '',
66
+        desc: ''
67
+      },
68
+      rules: {
69
+        name: [
70
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
71
+          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
72
+        ],
73
+        region: [
74
+          { required: true, message: '请选择活动区域', trigger: 'change' }
75
+        ],
76
+        date1: [
77
+          { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
78
+        ],
79
+        date2: [
80
+          { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
81
+        ],
82
+        type: [
83
+          { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
84
+        ],
85
+        resource: [
86
+          { required: true, message: '请选择活动资源', trigger: 'change' }
87
+        ],
88
+        desc: [
89
+          { required: true, message: '请填写活动形式', trigger: 'blur' }
90
+        ]
91
+      }
92
+    }
93
+  },
94
+  methods: {
95
+    submitForm(formName) {
96
+      this.$refs[formName].validate((valid) => {
97
+        if (valid) {
98
+          alert('submit!')
99
+        } else {
100
+          console.log('error submit!!')
101
+          return false
102
+        }
103
+      })
104
+    },
105
+    resetForm(formName) {
106
+      this.$refs[formName].resetFields()
107
+    }
108
+  }
109
+}
110
+</script>
111
+
112
+<style scoped>
113
+
114
+</style>