Shannon_mu 3 år sedan
förälder
incheckning
13438f01c8

+ 748 - 761
operationSupport/src/assets/common.styl

@@ -1,768 +1,755 @@
-@import './sc-variables.styl'
-@import './fun.styl'
-
-// *
-// 	box-sizing: border-box
+// @import './sc-variables.styl'
+// @import './fun.styl'
+
+// // *
+// // 	box-sizing: border-box
+// // 	&:focus
+// // 		outline: none
+// body
+// 	margin: 0
+// 	padding: 0
+// 	font-family: "PingFang SC","Microsoft YaHei","微软雅黑","Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial,sans-serif;
+// 	overflow-y: hidden
+// 	font-size: vw(16)
+// body,html,#app
+// 	-webkit-text-size-adjust: none
+// 	width: 100%
+// 	height: 100%
+// 	min-width 1360px
+// #app
+// 	-webkit-font-smoothing: antialiased
+// 	-moz-osx-font-smoothing: grayscale
+// 	color: #2c3e50
+// 	background-color: #d8dfe6
+// 	position: relative
+// p
+// 	margin: 0
+// a
+// 	cursor: pointer
+// ul,h1,h2,h3,h4,h5,h6
+// 	padding: 0
+// 	margin: 0
+// ul
+// 	list-style: none
+// .no-scrollbar::-webkit-scrollbar
+// 	display none
+// .ellipsis
+// 	text-overflow: ellipsis
+// 	overflow: hidden
+// 	white-space: nowrap
+// // 公共样式-end
+// .clearfix:after
+// 	visibility: hidden
+// 	display: block
+// 	font-size: 0
+// 	content: " "
+// 	clear: both
+// 	height: 0
+// .el-input__inner,
+// .el-select,
+// .el-cascader-menu__item,
+// .el-dropdown-menu__item,
+// .el-range-input::-webkit-input-placeholder,
+// .el-radio-group .el-radio-button__inner,
+// .el-button,
+// .el-form-item__content,
+// .el-cascader,
+// .el-select-dropdown__item,
+// .el-range-separator,
+// .el-pagination button, .el-pagination span:not([class*=suffix]),
+// .el-pagination__sizes .el-input .el-input__inner,
+// .el-form-item__label,
+// .el-autocomplete-suggestion li,
+// .el-checkbox__label,
+// .el-date-editor .el-range-input,
+// .el-date-editor .el-range-separator
+// 	font-size: vw(12)
+// .el-form-item__error
+// 	font-size: vw(12)
+// .el-range-editor.el-input__inner,
+// .el-input,
+// .el-input__inner,
+// .el-radio-group .el-radio-button__inner,
+// .el-button,
+// .el-input--mini .el-input__inner,
+// .el-pagination__editor.el-input .el-input__inner,
+// .el-transfer-panel__filter .el-input__inner
+// 	height: vw(30)
+// 	line-height: vw(30)
+// .el-autocomplete-suggestion li
+// 	font-weight: 400
+// 	line-height: vw(34)
+// 	color: #6D7081
+// 	padding: 0 vw(20)
+// .el-range-editor.el-input__inner
+// 	vertical-align: middle
+// 	border-radius: vw(2)
+// 	.el-range__icon, .el-range-separator, .el-range__close-icon
+// 		line-height: vw(24)
+// 	.el-range-separator
+// 		width: 6%
+// .el-select,.el-input,.el-button
+// 	vertical-align: middle
+// input::-webkit-outer-spin-button,input::-webkit-inner-spin-button
+// 	-webkit-appearance: none;
+// 	margin: 0;
+// input[type="number"]
+// 	-moz-appearance: textfield;
+// .el-input
+// 	.el-input__inner
+// 		vertical-align: top
+// 		border-radius: vw(2)
+// 	.el-input__icon,
+// 	.el-input__suffix
+// 		line-height: vw(32) !important
+// .el-radio-group .el-radio-button__inner,
+// .el-button
+// 	padding: vw(9) vw(15)
+// .el-button [class*=el-icon-]+span
+// 	margin-left 0
+// .el-radio-group .el-radio-button__inner,
+// .el-button,
+// .el-form-item__content,
+// .el-cascader
+// 	padding-top: 0
+// 	padding-bottom: 0
+// 	line-height: vw(32)
+// .form-no-label .el-form-item__content
+// 	margin-left 0 !important
+// .el-form-item
+// 	margin-bottom: vw(30)
+// .el-radio-button:last-child .el-radio-button__inner
+// 	border-radius: 0 vw(2) vw(2) 0
+// .el-radio-button:first-child .el-radio-button__inner
+// 	border-radius: vw(2) 0 0 vw(2)
+// .el-radio-button__orig-radio:checked+.el-radio-button__inner
+// 	background-color: $sc-color-primary
+// 	border-color: $sc-color-primary
+// .el-button--primary
+// 	el-button($sc-color-primary)
 // 	&:focus
