瀏覽代碼

角色 页面

weiximei 6 年之前
父節點
當前提交
27359fc21c
共有 18 個文件被更改,包括 619 次插入25 次删除
  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 查看文件

@@ -232,6 +232,21 @@ public class TaUserServiceImpl implements ITaUserService {
232 232
         // 下发门禁权限
233 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 250
         // TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
236 251
         // TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
237 252
 
@@ -254,12 +269,6 @@ public class TaUserServiceImpl implements ITaUserService {
254 269
 //        // 可视对讲 指定人员指纹权限下载
255 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 274
     @Transactional(rollbackFor = Exception.class)
@@ -540,6 +549,9 @@ public class TaUserServiceImpl implements ITaUserService {
540 549
         // 下发门禁权限
541 550
         HKOpenApi.downloadAuthorityByDeviceUuids();
542 551
 
552
+        //--------- 可视对讲 ----------
553
+        visualIntercom(user);
554
+
543 555
         if ("0".equals(response.getCode())) {
544 556
             response.addSuccess(user);
545 557
         }

+ 27
- 0
CODE/smart-community/operate-api/src/main/java/com/community/huiju/controller/SysMenuController.java 查看文件

@@ -0,0 +1,27 @@
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 查看文件

@@ -2,6 +2,9 @@ package com.community.huiju.dao;
2 2
 
3 3
 import com.community.huiju.model.ToSysMenu;
4 4
 import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
6
+
7
+import java.util.List;
5 8
 
6 9
 @Mapper
7 10
 public interface ToSysMenuMapper {
@@ -16,4 +19,12 @@ public interface ToSysMenuMapper {
16 19
     int updateByPrimaryKeySelective(ToSysMenu record);
17 20
 
18 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 查看文件

@@ -2,6 +2,7 @@ package com.community.huiju.dao;
2 2
 
3 3
 import com.community.huiju.model.ToSysRole;
4 4
 import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
5 6
 
6 7
 import java.util.List;
7 8
 
@@ -33,5 +34,5 @@ public interface ToSysRoleMapper {
33 34
      *
34 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 查看文件

@@ -1,5 +1,7 @@
1 1
 package com.community.huiju.model;
2 2
 
3
+import java.util.List;
4
+
3 5
 public class ToSysMenu {
4 6
     private Integer id;
5 7
 
@@ -17,6 +19,11 @@ public class ToSysMenu {
17 19
 
18 20
     private String status;
19 21
 
22
+    /**
23
+     * 节点
24
+     */
25
+    private List<ToSysMenu> children;
26
+
20 27
     public Integer getId() {
21 28
         return id;
22 29
     }
@@ -80,4 +87,12 @@ public class ToSysMenu {
80 87
     public void setStatus(String status) {
81 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 查看文件

@@ -19,6 +19,16 @@ public class ToSysRole {
19 19
 
20 20
     private Date updateDate;
21 21
 
22
+    /**
23
+     * 创建人用户名
24
+     */
25
+    private String createUserName;
26
+
27
+    /**
28
+     * 修改人用户名
29
+     */
30
+    private String updateUserName;
31
+
22 32
     public Integer getId() {
23 33
         return id;
24 34
     }
@@ -82,4 +92,20 @@ public class ToSysRole {
82 92
     public void setUpdateDate(Date updateDate) {
83 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 查看文件

@@ -0,0 +1,16 @@
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 查看文件

@@ -0,0 +1,43 @@
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 查看文件

@@ -2,15 +2,22 @@ package com.community.huiju.service.impl;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.community.commom.mode.ResponseBean;
5
+import com.community.huiju.dao.TaUserMapper;
5 6
 import com.community.huiju.dao.ToSysRoleMapper;
7
+import com.community.huiju.dao.ToUserMapper;
8
+import com.community.huiju.model.TaUser;
6 9
 import com.community.huiju.model.ToSysRole;
10
+import com.community.huiju.model.ToUser;
7 11
 import com.community.huiju.service.IToSysRoleService;
12
+import com.github.pagehelper.Page;
8 13
 import com.github.pagehelper.PageHelper;
9 14
 import lombok.extern.slf4j.Slf4j;
10 15
 import org.springframework.beans.factory.annotation.Autowired;
11 16
 import org.springframework.stereotype.Service;
12 17
 
18
+import java.util.HashMap;
13 19
 import java.util.List;
20
+import java.util.Map;
14 21
 
15 22
 @Service("iToSysRoleService")
16 23
 @Slf4j
@@ -19,6 +26,9 @@ public class ToSysRoleServiceImpl implements IToSysRoleService {
19 26
     @Autowired
20 27
     private ToSysRoleMapper toSysRoleMapper;
21 28
 
29
+    @Autowired
30
+    private ToUserMapper toUserMapper;
31
+
22 32
     @Override
23 33
     public List<ToSysRole> selectRoleByUserId(Integer userId) {
24 34
 
@@ -34,9 +44,23 @@ public class ToSysRoleServiceImpl implements IToSysRoleService {
34 44
         Integer pageSize = jsonObject.getInteger("pageSize");
35 45
         String roleName = jsonObject.getString("roleName").trim();
36 46
 
37
-        PageHelper.startPage(pageNum, pageSize);
47
+        Page<ToSysRole> pageInfo = PageHelper.startPage(pageNum, pageSize);
38 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 64
         return responseBean;
41 65
     }
42 66
 }

+ 13
- 0
CODE/smart-community/operate-api/src/main/resources/mapper/ToSysMenuMapper.xml 查看文件

@@ -125,4 +125,17 @@
125 125
       status = #{status,jdbcType=CHAR}
126 126
     where id = #{id,jdbcType=INTEGER}
127 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 141
 </mapper>

+ 1
- 1
CODE/smart-community/operate-api/src/main/resources/mapper/ToSysRoleMapper.xml 查看文件

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

+ 21
- 0
VUECODE/smart-operate-manage/src/router/index.js 查看文件

@@ -120,6 +120,27 @@ export const constantRouterMap = [
120 120
         component: () => import('@/views/account/role/index'),
121 121
         name: 'role-index',
122 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 查看文件

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

+ 9
- 4
VUECODE/smart-operate-manage/src/store/modules/role.js 查看文件

@@ -1,11 +1,16 @@
1
-import { getRoleList } from "@/api/role";
1
+import { getRoleList } from '@/api/role'
2 2
 
3 3
 const role = {
4 4
 
5 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 查看文件

@@ -0,0 +1,79 @@
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 查看文件

@@ -0,0 +1,114 @@
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 查看文件

@@ -5,16 +5,17 @@
5 5
         <el-input v-model="listQuery.roleName" placeholder="角色名称"/>
6 6
       </el-form-item>
7 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 10
       </el-form-item>
11 11
     </el-form>
12 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 16
     </div>
17 17
     <el-table
18
+      v-loading="listLoading"
18 19
       ref="multipleTable"
19 20
       :data="listData"
20 21
       tooltip-effect="dark"
@@ -36,21 +37,25 @@
36 37
         label="角色描述"
37 38
         align="center"/>
38 39
       <el-table-column
39
-        prop="createUser"
40
+        prop="createUserName"
40 41
         label="创建人"
41 42
         align="center"/>
42 43
       <el-table-column
43 44
         prop="createDate"
44 45
         label="创建时间"
45
-        align="center"/>
46
+        align="center">
47
+        <template slot-scope="scope">{{ formatDate(scope.row.createDate) }}</template>
48
+      </el-table-column>
46 49
       <el-table-column
47
-        prop="updateUuser"
50
+        prop="updateUserName"
48 51
         label="修改人"
49 52
         align="center"/>
50 53
       <el-table-column
51 54
         prop="updateDate"
52 55
         label="修改时间"
53
-        align="center"/>
56
+        align="center">
57
+        <template slot-scope="scope">{{ formatDate(scope.row.updateDate) }}</template>
58
+      </el-table-column>
54 59
     </el-table>
55 60
     <div class="footer-page">
56 61
       <el-pagination
@@ -75,12 +80,78 @@ export default {
75 80
         pageSize: 10
76 81
       },
77 82
       total: 0, // 总数
78
-      listData: []
83
+      listData: [],
84
+      listLoading: false // 表格加载框
79 85
     }
80 86
   },
87
+  mounted() {
88
+    this.getRoleList()
89
+  },
81 90
   methods: {
82 91
     onSubmit() {
83 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 查看文件

@@ -0,0 +1,114 @@
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>