whx 1 month ago
parent
commit
ce01dfc0d8
31 changed files with 200 additions and 42 deletions
  1. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/index.html
  2. 2 1
      virgo.wzfrontend/src/main/resources/static/workark/reset.css
  3. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/3640.ddc2cd9f.css
  4. 0 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/4323.0e574057.css
  5. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/6033.47dc317f.css
  6. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/6271.3911f2c5.css
  7. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/css/7197.78516da8.css
  8. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/css/7531.a54cc8a0.css
  9. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/css/8299.6e1ae195.css
  10. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/css/8727.3e6c8fd7.css
  11. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/1031.7e1fbb31.js
  12. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.b81abfa9.js
  13. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/7531.8a96a530.js
  14. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/4323.5ee55452.js
  15. 1 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/437.cb5c33d1.js
  16. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/5175.852a58a9.js
  17. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/6033.c5515fea.js
  18. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/6271.e22f4ce3.js
  19. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/7197.b1a35a32.js
  20. 1 0
      virgo.wzfrontend/src/main/resources/static/workark/static/js/7375.e1408e90.js
  21. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/8299.10ad69e4.js
  22. 0 1
      virgo.wzfrontend/src/main/resources/static/workark/static/js/8727.fdc11f66.js
  23. 2 2
      virgo.wzfrontend/src/main/resources/static/workark/static/js/app.ad3f68df.js
  24. 2 1
      virgo.wzfrontend/workark/public/reset.css
  25. 145 0
      virgo.wzfrontend/workark/src/components/work/system/main/role.vue
  26. 1 1
      virgo.wzfrontend/workark/src/layout/components/indexNav.vue
  27. 3 5
      virgo.wzfrontend/workark/src/layout/components/login.vue
  28. 2 2
      virgo.wzfrontend/workark/src/layout/components/topNav.vue
  29. 1 2
      virgo.wzfrontend/workark/src/uitls/chat/customerServe.js
  30. 3 5
      virgo.wzfrontend/workark/src/views/login/login.vue
  31. 26 12
      virgo.wzfrontend/workark/src/views/work/system/main.vue

File diff suppressed because it is too large
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/index.html


+ 2 - 1
virgo.wzfrontend/src/main/resources/static/workark/reset.css

@@ -162,6 +162,7 @@ html,
 #app {
 	width: 100%;
 	height: 100%;
-	margin: 0 auto;
+	margin: 0;
 	position: relative;
+	overflow: hidden;
 }

File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/css/3640.ddc2cd9f.css


virgo.wzfrontend/src/main/resources/static/workark/static/css/5175.0e574057.css → virgo.wzfrontend/src/main/resources/static/workark/static/css/4323.0e574057.css


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/css/6033.47dc317f.css


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/css/6271.3911f2c5.css


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/css/7197.78516da8.css


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/css/7531.a54cc8a0.css


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/css/8299.6e1ae195.css


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/css/8727.3e6c8fd7.css


File diff suppressed because it is too large
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/1031.7e1fbb31.js


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/1522.b81abfa9.js


File diff suppressed because it is too large
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/7531.8a96a530.js


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/4323.5ee55452.js


File diff suppressed because it is too large
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/437.cb5c33d1.js


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/5175.852a58a9.js


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/6033.c5515fea.js


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/6271.e22f4ce3.js


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/7197.b1a35a32.js


File diff suppressed because it is too large
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/workark/static/js/7375.e1408e90.js


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/8299.10ad69e4.js


File diff suppressed because it is too large
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/workark/static/js/8727.fdc11f66.js


File diff suppressed because it is too large
+ 2 - 2
virgo.wzfrontend/src/main/resources/static/workark/static/js/app.ad3f68df.js


+ 2 - 1
virgo.wzfrontend/workark/public/reset.css

@@ -162,6 +162,7 @@ html,
 #app {
 	width: 100%;
 	height: 100%;
-	margin: 0 auto;
+	margin: 0;
 	position: relative;
+	overflow: hidden;
 }

+ 145 - 0
virgo.wzfrontend/workark/src/components/work/system/main/role.vue

