Ver código fonte

组织管理、角色管理

tianyabing 2 anos atrás
pai
commit
b57e6c6c21

+ 49 - 1
src/api/company/company.js

@@ -7,6 +7,54 @@ const getCompanyList = (name, page, page_size) => {
     );
 }
 
+/** 获取公司详情 */
+const getCompanyInfo = (id) => {
+    return get(
+        `/organization/company?company_id=${id}`
+    );
+}
+
+//修改公司详情
+const updateCompanyInfo = (param) => {
+  return put('/organization/company', param);
+}
+
+// 增加公司
+const addCompany = (param) => {
+  return post('/organization/company', param)
+}
+
+// 删除公司
+const delCompanyInfo = (id) => {
+  return del('/organization/company', {
+      company_id: id,
+      company_name: id
+  })
+}
+
+// 增加部门
+const addDept = (param) => {
+    return post('/organization/department', param)
+}
+
+// 修改部门详情
+const updateDept = (param) => {
+    return put('/organization/department', param)
+}
+
+// 删除部门
+const delDept = (param) => {
+    return del('/organization/department', param)
+}
+
 export {
-    getCompanyList
+    getCompanyList,
+    getCompanyInfo,
+    updateCompanyInfo,
+    delCompanyInfo,
+    addCompany,
+    addDept,
+    updateDept,
+    delDept,
+
 }

+ 49 - 1
src/api/role/role.js

@@ -1,4 +1,4 @@
-import {get, post, put, del, postform} from "@/utils/requestMethod";
+import {get, post, put, del, postform, delform} from "@/utils/requestMethod";
 
 const getRoleList = (
     page,
@@ -17,6 +17,38 @@ const addRoleApi = (roleName, roleDesc) => {
   })
 }
 