-// 		outline: none
-body
-	margin: 0
-	padding: 0
-	font-family: "PingFang SC","Microsoft YaHei","微软雅黑","Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial,sans-serif;
-	overflow-y: hidden
-	font-size: vw(16)
-body,html,#app
-	-webkit-text-size-adjust: none
-	width: 100%
-	height: 100%
-	min-width 1360px
-#app
-	-webkit-font-smoothing: antialiased
-	-moz-osx-font-smoothing: grayscale
-	color: #2c3e50
-	background-color: #d8dfe6
-	position: relative
-p
-	margin: 0
-a
-	cursor: pointer
-ul,h1,h2,h3,h4,h5,h6
-	padding: 0
-	margin: 0
-ul
-	list-style: none
-.no-scrollbar::-webkit-scrollbar
-	display none
-.ellipsis
-	text-overflow: ellipsis
-	overflow: hidden
-	white-space: nowrap
-// 公共样式-end
-.clearfix:after
-	visibility: hidden
-	display: block
-	font-size: 0
-	content: " "
-	clear: both
-	height: 0
-.el-input__inner,
-.el-select,
-.el-cascader-menu__item,
-.el-dropdown-menu__item,
-.el-range-input::-webkit-input-placeholder,
-.el-radio-group .el-radio-button__inner,
-.el-button,
-.el-form-item__content,
-.el-cascader,
-.el-select-dropdown__item,
-.el-range-separator,
-.el-pagination button, .el-pagination span:not([class*=suffix]),
-.el-pagination__sizes .el-input .el-input__inner,
-.el-form-item__label,
-.el-autocomplete-suggestion li,
-.el-checkbox__label,
-.el-date-editor .el-range-input,
-.el-date-editor .el-range-separator
-	font-size: vw(12)
-.el-form-item__error
-	font-size: vw(12)
-.el-range-editor.el-input__inner,
-.el-input,
-.el-input__inner,
-.el-radio-group .el-radio-button__inner,
-.el-button,
-.el-input--mini .el-input__inner,
-.el-pagination__editor.el-input .el-input__inner,
-.el-transfer-panel__filter .el-input__inner
-	height: vw(30)
-	line-height: vw(30)
-.el-autocomplete-suggestion li
-	font-weight: 400
-	line-height: vw(34)
-	color: #6D7081
-	padding: 0 vw(20)
-.el-range-editor.el-input__inner
-	vertical-align: middle
-	border-radius: vw(2)
-	.el-range__icon, .el-range-separator, .el-range__close-icon
-		line-height: vw(24)
-	.el-range-separator
-		width: 6%
-.el-select,.el-input,.el-button
-	vertical-align: middle
-input::-webkit-outer-spin-button,input::-webkit-inner-spin-button
-	-webkit-appearance: none;
-	margin: 0;
-input[type="number"]
-	-moz-appearance: textfield;
-.el-input
-	.el-input__inner
-		vertical-align: top
-		border-radius: vw(2)
-	.el-input__icon,
-	.el-input__suffix
-		line-height: vw(32) !important
-.el-radio-group .el-radio-button__inner,
-.el-button
-	padding: vw(9) vw(15)
-.el-button [class*=el-icon-]+span
-	margin-left 0
-.el-radio-group .el-radio-button__inner,
-.el-button,
-.el-form-item__content,
-.el-cascader
-	padding-top: 0
-	padding-bottom: 0
-	line-height: vw(32)
-.form-no-label .el-form-item__content
-	margin-left 0 !important
-.el-form-item
-	margin-bottom: vw(30)
-.el-radio-button:last-child .el-radio-button__inner
-	border-radius: 0 vw(2) vw(2) 0
-.el-radio-button:first-child .el-radio-button__inner
-	border-radius: vw(2) 0 0 vw(2)
-.el-radio-button__orig-radio:checked+.el-radio-button__inner
-	background-color: $sc-color-primary
-	border-color: $sc-color-primary
-.el-button--primary
-	el-button($sc-color-primary)
-	&:focus
-		background-color: $sc-color-primary;
-		border-color: $sc-color-primary;
-.el-table--striped .el-table__body tr.el-table__row--striped td
-	background: #f0f1f4
-.el-button
-	border-radius: vw(2)
-.el-button+.el-button
-	// margin-left: 0
-.el-table .cell, .el-table th div
-	padding-right: vw(10)
-.el-table .cell,
-.el-table th div,
-.el-table--border td:first-child .cell,
-.el-table--border th:first-child .cell
-	padding-left: 0!important
-.zz-table .el-table .el-table__body-wrapper, .zz-table .el-table .el-button
-	margin: 0 2px
-
-.el-container
-	width: 100%
-	height: 100%
-	.el-main
-		margin: 0
-		padding: 0
-		position: relative
-	.el-header
-		margin: 0
-		padding: 0
-	.el-aside
-		margin: 0
-		padding: 0
-.v-modal
-	z-index: 1998 !important
-// 搜索栏间隔
-.search
-	.search-btn,
-	.search-input
-		margin-right: vw(20)
-	.search-label
-		margin-right: vw(10)
-		color: #3B4045
-		font-size: vw(14)
-		vertical-align: middle
-		display: inline-block
-	.search-input
-		width: vw(200)
-	.el-date-editor
-		width: vw(400)
-	.el-range-separator
-		padding: 0
-	&:after
-		visibility: hidden
-		display: block
-		font-size: 0
-		content: " "
-		clear: both
-		height: 0
-// 按钮内图标据文字
-.el-button
-	[class^='el-icon-']
-		margin-right: vw(5)
-	.el-icon-arrow-down
-	.el-icon-arrow-up
-		margin-right: 0
-.el-button.more-search
-	border-color: #2787F1;
-.el-form-item__label
-	padding: 0 vw(10) 0 0
-.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled)
-	box-shadow: none
-// Firefox required input textarea 粉红色边框去除方案,貌似没有效果
-input:required:invalid,
-input:focus:invalid,
-textarea:required:invalid,
-textarea:focus:invalid,
-:not(output):-moz-ui-invalid
-	box-shadow: none !important
-	-moz-box-shadow:none !important
-.el-date-editor .el-range-input
-	vertical-align: top
-.el-message .el-message__content
-	display: inline-block
-.el-message-box
-	.el-message-box__title
-		font-size: vw(16)
-		color: #3e3e3e
-	.el-message-box__content
-		color: #3e3e3e
-		font-size: vw(14)
-	.el-message-box__header
-		border-bottom: 1px solid #EAEDF3
-.device
-	height: 100%
-	.wrap
-		background-color #FFF
-		border-radius vw(5)
-		padding-top vw(20)
-
-		top vw(15)
-		left vw(15)
-		bottom vw(15)
-		right vw(15)
-		overflow auto
-
-// tab切换按钮字体设置为16px
-.zz-tab-button
-	.el-radio-button__inner
-		font-size vw(16)
-.el-textarea__inner
-	font: inherit
-	font-size: vw(14)
-
-.alert
-	background-color: rgba(0,0,0,.6)
-	position: fixed
-	top: 0
-	left: 0
-	width: 100%
-	height: 100%
-	z-index: 1999
-	color: #3E3E3E
-	.alert-body
-		position: absolute
-		top: 50%
-		left: 50%
-		background-color: #fff
-		border-radius: vw(8)
-		max-height: 100%
-		.el-select,.el-cascader
-			width: 100%
-		&.flow-form
-			width: 520px;
-			height: 370px;
-			margin-top: -185px;
-			margin-left: -260px
-	.alert-body__title
-		height: vw(54)
-		line-height: vw(54)
-		border-radius: vw(8) vw(8) 0 0
-		padding-left: 25px
-		border-bottom: 1px solid #EAEDF3
-		font-size: vw(16)
-		.close
-			width: vw(20)
-			height: vw(20)
-			float: right
-			text-align: right
-			cursor: pointer
-			margin-right: vw(20)
-			line-height: 1
-			margin-top: vw(17)
-	.alert-body__main
-		padding: vw(20) vw(20) 0 vw(20)
-		position: absolute
-		top: vw(54)
-		left: 0
-		right: 0
-		bottom: 0
-		overflow: hidden
-		.el-form-item
-			height: vw(32)
-			line-height: vw(32)
-		.el-form-item__label
-			font-size: vw(14)
-			height: vw(32)
-			line-height: vw(32)
-		.el-checkbox-group .el-checkbox
-			width: 33.33%
-			margin: 0 0 10px 0 !important
-			.el-checkbox__label
-				text-overflow: ellipsis;
-				width: 80%;
-				overflow: hidden;
-				white-space: nowrap;
-				vertical-align: middle;
-		// 弹出层内容区域,
-		.alert-body__main_content
-			position: absolute
-			top: 0
-			left: 0
-			width: 100%
-			bottom: vw(65)
-			overflow: auto
-			padding: vw(20) vw(20) 0 vw(20)
-		// 弹出层按钮区域
-		.alert-body__main_btns
-			border-top: 1px solid #EAEDF3
-			position: absolute
-			bottom: 0
-			height: vw(65)
-			right: 0
-			left: 0
-			padding: vw(10) vw(20)
-			text-align: right
-			background: #fff
-			border-radius: 0 0 vw(8) vw(8)
-			z-index: 1
-		.alert-item
-			width: 100%
-			float: left
-			font-size: 0
-			&.half
-				width: 50%
-				span
-					width: 40%
-				p
-					width: 60%
-			span, p
-				display: inline-block
-				font-size: vw(14)
-			p
-				width: 80%
-			span
-				width: 20%
-				text-align: right
-			span.el-radio__inner
-				width: 14px
-		.hide
-			display: none
-
-	/* 信息弹窗 删除弹窗 */
-	.message-box {
-		width:374px;
-		background:rgba(255,255,255,1);
-		border-radius:6px;
-		position absolute
-		top 50%;
-		left 50%
-		transform: translate(-50%, -50%);
-		padding 15px 24px 20px 24px
-		font-size 16px
-		animation alertdown .2s forwards
-		.row-1{
-			color #424656
-			margin-bottom 10px
-			padding-left 24px
-			font-size: 14px;
-			display: flex;
-			align-items: center;
-			word-break: break-all;
-			position relative;
-			.dmp-icon-btn {
-				color #FF7171
-				font-size 14px
-				width: 14px;
-				height 14px;
-				background-size: 14px;
-				margin-right 10px
-				position absolute
-				left 0
-				top 17px
-			}
-			.dmp-icon-btn.icon-error {
-				background-image url('/static/imgs/icon-error.png')
-			}
-			.dmp-icon-btn.icon-warning {
-				background-image url('/static/imgs/icon-warning.png')
-			}
-			.dmp-icon-btn.icon-success {
-				background-image url('/static/imgs/icon-success.png')
-			}
-			.title {
-				width: 273px
-				line-height: 18px;
-				margin-top 15px
-			}
-			.close {
-				position: absolute;
-				top: 0;
-				right 0;
-				display: inline-block;
-				height 10px;
-				width: 10px;
-				cursor pointer;
-				background: url('/static/imgs/icon-close-off.png') no-repeat center
-				background-size: 10px 10px;
-				&:hover {
-					background-image: url('/static/imgs/icon-close-on.png')
-				}
-			}
-		}
-		.row-2 {
-			margin-left 25px
-			font-size: 12px;
-			color: #FF7171;
-			margin-bottom 30px
-			word-break: break-all;
-			width 273px
-			&.warning {
-				color: #F7B500;
-			}
-			&.success {
-				color: #424656;
-			}
-		}
-		.row-3 {
-			display: flex;
-			justify-content: flex-end;
-			.el-button {
-				font-size: 12px !important;
-				height 26px;
-				line-height: 26px;
-				min-width 60px;
-				margin-left: 15px;
-			}
-		}
-		&.up {
-			animation alertup .2s forwards
-		}
-	}
-
-
-// 加载中动画
-.loading
-	width: 60px
-	height: 60px
-	position: relative
-	margin: 100px auto
-	.bounce1, .bounce2
-		width: 100%
-		height: 100%
-		border-radius: 50%
-		background-color: #67CF22
-		opacity: 0.6
-		position: absolute
-		top: 0
-		left: 0
-		animation: bounce 2.0s infinite ease-in-out
-	.bounce2
-		-webkit-animation-delay: -1.0s
-		animation-delay: -1.0s
-	@keyframes bounce {
-		0%, 100% {
-		transform: scale(0.0)
-		}
-		50% {
-			transform: scale(1.0)
-		}
-	}
-.el-tooltip__popper
-	max-width 400px
-	line-height 180%
-
-
-.el-image
-	.el-image-viewer__close
-		color: #fff
-
-@keyframes warn {
-	0% {
-		transform: scale(0.3);
-		-webkit-transform: scale(0.3);
-		opacity: 0.0;
-	}
-
-	25% {
-		transform: scale(0.3);
-		-webkit-transform: scale(0.3);
-		opacity: 0.1;
-	}
-
-	50% {
-		transform: scale(0.5);
-		-webkit-transform: scale(0.5);
-		opacity: 0.3;
-	}
-
-	75% {
-		transform: scale(0.8);
-		-webkit-transform: scale(0.8);
-		opacity: 0.5;
-	}
-
-	100% {
-		transform: scale(1);
-		-webkit-transform: scale(1);
-		opacity: 0.0;
-	}
-}
-
-@keyframes warn1 {
-	0% {
-		transform: scale(0.3);
-		-webkit-transform: scale(0.3);
-		opacity: 0.0;
-	}
-
-	25% {
-		transform: scale(0.3);
-		-webkit-transform: scale(0.3);
-		opacity: 0.1;
-	}
-
-	50% {
-		transform: scale(0.3);
-		-webkit-transform: scale(0.3);
-		opacity: 0.3;
-	}
-
-	75% {
-		transform: scale(0.5);
-		-webkit-transform: scale(0.5);
-		opacity: 0.5;
-	}
-
-	100% {
-		transform: scale(0.8);
-		-webkit-transform: scale(0.8);
-		opacity: 0.0;
-	}
-}
-
-@keyframes ani {
-	0%, 100% {
-		transform: scale(.5)
-	}
-	50% {
-		transform: scale(1)
-	}
-}
-.sys-pop-program
-#member-type-add
-	.orderby
-		.el-input
-			height auto !important
-		.el-tag
-			display: inline-block;
-			max-width: 90%;
-			text-overflow: ellipsis;
-			overflow: hidden;
-			white-space: nowrap;
-.add-user-propram-select,.sys-popups-add-site,.settlement-plan-add
-	.el-input
-		height auto !important
-	.el-tag
-	.el-select__tags-text
-		max-width: 93%
-		float: left
-		text-overflow: ellipsis
-		overflow: hidden
-		white-space: nowrap
-
-/* 设备关联人员表格样式 */
-.device-pop-union
-	.el-table
-		td
-		th
-			padding vw(6) 0 !important
-
-/* 场景下建筑树形样式 */
-.has-area-tree
-	background-color: #fff;
-	border-radius: vw(5);
-	border: 1px solid #EAEDF3;
-	position: absolute;
-	top: vw(15);
-	left: vw(15);
-	bottom: vw(15);
-	right: vw(15);
-	overflow: auto;
-	margin-right: vw(300);
-.channel-builds-tree, .area-tree
-	padding: vw(20)
-	width: vw(285)
-	position: absolute
-	top: vw(15)
-	right: vw(15)
-	bottom: vw(15)
-	border:1px solid rgba(234, 237, 243, 1)
-	box-shadow:0px 1px 3px 0px rgba(0, 0, 0, 0.04)
-	border-radius:vw(5)
-	background: #fff
-	overflow: auto
-	.el-tree-node__label,.el-link
-		font-size: vw(12) !important
-.el-tree::-webkit-scrollbar
-	display none
-
-/* 站点管理操作按钮icon */
-.site-opt-icon-btn .el-button i
-	font-size: vw(20)
-	margin: 0 0 0 vw(15)
-
-.el-cascader-menu::-webkit-scrollbar
-	display none
-
-
-/* 清除下拉菜单上传按钮样式 */
-.dropdown-menu-clear-btn .el-button--primary {
-	background: transparent;
-	border-color: transparent
-	color: #606266
-	padding 0
-	i {
-		display: none
-	}
-}
-
-/* el-select下拉选择器底部操作按钮 */
-.el-select-bottom-opt
-	padding: 0 20px;
-	display: flex;
-	align-items center
-	justify-content: center;
-	span
-		font-size 12px;
-
-/* 年的日期组件定制样式 */
-.el-date-picker-year
-	.el-date-picker__header-label
-		&:hover
-			color: #606266
-	.el-picker-panel__content
-		a.cell
-			font-size: 14px;
-
-/* .el-select下拉选择面板样式暗黑色定制 */
-.el-select-dropdown-dark
-	background:rgba(46,49,51,1);
-	box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.5);
-	border-radius: 3px;
-	border: none
-	.popper__arrow
-		display: none
-	.el-select-dropdown__item
-		font-size: 14px;
-		&.hover
-		&:hover
-			background: none
-			color: #42CCCC
-
-/* 隐藏日历组件今天样式 */
-.hide-today-style
-	td.today .cell
-		color: inherit;
-		font-weight: inherit;
-
-/* echart图表线图tooltip自定义样式 */
-.dmp-echart-tooltip
-	h4
-		font-size:12px;
-		color:rgba(255,255,255,1);
-		line-height:18px;
-	p
-		line-height:18px;
-		font-size: 12px;
-		display: flex;
-		align-items: center;
-		.marker
-			display: inline-block;
-			margin-right: 6px;
-			width: 12px;
-			height: 8px;
-			border-radius: 4px;
-
-
-.el-button--mini, .el-button--small{
-	font-size:12px
-}
-.el-select-dropdown__item.selected,
-.el-month-table td.current:not(.disabled) .cell,
-.el-pager li:hover
-{
-	color:$sc-color-primary;
-}
-.el-select .el-input.is-focus .el-input__inner,
-.el-input__inner:focus,
-.el-switch.is-checked .el-switch__core,
-.el-range-editor.is-active:hover
-{
-	border-color:$sc-color-primary;
-}
-.el-button.is-plain:hover, .el-button.is-plain:focus{
-	border-color: $sc-color-primary;
-  color: $sc-color-primary;
-}
-.el-switch.is-checked .el-switch__core,
-.el-date-table td.start-date span, .el-date-table td.end-date span
-{
-	background-color:$sc-color-primary;
-}
-
-/* 左右布局*/
-.tabsTitle {
-	.tabs-title{
-		display: flex;
-		margin-bottom: vw(20);
-		background: #ffffff;
-		}
-  .tabs {
-    font-size: vw(14);
-    width: 100%;
-
-    padding: vw(20);
-    box-sizing: border-box;
-    display: flex;
-    .tabItem {
-      cursor: pointer;
-      color: #a6abb6;
-    }
-
-    .active {
-      color: #2787f1;
-    }
-
-    .border {
-      width: vw(1);
-      height: vw(10);
-      background: #a6abb6;
-      margin: vw(6) vw(20);
-    }
-  }
-	.tabs-right{
-		 padding: vw(20);
-		  height: vw(60);
-			 box-sizing: border-box;
-		}
-}
+// 		background-color: $sc-color-primary;
+// 		border-color: $sc-color-primary;
+// .el-table--striped .el-table__body tr.el-table__row--striped td
+// 	background: #f0f1f4
+// .el-button
+// 	border-radius: vw(2)
+// .el-button+.el-button
+// 	// margin-left: 0
+// .el-table .cell, .el-table th div
+// 	padding-right: vw(10)
+// .el-table .cell,
+// .el-table th div,
+// .el-table--border td:first-child .cell,
+// .el-table--border th:first-child .cell
+
+// .zz-table .el-table .el-table__body-wrapper, .zz-table .el-table .el-button
+// 	margin: 0 2px
+
+// .el-container
+// 	width: 100%
+// 	height: 100%
+// 	.el-main
+// 		margin: 0
+// 		padding: 0
+// 		position: relative
+// 	.el-header
+// 		margin: 0
+// 		padding: 0
+// 	.el-aside
+// 		margin: 0
+// 		padding: 0
+// .v-modal
+// 	z-index: 1998 !important
+// // 搜索栏间隔
+// .search
+// 	.search-btn,
+// 	.search-input
+// 		margin-right: vw(20)
+// 	.search-label
+// 		margin-right: vw(10)
+// 		color: #3B4045
+// 		font-size: vw(14)
+// 		vertical-align: middle
+// 		display: inline-block
+// 	.search-input
+// 		width: vw(200)
+// 	.el-date-editor
+// 		width: vw(400)
+// 	.el-range-separator
+// 		padding: 0
+// 	&:after
+// 		visibility: hidden
+// 		display: block
+// 		font-size: 0
+// 		content: " "
+// 		clear: both
+// 		height: 0
+// // 按钮内图标据文字
+// .el-button
+// 	[class^='el-icon-']
+// 		margin-right: vw(5)
+// 	.el-icon-arrow-down
+// 	.el-icon-arrow-up
+// 		margin-right: 0
+// .el-button.more-search
+// 	border-color: #2787F1;
+// .el-form-item__label
+// 	padding: 0 vw(10) 0 0
+// .el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled)
+// 	box-shadow: none
+// // Firefox required input textarea 粉红色边框去除方案,貌似没有效果
+// input:required:invalid,
+// input:focus:invalid,
+// textarea:required:invalid,
+// textarea:focus:invalid,
+// :not(output):-moz-ui-invalid
+// 	box-shadow: none !important
+// 	-moz-box-shadow:none !important
+// .el-date-editor .el-range-input
+// 	vertical-align: top
+// .el-message .el-message__content
+// 	display: inline-block
+// .el-message-box
+// 	.el-message-box__title
+// 		font-size: vw(16)
+// 		color: #3e3e3e
+// 	.el-message-box__content
+// 		color: #3e3e3e
+// 		font-size: vw(14)
+// 	.el-message-box__header
+// 		border-bottom: 1px solid #EAEDF3
+// .device
+// 	height: 100%
+// 	.wrap
+// 		background-color #FFF
+// 		border-radius vw(5)
+// 		padding-top vw(20)
+
+// 		top vw(15)
+// 		left vw(15)
+// 		bottom vw(15)
+// 		right vw(15)
+// 		overflow auto
+
+// // tab切换按钮字体设置为16px
+// .zz-tab-button
+// 	.el-radio-button__inner
+// 		font-size vw(16)
+// .el-textarea__inner
+// 	font: inherit
+// 	font-size: vw(14)
+
+// .alert
+// 	background-color: rgba(0,0,0,.6)
+// 	position: fixed
+// 	top: 0
+// 	left: 0
+// 	width: 100%
+// 	height: 100%
+// 	z-index: 1999
+// 	color: #3E3E3E
+// 	.alert-body
+// 		position: absolute
+// 		top: 50%
+// 		left: 50%
+// 		background-color: #fff
+// 		border-radius: vw(8)
+// 		max-height: 100%
+// 		.el-select,.el-cascader
+// 			width: 100%
+// 		&.flow-form
+// 			width: 520px;
+// 			height: 370px;
+// 			margin-top: -185px;
+// 			margin-left: -260px
+// 	.alert-body__title
+// 		height: vw(54)
+// 		line-height: vw(54)
+// 		border-radius: vw(8) vw(8) 0 0
+// 		padding-left: 25px
+// 		border-bottom: 1px solid #EAEDF3
+// 		font-size: vw(16)
+// 		.close
+// 			width: vw(20)
+// 			height: vw(20)
+// 			float: right
+// 			text-align: right
+// 			cursor: pointer
+// 			margin-right: vw(20)
+// 			line-height: 1
+// 			margin-top: vw(17)
+// 	.alert-body__main
+// 		padding: vw(20) vw(20) 0 vw(20)
+// 		position: absolute
+// 		top: vw(54)
+// 		left: 0
+// 		right: 0
+// 		bottom: 0
+// 		overflow: hidden
+// 		.el-form-item
+// 			height: vw(32)
+// 			line-height: vw(32)
+// 		.el-form-item__label
+// 			font-size: vw(14)
+// 			height: vw(32)
+// 			line-height: vw(32)
+// 		.el-checkbox-group .el-checkbox
+// 			width: 33.33%
+// 			margin: 0 0 10px 0 !important
+// 			.el-checkbox__label
+// 				text-overflow: ellipsis;
+// 				width: 80%;
+// 				overflow: hidden;
+// 				white-space: nowrap;
+// 				vertical-align: middle;
+// 		// 弹出层内容区域,
+// 		.alert-body__main_content
+// 			position: absolute
+// 			top: 0
+// 			left: 0
+// 			width: 100%
+// 			bottom: vw(65)
+// 			overflow: auto
+// 			padding: vw(20) vw(20) 0 vw(20)
+// 		// 弹出层按钮区域
+// 		.alert-body__main_btns
+// 			border-top: 1px solid #EAEDF3
+// 			position: absolute
+// 			bottom: 0
+// 			height: vw(65)
+// 			right: 0
+// 			left: 0
+// 			padding: vw(10) vw(20)
+// 			text-align: right
+// 			background: #fff
+// 			border-radius: 0 0 vw(8) vw(8)
+// 			z-index: 1
+// 		.alert-item
+// 			width: 100%
+// 			float: left
+// 			font-size: 0
+// 			&.half
+// 				width: 50%
+// 				span
+// 					width: 40%
+// 				p
+// 					width: 60%
+// 			span, p
+// 				display: inline-block
+// 				font-size: vw(14)
+// 			p
+// 				width: 80%
+// 			span
+// 				width: 20%
+// 				text-align: right
+// 			span.el-radio__inner
+// 				width: 14px
+// 		.hide
+// 			display: none
+
+// 	/* 信息弹窗 删除弹窗 */
+// 	.message-box {
+// 		width:374px;
+// 		background:rgba(255,255,255,1);
+// 		border-radius:6px;
+// 		position absolute
+// 		top 50%;
+// 		left 50%
+// 		transform: translate(-50%, -50%);
+// 		padding 15px 24px 20px 24px
+// 		font-size 16px
+// 		animation alertdown .2s forwards
+// 		.row-1{
+// 			color #424656
+// 			margin-bottom 10px
+// 			padding-left 24px
+// 			font-size: 14px;
+// 			display: flex;
+// 			align-items: center;
+// 			word-break: break-all;
+// 			position relative;
+// 			.dmp-icon-btn {
+// 				color #FF7171
+// 				font-size 14px
+// 				width: 14px;
+// 				height 14px;
+// 				background-size: 14px;
+// 				margin-right 10px
+// 				position absolute
+// 				left 0
+// 				top 17px
+// 			}
+// 			.dmp-icon-btn.icon-error {
+// 				background-image url('/static/imgs/icon-error.png')
+// 			}
+// 			.dmp-icon-btn.icon-warning {
+// 				background-image url('/static/imgs/icon-warning.png')
+// 			}
+// 			.dmp-icon-btn.icon-success {
+// 				background-image url('/static/imgs/icon-success.png')
+// 			}
+// 			.title {
+// 				width: 273px
+// 				line-height: 18px;
+// 				margin-top 15px
+// 			}
+// 			.close {
+// 				position: absolute;
+// 				top: 0;
+// 				right 0;
+// 				display: inline-block;
+// 				height 10px;
+// 				width: 10px;
+// 				cursor pointer;
+// 				background: url('/static/imgs/icon-close-off.png') no-repeat center
+// 				background-size: 10px 10px;
+// 				&:hover {
+// 					background-image: url('/static/imgs/icon-close-on.png')
+// 				}
+// 			}
+// 		}
+// 		.row-2 {
+// 			margin-left 25px
+// 			font-size: 12px;
+// 			color: #FF7171;
+// 			margin-bottom 30px
+// 			word-break: break-all;
+// 			width 273px
+// 			&.warning {
+// 				color: #F7B500;
+// 			}
+// 			&.success {
+// 				color: #424656;
+// 			}
+// 		}
+// 		.row-3 {
+// 			display: flex;
+// 			justify-content: flex-end;
+// 			.el-button {
+// 				font-size: 12px !important;
+// 				height 26px;
+// 				line-height: 26px;
+// 				min-width 60px;
+// 				margin-left: 15px;
+// 			}
+// 		}
+// 		&.up {
+// 			animation alertup .2s forwards
+// 		}
+// 	}
+
+
+// // 加载中动画
+// .loading
+// 	width: 60px
+// 	height: 60px
+// 	position: relative
+// 	margin: 100px auto
+// 	.bounce1, .bounce2
+// 		width: 100%
+// 		height: 100%
+// 		border-radius: 50%
+// 		background-color: #67CF22
+// 		opacity: 0.6
+// 		position: absolute
+// 		top: 0
+// 		left: 0
+// 		animation: bounce 2.0s infinite ease-in-out
+// 	.bounce2
+// 		-webkit-animation-delay: -1.0s
+// 		animation-delay: -1.0s
+// 	@keyframes bounce {
+// 		0%, 100% {
+// 		transform: scale(0.0)
+// 		}
+// 		50% {
+// 			transform: scale(1.0)
+// 		}
+// 	}
+// .el-tooltip__popper
+// 	max-width 400px
+// 	line-height 180%
+
+
+// .el-image
+// 	.el-image-viewer__close
+// 		color: #fff
+
+// @keyframes warn {
+// 	0% {
+// 		transform: scale(0.3);
+// 		-webkit-transform: scale(0.3);
+// 		opacity: 0.0;
+// 	}
+
+// 	25% {
+// 		transform: scale(0.3);
+// 		-webkit-transform: scale(0.3);
+// 		opacity: 0.1;
+// 	}
+
+// 	50% {
+// 		transform: scale(0.5);
+// 		-webkit-transform: scale(0.5);
+// 		opacity: 0.3;
+// 	}
+
+// 	75% {
+// 		transform: scale(0.8);
+// 		-webkit-transform: scale(0.8);
+// 		opacity: 0.5;
+// 	}
+
+// 	100% {
+// 		transform: scale(1);
+// 		-webkit-transform: scale(1);
+// 		opacity: 0.0;
+// 	}
+// }
+
+// @keyframes warn1 {
+// 	0% {
+// 		transform: scale(0.3);
+// 		-webkit-transform: scale(0.3);
+// 		opacity: 0.0;
+// 	}
+
+// 	25% {
+// 		transform: scale(0.3);
+// 		-webkit-transform: scale(0.3);
+// 		opacity: 0.1;
+// 	}
+
+// 	50% {
+// 		transform: scale(0.3);
+// 		-webkit-transform: scale(0.3);
+// 		opacity: 0.3;
+// 	}
+
+// 	75% {
+// 		transform: scale(0.5);
+// 		-webkit-transform: scale(0.5);
+// 		opacity: 0.5;
+// 	}
+
+// 	100% {
+// 		transform: scale(0.8);
+// 		-webkit-transform: scale(0.8);
+// 		opacity: 0.0;
+// 	}
+// }
+
+// @keyframes ani {
+// 	0%, 100% {
+// 		transform: scale(.5)
+// 	}
+// 	50% {
+// 		transform: scale(1)
+// 	}
+// }
+// .sys-pop-program
+// #member-type-add
+// 	.orderby
+// 		.el-input
+// 			height auto !important
+// 		.el-tag
+// 			display: inline-block;
+// 			max-width: 90%;
+// 			text-overflow: ellipsis;
+// 			overflow: hidden;
+// 			white-space: nowrap;
+// .add-user-propram-select,.sys-popups-add-site,.settlement-plan-add
+// 	.el-input
+// 		height auto !important
+// 	.el-tag
+// 	.el-select__tags-text
+// 		max-width: 93%
+// 		float: left
+// 		text-overflow: ellipsis
+// 		overflow: hidden
+// 		white-space: nowrap
+
+// /* 设备关联人员表格样式 */
+// .device-pop-union
+// 	.el-table
+// 		td
+// 		th
+// 			padding vw(6) 0 !important
+
+// /* 场景下建筑树形样式 */
+// .has-area-tree
+// 	background-color: #fff;
+// 	border-radius: vw(5);
+// 	border: 1px solid #EAEDF3;
+// 	position: absolute;
+// 	top: vw(15);
+// 	left: vw(15);
+// 	bottom: vw(15);
+// 	right: vw(15);
+// 	overflow: auto;
+// 	margin-right: vw(300);
+// .channel-builds-tree, .area-tree
+// 	padding: vw(20)
+// 	width: vw(285)
+// 	position: absolute
+// 	top: vw(15)
+// 	right: vw(15)
+// 	bottom: vw(15)
+// 	border:1px solid rgba(234, 237, 243, 1)
+// 	box-shadow:0px 1px 3px 0px rgba(0, 0, 0, 0.04)
+// 	border-radius:vw(5)
+// 	background: #fff
+// 	overflow: auto
+// 	.el-tree-node__label,.el-link
+// 		font-size: vw(12) !important
+// .el-tree::-webkit-scrollbar
+// 	display none
+
+// /* 站点管理操作按钮icon */
+// .site-opt-icon-btn .el-button i
+// 	font-size: vw(20)
+// 	margin: 0 0 0 vw(15)
+
+// .el-cascader-menu::-webkit-scrollbar
+// 	display none
+
+
+// /* 清除下拉菜单上传按钮样式 */
+// .dropdown-menu-clear-btn .el-button--primary {
+// 	background: transparent;
+// 	border-color: transparent
+// 	color: #606266
+// 	padding 0
+// 	i {
+// 		display: none
+// 	}
+// }
+
+// /* el-select下拉选择器底部操作按钮 */
+// .el-select-bottom-opt
+// 	padding: 0 20px;
+// 	display: flex;
+// 	align-items center
+// 	justify-content: center;
+// 	span
+// 		font-size 12px;
+
+// /* 年的日期组件定制样式 */
+// .el-date-picker-year
+// 	.el-date-picker__header-label
+// 		&:hover
+// 			color: #606266
+// 	.el-picker-panel__content
+// 		a.cell
+// 			font-size: 14px;
+
+// /* .el-select下拉选择面板样式暗黑色定制 */
+// .el-select-dropdown-dark
+// 	background:rgba(46,49,51,1);
+// 	box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.5);
+// 	border-radius: 3px;
+// 	border: none
+// 	.popper__arrow
+// 		display: none
+// 	.el-select-dropdown__item
+// 		font-size: 14px;
+// 		&.hover
+// 		&:hover
+// 			background: none
+// 			color: #42CCCC
+
+// /* 隐藏日历组件今天样式 */
+// .hide-today-style
+// 	td.today .cell
+// 		color: inherit;
+// 		font-weight: inherit;
+
+// /* echart图表线图tooltip自定义样式 */
+// .dmp-echart-tooltip
+// 	h4
+// 		font-size:12px;
+// 		color:rgba(255,255,255,1);
+// 		line-height:18px;
+// 	p
+// 		line-height:18px;
+// 		font-size: 12px;
+// 		display: flex;
+// 		align-items: center;
+// 		.marker
+// 			display: inline-block;
+// 			margin-right: 6px;
+// 			width: 12px;
+// 			height: 8px;
+// 			border-radius: 4px;
+
+
+// .el-button--mini, .el-button--small{
+// 	font-size:12px
+// }
+// .el-select-dropdown__item.selected,
+// .el-month-table td.current:not(.disabled) .cell,
+// .el-pager li:hover
+// {
+// 	color:$sc-color-primary;
+// }
+// .el-select .el-input.is-focus .el-input__inner,
+// .el-input__inner:focus,
+// .el-switch.is-checked .el-switch__core,
+// .el-range-editor.is-active:hover
+// {
+// 	border-color:$sc-color-primary;
+// }
+// .el-button.is-plain:hover, .el-button.is-plain:focus{
+// 	border-color: $sc-color-primary;
+//   color: $sc-color-primary;
+// }
+// .el-switch.is-checked .el-switch__core,
+// .el-date-table td.start-date span, .el-date-table td.end-date span
+// {
+// 	background-color:$sc-color-primary;
+// }
+
+// /* 左右布局*/
+// .tabsTitle {
+// 	.tabs-title{
+// 		display: flex;
+// 		margin-bottom: vw(20);
+// 		background: #ffffff;
+// 		}
+//   .tabs {
+//     font-size: vw(14);
+//     width: 100%;
+
+//     padding: vw(20);
+//     box-sizing: border-box;
+//     display: flex;
+//     .tabItem {
+//       cursor: pointer;
+//       color: #a6abb6;
+//     }
+
+//     .active {
+//       color: #2787f1;
+//     }
+
+//     .border {
+//       width: vw(1);
+//       height: vw(10);
+//       background: #a6abb6;
+//       margin: vw(6) vw(20);
+//     }
+//   }
+// 	.tabs-right{
+// 		 padding: vw(20);
+// 		  height: vw(60);
+// 			 box-sizing: border-box;
+// 		}
+// }
 
 .content {
-
-		/*height:100%;*/
     .content-right {
       width: calc(100% - 280px);
 			float:right;
-
-      .search {
-        width: 100%;
-        height: vw(60);
-        margin-bottom: vw(20);
-        background: #fff;
-        padding: vw(15) vw(20);
-        -webkit-box-sizing: border-box;
-        box-sizing: border-box;
-        border-radius: vw(6);
-      }
-    }
   }
