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-通知时间