From 94bbf1bd090b120db582d91918de235746b42fc1 Mon Sep 17 00:00:00 2001
From: SHAOJIAHAO <55341701@qq.com>
Date: Thu, 13 Apr 2023 17:24:19 +0800
Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E7=AE=97=E6=B3=95=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
proxy.config.json | 2 +-
.../plan-admin/plan-admin.component.html | 8 -
.../pages/plan-admin/plan-admin.component.ts | 17 --
src/app/service/tree.service.ts | 59 +++----
.../algorithm-config.component.html | 58 +++++++
.../algorithm-config.component.scss | 99 +++++++++++
.../algorithm-config.component.ts | 155 ++++++++++++++++++
.../navigation/navigation.component.html | 2 +-
.../navigation/navigation.component.scss | 4 +-
.../navigation/navigation.component.ts | 5 +
.../system-management-routing.module.ts | 46 +++---
.../system-management.module.ts | 2 +
src/assets/images/icon/off.png | Bin 0 -> 1219 bytes
src/assets/images/icon/on.png | Bin 0 -> 1163 bytes
src/theme.less | 24 +++
15 files changed, 396 insertions(+), 85 deletions(-)
create mode 100644 src/app/system-management/algorithm-config/algorithm-config.component.html
create mode 100644 src/app/system-management/algorithm-config/algorithm-config.component.scss
create mode 100644 src/app/system-management/algorithm-config/algorithm-config.component.ts
create mode 100644 src/assets/images/icon/off.png
create mode 100644 src/assets/images/icon/on.png
diff --git a/proxy.config.json b/proxy.config.json
index e2148be..f1d1515 100644
--- a/proxy.config.json
+++ b/proxy.config.json
@@ -1,6 +1,6 @@
{
"/api": {
- "target": "https://znaq.sinochemoilmarketing.com/",
+ "target": "http://121.36.37.70:8906/",
"测试1": "http://121.36.37.70:8906/",
"测试2": "https://znaq.sinochemoilmarketing.com/",
"测试3": "https://gas.anxincloud.cn/",
diff --git a/src/app/pages/plan-admin/plan-admin.component.html b/src/app/pages/plan-admin/plan-admin.component.html
index dbe9fa0..e7ab85c 100644
--- a/src/app/pages/plan-admin/plan-admin.component.html
+++ b/src/app/pages/plan-admin/plan-admin.component.html
@@ -34,8 +34,6 @@
@@ -43,11 +41,5 @@
-
\ No newline at end of file
diff --git a/src/app/pages/plan-admin/plan-admin.component.ts b/src/app/pages/plan-admin/plan-admin.component.ts
index fea1f9e..f584e51 100644
--- a/src/app/pages/plan-admin/plan-admin.component.ts
+++ b/src/app/pages/plan-admin/plan-admin.component.ts
@@ -80,23 +80,6 @@ export class PlanAdminComponent implements OnInit {
})
this.organization = data.result.items
this.getStationsNum(data.result.items)
-
- // data.result.items.forEach(element => {
- // if (element.id == OrganizationUnitId) {
- // element.parentId = null
- // }
- // });
- // for (let index = 0; index < data.result.items.length; index++) {
- // const element = data.result.items[index];
- // element.key = element.id
- // element.title = element.displayName
- // }
- // this.orSpin = false
- // this.nodes = [...this.toTree.toTree(data.result.items)]
- // this.nzExpandedKeys = [OrganizationUnitId]
- // this.nzSelectedKeys = [OrganizationUnitId]
- // sessionStorage.setItem('planAdminOrid', OrganizationUnitId)
- // this.oilStationListComponent.onChildMethod()
})
}
diff --git a/src/app/service/tree.service.ts b/src/app/service/tree.service.ts
index 8753b54..1c28a4a 100644
--- a/src/app/service/tree.service.ts
+++ b/src/app/service/tree.service.ts
@@ -1,38 +1,29 @@
-import { Injectable } from '@angular/core';
+import { Injectable } from "@angular/core";
@Injectable()
export class TreeService {
-
-
- toTree(olddata){
- let newdata = []
- function getparentNode(parentId){
- return olddata.find((item)=>{
- return item.id == parentId
- })
- }
- olddata.forEach(item => {
- var parentNode = getparentNode(item.parentId);
- if(parentNode){
- if(!parentNode.children){
- parentNode.children = []
- }
-
- // if (parentNode.children.length == 0) {
- // item.isTop = true;
- // } else {
- // item.isTop = false;
- // parentNode.children[parentNode.children.length -1].isBottom = false;
- // }
- // item.isBottom = true;
-
- parentNode.children.push(item)
- }else{
- if(!item.parentId){//如果parentId为null
- newdata.push(item)
- }
- }
- });
- return newdata;
+ toTree(olddata) {
+ let newdata = [];
+ function getparentNode(parentId) {
+ return olddata.find((item) => {
+ return item.id == parentId;
+ });
}
-}
\ No newline at end of file
+ olddata.forEach((item) => {
+ var parentNode = getparentNode(item.parentId);
+ if (parentNode) {
+ parentNode.isLeaf = false;
+ if (!parentNode.children) {
+ parentNode.children = [];
+ }
+ parentNode.children.push(item);
+ } else {
+ if (!item.parentId) {
+ //如果parentId为null
+ newdata.push(item);
+ }
+ }
+ });
+ return newdata;
+ }
+}
diff --git a/src/app/system-management/algorithm-config/algorithm-config.component.html b/src/app/system-management/algorithm-config/algorithm-config.component.html
new file mode 100644
index 0000000..3f9cbe9
--- /dev/null
+++ b/src/app/system-management/algorithm-config/algorithm-config.component.html
@@ -0,0 +1,58 @@
+
+
+
+ 组织机构
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item}} |
+
+
+
+
+ {{item.stationName || '/'}} |
+ {{item.locationName || '/'}} |
+ {{item.companyName || '/'}} |
+
+
+
+ 
+
+
+ 
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/system-management/algorithm-config/algorithm-config.component.scss b/src/app/system-management/algorithm-config/algorithm-config.component.scss
new file mode 100644
index 0000000..fd57aef
--- /dev/null
+++ b/src/app/system-management/algorithm-config/algorithm-config.component.scss
@@ -0,0 +1,99 @@
+.box {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ box-sizing: border-box;
+}
+
+
+.orbox {
+ width: 250px;
+ height: 100%;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+ background: #fff;
+}
+
+.topbox {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+ margin-top: 12px;
+ padding: 0px 12px;
+
+ span {
+ color: #000D21;
+ margin-right: 16px;
+ font-family: sybold;
+ }
+
+ nz-input-group {
+ flex: 1;
+ }
+}
+
+.treebox {
+ margin-top: 12px;
+ flex: 1;
+ overflow-y: auto;
+ box-sizing: border-box;
+ padding: 0 6px;
+ padding-bottom: 12px;
+}
+
+
+.contentbox {
+ flex: 1;
+ background: #fff;
+ margin-left: 16px;
+ overflow-y: auto;
+ box-sizing: border-box;
+ padding: 12px;
+
+ .tableBox {
+ .dataItem {
+
+ .hover,
+ .item {
+ height: 48px;
+ line-height: 48px;
+ }
+
+ .hover {
+ display: none;
+
+
+ }
+
+ cursor: pointer;
+ }
+
+ .dataItem:hover {
+ .hover {
+ display: block;
+ width: 72px;
+ height: 48px;
+ border-radius: 12px;
+ overflow: hidden;
+ div{
+ display: inline-block;
+ width: 50%;
+ }
+ .on {
+ background: #1e1e1e;
+ }
+
+ .off {
+ background: #434446;
+ }
+ }
+
+ .item {
+ display: none;
+ }
+ }
+ }
+
+}
diff --git a/src/app/system-management/algorithm-config/algorithm-config.component.ts b/src/app/system-management/algorithm-config/algorithm-config.component.ts
new file mode 100644
index 0000000..50e3658
--- /dev/null
+++ b/src/app/system-management/algorithm-config/algorithm-config.component.ts
@@ -0,0 +1,155 @@
+import { HttpClient } from "@angular/common/http";
+import { Component, OnInit } from "@angular/core";
+import { NzMessageService } from "ng-zorro-antd/message";
+import { NzFormatEmitEvent } from "ng-zorro-antd/tree";
+import { TreeService } from "src/app/service/tree.service";
+
+@Component({
+ selector: "app-algorithm-config",
+ templateUrl: "./algorithm-config.component.html",
+ styleUrls: ["./algorithm-config.component.scss"],
+})
+export class AlgorithmConfigComponent implements OnInit {
+ constructor(
+ private http: HttpClient,
+ private toTree: TreeService,
+ private message: NzMessageService
+ ) {}
+
+ OrganizationUnitId: string;
+ ngOnInit(): void {
+ this.OrganizationUnitId =
+ sessionStorage.getItem("isGasStation") == "true"
+ ? JSON.parse(sessionStorage.getItem("userdataOfgasstation"))
+ .organization.id
+ : JSON.parse(sessionStorage.getItem("userdata")).organization.id;
+
+ this.getAllOrganization();
+ }
+
+ //获取所有组织机构
+ searchValue = "";
+ nzExpandAll = false;
+ totalCount: string;
+ organizationList; //组织机构列表
+ getAllOrganization() {
+ let params = {
+ OrganizationUnitId: this.OrganizationUnitId,
+ IsContainsChildren: "true",
+ };
+ this.http
+ .get("/api/services/app/Organization/GetAll", {
+ params: params,
+ })
+ .subscribe((data: any) => {
+ data.result.items = data.result.items.filter((item, i) => {
+ return !item.isGasStation;
+ });
+ this.organizationList = data.result.items;
+ this.getStationsNum(data.result.items);
+ });
+ }
+
+ //获得组织机构下有多少油站
+ stationsList;
+ nodes: any[] = [];
+ nzExpandedKeys = [];
+ nzSelectedKeys: any[] = [];
+ getStationsNum(e) {
+ this.http
+ .get(
+ "/api/services/app/GasStation/GetCountsByOrganizations?IsContainsChildren=true"
+ )
+ .subscribe((data: any) => {
+ this.stationsList = data.result;
+ const arrs = e.map((item) => {
+ const data = this.stationsList.find(
+ (i) => item.id == i.organizationId
+ );
+ return {
+ ...item,
+ products: data ? data : false,
+ };
+ });
+ for (let index = 0; index < arrs.length; index++) {
+ arrs[index].isLeaf = true;
+ if (arrs[index].id == this.OrganizationUnitId) {
+ arrs[index].parentId = null;
+ }
+ arrs[index].title =
+ arrs[index].displayName +
+ " " +
+ `(${
+ arrs[index].products ? arrs[index].products.stationsCount : 0
+ })`;
+ arrs[index].key = arrs[index].id;
+ }
+ this.nodes = [...this.toTree.toTree(arrs)];
+ this.nzExpandedKeys = [this.OrganizationUnitId];
+ this.nzSelectedKeys = [this.OrganizationUnitId];
+ this.selectedOrId = this.OrganizationUnitId;
+ this.getStationViolationConfigList();
+ });
+ }
+
+ selectedOrId: any;
+ nzClick(event: NzFormatEmitEvent): void {
+ console.log(event.node.origin);
+ this.selectedOrId = event.node.origin.id;
+ this.getStationViolationConfigList();
+ }
+
+ SkipCount = 0;
+ MaxResultCount = 100;
+ isLoading = false;
+ listOfData: any[] = [];
+ thList = [];
+ getStationViolationConfigList() {
+ let params = {
+ OrganizationUnitId: this.selectedOrId,
+ IsContainsChildren: true,
+ SkipCount: this.SkipCount,
+ MaxResultCount: this.MaxResultCount,
+ };
+ this.isLoading = true;
+ this.http
+ .get("/api/services/app/Violation/GetStationViolationConfigList", {
+ params: params,
+ })
+ .subscribe({
+ next: (data: any) => {
+ this.isLoading = false;
+ this.listOfData = data.result;
+
+ if (this.listOfData && this.listOfData.length !== 0) {
+ let arr1 = ["油站名称", "区域名称", "公司名称"];
+ let arr2 = [];
+ this.listOfData[0].stationViolations.forEach((item) => {
+ arr2.push(item.violation.eventSystemName);
+ });
+ this.thList = arr1.concat(arr2);
+ }
+
+ console.log("台账列表", data.result);
+ },
+ error: (err) => {},
+ });
+ }
+
+ change(item, type) {
+ this.isLoading = true;
+ let body = {
+ stationId: item.stationId,
+ violationId: item.violation.id,
+ disabled: type,
+ };
+
+ this.http
+ .post("/api/services/app/Violation/UpdateStationViolation", body)
+ .subscribe((data) => {
+ this.isLoading = false;
+ this.message.create("success", "修改成功");
+ item.disabled = type
+ });
+ }
+}
diff --git a/src/app/system-management/navigation/navigation.component.html b/src/app/system-management/navigation/navigation.component.html
index 8d9c5d7..e8ddada 100644
--- a/src/app/system-management/navigation/navigation.component.html
+++ b/src/app/system-management/navigation/navigation.component.html
@@ -1,6 +1,6 @@
-
+
diff --git a/src/app/system-management/navigation/navigation.component.scss b/src/app/system-management/navigation/navigation.component.scss
index ed70c50..99f77ca 100644
--- a/src/app/system-management/navigation/navigation.component.scss
+++ b/src/app/system-management/navigation/navigation.component.scss
@@ -41,7 +41,7 @@ nz-sider {
.nav {
ul {
li {
- width: 300px;
+ width: 220px;
height: 40px;
cursor: pointer;
display: flex;
@@ -49,7 +49,7 @@ nz-sider {
justify-content: left;
margin-bottom: 16px;
box-sizing: border-box;
- padding-left: 26%;
+ padding-left: 20%;
img {
margin-right: 8px;
diff --git a/src/app/system-management/navigation/navigation.component.ts b/src/app/system-management/navigation/navigation.component.ts
index f68c055..10148f1 100644
--- a/src/app/system-management/navigation/navigation.component.ts
+++ b/src/app/system-management/navigation/navigation.component.ts
@@ -62,6 +62,11 @@ export class NavigationComponent implements OnInit {
url: "/system/menu",
img: "../../../assets/images/icon/license.png",
},
+ {
+ name: "算法配置管理",
+ url: "/system/algorithm",
+ img: "../../../assets/images/icon/license.png",
+ },
];
name;
diff --git a/src/app/system-management/system-management-routing.module.ts b/src/app/system-management/system-management-routing.module.ts
index 573a29e..06d2b31 100644
--- a/src/app/system-management/system-management-routing.module.ts
+++ b/src/app/system-management/system-management-routing.module.ts
@@ -1,28 +1,30 @@
-import { Routes, RouterModule } from '@angular/router';
-import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from "@angular/router";
+import { NgModule } from "@angular/core";
-import { AuthGuard } from '../auth.guard'
-import { RoleComponent } from './role/role.component';
-import { OrganizationComponent } from './organization/organization.component';
-import { UserComponent } from './user/user.component';
-import { AnalysisOfTheHostComponent } from './analysis-of-the-host/analysis-of-the-host.component';
-import { PushComponent } from './push/push.component';
-import { UpdateOfLicenseComponent } from './update-of-license/update-of-license.component';
-import { FileOfLicenseComponent } from './file-of-license/file-of-license.component';
-import { MenuComponent } from './menu/menu.component'
+import { AuthGuard } from "../auth.guard";
+import { RoleComponent } from "./role/role.component";
+import { OrganizationComponent } from "./organization/organization.component";
+import { UserComponent } from "./user/user.component";
+import { AnalysisOfTheHostComponent } from "./analysis-of-the-host/analysis-of-the-host.component";
+import { PushComponent } from "./push/push.component";
+import { UpdateOfLicenseComponent } from "./update-of-license/update-of-license.component";
+import { FileOfLicenseComponent } from "./file-of-license/file-of-license.component";
+import { MenuComponent } from "./menu/menu.component";
+import { AlgorithmConfigComponent } from "./algorithm-config/algorithm-config.component";
const routes: Routes = [
- { path: 'organization', component: OrganizationComponent },
- { path: 'user', component: UserComponent },
- { path: 'role', component: RoleComponent },
- { path: 'host', component: AnalysisOfTheHostComponent },
- { path: 'push', component: PushComponent },
- { path: 'fileOfLicense', component: FileOfLicenseComponent },
- { path: 'updateOfLicense', component: UpdateOfLicenseComponent },
- { path: 'menu', component: MenuComponent }
+ { path: "organization", component: OrganizationComponent },
+ { path: "user", component: UserComponent },
+ { path: "role", component: RoleComponent },
+ { path: "host", component: AnalysisOfTheHostComponent },
+ { path: "push", component: PushComponent },
+ { path: "fileOfLicense", component: FileOfLicenseComponent },
+ { path: "updateOfLicense", component: UpdateOfLicenseComponent },
+ { path: "menu", component: MenuComponent },
+ { path: "algorithm", component: AlgorithmConfigComponent },
];
@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
})
-export class SystemRoutingModule { }
+export class SystemRoutingModule {}
diff --git a/src/app/system-management/system-management.module.ts b/src/app/system-management/system-management.module.ts
index 3dda192..85b9f77 100644
--- a/src/app/system-management/system-management.module.ts
+++ b/src/app/system-management/system-management.module.ts
@@ -50,6 +50,7 @@ import { NzSwitchModule } from "ng-zorro-antd/switch";
import { NzNotificationModule } from "ng-zorro-antd/notification";
import { DragDropModule } from "@angular/cdk/drag-drop";
import { NzToolTipModule } from "ng-zorro-antd/tooltip";
+import { AlgorithmConfigComponent } from './algorithm-config/algorithm-config.component';
@NgModule({
declarations: [
OrganizationComponent,
@@ -80,6 +81,7 @@ import { NzToolTipModule } from "ng-zorro-antd/tooltip";
EditmenuComponent,
MenusComponent,
WarningEventsComponent,
+ AlgorithmConfigComponent,
],
imports: [
CommonModule,
diff --git a/src/assets/images/icon/off.png b/src/assets/images/icon/off.png
new file mode 100644
index 0000000000000000000000000000000000000000..94a577702c6a42890a7fa214de4cf458247c14e6
GIT binary patch
literal 1219
zcmaJ>ZEO=|9KWuJgKb)tB@7hza6`hvdUw6<+TGEzcD-(^;l?OUm}DWnmuKsx+{^B6
zwp+3Z3(nRkA0R;kS%d@PHf+CTM~&J~!6k2kRww&r5#4
z-~a8GD~}8hwrt(G6~nNW)DWLWYn%HvZbsjC%DY<7vcpM^I!BFhryyDoiz|i%K}r)R
zU>b_b^yHT?f??jhYG%|K6%KK-p%J2sA&Q!b*ccY+E1II5hYpb7gsMmJhfAN~Kvkmn
zF-D*SGXZnz(2NC-&J1VdnY_#@c;7(~DRM|agN_J_+DYB!icx$`mqUB^n#92x#K}kT
zCrOP8BOqZ|5QGWZFH;l+!YsjrLQs+!sizyz6it&9LsG1t>g8yLV;Hdh;3%M_jB{yz
zU_BffwK3I(DNBn)eU46rOqQZz}^euVJb)4C%T{kq**Q{bU3TdL`(h7Mds
zQ8K2SD2|eSQiW!2$m;fbr%=zxqG*x0R`dzp_;aVww*M5n(u!K+nH$-l4)og
zQm-&L()44+R2AzCX+}y~z;W8=`~p02`=rc|)GkpzhST%2O_1m+RU=
zGf`w7TIy?18L$iutkuk^^>c~W)m!H(^>gX3%Oz1Vq&wMvO}ci4?Bi}XtcwmC=7&0R
zyoIc-U;q0YhIxW1KAtIlFa34D`*uvY#m7!yC1~EchE;X&aj=lK&^6RJC
z@4XO;MJ{EwzvT_|`I@|wp>v<$zK4m**W2>h{jEzcm1o;ZuU>iJ19OLNyi0nkQ{dZ8
z(h)#3NVDL=nXmr9s>jovaChs{_R`OnADoYky)xW=_}NNFP9jf#xA=qd`<7Dpa`_o=
zbI^Hwa*m|I?yx6$>_L=4z4N}*hxhCKJfy(=y3LN_B&yIVs
zfvdlbcrV_~uI~2j&sIGLzMU1$_n7@fo#)MiDRB1REzCn61GXJ#jv#2K@?o4r}H&`p=kg0T<5`MF7^apq2D
z?z)@!vfEnCqJl1MEongth0;C*VlkAK)Y1+u3Z+m=wZ#{GDU_(~LvcX`@5F5EL)U?s
z`@=csJKuM|JC)4vq0p9{TNs83rG{XZjxPuArWX1=SJ@q+LpvE9B_nv86jT>6aRX}z
zq%3s;Wsz#kOkYF&46|XcnHwde>DLq;TbvqTxT57yHpBEEEIO(_g$U5lglR|F`(IyW
zfoVk9!%|vEI|(#t4$Zn~WOg{G&ra#G!5%yS`ilw`un(N-@f=>MC>|Z1XHw
zg^;Nz`_$BEIs+2eMWBxp!@3{{pikzc-d?2XlGf7&L_rjJLE;5DEbLQ6Ns%P5_OLXd
zYm6&dm|P1-S5bD75J%zpLZQGFx;gAl@DW*-c|qhwF-#F*Z^kBSF>HGsbp?n#-8CIz
zVjBdCs)q9<%2KmWv#^|XS=(Ey6s;LwR2@FT2|-qMU^@MLsAa9AJ(5Mw{Qj@7mz!}A
zpG6+dyE;9)@s1#rqa<9U671$MK2|SeW)c(ZO=1U#-CPfN^{{ChxZriJ64GfUWqU-m
zb(DfpmP&A@X()+-$Y5U_CZG&^BauNUC%a)HAt!qUXJ
zK|5FujSP`%9!Eyf#THo2Suq=Xi8s_+;~I^<3^e5O)C?b-?0-(WzD3(7n69@jU92}h
zvT4V=w6%X%Q}57g@h}DBx#Axhng9DzdA?LBUoXAU@&hxy=Su5GA^%MICgZCge+xRm
zShGJLyVdIF-~Ce9I`{KHXsXjzr>Yc=i2dnI+(
z`PLJg{e@cfCl-9O(I0VkEVa!&zEHatd(?KRyqHmT%{^#d1l9R`Y~_^CH{UsP@}(uI
z`a#>TSHR+NuoYJKGydb+cN@2N{#d%%^m)?@uvFW${omW47|UnzmhKCI0>f
z?e(s|?lu1d-4{>qj;);D`#vOBDzV!rrq=-cT
literal 0
HcmV?d00001
diff --git a/src/theme.less b/src/theme.less
index 9de403f..6e272d5 100644
--- a/src/theme.less
+++ b/src/theme.less
@@ -610,7 +610,31 @@
}
}
+#algorithmConfig {
+ .ant-table-thead>tr>th {
+ background: rgba(145, 204, 255, 0.2);
+ font-family: sybold;
+ padding: 3px 0px;
+ text-align: center;
+ }
+ .ant-table-thead>tr>th:first-child {
+ padding: 3px 5px;
+ text-align: left;
+ }
+
+ .ant-table-tbody>tr>td {
+ padding: 12px 0px;
+ text-align: center;
+ width: 72px;
+ min-width: 72px;
+ }
+
+ .ant-table-tbody>tr>td:first-child {
+ padding: 12px 5px;
+ text-align: left;
+ }
+}
//蓝色 表格 tree-通知时间