+}

+ 18 - 18
operationSupport/src/components/common/organTree.vue

@@ -1,22 +1,20 @@
 <template>
     <div class="organ-tree">
         <el-input v-model="filterText" placeholder="请输入机构名称"><i slot="suffix" class="el-icon-search"></i></el-input>
-        <div class="tree-style-box">
-            <el-scrollbar>
-                <el-tree
-                    class="tree-style"
-                    :data="organList"
-                    ref="tree"
-                    node-key="id"
-                    :highlight-current="true"
-                    :props="defaultProps"
-                    :expand-on-click-node="false"
-                    @node-click="treeClick"
-                    default-expand-all
-                    :filter-node-method="filterNode"
-                >
-                </el-tree>
-            </el-scrollbar>
+        <div class="tree-style-box no-scrollbar">
+            <el-tree
+                class="tree-style"
+                :data="organList"
+                ref="tree"
+                node-key="id"
+                :highlight-current="true"
+                :props="defaultProps"
+                :expand-on-click-node="false"
+                @node-click="treeClick"
+                default-expand-all
+                :filter-node-method="filterNode"
+            >
+            </el-tree>
         </div>
     </div>
 </template>
@@ -75,11 +73,13 @@ export default {
     float: left;
     height: 100%;
     overflow: auto;
-    &::-webkit-scrollbar {
-        display: none;
+    &::before {
+        clear: both;
     }
     .tree-style-box {
         margin-top: 20px;
+        max-height: calc(100vh - 200px);
+        overflow: scroll;
     }
 }
 </style>

+ 80 - 72
operationSupport/src/store/store.js

@@ -21,20 +21,22 @@ const store = new Vuex.Store({
     // 权限列表
     permissionList: [],
     //菜单列表
-    menuList:[],
+    menuList: [],
     // 当前登录用户信息
-    cruUserInfo:{},
+    cruUserInfo: {},
     //查询是否有未读消息
-    messageNumber:false,
+    messageNumber: false,
     //最近消息列表集合
-    messageList:[],
+    messageList: [],
     //记录消息的状态
-    messageStatus:2,
+    messageStatus: 2,
     // 弹窗集合
     popups: '',
-    theme:'light',//控制界面的颜色,
-     // 查询的点的坐标
-    searchPointInfo:{},
+    theme: 'light',//控制界面的颜色,
+    // 查询的点的坐标
+    searchPointInfo: {},
+    //所有小区下拉
+    areaSelect: [],
   },
   getters: {
     getTheme(state) {
@@ -46,7 +48,7 @@ const store = new Vuex.Store({
     getToken(state) {
       return state.token;
     },
-    getSearchPointInfo(state){
+    getSearchPointInfo(state) {
       return state.searchPointInfo;
     },
     getCollapse(state) {
@@ -67,16 +69,19 @@ const store = new Vuex.Store({
       }
     },
     //获取菜单列表
-    getMenuList(state){
+    getMenuList(state) {
       return state.menuList;
     },
     // 获取当前登录用户信息
-    getCruUserInfo(state){
+    getCruUserInfo(state) {
       return state.cruUserInfo;
+    },
+    getAreaSelect(state) {
+      return state.areaSelect;
     }
   },
   mutations: {
-    setSearchPointInfo(state,data){
+    setSearchPointInfo(state, data) {
       state.searchPointInfo = data;
     },
     setPopups(state, data) {
@@ -97,83 +102,86 @@ const store = new Vuex.Store({
     setPermissionList(state, data) {
       state.permissionList = data;
     },
-    setMenuList(state,data){
+    setMenuList(state, data) {
       state.menuList = data;
     },
-    setcCruUserInfo(state,data){
+    setcCruUserInfo(state, data) {
       state.cruUserInfo = data;
     },
-    setmessageNumber(state,data){
-      state.messageNumber=data;
+    setmessageNumber(state, data) {
+      state.messageNumber = data;
     },
-    setmessageList(state,data){
-      state.messageList=data;
+    setmessageList(state, data) {
+      state.messageList = data;
     },
-    setmessageStatus(state,data){
-      state.messageStatus=data;
+    setmessageStatus(state, data) {
+      state.messageStatus = data;
     },
     setTheme(state, data) {
       state.theme = data
     },
+    setAreaSelect(state, data) {
+      state.areaSelect = data
+    }
   },
   actions: {
-      tags(ctx, data) {
-        ctx.commit("setTagList", data)
-      },
-      /**
-     * @description: 打开弹窗
-     * @param {type} ctx vuex的上下文
-     * @param {object} args {
-     *  id: 唯一标识,必须
-     *  url: 打开的组件url地址,必须
-     *  params: 传递给弹出组件的参数,
-     *  notip: 是否显示*为填项必内容,为true时不显示
-     *  backgroud: 是否强制显示底部透明背景色,默认第二个弹出层时不显示透明底色,为true时一定显示
-     *  full: 是否为全屏展示,true为全屏
-     * }
-     * @return {null} null:
-     */
-      addPopup(ctx, args) {       
-        const params = {...args};
-        const list = ctx.getters.getPopups;
-        params.id = 'modal_' + (+new Date())
-        import(/* webpackChunkName: "[request]" */ `@/views${params.url}`).then((res) => {
-          params.component = res.default;
-          params.show = true;
-          list.push(params);
+    tags(ctx, data) {
+      ctx.commit("setTagList", data)
+    },
+    /**
+   * @description: 打开弹窗
+   * @param {type} ctx vuex的上下文
+   * @param {object} args {
+   *  id: 唯一标识,必须
+   *  url: 打开的组件url地址,必须
+   *  params: 传递给弹出组件的参数,
+   *  notip: 是否显示*为填项必内容,为true时不显示
+   *  backgroud: 是否强制显示底部透明背景色,默认第二个弹出层时不显示透明底色,为true时一定显示
+   *  full: 是否为全屏展示,true为全屏
+   * }
+   * @return {null} null:
+   */
+    addPopup(ctx, args) {
+      const params = { ...args };
+      const list = ctx.getters.getPopups;
+      params.id = 'modal_' + (+new Date())
+      import(/* webpackChunkName: "[request]" */ `@/views${params.url}`).then((res) => {
+        params.component = res.default;
+        params.show = true;
+        list.push(params);
+        ctx.commit('setPopups', list);
+        // ctx.commit('setalertModalParams', params);
+      }).catch((err) => {
+        if (err.message.indexOf("Loading chunk") == 0) {
+          ELEMENT.Message.info("版本已更新,请刷新页面重试");
+        } else {
+          ELEMENT.Message.info(err.message);
+        }
+      });
+    },
+    delPopup(ctx, id) {
+      // let id=id;
+      // ctx.commit('setalertModalParams', { show: false});
+      const list = ctx.getters.getPopups;
+      list.every((item, index) => {
+        if (item.id === id) {
+          list.splice(index, 1);
           ctx.commit('setPopups', list);
-          // ctx.commit('setalertModalParams', params);
-        }).catch((err) => {
-          if (err.message.indexOf("Loading chunk") == 0) {
-            ELEMENT.Message.info("版本已更新,请刷新页面重试");
-          } else {
-            ELEMENT.Message.info(err.message);
-          }
-        });
-      },
-      delPopup(ctx, id) {
-        // let id=id;
-        // ctx.commit('setalertModalParams', { show: false});
-        const list = ctx.getters.getPopups;
-        list.every((item, index) => {
-          if (item.id === id) {
-            list.splice(index, 1);
-            ctx.commit('setPopups', list);
-            // 解决弹窗关闭,滚动条没有关闭的情况
-            // const $bar = document.querySelector('.dmp-scroll-bar')
-            // if ($bar) {
-            //   document.body.removeChild(document.querySelector('.dmp-scroll-bar'))
-            // }
-            return false;
-          }
-          return true
-        });
+          // 解决弹窗关闭,滚动条没有关闭的情况
+          // const $bar = document.querySelector('.dmp-scroll-bar')
+          // if ($bar) {
+          //   document.body.removeChild(document.querySelector('.dmp-scroll-bar'))
+          // }
+          return false;
+        }
+        return true
+      });
     },
     collapse(ctx, data) {
       ctx.commit("setCollapse", data);
     },
     openModal(ctx, args) {
-      const params = {...args};
+      const params = { ...args };
       params.id = 'modal_' + (+new Date())
       import(/* webpackChunkName: "[request]" */ `@/views${params.url}`).then((res) => {
         params.component = res.default;
@@ -184,7 +192,7 @@ const store = new Vuex.Store({
       });
     },
     closeModal(ctx) {
-      ctx.commit('setModalParams', { show: false});
+      ctx.commit('setModalParams', { show: false });
     }
   }
 })

+ 41 - 37
operationSupport/src/views/alarmManagement/baseData.js

@@ -8,17 +8,17 @@
 
 
 /* 系统告警查询参数和待处理、已处理查询|导出API */
-    // communityId: '', // 小区ID
-    // handleUserName: '', // 处理人
-    // handleResultName: '', // 处理结果
-		// location: '', // 位置
-    // alarmCategory: '', // 告警分类 1:业务告警 2:设备故障
+// communityId: '', // 小区ID
+// handleUserName: '', // 处理人
+// handleResultName: '', // 处理结果
+// location: '', // 位置
+// alarmCategory: '', // 告警分类 1:业务告警 2:设备故障
 export const sysQuery = {
   params: {
-		alarmCategory:'1',
-		alarmName:'',
-    productId:'',
-    sceneType:'3'
+    alarmCategory: '1',
+    alarmName: '',
+    productId: '',
+    sceneType: '3'
   },
   undone: {// 未处理告警列表查询字段
     // getpageUrl: '/zoniot-rmcp-web/Abnormal/getAllAbnormal',
@@ -37,12 +37,12 @@ export const sysQuery = {
  */
 export const sysSearchConfig = {
   conditions: [
-		{
+    {
       label: '',
       prop: 'alarmCategory',
-      slot: 'alarmCategory',    
+      slot: 'alarmCategory',
     },
-		{
+    {
       label: '',
       prop: 'alarmName',
       slot: 'alarmName',
@@ -53,14 +53,14 @@ export const sysSearchConfig = {
       prop: 'productId',
       slot: 'productId',
       placeholder: '请选择设备类型',
-    }		
+    }
   ],
   water: {
-    normal: ['alarmCategory', 'alarmName','productId'],
+    normal: ['alarmCategory', 'alarmName', 'productId'],
     more: [],
   },
   other: {
-    normal: ['alarmCategory', 'alarmName','productId'],
+    normal: ['alarmCategory', 'alarmName', 'productId'],
     more: [],
   }
 }
@@ -78,41 +78,45 @@ export const alarmMeasuringDatasFormat = (val) => {
 export const sysColumnConfig = {
   cols: [
     {
-      label: '产品',
-      prop: 'productName'     
-    },{
+      label: '所属小区',
+      prop: 'communityName'
+    },
+    {
+      label: '设备类型',
+      prop: 'productName'
+    }, {
       label: '设备',
-      prop: 'deviceName',    
-    },{
+      prop: 'deviceName',
+    }, {
       label: '告警名称',
-      prop: 'alarmName',    
-    },{
+      prop: 'alarmName',
+    }, {
       label: '告警描述',
-      prop: 'desc', 
+      prop: 'desc',
     }, {
       label: '规则',
       prop: 'alarmRuleNum',
     }, {
       label: '状态',
-      prop:'enabled',
-      slot:'enabled',
+      prop: 'enabled',
+      slot: 'enabled',
     },
-		{
-			label: '操作',
+    {
+      label: '操作',
       prop: 'opt',
       slot: 'opt',
-		}
+    }
   ],
-	done:['productName', 'deviceName', 'alarmName', 'desc', 'alarmRuleNum',
-	'enabled','opt'],
-	undone:['productName', 'deviceName', 'alarmName', 'desc', 'alarmRuleNum',
-	'enabled','opt'],
+  done: ['productName', 'communityName','deviceName', 'alarmName', 'desc', 'alarmRuleNum',
+    'enabled', 'opt'],
+  undone: ['productName', 'communityName','deviceName', 'alarmName', 'desc', 'alarmRuleNum',
+    'enabled', 'opt'],
   loraMeter: ['alarmTypeName', 'lastAlarmTime', 'deviceNo', 'meterNo', 'deviceModel',
-    'companyName', 'deptName', 'address','handleTime','opt'],
-  nbiotMeter:['alarmTypeName', 'lastAlarmTime', 'deviceNo', 'meterNo', 'deviceModel',
-	'companyName', 'deptName', 'address','handleTime','opt'],
+    'companyName', 'deptName', 'address', 'handleTime', 'opt'],
+  nbiotMeter: ['alarmTypeName', 'lastAlarmTime', 'deviceNo', 'meterNo', 'deviceModel',
+    'companyName', 'deptName', 'address', 'handleTime', 'opt'],
   other: ['sceneName', 'deviceType', 'deviceName', 'alarmContent', 'attributeName',
-	'opState', 'state', 'opt'],
+    'opState', 'state', 'opt'],
 }
 
 /* 用户告警=预警类型 */
@@ -153,5 +157,5 @@ const feedbackStatus = [
   }
 ]
 export const feedbackStatusStr = (status) => {
-  return feedbackStatus[status+1].label
+  return feedbackStatus[status + 1].label
 }

+ 28 - 14
operationSupport/src/views/alarmManagement/details.vue

@@ -20,8 +20,8 @@
                 class="servertype-serch"
                 :editable="false"
             ></el-date-picker>
-            <el-button class="servertype-serch-btn search-btn" icon="el-icon-search"  type="primary" @click="getPage">查询</el-button>
-            <i class="fr fr-fs-fc fr-add iconfont" @click="exportExcel"  v-txt-tip data-txt="导出">&#xe662;</i>
+            <el-button class="servertype-serch-btn search-btn" icon="el-icon-search" type="primary" @click="getPage">查询</el-button>
+            <i class="fr fr-fs-fc fr-add iconfont" @click="exportExcel" v-txt-tip data-txt="导出">&#xe662;</i>
         </div>
         <!-- 表格 -->
         <div class="device-manage-table">
@@ -45,10 +45,13 @@
                         v-if="scope.row.opState == 1"
                         @click="suspendedById(scope.row.id)"
                         style="color: #ff7272; margin-right: 30px"
-                        v-txt-tip data-txt="挂起"
+                        v-txt-tip
+                        data-txt="挂起"
                         >&#xe66d;</i
                     >
-                    <i class="iconfont" @click="renewById(scope.row.id)" style="color: #0eaeff" v-else v-txt-tip data-txt="恢复挂起">&#xe669;</i>
+                    <i class="iconfont" @click="renewById(scope.row.id)" style="color: #0eaeff" v-else v-txt-tip data-txt="恢复挂起"
+                        >&#xe669;</i
+                    >
                 </template>
             </zz-table>
         </div>
@@ -78,15 +81,26 @@ export default {
                     prop: 'alarmName'
                 },
                 {
-                    label: '场景名称',
-                    prop: 'sceneName'
+                    label: '告警类型',
+                    prop: 'alarmCategory',
+                    format(val) {
+                        let va = '告警';
+                        if (val === 2) {
+                            va = '离线';
+                        }
+                        return va;
+                    }
+                },
+                {
+                    label: '所属小区',
+                    prop: 'communityName'
                 },
                 {
                     label: '设备名称',
                     prop: 'deviceName'
                 },
                 {
-                    label: '产品',
+                    label: '设备类型',
                     prop: 'productName'
                 },
                 {
@@ -159,7 +173,7 @@ export default {
                 this.selectRow.forEach((v) => {
                     ids.push(v.id);
                 });
-                params = {ids:ids.join(",")};
+                params = { ids: ids.join(',') };
             } else {
                 if (this.times && this.times.length) {
                     this.mixins_query.startTime = `${this.times[0]}`;
@@ -170,7 +184,7 @@ export default {
                 }
                 params = this.mixins_query;
             }
-            this.__exportExcel('/alarm/details/export', params);       
+            this.__exportExcel('/alarm/details/export', params);
             // this.$http.get('/alarm/details/export', params).then(({ status, data, msg }) => {
             //     if (status === 0 && data) {
             //         window.location.href = this.envConfig.baseExcelApi + data;
@@ -229,12 +243,12 @@ export default {
         this.mixins_dataUrl = '/alarm/details/selectPage';
         this.mixins_post = 'post';
         this.mixins_query = {
-            alarmCategory: '', 
-            alarmName: '',        
+            alarmCategory: '',
+            alarmName: '',
             startTime: '', //开始时间
             endTime: '', //结束时间
-            sceneType:'5',
-            state:'1'
+            sceneType: '5',
+            state: '1'
         };
         // this.getAllScene();
         this.getPage();
@@ -283,6 +297,6 @@ export default {
     height: 460px;
 }
 /deep/ .el-dialog__body {
-    padding: 0 20px 20px 20px!important;
+    padding: 0 20px 20px 20px !important;
 }
 </style>

+ 13 - 0
operationSupport/src/views/alarmManagement/index.vue

@@ -99,6 +99,15 @@ export default {
         };
     },
     methods: {
+        getorgTree() {
+            this.$http
+                .get('/sc-community/assets/community/list')
+                .then((data) => {
+                    this.$store.commit('setAreaSelect', data.data);
+                })
+
+                .catch(function () {});
+        },
         getProductOptions() {
             this.$http.postForm('/devicetype/selectList', { name: '' }).then((data) => {
                 this.productOptions = data;
@@ -120,6 +129,7 @@ export default {
                         todo,
                         data,
                         productOptions: this.productOptions,
+                        alarmCategory: this.mixins_query.alarmCategory,
                         callback: resolve
                     },
                     hideFoot: todo == 'view'
@@ -264,6 +274,9 @@ export default {
         // }
     },
     created() {
+        if (this.$store.getters['getAreaSelect'].length === 0) {
+            this.getorgTree();
+        }
         this.getProductOptions();
     },
     mounted() {

+ 22 - 23
operationSupport/src/views/alarmManagement/popups/addoreditalarm.vue

@@ -18,18 +18,16 @@
             style="width: 800px"
         >
             <template slot="productId">
-                <el-input
-                    :disabled="params.todo == 'edit'"
+                <!-- <el-input
+                   
                     v-if="params.todo == 'edit'"
                     type="text"
                     v-model="data.productName"
                     placeholder="限30位,汉字、字母、数字或符号"
                     maxlength="30"
                     clearable
-                ></el-input>
+                ></el-input> -->
                 <el-cascader
-                    v-else
-                    :disabled="params.todo == 'edit'"
                     v-model="data.productId"
                     :options="productOptions"
                     :props="productTypeProps"
@@ -40,6 +38,12 @@
                 >
                 </el-cascader>
             </template>
+
+            <template slot="communityId">
+                <el-select v-model="data.communityId">
+                    <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
+                </el-select>
+            </template>
             <template slot="deviceId">
                 <el-select v-model="data.deviceId" placeholder="请选择设备" clearable @change="deviceSelect($event)">
                     <el-option v-for="item in deviceOptions" :key="item.id" :value="item.id" :label="item.deviceName"></el-option>
@@ -308,6 +312,7 @@ export default {
             measureOptions: [],
             dictList: [],
             rules: {
+                communityId:this.$valid.selectRequired('小区'),
                 productId: this.$valid.selectRequired('产品'),
                 name: [this.$valid.inputRequired('告警名称'), this.$valid.lengthRange(0, 30)],
                 // measuringCode: this.$valid.selectRequired('测点'),
@@ -385,7 +390,11 @@ export default {
             checkFlag: true
         };
     },
-    computed: {},
+    computed: {
+        communityArr() {
+            return this.$store.getters['getAreaSelect'];
+        }
+    },
     methods: {
         getDeviceOptions(id) {
             this.$http.get('/device/findByProduct?id=' + id).then(({ data }) => {
@@ -579,12 +588,8 @@ export default {
             });
         },
         productChange(value) {
-            if (value.length) {
-                this.data.productId = _.last(value);
-            } else {
-                this.measuringOptions = [];
-                this.data.productId = '';
-            }
+            this.measuringOptions = [];
+            this.data.productId = value;
             this.data.deviceId = '';
             this.getDeviceOptions(_.last(value));
             this.getMeasurePointOptions(_.last(value));
@@ -658,8 +663,9 @@ export default {
             if (this.params && this.params.todo == 'edit') {
                 this.$http.get(`/system/alarmType/findAlarmTypeById?id=${id}`).then(({ data }) => {
                     this.data = Object.assign(this.data, data);
-                    this.getDeviceOptions(id);
-                    this.getMeasurePointOptions(id);
+                    this.data.productId = [null, null, data.productId + ''];
+                    this.getDeviceOptions(data.productId);
+                    this.getMeasurePointOptions(data.productId);
                     this.measuringCode = this.data.rules[0].measuringCode ? this.data.rules[0].measuringCode : '';
                     this.getOperator(this.data.attributeId);
                     this.setDaysAndTimes(data.days, data.times);
@@ -756,6 +762,7 @@ export default {
                     }
                     let newdata = Object.assign(this.data, { days }, { times });
                     const params = JSON.parse(JSON.stringify(newdata));
+                    params.productId = _.last(params.productId);
                     const rules = [];
                     // _.each(params.rules, (v) => {
                     //   if (v.measuringCode) {
@@ -795,28 +802,20 @@ export default {
         this.alarmCategory = this.params.alarmCategory;
         // this.deviceOptions=this.params.deviceOptions;
         this.productOptions = this.params.productOptions;
-        // this.alarmProperty = this.$root.userInfo && this.$root.userInfo.type == 1 ? '1' : '2';
         if (this.alarmCategory == '2') {
             let newaddCols = addCols[0].slice(0, 5);
             this.cols = [newaddCols];
         } else {
             this.cols = addCols;
         }
-        // debugger
-        // this.$store.dispatch('device/getProductTree')
-        // this.$store.dispatch('device/getChannelList')
+
         if ((this.params && this.params.todo == 'edit') || this.params.todo == 'view') {
-            // const params = JSON.parse(JSON.stringify(this.params.data));
-            // const { productCategoryId, manufacturerId, productId } = params
-            // this.productIds = [productCategoryId, manufacturerId, productId]
             this.getQueryInfo(this.params.data.id);
             this.$set(this.data, 'name', this.params.data.alarmName);
-            // this.data=Object.assign(this.data,this.params.data)
 
             //给日期和星期赋值this.params.data.days,this.params.data.times
             this.isReadOnly = this.params.todo == 'view';
         }
-        // this.$set(this.data, 'productId','103');
         this.$set(this.data, 'alarmCategory', this.alarmCategory);
         this.$set(this.data, 'sceneType', '3');
     }

+ 95 - 82
operationSupport/src/views/alarmManagement/popups/style.scss

@@ -4,10 +4,10 @@
     border-top: 1px solid rgba(224, 225, 227, 1);
     margin-bottom: 20px;
 
-    >.el-form-item {
+    > .el-form-item {
       width: 24.5%;
       margin: 0;
-      >.el-form-item__label {
+      > .el-form-item__label {
         justify-content: flex-start;
         text-align: left;
         padding-right: 20px;
@@ -29,6 +29,21 @@
         border-left: 1px solid rgba(224, 225, 227, 1);
         border-radius: 2px 0 0 0;
 
+        .el-form-item__label {
+          padding-left: 20px;
+        }
+
+        .el-form-item__content {
+          padding-left: 20px;
+
+          .el-cascader {
+            width: 100% !important;
+          }
+
+          .el-form-item__error {
+            left: 20px;
+          }
+        }
       }
 
       &:nth-child(2) {
@@ -38,7 +53,6 @@
 
         .el-form-item__label {
           padding-left: 20px;
-
         }
 
         .el-form-item__content {
@@ -92,11 +106,11 @@
           }
         }
       }
-      .time_set{
-        height:auto;
+      .time_set {
+        height: auto;
         width: 100%;
-        .time_content{
-          .timeduring{
+        .time_content {
+          .timeduring {
             display: flex;
             flex-flow: row nowrap;
             align-items: center;
@@ -104,21 +118,21 @@
             width: max-content;
             margin-bottom: 15px;
             position: relative;
-            .time_picker{
-              border: 1px solid #E0E1E3;
+            .time_picker {
+              border: 1px solid #e0e1e3;
               margin-right: 20px;
-              /deep/ .el-form-item{
+              /deep/ .el-form-item {
                 margin-bottom: 0px;
               }
             }
             // padding: 10px;
-            .time_end{
-              width:120px;
-              margin-right:10px;
-              .el-input__inner{
+            .time_end {
+              width: 120px;
+              margin-right: 10px;
+              .el-input__inner {
                 border: none;
               }
-              .el-input__prefix{
+              .el-input__prefix {
                 // &:last-child{
                 //   .el-input__icon::after{
                 //     content: '\E791';
@@ -127,43 +141,42 @@
                 // }
               }
             }
-            .time_start{
-              width:120px;
-              .el-input__inner{
+            .time_start {
+              width: 120px;
+              .el-input__inner {
                 border: none;
               }
-              .el-input__prefix{
-                &:last-child{
-                  .el-input__icon::after{
-                    content: '\E791';
-                    color: #D8D8D8;
+              .el-input__prefix {
+                &:last-child {
+                  .el-input__icon::after {
+                    content: "\E791";
+                    color: #d8d8d8;
                   }
                 }
               }
             }
           }
-          .add_img{
+          .add_img {
             display: block;
             position: relative;
             padding-top: 10px;
-            .icon_add{
-              width:14px;
-              height:14px;
+            .icon_add {
+              width: 14px;
+              height: 14px;
               display: inline-block;
-              background: url('~@/assets/img/menuicon/icon_tianjia.png') center no-repeat;
+              background: url("~@/assets/img/menuicon/icon_tianjia.png") center no-repeat;
               background-size: 100% 100%;
               margin-right: 10px;
             }
-            .icon_delete{
-              width:14px;
-              height:14px;
+            .icon_delete {
+              width: 14px;
+              height: 14px;
               display: inline-block;
-              background: url('~@/assets/img/menuicon/icon_shanjian.png') center no-repeat;
+              background: url("~@/assets/img/menuicon/icon_shanjian.png") center no-repeat;
               background-size: 100% 100%;
             }
           }
-          
-        }       
+        }
       }
       &:nth-child(5) {
         width: 100%;
@@ -174,6 +187,7 @@
         padding-top: 0px;
         padding-bottom: 20px;
         margin-top: 0px;
+        // padding-bottom: 20px;
         justify-content: flex-start;
         border-left: 1px solid rgba(224, 225, 227, 1);
         border-right: 1px solid rgba(224, 225, 227, 1);
@@ -182,23 +196,26 @@
 
         .el-form-item__label {
           padding-left: 32px;
+          // height: 30px;
           width: max-content;
           font-size: 12px;
           font-family: PingFangSC-Regular, PingFang SC;
           font-weight: 400;
           color: #424656;
           background: none;
-        
         }
 
         .el-form-item__content {
           flex: 1;
+
+          // margin-bottom: 20px;
+          // margin-top: 20px;
           .el-form-item__error {
             left: 20px;
           }
         }
       }
-      &:nth-child(6){
+      &:nth-child(6) {
         width: 100%;
 
         .el-form-item__label {
@@ -210,7 +227,7 @@
           height: auto;
         }
       }
-      >.el-form-item__content {
+      > .el-form-item__content {
         width: 100%;
         padding-right: 20px;
         height: 70px;
@@ -223,7 +240,7 @@
           width: 100%;
         }
 
-        >.el-form-item__error {
+        > .el-form-item__error {
           top: 50px;
         }
 
@@ -234,8 +251,8 @@
           white-space: nowrap;
           overflow: hidden;
         }
-        span.time_txt{
-          display: block; 
+        span.time_txt {
+          display: block;
           font-size: 12px;
           width: max-content;
           position: absolute;
@@ -253,7 +270,7 @@
             box-shadow: none;
             background: none;
             font-size: 12px;
-             tbody {
+            tbody {
               tr:first-child {
                 td {
                   padding-top: 20px;
@@ -266,16 +283,16 @@
               line-height: 0;
               background: rgba(248, 252, 255, 1) !important;
             }
-            .el-table__header-wrapper{
+            .el-table__header-wrapper {
               height: 40px;
               line-height: 0;
-              .el-table__header{
+              .el-table__header {
                 position: relative;
-                thead{
-                 .cell{
-                   position: absolute;
-                   top:10px;
-                 }
+                thead {
+                  .cell {
+                    position: absolute;
+                    top: 10px;
+                  }
                 }
               }
             }
@@ -328,16 +345,16 @@
               }
             }
           }
-          .lixian_class{
-            .avg_table.el-table{
-              width:100%;
-              border:none;
-              border-left:1px solid rgba(224, 225, 227, 1);
-              border-right:1px solid rgba(224, 225, 227, 1) ;
+          .lixian_class {
+            .avg_table.el-table {
+              width: 100%;
+              border: none;
+              border-left: 1px solid rgba(224, 225, 227, 1);
+              border-right: 1px solid rgba(224, 225, 227, 1);
               border-bottom: 1px dashed rgba(224, 225, 227, 1);
               margin-bottom: 0;
             }
-            >.el-form-item:first-child {
+            > .el-form-item:first-child {
               width: 100%;
               display: flex;
               height: 70px;
@@ -347,11 +364,11 @@
               margin-top: 20px;
               line-height: 0;
               justify-content: flex-start;
-              border:1px solid rgba(224, 225, 227, 1);
+              border: 1px solid rgba(224, 225, 227, 1);
               border-bottom: none;
-              border-radius: 4px 4px 0 0 ;
+              border-radius: 4px 4px 0 0;
               margin-bottom: 0;
-              .el-form-item__label{
+              .el-form-item__label {
                 padding-left: 20px;
                 width: 86px;
                 padding-top: 10px;
@@ -361,28 +378,27 @@
                 color: #424656;
                 background: none;
                 line-height: 0 !important;
-                display:inline-flex;
+                display: inline-flex;
                 align-items: center;
                 justify-content: flex-end;
               }
               .el-form-item__content {
-                flex: 1; 
-                padding-right: 20px; 
-                padding-left: 20px;       
+                flex: 1;
+                padding-right: 20px;
+                padding-left: 20px;
                 .el-form-item__error {
                   left: 20px;
                 }
               }
             }
-           
           }
-          
+
           .el-table__empty-block {
             height: 40px;
             line-height: 40px;
             max-height: 40px;
             min-height: 40px;
-            background-color: #FFF;
+            background-color: #fff;
 
             .el-table__empty-text {
               height: 40px;
@@ -392,7 +408,7 @@
         }
       }
     }
-    #timeSet{
+    #timeSet {
       width: 100%;
       display: flex;
       flex-flow: row nowrap;
@@ -414,7 +430,6 @@
         background: none;
         display: inline-flex;
         justify-content: stretch;
-        
       }
       .el-form-item__content {
         flex: 1;
@@ -424,46 +439,44 @@
         }
       }
     }
-    #dayset{
+    #dayset {
       width: 100%;
       height: max-content;
       border: 1px solid rgba(224, 225, 227, 1);
       border-top: none;
       border-radius: 0px 0px 4px 4px;
-      .time_sys{
+      .time_sys {
         display: flex;
         flex-flow: row nowrap;
         align-items: center;
         justify-content: flex-start;
         padding-left: 100px;
-        
-        .el-switch{
+
+        .el-switch {
           margin-right: 10px;
         }
-        .every_day{
+        .every_day {
           font-size: 12px;
           font-family: PingFangSC-Regular, PingFang SC;
           font-weight: 400;
-          color: #747D87;
+          color: #747d87;
           margin-right: 20px;
         }
-        .ul-time{
+        .ul-time {
           display: flex;
           flex-flow: row nowrap;
           align-items: center;
-          li{       
-            .el-checkbox__label{
+          li {
+            .el-checkbox__label {
               font-size: 12px;
               font-family: PingFangSC-Regular, PingFang SC;
               font-weight: 400;
-              color: #747D87;
+              color: #747d87;
               line-height: 17px;
             }
-            &:nth-child(n){
+            &:nth-child(n) {
               margin-right: 20px;
             }
-
-
           }
         }
       }
@@ -475,7 +488,7 @@
 
   &.no-channel {
     /deep/ .dmp-form {
-      >.el-form-item {
+      > .el-form-item {
         width: 32.5%;
         margin: 0;
 
@@ -530,4 +543,4 @@
       }
     }
   }
-}
+}

+ 2 - 2
operationSupport/src/views/alarmManagement/popups/util.js

@@ -138,7 +138,7 @@ export const addnewCols = [[
     slot: 'communityId'
   },
   {
-    label: '产品',
+    label: '设备类型',
     prop: 'productId',
     slot: 'productId'
   }, {
@@ -164,7 +164,7 @@ export const addCols = [[
     slot: 'communityId'
   },
   {
-    label: '产品',
+    label: '设备类型',
     prop: 'productId',
     slot: 'productId'
   },

+ 38 - 30
operationSupport/src/views/deviceManagement/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="main">
         <div class="search">
-            <el-input placeholder="请输入用户名或手机号" class="search-input" clearable v-model="mixins_query.contion"></el-input>
+            <el-input placeholder="设备名称或编号" class="search-input" clearable v-model="mixins_query.deviceNo"></el-input>
             <el-select slot="status" v-model="mixins_query.deviceStatus" clearable>
                 <el-option v-for="(item, index) in deviceStatus" :key="index" :label="item.label" :value="item.status">{{
                     item.label
@@ -9,7 +9,7 @@
             </el-select>
             <el-button type="primary" class="search-btn" @click="mixins_search" icon="el-icon-search">查询 </el-button>
             <div class="search-icon">
-                <i class="iconfont" @click="deluserbyidsFn" v-txt-tip data-txt="删除">&#xe63b;</i>
+                <i class="iconfont" @click="deluserbyidFn()" v-txt-tip data-txt="删除">&#xe63b;</i>
                 <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
             </div>
         </div>
@@ -43,6 +43,7 @@ import list from '@utils/list.js';
 export default {
     mixins: [list],
     data() {
+        let _this = this;
         return {
             selectRow: [],
             // 数据列表
@@ -71,7 +72,16 @@ export default {
             cols: [
                 {
                     label: '所属小区',
-                    prop: 'communityId'
+                    prop: 'communityId',
+                    format(val) {
+                        let va = '';
+                        _this.$store.getters['getAreaSelect'].forEach((element) => {
+                            if (element.id === val) {
+                                va = element.communityName;
+                            }
+                        });
+                        return va;
+                    }
                 },
                 {
                     label: '设备类型',
@@ -125,20 +135,42 @@ export default {
         };
     },
     created() {
+        if (this.$store.getters['getAreaSelect'].length === 0) {
+            this.getorgTree();
+        }
         this.mixins_dataUrl = '/device/page';
         this.mixins_query = {};
         this.mixins_search();
     },
     mounted() {
-        this.getorgTree();
         this.getProductOptions();
     },
     methods: {
-        getorgTree() {},
+        getorgTree() {
+            this.$http
+                .get('/sc-community/assets/community/list')
+                .then((data) => {
+                    this.$store.commit('setAreaSelect', data.data);
+                })
+
+                .catch(function () {});
+        },
         deluserbyidFn(id) {
+            let ids = [];
+            if (!!id) {
+                ids = [id];
+            } else {
+                if (!this.selectRow.length) {
+                    this.$message.error('您尚未选择要删除的记录,请选择后再操作批量删除');
+                    return;
+                }
+                this.selectRow.forEach((v) => {
+                    ids.push(v.id);
+                });
+            }
             this.$msgBox(`删除`, '删除后将无法恢复,请问是否继续?')
                 .then(() => {
-                    this.$http.get('/device/delete', { id: id }).then(({ status, data, msg }) => {
+                    this.$http.post('/facility/delete', ids).then(({ status, data, msg }) => {
                         if (0 === status) {
                             this.$message({
                                 type: 'success',
@@ -150,30 +182,6 @@ export default {
                 })
                 .catch(() => {});
         },
-        deluserbyidsFn() {
-            // 获取选中列表的ids
-            // let ids = [];
-            // if (!this.selectRow.length) {
-            //     this.$message.error('您尚未选择要删除的记录,请选择后再操作批量删除');
-            //     return;
-            // }
-            // this.selectRow.forEach((v) => {
-            //     ids.push(v.id);
-            // });
-            // this.$msgBox(`删除`, '删除后将无法恢复,请问是否继续?')
-            //     .then((_) => {
-            //         this.$http.post('/user/delete', ids).then(({ status, data, msg }) => {
-            //             if (0 === status) {
-            //                 this.$message({
-            //                     type: 'success',
-            //                     message: '删除成功!'
-            //                 });
-            //                 this.mixins_search();
-            //             }
-            //         });
-            //     })
-            //     .catch(() => {});
-        },
         addOrEdit(todo, data = {}) {
             new Promise((resolve) => {
                 let title = '添加设备管理';

+ 41 - 34
operationSupport/src/views/deviceManagement/indexFacilities.vue

@@ -1,8 +1,8 @@
 <template>
     <div class="main">
         <div class="search">
-            <el-input placeholder="设施名称" class="search-input" clearable v-model="mixins_query.name"></el-input>
-            <el-select v-model="mixins_query.status" clearable>
+            <el-input placeholder="设施名称" class="search-input" clearable v-model="mixins_query.facilityNo"></el-input>
+            <el-select v-model="mixins_query.facilityStatus" clearable>
                 <el-option v-for="(item, index) in deviceStatus" :key="index" :label="item.label" :value="item.status">{{
                     item.label
                 }}</el-option>
@@ -12,7 +12,7 @@
             </el-select>
             <el-button type="primary" class="search-btn" @click="mixins_search" icon="el-icon-search">查询 </el-button>
             <div class="search-icon">
-                <i class="iconfont" @click="deluserbyidsFn" v-txt-tip data-txt="删除">&#xe63b;</i>
+                <i class="iconfont" @click="deluserbyidFn()" v-txt-tip data-txt="删除">&#xe63b;</i>
                 <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
             </div>
         </div>
@@ -32,7 +32,7 @@
                     >
                     <i @click="deluserbyidFn(scope.row.id)" class="iconfont" style="color: #ff7272" v-txt-tip data-txt="删除">&#xe63a;</i> -->
                     <div class="opt">
-                     <el-tooltip class="item" effect="light" placement="bottom" content="编辑">
+                        <el-tooltip class="item" effect="light" placement="bottom" content="编辑">
                             <img class="optImg" @click="addOrEdit('edit', scope.row)" src="@/assets/img/btn_bianji.png" />
                         </el-tooltip>
                         <el-tooltip class="item" effect="light" placement="bottom" content="删除">
@@ -59,14 +59,24 @@ export default {
                     label: '正常'
                 },
                 {
-                    status: 0,
-                    label: '删除'
+                    status: 5,
+                    label: '报废'
                 }
             ],
+
             cols: [
                 {
                     label: '所属小区',
-                    prop: 'communityId'
+                    prop: 'communityId',
+                    format(val) {
+                        let va = '';
+                        _this.$store.getters['getAreaSelect'].forEach((element) => {
+                            if (element.id === val) {
+                                va = element.communityName;
+                            }
+                        });
+                        return va;
+                    }
                 },
                 {
                     label: '设施类型',
@@ -123,20 +133,41 @@ export default {
         };
     },
     created() {
+        if (this.$store.getters['getAreaSelect'].length === 0) {
+            this.getorgTree();
+        }
         this.mixins_dataUrl = '/facility/page';
         this.mixins_query = {};
         this.mixins_search();
     },
     mounted() {
-        this.getorgTree();
         this.getTypeOptions();
     },
     methods: {
-        getorgTree() {},
+        getorgTree() {
+            this.$http
+                .get('/sc-community/assets/community/list')
+                .then((data) => {
+                    this.$store.commit('setAreaSelect', data.data);
+                })
+                .catch(function () {});
+        },
         deluserbyidFn(id) {
+            let ids = [];
+            if (!!id) {
+                ids = [id];
+            } else {
+                if (!this.selectRow.length) {
+                    this.$message.error('您尚未选择要删除的记录,请选择后再操作批量删除');
+                    return;
+                }
+                this.selectRow.forEach((v) => {
+                    ids.push(v.id);
+                });
+            }
             this.$msgBox(`删除`, '删除后将无法恢复,请问是否继续?')
                 .then(() => {
-                    this.$http.get('/facility/delete', { id: id }).then(({ status, data, msg }) => {
+                    this.$http.post('/facility/delete', ids).then(({ status, data, msg }) => {
                         if (0 === status) {
                             this.$message({
                                 type: 'success',
@@ -148,30 +179,6 @@ export default {
                 })
                 .catch(() => {});
         },
-        deluserbyidsFn() {
-            // 获取选中列表的ids
-            // let ids = [];
-            // if (!this.selectRow.length) {
-            //     this.$message.error('您尚未选择要删除的记录,请选择后再操作批量删除');
-            //     return;
-            // }
-            // this.selectRow.forEach((v) => {
-            //     ids.push(v.id);
-            // });
-            // this.$msgBox(`删除`, '删除后将无法恢复,请问是否继续?')
-            //     .then((_) => {
-            //         this.$http.post('/user/delete', ids).then(({ status, data, msg }) => {
-            //             if (0 === status) {
-            //                 this.$message({
-            //                     type: 'success',
-            //                     message: '删除成功!'
-            //                 });
-            //                 this.mixins_search();
-            //             }
-            //         });
-            //     })
-            //     .catch(() => {});
-        },
         addOrEdit(todo, data = {}) {
             new Promise((resolve) => {
                 let title = '添加设备管理';

+ 1 - 5
operationSupport/src/views/deviceManagement/indexType.vue

@@ -4,7 +4,6 @@
             <el-input placeholder="设施类型" class="search-input" clearable v-model="mixins_query.name"></el-input>
             <el-button type="primary" class="search-btn" @click="mixins_search" icon="el-icon-search">查询 </el-button>
             <div class="search-icon">
-           
                 <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
             </div>
         </div>
@@ -72,11 +71,8 @@ export default {
         this.mixins_query = {};
         this.mixins_search();
     },
-    mounted() {
-        this.getorgTree();
-    },
+    mounted() {},
     methods: {
-        getorgTree() {},
         deluserbyidFn(id) {
             this.$msgBox(`删除`, '删除后将无法恢复,请问是否继续?')
                 .then(() => {

+ 16 - 3
operationSupport/src/views/deviceManagement/popups/addDeviceManagement.vue

@@ -1,6 +1,11 @@
 <template>
     <div class="alert-body__main_content">
         <zz-form :cols="formCols" :data="formData" :rules="formRules" :errors="formErrors" labelWidth="120" ref="form">
+            <template slot="communityId">
+                <el-select v-model="formData.communityId">
+                    <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
+                </el-select>
+            </template>
             <template slot="productId">
                 <el-cascader
                     v-model="formData.productId"
@@ -21,10 +26,10 @@ export default {
         return {
             formData: {
                 productId: '',
-                communityId: 19,
+                communityId: '',
                 deviceNo: '',
                 deviceName: '',
-                address: '',
+                address: ''
                 // deviceStatus: 1
             },
             formCols: [
@@ -74,8 +79,15 @@ export default {
             }
         };
     },
+    computed: {
+        communityArr() {
+            return this.$store.getters['getAreaSelect'];
+        }
+    },
     methods: {
-        productChange(va) {},
+        productChange(va) {
+            
+        },
         submit() {
             new Promise((resolve) => {
                 this.$refs.form.validate(resolve);
@@ -107,6 +119,7 @@ export default {
         this.productOptions = this.params.productOptions;
         if (this.params.todo == 'edit') {
             this.formData = JSON.parse(JSON.stringify(this.params.data));
+            this.formData.productId = [null, null, this.formData.productId + ''];
         }
     }
 };

+ 11 - 1
operationSupport/src/views/deviceManagement/popups/addFacilities.vue

@@ -6,6 +6,11 @@
                     <el-option v-for="item in TypeOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
                 </el-select>
             </template>
+            <template slot="communityId">
+                <el-select v-model="formData.communityId">
+                    <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
+                </el-select>
+            </template>
         </zz-form>
     </div>
 </template>
@@ -19,7 +24,7 @@ export default {
                 facilityNo: '',
                 name: '',
                 address: '',
-                communityId: 19
+                communityId: ''
                 // facilityStatus: 1
             },
             formCols: [
@@ -64,6 +69,11 @@ export default {
             TypeOptions: []
         };
     },
+    computed: {
+        communityArr() {
+            return this.$store.getters['getAreaSelect'];
+        }
+    },
     methods: {
         productChange(va) {},
         submit() {

+ 0 - 4
operationSupport/src/views/ownerManagement/index.vue

@@ -318,8 +318,4 @@ export default {
 </script>
 <style lang='scss' scoped >
 @import './style.scss';
-.content.main {
-    height: 100%;
-    overflow: hidden;
-}
 </style>

+ 31 - 21
operationSupport/src/views/ownerManagement/stepPage/add.vue

@@ -28,30 +28,37 @@
                         </template>
                     </zz-form>
                     <!-- 查看审核 -->
-                    <template v-if="islooks">图片</template>
+                    <template v-if="islooks">
+                        <div class="lookImg">
+                            <img :src="formData.facePictureUrl" alt="" />
+                        </div>
+                    </template>
                     <!-- 添加编辑 -->
                     <template v-else>
-                        <el-upload
-                            :headers="token"
-                            ref="uploaduserlogo"
-                            class="mini-upload"
-                            limit="1"
-                            action="/sc-user-center/user/addMenuImag"
-                            list-type="picture-card"
-                            :on-success="uploadsuccess"
-                            :auto-upload="true"
-                            name="avatarfile"
-                        >
-                            <i slot="default" class="el-icon-plus"></i>
-                            <div slot="file" slot-scope="{ file }">
-                                <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
-                                <span class="el-upload-list__item-actions">
-                                    <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-                                        <i class="el-icon-delete"></i>
+                        <div @click="clickUpload">
+                            11111
+                            <el-upload
+                                :headers="token"
+                                ref="uploaduserlogo"
+                                class="mini-upload"
+                                limit="1"
+                                action="/sc-community/upload/uploadFile"
+                                list-type="picture-card"
+                                :on-success="uploadsuccess"
+                                :auto-upload="true"
+                                name="avatarfile"
+                            >
+                                <i slot="default" class="el-icon-plus"></i>
+                                <div slot="file" slot-scope="{ file }">
+                                    <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
+                                    <span class="el-upload-list__item-actions">
+                                        <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                                            <i class="el-icon-delete"></i>
+                                        </span>
                                     </span>
-                                </span>
-                            </div>
-                        </el-upload>
+                                </div>
+                            </el-upload>
+                        </div>
                     </template>
                 </div>
             </div>
@@ -473,6 +480,9 @@ export default {
                 }
             });
         },
+        clickUpload() {
+            this.$refs.uploaduserlogo.submit();
+        },
         handleRemove(file) {
             this.$refs.uploaduserlogo.clearFiles();
         },

+ 0 - 4
operationSupport/src/views/ownerManagement/style.scss

@@ -1,8 +1,4 @@
 @import "@assets/css/public-style.scss";
-.content.main {
-  height: 100%;
-  overflow: auto;
-}
 .formContent {
   display: flex;
   justify-content: space-between;