@@ -0,0 +1,145 @@
+<template>
+	<div class="hui-flex hui-dialog role-box">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-tree :data="roleData" :props="defaultProps" show-checkbox node-key="id"
+				:default-checked-keys="checkedKeys" ref="tree" :render-after-expand="false">
+				<div :class="classNode(node)? 'tree-node especially' : 'tree-node'" slot-scope="{ node, data }">
+					<div class="tree-node-label">
+						<span>{{ node.label }}</span>
+					</div>
+				</div>
+			</el-tree>
+		</div>
+		<div class="hui-dialog-submit">
+			<el-button size="small" @click="$emit('callback')">取 消</el-button>
+			<el-button size="small" type="primary" @click="updateMenu">保 存</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		updateMenu
+	} from '@/api/system'
+	export default {
+		props: ['menuData', 'type'],
+		data() {
+			return {
+				roleData: [],
+				defaultProps: {
+					label: 'title'
+				},
+				checkedKeys: []
+			}
+		},
+		mounted() {
+			this.roleData = JSON.parse(this.menuData.data);
+			this.$nextTick(() => {
+				this.cssTree();
+			})
+			this.checkedKeys = [];
+			let data = this.type === 2 ? this.menuData.enterpriseData : this.menuData.providerData;
+			this.testCheck(data ? JSON.parse(data) : []);
+		},
+		methods: {
+			classNode(node) {
+				return node.data.isMenu === '2';
+			},
+			cssTree() {
+				let classDomList = document.getElementsByClassName('especially')
+				// 改变这几个样式
+				if (classDomList.length == 0) return;
+				let paddingleft = parseInt(classDomList[0].parentNode.style.paddingLeft);
+				for (let i = 0; i < classDomList.length; i++) {
+					let node = classDomList[i].parentNode.parentNode;
+					node.parentNode.style.paddingLeft = (paddingleft + 24) + 'px';
+					node.parentNode.classList.add('tree-children-list')
+				}
+			},
+			filterArr(opArr, partId) {
+				function circle(opArr) {
+					for (let i = 0; i < opArr.length; i++) {
+						const isAccord = partId.find(r => r === opArr[i].id)
+						if (!isAccord) {
+							opArr.splice(i, 1)
+							i--
+						} else if (opArr[i].children && opArr[i].children.length) {
+							circle(opArr[i].children)
+						}
+					}
+				}
+				circle(opArr)
+				return opArr
+			},
+			testCheck(data) {
+				for (var i = 0; i < data.length; i++) {
+					if (data[i].children && data[i].children.length > 0) {
+						this.testCheck(data[i].children);
+					} else {
+						this.checkedKeys.push(data[i].id);
+					}
+				}
+			},
+			updateMenu() {
+				let roleData = JSON.parse(JSON.stringify(this.roleData))
+				let data = this.$refs.tree.getCheckedNodes(false, true);
+				let partId = data.map(node => node.id);
+				let obj = {}
+				let postData = this.type === 2 ? {
+					enterpriseData: JSON.stringify(this.filterArr(roleData, partId)),
+					enterpriseComment: JSON.stringify(data.filter(item => !!item.index).map(item => item.index))
+				} : {
+					providerData: JSON.stringify(this.filterArr(roleData, partId)),
+					providerComment: JSON.stringify(data.filter(item => !!item.index).map(item => item.index))
+				};
+				postData['id'] = this.menuData.id;
+				updateMenu(postData).then(res => {
+					if (res.state) {
+						this.$emit('callback', 'init');
+						this.$message.success('操作成功')
+					}
+				})
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	.role-box {
+		width: 100%;
+		height: 100%;
+
+		.el-tree {
+			.tree-node {
+				left: 0;
+			}
+
+			.el-tree-node__content>.el-tree-node__expand-icon {
+				padding: 6px;
+			}
+
+			.tree-children-list {
+				.el-tree-node {
+					float: left;
+				}
+
+				.el-tree-node__content {
+					padding: 0 !important;
+				}
+
+				.el-tree-node__expand-icon.el-icon-caret-right {
+					display: none !important;
+				}
+
+				.especially {
+					padding-right: 15px;
+				}
+
+				.el-tree-node__content:hover,
+				.el-tree .el-tree-node:focus>.el-tree-node__content {
+					background: transparent !important;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
virgo.wzfrontend/workark/src/layout/components/indexNav.vue

@@ -61,7 +61,7 @@
 				this.$confirm('是否要退出登录?', () => {
 					removeToken();
 					this.$chats.disConnect();
-					this.$chat.disConnect();
+					if (this.$store.getters.chatTokens) this.$chats.disConnect();
 					this.$store.dispatch('app/resetState');
 					this.$message.success('退出成功');
 					this.init();

+ 3 - 5
virgo.wzfrontend/workark/src/layout/components/login.vue

@@ -182,11 +182,9 @@
 						getUserInfo().then(res => {
 							if (res.state) {
 								let user = res.data;
-								let organization = user.organization;
-								if (!organization) {
-									organziation = user.organizationList[0];
-									selectOrangaized(organization)
-								}
+								let organization = user.organizationList.find(node => node.contactTel ===
+									user.phone);
+								if (!organization) organization = user.organizationList[0];
 								this.$store.dispatch('app/changeOrganization', organization);
 								this.$store.dispatch('app/changeUser', user);
 								this.$store.dispatch('app/changeMenuData', user.workarkResource ? JSON

+ 2 - 2
virgo.wzfrontend/workark/src/layout/components/topNav.vue

@@ -121,8 +121,8 @@
 			logout() {
 				this.$confirm('是否要退出登录?', () => {
 					removeToken();
-					this.$chat.disConnect();
-					this.$chats.disConnect();
+					this.$chat.disConnect();
+					if (this.$store.getters.chatTokens) this.$chats.disConnect();
 					this.$store.dispatch('app/resetState');
 					this.$router.replace('/loginRegister/login');
 					this.$message.success('退出成功');

+ 1 - 2
virgo.wzfrontend/workark/src/uitls/chat/customerServe.js

@@ -58,14 +58,13 @@ const $chat = {
 			 *	1 关键性日志,日志量较少,生产环境时建议使用 
 			 *	2 无日志级别,SDK 将不打印任何日志
 			 */
-			logLevel: 1, // 日志等级, 
+			logLevel: 0, // 日志等级, 
 			reConnectInterval: 3000, // 重连时间间隔
 			reConnectTotal: 99, // 最大重连次数,0不限制一直重连 
 			heartInterval: 35000, //心跳时间间隔(默认30s) 
 		});
 	},
 	connect() {
-		console.log(store.getters.chatTokens);
 		if (!store.getters.chatTokens) {
 			logins()
 		} else {

+ 3 - 5
virgo.wzfrontend/workark/src/views/login/login.vue

@@ -185,11 +185,9 @@
 						getUserInfo().then(res => {
 							if (res.state) {
 								let user = res.data;
-								let organization = user.organization;
-								if (!organization) {
-									organziation = user.organizationList[0];
-									selectOrangaized(organization)
-								}
+								let organization = user.organizationList.find(node => node.contactTel ===
+									user.phone);
+								if (!organization) organization = user.organizationList[0];
 								this.$store.dispatch('app/changeOrganization', organization);
 								this.$store.dispatch('app/changeUser', user);
 								this.$store.dispatch('app/changeMenuData', user.workarkResource ? JSON

+ 26 - 12
virgo.wzfrontend/workark/src/views/work/system/main.vue

@@ -1,19 +1,21 @@
 <template>
-	<div class="hui-flex hui-content border-box">
-		<div class="hui-content-title">
-			<div class="hui-title-item active">菜单设置</div>
+	<div class="hui-flex hui-content border-box">
+		<div class="hui-content-title">
+			<div class="hui-title-item active">菜单设置</div>
 		</div>
 		<div class="hui-flex-box hui-flex hui-table">
 			<div class="hui-content-insert">
 				<el-button type="primary" size="small" @click="insert(-1)">新增主菜单</el-button>
+				<el-button size="small" @click="setRole(2)">企业权限</el-button>
+				<el-button size="small" @click="setRole(3)">服务商权限</el-button>
 			</div>
 			<div class="hui-flex-box">
 				<el-table ref="elTable" :data="tableData" row-key="id" height="100%" v-loading="loading">
 					<el-table-column prop="title" label="菜单名称" width="180">
 					</el-table-column>
 					<el-table-column prop="iconClass" label="菜单图标" width="180">
-					</el-table-column>
-					<el-table-column prop="params" label="参数" width="180">
+					</el-table-column>
+					<el-table-column prop="params" label="参数" width="180">
 					</el-table-column>
 					<el-table-column prop="index" label="菜单URL">
 					</el-table-column>
@@ -38,11 +40,13 @@
 				</el-table>
 			</div>
 		</div>
-		<el-dialog :close-on-click-modal="false" title="菜单" :visible.sync="dialogVisible" width="900px"
-			:append-to-body="true">
-			<edit v-if="dialogVisible" :updateData="updateData" ref="mainForm" @callback="dialogVisible = false"
-				@sure="sure">
+		<el-dialog :close-on-click-modal="false" :title="logType === 1 ? '菜单':'设置权限'" :visible.sync="dialogVisible"
+			width="900px" :append-to-body="true">
+			<edit v-if="dialogVisible && logType === 1" :updateData="updateData" ref="mainForm"
+				@callback="dialogVisible = false" @sure="sure">
 			</edit>
+			<role v-if="dialogVisible && (logType === 2 || logType === 3)" @callback="dialogVisible = false"
+				:type="logType" :menuData="menuData"></role>
 		</el-dialog>
 	</div>
 </template>
@@ -53,7 +57,8 @@
 		insertMenu,
 		updateMenu
 	} from '@/api/system'
-	const edit = () => import('@/components/work/system/main/edit')
+	const edit = () => import('@/components/work/system/main/edit');
+	const role = () => import('@/components/work/system/main/role')
 	import {
 		setComment
 	} from '@/uitls/auth';
@@ -69,7 +74,8 @@
 				updateData: {},
 				menuData: {},
 				type: '',
-				loading: false
+				loading: false,
+				logType: 1
 			}
 		},
 		mounted() {
@@ -203,19 +209,26 @@
 					if (item[i].children) this.testComment(item[i].children, id, form);
 				}
 			},
+			setRole(type) {
+				this.logType = type;
+				this.dialogVisible = true;
+			},
 			insert(id) {
+				this.logType = 1;
 				this.type = 'insert';
 				this.nowDataId = id;
 				this.updateData = {};
 				this.dialogVisible = true;
 			},
 			update(item) {
+				this.logType = 1;
 				this.type = 'update';
 				this.nowDataId = item.id;
 				this.updateData = JSON.parse(JSON.stringify(item));
 				this.dialogVisible = true;
 			},
 			deleteItem(id) {
+				this.logType = 1;
 				this.type = 'delete';
 				this.nowDataId = id;
 				this.updateData = {};
@@ -270,7 +283,8 @@
 			}
 		},
 		components: {
-			edit
+			edit,
+			role
 		},
 	}
 </script>