+// 获取角色详情
+const getRoleApi = (id) => {
+  return get('/role/role', {
+      role_id: id,
+  })
+}
+
+// 编辑角色
+const updateRoleInfo = (id, name, desc, permission) => {
+  return put('/role/role', {
+      role_id: id,
+      role_name: name,
+      role_describe: desc,
+      role_permission: permission,
+  })
+}
+
+// 删除角色
+const deleteRole = (id) => {
+  return del('/role/role',{
+      role_id: id,
+      role_name: '123'
+  })
+}
+
+// 批量删除角色
+const batchDeleteRole = (ids) => {
+    return del('/role/role',{
+        roleIds: ids
+    })
+}
+
 // 获取角色成员
 const getRoleMember = (id) => {
   return get('/role/member', {
@@ -24,6 +56,16 @@ const getRoleMember = (id) => {
   })
 }
 
+// 移除成员
+const removeMember = (params) => {
+    return put('/role/member', params)
+}
+
+// 批量移除成员
+const batchRemoveMember = (params) => {
+  return delform('/role/member', params)
+}
+
 // 获取权限信息
 const getPermissionList = () => {
   return get('/permission/permission', {});
@@ -32,6 +74,12 @@ const getPermissionList = () => {
 export {
     getRoleList,
     addRoleApi,
+    getRoleApi,
     getRoleMember,
     getPermissionList,
+    deleteRole,
+    removeMember,
+    batchRemoveMember,
+    updateRoleInfo,
+
 }

+ 10 - 1
src/api/user/user.js

@@ -77,6 +77,14 @@ const updateUserInfo = (options) => {
     params.append('nationality', options.nationality);
     return put(`/users/user`, params);
 }
+// 修改用户密码
+const updPwd = (id, username, password) => {
+  return put('/users/user', {
+      id: id,
+      username: username ,
+      password: password
+  })
+}
 //修改用户状态等
 const alterUserStatus = () => {
     return put(`/users/user_status`);
@@ -94,5 +102,6 @@ export {
     delUserByBatched,
     updateUserInfo,
     alterUserStatus,
-    alterUserStatusByBatched
+    alterUserStatusByBatched,
+    updPwd,
 }

BIN
src/assets/background/banner.png


+ 2030 - 0
src/data/province.json

@@ -0,0 +1,2030 @@
+[
+	{
+		"children":[
+			{
+				"label":"东城区",
+				"value":"东城区"
+			},
+			{
+				"label":"西城区",
+				"value":"西城区"
+			},
+			{
+				"label":"朝阳区",
+				"value":"朝阳区"
+			},
+			{
+				"label":"丰台区",
+				"value":"丰台区"
+			},
+			{
+				"label":"石景山区",
+				"value":"石景山区"
+			},
+			{
+				"label":"海淀区",
+				"value":"海淀区"
+			},
+			{
+				"label":"门头沟区",
+				"value":"门头沟区"
+			},
+			{
+				"label":"房山区",
+				"value":"房山区"
+			},
+			{
+				"label":"通州区",
+				"value":"通州区"
+			},
+			{
+				"label":"顺义区",
+				"value":"顺义区"
+			},
+			{
+				"label":"昌平区",
+				"value":"昌平区"
+			},
+			{
+				"label":"大兴区",
+				"value":"大兴区"
+			},
+			{
+				"label":"怀柔区",
+				"value":"怀柔区"
+			},
+			{
+				"label":"平谷区",
+				"value":"平谷区"
+			},
+			{
+				"label":"密云区",
+				"value":"密云区"
+			},
+			{
+				"label":"延庆区",
+				"value":"延庆区"
+			}
+		],
+		"label":"北京市",
+		"value":"北京市"
+	},
+	{
+		"children":[
+			{
+				"label":"和平区",
+				"value":"和平区"
+			},
+			{
+				"label":"河东区",
+				"value":"河东区"
+			},
+			{
+				"label":"河西区",
+				"value":"河西区"
+			},
+			{
+				"label":"南开区",
+				"value":"南开区"
+			},
+			{
+				"label":"河北区",
+				"value":"河北区"
+			},
+			{
+				"label":"红桥区",
+				"value":"红桥区"
+			},
+			{
+				"label":"东丽区",
+				"value":"东丽区"
+			},
+			{
+				"label":"西青区",
+				"value":"西青区"
+			},
+			{
+				"label":"津南区",
+				"value":"津南区"
+			},
+			{
+				"label":"北辰区",
+				"value":"北辰区"
+			},
+			{
+				"label":"武清区",
+				"value":"武清区"
+			},
+			{
+				"label":"宝坻区",
+				"value":"宝坻区"
+			},
+			{
+				"label":"滨海新区",
+				"value":"滨海新区"
+			},
+			{
+				"label":"宁河区",
+				"value":"宁河区"
+			},
+			{
+				"label":"静海区",
+				"value":"静海区"
+			},
+			{
+				"label":"蓟州区",
+				"value":"蓟州区"
+			}
+		],
+		"label":"天津市",
+		"value":"天津市"
+	},
+	{
+		"children":[
+			{
+				"label":"石家庄市",
+				"value":"石家庄市"
+			},
+			{
+				"label":"唐山市",
+				"value":"唐山市"
+			},
+			{
+				"label":"秦皇岛市",
+				"value":"秦皇岛市"
+			},
+			{
+				"label":"邯郸市",
+				"value":"邯郸市"
+			},
+			{
+				"label":"邢台市",
+				"value":"邢台市"
+			},
+			{
+				"label":"保定市",
+				"value":"保定市"
+			},
+			{
+				"label":"张家口市",
+				"value":"张家口市"
+			},
+			{
+				"label":"承德市",
+				"value":"承德市"
+			},
+			{
+				"label":"沧州市",
+				"value":"沧州市"
+			},
+			{
+				"label":"廊坊市",
+				"value":"廊坊市"
+			},
+			{
+				"label":"衡水市",
+				"value":"衡水市"
+			}
+		],
+		"label":"河北省",
+		"value":"河北省"
+	},
+	{
+		"children":[
+			{
+				"label":"太原市",
+				"value":"太原市"
+			},
+			{
+				"label":"大同市",
+				"value":"大同市"
+			},
+			{
+				"label":"阳泉市",
+				"value":"阳泉市"
+			},
+			{
+				"label":"长治市",
+				"value":"长治市"
+			},
+			{
+				"label":"晋城市",
+				"value":"晋城市"
+			},
+			{
+				"label":"朔州市",
+				"value":"朔州市"
+			},
+			{
+				"label":"晋中市",
+				"value":"晋中市"
+			},
+			{
+				"label":"运城市",
+				"value":"运城市"
+			},
+			{
+				"label":"忻州市",
+				"value":"忻州市"
+			},
+			{
+				"label":"临汾市",
+				"value":"临汾市"
+			},
+			{
+				"label":"吕梁市",
+				"value":"吕梁市"
+			}
+		],
+		"label":"山西省",
+		"value":"山西省"
+	},
+	{
+		"children":[
+			{
+				"label":"呼和浩特市",
+				"value":"呼和浩特市"
+			},
+			{
+				"label":"包头市",
+				"value":"包头市"
+			},
+			{
+				"label":"乌海市",
+				"value":"乌海市"
+			},
+			{
+				"label":"赤峰市",
+				"value":"赤峰市"
+			},
+			{
+				"label":"通辽市",
+				"value":"通辽市"
+			},
+			{
+				"label":"鄂尔多斯市",
+				"value":"鄂尔多斯市"
+			},
+			{
+				"label":"呼伦贝尔市",
+				"value":"呼伦贝尔市"
+			},
+			{
+				"label":"巴彦淖尔市",
+				"value":"巴彦淖尔市"
+			},
+			{
+				"label":"乌兰察布市",
+				"value":"乌兰察布市"
+			},
+			{
+				"label":"兴安盟",
+				"value":"兴安盟"
+			},
+			{
+				"label":"锡林郭勒盟",
+				"value":"锡林郭勒盟"
+			},
+			{
+				"label":"阿拉善盟",
+				"value":"阿拉善盟"
+			}
+		],
+		"label":"内蒙古自治区",
+		"value":"内蒙古自治区"
+	},
+	{
+		"children":[
+			{
+				"label":"沈阳市",
+				"value":"沈阳市"
+			},
+			{
+				"label":"大连市",
+				"value":"大连市"
+			},
+			{
+				"label":"鞍山市",
+				"value":"鞍山市"
+			},
+			{
+				"label":"抚顺市",
+				"value":"抚顺市"
+			},
+			{
+				"label":"本溪市",
+				"value":"本溪市"
+			},
+			{
+				"label":"丹东市",
+				"value":"丹东市"
+			},
+			{
+				"label":"锦州市",
+				"value":"锦州市"
+			},
+			{
+				"label":"营口市",
+				"value":"营口市"
+			},
+			{
+				"label":"阜新市",
+				"value":"阜新市"
+			},
+			{
+				"label":"辽阳市",
+				"value":"辽阳市"
+			},
+			{
+				"label":"盘锦市",
+				"value":"盘锦市"
+			},
+			{
+				"label":"铁岭市",
+				"value":"铁岭市"
+			},
+			{
+				"label":"朝阳市",
+				"value":"朝阳市"
+			},
+			{
+				"label":"葫芦岛市",
+				"value":"葫芦岛市"
+			}
+		],
+		"label":"辽宁省",
+		"value":"辽宁省"
+	},
+	{
+		"children":[
+			{
+				"label":"长春市",
+				"value":"长春市"
+			},
+			{
+				"label":"吉林市",
+				"value":"吉林市"
+			},
+			{
+				"label":"四平市",
+				"value":"四平市"
+			},
+			{
+				"label":"辽源市",
+				"value":"辽源市"
+			},
+			{
+				"label":"通化市",
+				"value":"通化市"
+			},
+			{
+				"label":"白山市",
+				"value":"白山市"
+			},
+			{
+				"label":"松原市",
+				"value":"松原市"
+			},
+			{
+				"label":"白城市",
+				"value":"白城市"
+			},
+			{
+				"label":"延边朝鲜族自治州",
+				"value":"延边朝鲜族自治州"
+			}
+		],
+		"label":"吉林省",
+		"value":"吉林省"
+	},
+	{
+		"children":[
+			{
+				"label":"哈尔滨市",
+				"value":"哈尔滨市"
+			},
+			{
+				"label":"齐齐哈尔市",
+				"value":"齐齐哈尔市"
+			},
+			{
+				"label":"鸡西市",
+				"value":"鸡西市"
+			},
+			{
+				"label":"鹤岗市",
+				"value":"鹤岗市"
+			},
+			{
+				"label":"双鸭山市",
+				"value":"双鸭山市"
+			},
+			{
+				"label":"大庆市",
+				"value":"大庆市"
+			},
+			{
+				"label":"伊春市",
+				"value":"伊春市"
+			},
+			{
+				"label":"佳木斯市",
+				"value":"佳木斯市"
+			},
+			{
+				"label":"七台河市",
+				"value":"七台河市"
+			},
+			{
+				"label":"牡丹江市",
+				"value":"牡丹江市"
+			},
+			{
+				"label":"黑河市",
+				"value":"黑河市"
+			},
+			{
+				"label":"绥化市",
+				"value":"绥化市"
+			},
+			{
+				"label":"大兴安岭地区",
+				"value":"大兴安岭地区"
+			}
+		],
+		"label":"黑龙江省",
+		"value":"黑龙江省"
+	},
+	{
+		"children":[
+			{
+				"label":"黄浦区",
+				"value":"黄浦区"
+			},
+			{
+				"label":"徐汇区",
+				"value":"徐汇区"
+			},
+			{
+				"label":"长宁区",
+				"value":"长宁区"
+			},
+			{
+				"label":"静安区",
+				"value":"静安区"
+			},
+			{
+				"label":"普陀区",
+				"value":"普陀区"
+			},
+			{
+				"label":"虹口区",
+				"value":"虹口区"
+			},
+			{
+				"label":"杨浦区",
+				"value":"杨浦区"
+			},
+			{
+				"label":"闵行区",
+				"value":"闵行区"
+			},
+			{
+				"label":"宝山区",
+				"value":"宝山区"
+			},
+			{
+				"label":"嘉定区",
+				"value":"嘉定区"
+			},
+			{
+				"label":"浦东新区",
+				"value":"浦东新区"
+			},
+			{
+				"label":"金山区",
+				"value":"金山区"
+			},
+			{
+				"label":"松江区",
+				"value":"松江区"
+			},
+			{
+				"label":"青浦区",
+				"value":"青浦区"
+			},
+			{
+				"label":"奉贤区",
+				"value":"奉贤区"
+			},
+			{
+				"label":"崇明区",
+				"value":"崇明区"
+			}
+		],
+		"label":"上海市",
+		"value":"上海市"
+	},
+	{
+		"children":[
+			{
+				"label":"南京市",
+				"value":"南京市"
+			},
+			{
+				"label":"无锡市",
+				"value":"无锡市"
+			},
+			{
+				"label":"徐州市",
+				"value":"徐州市"
+			},
+			{
+				"label":"常州市",
+				"value":"常州市"
+			},
+			{
+				"label":"苏州市",
+				"value":"苏州市"
+			},
+			{
+				"label":"南通市",
+				"value":"南通市"
+			},
+			{
+				"label":"连云港市",
+				"value":"连云港市"
+			},
+			{
+				"label":"淮安市",
+				"value":"淮安市"
+			},
+			{
+				"label":"盐城市",
+				"value":"盐城市"
+			},
+			{
+				"label":"扬州市",
+				"value":"扬州市"
+			},
+			{
+				"label":"镇江市",
+				"value":"镇江市"
+			},
+			{
+				"label":"泰州市",
+				"value":"泰州市"
+			},
+			{
+				"label":"宿迁市",
+				"value":"宿迁市"
+			}
+		],
+		"label":"江苏省",
+		"value":"江苏省"
+	},
+	{
+		"children":[
+			{
+				"label":"杭州市",
+				"value":"杭州市"
+			},
+			{
+				"label":"宁波市",
+				"value":"宁波市"
+			},
+			{
+				"label":"温州市",
+				"value":"温州市"
+			},
+			{
+				"label":"嘉兴市",
+				"value":"嘉兴市"
+			},
+			{
+				"label":"湖州市",
+				"value":"湖州市"
+			},
+			{
+				"label":"绍兴市",
+				"value":"绍兴市"
+			},
+			{
+				"label":"金华市",
+				"value":"金华市"
+			},
+			{
+				"label":"衢州市",
+				"value":"衢州市"
+			},
+			{
+				"label":"舟山市",
+				"value":"舟山市"
+			},
+			{
+				"label":"台州市",
+				"value":"台州市"
+			},
+			{
+				"label":"丽水市",
+				"value":"丽水市"
+			}
+		],
+		"label":"浙江省",
+		"value":"浙江省"
+	},
+	{
+		"children":[
+			{
+				"label":"合肥市",
+				"value":"合肥市"
+			},
+			{
+				"label":"芜湖市",
+				"value":"芜湖市"
+			},
+			{
+				"label":"蚌埠市",
+				"value":"蚌埠市"
+			},
+			{
+				"label":"淮南市",
+				"value":"淮南市"
+			},
+			{
+				"label":"马鞍山市",
+				"value":"马鞍山市"
+			},
+			{
+				"label":"淮北市",
+				"value":"淮北市"
+			},
+			{
+				"label":"铜陵市",
+				"value":"铜陵市"
+			},
+			{
+				"label":"安庆市",
+				"value":"安庆市"
+			},
+			{
+				"label":"黄山市",
+				"value":"黄山市"
+			},
+			{
+				"label":"滁州市",
+				"value":"滁州市"
+			},
+			{
+				"label":"阜阳市",
+				"value":"阜阳市"
+			},
+			{
+				"label":"宿州市",
+				"value":"宿州市"
+			},
+			{
+				"label":"六安市",
+				"value":"六安市"
+			},
+			{
+				"label":"亳州市",
+				"value":"亳州市"
+			},
+			{
+				"label":"池州市",
+				"value":"池州市"
+			},
+			{
+				"label":"宣城市",
+				"value":"宣城市"
+			}
+		],
+		"label":"安徽省",
+		"value":"安徽省"
+	},
+	{
+		"children":[
+			{
+				"label":"福州市",
+				"value":"福州市"
+			},
+			{
+				"label":"厦门市",
+				"value":"厦门市"
+			},
+			{
+				"label":"莆田市",
+				"value":"莆田市"
+			},
+			{
+				"label":"三明市",
+				"value":"三明市"
+			},
+			{
+				"label":"泉州市",
+				"value":"泉州市"
+			},
+			{
+				"label":"漳州市",
+				"value":"漳州市"
+			},
+			{
+				"label":"南平市",
+				"value":"南平市"
+			},
+			{
+				"label":"龙岩市",
+				"value":"龙岩市"
+			},
+			{
+				"label":"宁德市",
+				"value":"宁德市"
+			}
+		],
+		"label":"福建省",
+		"value":"福建省"
+	},
+	{
+		"children":[
+			{
+				"label":"南昌市",
+				"value":"南昌市"
+			},
+			{
+				"label":"景德镇市",
+				"value":"景德镇市"
+			},
+			{
+				"label":"萍乡市",
+				"value":"萍乡市"
+			},
+			{
+				"label":"九江市",
+				"value":"九江市"
+			},
+			{
+				"label":"新余市",
+				"value":"新余市"
+			},
+			{
+				"label":"鹰潭市",
+				"value":"鹰潭市"
+			},
+			{
+				"label":"赣州市",
+				"value":"赣州市"
+			},
+			{
+				"label":"吉安市",
+				"value":"吉安市"
+			},
+			{
+				"label":"宜春市",
+				"value":"宜春市"
+			},
+			{
+				"label":"抚州市",
+				"value":"抚州市"
+			},
+			{
+				"label":"上饶市",
+				"value":"上饶市"
+			}
+		],
+		"label":"江西省",
+		"value":"江西省"
+	},
+	{
+		"children":[
+			{
+				"label":"济南市",
+				"value":"济南市"
+			},
+			{
+				"label":"青岛市",
+				"value":"青岛市"
+			},
+			{
+				"label":"淄博市",
+				"value":"淄博市"
+			},
+			{
+				"label":"枣庄市",
+				"value":"枣庄市"
+			},
+			{
+				"label":"东营市",
+				"value":"东营市"
+			},
+			{
+				"label":"烟台市",
+				"value":"烟台市"
+			},
+			{
+				"label":"潍坊市",
+				"value":"潍坊市"
+			},
+			{
+				"label":"济宁市",
+				"value":"济宁市"
+			},
+			{
+				"label":"泰安市",
+				"value":"泰安市"
+			},
+			{
+				"label":"威海市",
+				"value":"威海市"
+			},
+			{
+				"label":"日照市",
+				"value":"日照市"
+			},
+			{
+				"label":"临沂市",
+				"value":"临沂市"
+			},
+			{
+				"label":"德州市",
+				"value":"德州市"
+			},
+			{
+				"label":"聊城市",
+				"value":"聊城市"
+			},
+			{
+				"label":"滨州市",
+				"value":"滨州市"
+			},
+			{
+				"label":"菏泽市",
+				"value":"菏泽市"
+			}
+		],
+		"label":"山东省",
+		"value":"山东省"
+	},
+	{
+		"children":[
+			{
+				"label":"郑州市",
+				"value":"郑州市"
+			},
+			{
+				"label":"开封市",
+				"value":"开封市"
+			},
+			{
+				"label":"洛阳市",
+				"value":"洛阳市"
+			},
+			{
+				"label":"平顶山市",
+				"value":"平顶山市"
+			},
+			{
+				"label":"安阳市",
+				"value":"安阳市"
+			},
+			{
+				"label":"鹤壁市",
+				"value":"鹤壁市"
+			},
+			{
+				"label":"新乡市",
+				"value":"新乡市"
+			},
+			{
+				"label":"焦作市",
+				"value":"焦作市"
+			},
+			{
+				"label":"濮阳市",
+				"value":"濮阳市"
+			},
+			{
+				"label":"许昌市",
+				"value":"许昌市"
+			},
+			{
+				"label":"漯河市",
+				"value":"漯河市"
+			},
+			{
+				"label":"三门峡市",
+				"value":"三门峡市"
+			},
+			{
+				"label":"南阳市",
+				"value":"南阳市"
+			},
+			{
+				"label":"商丘市",
+				"value":"商丘市"
+			},
+			{
+				"label":"信阳市",
+				"value":"信阳市"
+			},
+			{
+				"label":"周口市",
+				"value":"周口市"
+			},
+			{
+				"label":"驻马店市",
+				"value":"驻马店市"
+			},
+			{
+				"label":"省直辖县级行政区划",
+				"value":"省直辖县级行政区划"
+			}
+		],
+		"label":"河南省",
+		"value":"河南省"
+	},
+	{
+		"children":[
+			{
+				"label":"武汉市",
+				"value":"武汉市"
+			},
+			{
+				"label":"黄石市",
+				"value":"黄石市"
+			},
+			{
+				"label":"十堰市",
+				"value":"十堰市"
+			},
+			{
+				"label":"宜昌市",
+				"value":"宜昌市"
+			},
+			{
+				"label":"襄阳市",
+				"value":"襄阳市"
+			},
+			{
+				"label":"鄂州市",
+				"value":"鄂州市"
+			},
+			{
+				"label":"荆门市",
+				"value":"荆门市"
+			},
+			{
+				"label":"孝感市",
+				"value":"孝感市"
+			},
+			{
+				"label":"荆州市",
+				"value":"荆州市"
+			},
+			{
+				"label":"黄冈市",
+				"value":"黄冈市"
+			},
+			{
+				"label":"咸宁市",
+				"value":"咸宁市"
+			},
+			{
+				"label":"随州市",
+				"value":"随州市"
+			},
+			{
+				"label":"恩施土家族苗族自治州",
+				"value":"恩施土家族苗族自治州"
+			},
+			{
+				"label":"省直辖县级行政区划",
+				"value":"省直辖县级行政区划"
+			}
+		],
+		"label":"湖北省",
+		"value":"湖北省"
+	},
+	{
+		"children":[
+			{
+				"label":"长沙市",
+				"value":"长沙市"
+			},
+			{
+				"label":"株洲市",
+				"value":"株洲市"
+			},
+			{
+				"label":"湘潭市",
+				"value":"湘潭市"
+			},
+			{
+				"label":"衡阳市",
+				"value":"衡阳市"
+			},
+			{
+				"label":"邵阳市",
+				"value":"邵阳市"
+			},
+			{
+				"label":"岳阳市",
+				"value":"岳阳市"
+			},
+			{
+				"label":"常德市",
+				"value":"常德市"
+			},
+			{
+				"label":"张家界市",
+				"value":"张家界市"
+			},
+			{
+				"label":"益阳市",
+				"value":"益阳市"
+			},
+			{
+				"label":"郴州市",
+				"value":"郴州市"
+			},
+			{
+				"label":"永州市",
+				"value":"永州市"
+			},
+			{
+				"label":"怀化市",
+				"value":"怀化市"
+			},
+			{
+				"label":"娄底市",
+				"value":"娄底市"
+			},
+			{
+				"label":"湘西土家族苗族自治州",
+				"value":"湘西土家族苗族自治州"
+			}
+		],
+		"label":"湖南省",
+		"value":"湖南省"
+	},
+	{
+		"children":[
+			{
+				"label":"广州市",
+				"value":"广州市"
+			},
+			{
+				"label":"韶关市",
+				"value":"韶关市"
+			},
+			{
+				"label":"深圳市",
+				"value":"深圳市"
+			},
+			{
+				"label":"珠海市",
+				"value":"珠海市"
+			},
+			{
+				"label":"汕头市",
+				"value":"汕头市"
+			},
+			{
+				"label":"佛山市",
+				"value":"佛山市"
+			},
+			{
+				"label":"江门市",
+				"value":"江门市"
+			},
+			{
+				"label":"湛江市",
+				"value":"湛江市"
+			},
+			{
+				"label":"茂名市",
+				"value":"茂名市"
+			},
+			{
+				"label":"肇庆市",
+				"value":"肇庆市"
+			},
+			{
+				"label":"惠州市",
+				"value":"惠州市"
+			},
+			{
+				"label":"梅州市",
+				"value":"梅州市"
+			},
+			{
+				"label":"汕尾市",
+				"value":"汕尾市"
+			},
+			{
+				"label":"河源市",
+				"value":"河源市"
+			},
+			{
+				"label":"阳江市",
+				"value":"阳江市"
+			},
+			{
+				"label":"清远市",
+				"value":"清远市"
+			},
+			{
+				"label":"东莞市",
+				"value":"东莞市"
+			},
+			{
+				"label":"中山市",
+				"value":"中山市"
+			},
+			{
+				"label":"潮州市",
+				"value":"潮州市"
+			},
+			{
+				"label":"揭阳市",
+				"value":"揭阳市"
+			},
+			{
+				"label":"云浮市",
+				"value":"云浮市"
+			}
+		],
+		"label":"广东省",
+		"value":"广东省"
+	},
+	{
+		"children":[
+			{
+				"label":"南宁市",
+				"value":"南宁市"
+			},
+			{
+				"label":"柳州市",
+				"value":"柳州市"
+			},
+			{
+				"label":"桂林市",
+				"value":"桂林市"
+			},
+			{
+				"label":"梧州市",
+				"value":"梧州市"
+			},
+			{
+				"label":"北海市",
+				"value":"北海市"
+			},
+			{
+				"label":"防城港市",
+				"value":"防城港市"
+			},
+			{
+				"label":"钦州市",
+				"value":"钦州市"
+			},
+			{
+				"label":"贵港市",
+				"value":"贵港市"
+			},
+			{
+				"label":"玉林市",
+				"value":"玉林市"
+			},
+			{
+				"label":"百色市",
+				"value":"百色市"
+			},
+			{
+				"label":"贺州市",
+				"value":"贺州市"
+			},
+			{
+				"label":"河池市",
+				"value":"河池市"
+			},
+			{
+				"label":"来宾市",
+				"value":"来宾市"
+			},
+			{
+				"label":"崇左市",
+				"value":"崇左市"
+			}
+		],
+		"label":"广西壮族自治区",
+		"value":"广西壮族自治区"
+	},
+	{
+		"children":[
+			{
+				"label":"海口市",
+				"value":"海口市"
+			},
+			{
+				"label":"三亚市",
+				"value":"三亚市"
+			},
+			{
+				"label":"三沙市",
+				"value":"三沙市"
+			},
+			{
+				"label":"儋州市",
+				"value":"儋州市"
+			},
+			{
+				"label":"省直辖县级行政区划",
+				"value":"省直辖县级行政区划"
+			}
+		],
+		"label":"海南省",
+		"value":"海南省"
+	},
+	{
+		"children":[
+			{
+				"label":"万州区",
+				"value":"万州区"
+			},
+			{
+				"label":"涪陵区",
+				"value":"涪陵区"
+			},
+			{
+				"label":"渝中区",
+				"value":"渝中区"
+			},
+			{
+				"label":"大渡口区",
+				"value":"大渡口区"
+			},
+			{
+				"label":"江北区",
+				"value":"江北区"
+			},
+			{
+				"label":"沙坪坝区",
+				"value":"沙坪坝区"
+			},
+			{
+				"label":"九龙坡区",
+				"value":"九龙坡区"
+			},
+			{
+				"label":"南岸区",
+				"value":"南岸区"
+			},
+			{
+				"label":"北碚区",
+				"value":"北碚区"
+			},
+			{
+				"label":"綦江区",
+				"value":"綦江区"
+			},
+			{
+				"label":"大足区",
+				"value":"大足区"
+			},
+			{
+				"label":"渝北区",
+				"value":"渝北区"
+			},
+			{
+				"label":"巴南区",
+				"value":"巴南区"
+			},
+			{
+				"label":"黔江区",
+				"value":"黔江区"
+			},
+			{
+				"label":"长寿区",
+				"value":"长寿区"
+			},
+			{
+				"label":"江津区",
+				"value":"江津区"
+			},
+			{
+				"label":"合川区",
+				"value":"合川区"
+			},
+			{
+				"label":"永川区",
+				"value":"永川区"
+			},
+			{
+				"label":"南川区",
+				"value":"南川区"
+			},
+			{
+				"label":"璧山区",
+				"value":"璧山区"
+			},
+			{
+				"label":"铜梁区",
+				"value":"铜梁区"
+			},
+			{
+				"label":"潼南区",
+				"value":"潼南区"
+			},
+			{
+				"label":"荣昌区",
+				"value":"荣昌区"
+			},
+			{
+				"label":"开州区",
+				"value":"开州区"
+			},
+			{
+				"label":"梁平区",
+				"value":"梁平区"
+			},
+			{
+				"label":"武隆区",
+				"value":"武隆区"
+			},
+			{
+				"label":"城口县",
+				"value":"城口县"
+			},
+			{
+				"label":"丰都县",
+				"value":"丰都县"
+			},
+			{
+				"label":"垫江县",
+				"value":"垫江县"
+			},
+			{
+				"label":"忠县",
+				"value":"忠县"
+			},
+			{
+				"label":"云阳县",
+				"value":"云阳县"
+			},
+			{
+				"label":"奉节县",
+				"value":"奉节县"
+			},
+			{
+				"label":"巫山县",
+				"value":"巫山县"
+			},
+			{
+				"label":"巫溪县",
+				"value":"巫溪县"
+			},
+			{
+				"label":"石柱土家族自治县",
+				"value":"石柱土家族自治县"
+			},
+			{
+				"label":"秀山土家族苗族自治县",
+				"value":"秀山土家族苗族自治县"
+			},
+			{
+				"label":"酉阳土家族苗族自治县",
+				"value":"酉阳土家族苗族自治县"
+			},
+			{
+				"label":"彭水苗族土家族自治县",
+				"value":"彭水苗族土家族自治县"
+			}
+		],
+		"label":"重庆市",
+		"value":"重庆市"
+	},
+	{
+		"children":[
+			{
+				"label":"成都市",
+				"value":"成都市"
+			},
+			{
+				"label":"自贡市",
+				"value":"自贡市"
+			},
+			{
+				"label":"攀枝花市",
+				"value":"攀枝花市"
+			},
+			{
+				"label":"泸州市",
+				"value":"泸州市"
+			},
+			{
+				"label":"德阳市",
+				"value":"德阳市"
+			},
+			{
+				"label":"绵阳市",
+				"value":"绵阳市"
+			},
+			{
+				"label":"广元市",
+				"value":"广元市"
+			},
+			{
+				"label":"遂宁市",
+				"value":"遂宁市"
+			},
+			{
+				"label":"内江市",
+				"value":"内江市"
+			},
+			{
+				"label":"乐山市",
+				"value":"乐山市"
+			},
+			{
+				"label":"南充市",
+				"value":"南充市"
+			},
+			{
+				"label":"眉山市",
+				"value":"眉山市"
+			},
+			{
+				"label":"宜宾市",
+				"value":"宜宾市"
+			},
+			{
+				"label":"广安市",
+				"value":"广安市"
+			},
+			{
+				"label":"达州市",
+				"value":"达州市"
+			},
+			{
+				"label":"雅安市",
+				"value":"雅安市"
+			},
+			{
+				"label":"巴中市",
+				"value":"巴中市"
+			},
+			{
+				"label":"资阳市",
+				"value":"资阳市"
+			},
+			{
+				"label":"阿坝藏族羌族自治州",
+				"value":"阿坝藏族羌族自治州"
+			},
+			{
+				"label":"甘孜藏族自治州",
+				"value":"甘孜藏族自治州"
+			},
+			{
+				"label":"凉山彝族自治州",
+				"value":"凉山彝族自治州"
+			}
+		],
+		"label":"四川省",
+		"value":"四川省"
+	},
+	{
+		"children":[
+			{
+				"label":"贵阳市",
+				"value":"贵阳市"
+			},
+			{
+				"label":"六盘水市",
+				"value":"六盘水市"
+			},
+			{
+				"label":"遵义市",
+				"value":"遵义市"
+			},
+			{
+				"label":"安顺市",
+				"value":"安顺市"
+			},
+			{
+				"label":"毕节市",
+				"value":"毕节市"
+			},
+			{
+				"label":"铜仁市",
+				"value":"铜仁市"
+			},
+			{
+				"label":"黔西南布依族苗族自治州",
+				"value":"黔西南布依族苗族自治州"
+			},
+			{
+				"label":"黔东南苗族侗族自治州",
+				"value":"黔东南苗族侗族自治州"
+			},
+			{
+				"label":"黔南布依族苗族自治州",
+				"value":"黔南布依族苗族自治州"
+			}
+		],
+		"label":"贵州省",
+		"value":"贵州省"
+	},
+	{
+		"children":[
+			{
+				"label":"昆明市",
+				"value":"昆明市"
+			},
+			{
+				"label":"曲靖市",
+				"value":"曲靖市"
+			},
+			{
+				"label":"玉溪市",
+				"value":"玉溪市"
+			},
+			{
+				"label":"保山市",
+				"value":"保山市"
+			},
+			{
+				"label":"昭通市",
+				"value":"昭通市"
+			},
+			{
+				"label":"丽江市",
+				"value":"丽江市"
+			},
+			{
+				"label":"普洱市",
+				"value":"普洱市"
+			},
+			{
+				"label":"临沧市",
+				"value":"临沧市"
+			},
+			{
+				"label":"楚雄彝族自治州",
+				"value":"楚雄彝族自治州"
+			},
+			{
+				"label":"红河哈尼族彝族自治州",
+				"value":"红河哈尼族彝族自治州"
+			},
+			{
+				"label":"文山壮族苗族自治州",
+				"value":"文山壮族苗族自治州"
+			},
+			{
+				"label":"西双版纳傣族自治州",
+				"value":"西双版纳傣族自治州"
+			},
+			{
+				"label":"大理白族自治州",
+				"value":"大理白族自治州"
+			},
+			{
+				"label":"德宏傣族景颇族自治州",
+				"value":"德宏傣族景颇族自治州"
+			},
+			{
+				"label":"怒江傈僳族自治州",
+				"value":"怒江傈僳族自治州"
+			},
+			{
+				"label":"迪庆藏族自治州",
+				"value":"迪庆藏族自治州"
+			}
+		],
+		"label":"云南省",
+		"value":"云南省"
+	},
+	{
+		"children":[
+			{
+				"label":"拉萨市",
+				"value":"拉萨市"
+			},
+			{
+				"label":"日喀则市",
+				"value":"日喀则市"
+			},
+			{
+				"label":"昌都市",
+				"value":"昌都市"
+			},
+			{
+				"label":"林芝市",
+				"value":"林芝市"
+			},
+			{
+				"label":"山南市",
+				"value":"山南市"
+			},
+			{
+				"label":"那曲市",
+				"value":"那曲市"
+			},
+			{
+				"label":"阿里地区",
+				"value":"阿里地区"
+			}
+		],
+		"label":"西藏自治区",
+		"value":"西藏自治区"
+	},
+	{
+		"children":[
+			{
+				"label":"西安市",
+				"value":"西安市"
+			},
+			{
+				"label":"铜川市",
+				"value":"铜川市"
+			},
+			{
+				"label":"宝鸡市",
+				"value":"宝鸡市"
+			},
+			{
+				"label":"咸阳市",
+				"value":"咸阳市"
+			},
+			{
+				"label":"渭南市",
+				"value":"渭南市"
+			},
+			{
+				"label":"延安市",
+				"value":"延安市"
+			},
+			{
+				"label":"汉中市",
+				"value":"汉中市"
+			},
+			{
+				"label":"榆林市",
+				"value":"榆林市"
+			},
+			{
+				"label":"安康市",
+				"value":"安康市"
+			},
+			{
+				"label":"商洛市",
+				"value":"商洛市"
+			}
+		],
+		"label":"陕西省",
+		"value":"陕西省"
+	},
+	{
+		"children":[
+			{
+				"label":"兰州市",
+				"value":"兰州市"
+			},
+			{
+				"label":"嘉峪关市",
+				"value":"嘉峪关市"
+			},
+			{
+				"label":"金昌市",
+				"value":"金昌市"
+			},
+			{
+				"label":"白银市",
+				"value":"白银市"
+			},
+			{
+				"label":"天水市",
+				"value":"天水市"
+			},
+			{
+				"label":"武威市",
+				"value":"武威市"
+			},
+			{
+				"label":"张掖市",
+				"value":"张掖市"
+			},
+			{
+				"label":"平凉市",
+				"value":"平凉市"
+			},
+			{
+				"label":"酒泉市",
+				"value":"酒泉市"
+			},
+			{
+				"label":"庆阳市",
+				"value":"庆阳市"
+			},
+			{
+				"label":"定西市",
+				"value":"定西市"
+			},
+			{
+				"label":"陇南市",
+				"value":"陇南市"
+			},
+			{
+				"label":"临夏回族自治州",
+				"value":"临夏回族自治州"
+			},
+			{
+				"label":"甘南藏族自治州",
+				"value":"甘南藏族自治州"
+			}
+		],
+		"label":"甘肃省",
+		"value":"甘肃省"
+	},
+	{
+		"children":[
+			{
+				"label":"西宁市",
+				"value":"西宁市"
+			},
+			{
+				"label":"海东市",
+				"value":"海东市"
+			},
+			{
+				"label":"海北藏族自治州",
+				"value":"海北藏族自治州"
+			},
+			{
+				"label":"黄南藏族自治州",
+				"value":"黄南藏族自治州"
+			},
+			{
+				"label":"海南藏族自治州",
+				"value":"海南藏族自治州"
+			},
+			{
+				"label":"果洛藏族自治州",
+				"value":"果洛藏族自治州"
+			},
+			{
+				"label":"玉树藏族自治州",
+				"value":"玉树藏族自治州"
+			},
+			{
+				"label":"海西蒙古族藏族自治州",
+				"value":"海西蒙古族藏族自治州"
+			}
+		],
+		"label":"青海省",
+		"value":"青海省"
+	},
+	{
+		"children":[
+			{
+				"label":"银川市",
+				"value":"银川市"
+			},
+			{
+				"label":"石嘴山市",
+				"value":"石嘴山市"
+			},
+			{
+				"label":"吴忠市",
+				"value":"吴忠市"
+			},
+			{
+				"label":"固原市",
+				"value":"固原市"
+			},
+			{
+				"label":"中卫市",
+				"value":"中卫市"
+			}
+		],
+		"label":"宁夏回族自治区",
+		"value":"宁夏回族自治区"
+	},
+	{
+		"children":[
+			{
+				"label":"乌鲁木齐市",
+				"value":"乌鲁木齐市"
+			},
+			{
+				"label":"克拉玛依市",
+				"value":"克拉玛依市"
+			},
+			{
+				"label":"吐鲁番市",
+				"value":"吐鲁番市"
+			},
+			{
+				"label":"哈密市",
+				"value":"哈密市"
+			},
+			{
+				"label":"昌吉回族自治州",
+				"value":"昌吉回族自治州"
+			},
+			{
+				"label":"博尔塔拉蒙古自治州",
+				"value":"博尔塔拉蒙古自治州"
+			},
+			{
+				"label":"巴音郭楞蒙古自治州",
+				"value":"巴音郭楞蒙古自治州"
+			},
+			{
+				"label":"阿克苏地区",
+				"value":"阿克苏地区"
+			},
+			{
+				"label":"克孜勒苏柯尔克孜自治州",
+				"value":"克孜勒苏柯尔克孜自治州"
+			},
+			{
+				"label":"喀什地区",
+				"value":"喀什地区"
+			},
+			{
+				"label":"和田地区",
+				"value":"和田地区"
+			},
+			{
+				"label":"伊犁哈萨克自治州",
+				"value":"伊犁哈萨克自治州"
+			},
+			{
+				"label":"塔城地区",
+				"value":"塔城地区"
+			},
+			{
+				"label":"阿勒泰地区",
+				"value":"阿勒泰地区"
+			},
+			{
+				"label":"自治区直辖县级行政区划",
+				"value":"自治区直辖县级行政区划"
+			}
+		],
+		"label":"新疆维吾尔自治区",
+		"value":"新疆维吾尔自治区"
+	},
+	{
+		"children":[
+			{
+				"label":"台北市",
+				"value":"台北市"
+			},
+			{
+				"label":"高雄市",
+				"value":"高雄市"
+			},
+			{
+				"label":"基隆市",
+				"value":"基隆市"
+			},
+			{
+				"label":"台中市",
+				"value":"台中市"
+			},
+			{
+				"label":"台南市",
+				"value":"台南市"
+			},
+			{
+				"label":"新竹市",
+				"value":"新竹市"
+			},
+			{
+				"label":"嘉义市",
+				"value":"嘉义市"
+			}
+		],
+		"label":"台湾省",
+		"value":"台湾省"
+	},
+	{
+		"children":[
+			{
+				"label":"中西區",
+				"value":"中西區"
+			},
+			{
+				"label":"灣仔區",
+				"value":"灣仔區"
+			},
+			{
+				"label":"東區",
+				"value":"東區"
+			},
+			{
+				"label":"南區",
+				"value":"南區"
+			},
+			{
+				"label":"油尖旺區",
+				"value":"油尖旺區"
+			},
+			{
+				"label":"深水埗區",
+				"value":"深水埗區"
+			},
+			{
+				"label":"九龍城區",
+				"value":"九龍城區"
+			},
+			{
+				"label":"黃大仙區",
+				"value":"黃大仙區"
+			},
+			{
+				"label":"觀塘區",
+				"value":"觀塘區"
+			},
+			{
+				"label":"荃灣區",
+				"value":"荃灣區"
+			},
+			{
+				"label":"屯門區",
+				"value":"屯門區"
+			},
+			{
+				"label":"元朗區",
+				"value":"元朗區"
+			},
+			{
+				"label":"北區",
+				"value":"北區"
+			},
+			{
+				"label":"大埔區",
+				"value":"大埔區"
+			},
+			{
+				"label":"西貢區",
+				"value":"西貢區"
+			},
+			{
+				"label":"沙田區",
+				"value":"沙田區"
+			},
+			{
+				"label":"葵青區",
+				"value":"葵青區"
+			},
+			{
+				"label":"離島區",
+				"value":"離島區"
+			}
+		],
+		"label":"香港特别行政区",
+		"value":"香港特别行政区"
+	},
+	{
+		"children":[
+			{
+				"label":"花地瑪堂區",
+				"value":"花地瑪堂區"
+			},
+			{
+				"label":"花王堂區",
+				"value":"花王堂區"
+			},
+			{
+				"label":"望德堂區",
+				"value":"望德堂區"
+			},
+			{
+				"label":"大堂區",
+				"value":"大堂區"
+			},
+			{
+				"label":"風順堂區",
+				"value":"風順堂區"
+			},
+			{
+				"label":"嘉模堂區",
+				"value":"嘉模堂區"
+			},
+			{
+				"label":"路氹填海區",
+				"value":"路氹填海區"
+			},
+			{
+				"label":"聖方濟各堂區",
+				"value":"聖方濟各堂區"
+			}
+		],
+		"label":"澳门特别行政区",
+		"value":"澳门特别行政区"
+	}
+]

+ 165 - 68
src/layout/Navbar.vue

@@ -1,104 +1,197 @@
 <template>
-  <div style="height: 100%">
-    <div v-show="isLogin" class="left-menu">
+    <div style="height: 100%">
+        <div v-show="isLogin" class="left-menu">
 
-      <div style="background-color: #0053cb;width: 60px;height: 60px;display: inline-block">
+            <div style="background-color: #0053cb;width: 60px;height: 60px;display: inline-block">
         <span class="c-icon collapse-btn" @click="toggleSideBar">
           <i-ant-design-unordered-list-outlined/>
         </span>
-      </div>
+            </div>
 
-      <div class="title">
-        <el-avatar class="title-logo" shape="square" :size="32" :src="logo"></el-avatar>
-        <span class="title-content">智慧运营管理中心</span>
-      </div>
+            <div class="title">
+                <el-avatar class="title-logo" shape="square" :size="32" :src="logo"></el-avatar>
+                <span class="title-content">智慧运营管理中心</span>
+            </div>
 
-      <el-select class="select-btn" v-model="value" >
-        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
-        </el-option>
-      </el-select>
+            <el-select class="select-btn" v-model="value">
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+            </el-select>
 
-    </div>
-    <div v-show="isLogin" class="right-menu">
-      <div class="header-btn">
+        </div>
+        <div v-show="isLogin" class="right-menu">
+            <div class="header-btn">
         <span class="c-icon" style="margin: 10px 4px;padding: 6px 10px 0">
-          <i-ant-design-desktop-outlined />
+          <i-ant-design-desktop-outlined/>
         </span>
-        <span class="c-icon" style="margin: 10px 4px;padding: 6px 10px 0">
-          <i-ant-design-mobile-outlined />
+                <span class="c-icon" style="margin: 10px 4px;padding: 6px 10px 0">
+          <i-ant-design-mobile-outlined/>
         </span>
-        <span class="c-icon" style="margin: 10px 4px;padding: 6px 10px 0">
-          <i-ant-design-question-circle-outlined />
+                <span class="c-icon" style="margin: 10px 4px;padding: 6px 10px 0">
+          <i-ant-design-question-circle-outlined/>
         </span>
 
 
-        <el-avatar :size="30" style="vertical-align: top;margin: 15px 0 0 15px;background-color: #fde3cf;color: #f56a00">
+                <el-avatar :size="30"
+                           style="vertical-align: top;margin: 15px 0 0 15px;background-color: #fde3cf;color: #f56a00">
           <span style="font-size: 20px;display: inline-block;margin-top: 3px">
-              <i-ant-design-user-outlined  />
+              <i-ant-design-user-outlined/>
             </span>
-        </el-avatar>
+                </el-avatar>
 
 
-        <el-dropdown class="userinfo" >
+                <el-dropdown class="userinfo" @command="handleCommand">
           <span class="el-dropdown-link">
             <span style="vertical-align: middle;font-size: 20px;margin-right: 4px">
-              <i-ant-design-user-outlined  />
+              <i-ant-design-user-outlined/>
             </span>
-            user001
+            {{ $store.state.user.userInfo.user_name }}
           </span>
-          <el-dropdown-menu slot="dropdown" >
-            <el-dropdown-item>修改密码</el-dropdown-item>
-            <el-dropdown-item>退出登录</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
+                    <el-dropdown-menu slot="dropdown">
+                        <el-dropdown-item command="updPwd">修改密码</el-dropdown-item>
+                        <el-dropdown-item command="logout">退出登录</el-dropdown-item>
+                    </el-dropdown-menu>
+                </el-dropdown>
 
-      </div>
+            </div>
+        </div>
+
+
+        <el-dialog v-if="showUpdPwd" width="500px" :visible="true" title="修改密码">
+            <el-form ref="updPwdForm" :model="updPwdForm" :rules="updPwdFormRules" label-position="right" label-width="90px">
+                <el-form-item  label="原密码:" prop="oldPwd">
+                    <el-input v-model="updPwdForm.oldPwd" type="password" show-password/>
+                </el-form-item>
+                <el-form-item label="新密码:" prop="password">
+                    <el-input v-model="updPwdForm.password" type="password" show-password/>
+                </el-form-item>
+                <el-form-item label="确认密码:" prop="confirmPwd">
+                    <el-input v-model="updPwdForm.confirmPwd" type="password" show-password/>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div style="width: 100%;text-align: center">
+                    <el-button style="width: 80px;height: 30px;padding: 0" @click="showUpdPwd=false">取消</el-button>
+                    <el-button type="primary" style="width: 80px;height: 30px;padding: 0" @click="updPwd">确定</el-button>
+                </div>
+            </template>
+        </el-dialog>
     </div>
-  </div>
 </template>
 
 <script>
 import hamburger from '@/components/Hamburger/index'
 import logo from '@/assets/background/logo.png'
+import {updPwd} from "@/api/user/user";
 
 export default {
-  components: {hamburger},
-  props: {
-    leftVisible: Boolean,
-    //isLogin: Boolean,
-  },
-  data() {
-    return {
-      logo,
-      value: '1',
-      options: [
-        {
-          label: '主语国际3号楼',
-          value: '1'
+    components: {hamburger},
+    props: {
+        leftVisible: Boolean,
+        //isLogin: Boolean,
+    },
+    data() {
+        let validatePass = (rule, value, callback) => {
+            if (value === '') {
+                callback(new Error('请输入密码'));
+            } else {
+                if (this.updPwdForm.confirmPwd !== '') {
+                    this.$refs.updPwdForm.validateField('confirmPwd');
+                }
+                callback();
+            }
+        };
+        let validatePass2 = (rule, value, callback) => {
+            if (value === '') {
+                callback(new Error('请再次输入密码'));
+            } else if (value !== this.updPwdForm.password) {
+                callback(new Error('两次输入密码不一致!'));
+            } else {
+                callback();
+            }
+        };
+        return {
+            logo,
+            showUpdPwd: false,
+            value: '1',
+            options: [
+                {
+                    label: '主语国际3号楼',
+                    value: '1'
+                }
+            ],
+            updPwdForm: {
+                oldPwd: '',
+                password: '',
+                confirmPwd: '',
+            },
+            updPwdFormRules: {
+                oldPwd: [
+                    { required: true, message: '请输入旧密码', trigger: 'change' }
+                ],
+                password: [
+                    { validator: validatePass, required: true, trigger: 'change' }
+                ],
+                confirmPwd: [
+                    { validator: validatePass2, required: true, trigger: 'change' }
+                ],
+            },
+            isLogin: true,
+            opened: false,
+            name: "test",
+            circleUrl: "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
+            isCollapse: false,
+            tips: {
+                labtap: require('@/assets/tips/diannao@3x.png'),
+                phone: require('@/assets/tips/shouji-4@3x.png'),
+                help: require('@/assets/tips/help@3x.png'),
+                notification: require('@/assets/tips/tongzhi@3x.png')
+            }
+        }
+    },
+    mounted() {
+        this.$emit('collapseControl', this.isCollapse);
+    },
+    methods: {
+        toggleSideBar() {
+            this.isCollapse = !this.isCollapse;
+            this.$emit('collapseControl', this.isCollapse);
+        },
+        handleCommand(command) {
+            if (command == 'logout') {
+                this.logout()
+            } else if (command == 'updPwd') {
+                this.showUpdPwd = true;
+                this.updPwdForm = {
+                    oldPwd: '',
+                    password: '',
+                    confirmPwd: '',
+                }
+            }
+        },
+        updPwd() {
+          this.$refs.updPwdForm.validate(valid=>{
+              if (valid) {
+                  let user = this.$store.state.user.userInfo
+                  updPwd(user.id, user.user_name, this.updPwdForm.password).then(res=>{
+                      let data = res.data;
+                      if (data.code==0) {
+                          this.$message.success('修改成功');
+                      } else {
+                          this.$message.error(data.message);
+                      }
+                  })
+              }
+          })
+        },
+        logout() {
+            this.$store.state.token = '';
+            localStorage.removeItem('Authorization');
+            localStorage.removeItem('UserInfo');
+            localStorage.clear();
+            this.$router.push('/login')
         }
-      ],
-      isLogin: true,
-      opened: false,
-      name: "test",
-      circleUrl: "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
-      isCollapse: false,
-      tips: {
-        labtap: require('@/assets/tips/diannao@3x.png'),
-        phone: require('@/assets/tips/shouji-4@3x.png'),
-        help: require('@/assets/tips/help@3x.png'),
-        notification: require('@/assets/tips/tongzhi@3x.png')
-      }
-    }
-  },
-  mounted() {
-    this.$emit('collapseControl', this.isCollapse);
-  },
-  methods: {
-    toggleSideBar() {
-      this.isCollapse = !this.isCollapse;
-      this.$emit('collapseControl', this.isCollapse);
     }
-  }
 }
 </script>
 
@@ -129,12 +222,14 @@ export default {
     line-height: 60px;
     color: white;
     margin-left: 15px;
+
     .title-logo {
       vertical-align: top;
       margin-top: 15px;
       margin-right: 18px;
       background-color: transparent;
     }
+
     .title-content {
       font-size: 22px;
       letter-spacing: 8px;
@@ -170,6 +265,7 @@ export default {
 
   .header-btn {
   }
+
   .userinfo {
     cursor: default;
     color: white;
@@ -181,6 +277,7 @@ export default {
     padding: 6px 15px;
     margin-left: 5px;
     border-radius: 20px;
+
     &:hover {
       background: #3c9cd3;
     }

+ 1 - 1
src/router/index.js

@@ -6,7 +6,7 @@ Vue.use(VueRouter);
 const routes = [
   {
     path: "/",
-    redirect: "/login",
+    redirect: "/home",
   },
   {
     path: '/login',

+ 9 - 7
src/store/modules/user.js

@@ -4,19 +4,18 @@ const user = {
     namespaced: true,
     state: {
         token: getToken(),
-        name: '',
-        avatar: '',
+        userInfo: {
+            id: '',
+            username : '',
+        },
         role: []
     },
     mutations: {
         SET_TOKEN: (state, token) => {
             state.token = token;
         },
-        SET_NAME: (state, name) => {
-            state.name = name;
-        },
-        SET_AVATAR: (state, avatar) => {
-            state.avatar = avatar;
+        SET_USER_INFO: (state, info) => {
+            state.userInfo = info;
         },
         SET_ROLES: (state, roles) => {
             state.roles = roles;
@@ -30,7 +29,10 @@ const user = {
                 login({ username: username.trim(), password: password }).then(res => {
                     const { data } = res;
                     commit('SET_TOKEN', data.data);
+                    commit('SET_USER_INFO', data.message);
                     localStorage.setItem('Authorization',data.data);
+                    console.log(data.message)
+                    localStorage.setItem('UserInfo',data.message);
                     resolve(data);
                 }).catch(error => {
                     console.log('登陆失败');

+ 1 - 1
src/views/permissionManagement/decisiongroup/index.vue

@@ -34,7 +34,7 @@ export default {
         }
     },
     mounted(){
-        this.$refs.buttonFocus.$el.focus();
+
     },
     methods:{
         Show1(){

+ 88 - 148
src/views/permissionManagement/decisiongroup/permissionDetail.vue

@@ -2,10 +2,10 @@
     <div>
         <el-form :model="form" label-position="left" label-width="80px" >
             <el-form-item :model="form.roleName" label="角色名称:">
-                <el-input :value="item.role_name" style="width: 50%;" type="text"></el-input>
+                <el-input :value="form.role_name" style="width: 50%;" type="text"></el-input>
             </el-form-item>
             <el-form-item :model="form.roleDesc" label="角色描述:">
-                <el-input type="textarea"  :value="item.role_describe" maxlength="200" show-word-limit></el-input>
+                <el-input type="textarea"  :value="form.role_describe" maxlength="200" show-word-limit></el-input>
             </el-form-item>
             <div class="permissionType">
                 <el-tabs v-model="activeName" @tab-click="handleClick">
@@ -17,31 +17,13 @@
                         <template slot="title">
                             <i :class="isActive('1') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>前端
                         </template>
-                        <div style="display: flex; margin-left: 20px;">
-                            <div>
-                                <el-tree :data="data1" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                                <el-tree :data="data2" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-
-                                <el-tree :data="data3" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                            </div>
-                            <div style="margin-left: 200px">
-                                <el-tree :data="data4" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                                <el-tree :data="data5" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                                <el-tree :data="data6" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
+                        <el-row align="left" :gutter="8" style="text-align: left;box-sizing: border-box;padding: 0 30px;height: 200px;overflow-y: auto">
+                            <el-col :span="8" v-for="(item,index) in frontPermissions" :key="item.id">
+                                <el-tree :ref="'tree'" :default-checked-keys="checkedKeys" :data="[item]" :props="defaultProps" show-checkbox node-key="id"
+                                         @node-click="handleNodeClick">
                                 </el-tree>
-                            </div>
-                        </div>
+                            </el-col>
+                        </el-row>
                     </el-collapse-item>
                     <el-collapse-item name="2">
                         <template slot="title">
@@ -49,20 +31,20 @@
                         </template>
                         <div style="display: flex; margin-left: 20px;">
                             <div>
-                                <el-tree :data="data7" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                                <el-tree :data="data8" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
+                                <!--<el-tree :data="data7" :props="defaultProps" show-checkbox node-key="id"-->
+                                <!--    @node-click="handleNodeClick">-->
+                                <!--</el-tree>-->
+                                <!--<el-tree :data="data8" :props="defaultProps" show-checkbox node-key="id"-->
+                                <!--    @node-click="handleNodeClick">-->
+                                <!--</el-tree>-->
                             </div>
                             <div style="margin-left: 137px;">
-                                <el-tree :data="data9" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
-                                <el-tree :data="data10" :props="defaultProps" show-checkbox node-key="id"
-                                    @node-click="handleNodeClick">
-                                </el-tree>
+                                <!--<el-tree :data="data9" :props="defaultProps" show-checkbox node-key="id"-->
+                                <!--    @node-click="handleNodeClick">-->
+                                <!--</el-tree>-->
+                                <!--<el-tree :data="data10" :props="defaultProps" show-checkbox node-key="id"-->
+                                <!--    @node-click="handleNodeClick">-->
+                                <!--</el-tree>-->
                             </div>
                         </div>
                     </el-collapse-item>
@@ -76,6 +58,8 @@
     </div>
 </template>
 <script>
+import {getPermissionList, getRoleApi, updateRoleInfo} from "@/api/role/role";
+
 export default {
     props: {
       item: Object,
@@ -86,125 +70,35 @@ export default {
             form: {
 
             },
+            checkedKeys: [],
             textarea: '',
             activeName: 'pc',
             activeNames: ['1', '2'],
-            data1: [{
-                label: '智能看板-[数据查看][数据导出]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                }],
-            }],
-            data2: [{
-                label: '智慧办公-[数据查看][数据导出]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                }],
-            }],
-            data3: [{
-                label: '智慧安防-[数据查看][数据导出][设备交互]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                },
-                {
-                    label: '设备交互',
-                }],
-            }],
-            data4: [{
-                label: '智享生活-[数据查看][数据导出]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                }],
-            }],
-            data5: [{
-                label: '数智双碳-[数据查看][数据导出]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                }],
-            }],
-            data6: [{
-                label: '智慧场景-[数据查看][数据导出][策略配置][设备交互]',
-                children: [{
-                    label: '数据查看',
-                }, {
-                    label: '数据导出',
-                },
-                {
-                    label: '策略配置',
-                }, {
-                    label: '设备交互',
-                }],
-            }],
-            data7: [{
-                label: '人员管理-[信息查看][人员添加][人员更新][人员删除]',
-                children: [{
-                    label: '信息查看',
-                }, {
-                    label: '人员添加',
-                },
-                {
-                    label: '人员更新',
-                }, {
-                    label: '人员删除',
-                }],
-            }],
-            data8: [{
-                label: '角色管理-[信息查看][角色添加][角色更新][角色删除]',
-                children: [{
-                    label: '信息查看',
-                }, {
-                    label: '角色添加',
-                },
-                {
-                    label: '角色更新',
-                }, {
-                    label: '角色删除',
-                }],
-            }],
-            data9: [{
-                label: '组织管理-[信息查看][人员添加][人员更新][人员删除]',
-                children: [{
-                    label: '信息查看',
-                }, {
-                    label: '人员添加',
-                },
-                {
-                    label: '人员更新',
-                }, {
-                    label: '人员删除',
-                }],
-            }],
-            data10: [{
-                label: '权限管理-[信息查看][权限添加][权限更新][权限删除]',
-                children: [{
-                    label: '信息查看',
-                }, {
-                    label: '权限添加',
-                },
-                {
-                    label: '权限更新',
-                }, {
-                    label: '权限删除',
-                }],
-            }],
+            frontPermissions: [],
 
 
             defaultProps: {
                 children: 'children',
-                label: 'label'
+                label: 'name'
+            }
+        }
+    },
+    watch: {
+        item: {
+            deep: true,
+            handler: function (val) {
+                this.form = JSON.parse(JSON.stringify(val))
+                this.getRoleInfo();
             }
         }
     },
+    mounted() {
+        this.form = JSON.parse(JSON.stringify(this.item))
+        this.$nextTick(()=>{
+            this.getPermissions();
+            this.getRoleInfo();
+        })
+    },
     methods: {
         handleClick() {
             //
@@ -219,7 +113,52 @@ export default {
             //
         },
         edit() {
-            this.disabled = false;
+            this.$confirm('确定要更新角色信息吗?', '提示', {
+                type: 'warning'
+            }).then(()=>{
+                this.updateRoleInfo()
+            })
+        },
+        getPermissions() {
+            getPermissionList().then(res=>{
+                let data = res.data;
+                this.frontPermissions = data.data
+            })
+        },
+        getRoleInfo() {
+            getRoleApi(this.item.id).then(res=>{
+                let data = res.data.data;
+                if (data && data.length>0) {
+                    this.checkedKeys = data[0].role_permission;
+                }
+                if (this.checkedKeys && this.checkedKeys.length>0) {
+                    let trees = this.$refs.tree;
+                    if (trees) {
+                        for (let i = 0; i < trees.length; i++) {
+                            trees[i].setCheckedKeys(this.checkedKeys)
+                        }
+                    }
+                }
+            })
+        },
+        updateRoleInfo() {
+            let num = this.frontPermissions.length
+            let trees = this.$refs.tree;
+            let ids = [];
+            for (let i = 0; i < trees.length; i++) {
+                ids = ids.concat(trees[i].getCheckedKeys())
+            }
+            this.form.role_permission = '['+ids.join(',')+']'
+            updateRoleInfo(this.item.id, this.form.role_name, this.form.role_describe, this.form.role_permission).then(res=>{
+                let data = res.data;
+                if (data.code==0) {
+                    this.$message.success('更新成功');
+                } else {
+                    this.$message.error(data.message);
+                }
+            }).catch(err=>{
+                this.$message.error(err.message);
+            })
         }
     }
 }
@@ -297,6 +236,7 @@ export default {
     }
 
     .el-tree {
+        display: inline-block;
         margin: 5px;
         background-color: #FAFAFA;
     }

+ 175 - 106
src/views/permissionManagement/decisiongroup/rolemembersList.vue

@@ -1,31 +1,37 @@
 <template>
     <div>
         <div class="opr-btn">
-            <el-button type="primary" @click="roleAddMemberVisible=true">添加人员</el-button>
+            <el-button type="info" @click="batchRemoveMember">批量移除</el-button>
+            <el-button style="float: right" type="primary" @click="roleAddMemberVisible=true">添加人员</el-button>
         </div>
-        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
-            :cell-style="{ textAlign: 'center' }" style="width: 98%" @selection-change="handleSelectionChange">
+        <el-table ref="multipleTable" height="600px" :data="tableData" tooltip-effect="dark"
+                  :header-cell-style="{ textAlign: 'center' }"
+                  :cell-style="{ textAlign: 'center' }" style="width: 98%;" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="50">
             </el-table-column>
-            <el-table-column prop="rolename" label="角色名">
+            <el-table-column prop="user_name" label="用户名">
             </el-table-column>
-            <el-table-column prop="phone_unm" label="手机号">
+            <el-table-column prop="phone" label="手机号">
             </el-table-column>
-            <el-table-column prop="e_mail" label="邮箱">
+            <el-table-column prop="email" label="邮箱">
             </el-table-column>
-            <el-table-column prop="working_address" label="单位">
+            <el-table-column prop="company" label="单位">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.company != 'undefined'">{{ scope.row.company }}</span>
+                </template>
             </el-table-column>
-            <el-table-column prop="registed_time" label="注册时间">
+            <el-table-column prop="register_time" label="注册时间" width="200">
             </el-table-column>
-            <el-table-column prop="status" label="状态">
+            <el-table-column prop="account_status" label="状态">
                 <template slot-scope="scope">
-                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                    <el-tag :color="scope.row.account_status == 0 ? '#06f77e' : '#757776'"></el-tag>
                 </template>
             </el-table-column>
             <el-table-column prop="operation" label="操作">
                 <template slot-scope="scope">
                     <el-button size="mini" type="text" style="color: #2ea8e6"
-                        v-show="scope.row.rolename == null ? false : true" @click="deleteUser(scope.row)">删除</el-button>
+                               @click="removeMember(scope.row)">移除
+                    </el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -34,14 +40,14 @@
         </div>
 
         <el-dialog
-            title="添加人员"
-            v-if="roleAddMemberVisible"
-            :visible.sync="roleAddMemberVisible"
-            width="1000px"
-            :before-close="handleClose"
-            center
+                title="添加人员"
+                v-if="roleAddMemberVisible"
+                :visible.sync="roleAddMemberVisible"
+                width="1000px"
+                :before-close="handleClose"
+                center
         >
-            <RoleUserAdd />
+            <RoleUserAdd/>
         </el-dialog>
     </div>
 </template>
@@ -50,11 +56,21 @@
 import checkbox from '@/components/Checkbox/index'
 import page from '@/components/pagination/index'
 import RoleUserAdd from "@/views/permissionManagement/messageDialog/roleUserAdd.vue";
-import {getRoleMember} from "@/api/role/role";
+import {batchRemoveMember, getRoleMember, removeMember} from "@/api/role/role";
+
 export default {
-    components: { checkbox, page, RoleUserAdd, },
+    components: {checkbox, page, RoleUserAdd,},
     props: {
-      item: Object,
+        item: Object,
+    },
+    watch: {
+        item: {
+            handler: function (val) {
+                this.multipleSelection = [];
+                this.getTableData(1);
+            },
+            deep: true,
+        }
     },
     data() {
         return {
@@ -80,133 +96,186 @@ export default {
         }
     },
     mounted() {
-      this.getTableData(1)
+        this.getTableData(1)
     },
     methods: {
+        removeMember(row) {
+            let app = this;
+            let param = {
+                user_id: row.id,
+            }
+            this.$confirm('确定要移除吗?', '提示', {
+                type: "warning"
+            }).then(()=>{
+                removeMember(param).then(res=>{
+                    let data = res.data;
+                    if (data.code == 0) {
+                        app.getTableData(1)
+                        app.$message.success('操作成功')
+                    } else {
+                        app.$message.error(data.message)
+                    }
+                })
+            })
+        },
         cancleChecked() {
             //
         },
         handleClick() {
             //
         },
-        getTableData(page){
-            getRoleMember(this.item.id).then(res=>{
+        getTableData(page) {
+            getRoleMember(this.item.id).then(res => {
                 let data = res.data;
-                if (data.code==0) {
+                if (data.code == 0) {
+                    this.paginationData.currentPage = 1;
+                    this.paginationData.total = data.total
+                    data.data.forEach(i=>{
+                        let d = new Date(i.register_time);
+                        i.register_time = this.$dayjs(d).format("YYYY-MM-DD HH:mm:ss")
+                    })
                     this.tableData = data.data;
                 } else {
                     this.$message.error(data.message)
                 }
-            }).catch(err=>{
+            }).catch(err => {
                 this.$message.error(err.message)
             })
         },
-        handleSizeChange(){
+        batchRemoveMember() {
+            let ids = [];
+            this.multipleSelection.forEach(item => {
+                ids.push(item.id)
+            })
+            let params = {
+                users_id: '[' + ids.join(',') + ']'
+            }
+            let app = this;
+            this.$confirm('确定要批量移除吗?','提示', {type: "warning"}).then(()=>{
+                batchRemoveMember(params).then(res=>{
+                    let data = res.data;
+                    if (data.code==0) {
+                        app.getTableData(1);
+                        app.$message.success('操作成功')
+                    } else {
+                        app.$message.error(data.message)
+                    }
+                }).catch(err=>{
+                    app.$message.error(err.message)
+                })
+            })
+
+        },
+        handleSizeChange() {
             //
         },
-        handleSelectionChange(){
-            
+        handleSelectionChange(val) {
+            this.multipleSelection = val
         }
     }
 }
 </script>
 <style lang="less" scoped>
 .info {
-    text-align: left;
-    padding: 20px;
-    font-size: 25px;
+  text-align: left;
+  padding: 20px;
+  font-size: 25px;
 }
 
 .el-tag {
-    width: 12px;
-    height: 12px;
-    border-radius: 100px;
-    padding: 0;
+  width: 12px;
+  height: 12px;
+  border-radius: 100px;
+  padding: 0;
 }
 
 .opr-btn {
-    text-align: right;
-    .el-button {
-        height: 24px;
-        letter-spacing: 1px;
-        margin-right: 15px;
-    }
+  padding-left: 15px;
+  text-align: left;
+
+  .el-button {
+    height: 24px;
+    letter-spacing: 1px;
+    margin-right: 15px;
+  }
 }
 
 .el-table {
-    position: relative;
-    left: 0;
-    top:20px;
-    margin-left: 1%;
-    border: 1px solid #f0f2f2;
-    font-size: 0.95rem;
-    font-family: PingFang SC;
-    font-weight: 500;
-    color: #b2b2b2;
-    background: rgba(255, 255, 255, 0.8);
+  position: relative;
+  left: 0;
+  top: 20px;
+  margin-left: 1%;
+  border: 1px solid #f0f2f2;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #b2b2b2;
+  background: rgba(255, 255, 255, 0.8);
 
-    /deep/th {
-        background: #f7fbff;
-    }
+  /deep/ th {
+    background: #f7fbff;
+  }
 
-    /deep/.el-checkbox {
-        color: #b2b2b2;
+  /deep/ .el-checkbox {
+    color: #b2b2b2;
 
-        .el-checkbox__input.is-checked+.el-checkbox__label {
-            color: #2ea8e6;
-        }
+    .el-checkbox__input.is-checked + .el-checkbox__label {
+      color: #2ea8e6;
+    }
 
-        .el-checkbox__input.is-checked .el-checkbox__inner::after {
-            width: 70%;
-            height: 70%;
-            background: #2ea8e6;
-            border-radius: 0;
-            transform: rotate(0deg) scaleY(1);
-            position: static;
-            // border: 1px solid #8DD9FF;
-        }
+    .el-checkbox__input.is-checked .el-checkbox__inner::after {
+      width: 70%;
+      height: 70%;
+      background: #2ea8e6;
+      border-radius: 0;
+      transform: rotate(0deg) scaleY(1);
+      position: static;
+      // border: 1px solid #8DD9FF;
+    }
 
-        .el-checkbox__inner {
-            border: 1px solid #8dd9ff;
-            background: rgba(0, 170, 255, 0);
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            position: static;
+    .el-checkbox__inner {
+      border: 1px solid #8dd9ff;
+      background: rgba(0, 170, 255, 0);
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      position: static;
 
-            &::after {
-                transition: 0ms;
-            }
-        }
+      &::after {
+        transition: 0ms;
+      }
+    }
 
-        .el-checkbox__label {
-            padding-left: 0;
-            font-size: 15px;
-            position: absolute;
-            top: 1px;
-            left: 25px;
-        }
+    .el-checkbox__label {
+      padding-left: 0;
+      font-size: 15px;
+      position: absolute;
+      top: 1px;
+      left: 25px;
     }
+  }
 }
-.delete{
-    padding: 3px;
-    width: 80px;
-    height: 30px;
-    float: left;
-    left: 50px;
-    position: relative;
-    color: #fff;
-    border-radius: 4px;
-    right: 10px;
-    background-color: #b3b3b3;
+
+.delete {
+  padding: 3px;
+  width: 80px;
+  height: 30px;
+  float: left;
+  left: 50px;
+  position: relative;
+  color: #fff;
+  border-radius: 4px;
+  right: 10px;
+  background-color: #b3b3b3;
 }
+
 .bottom {
-    position: absolute;
-    left: 20px;
-    right: 16px;
-    bottom: 20px;
-    height: 50px;
-    line-height: 20px;
-    background-color: #ffffff;
-    text-align: center;
+  position: absolute;
+  left: 20px;
+  right: 16px;
+  bottom: 20px;
+  height: 50px;
+  line-height: 20px;
+  background-color: #ffffff;
+  text-align: center;
 }</style>

+ 55 - 5
src/views/permissionManagement/index.vue

@@ -20,7 +20,7 @@
             </el-button>
         </div>
         <div class="right-pane">
-            <overView ref="overview" v-if="viewShow"></overView>
+            <overView ref="overview" v-if="viewShow" @view="handleNodeClick"></overView>
             <roleDetail :item="currentRole" v-if="roleShow"></roleDetail>
         </div>
 
@@ -52,11 +52,11 @@ export default {
             addRoleVisible: false,
             data: [],
             subMenuEvents: [
-                {label: '新建', funcName: 'addNode'},
+                //{label: '新建', funcName: 'addNode'},
                 {label: '上移', funcName: 'moveUp'},
                 {label: '下移', funcName: 'moveDown'},
-                {label: '编辑', funcName: 'editNode'},
-                {label: '删除', funcName: 'removeNode'}
+                //{label: '编辑', funcName: 'editNode'},
+                //{label: '删除', funcName: 'removeNode'}
             ],
             defaultProps: {
                 children: 'children',
@@ -105,7 +105,57 @@ export default {
         },
         dropDownClick(funcName, data) {
             this.currentNode = data;
-        }
+            if (funcName=='moveUp') {
+                this.moveUp(data)
+            } else if (funcName=='moveDown') {
+                this.moveDown(data)
+            }
+        },
+        moveUp(data) {
+            if (this.data && this.data.length>1) {} else return;
+            let app = this;
+            let index = -1;
+            let id = data.data.id;
+            for (let i = 0; i < app.data.length; i++) {
+                let obj = app.data[i];
+                if (obj.id==id) {
+                    index = i;
+                    break;
+                }
+            }
+            if (index>0) {
+                let obj = app.data[index];
+                let obj2 = app.data[index-1];
+                app.$set(app.data, index, obj2)
+                app.$set(app.data, index-1, obj)
+                app.data = JSON.parse(JSON.stringify(app.data));
+                this.roleShow = false;
+                this.viewShow = true;
+            }
+
+        },
+        moveDown(data) {
+            if (this.data && this.data.length>1) {} else return;
+            let app = this;
+            let index = -1;
+            let id = data.data.id;
+            for (let i = 0; i < app.data.length; i++) {
+                let obj = app.data[i];
+                if (obj.id==id) {
+                    index = i;
+                    break;
+                }
+            }
+            if (index<app.data.length-1) {
+                let obj = app.data[index];
+                let obj2 = app.data[index+1];
+                app.$set(app.data, index, obj2)
+                app.$set(app.data, index+1, obj)
+                app.data = JSON.parse(JSON.stringify(app.data));
+                this.roleShow = false;
+                this.viewShow = true;
+            }
+        },
     }
 }
 </script>

+ 44 - 7
src/views/permissionManagement/messageDialog/roleUserAdd.vue

@@ -13,13 +13,11 @@
       </div>
       <div class="right">
           <el-table :data="tableData">
-              <el-table-column label="用户名" />
-              <el-table-column label="手机号" />
-              <el-table-column label="邮箱" />
-              <el-table-column label="单位" />
-              <el-table-column label="注册时间" />
-              <el-table-column label="状态" />
-              <el-table-column label="操作" />
+              <el-table-column type="selection" width="50"></el-table-column>
+              <el-table-column prop="user_name" label="用户名"></el-table-column>
+              <el-table-column prop="phone" label="手机号"></el-table-column>
+              <el-table-column prop="email" label="邮箱"></el-table-column>
+              <el-table-column prop="company" label="单位"></el-table-column>
           </el-table>
       </div>
   </div>
@@ -27,12 +25,51 @@
 
 <script>
 import dropdown from "@/components/Dropdown/index.vue";
+import {getUserList} from "@/api/user/user";
 export default {
     components: {dropdown},
     data() {
         return {
             filterText: '',
             tableData: [],
+            data: [{
+                id:2,
+                label: '北京电信规划设计院',
+                url: require('@/assets/tree/group/company@3x.png'),
+                type: 'company',
+                children: [{
+                    id:3,
+                    url: require('@/assets/tree/group/affiliate@3x.png'),
+                    label: '天津办事处',
+                    type: 'dept',
+                }]
+            }],
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            },
+            currentNode: {}
+
+        }
+    },
+    methods: {
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.label.indexOf(value) !== -1;
+        },
+        handleNodeClick(data) {
+            this.currentNode = data;
+            this.getUsers()
+        },
+        getUsers() {
+            getUserList(0,1,999,this.currentNode.label).then(res=>{
+                let data = res.data;
+                if (data.code == 0) {
+                    this.tableData = data.data
+                } else {
+                    this.$message.error(data.message);
+                }
+            })
         }
     }
 }

+ 117 - 94
src/views/permissionManagement/roleOverview.vue

@@ -3,8 +3,10 @@
         <div class="header">
             <p class="info">角色总览</p>
         </div>
-        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
-            :cell-style="{ textAlign: 'center' }" height="400" style="width: 98%" @selection-change="handleSelectionChange">
+        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark"
+                  :header-cell-style="{ textAlign: 'center' }"
+                  :cell-style="{ textAlign: 'center' }" height="400" style="width: 98%"
+                  @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="50">
             </el-table-column>
             <el-table-column prop="role_name" label="角色名称">
@@ -17,9 +19,12 @@
             </el-table-column>
             <el-table-column prop="operation" label="操作">
                 <template slot-scope="scope">
-                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="roleDetail(scope.row)">查看</el-button>
-                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="roleEdit(scope.row)">编辑</el-button>
-                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="deleteRole(scope.row)">删除</el-button>
+                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="roleDetail(scope.row)">查看
+                    </el-button>
+                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="roleEdit(scope.row)">编辑
+                    </el-button>
+                    <el-button size="mini" type="text" style="color: #2ea8e6" @click="deleteRole(scope.row)">删除
+                    </el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -32,9 +37,10 @@
 
 <script>
 import page from '@/components/pagination/index';
-import { getRoleList } from '@/api/role/role';
+import {deleteRole, getRoleList} from '@/api/role/role';
+
 export default {
-    components: { page },
+    components: {page},
     data() {
         return {
             addRoleVisible: false,
@@ -102,14 +108,30 @@ export default {
         batchDelete() {
 
         },
-        deleteRole() {
-
+        deleteRole(data) {
+            let app = this;
+            this.$confirm('是否删除角色:' + data.role_name + ' ?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                deleteRole(data.id).then(res => {
+                    if (res.data.code == 0) {
+                        app.getTableData(1);
+                        app.$message.success('删除成功')
+                    } else {
+                        app.$message.error(res.data.message);
+                    }
+                }).catch(err => {
+                    app.$message.error(err.message);
+                })
+            })
         },
-        roleEdit() {
-
+        roleEdit(row) {
+            this.$emit('view', row)
         },
-        roleDetail() {
-
+        roleDetail(row) {
+            this.$emit('view', row)
         },
         handleAddRoleClose() {
             this.addRoleVisible = false;
@@ -119,104 +141,105 @@ export default {
 </script>
 <style lang="less" scoped>
 .header {
-    display: flex;
+  display: flex;
 
-    .info {
-        padding: 20px 20px 20px 40px;
-        font-size: 16px;
-    }
+  .info {
+    padding: 20px 20px 20px 40px;
+    font-size: 16px;
+  }
 }
+
 .el-table {
-    position: relative;
-    top: 10px;
-    margin-left: 1%;    
-    border: 1px solid #f0f2f2;
-    font-size: 14px;
-    font-family: PingFang SC,serif;
-    font-weight: 500;
+  position: relative;
+  top: 10px;
+  margin-left: 1%;
+  border: 1px solid #f0f2f2;
+  font-size: 14px;
+  font-family: PingFang SC, serif;
+  font-weight: 500;
+  color: #b2b2b2;
+  background: rgba(255, 255, 255, 0.8);
+
+  /deep/ th {
+    background: #f7fbff;
+  }
+
+  /deep/ .el-checkbox {
     color: #b2b2b2;
-    background: rgba(255, 255, 255, 0.8);
 
-    /deep/th {
-        background: #f7fbff;
+    .el-checkbox__input.is-checked + .el-checkbox__label {
+      color: #2ea8e6;
     }
 
-    /deep/.el-checkbox {
-        color: #b2b2b2;
-
-        .el-checkbox__input.is-checked+.el-checkbox__label {
-            color: #2ea8e6;
-        }
-
-        .el-checkbox__input.is-checked .el-checkbox__inner::after {
-            width: 70%;
-            height: 70%;
-            background: #2ea8e6;
-            border-radius: 0;
-            transform: rotate(0deg) scaleY(1);
-            position: static;
-            // border: 1px solid #8DD9FF;
-        }
+    .el-checkbox__input.is-checked .el-checkbox__inner::after {
+      width: 70%;
+      height: 70%;
+      background: #2ea8e6;
+      border-radius: 0;
+      transform: rotate(0deg) scaleY(1);
+      position: static;
+      // border: 1px solid #8DD9FF;
+    }
 
-        .el-checkbox__inner {
-            border: 1px solid #8dd9ff;
-            background: rgba(0, 170, 255, 0);
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            position: static;
-
-            &::after {
-                transition: 0ms;
-            }
-        }
+    .el-checkbox__inner {
+      border: 1px solid #8dd9ff;
+      background: rgba(0, 170, 255, 0);
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      position: static;
+
+      &::after {
+        transition: 0ms;
+      }
+    }
 
-        .el-checkbox__label {
-            padding-left: 0;
-            font-size: 15px;
-            position: absolute;
-            top: 1px;
-            left: 25px;
-        }
+    .el-checkbox__label {
+      padding-left: 0;
+      font-size: 15px;
+      position: absolute;
+      top: 1px;
+      left: 25px;
     }
+  }
 }
 
 .bottom {
+  position: absolute;
+  left: 330px;
+  right: 16px;
+  bottom: 20px;
+  height: 50px;
+  line-height: 20px;
+  background-color: rgba(255, 255, 255, 1);
+  text-align: center;
+
+  .checkbox {
     position: absolute;
-    left: 330px;
-    right: 16px;
-    bottom: 20px;
-    height: 50px;
-    line-height: 20px;
-    background-color: rgba(255, 255, 255, 1);
-    text-align: center;
-
-    .checkbox {
-        position: absolute;
-        left: 30px;
-        top: 15px;
-        font-size: 14px;
-    }
+    left: 30px;
+    top: 15px;
+    font-size: 14px;
+  }
 
-    .check-cancel {
-        position: absolute;
-        // line-height: 20px;
-        font-size: 14px;
-        text-align: center;
-        left: 140px;
-        top: 10px;
-    }
+  .check-cancel {
+    position: absolute;
+    // line-height: 20px;
+    font-size: 14px;
+    text-align: center;
+    left: 140px;
+    top: 10px;
+  }
 
-    .bottom_button {
-        position: absolute;
-        left: 200px;
-        margin-top: 15px;
+  .bottom_button {
+    position: absolute;
+    left: 200px;
+    margin-top: 15px;
 
-        .delete {
-            font-size: 14px;
-            text-align: center;
-            padding: 1px;
-        }
+    .delete {
+      font-size: 14px;
+      text-align: center;
+      padding: 1px;
     }
+  }
 }
 </style>

+ 1 - 1
src/views/systemManagement/infoConfiguration/dailog/historyPeople.vue

@@ -229,7 +229,7 @@ export default {
 };
 </script>
 
-<style lang="less" scope>
+<style lang="less" scoped>
 .el-dialog__header {
   color: #333333;
   padding-bottom: 20px;

+ 191 - 91
src/views/userManagement/groupManagement/forms/corporationdetailEdit.vue

@@ -1,52 +1,50 @@
 <template>
-    <div style="height: 100%;">
-        <el-button class="addDepartment" @click="addDepartment" style="color: #fff; background: #3da0d6"><i
-                class="el-icon-s-order"></i>新建部门</el-button>
-                <departmentNew ref="departmentNew"></departmentNew>
+    <div style="height: 100%;overflow-y: auto">
+        <departmentNew ref="departmentNew"></departmentNew>
         <p class="info">企业详情</p>
-        <el-image :src="url"></el-image>
-        <el-button class="alter" v-if="show">更换</el-button>
-        <el-form :model="form" label-position="left" :disabled="disabled">
+        <div class="company-banner" style="height: 100px;overflow-y: hidden;position: relative">
+            <el-image style="height: 100px" :src="require('@/assets/background/banner.png')"></el-image>
+            <el-button type="primary" class="company-alter">更换</el-button>
+        </div>
+        <el-form :model="form" label-position="right" label-width="200px">
             <el-form-item label="公司全称:">
-                <el-input v-model="form.fullName" type="text"></el-input>
+                <el-input v-model="form.company_name" type="text" placeholder="请输入公司全称"></el-input>
             </el-form-item>
             <el-form-item label="公司简称:">
-                <el-input v-model="form.abbreviateName" type="text"></el-input>
+                <el-input v-model="form.abbreviation" type="text" placeholder="请输入公司简称"></el-input>
             </el-form-item>
             <el-form-item label="上级公司:">
-                <el-select v-model="form.parentCorporation">
-                    <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
-                        :label="item.label"></el-option>
+                <el-select v-model="form.parentCorporation" placeholder="请选择上级公司">
+                    <el-option v-for="item in superiorOptions" :key="item.value" :value="item.value" :label="item.label"></el-option>
                 </el-select>
             </el-form-item>
             <el-form-item label="统一社会信用代码:">
-                <el-input v-model="form.sccide"></el-input>
+                <el-input v-model="form.code" placeholder="统一社会信用代码"></el-input>
             </el-form-item>
-            <el-form-item v-model="form.registeredAddress" label="注册地址:">
-                <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
+            <el-form-item label="注册地址:">
+                <el-cascader v-model="registered_address.pro" :options="province" placeholder="选择城市/区级" filterable>
                 </el-cascader>
-                <el-input style="margin-left: 10px;"></el-input>
+                <el-input style="margin-left: 10px;" v-model="registered_address.info" placeholder="详细地址"></el-input>
             </el-form-item>
-            <el-form-item v-model="form.businessAddress" label="经营地址:">
-                <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
-                </el-cascader>
-                <el-input style="margin-left: 10px;"></el-input>
+            <el-form-item label="经营地址:">
+                <el-cascader v-model="business_address.pro" :options="province" placeholder="选择城市/区级" filterable></el-cascader>
+                <el-input style="margin-left: 10px;" v-model="business_address.info" placeholder="详细地址"></el-input>
             </el-form-item>
             <el-form-item label="法人姓名:">
-                <el-input v-model="form.legalName" type="text"></el-input>
+                <el-input v-model="form.legal_person_name" type="text" placeholder="请输入法人姓名"></el-input>
             </el-form-item>
             <el-form-item label="公司编码:">
-                <el-input v-model="form.corporationCode" type="text"></el-input>
+                <el-input v-model="form.company_code" type="text" placeholder="请输入公司编码"></el-input>
             </el-form-item>
             <el-form-item label="编制人数:">
-                <el-input v-model="form.complementCount" type="text"></el-input>
+                <el-input-number v-model="form.on_guard_size" :min="0" placeholder="编制人数"></el-input-number>
             </el-form-item>
             <el-form-item label="在岗人数:">
-                <el-input v-model="form.staffCount" type="text"></el-input>
+                <el-input-number v-model="form.staff_size" :min="0" placeholder="在岗人数"></el-input-number>
             </el-form-item>
         </el-form>
         <div class="bottom">
-            <el-button class="delete" style="background:#B3B3B3;">删除</el-button>
+            <el-button class="delete" style="background:#B3B3B3;" @click="del">删除</el-button>
             <el-button class="edit" @click="edit">编辑</el-button>
         </div>
     </div>
@@ -54,24 +52,41 @@
 
 <script>
 import departmentNew from '../messageDialog/departmentNew';
+import province from '@/data/province.json'
+import {delCompanyInfo, getCompanyInfo, updateCompanyInfo} from "@/api/company/company";
 
 export default {
-    components: { departmentNew },
+    components: {departmentNew},
+    props: {
+        item: Object,
+        companyList: Array,
+    },
+    watch: {
+      item: {
+          deep: true,
+          handler: function (val) {
+              this.registered_address ={pro:'', info: ''};
+              this.business_address ={pro:'', info: ''};
+              this.getCompanyInfo();
+          }
+      }
+    },
     data() {
         return {
+            province,
             show: false,
             disabled: true,
+            registered_address: {
+                pro: '',
+                info: ''
+            },
+            business_address: {
+                pro: '',
+                info: ''
+            },
             form: {
-                fullName: "",
-                abbreviateName: "",
-                parentCorporation: "",
-                sccide: "",
-                registeredAddress: "",
-                businessAddress: "",
-                legalName: "",
-                corporationCode: "",
-                complementCount: "",
-                staffCount: ""
+                staff_size: 0,
+                on_guard_size: 0,
             },
             url: "",
             superiorOptions: [
@@ -83,96 +98,181 @@ export default {
             addressOptions: [],
         };
     },
+    mounted() {
+        this.getCompanyInfo()
+    },
+    emits: ['close'],
     methods: {
+        del() {
+          this.$confirm('确定要删除吗?', '提示', {
+              type: 'warning'
+          }).then(()=>{
+              delCompanyInfo(this.item.id).then(res=>{
+                  let data = res.data;
+                  if (data.code == 0) {
+                      this.$emit('close', {
+                          type: 'view'
+                      })
+                      this.$message.success('删除成功');
+                  } else {
+                      this.$message.error(data.message);
+                  }
+              })
+          })
+        },
         edit() {
-            this.show = true;
-            this.disabled = false;
+            let business_address = '';
+            if (this.business_address.pro) {
+                for (let i = 0; i < this.business_address.pro.length; i++) {
+                    if (i>0) {
+                        business_address += '/'
+                    }
+                    business_address += this.business_address.pro[i]
+                }
+            }
+            business_address += '---'+this.business_address.info;
+
+            let registered_address = '';
+            if (this.registered_address.pro) {
+                for (let i = 0; i < this.registered_address.pro.length; i++) {
+                    if (i>0) {
+                        registered_address += '/'
+                    }
+                    registered_address += this.registered_address.pro[i]
+                }
+            }
+            registered_address += '---'+this.registered_address.info;
+
+            let param = JSON.parse(JSON.stringify(this.form));
+            param.company_id = ''+param.id
+            param.on_guard_size = param.on_guard_size
+            param.staff_size = param.staff_size
+            param.registered_address = registered_address
+            param.business_address = business_address
+            updateCompanyInfo(param).then(res=>{
+                let data = res.data;
+                if (data.code == 0) {
+                    this.$emit('close', {
+                        type: 'view'
+                    })
+                    this.$message.success('更新成功');
+                } else {
+                    this.$message.error(data.message);
+                }
+            })
         },
-        addDepartment(){
+        addDepartment() {
             this.$refs.departmentNew.dialogVisible = true;
+        },
+        getCompanyInfo() {
+            getCompanyInfo(this.item.id).then(res => {
+                let data = res.data;
+                if (data.code == 0) {
+                    this.form = JSON.parse(JSON.stringify(data.data[0]));
+                    if (this.form.registered_address) {
+                        let splitArr = this.form.registered_address.split('---')
+                        if (this.form.registered_address.indexOf('---')<1) {
+                            this.registered_address.info = this.form.registered_address.replace('---','')
+                        } else {
+                            if (splitArr.length>0) {
+                                this.registered_address.pro = splitArr[0].split('/');
+                                this.registered_address.pro = splitArr[0].split('/');
+                            }
+                            if (splitArr.length>1) {
+                                this.registered_address.info = splitArr[1];
+                            }
+                        }
+                    }
+                    if (this.form.business_address) {
+                        let splitArr = this.form.business_address.split('---')
+                        if (this.form.business_address.indexOf('---')<1) {
+                            this.business_address.info = this.form.business_address.replace('---','')
+                        } else {
+                            if (splitArr.length>0) {
+                                this.business_address.pro = splitArr[0].split('/');
+                            }
+                            if (splitArr.length>1) {
+                                this.business_address.info = splitArr[1];
+                            }
+                        }
+                    }
+                } else {
+                    this.$message.error(data.message)
+                }
+            })
         }
     },
 }
 </script>
 <style lang="less" scoped>
-.addDepartment {
-    position: absolute;
-    left: 40px;
-    bottom: 15px;
-    width: 250px;
-    text-align: center;
-    font-size: 16px;
-}
 
 .info {
-    text-align: left;
-    padding: 20px;
-    font-size: 25px;
+  text-align: left;
+  padding: 20px;
+  font-size: 16px;
 }
 
 .el-image {
-    width: 95%;
-    height: 150px;
+  width: 95%;
+  height: 150px;
 }
 
-.alter {
-    position: absolute;
-    right: 40px;
-    top: 165px;
-    width: 100px;
-    height: 30px;
-    color: #fff;
-    padding: 3px;
-    font-size: 14px;
-    background: #3da0d6;
+.company-alter {
+  position: absolute;
+  right: 55px;
+  top: 65px;
+  width: 60px;
+  height: 24px;
+  padding: 3px;
+  font-size: 1px;
+  z-index: 999;
 
 }
 
 .el-select {
-    width: 100%;
+  width: 100%;
 }
 
 .el-form {
-    padding: 20px 20% 0 20%;
+  padding: 8px 20% 0 10%;
 
     .el-form-item {
-        padding-top: 10px;
-        margin-inline: 20px;
-        margin-bottom: 0;
+        margin-bottom: 12px;
     }
+  //.el-form-item {
+  //    padding-top: 10px;
+  //    margin-inline: 20px;
+  //    margin-bottom: 0;
+  //}
+  //
 
-    .el-cascader {
-        /deep/.el-input__inner {
-            width: 180px;
-        }
-    }
+  //
+  ///deep/.el-form-item__label {
+  //    padding: 0;
+  //    text-align: left;
+  //    font-weight: 550;
+  //}
 
-    /deep/.el-form-item__label {
-        padding: 0;
-        text-align: left;
-        font-weight: 550;
-    }
-
-    /deep/.el-form-item__content {
-        display: flex;
-    }
+  /deep/ .el-form-item__content {
+    display: flex;
+  }
 }
 
 
 .bottom {
-    position: absolute;
-    bottom: 15px;
-    left: 50%;
+  position: absolute;
+  bottom: 15px;
+  left: 50%;
 }
 
 .delete,
 .edit {
-    width: 100px;
-    height: 30px;
-    color: #fff;
-    padding: 3px;
-    margin-left: 50px;
-    font-size: 14px;
-    background: #3da0d6;
+  width: 100px;
+  height: 30px;
+  color: #fff;
+  padding: 3px;
+  margin-left: 50px;
+  font-size: 14px;
+  background: #3da0d6;
 }
 </style>

+ 95 - 91
src/views/userManagement/groupManagement/forms/departmentdetailEdit.vue

@@ -1,109 +1,116 @@
 <template>
-    <div>
+    <div style="height: 100%;overflow-y: auto">
+        <departmentNew ref="departmentNew"></departmentNew>
         <p class="info">部门详情</p>
-        <el-image :src="url"></el-image>
-        <el-button class="alter" v-if="show">更换</el-button>
-
-        <el-form :model="form" label-position="left" :disabled="disabled">
-            <el-form-item label="部门级别:">
-                <el-select v-model="form.department_level">
-                    <el-option v-for="item in levelOptions" :value="item.value" :key="item.value"
-                        :label="item.label"></el-option>
-                </el-select>
+        <div class="company-banner" style="height: 100px;overflow-y: hidden;position: relative">
+            <el-image style="height: 100px" :src="require('@/assets/background/banner.png')"></el-image>
+            <el-button type="primary" class="company-alter">更换</el-button>
+        </div>
+        <el-form :model="form" label-position="right" label-width="200px">
+            <el-form-item label="部门名称:">
+                <el-input v-model="form.department_name" placeholder="请输入部门名称" />
             </el-form-item>
-            <el-form-item label="上级部门:">
-                <el-select v-model="form.superior_department">
-                    <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
-                        :label="item.label"></el-option>
+            <el-form-item label="上级公司:">
+                <el-select v-model="form.company_id" placeholder="请选择上级公司">
+                    <el-select-option label="中讯" value="1"></el-select-option>
                 </el-select>
             </el-form-item>
             <el-form-item label="部门负责人:">
-                <el-select v-model="form.departmentManager">
-                    <el-option v-for="item in managerOptions" :value="item.value" :key="item.value"
-                        :label="item.label"></el-option>
-                </el-select>
+                <el-input v-model="form.principal" placeholder="部门负责人" />
             </el-form-item>
             <el-form-item label="部门接口人:">
-                <el-select v-model="form.departmentOfficer">
-                    <el-option v-for="item in officerOptions" :value="item.value" :key="item.value"
-                        :label="item.label"></el-option>
-                </el-select>
+                <el-input v-model="form.liaison_officer" placeholder="部门接口人" />
             </el-form-item>
             <el-form-item label="排重名:">
-                <el-input v-model="form.duplication" type="text"></el-input>
+                <el-input v-model="form.duplicate_name" placeholder="排重名" />
             </el-form-item>
             <el-form-item label="在岗人数:">
-                <el-input-number :model="form.staff_num" v-model="num" @change="handleChange" :min="1"
-                    :max="100"></el-input-number>
+                <el-input-number v-model="form.on_guard" placeholder="在岗人数" :min="0" ></el-input-number>
             </el-form-item>
             <el-form-item label="自由员工:">
-                <el-input v-model="form.self_employee" type="text"></el-input>
+                <el-input-number v-model="form.freelance_staff" placeholder="自由员工" :min="0" ></el-input-number>
             </el-form-item>
             <el-form-item label="协作员工:">
-                <el-input v-model="form.collaborator" type="text"></el-input>
+                <el-input-number v-model="form.cooperation_staff" placeholder="协作员工" :min="0" ></el-input-number>
             </el-form-item>
             <el-form-item label="第三方员工:">
-                <el-input v-model="form.thirdParty_employee" type="text"></el-input>
+                <el-input-number v-model="form.thirdparty_staff" placeholder="第三方员工" :min="0" ></el-input-number>
             </el-form-item>
             <el-form-item label="部门职责:">
-                <el-input type="textarea" placeholder="请输入" v-model="textarea" maxlength="200" show-word-limit></el-input>
+                <el-input type="textarea" />
             </el-form-item>
         </el-form>
         <div class="bottom">
-            <el-button style="background:#B3B3B3;">删除</el-button>
-            <el-button @click="edit">编辑</el-button>
+            <el-button class="delete" style="background:#B3B3B3;">删除</el-button>
+            <el-button class="edit" @click="edit">编辑</el-button>
         </div>
     </div>
 </template>
 
 <script>
+import departmentNew from '../messageDialog/departmentNew';
+import province from '@/data/province.json'
+import {getCompanyInfo} from "@/api/company/company";
+
 export default {
+    components: {departmentNew},
+    props: {
+        item: Object,
+    },
     data() {
         return {
+            province,
             show: false,
             disabled: true,
             form: {
-                department_level: '',
-                superior_department: '',
-                departmentManager: '',
-                departmentOfficer: '',
-                duplication: '',
-                staff_num: '',
-                self_employee: '',
-                collaborator: '',
-                thirdParty_employee: '',
+                department_name: '',
+                company_id: '',
+                principal: '',
+                liaison_officer: '',
+                duplicate_name: '',
+                on_guard: 0,
+                freelance_staff: 0,
+                cooperation_staff: 0,
+                thirdparty_staff: 0,
+                censure: '',
             },
-            num: 100,
-            textarea: '',
-            url: '',
-            levelOptions: [],
+            url: "",
             superiorOptions: [
                 {
-                    value: '0',
-                    label: '北京电信规划设计院'
+                    value: "0",
+                    label: "中讯邮电咨询设计院"
                 }
             ],
-            managerOptions: [],
-            officerOptions: [],
-        }
+            addressOptions: [],
+        };
+    },
+    mounted() {
+        this.getCompanyInfo()
     },
     methods: {
-        handleChange() {
-            //
-        },
         edit() {
             this.show = true;
             this.disabled = false;
+        },
+        getCompanyInfo() {
+            getCompanyInfo(1).then(res => {
+                let data = res.data;
+                if (data.code == 0) {
+                    this.form = JSON.parse(JSON.stringify(data.data[0]));
+                } else {
+                    this.$message.error(data.message)
+                }
+            })
         }
-    }
-
+    },
 }
 </script>
 <style lang="less" scoped>
+
 .info {
     text-align: left;
     padding: 20px;
-    font-size: 25px;
+    font-size: 16px;
 }
 
 .el-image {
@@ -111,59 +118,55 @@ export default {
     height: 150px;
 }
 
-.alter {
+.company-alter {
     position: absolute;
-    right: 40px;
-    top: 165px;
+    right: 55px;
+    top: 65px;
+    width: 60px;
+    height: 24px;
+    padding: 3px;
+    font-size: 1px;
+    z-index: 999;
+
+}
+
+.el-select {
+    width: 100%;
 }
 
 .el-form {
-    padding: 20px 20% 0 20%;
+    padding: 20px 20% 0 10%;
 
     .el-form-item {
-        padding-top: 10px;
-        margin-inline: 20px;
-        margin-bottom: 0;
+        margin-bottom: 12px;
     }
+    //
+    //.el-cascader {
+    //    /deep/.el-input__inner {
+    //        width: 180px;
+    //    }
+    //}
+    //
+    ///deep/.el-form-item__label {
+    //    padding: 0;
+    //    text-align: left;
+    //    font-weight: 550;
+    //}
 
-    .el-select {
-        width: 100%;
-    }
-
-    .el-input-number {
-        /deep/.el-input-number__decrease {
-            border: 1px solid #DCDFE6;
-            border-radius: 4px;
-    
-        }
-        /deep/.el-input-number__increase {
-            border: 1px solid #DCDFE6;
-            border-radius: 4px;
-        }
-        /deep/.el-input__inner {
-            border: 0;
-            background: #fff;
-        }
-    }
-
-    /deep/.el-form-item__label {
-        padding: 0;
-        text-align: left;
-        font-weight: 550;
-    }
-
-    /deep/.el-form-item__content {
+    /deep/ .el-form-item__content {
         display: flex;
     }
 }
 
+
 .bottom {
     position: absolute;
     bottom: 15px;
     left: 50%;
 }
 
-.el-button {
+.delete,
+.edit {
     width: 100px;
     height: 30px;
     color: #fff;
@@ -171,4 +174,5 @@ export default {
     margin-left: 50px;
     font-size: 14px;
     background: #3da0d6;
-}</style>
+}
+</style>

+ 56 - 27
src/views/userManagement/groupManagement/index.vue

@@ -7,28 +7,36 @@
                 <span slot-scope="{node,data}">
                     <el-image :src="data.url"></el-image>
                     <span style="padding-left: 10px; vertical-align: text-bottom;">{{ node.label }}</span>
-                    <span class="operate_btns">
-                        <dropdown :events="data.id == 1 ? menuEvents : subMenuEvents" :data="{ node, data }"
-                            @itemClick="dropDownClick"></dropdown>
-                    </span>
+                    <!--<span class="operate_btns">-->
+                    <!--    <dropdown :events="data.id == 1 ? menuEvents : subMenuEvents" :data="{ node, data }"-->
+                    <!--        @itemClick="dropDownClick"></dropdown>-->
+                    <!--</span>-->
                 </span>
             </el-tree>
+            <el-button class="addDepartment" @click="addDepartment" style="color: #fff; background: #3da0d6">
+                <i class="el-icon-s-order" style="padding-right: 4px"></i>
+                新建企业/部门
+            </el-button>
         </div>
         <div class="right-pane">
-            <overView v-if="viewShow"></overView>
-            <corporation v-if="corporShow"></corporation>
-            <department v-if="departShow"></department>
+            <overView v-if="viewShow" @nodeClick="handleNodeClick"></overView>
+            <corporation :item="currentNode" v-if="corporShow" @close="handleNodeClick"></corporation>
+            <department :item="currentNode" v-if="departShow" @close="handleNodeClick"></department>
         </div>
+
+        <CorporationAdd ref="corporationAdd" />
+
     </div>
 </template>
 <script>
 import overView from './tables/corporationOverview';
 import corporation from './forms/corporationdetailEdit';
 import department from './forms/departmentdetailEdit';
+import CorporationAdd from "@/views/userManagement/groupManagement/messageDialog/corporationAdd.vue";
 import dropdown from '@/components/Dropdown/index';
 import {getCompanyList} from '@/api/company/company'
 export default {
-    components: { overView, dropdown, corporation, department },
+    components: { overView, dropdown, corporation, department, CorporationAdd },
     data() {
         return {
             filterText: '',
@@ -70,37 +78,47 @@ export default {
         }
     },
     mounted() {
-        this.getCompanyData()
+        this.getCompanyData();
     },
     methods: {
         getCompanyData() {
             getCompanyList('', 1, 999).then(res=>{
-                console.log(res)
+                let data = res.data;
+                if (data.code == 0) {
+                    this.data = data.data;
+                    this.data.forEach(item => {
+                        item.url = require('@/assets/tree/group/company@3x.png');
+                        item.label = item.company_name;
+                        item.type = 'company'
+                    })
+                } else {
+                    this.$message.error(data.message)
+                }
             })
         },
         handleNodeClick(data) {
-            switch (data.id) {
-                case 2:
-                    this.viewShow = false;
-                    this.corporShow = true;
-                    this.departShow = false;
-                    break;
-                case 3:
-                    this.viewShow = false;
-                    this.corporShow = false;
-                    this.departShow = true;
-                    break;
-                default:
-                    this.viewShow = true;
-                    this.corporShow = false;
-                    this.departShow = false;
-                    break;
+            this.currentNode = data
+            if (data.type=='company') {
+                this.viewShow = false;
+                this.corporShow = true;
+                this.departShow = false;
+            } else if (data.type=='dept') {
+                this.viewShow = false;
+                this.corporShow = false;
+                this.departShow = true;
+            } else {
+                this.corporShow = false;
+                this.departShow = false;
+                this.viewShow = true;
             }
         },
         filterNode(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
         },
+        addDepartment() {
+          this.$refs.corporationAdd.dialogVisible = true;
+        },
         handleClick() {
 
         },
@@ -112,7 +130,7 @@ export default {
             if (funcName === 'addNode') {
                 //
             }
-        }
+        },
     }
 }
 </script>
@@ -129,6 +147,17 @@ export default {
     display: flex;
     box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
 
+    .addDepartment {
+        position: absolute;
+        left: 68px;
+        bottom: 15px;
+        width: 250px;
+        height: 30px;
+        text-align: center;
+        font-size: 14px;
+        padding: 0;
+    }
+
     .left-pane {
         width: 300px;
         padding: 15px;

+ 235 - 124
src/views/userManagement/groupManagement/messageDialog/corporationAdd.vue

@@ -1,185 +1,296 @@
 <template>
     <div>
-        <el-dialog v-dialog-drag style="overflow: hidden;" :title="popTitle" :visible.sync="dialogVisible" width="32%"
-            append-to-body>
+        <el-dialog v-dialog-drag style="overflow: auto;" :title="popTitle" :visible.sync="dialogVisible" width="900px"
+                   append-to-body>
             <el-divider></el-divider>
-            <div>
-                <el-image :src="url"></el-image>
-                <el-button class="alter">更换</el-button>
-            </div>
-            <div style="height: 400px;">
-                <el-scrollbar style="height: 90%; width: 100%; top: -20px;">
-                    <el-form :model="form" ref="form" label-position="left">
-                        <el-form-item label="公司全称:" prop="fullName">
-                            <el-input v-model="form.fullName" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item label="公司简称:" prop="abbreviateName">
-                            <el-input v-model="form.abbreviateName" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item label="上级公司:" prop="parentCorporation">
-                            <el-select v-model="form.parentCorporation">
-                                <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
-                                    :label="item.label"></el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="统一社会信用代码:" prop="sccide">
-                            <el-input v-model="form.sccide"></el-input>
-                        </el-form-item>
-                        <el-form-item v-model="form.registeredAddress" label="注册地址:" prop="registeredAddress">
-                            <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
-                            </el-cascader>
-                            <el-input style="margin-left: 10px;"></el-input>
-                        </el-form-item>
-                        <el-form-item v-model="form.businessAddress" label="经营地址:" prop="businessAddress">
-                            <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
-                            </el-cascader>
-                            <el-input style="margin-left: 10px;"></el-input>
-                        </el-form-item>
-                        <el-form-item label="法人姓名:" prop="legalName">
-                            <el-input v-model="form.legalName" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item label="公司编码:" prop="orporationCode">
-                            <el-input v-model="form.corporationCode" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item label="编制人数:" prop="complementCount">
-                            <el-input v-model="form.complementCount" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item label="在岗人数:" prop="staffCount">
-                            <el-input v-model="form.staffCount" type="text"></el-input>
-                        </el-form-item>
-                        <el-form-item>
-
-                        </el-form-item>
-                    </el-form>
-                </el-scrollbar>
-            </div>
+
+            <el-radio-group v-model="addType" style="margin: 20px 200px">
+                <el-radio label="1">企业</el-radio>
+                <el-radio label="2">部门</el-radio>
+            </el-radio-group>
+
+            <el-form v-if="show.company" :model="companyForm" :rules="formRules" label-position="right" label-width="200px">
+                <el-form-item label="公司全称:" prop="company_name">
+                    <el-input v-model="companyForm.company_name" type="text" placeholder="请输入公司全称"></el-input>
+                </el-form-item>
+                <el-form-item label="公司简称:">
+                    <el-input v-model="companyForm.abbreviation" type="text" placeholder="请输入公司简称"></el-input>
+                </el-form-item>
+                <el-form-item label="上级公司:">
+                    <el-select v-model="companyForm.parentCorporation" placeholder="请选择上级公司">
+                        <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
+                                   :label="item.label"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="统一社会信用代码:">
+                    <el-input v-model="companyForm.code" placeholder="统一社会信用代码"></el-input>
+                </el-form-item>
+                <el-form-item label="注册地址:">
+                    <el-cascader v-model="registered_address.pro" :options="province" placeholder="选择城市/区级"
+                                 filterable>
+                    </el-cascader>
+                    <el-input style="margin-left: 5px;width: 450px" v-model="registered_address.info"
+                              placeholder="详细地址"></el-input>
+                </el-form-item>
+                <el-form-item label="经营地址:">
+                    <el-cascader v-model="business_address.pro" :options="province" placeholder="选择城市/区级"
+                                 filterable></el-cascader>
+                    <el-input style="margin-left: 5px;width: 450px" v-model="business_address.info"
+                              placeholder="详细地址"></el-input>
+                </el-form-item>
+                <el-form-item label="法人姓名:">
+                    <el-input v-model="companyForm.legal_person_name" type="text"
+                              placeholder="请输入法人姓名"></el-input>
+                </el-form-item>
+                <el-form-item label="公司编码:">
+                    <el-input v-model="companyForm.company_code" type="text" placeholder="请输入公司编码"></el-input>
+                </el-form-item>
+                <el-form-item label="编制人数:">
+                    <el-input-number v-model="companyForm.on_guard_size" :min="0"
+                                     placeholder="编制人数"></el-input-number>
+                </el-form-item>
+                <el-form-item label="在岗人数:">
+                    <el-input-number v-model="companyForm.staff_size" :min="0" placeholder="在岗人数"></el-input-number>
+                </el-form-item>
+            </el-form>
+
+            <el-form v-if="show.dept" :model="deptForm" label-position="right" label-width="200px">
+                <el-form-item label="部门名称:">
+                    <el-input v-model="deptForm.department_name" placeholder="请输入部门名称"/>
+                </el-form-item>
+                <el-form-item label="上级公司:">
+                    <el-select v-model="deptForm.company_id" placeholder="请选择上级公司">
+                        <el-option v-for="item in companyList" :key="item.id" :value="item.id">{{ item.company_name }}</el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="部门负责人:">
+                    <el-input v-model="deptForm.principal" placeholder="部门负责人"/>
+                </el-form-item>
+                <el-form-item label="部门接口人:">
+                    <el-input v-model="deptForm.liaison_officer" placeholder="部门接口人"/>
+                </el-form-item>
+                <el-form-item label="排重名:">
+                    <el-input v-model="deptForm.duplicate_name" placeholder="排重名"/>
+                </el-form-item>
+                <el-form-item label="在岗人数:">
+                    <el-input-number v-model="deptForm.on_guard" placeholder="在岗人数" :min="0"></el-input-number>
+                </el-form-item>
+                <el-form-item label="自由员工:">
+                    <el-input-number v-model="deptForm.freelance_staff" placeholder="自由员工"
+                                     :min="0"></el-input-number>
+                </el-form-item>
+                <el-form-item label="协作员工:">
+                    <el-input-number v-model="deptForm.cooperation_staff" placeholder="协作员工"
+                                     :min="0"></el-input-number>
+                </el-form-item>
+                <el-form-item label="第三方员工:">
+                    <el-input-number v-model="deptForm.thirdparty_staff" placeholder="第三方员工"
+                                     :min="0"></el-input-number>
+                </el-form-item>
+                <el-form-item label="部门职责:">
+                    <el-input type="textarea" v-model="deptForm.censure" placeholder="部门职责"/>
+                </el-form-item>
+            </el-form>
+
             <div slot="footer" class="dialog-footer">
-                <el-button style="background-color: #2EA8E6;color: #FFFFFF; margin-right: 30px;">下一个</el-button>
                 <el-button style="background-color: #B3B3B3;color: #FFFFFF;margin-right: 30px;"
-                    @click="resetForm('form')">重置</el-button>
-                <el-button style="background-color: #2EA8E6;color: #FFFFFF;">更新</el-button>
+                           @click="resetForm('form')">重置
+                </el-button>
+                <el-button style="background-color: #2EA8E6;color: #FFFFFF;" @click="submit">确定</el-button>
             </div>
         </el-dialog>
     </div>
 </template>
 
 <script>
-export default {
+import province from '@/data/province.json'
+import {addCompany, addDept, getCompanyList} from "@/api/company/company";
 
+export default {
+    comments: {},
+    watch: {
+        addType: function (val) {
+            if (val == 1) {
+                this.popTitle = '添加企业'
+                this.show.dept = false;
+                this.show.company = true;
+            } else if (val == 2) {
+                this.popTitle = '添加部门'
+                this.show.company = false;
+                this.show.dept = true;
+            }
+        }
+    },
     data() {
         return {
+            province,
             popTitle: '添加公司',
             dialogVisible: false,
-            url: '',
-            form: {
-                fullName: "",
-                abbreviateName: "",
-                parentCorporation: "",
-                sccide: "",
-                registeredAddress: "",
-                businessAddress: "",
-                legalName: "",
-                corporationCode: "",
-                complementCount: "",
-                staffCount: ""
+            addType: '1',
+            show: {
+                company: true,
+                dept: false,
             },
-            superiorOptions: [
-                {
-                    value: "0",
-                    label: "中讯邮电咨询设计院"
-                }
-            ],
-            addressOptions: [],
+            registered_address: {
+                pro: '',
+                info: ''
+            },
+            business_address: {
+                pro: '',
+                info: ''
+            },
+            formRules: {
+                company_name: [
+                    { required: true, message: '请输入公司名称', trigger: 'change' }
+                ]
+            },
+            companyList: [],
+            companyForm: {},
+            deptForm: {},
+            form: {}
+
         }
     },
+    mounted() {
+        this.getCompanyData()
+    },
     methods: {
         close() {
 
         },
         resetForm() {
             this.$refs.form.resetFields();
+        },
+        submit() {
+            if (this.addType == '1') {
+                this.addCompany();
+            } else if (this.addType == '2') {
+                this.addDept();
+            }
+        },
+        getCompanyData(page) {
+            getCompanyList('', 1, 999).then(res=>{
+                let data = res.data;
+                if (data.code == '0') {
+                    this.companyList = data.data;
+                    this.$forceUpdate()
+                }
+            })
+        },
+        addCompany() {
+            let business_address = '';
+            if (this.business_address.pro) {
+                for (let i = 0; i < this.business_address.pro.length; i++) {
+                    if (i>0) {
+                        business_address += '/'
+                    }
+                    business_address += this.business_address.pro[i]
+                }
+            }
+            business_address += '---'+this.business_address.info;
+
+            let registered_address = '';
+            if (this.registered_address.pro) {
+                for (let i = 0; i < this.registered_address.pro.length; i++) {
+                    if (i>0) {
+                        registered_address += '/'
+                    }
+                    registered_address += this.registered_address.pro[i]
+                }
+            }
+            registered_address += '---'+this.registered_address.info;
+
+            let param = JSON.parse(JSON.stringify(this.companyForm));
+            param.on_guard_size = ''+param.on_guard_size
+            param.staff_size = ''+param.staff_size
+            param.registered_address = registered_address
+            param.business_address = business_address
+            addCompany(param).then(res=>{
+                let data = res.data;
+                if (data.code==0) {
+                    this.dialogVisible = false;
+                    this.$message.success('添加成功');
+                } else {
+                    this.$message.error(data.message);
+                }
+            })
+        },
+        addDept() {
+            let param = JSON.parse(JSON.stringify(this.deptForm));
+            addDept(param).then(res=>{
+                let data = res.data;
+                if (data.code == 0) {
+                    this.dialogVisible = false;
+                    this.$message.success('添加成功');
+                } else {
+                    this.$message.error(data.message)
+                }
+            })
         }
     }
 
 }
 </script>
 <style lang="less" scoped>
-/deep/.el-dialog__footer {
-    text-align: center;
+/deep/ .el-dialog__footer {
+  text-align: center;
 }
-/deep/.el-dialog__body {
-    padding: 0 20px;
+
+/deep/ .el-dialog__body {
+  padding: 0 20px;
 }
 
 
-/deep/.el-divider--horizontal {
-    display: block;
-    height: 1px;
-    width: 100%;
-    margin: 0 !important;
+/deep/ .el-divider--horizontal {
+  display: block;
+  height: 1px;
+  width: 100%;
+  margin: 0 !important;
 }
 
 .el-image {
-    width: 100%;
-    height: 100px;
-    margin-top: 10px;
+  width: 100%;
+  height: 100px;
+  margin-top: 10px;
 }
 
 .alter {
-    background-color: #2EA8E6;
-    color: #FFFFFF;
-    float: right;
-    position: relative;
-    top: -40px;
-    right: 10px;
-    width: 80px !important;
+  background-color: #2EA8E6;
+  color: #FFFFFF;
+  float: right;
+  position: relative;
+  top: -40px;
+  right: 10px;
+  width: 80px !important;
 }
 
 .el-icon-close {
-    margin-left: 480px;
+  margin-left: 480px;
 }
 
-/deep/.el-tabs__header {
-    height: 0;
-    margin-bottom: 0;
+/deep/ .el-tabs__header {
+  height: 0;
+  margin-bottom: 0;
 }
 
 
 .el-select {
-    width: 100%;
+  width: 100%;
 }
 
 .el-form {
-    padding: 0 5% 0 5%;
-
-    .el-form-item {
-        padding-top: 10px;
-        margin-inline: 20px;
-        margin-bottom: 0;
-    }
-
-    .el-cascader {
-        /deep/.el-input__inner {
-            width: 100px;
-        }
-    }
 
-    /deep/.el-form-item__label {
-        padding: 0;
-        text-align: left;
-        font-weight: 550;
-    }
+  .el-form-item {
+    margin-bottom: 12px;
+  }
 
-    /deep/.el-form-item__content {
-        display: flex;
-    }
 }
 
 
 .el-button {
-    width: 100px;
-    height: 30px;
-    text-align: center;
-    padding: 5px;
+  width: 100px;
+  height: 30px;
+  text-align: center;
+  padding: 5px;
 }
 </style>

+ 26 - 0
src/views/userManagement/groupManagement/messageDialog/uploadBanner.vue

@@ -0,0 +1,26 @@
+<template>
+  <div>
+      <el-dialog title="上传图片">
+          <el-steps direction="vertical" :active="1">
+              <el-step title="1 请选择图片"></el-step>
+              <el-step title="2 图片预览"></el-step>
+          </el-steps>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+    props: {
+
+    },
+    data() {
+        return {}
+    },
+    mounted() {
+    },
+    methods: {
+
+    }
+}
+</script>

+ 23 - 13
src/views/userManagement/groupManagement/tables/corporationOverview.vue

@@ -1,9 +1,5 @@
 <template>
     <div style="height:100%">
-        <el-button class="addCompany" @click="addCompany" style="color: #fff; background: #3da0d6">
-            <span ><i class="el-icon-s-order" style="padding-right: 5px"></i>添加公司</span>
-        </el-button>
-                <corporationAdd ref="corporationAdd"></corporationAdd>
         <p class="info">公司总览</p>
         <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
             :cell-style="{ textAlign: 'center' }" height="400" style="width: 98%" @selection-change="handleSelectionChange">
@@ -36,10 +32,10 @@
 <script>
 import checkbox from '@/components/Checkbox/index';
 import page from '@/components/pagination/index';
-import corporationAdd from '../messageDialog/corporationAdd';
-import {getCompanyList} from "@/api/company/company";
+import {delCompanyInfo, getCompanyList} from "@/api/company/company";
 export default {
-    components: { checkbox, page,corporationAdd },
+    components: { checkbox, page },
+    emits: ['nodeClick'],
     data() {
         return {
             filterText: '',
@@ -106,14 +102,28 @@ export default {
                 }
             })
         },
-        infoDetail() {
-
+        infoDetail(data) {
+            data.type='company'
+            this.$emit('nodeClick', data)
         },
-        infoEdit() {
-
+        infoEdit(data) {
+            data.type='company'
+            this.$emit('nodeClick', data)
         },
-        deleteInfo() {
-
+        deleteInfo(data) {
+            this.$confirm('确定要删除吗?', '提示', {
+                type: 'warning'
+            }).then(()=>{
+                delCompanyInfo(data.id).then(res=>{
+                    let data = res.data;
+                    if (data.code == 0) {
+                        this.getTableData(1)
+                        this.$message.success('删除成功');
+                    } else {
+                        this.$message.error(data.message);
+                    }
+                })
+            })
         },
         batchDelete() {
 

+ 1 - 1
src/views/userManagement/personManagement/tables/userTableData.vue

@@ -10,7 +10,7 @@
             <el-table-column prop="email" label="邮箱"></el-table-column>
             <el-table-column prop="role" label="角色"></el-table-column>
             <el-table-column prop="permission" label="权限"></el-table-column>
-            <el-table-column prop="working_address" label="单位"></el-table-column>
+            <el-table-column prop="company" label="单位"></el-table-column>
             <el-table-column prop="register_time" label="注册时间" width="180"></el-table-column>
             <el-table-column prop="status" label="状态">
                 <template slot-scope="scope">