From f8e65572891182da7db88864dcd3ac4dc25eedcd Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Thu, 5 Nov 2020 15:12:49 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=A4=9A=E4=BD=99=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/ui/authority/authority.component.html | 25 - src/app/ui/authority/authority.component.scss | 30 - src/app/ui/authority/authority.component.ts | 144 ---- .../authority/createauthority.component.html | 36 - src/app/ui/badge/badge.component.html | 18 - src/app/ui/badge/badge.component.scss | 3 - src/app/ui/badge/badge.component.spec.ts | 25 - src/app/ui/badge/badge.component.ts | 14 - src/app/ui/button/button.component.html | 6 - src/app/ui/button/button.component.scss | 0 src/app/ui/button/button.component.spec.ts | 25 - src/app/ui/button/button.component.ts | 89 -- src/app/ui/card/card.component.html | 12 - src/app/ui/card/card.component.scss | 10 - src/app/ui/card/card.component.spec.ts | 25 - src/app/ui/card/card.component.ts | 15 - .../ui/dateselect/dateselect.component.html | 11 - .../ui/dateselect/dateselect.component.scss | 7 - .../dateselect/dateselect.component.spec.ts | 25 - src/app/ui/dateselect/dateselect.component.ts | 23 - .../addenterpriseuser.component.html | 44 - .../addenterpriseuser.component.ts | 35 - .../ui/enterpriseuser/editenterpriseuser.html | 40 - .../enterpriseuser.component.html | 78 -- .../enterpriseuser.component.scss | 38 - .../enterpriseuser.component.spec.ts | 25 - .../enterpriseuser.component.ts | 241 ------ .../ui/enterpriseuser/seeenterpriseuser.html | 29 - .../addBuilt-in.html | 20 - .../addBuilt-inAttribute.html | 34 - .../addFireFightingFacilitiesFormwork.html | 20 - .../addOptional.html | 37 - .../addOptionalAttribute.html | 71 -- .../editBuilt-inAttribute.html | 40 - .../editFireFightingFacilitiesFormwork.html | 20 - .../editOptionalAttribute.html | 76 -- ...ighting-facilities-formwork.component.html | 189 ---- ...ighting-facilities-formwork.component.scss | 80 -- ...ting-facilities-formwork.component.spec.ts | 25 - ...-fighting-facilities-formwork.component.ts | 806 ------------------ .../editingFireControl.html | 45 - .../fire-fighting-template.component.html | 36 - .../fire-fighting-template.component.scss | 18 - .../fire-fighting-template.component.ts | 309 ------- .../newFireFighting.html | 44 - .../editingFireControl.html | 47 - .../fire-protection-elements/establish.html | 41 - .../fire-protection-elements.component.html | 67 -- .../fire-protection-elements.component.scss | 36 - .../fire-protection-elements.component.ts | 284 ------ src/app/ui/grid/grid.component.html | 34 - src/app/ui/grid/grid.component.scss | 12 - src/app/ui/grid/grid.component.spec.ts | 25 - src/app/ui/grid/grid.component.ts | 15 - src/app/ui/list/list.component.html | 63 -- src/app/ui/list/list.component.scss | 0 src/app/ui/list/list.component.spec.ts | 25 - src/app/ui/list/list.component.ts | 28 - src/app/ui/material-bank/addAttribute.html | 71 -- .../addmatlibrary.component.html | 23 - .../material-bank/addmatlibrary.component.ts | 52 -- .../addoriginalcopy.component.html | 147 ---- .../addoriginalcopy.component.ts | 242 ------ src/app/ui/material-bank/attribute.html | 94 -- src/app/ui/material-bank/editAttribute.html | 71 -- .../editmatlibrary.component.html | 23 - .../material-bank/editmatlibrary.component.ts | 41 - .../editoriginalcopy.component.html | 149 ---- .../editoriginalcopy.component.ts | 305 ------- .../material-bank.component.html | 68 -- .../material-bank.component.scss | 310 ------- .../material-bank/material-bank.component.ts | 572 ------------- .../selectoriginalcopy.component.html | 22 - .../selectoriginalcopy.component.ts | 103 --- src/app/ui/menu/menu.component.html | 66 -- src/app/ui/menu/menu.component.scss | 0 src/app/ui/menu/menu.component.spec.ts | 25 - src/app/ui/menu/menu.component.ts | 15 - .../ui/navmenus/createmenus.component.html | 24 - src/app/ui/navmenus/editmenus.component.html | 24 - src/app/ui/navmenus/navmenus.component.html | 27 - src/app/ui/navmenus/navmenus.component.scss | 34 - .../ui/navmenus/navmenus.component.spec.ts | 25 - src/app/ui/navmenus/navmenus.component.ts | 228 ----- .../createorganization.component.html | 33 - .../editorganization.component.html | 50 -- .../organization/organization.component.html | 42 - .../organization/organization.component.scss | 71 -- .../ui/organization/organization.component.ts | 558 ------------ src/app/ui/progress/progress.component.html | 13 - src/app/ui/progress/progress.component.scss | 0 .../ui/progress/progress.component.spec.ts | 25 - src/app/ui/progress/progress.component.ts | 15 - src/app/ui/role/createrole.component.html | 54 -- src/app/ui/role/editrole.component.html | 57 -- src/app/ui/role/role.component.html | 42 - src/app/ui/role/role.component.scss | 49 -- src/app/ui/role/role.component.ts | 644 -------------- src/app/ui/slide/slide.component.html | 1 - src/app/ui/slide/slide.component.scss | 0 src/app/ui/slide/slide.component.spec.ts | 25 - src/app/ui/slide/slide.component.ts | 22 - src/app/ui/snackbar/snackbar.component.html | 10 - src/app/ui/snackbar/snackbar.component.scss | 0 .../ui/snackbar/snackbar.component.spec.ts | 25 - src/app/ui/snackbar/snackbar.component.ts | 19 - src/app/ui/stepper/stepper.component.html | 51 -- src/app/ui/stepper/stepper.component.scss | 0 src/app/ui/stepper/stepper.component.spec.ts | 25 - src/app/ui/stepper/stepper.component.ts | 23 - src/app/ui/tabgroup/tabgroup.component.html | 22 - src/app/ui/tabgroup/tabgroup.component.scss | 0 .../ui/tabgroup/tabgroup.component.spec.ts | 25 - src/app/ui/tabgroup/tabgroup.component.ts | 17 - src/app/ui/ui-routing.module.ts | 42 +- src/app/ui/ui.module.ts | 31 +- .../dialog-overview-example-dialog.html | 69 -- src/app/ui/unittype/editorialUnit.html | 48 -- src/app/ui/unittype/unittype.component.html | 55 -- src/app/ui/unittype/unittype.component.scss | 30 - src/app/ui/unittype/unittype.component.ts | 307 ------- src/app/ui/usermanagement/allRoles.html | 29 - src/app/ui/usermanagement/createUser.html | 70 -- src/app/ui/usermanagement/editUser.html | 63 -- src/app/ui/usermanagement/seeInformation.html | 29 - .../usermanagement.component.html | 112 --- .../usermanagement.component.scss | 155 ---- .../usermanagement.component.ts | 549 ------------ 128 files changed, 2 insertions(+), 9886 deletions(-) delete mode 100644 src/app/ui/authority/authority.component.html delete mode 100644 src/app/ui/authority/authority.component.scss delete mode 100644 src/app/ui/authority/authority.component.ts delete mode 100644 src/app/ui/authority/createauthority.component.html delete mode 100644 src/app/ui/badge/badge.component.html delete mode 100644 src/app/ui/badge/badge.component.scss delete mode 100644 src/app/ui/badge/badge.component.spec.ts delete mode 100644 src/app/ui/badge/badge.component.ts delete mode 100644 src/app/ui/button/button.component.html delete mode 100644 src/app/ui/button/button.component.scss delete mode 100644 src/app/ui/button/button.component.spec.ts delete mode 100644 src/app/ui/button/button.component.ts delete mode 100644 src/app/ui/card/card.component.html delete mode 100644 src/app/ui/card/card.component.scss delete mode 100644 src/app/ui/card/card.component.spec.ts delete mode 100644 src/app/ui/card/card.component.ts delete mode 100644 src/app/ui/dateselect/dateselect.component.html delete mode 100644 src/app/ui/dateselect/dateselect.component.scss delete mode 100644 src/app/ui/dateselect/dateselect.component.spec.ts delete mode 100644 src/app/ui/dateselect/dateselect.component.ts delete mode 100644 src/app/ui/enterpriseuser/addenterpriseuser.component.html delete mode 100644 src/app/ui/enterpriseuser/addenterpriseuser.component.ts delete mode 100644 src/app/ui/enterpriseuser/editenterpriseuser.html delete mode 100644 src/app/ui/enterpriseuser/enterpriseuser.component.html delete mode 100644 src/app/ui/enterpriseuser/enterpriseuser.component.scss delete mode 100644 src/app/ui/enterpriseuser/enterpriseuser.component.spec.ts delete mode 100644 src/app/ui/enterpriseuser/enterpriseuser.component.ts delete mode 100644 src/app/ui/enterpriseuser/seeenterpriseuser.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/addBuilt-in.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/addBuilt-inAttribute.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/addFireFightingFacilitiesFormwork.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/addOptional.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/addOptionalAttribute.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/editBuilt-inAttribute.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/editFireFightingFacilitiesFormwork.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/editOptionalAttribute.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.html delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.scss delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.spec.ts delete mode 100644 src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.ts delete mode 100644 src/app/ui/fire-fighting-template/editingFireControl.html delete mode 100644 src/app/ui/fire-fighting-template/fire-fighting-template.component.html delete mode 100644 src/app/ui/fire-fighting-template/fire-fighting-template.component.scss delete mode 100644 src/app/ui/fire-fighting-template/fire-fighting-template.component.ts delete mode 100644 src/app/ui/fire-fighting-template/newFireFighting.html delete mode 100644 src/app/ui/fire-protection-elements/editingFireControl.html delete mode 100644 src/app/ui/fire-protection-elements/establish.html delete mode 100644 src/app/ui/fire-protection-elements/fire-protection-elements.component.html delete mode 100644 src/app/ui/fire-protection-elements/fire-protection-elements.component.scss delete mode 100644 src/app/ui/fire-protection-elements/fire-protection-elements.component.ts delete mode 100644 src/app/ui/grid/grid.component.html delete mode 100644 src/app/ui/grid/grid.component.scss delete mode 100644 src/app/ui/grid/grid.component.spec.ts delete mode 100644 src/app/ui/grid/grid.component.ts delete mode 100644 src/app/ui/list/list.component.html delete mode 100644 src/app/ui/list/list.component.scss delete mode 100644 src/app/ui/list/list.component.spec.ts delete mode 100644 src/app/ui/list/list.component.ts delete mode 100644 src/app/ui/material-bank/addAttribute.html delete mode 100644 src/app/ui/material-bank/addmatlibrary.component.html delete mode 100644 src/app/ui/material-bank/addmatlibrary.component.ts delete mode 100644 src/app/ui/material-bank/addoriginalcopy.component.html delete mode 100644 src/app/ui/material-bank/addoriginalcopy.component.ts delete mode 100644 src/app/ui/material-bank/attribute.html delete mode 100644 src/app/ui/material-bank/editAttribute.html delete mode 100644 src/app/ui/material-bank/editmatlibrary.component.html delete mode 100644 src/app/ui/material-bank/editmatlibrary.component.ts delete mode 100644 src/app/ui/material-bank/editoriginalcopy.component.html delete mode 100644 src/app/ui/material-bank/editoriginalcopy.component.ts delete mode 100644 src/app/ui/material-bank/material-bank.component.html delete mode 100644 src/app/ui/material-bank/material-bank.component.scss delete mode 100644 src/app/ui/material-bank/material-bank.component.ts delete mode 100644 src/app/ui/material-bank/selectoriginalcopy.component.html delete mode 100644 src/app/ui/material-bank/selectoriginalcopy.component.ts delete mode 100644 src/app/ui/menu/menu.component.html delete mode 100644 src/app/ui/menu/menu.component.scss delete mode 100644 src/app/ui/menu/menu.component.spec.ts delete mode 100644 src/app/ui/menu/menu.component.ts delete mode 100644 src/app/ui/navmenus/createmenus.component.html delete mode 100644 src/app/ui/navmenus/editmenus.component.html delete mode 100644 src/app/ui/navmenus/navmenus.component.html delete mode 100644 src/app/ui/navmenus/navmenus.component.scss delete mode 100644 src/app/ui/navmenus/navmenus.component.spec.ts delete mode 100644 src/app/ui/navmenus/navmenus.component.ts delete mode 100644 src/app/ui/organization/createorganization.component.html delete mode 100644 src/app/ui/organization/editorganization.component.html delete mode 100644 src/app/ui/organization/organization.component.html delete mode 100644 src/app/ui/organization/organization.component.scss delete mode 100644 src/app/ui/organization/organization.component.ts delete mode 100644 src/app/ui/progress/progress.component.html delete mode 100644 src/app/ui/progress/progress.component.scss delete mode 100644 src/app/ui/progress/progress.component.spec.ts delete mode 100644 src/app/ui/progress/progress.component.ts delete mode 100644 src/app/ui/role/createrole.component.html delete mode 100644 src/app/ui/role/editrole.component.html delete mode 100644 src/app/ui/role/role.component.html delete mode 100644 src/app/ui/role/role.component.scss delete mode 100644 src/app/ui/role/role.component.ts delete mode 100644 src/app/ui/slide/slide.component.html delete mode 100644 src/app/ui/slide/slide.component.scss delete mode 100644 src/app/ui/slide/slide.component.spec.ts delete mode 100644 src/app/ui/slide/slide.component.ts delete mode 100644 src/app/ui/snackbar/snackbar.component.html delete mode 100644 src/app/ui/snackbar/snackbar.component.scss delete mode 100644 src/app/ui/snackbar/snackbar.component.spec.ts delete mode 100644 src/app/ui/snackbar/snackbar.component.ts delete mode 100644 src/app/ui/stepper/stepper.component.html delete mode 100644 src/app/ui/stepper/stepper.component.scss delete mode 100644 src/app/ui/stepper/stepper.component.spec.ts delete mode 100644 src/app/ui/stepper/stepper.component.ts delete mode 100644 src/app/ui/tabgroup/tabgroup.component.html delete mode 100644 src/app/ui/tabgroup/tabgroup.component.scss delete mode 100644 src/app/ui/tabgroup/tabgroup.component.spec.ts delete mode 100644 src/app/ui/tabgroup/tabgroup.component.ts delete mode 100644 src/app/ui/unittype/dialog-overview-example-dialog.html delete mode 100644 src/app/ui/unittype/editorialUnit.html delete mode 100644 src/app/ui/unittype/unittype.component.html delete mode 100644 src/app/ui/unittype/unittype.component.scss delete mode 100644 src/app/ui/unittype/unittype.component.ts delete mode 100644 src/app/ui/usermanagement/allRoles.html delete mode 100644 src/app/ui/usermanagement/createUser.html delete mode 100644 src/app/ui/usermanagement/editUser.html delete mode 100644 src/app/ui/usermanagement/seeInformation.html delete mode 100644 src/app/ui/usermanagement/usermanagement.component.html delete mode 100644 src/app/ui/usermanagement/usermanagement.component.scss delete mode 100644 src/app/ui/usermanagement/usermanagement.component.ts diff --git a/src/app/ui/authority/authority.component.html b/src/app/ui/authority/authority.component.html deleted file mode 100644 index 8acc302..0000000 --- a/src/app/ui/authority/authority.component.html +++ /dev/null @@ -1,25 +0,0 @@ -
- - - - {{node.name}} - - - - - - - - {{node.name}} - - - - - -
\ No newline at end of file diff --git a/src/app/ui/authority/authority.component.scss b/src/app/ui/authority/authority.component.scss deleted file mode 100644 index dea1283..0000000 --- a/src/app/ui/authority/authority.component.scss +++ /dev/null @@ -1,30 +0,0 @@ -table { - width: 100%; - th,td{ - text-align: center; - } -} -form{ - text-align: center; - button{ - margin: 0 12px; - } -} -mat-tree{ - width: 500px; - button{ - display: block; - float: right; - } - mat-tree-node{ - position: relative; - .deleted{ - position: absolute; - right: 0; - } - .create{ - position: absolute; - right: 40px; - } - } -} diff --git a/src/app/ui/authority/authority.component.ts b/src/app/ui/authority/authority.component.ts deleted file mode 100644 index 239757c..0000000 --- a/src/app/ui/authority/authority.component.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { HttpClient } from '@angular/common/http'; -import { TreeService } from '../../http-interceptors/tree.service' -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -export interface authority { - id: string, - name: string, - value: string, - order: number, - parentId: string -} -@Component({ - selector: 'app-authority', - templateUrl: './authority.component.html', - styleUrls: ['./authority.component.scss'] -}) -export class AuthorityComponent implements OnInit { - - data:any =[] - newdata = []; - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - constructor(private http: HttpClient,public dialog: MatDialog,private tree:TreeService) { } - - //重新拉去列表函数 - getlist = ():void=>{ - this.http.get('/api/Permissions').subscribe((data: any[])=>{ - this.newdata = this.tree.toTree(data) - const nodes = this.treeControl.dataNodes; - const expandNodes = []; - nodes.forEach((item) => { - if(item.expandable && this.treeControl.isExpanded(item)){ - expandNodes.push(item.id); - } - }); - this.dataSource.data = this.newdata; - let newNodes = this.treeControl.dataNodes; - newNodes = newNodes.filter(n => { - return expandNodes.indexOf(n.id) >= 0; - }); - newNodes.forEach(item => { - this.treeControl.expand(item); - }); - }) - } - - //初始化视图 - ngOnInit() { - this.http.get('/api/Permissions').subscribe((data: any[])=>{ - this.dataSource.data = this.tree.toTree(data) - }) - } - hasChild = (_: number, node: any) => node.expandable; - - //创建按钮 - createauthority(value){ - const dialogRef = this.dialog.open(CreateAuthority, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {id:value.id} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.newdata = [] - this.getlist() - } - } - ); - } - //删除按钮 - deleted(authority){ - var isdeleted = confirm("确定要删除此用户吗?") - if(isdeleted){ - //请求删除接口 - this.newdata = [] - this.http.delete(`/api/Permissions/${authority.id}`).subscribe( data=>{ - this.getlist() - }) - } - } -} - - -//创建组件 -@Component({ - selector: 'createauthority', - templateUrl: './createauthority.component.html', - styleUrls: ['./authority.component.scss'] -}) -export class CreateAuthority { - myControl = new FormControl(); - options: string[] = ['0', '1','2', '3','4', '5','6', '7','8']; - - //注入MatDialogRef,可以用来关闭对话框 - //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,public snackBar: MatSnackBar, - @Inject(MAT_DIALOG_DATA) public data) {} - - onNoClick(): void { - this.dialogRef.close(); - } - onSubmit(value){ - - if(value.parentId == "null"){ - value.parentId = null - } - //编写请求创建用户接口(value是参数)//并且刷新一下 - this.http.post( - '/api/Permissions', - { - id: '', - name: value.name, - value: value.value, - order: Number(value.order), - parentId: this.data.id - } - ).subscribe( - data=>{ - this.dialogRef.close(data); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - } -} \ No newline at end of file diff --git a/src/app/ui/authority/createauthority.component.html b/src/app/ui/authority/createauthority.component.html deleted file mode 100644 index b8e7500..0000000 --- a/src/app/ui/authority/createauthority.component.html +++ /dev/null @@ -1,36 +0,0 @@ -
- - - - - - - - - - - - - - - {{option}} - - - - - -
- - -
- -
\ No newline at end of file diff --git a/src/app/ui/badge/badge.component.html b/src/app/ui/badge/badge.component.html deleted file mode 100644 index ef434c9..0000000 --- a/src/app/ui/badge/badge.component.html +++ /dev/null @@ -1,18 +0,0 @@ -

- 未读信息 -

- -

- -

- -

- home -

- diff --git a/src/app/ui/badge/badge.component.scss b/src/app/ui/badge/badge.component.scss deleted file mode 100644 index d91e4df..0000000 --- a/src/app/ui/badge/badge.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -p{ - margin: 30px; -} \ No newline at end of file diff --git a/src/app/ui/badge/badge.component.spec.ts b/src/app/ui/badge/badge.component.spec.ts deleted file mode 100644 index 21c0577..0000000 --- a/src/app/ui/badge/badge.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { BadgeComponent } from './badge.component'; - -describe('BadgeComponent', () => { - let component: BadgeComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ BadgeComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(BadgeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/badge/badge.component.ts b/src/app/ui/badge/badge.component.ts deleted file mode 100644 index a64e7c1..0000000 --- a/src/app/ui/badge/badge.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-badge', - templateUrl: './badge.component.html', - styleUrls: ['./badge.component.scss'] -}) -export class BadgeComponent implements OnInit { - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/ui/button/button.component.html b/src/app/ui/button/button.component.html deleted file mode 100644 index 1c1d3c0..0000000 --- a/src/app/ui/button/button.component.html +++ /dev/null @@ -1,6 +0,0 @@ - -
    -
  • {{item.name}}
  • -
- - \ No newline at end of file diff --git a/src/app/ui/button/button.component.scss b/src/app/ui/button/button.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/button/button.component.spec.ts b/src/app/ui/button/button.component.spec.ts deleted file mode 100644 index 794fc67..0000000 --- a/src/app/ui/button/button.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ButtonComponent } from './button.component'; - -describe('ButtonComponent', () => { - let component: ButtonComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ButtonComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ButtonComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/button/button.component.ts b/src/app/ui/button/button.component.ts deleted file mode 100644 index a59ed36..0000000 --- a/src/app/ui/button/button.component.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop'; -@Component({ - selector: 'app-button', - templateUrl: './button.component.html', - styleUrls: ['./button.component.scss'] -}) -export class ButtonComponent implements OnInit { - - constructor(public http: HttpClient) { } - - - data =[ - { - id:"1", - name:"广西总队", - order:0, - parentId:null, - children:[ - { - id:"2", - name:"南宁支队", - order:2, - parentId:1, - children:[ - { - id:"6", - name:"南宁特勤大队", - order:0, - parentId:2, - children:[ - { - id:"6", - name:"南宁特勤3中队", - order:3, - parentId:6, - }, - { - id:"6", - name:"南宁特勤2中队", - order:2, - parentId:6, - }, - { - id:"6", - name:"南宁特勤1中队", - order:1, - parentId:6, - } - ] - } - ] - }, - { - id:"3", - name:"北海支队", - order:1, - parentId:1 - }, - { - id:"4", - name:"梧州支队", - order:0, - parentId:1 - }, - { - id:"5", - name:"桂林支队", - order:3, - parentId:1 - }, - ] - } - ] - - - ngOnInit() { - var str = "xxxx.jjjj" - // console.log(2222,str.split('.')[1]) - } - - drop(event: CdkDragDrop) { - moveItemInArray(this.data, event.previousIndex, event.currentIndex); - - } - - -} diff --git a/src/app/ui/card/card.component.html b/src/app/ui/card/card.component.html deleted file mode 100644 index da5b6ca..0000000 --- a/src/app/ui/card/card.component.html +++ /dev/null @@ -1,12 +0,0 @@ - - 简单的卡片 - 卡片的字幕 - 原来爱情的世界很大,大得可以装下一百种委屈;原来爱情的世界很小,小得三个人就会窒息。 - - - - - - 我要被固定在卡片底部 - - \ No newline at end of file diff --git a/src/app/ui/card/card.component.scss b/src/app/ui/card/card.component.scss deleted file mode 100644 index feb037a..0000000 --- a/src/app/ui/card/card.component.scss +++ /dev/null @@ -1,10 +0,0 @@ - -mat-card{ - width: 300px; - height: 600px; - img{ - width: 300px; - height: 300px; - padding: 16px; - } -} \ No newline at end of file diff --git a/src/app/ui/card/card.component.spec.ts b/src/app/ui/card/card.component.spec.ts deleted file mode 100644 index e141708..0000000 --- a/src/app/ui/card/card.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CardComponent } from './card.component'; - -describe('CardComponent', () => { - let component: CardComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CardComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CardComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/card/card.component.ts b/src/app/ui/card/card.component.ts deleted file mode 100644 index ae25273..0000000 --- a/src/app/ui/card/card.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-card', - templateUrl: './card.component.html', - styleUrls: ['./card.component.scss'] -}) -export class CardComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/ui/dateselect/dateselect.component.html b/src/app/ui/dateselect/dateselect.component.html deleted file mode 100644 index c400626..0000000 --- a/src/app/ui/dateselect/dateselect.component.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - -
-
{{e}}
-
- - diff --git a/src/app/ui/dateselect/dateselect.component.scss b/src/app/ui/dateselect/dateselect.component.scss deleted file mode 100644 index be335f5..0000000 --- a/src/app/ui/dateselect/dateselect.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -.example-events { - width: 400px; - height: 200px; - border: 1px solid #555; - overflow: auto; - } - \ No newline at end of file diff --git a/src/app/ui/dateselect/dateselect.component.spec.ts b/src/app/ui/dateselect/dateselect.component.spec.ts deleted file mode 100644 index 1e4f0dc..0000000 --- a/src/app/ui/dateselect/dateselect.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DateselectComponent } from './dateselect.component'; - -describe('DateselectComponent', () => { - let component: DateselectComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ DateselectComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DateselectComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/dateselect/dateselect.component.ts b/src/app/ui/dateselect/dateselect.component.ts deleted file mode 100644 index 6c3347c..0000000 --- a/src/app/ui/dateselect/dateselect.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import {MatDatepickerInputEvent} from '@angular/material/datepicker'; - - - -@Component({ - selector: 'app-dateselect', - templateUrl: './dateselect.component.html', - styleUrls: ['./dateselect.component.scss'], -}) - -export class DateselectComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - events: string[] = []; - - addEvent(type: string, event: MatDatepickerInputEvent) { - this.events.push(`${type}: ${event.value}`); - } -} diff --git a/src/app/ui/enterpriseuser/addenterpriseuser.component.html b/src/app/ui/enterpriseuser/addenterpriseuser.component.html deleted file mode 100644 index 1ee3b98..0000000 --- a/src/app/ui/enterpriseuser/addenterpriseuser.component.html +++ /dev/null @@ -1,44 +0,0 @@ -

创建企业用户

- -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
-

{{errmsg}}

-
- -
- - -
- -
\ No newline at end of file diff --git a/src/app/ui/enterpriseuser/addenterpriseuser.component.ts b/src/app/ui/enterpriseuser/addenterpriseuser.component.ts deleted file mode 100644 index 0ebea60..0000000 --- a/src/app/ui/enterpriseuser/addenterpriseuser.component.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import {MatDialogRef} from '@angular/material/dialog'; - - - -@Component({ - selector: 'addenterpriseuser', - templateUrl: './addenterpriseuser.component.html', - styleUrls: ['./enterpriseuser.component.scss'] - }) -export class AddEnterpriserUser { - - constructor(private http: HttpClient,public dialogRef: MatDialogRef) {} - - errmsg:any; //捕获错误信息 - //提交创建表单 - onSubmit (e) { - let date = new Date() - this.http.post('/api/CompanyUsers',{ - name:e.loginName, - phone:e.tel, - enabled:true, - creationTime:date, - usci:e.creditcode, - companyName:e.unitname - }).subscribe(data=>{ - this.dialogRef.close(data)}, - error=>{this.errmsg=error} - ) - } - - - -} \ No newline at end of file diff --git a/src/app/ui/enterpriseuser/editenterpriseuser.html b/src/app/ui/enterpriseuser/editenterpriseuser.html deleted file mode 100644 index 2b8a15a..0000000 --- a/src/app/ui/enterpriseuser/editenterpriseuser.html +++ /dev/null @@ -1,40 +0,0 @@ -

编辑企业用户

- -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - -
- -
\ No newline at end of file diff --git a/src/app/ui/enterpriseuser/enterpriseuser.component.html b/src/app/ui/enterpriseuser/enterpriseuser.component.html deleted file mode 100644 index af329b3..0000000 --- a/src/app/ui/enterpriseuser/enterpriseuser.component.html +++ /dev/null @@ -1,78 +0,0 @@ -
-
-
- -
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
登录账号{{element.name}}(该账号已被注销)单位名称{{element.companyName}}统一社会信用代码{{element.usci}}创建时间 - {{element.creationTime|date:'yyyy-MM-dd'}} - 操作 - - - - - - - -
- - - diff --git a/src/app/ui/enterpriseuser/enterpriseuser.component.scss b/src/app/ui/enterpriseuser/enterpriseuser.component.scss deleted file mode 100644 index 6171aff..0000000 --- a/src/app/ui/enterpriseuser/enterpriseuser.component.scss +++ /dev/null @@ -1,38 +0,0 @@ -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } - } -.maginleft { - margin-left: 5px; -} - - - -.header { - width: 100%; - padding: 10px; - margin-bottom: 10px; - box-sizing: border-box; - border-bottom: 1px solid rgba(0,0,0,0.12); - .queryBox { - box-sizing: border-box; - padding: 5px 15px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - justify-content:center; - .queryField { - margin: 0 15px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - - } //queryBox -} \ No newline at end of file diff --git a/src/app/ui/enterpriseuser/enterpriseuser.component.spec.ts b/src/app/ui/enterpriseuser/enterpriseuser.component.spec.ts deleted file mode 100644 index 044b696..0000000 --- a/src/app/ui/enterpriseuser/enterpriseuser.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EnterpriseuserComponent } from './enterpriseuser.component'; - -describe('EnterpriseuserComponent', () => { - let component: EnterpriseuserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ EnterpriseuserComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(EnterpriseuserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/enterpriseuser/enterpriseuser.component.ts b/src/app/ui/enterpriseuser/enterpriseuser.component.ts deleted file mode 100644 index 08603ed..0000000 --- a/src/app/ui/enterpriseuser/enterpriseuser.component.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import {HttpClient} from '@angular/common/http' -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatTableDataSource } from '@angular/material/table'; -import { PageEvent } from '@angular/material/paginator'; -import { AddEnterpriserUser } from './addenterpriseuser.component' -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-enterpriseuser', - templateUrl: './enterpriseuser.component.html', - styleUrls: ['./enterpriseuser.component.scss'] -}) -export class EnterpriseuserComponent implements OnInit { - - constructor(public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - ngOnInit() { - this.initData() - } - - displayedColumns: string[] = ['loginName', 'unitName', 'creditcode','time', 'operation']; - dataSource:any; //所有企业用户 - - userLogin:string; //搜索账号 - userName:string; //搜索名称 - creditcode:string//统一社会信用代码 - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - pageNumber:number = 1; //第几页 - - //分页切换 - chagePage (e) { - this.pageNumber = e.pageIndex+1 - let data= { - Name: this.userLogin || '', - CompanyName: this.userName || '', - USCI: this.creditcode || '', - PageNumber: String(this.pageNumber), - } - this.http.get('/api/CompanyUsers',{params:data}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.dataSource = new MatTableDataSource(data.items) - }) - } - - //页面初始化 + 查询 + 重置 - initData () { - let data= { - Name: this.userLogin || '', - CompanyName: this.userName || '', - USCI: this.creditcode || '', - PageNumber: '1', - } - this.http.get('/api/CompanyUsers',{params:data}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.pageEvent.pageIndex = 0 - this.dataSource = new MatTableDataSource(data.items) - }) - } - - //更新当前页数据 - getAllCompanyUsers () { - let data= { - Name: this.userLogin || '', - CompanyName: this.userName || '', - USCI: this.creditcode || '', - PageNumber: String(this.pageNumber), - } - this.http.get('/api/CompanyUsers',{params:data}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.dataSource = new MatTableDataSource(data.items) - }) - } - - //清空搜索 - empty () { - this.userLogin = '' - this.userName = '' - this.creditcode = '' - this.initData() - } - - //创建企业用户 - open(){ - let dialogRef = this.dialog.open(AddEnterpriserUser); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getAllCompanyUsers()} - }); - } - - //编辑企业用户 - edit (e) { - let dialogRef = this.dialog.open(editenterpriseuser,{data:e}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getAllCompanyUsers()} - }); - } - - //重置密码 - reset (e) { - this.http.put(`/api/CompanyUsers/${e.name}/ResetPassword`,{}).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('重置密码成功!','确定',config); - }) - } - - //查看企业信息 - see (e) { - this.http.get(`/api/CompanyUsers/${e.name}`).subscribe( - data=> { - let dialogRef = this.dialog.open(seeenterpriseuser, {data}); - dialogRef.afterClosed().subscribe(); - } - ) - } - - //启用 - enabled (e) { - this.http.put(`/api/CompanyUsers/${e.name}`,{ - name:e.name, - phone:e.phone, - enabled:true, - creationTime:e.creationTime, - usci:e.usci, - companyId:e.companyId, - companyName:e.companyName - }).subscribe(data=>{ - this.getAllCompanyUsers() - }) - } - - //禁用 - noEnabled (e) { - this.http.put(`/api/CompanyUsers/${e.name}`,{ - name:e.name, - phone:e.phone, - enabled:false, - creationTime:e.creationTime, - usci:e.usci, - companyId:e.companyId, - companyName:e.companyName - }).subscribe(data=>{ - this.getAllCompanyUsers() - }) - } - - //注销用户 - logoff (e) { - let isTrue = confirm('注销是不可逆操作,您确定要注销吗') - if (isTrue) { - this.http.delete(`/api/CompanyUsers/${e.name}/Cancel`).subscribe(data=>{ - this.getAllCompanyUsers() }) - } - } - - //删除 - delete (e) { - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - this.http.delete(`/api/CompanyUsers/${e.name}`).subscribe(data=>{ - this.getAllCompanyUsers() - }) - } - } - - - -} - - - -//编辑企业用户 -@Component({ - selector: 'app-editenterpriseuser', - templateUrl: './editenterpriseuser.html', - styleUrls: ['./enterpriseuser.component.scss'] -}) -export class editenterpriseuser { - - constructor(public http: HttpClient,public dialog: MatDialog, - @Inject(MAT_DIALOG_DATA) public data,public dialogRef: MatDialogRef,) { } - - ngOnInit() { - this.companyName = this.data.companyName - this.companyPhone = this.data.phone - this.companyUsci = this.data.usci - } - - companyName:any; //企业单位名称 - companyPhone:any; //企业电话 - companyUsci:any; //企业统一社会信用代码 - - //提交表单 - onSubmit (e) { - this.http.put(`/api/CompanyUsers/${this.data.name}`,{ - name:this.data.name, - phone:e.tel, - enabled:this.data.enabled, - creationTime:this.data.creationTime, - usci:e.creditcode, - companyId:this.data.companyId, - companyName:e.unitname - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - - -} - - - -//查看企业用户 -@Component({ - selector: 'app-seeenterpriseuser', - templateUrl: './seeenterpriseuser.html', - styleUrls: ['./enterpriseuser.component.scss'] -}) -export class seeenterpriseuser { - - constructor(public http: HttpClient,public dialog: MatDialog, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit() {} - -} \ No newline at end of file diff --git a/src/app/ui/enterpriseuser/seeenterpriseuser.html b/src/app/ui/enterpriseuser/seeenterpriseuser.html deleted file mode 100644 index a5e8a1c..0000000 --- a/src/app/ui/enterpriseuser/seeenterpriseuser.html +++ /dev/null @@ -1,29 +0,0 @@ -查看企业用户 - -
- - 登录账号: - {{data.name}} - - 单位名称: - {{data.companyName}} - - 联系电话: - {{data.phone}} - - 统一社会信用代码: - {{data.usci}} - - 创建时间: - {{data.creationTime|date:'yyyy-MM-dd'}} - - 是否禁用: - - - - -
- -
- -
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/addBuilt-in.html b/src/app/ui/fire-fighting-facilities-formwork/addBuilt-in.html deleted file mode 100644 index 0b7db78..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/addBuilt-in.html +++ /dev/null @@ -1,20 +0,0 @@ -
新增内置分组
-
-
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/addBuilt-inAttribute.html b/src/app/ui/fire-fighting-facilities-formwork/addBuilt-inAttribute.html deleted file mode 100644 index 44f46e2..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/addBuilt-inAttribute.html +++ /dev/null @@ -1,34 +0,0 @@ -
新增内置分组属性
-
-
- -
- - - -
-
- - - - - -
-
- - - - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/addFireFightingFacilitiesFormwork.html b/src/app/ui/fire-fighting-facilities-formwork/addFireFightingFacilitiesFormwork.html deleted file mode 100644 index 19d1c0f..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/addFireFightingFacilitiesFormwork.html +++ /dev/null @@ -1,20 +0,0 @@ -
新增消防设施模板
-
-
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/addOptional.html b/src/app/ui/fire-fighting-facilities-formwork/addOptional.html deleted file mode 100644 index 1065e7f..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/addOptional.html +++ /dev/null @@ -1,37 +0,0 @@ -
新增可选分组
-
-
- -
- - - -
-
- - - 表单 - 表格 - - -
-
- - - 不新增 - 新增行 - 新增组 - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/addOptionalAttribute.html b/src/app/ui/fire-fighting-facilities-formwork/addOptionalAttribute.html deleted file mode 100644 index ff98186..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/addOptionalAttribute.html +++ /dev/null @@ -1,71 +0,0 @@ -
新增可选分组属性
-
-
- -
- - - -
- -
- - - - {{item.viewValue}} - - - - - - -
- -
- - - - - -
- -
- - - 不验证 - - - 区间 - 正则匹配 - - - - - -
- -
- - - -
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/editBuilt-inAttribute.html b/src/app/ui/fire-fighting-facilities-formwork/editBuilt-inAttribute.html deleted file mode 100644 index 7b897c8..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/editBuilt-inAttribute.html +++ /dev/null @@ -1,40 +0,0 @@ -
编辑内置分组属性
-
-
- -
- - - -
-
- - - - - -
-
- - - - - -
-
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/editFireFightingFacilitiesFormwork.html b/src/app/ui/fire-fighting-facilities-formwork/editFireFightingFacilitiesFormwork.html deleted file mode 100644 index 8ef636a..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/editFireFightingFacilitiesFormwork.html +++ /dev/null @@ -1,20 +0,0 @@ -
编辑消防设施模板
-
-
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/editOptionalAttribute.html b/src/app/ui/fire-fighting-facilities-formwork/editOptionalAttribute.html deleted file mode 100644 index 3207882..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/editOptionalAttribute.html +++ /dev/null @@ -1,76 +0,0 @@ -
编辑可选分组属性
-
-
- -
- - - -
- -
- - - - {{item.viewValue}} - - - - - - -
- -
- - - - - -
- -
- - - 不验证 - - - 区间 - 正则匹配 - - - - - -
- -
- - - - - - -
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.html b/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.html deleted file mode 100644 index cfad728..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.html +++ /dev/null @@ -1,189 +0,0 @@ -
-
-
- 消防设施模板 -
- - - - -
-
-
-
- {{item.name}} - block -
-
-
- -
- - - -
-
- - - arrow_upward - arrow_downward -
- -
-

- - - add_box - block - block - delete -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
名称 - {{element.name}} - 是否逐层统计 - - - 是否合并 - - - 操作 - border_color - delete -
-
-
- -
-
- - -
-
- - - arrow_upward - arrow_downward -
- -
-

- - - add_box - star - star_border - block - block - delete -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
名称 - {{element.propertyName}} - 类型 - - - - - - - - - - 默认值 - {{element.propertyValue}} - 必填 - - - 单位 - {{element.physicalUnit}} - 操作 - border_color - delete -
-
-
- -
-
- -
- -
-
- diff --git a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.scss b/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.scss deleted file mode 100644 index 5ca7442..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.scss +++ /dev/null @@ -1,80 +0,0 @@ -.content { - margin: 0 0 0 10px; - width: 100%; - height: 90%; - overflow-y: auto; - display: flex; - .leftBox { - flex: 20%; - padding-top: 10px; - } - .rightBox { - border-left: 1px solid #999; - flex: 80%; - overflow-y: auto; - } -} - -//左侧样式 -.bank { - display: flex; - font-size: 18px; - font-weight: 500; -} -.mat-icon { - width: 18px; - height: 18px; - vertical-align:top; - margin-right: 8px; - cursor:pointer; -} -.material { - cursor:pointer; - height: 30px; - font-size: 16px; - margin-top: 10px; - padding-left: 25px; - .overFlowText { - width: 135px; - display: inline-block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .blockBtn { - float: right; - margin-right: 12px; - width: 16px; - height: 16px; - } -} -//选择样式 -.active { - background-color: rgba(225,225,225,0.8) -} - -//右侧样式 -.groupingContent { - height: 100%; - overflow-y: auto; - .groupingButton{ - padding-left: 10px; - margin: 10px 0; - .mat-icon{ - margin: 5px 0 0 15px;} - } - .groupingHeader{ - background-color: #d7d7d7; - padding: 5px 0 0 25px; - height: 30px; - display: flex; - .mat-icon {margin: 0 5px;} - } -} -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } -} \ No newline at end of file diff --git a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.spec.ts b/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.spec.ts deleted file mode 100644 index 4d81e94..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { FireFightingFacilitiesFormworkComponent } from './fire-fighting-facilities-formwork.component'; - -describe('FireFightingFacilitiesFormworkComponent', () => { - let component: FireFightingFacilitiesFormworkComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ FireFightingFacilitiesFormworkComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(FireFightingFacilitiesFormworkComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.ts b/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.ts deleted file mode 100644 index b3bb4e1..0000000 --- a/src/app/ui/fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component.ts +++ /dev/null @@ -1,806 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBarConfig, MatSnackBar } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-fire-fighting-facilities-formwork', - templateUrl: './fire-fighting-facilities-formwork.component.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class FireFightingFacilitiesFormworkComponent implements OnInit { - - constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - displayedColumn = ['checked','name','isEachFloor','isMerged','operation'] - displayedColumns = ['checked','name', 'type', 'default','required','physicalUnit','operation']; - - ngOnInit(): void { - this.http.get('/api/FacilityCategories').subscribe(data=>{ - this.allFireProtectionFacilities = data - this.selectFireProtectionFacilities = data[0] - this.getBuiltInGrouping() - this.getOptionalGrouping() - }) - } - - allFireProtectionFacilities:any = []; //所有的消防设施模板 - selectFireProtectionFacilities:any; //选中的消防设施模板 - FireProtectionFacilitiesIndex:any = 0; //选中的消防设施模板下标 - builtInGrouping:any = []; //当前模板的内置分组 - optionalGrouping:any = []; //当前模板的可选分组 - - //获取所有的消防设施模板 - getAllTemplate () { - this.http.get('/api/FacilityCategories').subscribe(data=>{ - this.allFireProtectionFacilities = data - this.selectFireProtectionFacilities = data[this.FireProtectionFacilitiesIndex] - }) - } - - //获取当前模板内置分组 - getBuiltInGrouping () { - if (this.selectFireProtectionFacilities){ - let id = {categoryId: this.selectFireProtectionFacilities.id} - this.http.get(`/api/FacilityGroups`,{params:id}).subscribe(data=>{ - this.builtInGrouping = data - this.selectBuiltIn = [] - }) - } - } - - //获取当前模板可选分组 - getOptionalGrouping () { - if (this.selectFireProtectionFacilities){ - let id = {categoryId: this.selectFireProtectionFacilities.id} - this.http.get(`/api/OptionalGroups`,{params:id}).subscribe(data=>{ - this.optionalGrouping = data - this.selectOptional = [] - }) - } - } - - //切换左侧模板时 - selectFire (e,index) { - if (this.FireProtectionFacilitiesIndex != index) { - this.selectFireProtectionFacilities = e - this.FireProtectionFacilitiesIndex = index - this.selectBuiltIn = [] - this.selectOptional = [] - this.getBuiltInGrouping() - this.getOptionalGrouping() - } - } - - //新增消防设施模板 - addTemplate () { - const dialogRef = this.dialog.open(addFireFightingFacilitiesFormworkComponent,{}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getAllTemplate()} - }); - } - - //编辑消防设施模板 - editTemplate () { - if (this.selectFireProtectionFacilities) { - let data = this.selectFireProtectionFacilities - const dialogRef = this.dialog.open(editFireFightingFacilitiesFormworkComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getAllTemplate()} - }); - } - } - - //禁启用消防设施模板 - enabledTemplate () { - if (this.selectFireProtectionFacilities) { - let data = this.selectFireProtectionFacilities - if (data.enabled) { - let newDate = { - id: data.id, - name: data.name, - enabled: false} - this.http.put(`/api/FacilityCategories/${data.id}`,newDate).subscribe(data=>{ - this.getAllTemplate()}) - } else{ - let newDate = { - id: data.id, - name: data.name, - enabled: true} - this.http.put(`/api/FacilityCategories/${data.id}`,newDate).subscribe(data=>{ - this.getAllTemplate()}) - } - } - } - - //删除消防设施模板 - deleteTemplate () { - if (this.selectFireProtectionFacilities) { - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - this.http.delete(`/api/FacilityCategories/${this.selectFireProtectionFacilities.id}`).subscribe(data=>{ - this.http.get('/api/FacilityCategories').subscribe(data=>{ - this.allFireProtectionFacilities = data - this.selectFireProtectionFacilities = data[this.FireProtectionFacilitiesIndex] - this.builtInGrouping = [] - this.optionalGrouping = [] - this.getBuiltInGrouping() - this.getOptionalGrouping() })//http.get - }) - } - } - } - - //新增内置分组 - addBuiltIn () { - if (this.selectFireProtectionFacilities) { - let data = {template:this.selectFireProtectionFacilities, order:this.builtInGrouping[this.builtInGrouping.length-1]} - const dialogRef = this.dialog.open(addBuiltInComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getBuiltInGrouping()} - }); - } - } - - //禁启用内置分组 - enabledBuilt (e) { - if (e.enabled) { - let data = { - id: e.id, - name: e.name, - order:e.order, - enabled: false, - facilityItems: e.facilityItems, - facilityCategoryId: e.facilityCategoryId} - this.http.put(`/api/FacilityGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('禁用成功','确定',config); - this.getBuiltInGrouping() - }) - } else { - let data = { - id: e.id, - name: e.name, - order:e.order, - enabled: true, - facilityItems: e.facilityItems, - facilityCategoryId: e.facilityCategoryId} - this.http.put(`/api/FacilityGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('启用成功','确定',config); - this.getBuiltInGrouping() - }) - } - } - - //删除内置分组 - deleteBuilt (e) { - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - this.http.delete(`/api/FacilityGroups/${e.id}`).subscribe(data=>{ - this.getBuiltInGrouping() - }) - } - } - - //新增内置分组属性 - addBuiltInAttribute (e) { - let data = e - const dialogRef = this.dialog.open(addBuiltInAttributeComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getBuiltInGrouping()} - }); - } - - //编辑内置分组属性 - editBuiltInAttribute (e,element) { - let data = {grouping:e, attribute: element} - const dialogRef = this.dialog.open(editBuiltInAttributeComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getBuiltInGrouping()} - }); - } - - //删除内置分组属性 - deleteBuiltInAttribute (e,element){ - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - e.facilityItems.splice(e.facilityItems.findIndex(item=>item==element),1) - this.http.put(`/api/FacilityGroups/${e.id}`,e).subscribe(data=>{ - this.getBuiltInGrouping() - }) - } - } - - //内置分组排序 - selectBuiltIn = []; //checked选中的内置分组 - - //内置分组change时 - changeBuilt (e,item) { - if (e.checked) { - this.selectBuiltIn.push(item) - } else{this.selectBuiltIn.splice(this.selectBuiltIn.findIndex(items=>items==item),1)} - } - - //内置分组上移 - topBuilt () { - if(this.selectBuiltIn.length) { - let attribute = this.selectBuiltIn[this.selectBuiltIn.length-1] //选中分组最后一项 - let newOrder = attribute.order //选中项的order - let index = this.builtInGrouping.findIndex(item=>item==attribute) //选中项在数组中的位置 - if (index!=0) { - this.builtInGrouping[index].order = this.builtInGrouping[index-1].order - this.http.put(`/api/FacilityGroups/${this.builtInGrouping[index].id}`,this.builtInGrouping[index]).subscribe(data=>{ - this.builtInGrouping[index-1].order = newOrder - this.http.put(`/api/FacilityGroups/${this.builtInGrouping[index-1].id}`,this.builtInGrouping[index-1]).subscribe(data=>{ - this.getBuiltInGrouping() - }) - }) - } - } - } - - //内置分组下移 - bottomBuilt () { - if(this.selectBuiltIn.length) { - let attribute = this.selectBuiltIn[this.selectBuiltIn.length-1] //选中分组最后一项 - let newOrder = attribute.order //最后一项的order - let index = this.builtInGrouping.findIndex(item=>item==attribute) - if (index!= this.builtInGrouping.length-1) { - this.builtInGrouping[index].order = this.builtInGrouping[index+1].order - this.http.put(`/api/FacilityGroups/${this.builtInGrouping[index].id}`,this.builtInGrouping[index]).subscribe(data=>{ - this.builtInGrouping[index+1].order = newOrder - this.http.put(`/api/FacilityGroups/${this.builtInGrouping[index+1].id}`,this.builtInGrouping[index+1]).subscribe(data=>{ - this.getBuiltInGrouping() - }) - }) - } - } - } - - - - //新增可选分组 - addOptional () { - if (this.selectFireProtectionFacilities) { - let data = {template:this.selectFireProtectionFacilities, order:this.optionalGrouping[this.optionalGrouping.length-1]} - const dialogRef = this.dialog.open(addOptionalComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getOptionalGrouping()} - }); - } - } - - //是否可选-可选分组 - isOptional (e) { - if (e.isOptional) { - let data = { - facilityCategoryId: e.facilityCategoryId, - id: e.id, - name: e.name, - type: e.type, - addMode: e.addMode, - isOptional: false, - order: e.order, - enabled: e.enabled, - propertyInfos: e.propertyInfos} - this.http.put(`/api/OptionalGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('现状态为不可选','确定',config); - this.getOptionalGrouping() - }) - } else { - let data = { - facilityCategoryId: e.facilityCategoryId, - id: e.id, - name: e.name, - type: e.type, - addMode: e.addMode, - isOptional: true, - order: e.order, - enabled: e.enabled, - propertyInfos: e.propertyInfos} - this.http.put(`/api/OptionalGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('现状态为可选','确定',config); - this.getOptionalGrouping() - }) - } - } - - //禁启用可选分组 - enabledOptional (e) { - if (e.enabled) { - let data = { - facilityCategoryId: e.facilityCategoryId, - id: e.id, - name: e.name, - type: e.type, - addMode: e.addMode, - isOptional: e.isOptional, - order: e.order, - enabled: false, - propertyInfos: e.propertyInfos} - this.http.put(`/api/OptionalGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('禁用成功','确定',config); - this.getOptionalGrouping() - }) - } else { - let data = { - facilityCategoryId: e.facilityCategoryId, - id: e.id, - name: e.name, - type: e.type, - addMode: e.addMode, - isOptional: e.isOptional, - order: e.order, - enabled: true, - propertyInfos: e.propertyInfos} - this.http.put(`/api/OptionalGroups/${e.id}`,data).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('启用成功','确定',config); - this.getOptionalGrouping() - }) - } - } - - //删除可选分组 - deleteOptional (e) { - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - this.http.delete(`/api/OptionalGroups/${e.id}`).subscribe(data=>{ - this.getOptionalGrouping() - }) - } - } - - //新增可选分组属性 - addOptionalAttribute (e) { - let data = e - const dialogRef = this.dialog.open(addOptionalAttributeComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getOptionalGrouping()} - }); - } - - //编辑可选分组属性 - editOptionalAttribute (e,element) { - let data = {grouping:e, attribute: element} - const dialogRef = this.dialog.open(editOptionalAttributeComponent,{data}); - dialogRef.afterClosed().subscribe(data=>{ - if (data) {this.getOptionalGrouping()} - }); - } - - //删除可选分组属性 - deleteOptionalAttribute (e,element) { - let isDelete = confirm('您确定要删除吗') - if (isDelete) { - e.propertyInfos.splice(e.propertyInfos.findIndex(item=>item==element),1) - this.http.put(`/api/OptionalGroups/${e.id}`,e).subscribe(data=>{ - this.getOptionalGrouping() - }) - } - } - - //可选分组排序 - selectOptional = []; //checked选中的可选分组 - - //可选分组change时 - changeOptional (e,item) { - if (e.checked) { - this.selectOptional.push(item) - } else{this.selectOptional.splice(this.selectOptional.findIndex(items=>items==item),1)} - } - - //可选分组上移 - topOptional () { - if(this.selectOptional.length) { - let attribute = this.selectOptional[this.selectOptional.length-1] //选中分组最后一项 - let newOrder = attribute.order //选中项的order - let index = this.optionalGrouping.findIndex(item=>item==attribute) //选中项在数组中的位置 - if (index!=0) { - this.optionalGrouping[index].order = this.optionalGrouping[index-1].order - this.http.put(`/api/OptionalGroups/${this.optionalGrouping[index].id}`,this.optionalGrouping[index]).subscribe(data=>{ - this.optionalGrouping[index-1].order = newOrder - this.http.put(`/api/OptionalGroups/${this.optionalGrouping[index-1].id}`,this.optionalGrouping[index-1]).subscribe(data=>{ - this.getOptionalGrouping() - }) - }) - } - } - } - - //可选分组下移 - bottomOptional () { - if(this.selectOptional.length) { - let attribute = this.selectOptional[this.selectOptional.length-1] //选中分组最后一项 - let newOrder = attribute.order //选中项的order - let index = this.optionalGrouping.findIndex(item=>item==attribute) //选中项在数组中的位置 - if (index!=this.optionalGrouping.length-1) { - this.optionalGrouping[index].order = this.optionalGrouping[index+1].order - this.http.put(`/api/OptionalGroups/${this.optionalGrouping[index].id}`,this.optionalGrouping[index]).subscribe(data=>{ - this.optionalGrouping[index+1].order = newOrder - this.http.put(`/api/OptionalGroups/${this.optionalGrouping[index+1].id}`,this.optionalGrouping[index+1]).subscribe(data=>{ - this.getOptionalGrouping() - }) - }) - } - } - } - - - -} - - - -//新增消防设施模板 -@Component({ - selector: 'app-addFireFightingFacilitiesFormwork', - templateUrl: './addFireFightingFacilitiesFormwork.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class addFireFightingFacilitiesFormworkComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef) { } - - ngOnInit(): void { - - } - - //提交表单 - onSubmit (e) { - let data = { - name: e.name, - enabled: true - } - this.http.post('/api/FacilityCategories',data).subscribe(data=>{ - this.dialogRef.close(data); - }) - } - -} - - - -//编辑消防设施模板 -@Component({ - selector: 'app-editFireFightingFacilitiesFormwork', - templateUrl: './editFireFightingFacilitiesFormwork.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class editFireFightingFacilitiesFormworkComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - this.templateName = this.data.name - } - - templateName:any; //模板名字 - - //提交表单 - onSubmit (e) { - let data = { - id: this.data.id, - name: this.templateName, - enabled: this.data.enabled} - this.http.put(`/api/FacilityCategories/${this.data.id}`,data).subscribe(data=>{ - this.dialogRef.close('success'); - }) - } - -} - - - -//新增消防设施模板内置分组 -@Component({ - selector: 'app-addBuiltIn', - templateUrl: './addBuilt-in.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class addBuiltInComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - if (this.data.order) { - this.order = this.data.order.order+1 - } else{this.order=0} - } - - order:number; //order - //提交表单 - onSubmit (e) { - let data = { - name: e.name, - order: this.order, - enabled: true, - facilityItems: [], - facilityCategoryId: this.data.template.id} - this.http.post(`/api/FacilityGroups`,data).subscribe(data=>{ - this.dialogRef.close(data) - }) - } - -} - - - -//新增消防设施模板内置分组属性 -@Component({ - selector: 'app-addBuiltInAttribute', - templateUrl: './addBuilt-inAttribute.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class addBuiltInAttributeComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - if (this.data.facilityItems.length) { - this.order = this.data.facilityItems[this.data.facilityItems.length-1].order+1 - } else{ - this.order = 0 - } - } - - order:number; //order - - //提交表单 - onSubmit (e) { - let newFacilityItems = {name:e.name,isEachFloor:e.isEachFloor=='true'? true: false,order:this.order,isMerged:e.isMerged=='true'? true: false,} - this.data.facilityItems.push(newFacilityItems) - let data = { - id: this.data.id, - name: this.data.name, - order: this.data.order, - enabled: this.data.enabled, - facilityItems: this.data.facilityItems, - facilityCategoryId: this.data.facilityCategoryId} - this.http.put(`/api/FacilityGroups/${this.data.id}`,data).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - -} - - - -//编辑消防设施模板内置分组属性 -@Component({ - selector: 'app-editBuiltInAttribute', - templateUrl: './editBuilt-inAttribute.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class editBuiltInAttributeComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - this.attributeName = this.data.attribute.name - this.attributeIsEachFloor = String(this.data.attribute.isEachFloor) - this.attributeIsMerged = String(this.data.attribute.isMerged) - this.attributeOrder = this.data.attribute.order - } - - attributeName:any; //属性名 - attributeIsEachFloor:any; //是否逐层统计 - attributeIsMerged:any; //是否合并 - attributeOrder:number; //属性order - - //提交表单 - onSubmit (e) { - let data = { - name: e.name, - isEachFloor: e.isEachFloor=='true'? true: false, - isMerged: e.isMerged=='true'? true: false, - order: e.order} - this.data.grouping.facilityItems.splice(this.data.grouping.facilityItems.findIndex(item=>item==this.data.attribute),1) - this.data.grouping.facilityItems.push(data) - this.http.put(`/api/FacilityGroups/${this.data.grouping.id}`,this.data.grouping).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - - -} - - - -//新增消防设施模板可选分组 -@Component({ - selector: 'app-addOptional', - templateUrl: './addOptional.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class addOptionalComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - if (this.data.order) { - this.order = this.data.order.order+1 - } else{this.order=0} - } - - order:number; //order - - //提交表单 - onSubmit (e) { - let data = { - facilityCategoryId: this.data.template.id, - name: e.name, - type: Number(e.type), - addMode: Number(e.addMode), - isOptional: true, - order: this.order, - enabled: true, - propertyInfos: [] - } - this.http.post('/api/OptionalGroups',data).subscribe(data=>{ - this.dialogRef.close(data) - }) - } - - - -} - - - -export interface Food { - value: number; - viewValue: string; -} -//新增消防设施模板可选分组属性 -@Component({ - selector: 'app-addOptionalAttribute', - templateUrl: './addOptionalAttribute.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class addOptionalAttributeComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - if (this.data.propertyInfos.length) { - this.order = this.data.propertyInfos[this.data.propertyInfos.length-1].order+1 - } else{ - this.order = 0 - } - } - - //定义属性数据 - propertyType:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'}, - {value:3, viewValue: '图片'}, - {value:4, viewValue: '图片数量'}, - {value:5, viewValue: '方向'}, - {value:6, viewValue: '布尔值'}, - {value:7, viewValue: '供给区域'}, - {value:8, viewValue: '供给类型'}] - - - order:number; //order - //提交表单 - onSubmit (e) { - let data = { - propertyName: e.propertyName, - propertyValue: e.propertyValue, - propertyType: e.propertyType, - required: e.required=='true'? true: false, - ruleName: e.ruleName, - ruleValue: e.ruleValue, - physicalUnit: e.physicalUnit, - order: this.order, - enabled: true, - visible: true, - tag: e.tag} - this.data.propertyInfos.push(data) - this.http.put(`/api/OptionalGroups/${this.data.id}`,this.data).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - - -} - - - -//编辑消防设施模板可选分组属性 -@Component({ - selector: 'app-editOptionalAttribute', - templateUrl: './editOptionalAttribute.html', - styleUrls: ['./fire-fighting-facilities-formwork.component.scss'] -}) -export class editOptionalAttributeComponent { - - constructor(private http:HttpClient,public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - this.propertyName = this.data.attribute.propertyName, - this.propertyType = this.data.attribute.propertyType - this.propertyValue = this.data.attribute.propertyValue, - this.required = String(this.data.attribute.required), - this.ruleName = this.data.attribute.ruleName, - this.ruleValue = this.data.attribute.ruleValue, - this.physicalUnit = this.data.attribute.physicalUnit, - this.order = this.data.attribute.order, - this.tag = this.data.attribute.tag - } - - //定义属性数据 - type:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'}, - {value:3, viewValue: '图片'}, - {value:4, viewValue: '图片数量'}, - {value:5, viewValue: '方向'}, - {value:6, viewValue: '布尔值'}, - {value:7, viewValue: '供给区域'}, - {value:8, viewValue: '供给类型'}] - - propertyName:any; //属性名 - propertyType:number; //属性类型 - propertyValue:any; //默认值 - required:any; //是否必填 - ruleName:any; //验证规则 - ruleValue:any; //验证内容 - physicalUnit:any; //单位 - order:number; //order - tag:any; //注释说明 - - //提交表单 - onSubmit (e) { - let data = { - propertyName: e.propertyName, - propertyValue: e.propertyValue, - propertyType: e.propertyType, - required: e.required=='true'? true: false, - ruleName: e.ruleName, - ruleValue: e.ruleValue, - physicalUnit: e.physicalUnit, - order: e.order, - enabled: true, - visible: true, - tag: e.tag} - this.data.grouping.propertyInfos.splice(this.data.grouping.propertyInfos.findIndex(item=>item==this.data.attribute),1) - this.data.grouping.propertyInfos.push(data) - this.http.put(`/api/OptionalGroups/${this.data.grouping.id}`,this.data.grouping).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - - -} \ No newline at end of file diff --git a/src/app/ui/fire-fighting-template/editingFireControl.html b/src/app/ui/fire-fighting-template/editingFireControl.html deleted file mode 100644 index 9d2be33..0000000 --- a/src/app/ui/fire-fighting-template/editingFireControl.html +++ /dev/null @@ -1,45 +0,0 @@ -
编辑消防要素模板
- -
-
- - - -
- - -
- -
- - - - - {{node.name}} - - - - - - - {{node.name}} - - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-template/fire-fighting-template.component.html b/src/app/ui/fire-fighting-template/fire-fighting-template.component.html deleted file mode 100644 index 0b62ce3..0000000 --- a/src/app/ui/fire-fighting-template/fire-fighting-template.component.html +++ /dev/null @@ -1,36 +0,0 @@ -
- 消防要素模板 - -
- - - - - - - - - - - - - - -
模板名称 {{element.name}} 操作 - - - - -
\ No newline at end of file diff --git a/src/app/ui/fire-fighting-template/fire-fighting-template.component.scss b/src/app/ui/fire-fighting-template/fire-fighting-template.component.scss deleted file mode 100644 index 06f7d26..0000000 --- a/src/app/ui/fire-fighting-template/fire-fighting-template.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } -} -.magin { - margin: 10px; - font-weight: 600; -} -.marginLeft { - margin-left: 5px; -} -.tree { - height: 450px; - overflow: auto; -} \ No newline at end of file diff --git a/src/app/ui/fire-fighting-template/fire-fighting-template.component.ts b/src/app/ui/fire-fighting-template/fire-fighting-template.component.ts deleted file mode 100644 index f9aae74..0000000 --- a/src/app/ui/fire-fighting-template/fire-fighting-template.component.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-fire-fighting-template', - templateUrl: './fire-fighting-template.component.html', - styleUrls: ['./fire-fighting-template.component.scss'] -}) -export class FireFightingTemplateComponent implements OnInit { - - constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - ngOnInit(): void { - this.getAllFireFighting() - } - - displayedColumns: string[] = ['name','operation']; - aLLFireFighting:any; //所有消防要素模板 - - //获取所有消防要素模板 - getAllFireFighting () { - this.http.get('/api/FireCategories').subscribe(data=>{ - this.aLLFireFighting=data - }) - } - - - - //新增消防模块窗口 - establish () { - let dialogRef = this.dialog.open(NewFireFighting, - { - width:'600px', - }); - dialogRef.afterClosed().subscribe((data)=>{ - if (data) {this.getAllFireFighting()} - }); - } - - //编辑消防模块窗口 - edit (e) { - let dialogRef = this.dialog.open(EditFireClassification, - { - width:'600px', - data:{e} - }); - dialogRef.afterClosed().subscribe((data)=>{ - if (data) {this.getAllFireFighting()} - }); - } - - //启用 - enable (e) { - this.http.put(`/api/FireCategories/${e.id}`,{ - id:e.id, - name:e.name, - enabled:true, - fireElements:e.fireElements - }).subscribe(data=>{ - this.getAllFireFighting() - }) - } - - //禁用 - prohibit (e) { - this.http.put(`/api/FireCategories/${e.id}`,{ - id:e.id, - name:e.name, - enabled:false, - fireElements:e.fireElements - }).subscribe(data=>{ - this.getAllFireFighting() - }) - } - - //删除 - delete (e) { - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - this.http.delete(`/api/FireCategories/${e}`).subscribe(data=>{ - this.getAllFireFighting() - }) - } - } - - - - -} - - - -//新增消防分类窗口 -@Component({ - selector: 'app-newFireFighting', - templateUrl: './newFireFighting.html', - styleUrls: ['./fire-fighting-template.component.scss'] -}) -export class NewFireFighting { - newdata = []; - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - computed:node.computed, - order:node.order, - children:node.children ||'', - tag:node.tag, - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(private http:HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef) {} - - ngOnInit(): void { - this.rendering() - } - - - - checkedAll:boolean=false; //全选 - checkedList:any=[]; //选中的消防要素 - - //渲染Tree - rendering () { - this.http.get('/api/FireElements').subscribe((data:any)=>{ - this.newdata=[] - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - this.dataSource.data = this.newdata; - this.treeControl.expandAll() - }) - } - hasChild = (_: number, node: any) => node.expandable; - - //change时判断是否选中 - changed (e,id) { - if (e.checked) { - this.checkedList.push(id) - } else if (e.checked == false) { - this.checkedList.splice(this.checkedList.findIndex(item => item === id), 1) - } - } - - - - //提交创建 - onSubmit (e) { - if(this.checkedList.length) { - this.http.post('/api/FireCategories',{ - name:e.name, - enabled:true, - fireElements:this.checkedList - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - }else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择消防要素','确定',config); - } - } - - - -} - - - - - -//编辑消防分类窗口 -@Component({ - selector: 'app-editingFire', - templateUrl: './editingFireControl.html', - styleUrls: ['./fire-fighting-template.component.scss'] -}) -export class EditFireClassification { - newdata = []; - - private transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - computed:node.computed, - order:node.order, - children:node.children ||'', - tag:node.tag, - checked:node.checked, - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this.transformer, node => node.level, node => node.expandable, node => node.children); - newDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(private http:HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public newdate) {} - - ngOnInit(): void { - this.fireID=this.newdate.e.id - this.fireName=this.newdate.e.name - this.rendering() - } - - - - fireID:any; //模板id - fireName:any; //模板name - checkedAll:boolean=false; //全选 - checkedList:any=[]; //选中的消防要素 - - //渲染Tree - rendering () { - this.http.get(`/api/FireCategories/${this.newdate.e.id}/FireElements`).subscribe((data:any)=>{ - data.forEach(item=>{ - if (item.checked === true) { - this.checkedList.push(item.id) - } - }) - this.newdata=[] - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - this.newDataSource.data = this.newdata; - this.treeControl.expandAll() - }) - } - hasChild = (_: number, node: any) => node.expandable; - - //change时判断是否选中 - changed (e,id) { - if (e.checked) { - this.checkedList.push(id) - } else if (e.checked == false) { - this.checkedList.splice(this.checkedList.findIndex(item => item === id), 1) - } - } - - //提交编辑修改 - onSubmit (e) { - if (this.checkedList.length) { - this.http.put(`/api/FireCategories/${this.fireID}`,{ - id:this.fireID, - name:e.name, - enabled:this.newdate.e.enabled, - fireElements:this.checkedList - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择消防要素','确定',config); - } - } - - - -} \ No newline at end of file diff --git a/src/app/ui/fire-fighting-template/newFireFighting.html b/src/app/ui/fire-fighting-template/newFireFighting.html deleted file mode 100644 index 9d9fa46..0000000 --- a/src/app/ui/fire-fighting-template/newFireFighting.html +++ /dev/null @@ -1,44 +0,0 @@ -
创建消防要素模板
- -
-
- - - -
- - -
- -
- - - - - {{node.name}} - - - - - - - {{node.name}} - - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/fire-protection-elements/editingFireControl.html b/src/app/ui/fire-protection-elements/editingFireControl.html deleted file mode 100644 index 0abff80..0000000 --- a/src/app/ui/fire-protection-elements/editingFireControl.html +++ /dev/null @@ -1,47 +0,0 @@ -
编辑消防要素
-
- -
- - - - - -
- - - -
- -
- - - - 是 - - - 否 - - -
- -
- - - 信息录入 - 预案管理 - 指挥系统 - - -
- -
- - -
- -
-
\ No newline at end of file diff --git a/src/app/ui/fire-protection-elements/establish.html b/src/app/ui/fire-protection-elements/establish.html deleted file mode 100644 index 50f86b8..0000000 --- a/src/app/ui/fire-protection-elements/establish.html +++ /dev/null @@ -1,41 +0,0 @@ -
创建消防要素
-
- -
- - - - - -
- - - - 是 - - - 否 - - -
- -
- - - 信息录入 - 预案管理 - 指挥系统 - - -
- -
- - -
- -
-
\ No newline at end of file diff --git a/src/app/ui/fire-protection-elements/fire-protection-elements.component.html b/src/app/ui/fire-protection-elements/fire-protection-elements.component.html deleted file mode 100644 index b390b48..0000000 --- a/src/app/ui/fire-protection-elements/fire-protection-elements.component.html +++ /dev/null @@ -1,67 +0,0 @@ -
-
-
- 消防要素 - -
- - - - {{node.name}} -
- - - - - -
-
- - - - - {{node.name}} -
- - - - - -
-
- -
-
- -
- -
-
\ No newline at end of file diff --git a/src/app/ui/fire-protection-elements/fire-protection-elements.component.scss b/src/app/ui/fire-protection-elements/fire-protection-elements.component.scss deleted file mode 100644 index 12c709e..0000000 --- a/src/app/ui/fire-protection-elements/fire-protection-elements.component.scss +++ /dev/null @@ -1,36 +0,0 @@ - -.magin { - margin: 8px 0 8px 10px; - font-weight: 600; -} - -.Box { - width: 100%; - height: 90%; - overflow-y: auto; - display: flex; - padding-left: 10px; - .right { - width: 100%; - } -} - -.mat-tree-node { - width: 380px; - position: relative; - .float { - position: absolute; - right: 0; - } -} -.maginTop { - margin: 10px 0; -} - -.example-radio-group { - flex-direction: column; -} - -.example-radio-button { -margin: 5px; -} \ No newline at end of file diff --git a/src/app/ui/fire-protection-elements/fire-protection-elements.component.ts b/src/app/ui/fire-protection-elements/fire-protection-elements.component.ts deleted file mode 100644 index bb78d75..0000000 --- a/src/app/ui/fire-protection-elements/fire-protection-elements.component.ts +++ /dev/null @@ -1,284 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree'; -import { FlatTreeControl } from '@angular/cdk/tree'; - -@Component({ - selector: 'app-fire-protection-elements', - templateUrl: './fire-protection-elements.component.html', - styleUrls: ['./fire-protection-elements.component.scss'] -}) -export class FireProtectionElementsComponent implements OnInit { - data:any =[] - newdata = []; - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - computed:node.computed, - order:node.order, - children:node.children ||'', - tag:node.tag - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(private http:HttpClient,public dialog: MatDialog) { } - - ngOnInit(): void { - this.getAllfireControl() - } - - //获取所有消防要素 - getAllfireControl () { - this.http.get('/api/FireElements').subscribe( - (data:any)=>{ - this.newdata=[] - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - this.dataSource.data = this.newdata; - } - - ) - } - - //更新数据后重新渲染Tree - getlist = ():void=>{ - this.http.get('/api/FireElements').subscribe( - (data:any)=>{ - this.newdata = [] - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - - const nodes = this.treeControl.dataNodes; - const expandNodes = []; - nodes.forEach((item) => { - if(item.expandable && this.treeControl.isExpanded(item)){ - expandNodes.push(item.id); - } - }); - this.dataSource.data = this.newdata; - let newNodes = this.treeControl.dataNodes; - newNodes = newNodes.filter(n => { - return expandNodes.indexOf(n.id) >= 0; - }); - newNodes.forEach(item => { - this.treeControl.expand(item); - }); - } - ) - } - - hasChild = (_: number, node: any) => node.expandable; - - //打开创建一级消防要素窗口 - addNew () { - let dialogRef = this.dialog.open(Establish); - dialogRef.afterClosed().subscribe((data)=>{ - if (data) {this.getlist()} - }); - } - - //打开创建窗口 - establish (e) { - let dialogRef = this.dialog.open(Establish, - { - data:e - }); - dialogRef.afterClosed().subscribe((data)=>{ - if (data) {this.getlist()} - }); - } - - //打开编辑窗口 - edit (e) { - let dialogRef = this.dialog.open(EditingFireControl, - { - data:e - }); - dialogRef.afterClosed().subscribe((data)=>{ - if (data) {this.getlist()} - }); - } - - //取消统计 - noStatistics (e) { - this.http.put(`/api/FireElements/${e.id}`,{ - expandable:e.expandable, - id:e.id, - name:e.name, - level:e.level, - order:e.order, - computed:false, - tag:e.tag, - parentId:e.parentId, - children:e.children - }).subscribe(data=>{ - this.getlist() - }) - } - - //确定统计 - statistics (e) { - this.http.put(`/api/FireElements/${e.id}`,{ - expandable:e.expandable, - id:e.id, - name:e.name, - level:e.level, - order:e.order, - computed:true, - tag:e.tag, - parentId:e.parentId, - children:e.children - }).subscribe(data=>{ - this.getlist() - }) - } - - //删除 - delete (e) { - let isTrue = confirm(`您确定要删除${e.name}吗`) - if (isTrue) { - this.http.delete(`/api/FireElements/${e.id}`).subscribe(data=>{ - this.getlist() - }) - } - } - - - - -} - - - -//创建窗口组件 -@Component({ - selector: 'app-establish', - templateUrl: './establish.html', - styleUrls: ['./fire-protection-elements.component.scss'] -}) -export class Establish { - - constructor(private http:HttpClient, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit(): void {} - - order:any; //创建消防要素order排序值 - - //提交创建消防要素 - onSubmit (e) { - if (this.data) { - if(this.data.children == '') { - this.order=0 - } else if (this.data.children.length) { - this.order=this.data.children[this.data.children.length-1].order+1 - } - this.http.post('/api/FireElements',{ - name:e.name, - order:this.order, - computed:e.radio, - tag:e.tag, - parentId:this.data.id - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } else { - this.http.post('/api/FireElements',{ - name:e.name, - order:0, - computed:e.radio, - tag:e.tag, - parentId:null - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - } - - - -} - - - -//编辑窗口组件 -@Component({ - selector: 'app-editingFireControl', - templateUrl: './editingFireControl.html', - styleUrls: ['./fire-protection-elements.component.scss'] -}) -export class EditingFireControl { - - constructor(private http:HttpClient, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit(): void { - this.fireName=this.data.name - } - - fireName:any; //消防要素name - - //编辑提交 - onSubmit (e) { - this.http.put(`/api/FireElements/${this.data.id}`,{ - expandable:this.data.expandable, - id:this.data.id, - name:e.name, - level:this.data.level, - order:e.order, - computed:this.data.computed, - tag:this.data.tag, - parentId:this.data.parentId, - children:this.data.children - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } - - - - } diff --git a/src/app/ui/grid/grid.component.html b/src/app/ui/grid/grid.component.html deleted file mode 100644 index 9014316..0000000 --- a/src/app/ui/grid/grid.component.html +++ /dev/null @@ -1,34 +0,0 @@ -

网格列表

- - - 我是页眉 - - 我是页脚 - - - - - - - -


- - - - - - - - - - - - - - - - - - - - diff --git a/src/app/ui/grid/grid.component.scss b/src/app/ui/grid/grid.component.scss deleted file mode 100644 index f302609..0000000 --- a/src/app/ui/grid/grid.component.scss +++ /dev/null @@ -1,12 +0,0 @@ -mat-grid-tile { - background: lightblue; -} -h1{ - font-size: 26px; -} - -img { - width: 100%; - height: 100%; -} - diff --git a/src/app/ui/grid/grid.component.spec.ts b/src/app/ui/grid/grid.component.spec.ts deleted file mode 100644 index 6410123..0000000 --- a/src/app/ui/grid/grid.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { GridComponent } from './grid.component'; - -describe('GridComponent', () => { - let component: GridComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ GridComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(GridComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/grid/grid.component.ts b/src/app/ui/grid/grid.component.ts deleted file mode 100644 index 203cb0c..0000000 --- a/src/app/ui/grid/grid.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-grid', - templateUrl: './grid.component.html', - styleUrls: ['./grid.component.scss'] -}) -export class GridComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/ui/list/list.component.html b/src/app/ui/list/list.component.html deleted file mode 100644 index 2d7dbdf..0000000 --- a/src/app/ui/list/list.component.html +++ /dev/null @@ -1,63 +0,0 @@ - -

列表分隔线

- - Item 1 - - Item 2 - - Item 3 - -


-

导航列表

- - - {{ link.name }} - - - -


-

行动列表

- - - - -


-

选择列表

- - - {{shoe}} - - -

- 已选: {{shoes.selectedOptions.selected.length}}种 -

-


-

多行列表且带图标

- - - folder -

item标题

-

- 我是 - -- xxx -

-
-
- diff --git a/src/app/ui/list/list.component.scss b/src/app/ui/list/list.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/list/list.component.spec.ts b/src/app/ui/list/list.component.spec.ts deleted file mode 100644 index beacd15..0000000 --- a/src/app/ui/list/list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ListComponent } from './list.component'; - -describe('ListComponent', () => { - let component: ListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/list/list.component.ts b/src/app/ui/list/list.component.ts deleted file mode 100644 index 969eb9c..0000000 --- a/src/app/ui/list/list.component.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Router,ActivatedRoute } from '@angular/router' -@Component({ - selector: 'app-list', - templateUrl: './list.component.html', - styleUrls: ['./list.component.scss'] -}) -export class ListComponent implements OnInit { - - constructor(private router:Router,private route:ActivatedRoute) { } - - ngOnInit() { - } - links = [ - {id:0,name:'小红'}, - {id:1,name:'小绿'}, - {id:2,name:'小兰'} - ] - typesOfShoes: string[] = ['耐克', '阿迪达斯', '彪马', '亚瑟士', '斯凯奇']; - showInfo(link){ - this.router.navigate([link.id],{relativeTo:this.route}) - } - save () { - - } - - undo () {} -} diff --git a/src/app/ui/material-bank/addAttribute.html b/src/app/ui/material-bank/addAttribute.html deleted file mode 100644 index 6f60aca..0000000 --- a/src/app/ui/material-bank/addAttribute.html +++ /dev/null @@ -1,71 +0,0 @@ -
新增属性
-
-
- -
- - - -
- -
- - - - {{item.viewValue}} - - - - - - -
- -
- - - - - -
- -
- - - 不验证 - - - 区间 - 正则匹配 - - - - - -
- -
- - - -
- -
- - - -
- -
- - -
-
-
\ No newline at end of file diff --git a/src/app/ui/material-bank/addmatlibrary.component.html b/src/app/ui/material-bank/addmatlibrary.component.html deleted file mode 100644 index 6ac2f4d..0000000 --- a/src/app/ui/material-bank/addmatlibrary.component.html +++ /dev/null @@ -1,23 +0,0 @@ -
- 创建素材库 - - - - - - - 信息录入 - 预案管理 - 指挥系统 - - - - -
- - -
- -
\ No newline at end of file diff --git a/src/app/ui/material-bank/addmatlibrary.component.ts b/src/app/ui/material-bank/addmatlibrary.component.ts deleted file mode 100644 index 366b348..0000000 --- a/src/app/ui/material-bank/addmatlibrary.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; - - - -@Component({ - selector: 'addmatlibrary', - templateUrl: './addmatlibrary.component.html', - styleUrls: ['./material-bank.component.scss'] - }) - export class AddMatLibrary { - myControl = new FormControl(); - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit(): void { - if (this.data.length) { - this.order = this.data[this.data.length - 1].order + 1 - } else { - this.order =0 - } - } - - onNoClick(): void { - this.dialogRef.close(); - } - - order:number; //order - - onSubmit(value){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.post("/api/AssetLibraries",{ - id: "", - name: value.name, - order: this.order, - tag: value.tag, - enabled: true, - modifiedTime: time - }).subscribe(data=>{ - this.dialogRef.close(); - }) - } - - - - } \ No newline at end of file diff --git a/src/app/ui/material-bank/addoriginalcopy.component.html b/src/app/ui/material-bank/addoriginalcopy.component.html deleted file mode 100644 index eb0ac05..0000000 --- a/src/app/ui/material-bank/addoriginalcopy.component.html +++ /dev/null @@ -1,147 +0,0 @@ -
-
- 新增原件 -
-
-
- - - - - - - 多点连线 - 多边形 - - -
- 是否来自建筑: - - - - -
-
- 是否允许连接: - - - - -
-
-
- 最大连接数: - -
-
-
- 固定大小: - - - - -
-
- 填充方式: - - 颜色 - 图片 - -
-
-
    -
  • -
-
- - - - - - 简单 - 九宫格 - 平铺 - - - -
- 九宫格边框数值: -
- 左: - -
-
- 右: - -
-
- 上: - -
-
- 下: - -
-
- - - - -
- 图片: -
- - -
- - -
- - - - - - - -
-
- -
- - - -
  • {{node.name}}
  • -
    - - - - -
  • {{node.name}}
  • -
    -
    -
    -
    - -
    - - - -
    - - -
    - -
    diff --git a/src/app/ui/material-bank/addoriginalcopy.component.ts b/src/app/ui/material-bank/addoriginalcopy.component.ts deleted file mode 100644 index abe2bea..0000000 --- a/src/app/ui/material-bank/addoriginalcopy.component.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import format from 'date-fns/format'; -import { TreeService } from '../../http-interceptors/tree.service' -import { FileUploader } from 'ng2-file-upload' -import { MatSnackBar,MatSnackBarConfig } from '@angular/material/snack-bar'; -import { DomSanitizer } from '@angular/platform-browser' -import { NgZone } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core' -@Component({ - selector: 'addoriginalcopy', - templateUrl: './addoriginalcopy.component.html', - styleUrls: ['./material-bank.component.scss'] - }) - export class AddOriginalCopy { - - uploader:FileUploader = new FileUploader({ - url: "/api/Objects/PlanPlatform", - method: "POST", - itemAlias: "uploadedfile", - removeAfterUpload:true - }); - - - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children:node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - displaynoneid = ""//选择的关联消防id - displaynonename = "" - padding = "0" - pige = "1" - from = "1" - connect = "1" - isallowconnect :boolean = true - constructor(public changeDetectorRef:ChangeDetectorRef,private zone: NgZone,private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService,private sanitizer:DomSanitizer,public snackBar: MatSnackBar) {} - - isallowconnect1(){ - this.isallowconnect = true - } - isallowconnect2(){ - this.isallowconnect = false - } - onNoClick(): void { - this.dialogRef.close(); - } - ngOnInit() { - // console.log(222,this.data.sourceMaterial) - //获取所有的消防要素 - this.http.get('/api/FireElements').subscribe(data=>{ - this.dataSource.data = this.tree.toTree(data) - }) - } - add(e){ - this.displaynoneid = e.id - this.displaynonename = e.name - } - isImg = true - selectedcolor2(){ - this.isImg = true - this.selectedcolor ="#066eed" - this.colorIndex = 0 - } - selectedimg2(){ - this.isImg = false - this.selectedcolor ="" - } - hasChild = (_: number, node: any) => node.expandable; - - colors = ['#066eed','#00e5ef','#00ef76','#ffff00','#efb522','#20b4ac','#836eff','#ff8d00','#ef00ef','#ffa17a','#ff6a6a','#ff0000','#ff6eb5','#00bfff','#54ff9f','#00cd00','#00ffff','#6495ed','#ffdbb9','#836eff'] - isshow = true//选择颜色或者上传图片 - colorIndex:any=0; //选中的颜色的index - selectedcolor = "#066eed" - imgUrl = ""//返回来的图片地址后缀 - selectcolor(item,key){ - if(this.colorIndex != key){ - this.colorIndex = key - } - this.selectedcolor = item - } - - imgsrc = "../../../assets/images/upload2.png" - - filechange(e){ - const file = e.srcElement.files[0]; // 获取图片这里只操作一张图片 - var reader = new FileReader(); - reader.readAsDataURL(file); - var image:any = new Image(); - reader.onload = function(){ - image.src = reader.result - } - setTimeout(() => { - if(image.width > 128 && image.height > 128){ - var obj = document.getElementById('selectedfile') ; - obj.outerHTML=obj.outerHTML; - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择分辨率小于128*128的图片','确定',config); - }else{ - this.upload() - } - }, 100); - } - - upload(){ - if(!this.uploader.queue[0]){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择文件','确定',config); - }else{ - this.uploader.queue[0].upload();//开始上传 - this.uploader.queue[0].onSuccess = (response, status, headers) => { - // 上传文件成功 - if (status == 201) { - // 上传文件后获取服务器返回的数据 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('上传成功','确定',config); - - let tempRes = JSON.parse(response); - this.imgUrl = tempRes.objectName - this.imgsrc = '/api/Objects/PlanPlatform/' + this.imgUrl - }else { - // 上传文件后获取服务器返回的数据错误 - } - }; - this.uploader.queue[0].onError = (response, status, headers) => { - if (status == 401) { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('上传失败','确定',config); - } - }; - } - - } - showtype:string = '0' //默认渲染方式 - isbordernum:boolean = false - changeshowtype(e){ - if(e.value == "1"){ - this.isbordernum = true - }else{ - this.isbordernum = false - } - } - onSubmit(value){ - value.pige=Boolean(Number(value.pige)) - value.from=Boolean(Number(value.from)) - value.connect=Boolean(Number(value.connect)) - if(value.showtype == "1"){ - this.http.post(`/api/Assets`,{ - id:"", - name:value.name, - width: 0, - height: 0, - angle: 0, - interactiveMode: Number(value.tag),//交互方式 - isFromBuilding:value.from, - canConnect:value.connect, - holeMaxCount:value.connect ? value.maxconnect : 0, - fixedSize: value.pige, - fillMode: Number(value.padding),//填充方式 - color: this.selectedcolor+'80', - imageUrl:'/api/Objects/PlanPlatform/' + this.imgUrl, - drawMode: Number(value.showtype) , //渲染方式 - border:{ - x: value.left, - y: value.bottom, - z: value.right, - w: value.top - }, - order: this.data.sourceMaterial.length, - enabled: true, - propertyInfos: [], - fireElementId:this.displaynoneid - }, - { - params: { - libraryId:this.data.node.id, - } - }).subscribe((data)=>{ - this.dialogRef.close("ooo"); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('新建成功','确定',config); - }) - }else{ - this.http.post(`/api/Assets`,{ - id:"", - name:value.name, - width: 0, - height: 0, - angle: 0, - interactiveMode: Number(value.tag),//交互方式 - isFromBuilding:value.from, - canConnect:value.connect, - holeMaxCount:value.connect ? value.maxconnect : 0, - fixedSize: value.pige, - fillMode: Number(value.padding),//填充方式 - color: this.selectedcolor+'80', - imageUrl:'/api/Objects/PlanPlatform/' + this.imgUrl, - drawMode: Number(value.showtype) , //渲染方式 - border:{}, - order: this.data.sourceMaterial.length, - enabled: true, - propertyInfos: [], - fireElementId:this.displaynoneid - }, - { - params: { - libraryId:this.data.node.id, - } - }).subscribe((data)=>{ - this.dialogRef.close("ooo"); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('新建成功','确定',config); - }) - } - } - } \ No newline at end of file diff --git a/src/app/ui/material-bank/attribute.html b/src/app/ui/material-bank/attribute.html deleted file mode 100644 index 369a50d..0000000 --- a/src/app/ui/material-bank/attribute.html +++ /dev/null @@ -1,94 +0,0 @@ -
    -
    -
    {{data.name}}
    -
    - - - -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - add_box - - - 名称 - {{element.propertyName}} - 类型 - - - - - - - - - - 默认值 - {{element.propertyValue}} - 必填 - - - 单位 - {{element.physicalUnit}} - 操作 - border_color - visibility - visibility_off - block - block - delete -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/material-bank/editAttribute.html b/src/app/ui/material-bank/editAttribute.html deleted file mode 100644 index 22a190c..0000000 --- a/src/app/ui/material-bank/editAttribute.html +++ /dev/null @@ -1,71 +0,0 @@ -
    编辑属性
    -
    -
    - -
    - - - -
    - -
    - - - - {{item.viewValue}} - - - - - - -
    - -
    - - - - - -
    - -
    - - - 不验证 - - - 区间 - 正则匹配 - - - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/material-bank/editmatlibrary.component.html b/src/app/ui/material-bank/editmatlibrary.component.html deleted file mode 100644 index c86c117..0000000 --- a/src/app/ui/material-bank/editmatlibrary.component.html +++ /dev/null @@ -1,23 +0,0 @@ -
    - 修改素材库 - - - - - - - 信息录入 - 预案管理 - 指挥系统 - - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/material-bank/editmatlibrary.component.ts b/src/app/ui/material-bank/editmatlibrary.component.ts deleted file mode 100644 index fcbba63..0000000 --- a/src/app/ui/material-bank/editmatlibrary.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; -@Component({ - selector: 'editmatlibrary', - templateUrl: './editmatlibrary.component.html', - styleUrls: ['./material-bank.component.scss'] - }) - export class EditMatLibrary { - myControl = new FormControl(); - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - name:any - input:any - ngOnInit(): void { - this.name = this.data.material.name - this.input = this.data.material.tag - } - onNoClick(): void { - - this.dialogRef.close(); - } - onSubmit(value){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.put(`/api/AssetLibraries/${this.data.material.id}`,{ - id: this.data.material.id, - name: value.name, - order: this.data.material.order, - tag: value.tag, - enabled: true, - modifiedTime: time - }).subscribe(data=>{ - this.dialogRef.close(); - }) - } - } \ No newline at end of file diff --git a/src/app/ui/material-bank/editoriginalcopy.component.html b/src/app/ui/material-bank/editoriginalcopy.component.html deleted file mode 100644 index e00e323..0000000 --- a/src/app/ui/material-bank/editoriginalcopy.component.html +++ /dev/null @@ -1,149 +0,0 @@ -
    -
    - 编辑原件 -
    -
    -
    - - - - - - - 多点连线 - 多边形 - - -
    - 是否来自建筑: - - - - -
    -
    - 是否允许连接: - - - - -
    -
    -
    - 最大连接数: - -
    -
    -
    - 固定大小: - - - - -
    - -
    - 填充方式: - - 颜色 - 图片 - -
    -
    -
      -
    • -
    -
    - - - - - - 简单 - 九宫格 - 平铺 - - - -
    -

    九宫格边框数值:

    -
    -
    - 左: - -
    -
    - 右: - -
    -
    - 上: - -
    -
    - 下: - -
    -
    - -
    - - - - - - - -
    - 图片: -
    - 暂无图片 - -
    - -
    - - - -
    -
    - -
    - - - -
  • {{node.name}}
  • -
    - - - - -
  • {{node.name}}
  • -
    -
    -
    -
    - -
    - - - -
    - - -
    - -
    diff --git a/src/app/ui/material-bank/editoriginalcopy.component.ts b/src/app/ui/material-bank/editoriginalcopy.component.ts deleted file mode 100644 index 4a7f751..0000000 --- a/src/app/ui/material-bank/editoriginalcopy.component.ts +++ /dev/null @@ -1,305 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar,MatSnackBarConfig } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; -import { TreeService } from '../../http-interceptors/tree.service' -import { FileUploader } from 'ng2-file-upload' -import { DomSanitizer } from '@angular/platform-browser' -@Component({ - selector: 'editoriginalcopy', - templateUrl: './editoriginalcopy.component.html', - styleUrls: ['./material-bank.component.scss'] - }) - export class EditOriginalCopy { - - uploader:FileUploader = new FileUploader({ - url: "/api/Objects/PlanPlatform", - method: "POST", - itemAlias: "uploadedfile", - removeAfterUpload:true - }); - - - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children:node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - - displaynonename = "" - iscolor =null - isimg = null - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService,private sanitizer:DomSanitizer,public snackBar: MatSnackBar) {} - - colors = ['#066eed','#00e5ef','#00ef76','#ffff00','#efb522','#20b4ac','#836eff','#ff8d00','#ef00ef','#ffa17a','#ff6a6a','#ff0000','#ff6eb5','#00bfff','#54ff9f','#00cd00','#00ffff','#6495ed','#ffdbb9','#836eff'] - isshow = true//选择颜色或者上传图片 - colorIndex:any=0; //选中的颜色的index - selectedcolor = "#066eed" - imgUrl = ""//返回来的图片地址后缀 - defaultname = this.data.Original.name//点击的原件的name - OriginalId = this.data.Original.id//点击的原件的id - OriginalfireElementId = this.data.Original.fireElementId//点击的原件的消防id - displaynoneid = this.OriginalfireElementId//选择的关联消防id - OriginalfireElementName = null //点击的原件的消防name - OriginalpropertyInfos = this.data.Original.propertyInfos//点击原件的属性信息 - OriginalinteractiveMode = String(this.data.Original.interactiveMode) //点击原件的交互方式 - OriginalfixedSize = String(Number(this.data.Original.fixedSize))//点击原件的固定大小 - from = String(Number(this.data.Original.isFromBuilding)) - Originalpadding = null - Originalimageurl = this.data.Original.imageUrl//点击原件的图片地址 - Originalcolor = this.data.Original.color - padding = "0"// - showtype:any//默认渲染方式 - - left:number - right:number - top:number - bottom:number - isbordernum:boolean - connect:any - isallowconnect :boolean = true - connectvalue:any - onNoClick(): void { - this.dialogRef.close(); - } - isallowconnect1(){ - this.isallowconnect = true - } - isallowconnect2(){ - this.isallowconnect = false - } - changeshowtype(e){ - if(e.value == "1"){ - this.isbordernum = true - }else{ - this.isbordernum = false - } - } - ngOnInit() { - // console.log(this.data.Original) - if(this.data.Original.drawMode == 1){ - this.isbordernum = true - }else{ - this.isbordernum = false - } - this.connectvalue = this.data.Original.holeMaxCount - if(this.data.Original.canConnect){ - this.connect = "1" - }else{ - this.connect = "0" - } - this.isallowconnect = this.data.Original.canConnect - - this.showtype = this.data.Original.drawMode + '' - if(this.data.Original.border){ - this.left = this.data.Original.border.x - this.bottom = this.data.Original.border.y - this.right = this.data.Original.border.z - this.top = this.data.Original.border.w - } - - if(this.data.Original.fillMode == 1){ - this.isxxx = false - this.colorIndex = null - } - if(this.Originalcolor){//如果该原件有颜色 - let Originalcolordata =(this.Originalcolor).slice(0,7) - this.colors.forEach((item,index)=>{ - if(item == Originalcolordata){ - this.colorIndex = index - } - }) - } - - - - this.http.get('/api/FireElements').subscribe((data:any)=>{ - this.dataSource.data = this.tree.toTree(data) - data.forEach(item=>{ - if(item.id === this.OriginalfireElementId){ - this.OriginalfireElementName = item.name - } - }) - }) - - this.dataSource.data.forEach(item=>{ - - }) - - if(this.data.Original.fillMode == 0){ - this.Originalpadding ="0" - }else{ - this.Originalpadding ="1" - } - } - add(e){ - this.displaynoneid = e.id - this.OriginalfireElementName = e.name - } - hasChild = (_: number, node: any) => node.expandable; - //控制20种颜色是否显示 - isxxx = true - //点击选择颜色 - selcolor(){ - this.isxxx = true - if(this.data.Original.fillMode == 1){ - this.colorIndex = null - } - } - //点击选择图片 - selimg(){ - this.isxxx = false - } - selectcolor(item,key){ - if(this.colorIndex != key){ - this.colorIndex = key - } - this.selectedcolor = item - } - imgsrc = "" - filechange(e){ - const file = e.srcElement.files[0]; // 获取图片这里只操作一张图片 - var reader = new FileReader(); - reader.readAsDataURL(file); - var image:any = new Image(); - reader.onload = function(){ - image.src = reader.result - } - setTimeout(() => { - if(image.width > 128 && image.height > 128){ - var obj = document.getElementById('selectedfile') ; - obj.outerHTML=obj.outerHTML; - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择分辨率小于128*128的图片','确定',config); - }else{ - this.upload() - } - }, 100); - } - upload(){ - if(!this.uploader.queue[0]){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择文件','确定',config); - }else{ - this.uploader.queue[0].upload();//开始上传 - this.uploader.queue[0].onSuccess = (response, status, headers) => { - // 上传文件成功 - if (status == 201) { - // 上传文件后获取服务器返回的数据 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('上传成功','确定',config); - let tempRes = JSON.parse(response); - this.imgUrl = tempRes.objectName - this.Originalimageurl = '/api/Objects/PlanPlatform/' + this.imgUrl - }else { - // 上传文件后获取服务器返回的数据错误 - } - }; - this.uploader.queue[0].onError = (response, status, headers) => { - if (status == 401) { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('无权限上传','确定',config); - } - }; - } - - } - newimageUrl = "" - onSubmit(value){ - // console.log(value) - if(!this.imgUrl){//判断编辑时是否重新上传了照片 - this.newimageUrl = this.Originalimageurl - }else{ - this.newimageUrl = '/api/Objects/PlanPlatform/' + this.imgUrl - } - value.from=Boolean(Number(value.from)) - value.pige=Boolean(Number(value.pige)) - value.connect=Boolean(Number(value.connect)) - if(value.showtype == "1"){ - this.http.put(`/api/Assets/${this.OriginalId}`,{ - id:this.OriginalId, - name:value.name, - width: 0, - height: 0, - angle: 0, - interactiveMode: Number(value.tag),//交互方式 - isFromBuilding:value.from, - canConnect:value.connect, - holeMaxCount:value.connect ? value.maxconnect : 0, - fixedSize: value.pige, - fillMode: Number(value.padding),//填充方式 - color: this.selectedcolor+'80', - imageUrl:this.newimageUrl, - drawMode: Number(value.showtype) , //渲染方式 - border: { - x: value.left, - y: value.bottom, - z: value.right, - w: value.top - }, - order: this.data.Original.order, - enabled: true, - propertyInfos: this.OriginalpropertyInfos, - fireElementId:this.displaynoneid - }).subscribe((data)=>{ - this.dialogRef.close("ooo"); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改成功','确定',config); - }) - }else{ - this.http.put(`/api/Assets/${this.OriginalId}`,{ - id:this.OriginalId, - name:value.name, - width: 0, - height: 0, - angle: 0, - interactiveMode: Number(value.tag),//交互方式 - isFromBuilding:value.from, - canConnect:value.connect, - holeMaxCount:value.connect ? value.maxconnect : 0, - fixedSize: value.pige, - fillMode: Number(value.padding),//填充方式 - color: this.selectedcolor+'80', - imageUrl:this.newimageUrl, - drawMode: Number(value.showtype) , //渲染方式 - border: {}, - order: this.data.Original.order, - enabled: true, - propertyInfos: this.OriginalpropertyInfos, - fireElementId:this.displaynoneid - }).subscribe((data)=>{ - this.dialogRef.close("ooo"); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改成功','确定',config); - }) - } - - - } - } \ No newline at end of file diff --git a/src/app/ui/material-bank/material-bank.component.html b/src/app/ui/material-bank/material-bank.component.html deleted file mode 100644 index e4eb8ba..0000000 --- a/src/app/ui/material-bank/material-bank.component.html +++ /dev/null @@ -1,68 +0,0 @@ -
    -
    -
    - keyboard_arrow_down - chevron_right - 素材库管理 -
    - - - - -
    -
    -
    -
    - folder{{item.name}} - block -
    -
    - -
    - -
    -
    -
    -

    {{material.name}}

    -
    - - - - - - -
    -
    - -
    -
    - - {{item.name}} - block -
    -
    - -
    - - -
    -
    diff --git a/src/app/ui/material-bank/material-bank.component.scss b/src/app/ui/material-bank/material-bank.component.scss deleted file mode 100644 index a42d67c..0000000 --- a/src/app/ui/material-bank/material-bank.component.scss +++ /dev/null @@ -1,310 +0,0 @@ -.content { - padding: 0 0 0 10px; - width: 100%; - height: 90%; - overflow-x: hidden; - overflow-y: auto; - display: flex; - .leftBox { - flex: 20%; - padding-top: 10px; - } - .rightBox { - border-left: 1px solid #999; - flex: 80%; - display: flex; - flex-direction: column; - .topBox { - flex:1; - .originalScript { - border-bottom: 1px solid #999; - background-color: #fafafa; - padding:5px 0; - width: 100%; - padding-left: 20px; - font-weight: 500; - display: flex; - flex-direction: row; - p{ - margin-top: 11px; - } - .mat-icon { - vertical-align:middle; - } - } - } - } -} - - - -.bank { - display: flex; - font-size: 18px; - font-weight: 500; -} - -.mat-icon { - width: 18px; - height: 18px; - vertical-align:top; - margin-right: 8px; - cursor:pointer; -} -.material { - cursor:pointer; - height: 30px; - font-size: 16px; - margin-top: 10px; - padding-left: 25px; - .btn { - color: #FFC122; - } - .blockBtn { - float: right; - margin-right: 15px; - width: 16px; - height: 16px; - } -} -.imgBox { - padding: 5px 0 0 5px; - margin-top: 5px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - .imgDiv { - span{ - overflow: hidden; - text-overflow: ellipsis; - } - display: inline-block; - margin-right: 10px; - margin-bottom: 10px; - width: 90px; - height: 165px; - text-align: center; - img { - width: 100%; - } - } -} - -.attribute { - padding-left: 25px; - display: flex; - flex-direction: row; - background-color: #d7d7d7; - div { - margin-right: 25px; - } - .attributeLeft{ - padding-top: 8px; - flex: 75%; - } -} -.btnBox .mat-icon{ - padding: 8px; -} -.overFlow { - height: 500px; - overflow: auto; -} -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } -} - - - -.active { - background-color: rgba(225,225,225,0.8) -} -.OriginalActive { - background-color: rgba(225,225,225,0.8); -} - -.btn{ - text-align: center; - button{ - margin: 0 8px; - } -} -.addbtn{ - width: 584px; - height: 32px; - border-top: 1px solid black; - text-align: center; - padding-top: 6px; - button{ - margin: 0 6px; - } -} -.mat-radio-button { - font-size: 14px; - margin-right: 5px; -} -.topbox{ - height: 32px; - border-bottom: 1px solid black; - -} -.mainbox{ - position: relative; - width: 582px; - height: 656px; - .mainleft{ - height: 646px; - width: 290px; - float: left; - border-right: 1px solid black; - padding-top: 10px; - mat-form-field{ - display: block; - width: 220px; - } - .padding{ - margin-top: 12px; - } - .color{ - height: 50px; - .color1{ - - margin-bottom: 5px; - margin-top: 12px; - li{ - width: 23px; - height: 23px; - list-style: none; - // margin: 2px; - float: left; - border: 2px solid white; - } - } - } - } - .mainright{ - width: 288px; - height: 654px; - float: left; - overflow: auto; - label{ - font-weight: 900; - } - } -} -.coloractive{ - border: 2px solid black !important; - -} -.pigepadding{ - font-size: 16px; -} -.selectoriginalcopybox{ - width: 423px; - height: 300px; - border: 1px solid black; - overflow: auto; - margin-bottom: 10px; -} -.originalcopyimg{ - width: 100px; - height: 120px; - float: left; - text-align: center; - img{ - width: 70px; - height: 70px; - } - p{ - font-size: 11px; - height: 11px; - } - -} -.selectedback{ - background-color:rgba(0,165,219,0.5); -} -.selecteditem{ - // background: grey; - cursor:not-allowed; - background-color: rgba(225, 225, 225, 0.8) -} -.selecteditemimg{ - opacity: 0.3; - filter: alpha(opacity=30); -} -.matname{ - margin-left: 6px; - -} -.divImg{ - width: 95px; - height: 95px; - font-size: 15px; - margin-left: 48px; - margin-top: -11px; - border: 1px dashed grey; - padding: 4px; - img{ - width: 100%; - height: 100%; - - } -} -.Input{ - width: 102px; - height: 103px; - position: absolute; - left:0px; - top: 0px; - cursor: pointer; - opacity:0 -} -.relevancefire{ - margin-top: 5px; -} -.fireli{ - list-style: none; - -} -.fireli:hover{ - background: rgba(225, 225, 225, 0.8); - cursor: pointer; -} -.firebtn{ - line-height: 24px; -} -.image{ - margin-bottom: 6px; -} - -.positionup{ - position: absolute; - top:407px; - left: 50px -} -.isbordernum{ - position: absolute; - top: 410px; - left: 50px -} -.from{ - margin-bottom: 10px; -} -.border{ - .bordernum{ - display: block; - } - .borderinputbox{ - float: left; - width: 142px; - input{ - width: 98px; - } - } - -} \ No newline at end of file diff --git a/src/app/ui/material-bank/material-bank.component.ts b/src/app/ui/material-bank/material-bank.component.ts deleted file mode 100644 index eb9e703..0000000 --- a/src/app/ui/material-bank/material-bank.component.ts +++ /dev/null @@ -1,572 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { AddMatLibrary } from './addmatlibrary.component' -import { EditMatLibrary } from './editmatlibrary.component' -import { AddOriginalCopy } from './addoriginalcopy.component' -import { MatTableDataSource } from '@angular/material/table'; -import { EditOriginalCopy } from './editoriginalcopy.component' -import { SelectOriginalCopy } from './selectoriginalcopy.component' -import { MatSnackBar,MatSnackBarConfig } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; - - - -@Component({ - selector: 'app-material-bank', - templateUrl: './material-bank.component.html', - styleUrls: ['./material-bank.component.scss'] -}) -export class MaterialBankComponent implements OnInit { - - constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - ngOnInit(): void { - this.http.get('/api/AssetLibraries').subscribe(data=>{ - this.material = data[0] - this.allMaterialBank = data - this.getSourceMaterial() - }) - } - - allMaterialBank:any = []; //所有素材库 - material:any={name:''}; //选中的素材库 - materialIndex:any=0; //选中的素材库index - - sourceMaterial:any; //素材库对应所有原件 - Original:any; //选中的原件 - OriginalIndex:any=null; //选中的原件index - isshow = true//左侧列表的显示隐藏 - - //收起左侧列表 - showlist(){ - this.isshow = !this.isshow - } - //获取所有素材库 - getMaterialBank () { - this.http.get('/api/AssetLibraries').subscribe(data=>{ - this.allMaterialBank = data - this.material = data[this.materialIndex] - }) - } - - //获得指定素材库所有原件 - getSourceMaterial () { - this.sourceMaterial = null - if (this.material) { - let data = { - libraryId:this.material.id - } - this.http.get('/api/Assets',{ - params:data - }).subscribe(data=>{ - this.sourceMaterial = data - this.Original = data[this.OriginalIndex] - }) - } - } - - //选中素材库 - add (e,index) { - this.Original = null - this.OriginalIndex = null - if (this.materialIndex != index) { - this.material = e - this.materialIndex = index - this.getSourceMaterial() - } - } - - //选中原件 - addOriginal (e,index) { - this.Original = e - this.OriginalIndex = index - } - - //打开查看属性弹窗 - viewProperties () { - if(this.Original){ - let data = this.Original - const dialogRef = this.dialog.open(attributeComponent, - {width: '1000px',data}); - dialogRef.afterClosed().subscribe( - (data)=>{if(data){this.getSourceMaterial()}} - ) - }else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择原件','确定',config); - } - } - - - - - //新增素材库 - addmatlibrary(){ - let data = this.allMaterialBank || [] - const dialogRef = this.dialog.open(AddMatLibrary, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.getMaterialBank () - } - ); - } - - //编辑素材库 - editmatlibrary(){ - const dialogRef = this.dialog.open(EditMatLibrary, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {allMaterialBank:this.allMaterialBank,material:this.material} - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.getMaterialBank () - } - ); - } - - //删除素材库 - delete(){ - var isdeleted = confirm(`确定要删除${this.material.name}素材库吗?`) - if(isdeleted){ - //请求删除接口 - this.http.delete(`/api/AssetLibraries/${this.material.id}`).subscribe( data=>{ - this.materialIndex -= 1//删除之后焦点前移 - this.getMaterialBank () - }) - } - } - - //禁启用素材库 - disabled(){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - if(this.material.enabled){ - this.http.put(`/api/AssetLibraries/${this.material.id}`,{ - id: this.material.id, - name: this.material.name, - order: this.material.order, - tag: this.material.tag, - enabled: false, - modifiedTime: time - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('禁用成功','确定',config); - this.getMaterialBank () - }) - }else{ - this.http.put(`/api/AssetLibraries/${this.material.id}`,{ - id: this.material.id, - name: this.material.name, - order: this.material.order, - tag: this.material.tag, - enabled: true, - modifiedTime: time - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('启用成功','确定',config); - this.getMaterialBank () - }) - } - - } - - //新增素材原件 - addoriginalcopy(node){ - const dialogRef = this.dialog.open(AddOriginalCopy, {//调用open方法打开对话框并且携带参数过去 - // height:"715px", - width:"640px", - data: {allMaterialBank:this.allMaterialBank,node:node,sourceMaterial:this.sourceMaterial} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getSourceMaterial () - } - - } - ); - } - //修改素材原件 - editoriginalcopy(node){ - if(this.Original){ - const dialogRef = this.dialog.open(EditOriginalCopy, {//调用open方法打开对话框并且携带参数过去 - // height:"580px", - width:"640px", - data: {allMaterialBank:this.allMaterialBank,node:node,Original:this.Original} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getSourceMaterial () - } - } - ); - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择原件','确定',config); - } - - } - - //禁启用原件 - disableoriginal(material){ - if(this.Original){ - this.http.put(`/api/Assets/${this.Original.id}`,{ - id:this.Original.id, - name:this.Original.name, - width: this.Original.width, - height: this.Original.height, - angle: this.Original.angle, - interactiveMode:this.Original.interactiveMode,//交互方式 - fixedSize: this.Original.fixedSize, - fillMode: this.Original.fillMode,//填充方式 - color: this.Original.color, - imageUrl:this.Original.imageUrl, - order: this.Original.order, - enabled: !this.Original.enabled, - propertyInfos: this.Original.propertyInfos, - fireElementId:this.Original.fireElementId - }).subscribe((data)=>{ - this.getSourceMaterial () - }) - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择原件','确定',config); - } - } - - //删除原件 - deleteoriginal(material){ - if(this.Original){ - var isdeleted = confirm(`确定要删除当前原件吗?`) - if(isdeleted){ - //请求删除接口 - this.http.delete(`/api/Assets`,{ - params:{ - libraryId:material.id, - id:this.Original.id - } - }).subscribe( data=>{ - this.getSourceMaterial () - }) - } - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择原件','确定',config); - } - } - - //选择原件素材 material为当前素材库的信息 - selectoriginal(material){ - const dialogRef = this.dialog.open(SelectOriginalCopy, {//调用open方法打开对话框并且携带参数过去 - // height:"525px", - data: {allMaterialBank:this.allMaterialBank,material:material} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getSourceMaterial () - } - - } - ); - } - - - -} - - - -//原件对应所有属性弹窗 -@Component({ - selector: 'app-attribute', - templateUrl: './attribute.html', - styleUrls: ['./material-bank.component.scss'] -}) -export class attributeComponent { - - constructor(private http:HttpClient,public dialog: MatDialog, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) { } - - ngOnInit(): void { - if (this.data.propertyInfos == null) { - this.data.propertyInfos = [] - } - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos) - } - - displayedColumns = ['checked', 'name', 'type', 'default','required','physicalUnit','operation']; - dataSource:any=[]; //当前原件属性渲染table - dataSourceIndex:any=[]; //选中属性的index - - - - //封装函数每次更改,重新获取下标 - setIndex () { - if (this.data.propertyInfos) { - this.data.propertyInfos.forEach((item,index)=>{ - item.index = index - }) - } - } - - //点击checked框获取当前属性index - checkedChange (e,index) { - if (e.checked) { - this.dataSourceIndex.push(index) - } else { - this.dataSourceIndex.splice(this.dataSourceIndex.findIndex(item=>item==index),1) - } - } - - //上移 - toTop () { - if(this.dataSourceIndex.length) { - let index = this.dataSourceIndex[this.dataSourceIndex.length-1] - if (index != 0) { - let data = this.data.propertyInfos[index] - this.data.propertyInfos[index]=this.data.propertyInfos[index-1] - this.data.propertyInfos[index-1] = data - this.dataSourceIndex[this.dataSourceIndex.length-1] = index-1 - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos) - } - } - } - - //下移 - toBottom () { - if(this.dataSourceIndex.length) { - let index = this.dataSourceIndex[this.dataSourceIndex.length-1] - if (index != this.data.propertyInfos.length-1) { - let data = this.data.propertyInfos[index] - this.data.propertyInfos[index]=this.data.propertyInfos[index+1] - this.data.propertyInfos[index+1] = data - this.dataSourceIndex[this.dataSourceIndex.length-1] = index+1 - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos) - } - } - } - - - - //新增属性弹窗 - add () { - const dialogRef = this.dialog.open(addAttributeComponent); - dialogRef.afterClosed().subscribe( - (data)=>{ - if (data) { - this.data.propertyInfos.push(data) - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos)} - }) - } - - //编辑属性弹窗 - edit (e) { - - let data = this.data.propertyInfos[e] - const dialogRef = this.dialog.open(editAttribute,{data}); - dialogRef.afterClosed().subscribe( - data=>{ - if (data) { - this.data.propertyInfos[data.index] = data - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos)} - }) - } - - //显示 - visible (e) { - this.data.propertyInfos[e].visible = true - } - //隐藏 - noVisible (e) { - this.data.propertyInfos[e].visible = false - } - //启用 - enabled (e) { - this.data.propertyInfos[e].enabled = true - } - //禁用 - noEnabled (e) { - this.data.propertyInfos[e].enabled = false - } - //删除 - delete (e) { - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - this.data.propertyInfos.splice(e,1) - this.setIndex() - this.dataSource = new MatTableDataSource(this.data.propertyInfos) - } - } - - - - //原件属性保存 - preservation () { - if (this.data.propertyInfos.length) { - this.data.propertyInfos.forEach(item => { - delete item.index - }); - this.submit() - } else { - this.submit() - } - } - - //提交保存 - submit () { - this.http.put(`/api/Assets/${this.data.id}`,{ - id:this.data.id, - name:this.data.name, - width:this.data.width, - height:this.data.height, - angle:this.data.angle, - interactiveMode:this.data.interactiveMode, - isFromBuilding: this.data.isFromBuilding, - canConnect:this.data.canConnect, - holeMaxCount:this.data.holeMaxCount, - fixedSize:this.data.fixedSize, - fillMode:this.data.fillMode, - color:this.data.color, - imageUrl:this.data.imageUrl, - drawMode:this.data.drawMode, - border:this.data.border, - order:this.data.order, - enabled:this.data.enabled, - propertyInfos:this.data.propertyInfos, - fireElementId:this.data.fireElementId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('保存成功','确定',config); - this.dialogRef.close('success') - }) - } - -} - - - -//新增属性弹窗 -export interface Food { - value: number; - viewValue: string; -} -@Component({ - selector: 'app-addAttribute', - templateUrl: './addAttribute.html', - styleUrls: ['./material-bank.component.scss'] -}) -export class addAttributeComponent { - - constructor(private http:HttpClient,public dialog: MatDialog, - public dialogRef: MatDialogRef,) { } - - ngOnInit(): void {} - - //定义属性数据 - propertyType:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'}, - {value:3, viewValue: '图片'}, - {value:4, viewValue: '图片数量'}, - {value:5, viewValue: '方向'}, - {value:6, viewValue: '布尔值'}, - {value:7, viewValue: '供给区域'}, - {value:8, viewValue: '供给类型'}] - - //提交表单 - onSubmit (e) { - e.order = 0 - e.enabled = true - e.visible = true - e.required = e.required=='true'? true: false, - this.dialogRef.close(e) - } - -} - - - -//编辑属性弹窗 -@Component({ - selector: 'app-editAttribute', - templateUrl: './editAttribute.html', - styleUrls: ['./material-bank.component.scss'] -}) -export class editAttribute { - - constructor(private http:HttpClient,public dialog: MatDialog, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data,) { } - - ngOnInit(): void { - this.propertyName = this.data.propertyName - this.propertyValue = this.data.propertyValue - this.propertyType = this.data.propertyType - this.required = String(this.data.required) - this.ruleName = this.data.ruleName - this.ruleValue = this.data.ruleValue - this.physicalUnit = this.data.physicalUnit - this.tag = this.data.tag} - - - propertyName:any - propertyValue:any; - propertyType:number; - required:any; - ruleName:any; - ruleValue:any; - physicalUnit:any; - tag:any; - - //定义属性数据 - type:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'}, - {value:3, viewValue: '图片'}, - {value:4, viewValue: '图片数量'}, - {value:5, viewValue: '方向'}, - {value:6, viewValue: '布尔值'}, - {value:7, viewValue: '供给区域'}, - {value:8, viewValue: '供给类型'}] - - //提交表单 - onSubmit (e) { - e.order = 0 - e.enabled = this.data.enabled - e.visible = this.data.visible - e.index = this.data.index - e.required = e.required=='true'? true: false, - this.dialogRef.close(e) - } - - - -} \ No newline at end of file diff --git a/src/app/ui/material-bank/selectoriginalcopy.component.html b/src/app/ui/material-bank/selectoriginalcopy.component.html deleted file mode 100644 index 00f4e33..0000000 --- a/src/app/ui/material-bank/selectoriginalcopy.component.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - 选择原件 - - - {{item.name}} - - -
    -
    - -

    {{item.name}}

    - - -
    -
    - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/material-bank/selectoriginalcopy.component.ts b/src/app/ui/material-bank/selectoriginalcopy.component.ts deleted file mode 100644 index 65d195f..0000000 --- a/src/app/ui/material-bank/selectoriginalcopy.component.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; -@Component({ - selector: 'selectoriginalcopy', - templateUrl: './selectoriginalcopy.component.html', - styleUrls: ['./material-bank.component.scss'] - }) - export class SelectOriginalCopy { - myControl = new FormControl(); - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - matlibrary = this.data.allMaterialBank//所有素材库 - selectedmatlibraryid = ""//当前下拉框选中的素材库id - sourceMaterial:any; //指定素材库对应所有原件 - atpresentSourceMaterial:any//当前选择原件素材库对应所有原件 - aaa = this.data.allMaterialBank[0].id//默认显示第一个素材库 - ngOnInit(): void { - this.getatpresentSourceMaterial ()//初始化时先获取一下当前素材库对应所有原件,然后在获取指定素材库原件时进行筛选对比 - let data = { - libraryId:this.data.allMaterialBank[0].id - } - this.http.get('/api/Assets',{ - params:data - }).subscribe((data : any)=>{ - data.forEach(item => { - this.atpresentSourceMaterial.forEach(n=>{ - if(n.id == item.id){ - item.isselected = true - } - }) - }); - this.sourceMaterial = data - }) - - } - onNoClick(): void { - this.dialogRef.close(); - } - - //获得指定素材库所有原件 - getSourceMaterial () { - let data = { - libraryId:this.selectedmatlibraryid - } - this.http.get('/api/Assets',{ - params:data - }).subscribe((data : any)=>{ - data.forEach(item => { - this.atpresentSourceMaterial.forEach(n=>{ - if(n.id == item.id){ - item.isselected = true - } - }) - }); - this.sourceMaterial = data - }) - } - //获得当前素材库所有原件 - getatpresentSourceMaterial (){ - let data = { - libraryId:this.data.material.id - } - this.http.get('/api/Assets',{ - params:data - }).subscribe(data=>{ - this.atpresentSourceMaterial = data - }) - } - selectmatlibrart(item){//点击下拉框中的一项 - this.selectedmatlibraryid = item.id - this.getSourceMaterial () - } - selectedimg = []//需要提交的原件id数组 - clickimg(item){//点击选择原件的多张图片 - if(!item.isselected){ - if(item.istrue){//如果图片已经被选中,此时点击 - item.istrue = false - this.selectedimg.forEach((n,index) => { - if(n == item.id){//将此id从数组中移除 - this.selectedimg.splice(index,1) - } - }); - }else{//如果图片还没有被选中 - item.istrue = true - this.selectedimg.push(item.id)//将选中图片id存入数组 - } - } - - } - onSubmit(value){ - this.http.post("/api/Assets/Select",{ - assetLibraryId:this.data.material.id , - assetIds: this.selectedimg - }).subscribe(data=>{ - this.dialogRef.close('ooo'); - }) - } - } \ No newline at end of file diff --git a/src/app/ui/menu/menu.component.html b/src/app/ui/menu/menu.component.html deleted file mode 100644 index 291721d..0000000 --- a/src/app/ui/menu/menu.component.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/app/ui/menu/menu.component.scss b/src/app/ui/menu/menu.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/menu/menu.component.spec.ts b/src/app/ui/menu/menu.component.spec.ts deleted file mode 100644 index beb2d9b..0000000 --- a/src/app/ui/menu/menu.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { MenuComponent } from './menu.component'; - -describe('MenuComponent', () => { - let component: MenuComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ MenuComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(MenuComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/menu/menu.component.ts b/src/app/ui/menu/menu.component.ts deleted file mode 100644 index e21108c..0000000 --- a/src/app/ui/menu/menu.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-menu', - templateUrl: './menu.component.html', - styleUrls: ['./menu.component.scss'] -}) -export class MenuComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/ui/navmenus/createmenus.component.html b/src/app/ui/navmenus/createmenus.component.html deleted file mode 100644 index 3258a3d..0000000 --- a/src/app/ui/navmenus/createmenus.component.html +++ /dev/null @@ -1,24 +0,0 @@ -
    - - - - - - - - - - - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/navmenus/editmenus.component.html b/src/app/ui/navmenus/editmenus.component.html deleted file mode 100644 index 2c37c37..0000000 --- a/src/app/ui/navmenus/editmenus.component.html +++ /dev/null @@ -1,24 +0,0 @@ -
    - - - - - - - - - - - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/navmenus/navmenus.component.html b/src/app/ui/navmenus/navmenus.component.html deleted file mode 100644 index 967468b..0000000 --- a/src/app/ui/navmenus/navmenus.component.html +++ /dev/null @@ -1,27 +0,0 @@ -
    - - - - {{node.name}} - - - - - - - - - {{node.name}} - - - - - - -
    \ No newline at end of file diff --git a/src/app/ui/navmenus/navmenus.component.scss b/src/app/ui/navmenus/navmenus.component.scss deleted file mode 100644 index f6123e2..0000000 --- a/src/app/ui/navmenus/navmenus.component.scss +++ /dev/null @@ -1,34 +0,0 @@ -table { - width: 100%; - th,td{ - text-align: center; - } -} -form{ - text-align: center; - button{ - margin: 0 12px; - } -} -mat-tree{ - width: 500px; - button{ - display: block; - float: right; - } - mat-tree-node{ - position: relative; - .deleted{ - position: absolute; - right: 0; - } - .create{ - position: absolute; - right: 80px; - } - .edit{ - position: absolute; - right: 40px; - } - } -} diff --git a/src/app/ui/navmenus/navmenus.component.spec.ts b/src/app/ui/navmenus/navmenus.component.spec.ts deleted file mode 100644 index 788f582..0000000 --- a/src/app/ui/navmenus/navmenus.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NavmenusComponent } from './navmenus.component'; - -describe('NavmenusComponent', () => { - let component: NavmenusComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ NavmenusComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(NavmenusComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/navmenus/navmenus.component.ts b/src/app/ui/navmenus/navmenus.component.ts deleted file mode 100644 index d7a9619..0000000 --- a/src/app/ui/navmenus/navmenus.component.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { Component, OnInit,Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { HttpClient } from '@angular/common/http'; -import { TreeService } from '../../http-interceptors/tree.service' -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-navmenus', - templateUrl: './navmenus.component.html', - styleUrls: ['./navmenus.component.scss'] -}) -export class NavmenusComponent implements OnInit { - newdata = []; - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children:node.children, - url:node.url, - icon:node.icon - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - constructor(private http: HttpClient,public dialog: MatDialog,private tree:TreeService,public snackBar: MatSnackBar) { } - getlist = ():void=>{ - this.http.get('/api/NavMenus').subscribe((data: any[])=>{ - this.newdata = this.tree.toTree(data) - const nodes = this.treeControl.dataNodes; - const expandNodes = []; - nodes.forEach((item) => { - if(item.expandable && this.treeControl.isExpanded(item)){ - expandNodes.push(item.id); - } - }); - this.dataSource.data = this.newdata; - let newNodes = this.treeControl.dataNodes; - newNodes = newNodes.filter(n => { - return expandNodes.indexOf(n.id) >= 0; - }); - newNodes.forEach(item => { - this.treeControl.expand(item); - }); - - }) - } - treedata:any - //初始化页面时渲染出tree - ngOnInit() { - this.http.get('/api/NavMenus').subscribe((data: any[])=>{ - // console.log(111,this.data) - // this.treedata = this.tree.toTree(data) - let _data = this.tree.toTree(data) - this.dataSource.data = _data - this.treedata = _data - console.log(111,this.treedata) - }) - } - hasChild = (_: number, node: any) => node.expandable; - - //弹出创建窗口按钮 - createauthority(value){ - const dialogRef = this.dialog.open(CreateMenus, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {id:value.id,children:value.children,icon:value.icon,url:value.url} - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.newdata = [] - this.getlist() - } - ); - } - //删除按钮 - deleted(authority){ - var isdeleted = confirm("确定要删除此用户吗?") - if(isdeleted){ - //请求删除接口 - this.newdata = [] - this.http.delete(`/api/NavMenus/${authority.id}`).subscribe( data=>{ - this.getlist() - }) - } - } - //编辑按钮 - edit(value){ - const dialogRef = this.dialog.open(EditMenus, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {id:value.id,parentId:value.parentId,order:value.order,node:value} - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.newdata = [] - this.getlist() - } - ); - } -} - -//创建组件 -@Component({ - selector: 'createmenus', - templateUrl: './createmenus.component.html', - styleUrls: ['./navmenus.component.scss'] -}) -export class CreateMenus { - myControl = new FormControl(); - //注入MatDialogRef,可以用来关闭对话框 - //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef, - public snackBar: MatSnackBar,@Inject(MAT_DIALOG_DATA) public data) {} - - onNoClick(): void { - this.dialogRef.close(); - } - onSubmit(value){ - if(this.data.children){ - this.http.post( - '/api/NavMenus', - { - id: '', - name: value.name, - icon: value.icon, - url: value.url, - order:this.data.children[this.data.children.length -1].order + 1, - parentId: this.data.id - } - ).subscribe( - data=>{ - this.dialogRef.close(); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - }else{ - this.http.post( - '/api/NavMenus', - { - id: '', - name: value.name, - icon: value.icon, - url: value.url, - order:0, - parentId: this.data.id - } - ).subscribe( - data=>{ - this.dialogRef.close(); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - } - - } -} - - - -//编辑组件 -@Component({ - selector: 'editmenus', - templateUrl: './editmenus.component.html', - styleUrls: ['./navmenus.component.scss'] -}) -export class EditMenus { - myControl = new FormControl(); - //注入MatDialogRef,可以用来关闭对话框 - //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,public snackBar: MatSnackBar,@Inject(MAT_DIALOG_DATA) public data) {} - menuname:any //菜单名称 - menuiconurl:any //菜单图标地址 - menuweburl:any //菜单地址 - ngOnInit(): void { - this.menuname = this.data.node.name; - this.menuiconurl = this.data.node.icon; - this.menuweburl = this.data.node.url; - } - onNoClick(): void { - this.dialogRef.close(); - } - onSubmit(value){ - if(value.icon){ - this.data.icon = value.icon - } - if(value.url){ - this.data.url = value.url - } - this.http.put( - ` /api/NavMenus/${this.data.id}`, - { - id: this.data.id, - name: value.name, - icon: this.data.icon, - url: this.data.url, - order:this.data.order, - parentId: this.data.parentId - } - ).subscribe( - data=>{ - this.dialogRef.close(); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - } -} \ No newline at end of file diff --git a/src/app/ui/organization/createorganization.component.html b/src/app/ui/organization/createorganization.component.html deleted file mode 100644 index a3b56fb..0000000 --- a/src/app/ui/organization/createorganization.component.html +++ /dev/null @@ -1,33 +0,0 @@ -
    - - - - - - - - - - - - - - - -
    - - -
    - -
    diff --git a/src/app/ui/organization/editorganization.component.html b/src/app/ui/organization/editorganization.component.html deleted file mode 100644 index 7eedd0b..0000000 --- a/src/app/ui/organization/editorganization.component.html +++ /dev/null @@ -1,50 +0,0 @@ - -
    -
    - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - - - - -
  • {{node.name}}
  • -
    - - - - -
  • {{node.name}}
  • -
    -
    -
    diff --git a/src/app/ui/organization/organization.component.html b/src/app/ui/organization/organization.component.html deleted file mode 100644 index 6f963b9..0000000 --- a/src/app/ui/organization/organization.component.html +++ /dev/null @@ -1,42 +0,0 @@ -
    - - - - {{node.name}} - - - - - - - - - - - - - - {{node.name}} - - - - - - - - - - - -
    - -

    努力加载中...

    -
    -
    - diff --git a/src/app/ui/organization/organization.component.scss b/src/app/ui/organization/organization.component.scss deleted file mode 100644 index 3e8692d..0000000 --- a/src/app/ui/organization/organization.component.scss +++ /dev/null @@ -1,71 +0,0 @@ -mat-tree{ - width:800px; - button{ - display: block; - float: right; - } - mat-tree-node{ - position: relative; - - .deleted{ - position: absolute; - right: 0px; - } - - .disabled{ - position: absolute; - right: 40px; - } - - .edit{ - position: absolute; - right:160px; - } - .create{ - position: absolute; - right: 200px; - } - .up{ - position: absolute; - right: 120px; - } - .down{ - position: absolute; - right: 80px; - } - } -} -form{ - text-align: center; - button{ - margin: 0 8px; - margin-top: 8px; - } -} - -.leftbox{ - width: 300px; - float: left; -} -.treebox{ - float: right; - height: 250px; - width: 300px; - /* overflow: auto; */ - overflow-x: hidden; - overflow-y: auto; -} -.smalltreebox{ - width: 300px; - mat-tree-node{ - width: 300px; - } -} -.orilist{ - list-style: none; - -} -.orilist:hover{ - cursor: pointer; - background-color: rgba(225, 225, 225, 0.8); -} \ No newline at end of file diff --git a/src/app/ui/organization/organization.component.ts b/src/app/ui/organization/organization.component.ts deleted file mode 100644 index fa592ec..0000000 --- a/src/app/ui/organization/organization.component.ts +++ /dev/null @@ -1,558 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -@Component({ - selector: 'app-organization', - templateUrl: './organization.component.html', - styleUrls: ['./organization.component.scss'] -}) -export class OrganizationComponent implements OnInit { - data:any =[] //存储所有组织机构 - newdata = []; - - private _transformer = (node, level: number) => {//要给渲染节点传那些属性参数 - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - enabled:node.enabled, - order:node.order, - children:node.children, - isTop:node.isTop, - isBottom:node.isBottom, - code:node.code, - division:node.division - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,private tree: TreeService) { - } - isloading:any = false //loading效果 - //重新获取列表并且展开到上次位置的方法 - getlist = ():void=>{ - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.data = data; - this.newdata = this.tree.toTree(data) - - const nodes = this.treeControl.dataNodes; - const expandNodes = []; - nodes.forEach((item) => { - if(item.expandable && this.treeControl.isExpanded(item)){ - expandNodes.push(item.id); - } - }); - - - this.dataSource.data = this.newdata; - let newNodes = this.treeControl.dataNodes; - newNodes = newNodes.filter(n => { - return expandNodes.indexOf(n.id) >= 0; - }); - newNodes.forEach(item => { - this.treeControl.expand(item); - }); - this.isloading = false - - } - ) - } - //初始化视图 - ngOnInit() { - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.data = data; - this.dataSource.data = this.tree.toTree(data); - this.treeControl.expand(this.treeControl.dataNodes[0]); - } - ) - } - hasChild = (_: number, node: any) => node.expandable; - - //创建组织按钮 - create(value){ - const dialogRef = this.dialog.open(CreateOrganization, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {id:value.id,childlength:value.children,level:value.level} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getlist() - } - } - ); - } - //编辑组织按钮 - edit(node){ - const dialogRef = this.dialog.open(EditOrganization, {//调用open方法打开对话框并且携带参数过去 - data: node - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.getlist() - } - ); - } - //删除组织按钮 - delete(value){ - var isdeleted = confirm("确定要删除此组织?") - if(isdeleted){ - //请求删除接口 - this.isloading = true - this.http.delete(`/api/Organizations/${value.id}`).subscribe( data=>{ - this.getlist() - - }) - } - } - //禁用按钮 - disable(value){ - this.isloading = true - if(!value.enabled){ - this.http.put( - `/api/Organizations/${value.id}`, - { - id:value.id, - code:value.code, - name: value.name, - level:value.level, - order: value.order, - location: null, - enabled: true, - parentId: value.parentId - } - ).subscribe( - data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('启用成功','确定',config); - this.getlist() - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('操作无效','确定',config); - this.isloading = false - } - ) - - }else{ - // var isdeleted = confirm("确定要禁用此组织?") - // if(isdeleted){ - this.http.put( - `/api/Organizations/${value.id}`, - { - id:value.id, - code:value.code, - name: value.name, - level:value.level, - order: value.order, - location: null, - enabled: false, - parentId: value.parentId - } - ).subscribe( - data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('禁用成功','确定',config); - this.getlist() - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('操作无效','确定',config); - this.isloading = false - } - ) - // } - } - - - } - - - //向上箭头 - updata = [] - up(node){ - this.isloading = true - var olddata = this.data; - // console.log(1,olddata) - // console.log(2,node) - this.updata = [] - olddata.forEach(item => { - if(item.id == node.parentId){ - this.updata = item.children - } - }); - // console.log(this.updata) - this.updata.forEach((item,index)=>{ - if(item.name == node.name){ - this.http.put(//更改点击的节点为上一节点的order - `/api/Organizations/${this.updata[index].id}`, - { - id:this.updata[index].id, - code:this.updata[index].code, - name: this.updata[index].name, - level: this.updata[index].level, - order: this.updata[index - 1].order, - location: null, - enabled: true, - parentId: this.updata[index].parentId, - } - ).subscribe( - data=>{ - // this.getlist() - this.http.put(//更改上一节点为点击节点的order - `/api/Organizations/${this.updata[index - 1].id}`, - { - id:this.updata[index - 1].id, - code:this.updata[index - 1].code, - name: this.updata[index - 1].name, - level: this.updata[index - 1].level, - order: this.updata[index].order, - location: null, - enabled: true, - parentId: this.updata[index].parentId, - } - ).subscribe( - data=>{ - this.getlist() - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('更改order失败','确定',config); - this.isloading = false - } - ) - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('更改order失败','确定',config); - this.isloading = false - } - ) - - - } - - - - }) - - } - - - - //向下箭头 - downdata = [] - down(node){ - this.isloading = true - var olddata = this.data; - this.downdata = [] - olddata.forEach(item => { - if(item.id == node.parentId){ - this.downdata = item.children - } - }); - // console.log(this.downdata) - this.downdata.forEach((item,index)=>{ - if(item.name == node.name){ - this.http.put(//更改点击的节点为下一节点的order - `/api/Organizations/${this.downdata[index].id}`, - { - id:this.downdata[index].id, - code:this.downdata[index].code, - name: this.downdata[index].name, - level: this.downdata[index].level, - order: this.downdata[index + 1].order, - location: null, - enabled: true, - parentId: this.downdata[index].parentId, - } - ).subscribe( - data=>{ - // this.getlist() - this.http.put(//更改上一节点为点击节点的order - `/api/Organizations/${this.downdata[index + 1].id}`, - { - id:this.downdata[index + 1].id, - code:this.downdata[index + 1].code, - name: this.downdata[index + 1].name, - level: this.downdata[index + 1].level, - order: this.downdata[index].order, - location: null, - enabled: true, - parentId: this.downdata[index].parentId, - } - ).subscribe( - data=>{ - this.getlist() - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('更改order失败','确定',config); - this.isloading = false - } - ) - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('更改order失败','确定',config); - this.isloading = false - } - ) - - - } - - - - }) - } -} - - - - - -//创建组织 -@Component({ - selector: 'createorganization', - templateUrl: './createorganization.component.html', - styleUrls: ['./organization.component.scss'] -}) -export class CreateOrganization { - myControl = new FormControl(); - ishttp: boolean =false - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data, - public snackBar: MatSnackBar) {} - - onNoClick(): void { - this.dialogRef.close(); - } - - onSubmit(value){ - if(this.data.childlength){//如果点击节点存在children - this.http.post( - '/api/Organizations', - { - id:"", - code:value.number, - division:value.division, - name: value.name, - level:this.data.level + 1, - order: this.data.childlength[this.data.childlength.length -1].order + 1, - location: null, - enabled: true, - parentId: this.data.id, - } - ).subscribe( - data=>{ - this.dialogRef.close(data); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('创建组织成功','确定',config); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - }else{ - this.http.post( - '/api/Organizations', - { - id:"", - code:value.number, - division:value.division, - name: value.name, - level:this.data.level + 1, - order:0, - location: null, - enabled: true, - parentId: this.data.id, - } - ).subscribe( - data=>{ - this.dialogRef.close(data); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('创建组织成功','确定',config); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - } - - } -} - -//编辑组件 -@Component({ - selector: 'editorganization', - templateUrl: './editorganization.component.html', - styleUrls: ['./organization.component.scss'] -}) -export class EditOrganization { - newdata = []; - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children:node.children, - division:node.division - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - organizationname:string=""//自己组织的名字 - organizationcode:any//自己组织的编号 - organizationName:any =''//上级组织的名字 - organizationId:any =''//上级组织的id - organizationLevel:number =null//上级组织的层级 - organizationchildlength:number = null - allOrganizations:any //所有组织机构 - division:any //区划 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data, - private tree:TreeService,public snackBar: MatSnackBar) {} - - //获取所有组织机构 - getMechanism () { - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.allOrganizations = data - this.dataSource.data = this.tree.toTree(data); - data.forEach(item=>{ - if(item.id == this.data.parentId){ - this.organizationName = item.name - } - }) - } - ) - } - - ngOnInit() { - // console.log(this.data) - this.getMechanism() - this.organizationname = this.data.name - this.organizationcode = this.data.code - this.division = this.data.division - } - hasChild = (_: number, node: any) => node.expandable; - onNoClick(): void { - this.dialogRef.close(); - } - add(e){ - this.organizationName=e.name - this.organizationId=e.id - this.organizationLevel=e.level - if(e.children){//如果点击的父组织有子节点 - this.organizationchildlength = e.children.length - }else{ - this.organizationchildlength = 0 - } - } - onSubmit(value){ - if(this.organizationLevel){//如果点击了右边的树 - this.http.put( - `/api/Organizations/${this.data.id}`, - { - id:this.data.id, - code:value.number, - division:value.division, - name: value.name, - level:this.organizationLevel + 1, - order: this.organizationchildlength, - location: null, - enabled: true, - parentId: this.organizationId, - } - ).subscribe( - data=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改成功','确定',config); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - }else{ //如果只改了姓名 - this.http.put( - `/api/Organizations/${this.data.id}`, - { - id:this.data.id, - code: value.number, - division:value.division, - name: value.name, - level:this.data.level, - order: this.data.order, - location: null, - enabled: true, - parentId: this.data.parentId, - } - ).subscribe( - data=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改成功','确定',config); - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确格式','确定',config); - } - ) - } - - } -} \ No newline at end of file diff --git a/src/app/ui/progress/progress.component.html b/src/app/ui/progress/progress.component.html deleted file mode 100644 index a858bc9..0000000 --- a/src/app/ui/progress/progress.component.html +++ /dev/null @@ -1,13 +0,0 @@ - -
    -

    确定进度条

    - -
    -

    不确定进度条

    - -
    -

    缓冲进度条

    - -
    -

    查询进度条

    - diff --git a/src/app/ui/progress/progress.component.scss b/src/app/ui/progress/progress.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/progress/progress.component.spec.ts b/src/app/ui/progress/progress.component.spec.ts deleted file mode 100644 index aea0b97..0000000 --- a/src/app/ui/progress/progress.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ProgressComponent } from './progress.component'; - -describe('ProgressComponent', () => { - let component: ProgressComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ProgressComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ProgressComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/progress/progress.component.ts b/src/app/ui/progress/progress.component.ts deleted file mode 100644 index 93168b5..0000000 --- a/src/app/ui/progress/progress.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-progress', - templateUrl: './progress.component.html', - styleUrls: ['./progress.component.scss'] -}) -export class ProgressComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/ui/role/createrole.component.html b/src/app/ui/role/createrole.component.html deleted file mode 100644 index 4738ce2..0000000 --- a/src/app/ui/role/createrole.component.html +++ /dev/null @@ -1,54 +0,0 @@ -
    - - 创建新角色 - - - - 分配权限 -
    - - -
    - 关联数据权限 - 全选 - - - - - {{node.name}} - - - - - {{node.name}} - - -
    -
    - 关联导航菜单 - 全选 - - - - - {{node.name}} - - - - - {{node.name}} - - -
    -
    - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/role/editrole.component.html b/src/app/ui/role/editrole.component.html deleted file mode 100644 index 0471799..0000000 --- a/src/app/ui/role/editrole.component.html +++ /dev/null @@ -1,57 +0,0 @@ -
    - - 编辑角色 - - - - - - 分配权限 - -
    -
    - 关联数据权限 - - - - - {{node.name}} - - - - - - {{node.name}} - - -
    - - -
    - 关联导航菜单 - - - - - {{node.name}} - - - - - - {{node.name}} - - -
    -
    - - - -
    - - -
    - -
    diff --git a/src/app/ui/role/role.component.html b/src/app/ui/role/role.component.html deleted file mode 100644 index 3eeef51..0000000 --- a/src/app/ui/role/role.component.html +++ /dev/null @@ -1,42 +0,0 @@ -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    角色名称 {{roledata.name}} 创建/修改时间 {{roledata.creationTime | time }} 是否启用 {{roledata.enabled | isno}} 操作 - - - - - - - -
    - - -
    - \ No newline at end of file diff --git a/src/app/ui/role/role.component.scss b/src/app/ui/role/role.component.scss deleted file mode 100644 index d5b7c76..0000000 --- a/src/app/ui/role/role.component.scss +++ /dev/null @@ -1,49 +0,0 @@ -table { - width: 100%; - th,td{ - text-align: center; - } - button{ - margin: 0 3px; - } - -} -form{ - // text-align: center; - - button{ - - margin: 0 8px; - margin-bottom: 30px; - } - .mat-checkbox{ - display: block; - text-align: left; - } - .btn{ - padding-top: 18px; - text-align: center; - } - mat-form-field{ - margin-right:80px; - } - span{ - display: block; - margin-bottom: 10px; - } -} -.shareform{ - height: 300px; -} -.leftbox{ - width: 250px; - float: left; -} -.rightbox{ - width: 250px; - float: right; -} -.bigbox{ - height: 400px; - overflow: auto; -} \ No newline at end of file diff --git a/src/app/ui/role/role.component.ts b/src/app/ui/role/role.component.ts deleted file mode 100644 index a3b7501..0000000 --- a/src/app/ui/role/role.component.ts +++ /dev/null @@ -1,644 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { HttpClient } from '@angular/common/http'; -import { CacheTokenService } from '../../http-interceptors/cache-token.service' -import format from 'date-fns/format'; -import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { TreeService } from '../../http-interceptors/tree.service' -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -export interface roledata { - id: string, - name: string,//名称 - order: number, - enabled: boolean, - creationTime: string -} -@Component({ - selector: 'app-role', - templateUrl: './role.component.html', - styleUrls: ['./role.component.scss'] -}) - -export class RoleComponent implements OnInit { - constructor(private http: HttpClient,public dialog: MatDialog,public createtime:CacheTokenService,private tree:TreeService,public snackBar: MatSnackBar) { } - displayedColumns: string[] = ['name','createtiome', 'edit']; - dataSource: any - - public compare(property){ - return function(a,b){ - var value1 = a[property]; - var value2 = b[property]; - return value1 - value2; - } - } - //获取角色列表并且给排头和排尾赋是否为首尾 - getlist(){ - this.http.get('/api/Roles').subscribe( (data:Array)=>{ - this.dataSource = data - this.dataSource[0].isTop = true; - this.dataSource[this.dataSource.length-1].isBottom = true - }) - } - //初始化视图 - ngOnInit() { - this.getlist() - } - //向上按钮 - up(node){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.put(//把上一节点order换成点击的节点 - `/api/Roles/${this.dataSource[node.order -1].id}`, - { - id:this.dataSource[node.order -1].id, - name: this.dataSource[node.order -1].name, - order: node.order, - enabled: true, - creationTime:time, - } - ).subscribe(data=>{ - this.getlist() - }) - - this.http.put(//把当前节点order换成上一点击的节点 - `/api/Roles/${node.id}`, - { - id:node.id, - name: node.name, - order: node.order-1, - enabled: true, - creationTime:time, - } - ).subscribe(data=>{ - this.getlist() - }) - - } - //向下按钮 - down(node){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.put(//把下一节点order换成点击的节点 - `/api/Roles/${this.dataSource[node.order + 1].id}`, - { - id:this.dataSource[node.order + 1].id, - name: this.dataSource[node.order + 1].name, - order: node.order, - enabled: true, - creationTime:time, - } - ).subscribe(data=>{ - this.getlist() - }) - - this.http.put(//把当前节点order换成下一点击的节点 - `/api/Roles/${node.id}`, - { - id:node.id, - name: node.name, - order: node.order + 1, - enabled: true, - creationTime:time, - } - ).subscribe(data=>{ - this.getlist() - }) - } - //创建按钮并且弹出对话框 - createuser(){ - const dialogRef = this.dialog.open(CreateRole, {//调用open方法打开对话框并且携带参数过去 - width: '600px', - height:'658px', - data: {name: this.createuser.name,data: this.dataSource,length:this.dataSource.length} - }); - dialogRef.afterClosed().subscribe( - data=>{ - this.getlist() - } - ); - } - - //删除按钮 - deleteduser(roledata){ - var isdeleted = confirm("确定要删除此用户吗?") - if(isdeleted){ - //请求删除接口 - this.http.delete(`/api/Roles/${roledata.id}`).subscribe( data=>{ - this.getlist() - }) - } - } - //编辑按钮 - allot(roledata){ - const dialogRef = this.dialog.open(EditRole, {//调用open方法打开对话框并且携带参数过去 - width: '600px', - height:'658px', - data: {id:roledata.id,name:roledata.name,order:roledata.order}//把点击的id传过去 - }); - - dialogRef.afterClosed().subscribe( - data=>{ - this.getlist() - } - ); - } - - //启用或禁用按钮 - open(roledata){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.put( - `/api/Roles/${roledata['id']}`, - { - id:roledata['id'], - name: roledata.name, - order: roledata.order, - enabled: !roledata.enabled, - creationTime: time, - } - ).subscribe( - data=>{ - this.getlist() - } - ) - } - - drop(event: CdkDragDrop) {//拖拽函数 - moveItemInArray(this.dataSource, event.previousIndex, event.currentIndex); - this.dataSource.forEach((item, index) => { - item.order = index; - }) - const a = [...this.dataSource]; - this.dataSource = []; - setTimeout(() => { - this.dataSource = a; - }, 10); - }; -} - - - - - - -//创建角色组件 -@Component({ - selector: 'createrole', - templateUrl: './createrole.component.html', - styleUrls: ['./role.component.scss'] -}) -export class CreateRole { - private _transformer = (node: any, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id:node.id - }; - } - treeControl = new FlatTreeControl( - node => node.level, node => node.expandable); - - treeFlattener = new MatTreeFlattener( - this._transformer, node => node.level, node => node.expandable, node => node.children); - - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - dataSource2 = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - //注入MatDialogRef,可以用来关闭对话框 - //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService,public snackBar: MatSnackBar) {} - olddata =[] - olddata2 = [] - xxx = {} - jjj = {} - //用于存放选中的数组 - checkedMap = {} - //初始化两棵tree - ngOnInit(){ - this.http.get('/api/Permissions').subscribe((data: any[])=>{ - this.olddata =data - this.dataSource.data = this.tree.toTree(data); - this.treeControl.expandAll() - this.dataSource.data.forEach(item=>{ - if(item.children){ - var childarr = [] - item.children.forEach(n => { - childarr.push(n.id) - }) - this.xxx[item.id] = childarr - } - }) - - }) - - this.http.get('/api/NavMenus').subscribe((data: any[])=>{ - this.olddata2 =data - this.dataSource2.data = this.tree.toTree(data); - this.treeControl.expandAll() - this.dataSource2.data.forEach(item=>{ - if(item.children){ - var childarr = [] - item.children.forEach(n => { - childarr.push(n.id) - }) - this.jjj[item.id] = childarr - } - }) - }) - } - - //选中后子节点默认选中 - selectedAll(event, node){ - this.olddata.forEach(item=>{ - if(item.parentId == node.id){ - this.checkedMap[item.id] = event.checked; - } - }) - - // console.log(this.olddata2,node ) - var menus =[] //导航菜单可能有三级 用于存储第二级 - //选中一级菜单 - this.olddata2.forEach(item=>{ - if(item.parentId == node.id){ - this.checkedMap[item.id] = event.checked; - menus.push(item) - } - }) - //将二级菜单也选中 - menus.forEach(item=>{ - if(item.children){ - item.children.forEach(n => { - this.checkedMap[n.id] = event.checked; - }); - } - }) - } - - //数据权限tree的全选功能 - leftTreeAll(event,form){ - const values = form.value; - for (let key in values) { - if(key.indexOf("second")){ - this.checkedMap[key.split('.')[1]] = event.checked; - } - } - } - //菜单权限tree的全选功能 - rightTreeAll(event,form){ - const values = form.value; - for (let key in values) { - if(key.indexOf("first")){ - this.checkedMap[key.split('.')[1]] = event.checked; - } - } - } - - hasChild = (_: number, node: any) => node.expandable; - - onNoClick(): void { - this.dialogRef.close(); - } - //提交 - onSubmit(value){ - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - this.http.post( - '/api/Roles', - { - id:"", - name: value.name, - order: this.data.data[this.data.data.length - 1].order + 1, - enabled: true, - creationTime: time, - } - ).subscribe( - data=>{ - var id = data['id'] - // console.log(value) - var keydata = [] //菜单权限id集合 - var keydata2 = [] //数据权限id集合 - for(let i in value){ - if(value[i]){ - if(i.indexOf("first") && i!="name"){ - keydata.push(i.split('.')[1]) - } - if(i.indexOf("second") && i!="name"){ - keydata2.push(i.split('.')[1]) - } - } - } - - function includes(arr1, arr2) { - return arr2.every(val => arr1.includes(val)); - } - const orginalList = [...keydata2]; - orginalList.forEach((item) => { // forEach 里面 splice 有问题,详见 https://blog.csdn.net/qq_38128179/article/details/92798157 - if (item in this.xxx) { // 根据 key,可以直接在 对象 里面获取数据 - const datachildarrboxArr = this.xxx[item]; - if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 - keydata2.splice(keydata2.findIndex(items => items == item), 1); - } - } - }); - - this.http.post( - `/api/Roles/${id}/Permissions`, - keydata2 - ).subscribe( - data=>{ - this.http.post( - `/api/Roles/${id}/NavMenus`, - keydata - ).subscribe( - data=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('创建成功','确定',config); - }, - err=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('创建菜单权限失败','确定',config); - } - ) - }, - err=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('创建数据权限失败','确定',config); - } - ) - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('角色名称不符合规范','确定',config); - } - ) - } -} - - - - - - - - - -//编辑组件 -@Component({ - selector: 'editrole', - templateUrl: './editrole.component.html', - styleUrls: ['./role.component.scss'] -}) -export class EditRole { - private _transformer = (node: any, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id:node.id, - children:node.children - }; - } - treeControl = new FlatTreeControl( - node => node.level, node => node.expandable); - - treeFlattener = new MatTreeFlattener( - this._transformer, node => node.level, node => node.expandable, node => node.children); - - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - dataSource2 = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - myControl = new FormControl(); - //注入MatDialogRef,可以用来关闭对话框 - //要访问对话框组件中的数据,必须使用MAT_DIALOG_DATA注入令牌 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,public snackBar: MatSnackBar,@Inject(MAT_DIALOG_DATA) public data,private tree:TreeService) {} - - olddata =[] //原始所有--数据权限 - olddata2 =[] //原始所有--菜单权限 - newdata = [] - newdata2 = [] - placeholdername = this.data.name - datachildarrbox = {} //数据权限存放有children的 父id:子id1 子id2 子id3 - menuchildarrbox = {} //菜单权限存放有children的 父id:子id1 子id2 子id3 - checkedMap = {} - ngOnInit(){ - //获得角色的数据权限,选中的checked为true - this.http.get(`/api/Roles/${this.data.id}/Permissions`).subscribe((data: any[])=>{ - this.olddata =data - this.newdata = this.tree.toTree(this.olddata) - - //如果子节点存在选中则父节点默认选中 - this.newdata.forEach(item=>{ - if(item.children){ - item.children.forEach(element => { - if(element.checked){ - this.checkedMap[item.id] = true - } - }); - } - }) - - data.forEach(item=>{ - if(item.checked){ - this.checkedMap[item.id] = true; - } - - }) - this.dataSource.data = this.newdata; - this.treeControl.expandAll() - this.dataSource.data.forEach(item=>{ - if(item.children){ - var childarr = [] - item.children.forEach(n => { - childarr.push(n.id) - }) - this.datachildarrbox[item.id] = childarr - } - }) - }) - - - //获得角色的菜单权限,选中的checked为true - this.http.get(`/api/Roles/${this.data.id}/NavMenus`).subscribe((data: any[])=>{ - this.olddata2 =data - this.newdata2 = this.tree.toTree(this.olddata2) - data.forEach(item => { - if(item.checked){ - this.checkedMap[item.id] = item.checked; - } - }); - - this.dataSource2.data = this.newdata2; - this.treeControl.expandAll() - - this.dataSource2.data.forEach(item=>{ - if(item.children){ - var childarr = [] - item.children.forEach(n => { - childarr.push(n.id) - }) - this.menuchildarrbox[item.id] = childarr - } - }) - }) - } - - //选中对应小组 - selectedAll(event, node){ - this.olddata.forEach(item=>{ - if(item.parentId == node.id){ - this.checkedMap[item.id] = event.checked; - } - }) - // console.log(this.olddata2,node ) - var menus =[] //导航菜单可能有三级 用于存储第二级 - //选中一级菜单 - this.olddata2.forEach(item=>{ - if(item.parentId == node.id){ - this.checkedMap[item.id] = event.checked; - menus.push(item) - } - }) - //将二级菜单也选中 - menus.forEach(item=>{ - if(item.children){ - item.children.forEach(n => { - this.checkedMap[n.id] = event.checked; - }); - } - }) - } - - hasChild = (_: number, node: any) => node.expandable; - - onNoClick(): void { - this.dialogRef.close(); - } - - - onSubmit(value){ - var keydata = [] //存储选中的菜单权限 - var keydata2 = [] //存储选中的数据权限 - - for(let i in value){ - if(value[i]){ - if(i.indexOf("first") && i!="name" && i!="order"){ - keydata.push(i.split('.')[1]) - } - if(i.indexOf("second") && i!="name" && i!="order"){ - keydata2.push(i.split('.')[1]) - } - } - } - let newdate = new Date(); - let time = format(newdate, 'yyyy-MM-dd') - if(this.data['id'] != "0" && this.data['id'] != "1"){ - this.http.put( - `/api/Roles/${this.data['id']}`, - { - id:this.data['id'], - name: value.name, - order: this.data.order, - enabled: true, - creationTime:time, - } - ).subscribe(data=>{ - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改角色姓名请求失败','确定',config); - }) - function includes(arr1, arr2) { - return arr2.every(val => arr1.includes(val)); - } - const orginalList = [...keydata2]; - orginalList.forEach((item) => { // forEach 里面 splice 有问题,详见 https://blog.csdn.net/qq_38128179/article/details/92798157 - if (item in this.datachildarrbox) { // 根据 key,可以直接在 对象 里面获取数据 - const datachildarrboxArr = this.datachildarrbox[item]; - if (!includes(keydata2, datachildarrboxArr)) { // 如果不全部包含 - keydata2.splice(keydata2.findIndex(items => items == item), 1); - } - } - }); - this.http.post( - `/api/Roles/${this.data.id}/Permissions`, - keydata2 - ).subscribe(data=>{ - - }, - err=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('分配数据权限请求失败','确定',config); - }) - } - this.http.post( - `/api/Roles/${this.data.id}/NavMenus`, - keydata - ).subscribe( - data=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('编辑成功','确定',config); - }, - err=>{ - this.dialogRef.close(); - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('分配菜单权限失败','确定',config); - } - ) - // this.http.put( - // `/api/Roles/${this.data['id']}`, - // { - // id:this.data['id'], - // name: value.name, - // order: this.data.order, - // enabled: true, - // creationTime:time, - // } - // ).subscribe( - // data=>{ - - - - // }, - // err=>{ - // const config = new MatSnackBarConfig(); - // config.verticalPosition = 'top'; - // config.duration = 3000 - // this.snackBar.open('名称格式不正确','确定',config); - // } - // ) - - - - } -} - - diff --git a/src/app/ui/slide/slide.component.html b/src/app/ui/slide/slide.component.html deleted file mode 100644 index 46148bf..0000000 --- a/src/app/ui/slide/slide.component.html +++ /dev/null @@ -1 +0,0 @@ -{{xxx}} diff --git a/src/app/ui/slide/slide.component.scss b/src/app/ui/slide/slide.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/slide/slide.component.spec.ts b/src/app/ui/slide/slide.component.spec.ts deleted file mode 100644 index c82efb6..0000000 --- a/src/app/ui/slide/slide.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SlideComponent } from './slide.component'; - -describe('SlideComponent', () => { - let component: SlideComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ SlideComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(SlideComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/slide/slide.component.ts b/src/app/ui/slide/slide.component.ts deleted file mode 100644 index 2310459..0000000 --- a/src/app/ui/slide/slide.component.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-slide', - templateUrl: './slide.component.html', - styleUrls: ['./slide.component.scss'] -}) -export class SlideComponent implements OnInit { - - xxx:boolean=false - sss(){ - this.xxx = !this.xxx - console.log(this.xxx) - } - constructor() { - - } - - ngOnInit() { - } - -} diff --git a/src/app/ui/snackbar/snackbar.component.html b/src/app/ui/snackbar/snackbar.component.html deleted file mode 100644 index 49dfc20..0000000 --- a/src/app/ui/snackbar/snackbar.component.html +++ /dev/null @@ -1,10 +0,0 @@ -

    底部提示消息

    - - - - - - - - - diff --git a/src/app/ui/snackbar/snackbar.component.scss b/src/app/ui/snackbar/snackbar.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/snackbar/snackbar.component.spec.ts b/src/app/ui/snackbar/snackbar.component.spec.ts deleted file mode 100644 index 664d327..0000000 --- a/src/app/ui/snackbar/snackbar.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SnackbarComponent } from './snackbar.component'; - -describe('SnackbarComponent', () => { - let component: SnackbarComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ SnackbarComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(SnackbarComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/snackbar/snackbar.component.ts b/src/app/ui/snackbar/snackbar.component.ts deleted file mode 100644 index 1fcdc8c..0000000 --- a/src/app/ui/snackbar/snackbar.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import {MatSnackBar} from '@angular/material/snack-bar'; -@Component({ - selector: 'app-snackbar', - templateUrl: './snackbar.component.html', - styleUrls: ['./snackbar.component.scss'] -}) -export class SnackbarComponent implements OnInit { - - constructor(private _snackBar: MatSnackBar) { } - - ngOnInit() { - } - openSnackBar(message: string, action: string) { - this._snackBar.open(message, action, { - duration: 2000, - }); - } -} diff --git a/src/app/ui/stepper/stepper.component.html b/src/app/ui/stepper/stepper.component.html deleted file mode 100644 index c999bd3..0000000 --- a/src/app/ui/stepper/stepper.component.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - -
    - 填写姓名 - - - - - -
    - - -
    -
    -
    - - - -
    - 家庭住址 - - - -
    - - - -
    -
    -
    - - - 完成 - 你已经完成了 -
    - - -
    -
    -
    - - diff --git a/src/app/ui/stepper/stepper.component.scss b/src/app/ui/stepper/stepper.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/stepper/stepper.component.spec.ts b/src/app/ui/stepper/stepper.component.spec.ts deleted file mode 100644 index 4bf2213..0000000 --- a/src/app/ui/stepper/stepper.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { StepperComponent } from './stepper.component'; - -describe('StepperComponent', () => { - let component: StepperComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ StepperComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(StepperComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/stepper/stepper.component.ts b/src/app/ui/stepper/stepper.component.ts deleted file mode 100644 index 943805a..0000000 --- a/src/app/ui/stepper/stepper.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import {FormBuilder, FormGroup, Validators} from '@angular/forms'; -@Component({ - selector: 'app-stepper', - templateUrl: './stepper.component.html', - styleUrls: ['./stepper.component.scss'] -}) -export class StepperComponent implements OnInit { - isLinear = false; - firstFormGroup: FormGroup; - secondFormGroup: FormGroup; - constructor(private _formBuilder: FormBuilder) { } - - ngOnInit() { - this.firstFormGroup = this._formBuilder.group({ - firstCtrl: ['', Validators.required] - }); - this.secondFormGroup = this._formBuilder.group({ - secondCtrl: ['', Validators.required] - }); - } - -} diff --git a/src/app/ui/tabgroup/tabgroup.component.html b/src/app/ui/tabgroup/tabgroup.component.html deleted file mode 100644 index 8df2739..0000000 --- a/src/app/ui/tabgroup/tabgroup.component.html +++ /dev/null @@ -1,22 +0,0 @@ - - 我是内容一 - 我是内容二 - 我是内容三 - - - - - - - - 一 三 - -

    四五六

    -
    - - - thumb_down 失败者 - -

    rush B!!!

    -
    -
    diff --git a/src/app/ui/tabgroup/tabgroup.component.scss b/src/app/ui/tabgroup/tabgroup.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/ui/tabgroup/tabgroup.component.spec.ts b/src/app/ui/tabgroup/tabgroup.component.spec.ts deleted file mode 100644 index 7e9fe94..0000000 --- a/src/app/ui/tabgroup/tabgroup.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TabgroupComponent } from './tabgroup.component'; - -describe('TabgroupComponent', () => { - let component: TabgroupComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ TabgroupComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(TabgroupComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/ui/tabgroup/tabgroup.component.ts b/src/app/ui/tabgroup/tabgroup.component.ts deleted file mode 100644 index 12e1da3..0000000 --- a/src/app/ui/tabgroup/tabgroup.component.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-tabgroup', - templateUrl: './tabgroup.component.html', - styleUrls: ['./tabgroup.component.scss'] -}) -export class TabgroupComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - xxx(){ - console.log("xxxx") - } -} diff --git a/src/app/ui/ui-routing.module.ts b/src/app/ui/ui-routing.module.ts index d3e39c5..94ebf06 100644 --- a/src/app/ui/ui-routing.module.ts +++ b/src/app/ui/ui-routing.module.ts @@ -1,60 +1,20 @@ import { Routes, RouterModule } from '@angular/router'; import { NgModule } from '@angular/core'; import { UiComponent } from './ui.component'; -import { DateselectComponent } from './dateselect/dateselect.component'; -import { MenuComponent } from './menu/menu.component'; -import { CardComponent } from './card/card.component'; -import { ListComponent } from './list/list.component'; -import { GridComponent } from './grid/grid.component'; -import { StepperComponent } from './stepper/stepper.component'; -import { TabgroupComponent } from './tabgroup/tabgroup.component'; -import { ButtonComponent } from './button/button.component'; -import { BadgeComponent } from './badge/badge.component'; -import { ProgressComponent } from './progress/progress.component'; import { PaginatorComponent } from './paginator/paginator.component'; import { PersonaldataComponent } from '../pages/personaldata/personaldata.component'; import { UserdataComponent } from './userdata/userdata.component'; -import { OrganizationComponent } from './organization/organization.component'; -import { UnittypeComponent } from './unittype/unittype.component'; -import { AuthorityComponent } from './authority/authority.component'; -import { RoleComponent } from './role/role.component'; -import { UsermanagementComponent } from './usermanagement/usermanagement.component'; -import { NavmenusComponent } from './navmenus/navmenus.component'; -import { FireProtectionElementsComponent } from './fire-protection-elements/fire-protection-elements.component'; -import {MaterialBankComponent} from './material-bank/material-bank.component' -import {UnitInformationComponent} from './unit-information/unit-information.component' -import { EnterpriseuserComponent } from './enterpriseuser/enterpriseuser.component'; -import { FireFightingFacilitiesFormworkComponent } from './fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component' +import {UnitInformationComponent} from './unit-information/unit-information.component'; import { CollectionToolsComponent } from './collection-tools/collection-tools.component'; const routes: Routes = [ { path: '', component: UiComponent}, - { path: 'dateselect', component:DateselectComponent}, - { path: 'menu', component:MenuComponent}, - { path: 'card', component:CardComponent}, - { path: 'list', component:ListComponent}, - { path: 'grid', component:GridComponent}, - { path: 'stepper', component:StepperComponent}, - { path: 'tabgroup', component:TabgroupComponent}, - { path: 'btn', component:ButtonComponent }, - { path: 'badge', component:BadgeComponent }, - { path: 'progress', component:ProgressComponent }, { path: 'paginator', component:PaginatorComponent }, { path: 'person', component:PersonaldataComponent }, { path: 'userdata', component:UserdataComponent }, - { path: 'organization', component:OrganizationComponent }, - { path: 'unittype', component:UnittypeComponent }, - { path: 'authority', component:AuthorityComponent }, - { path: 'role', component:RoleComponent }, - { path: 'usermanagement', component:UsermanagementComponent }, - { path: 'navmenus', component:NavmenusComponent }, - { path: 'fireProtectionElements', component:FireProtectionElementsComponent }, - { path: 'materialBank', component:MaterialBankComponent }, { path: 'unitInformation', component:UnitInformationComponent }, - { path: 'enterpriseuser', component:EnterpriseuserComponent }, - { path: 'fireFightingFacilitiesFormwork', component:FireFightingFacilitiesFormworkComponent }, { path: 'collectionTools', component:CollectionToolsComponent }, ]; diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index fee20f2..21ff92c 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -1,7 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { UiComponent } from './ui.component'; -import { DateselectComponent } from './dateselect/dateselect.component'; import { UiRoutingModule } from './ui-routing.module'; import {A11yModule} from '@angular/cdk/a11y'; import {DragDropModule} from '@angular/cdk/drag-drop'; @@ -44,17 +43,7 @@ import {MatTabsModule} from '@angular/material/tabs'; import {MatToolbarModule} from '@angular/material/toolbar'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatTreeModule} from '@angular/material/tree'; -import { MenuComponent } from './menu/menu.component'; -import { CardComponent } from './card/card.component'; -import { ListComponent } from './list/list.component'; -import { GridComponent } from './grid/grid.component'; -import { StepperComponent } from './stepper/stepper.component'; import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { TabgroupComponent } from './tabgroup/tabgroup.component'; -import { ButtonComponent } from './button/button.component'; -import { BadgeComponent } from './badge/badge.component'; -import { ProgressComponent } from './progress/progress.component'; -import { SnackbarComponent } from './snackbar/snackbar.component'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatPaginatorIntl } from '@angular/material/paginator'; import { PaginatorModule } from './paginator/paginator.module'; @@ -62,41 +51,23 @@ import { PersonaldataComponent } from '../pages/personaldata/personaldata.compon import { FooterComponent } from './footer/footer.component'; import { UserdataComponent, EditUser } from './userdata/userdata.component'; import { ChangepasswordComponent } from './changepassword/changepassword.component'; -import { OrganizationComponent, CreateOrganization, EditOrganization } from './organization/organization.component'; -import { UnittypeComponent,DialogOverviewExampleDialog,editorialUnit } from './unittype/unittype.component'; -import { AuthorityComponent, CreateAuthority } from './authority/authority.component'; -import { RoleComponent, CreateRole, EditRole } from './role/role.component'; -import { UsermanagementComponent,CreateNewUser,EditNewUser,allRoles,seeInformation } from './usermanagement/usermanagement.component'; - import { IsnoPipe } from '../pipes/boolean.pipe'; import {ConfirmpswDirective} from './changepassword/equal-validator.directive' import { TimePipe } from '../pipes/time.pipe'; -import { NavmenusComponent, CreateMenus, EditMenus } from './navmenus/navmenus.component'; -import { FireProtectionElementsComponent, Establish, EditingFireControl } from './fire-protection-elements/fire-protection-elements.component'; -import { FireFightingTemplateComponent, NewFireFighting, EditFireClassification } from './fire-fighting-template/fire-fighting-template.component'; -import { MaterialBankComponent,attributeComponent,addAttributeComponent,editAttribute } from './material-bank/material-bank.component'; import { UnitInformationComponent,addUnitAttributeComponent,editUnitAttribute } from './unit-information/unit-information.component'; -import { AddMatLibrary } from './material-bank/addmatlibrary.component'; -import { EditMatLibrary } from './material-bank/editmatlibrary.component'; -import { AddOriginalCopy } from './material-bank/addoriginalcopy.component'; import { NzTreeModule } from 'ng-zorro-antd/tree'; import { FileUploadModule } from 'ng2-file-upload' -import { EditOriginalCopy } from './material-bank/editoriginalcopy.component'; -import { SelectOriginalCopy } from './material-bank/selectoriginalcopy.component'; import { EditUnitInfo } from './unit-information/editunitinfo.component'; import { AddUnitInfo } from './unit-information/addunitinfo.component'; import { AddGroups } from './unit-information/addgroups.component'; import { EditGroup } from './unit-information/editgroup.component'; -import { EnterpriseuserComponent,seeenterpriseuser,editenterpriseuser } from './enterpriseuser/enterpriseuser.component'; -import { AddEnterpriserUser } from './enterpriseuser/addenterpriseuser.component'; -import { FireFightingFacilitiesFormworkComponent,addFireFightingFacilitiesFormworkComponent,editFireFightingFacilitiesFormworkComponent,addBuiltInComponent,addBuiltInAttributeComponent,addOptionalComponent,addOptionalAttributeComponent,editBuiltInAttributeComponent,editOptionalAttributeComponent } from './fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component'; import { CollectionToolsComponent, CreateBuilding, EditBuilding, ViewDetails } from './collection-tools/collection-tools.component'; import { WorkingAreaComponent } from '../working-area/working-area.component'; import {leftFunctionalDomainComponent,editPlaneFigureComponent,addDisposalNodeComponent,editDisposalNodeComponent} from './collection-tools/leftFunctionalDomain' import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; @NgModule({ - declarations: [UiComponent, DateselectComponent, MenuComponent, CardComponent, ListComponent, GridComponent, StepperComponent, TabgroupComponent, ButtonComponent, BadgeComponent, ProgressComponent, SnackbarComponent,PersonaldataComponent, FooterComponent, UserdataComponent, ChangepasswordComponent, OrganizationComponent, UnittypeComponent, AuthorityComponent, RoleComponent, UsermanagementComponent,IsnoPipe,ConfirmpswDirective,DialogOverviewExampleDialog,CreateAuthority,CreateRole,TimePipe,CreateNewUser,EditNewUser,allRoles,EditRole,CreateOrganization,EditOrganization,seeInformation,EditUser,editorialUnit,FireProtectionElementsComponent,Establish,EditingFireControl,FireFightingTemplateComponent, NavmenusComponent,CreateMenus,EditMenus,NewFireFighting,EditFireClassification, MaterialBankComponent, UnitInformationComponent,AddMatLibrary,EditMatLibrary,attributeComponent,AddOriginalCopy,addAttributeComponent,editAttribute,EditOriginalCopy,SelectOriginalCopy,EditUnitInfo,AddUnitInfo,AddGroups,EditGroup, EnterpriseuserComponent,AddEnterpriserUser,addUnitAttributeComponent,editUnitAttribute,seeenterpriseuser,editenterpriseuser, FireFightingFacilitiesFormworkComponent,addFireFightingFacilitiesFormworkComponent,editFireFightingFacilitiesFormworkComponent,addBuiltInComponent,addBuiltInAttributeComponent,addOptionalComponent,addOptionalAttributeComponent,editBuiltInAttributeComponent,editOptionalAttributeComponent, CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], + declarations: [UiComponent,PersonaldataComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,UnitInformationComponent,EditUnitInfo,AddUnitInfo,AddGroups,EditGroup,addUnitAttributeComponent,editUnitAttribute,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], imports: [ CommonModule, diff --git a/src/app/ui/unittype/dialog-overview-example-dialog.html b/src/app/ui/unittype/dialog-overview-example-dialog.html deleted file mode 100644 index cc7f6a1..0000000 --- a/src/app/ui/unittype/dialog-overview-example-dialog.html +++ /dev/null @@ -1,69 +0,0 @@ -
    - 创建单位类型 - -
    -
    - - - -
    - -
    - - - {{item.name}} - - -
    - -
    - - - - {{food.name}} - - - -
    - -
    - - - {{item.name}} - - -
    - -
    - - -
    -
    -
    - -
    - - - - {{node.name}} check_circle_outline - - - - - - {{node.name}} check_circle_outline - - - -
    \ No newline at end of file diff --git a/src/app/ui/unittype/editorialUnit.html b/src/app/ui/unittype/editorialUnit.html deleted file mode 100644 index a0a2553..0000000 --- a/src/app/ui/unittype/editorialUnit.html +++ /dev/null @@ -1,48 +0,0 @@ -
    - 编辑单位类型 - -
    -
    - - - -
    - -
    - - - - {{item.name}} - - - -
    - -
    - - - - {{food.name}} - - - -
    - -
    - - - {{item.name}} - - -
    - -
    - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/unittype/unittype.component.html b/src/app/ui/unittype/unittype.component.html deleted file mode 100644 index 5926469..0000000 --- a/src/app/ui/unittype/unittype.component.html +++ /dev/null @@ -1,55 +0,0 @@ -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位类型{{element.name}}单位信息模板{{element.basicCategoryName}}消防要素模板{{element.fireCategoryName}}消防设施模板{{element.facilityCategoryName}}操作 - - - - - - - -
    -
    \ No newline at end of file diff --git a/src/app/ui/unittype/unittype.component.scss b/src/app/ui/unittype/unittype.component.scss deleted file mode 100644 index d4186d3..0000000 --- a/src/app/ui/unittype/unittype.component.scss +++ /dev/null @@ -1,30 +0,0 @@ -.left { - margin: 10px; -} -.marginLeft { - margin-left: 5px; -} -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } - } - -.leftBox { - width: 200px; - float: left; -} -.tree { - float: right; - width: 300px; - height: 350px; - overflow-y: auto; -} -.mat-icon { - font-size: 22px; -} -mat-form-field{ - width: 200px; -} \ No newline at end of file diff --git a/src/app/ui/unittype/unittype.component.ts b/src/app/ui/unittype/unittype.component.ts deleted file mode 100644 index c9d8dd5..0000000 --- a/src/app/ui/unittype/unittype.component.ts +++ /dev/null @@ -1,307 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {HttpClient} from '@angular/common/http' -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-unittype', - templateUrl: './unittype.component.html', - styleUrls: ['./unittype.component.scss'] -}) -export class UnittypeComponent implements OnInit { - - constructor(public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - displayedColumns: string[]=['company', 'template','fireControl','facilityCategory','operation']; - dataSource:any=[]; //所有单位类型 - allFireControl:any=[]; //所有消防要素模板 - - ngOnInit() { - this.getList() - this.getFireControl() - } - - - //获取所有单位类型 - getList () { - this.http.get('/api/BuildingTypes').subscribe( - (data: any[]) => { - this.dataSource=data - } - ) - } - - //获取所有消防要素模板 - getFireControl () { - this.http.get('/api/FireCategories').subscribe( - (data:any)=>{ - this.allFireControl=data - } - )} - - //创建单位弹窗 - open() { - let data = this.allFireControl || [] - let dialogRef = this.dialog.open(DialogOverviewExampleDialog,{data}); - dialogRef.afterClosed().subscribe( - (data)=>{if (data) {this.getList()}} - ); - } - - //编辑弹窗 - edit (e) { - let data= e - let allFireControl= this.allFireControl || [] - let dialogRef = this.dialog.open(editorialUnit, - { - width:"260px", - data:{data,allFireControl} - }); - dialogRef.afterClosed().subscribe( - (data)=>{if (data) {this.getList()}} - ); - } - - //启用 - enabled(e) { - this.http.put( - `/api/BuildingTypes/${e.id}`, - { - id:e.id, - name: e.name, - enabled: true, - basicCategoryId:e.basicCategoryId, - fireCategoryId:e.fireCategoryId, - facilityCategoryId: e.facilityCategoryId, - } - ).subscribe( - ()=> { - this.getList() - } - ) - } - - //禁用 - prohibit (e) { - this.http.put( - `/api/BuildingTypes/${e.id}`, - { - id:e.id, - name: e.name, - enabled: false, - basicCategoryId:e.basicCategoryId, - fireCategoryId:e.fireCategoryId, - facilityCategoryId: e.facilityCategoryId, - } - ).subscribe( - ()=> { - this.getList() - } - ) - } - - //删除 - delete(e) { - let isTrue = confirm('您确定要删除吗') - if(isTrue) { - this.http.delete(`/api/BuildingTypes/${e}`).subscribe( - ()=>{ - this.getList() - } - ) - } - } - - - -} - -//创建单位弹窗组件 -@Component({ - selector: 'dialog-overview-example-dialog', - templateUrl: 'dialog-overview-example-dialog.html', - styleUrls: ['./unittype.component.scss'] -}) -export class DialogOverviewExampleDialog { - data:any =[] - newdata = []; - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - computed:node.computed, - order:node.order, - checked:node.checked, - tag:node.tag - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(public http: HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public allFireControl) {} - - ngOnInit() { - this.getunitmsg() - this.getAllFacilityCategory() - } - - oldSelected:any; //选中的单位信息模板id - selected:any; //选中的消防要素模板id - allunitmsg:any //所有单位信息 - allFacilityCategory:any; //所有消防设施模板 - - //获得所有单位信息模板 - getunitmsg(){ - this.http.get('/api/BasicCategories').subscribe(data=>{ - this.allunitmsg = data - }) - } - - //获取所有消防设施模板 - getAllFacilityCategory () { - this.http.get('/api/FacilityCategories').subscribe(data=>{ - this.allFacilityCategory = data - }) - } - - //封装实现select框切换渲染更新Tree函数 - select () { - this.newdata=[] - let id = this.selected - this.http.get(`/api/FireCategories/${id}/FireElements`).subscribe( - (data:any)=>{ - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - this.dataSource.data = this.newdata; - } - ) - - } - - //select选择切换Tree - toggleDisplay() { - this.select() - } - - hasChild = (_: number, node: any) => node.expandable; - - //创建单位类型 - onSubmit (e) { - if(this.selected) { - this.http.post('/api/BuildingTypes',{ - name:e.name, - enabled:true, - basicCategoryId:e.basicCategoryName, - fireCategoryId:this.selected, - facilityCategoryId: e.facilityCategoryName - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写完整','确定',config); - } - } - - - -} - - -//编辑单位弹窗组件 -@Component({ - selector: 'app-editorialUnit', - templateUrl: './editorialUnit.html', - styleUrls: ['./unittype.component.scss'] -}) -export class editorialUnit { - -constructor(public http: HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit() { - this.companyName=this.data.data.name - this.oldSelected = this.data.data.basicCategoryId - this.selected=this.data.data.fireCategoryId - this.facilityCategoryId = this.data.data.facilityCategoryId - this.getunitmsg() - this.getAllFacilityCategory() - } - - companyName:any; //单位类型name - oldSelected:any; //单位信息模板id - selected:any; //消防要素模板id - facilityCategoryId:any; //消防设施模板id - allunitmsg:any //所有单位信息模板 - allFacilityCategory:any; //所有消防设施模板 - - //获得所有单位信息模板 - getunitmsg(){ - this.http.get('/api/BasicCategories').subscribe(data=>{ - this.allunitmsg = data - }) - } - - //获取所有消防设施模板 - getAllFacilityCategory () { - this.http.get('/api/FacilityCategories').subscribe(data=>{ - this.allFacilityCategory = data - }) - } - - //编辑功能 - onSubmit (e) { - let id = this.data.data.id - let enabled = this.data.data.enabled - if(e.name&&this.selected&&this.oldSelected) { - this.http.put(`/api/BuildingTypes/${id}`,{ - id:id, - name:e.name, - enabled: enabled, - basicCategoryId:this.oldSelected, - fireCategoryId:this.selected, - facilityCategoryId: e.facilityCategoryName - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - } else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写完整','确定',config); - } - } - - - -} diff --git a/src/app/ui/usermanagement/allRoles.html b/src/app/ui/usermanagement/allRoles.html deleted file mode 100644 index 1b5dfd3..0000000 --- a/src/app/ui/usermanagement/allRoles.html +++ /dev/null @@ -1,29 +0,0 @@ -分配角色 - -
    -
    -
    所有角色
    -
    - - {{item.name}} - -
    -
    - -
    -
    用户角色
    -
    -

    - {{item.name}} -

    -
    -
    -
    - -
    - - -
    \ No newline at end of file diff --git a/src/app/ui/usermanagement/createUser.html b/src/app/ui/usermanagement/createUser.html deleted file mode 100644 index aa9fa1b..0000000 --- a/src/app/ui/usermanagement/createUser.html +++ /dev/null @@ -1,70 +0,0 @@ -
    - 创建用户 -
    - -
    - - - -
    -
    登录名格式为字母开头,5-18位
    -
    -
    - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    -

    {{errmsg}}

    -
    - -
    - - -
    -
    -
    - -
    - 请选择所属机构 - - - -
  • {{node.name}}
  • -
    - - - -
  • {{node.name}}
  • -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/usermanagement/editUser.html b/src/app/ui/usermanagement/editUser.html deleted file mode 100644 index 2f5e2c5..0000000 --- a/src/app/ui/usermanagement/editUser.html +++ /dev/null @@ -1,63 +0,0 @@ -
    - 编辑用户 -
    - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - -
    -
    -
    - -
    - 请选择所属机构 - - - -
  • {{node.name}}
  • -
    - - - -
  • {{node.name}}
  • -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/usermanagement/seeInformation.html b/src/app/ui/usermanagement/seeInformation.html deleted file mode 100644 index a627ce7..0000000 --- a/src/app/ui/usermanagement/seeInformation.html +++ /dev/null @@ -1,29 +0,0 @@ -查看用户 - -
    - - 登录账号: - {{data.name}} - - 真实姓名: - {{data.realName}} - - 所属机构: - {{data.organizationName}} - - 所属角色: - {{item}} - - 创建时间: - {{data.creationTime|date:'yyyy-MM-dd'}} - - 是否禁用: - - - - -
    - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/usermanagement/usermanagement.component.html b/src/app/ui/usermanagement/usermanagement.component.html deleted file mode 100644 index 1b78d66..0000000 --- a/src/app/ui/usermanagement/usermanagement.component.html +++ /dev/null @@ -1,112 +0,0 @@ -
    -
    -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - -
    - - - -
    -
    clear
    - - - -
  • {{node.name}}
  • -
    - - -
  • {{node.name}}
  • -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    登录账号{{element.name}}真实姓名{{element.realName}}所属机构{{element.organizationName}}所属角色 - {{item}} - 创建时间 - {{element.creationTime|date:'yyyy-MM-dd'}} - 操作 - - - - - - - - - - - - -
    - - - diff --git a/src/app/ui/usermanagement/usermanagement.component.scss b/src/app/ui/usermanagement/usermanagement.component.scss deleted file mode 100644 index 5466063..0000000 --- a/src/app/ui/usermanagement/usermanagement.component.scss +++ /dev/null @@ -1,155 +0,0 @@ -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } - } -.maginleft { - margin-left: 5px; -} - -.header { - width: 100%; - padding: 10px; - margin-bottom: 10px; - box-sizing: border-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.12); - .queryBox { - box-sizing: border-box; - padding: 5px 15px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - justify-content:center; - .queryField { - margin: 0 15px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - - } //queryBox -} - - - -//创建用户 -.alert-danger{ - font-size: 14px; - color: red; -} -.leftTree { - width: 200px; - float: left; -} -.tree { - width: 300px; - height: 400px; - float: right; - overflow-y: auto; -} - - - -//分配角色 -.example-margin { - display: block; - margin-top: 5px; -} -.clearfix:after{/*伪元素是行内元素 正常浏览器清除浮动方法*/ - content: ""; - display: block; - height: 0; - clear:both; - visibility: hidden; -} -.clearfix{ - *zoom: 1;/*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/ -} -.leftBox { - float: left; - width: 250px; - border-radius: 10px;; - border: 1px solid #999; -} -.rightBox { - float: right; - width: 250px; - border-radius: 10px;; - border: 1px solid #999; -} -.Userheader { - height: 30px; - line-height: 30px; - border-radius: 10px 10px 0 0; - padding-left: 10px; - background-color: #f9fafc; -} -.select { - height: 300px; - padding-left: 10px; - border-top: 1px solid #999; - overflow: auto; - p{ - height: 24px; - line-height: 24px; - } -} -.organizationlist{ - list-style: none -} -.organizationlist:hover{ - background: rgba(225, 225, 225, 0.8); - cursor: pointer; -} - - -//滚动条样式 -::-webkit-scrollbar{ - width: 5px; - background-color: white; -} -::-webkit-scrollbar-thumb{ - background-color: #999; -} -.organizationbox{ - width:450px; - height: 200px; - background: white; - position: absolute; - top: 25px; - left: 78px; - z-index: 999; - border: 1px solid grey; - overflow-y: auto; - li{ - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - mat-tree-node{ - cursor: pointer; - white-space:pre; - } - mat-tree-node:hover{ - background: rgba(225, 225, 225, 0.8); - } - .closediv{ - z-index: 100; - position: absolute; - right: 0; - top: 0; - width: 30px; - height: 30px; - cursor: pointer; - line-height: 30px; - text-align: center; - } - .closediv:hover{ - background:rgba(225, 225, 225, 0.8); - } -} \ No newline at end of file diff --git a/src/app/ui/usermanagement/usermanagement.component.ts b/src/app/ui/usermanagement/usermanagement.component.ts deleted file mode 100644 index 0c6bd09..0000000 --- a/src/app/ui/usermanagement/usermanagement.component.ts +++ /dev/null @@ -1,549 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import {HttpClient} from '@angular/common/http' -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatTableDataSource } from '@angular/material/table'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree'; -import { PageEvent } from '@angular/material/paginator'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -import { FormControl } from '@angular/forms'; - - - -@Component({ - selector: 'app-usermanagement', - templateUrl: './usermanagement.component.html', - styleUrls: ['./usermanagement.component.scss'] -}) -export class UsermanagementComponent implements OnInit { - - constructor(public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,private tree: TreeService) { } - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - treedataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - - ngOnInit() { - this.initData() - this.getAllMechanism() - } - - - displayedColumns: string[] = ['loginName', 'realName', 'mechanism','role','time', 'operation']; - dataSource:any; //所有用户 - allMechanism:any; //所有机构 - - userLogin:string; //搜索账号 - userName:string; //搜索名称 - userMechanism:string //搜索机构 - - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - pageNumber:number = 1; //第几页 - - //分页切换 - chagePage (e) { - this.pageNumber = e.pageIndex+1 - let data = { - Name: this.userLogin ||'', - RealName:this.userName ||'', - OrganizationId:this.userMechanism ||'', - PageNumber: String(this.pageNumber), - } - this.http.get('/api/Users',{params:data}).subscribe( - (data:any[])=> { - this.length = data['totalCount'] - this.pageSize = data['pageSize'] - this.dataSource = new MatTableDataSource(data['items']); - } - ) - } - - isorganizationbox:any = false - stopclose(e){ - e.stopPropagation(); - } - js:any - // jsId:any - //点击辖区中队树,将选择的辖区中队添加到变量 - add(node) { - this.isorganizationbox = false - this.js = node.name - console.log(this.js) - this.userMechanism = node.id - } - - //打开辖区中队隐藏框 - openorganizationbox() { - this.isorganizationbox = true - } - - //关闭出现的组织机构div - closediv(){ - this.isorganizationbox = false - } - - //页面初始化 + 查询 + 重置 - initData () { - let data = { - Name: this.userLogin ||'', - RealName:this.userName ||'', - OrganizationId:this.userMechanism ||'', - PageNumber: '1', - } - this.http.get('/api/Users',{params:data}).subscribe( - (data:any[])=> { - this.length = data['totalCount'] - this.pageSize = data['pageSize'] - this.pageEvent.pageIndex = 0 - this.dataSource = new MatTableDataSource(data['items']); - } - ) - } - - //更新当前页数据 - getUsers () { - let data = { - Name: this.userLogin ||'', - RealName:this.userName ||'', - OrganizationId:this.userMechanism ||'', - PageNumber: String(this.pageNumber), - } - this.http.get('/api/Users',{params:data}).subscribe( - (data:any[])=> { - this.length = data['totalCount'] - this.pageSize = data['pageSize'] - this.dataSource = new MatTableDataSource(data['items']); - } - ) - - } - - //清空自动搜索 - empty () { - this.userLogin='' - this.userName='' - this.userMechanism='' - this.js = '' - this.isorganizationbox = false - this.initData() - } - allorganizations:any//所有组织机构 - treedata:any//所有组织机构变成树 - newallorganizations:any - - //获取所有机构 - getAllMechanism() { - this.http.get('/api/Organizations').subscribe(data=>{ - this.allorganizations = data - this.treedata = this.tree.toTree(data); - this.treedataSource.data = this.treedata - }) - } - - //打开创建用户窗口 - open() { - let dialogRef = this.dialog.open(CreateNewUser,{ - width: '600px', - }); - dialogRef.afterClosed().subscribe( - (data)=>{ - if (data) {this.getUsers()} - } - ); - } - - //打开分配角色窗口 - openuser (e) { - let dialogRef = this.dialog.open(allRoles, - { - width:'600px', - data: {e} - }); - dialogRef.afterClosed().subscribe( - (data)=>{ - if (data) {this.getUsers()} - } - ); - } - - //启用 - enable (e) { - this.http.put(`/api/Users/${e.name}`,{ - name: e.name, - realName:e.realName, - post: e.post, - phone: e.phone, - enabled: true, - creationTime:e.creationTime, - organizationId:e.organizationId - }).subscribe( - data=> { - this.getUsers() - } - ) - } - - //禁用 - prohibit (e) { - this.http.put(`/api/Users/${e.name}`,{ - name: e.name, - realName:e.realName, - post: e.post, - phone: e.phone, - enabled: false, - creationTime:e.creationTime, - organizationId:e.organizationId - }).subscribe( - data=> { - this.getUsers() - } - ) - } - - //编辑 - edit (e) { - let allMechanism=this.allMechanism - let dialogRef = this.dialog.open(EditNewUser, - { - data: {e,allMechanism} - }); - - dialogRef.afterClosed().subscribe( - (data)=>{ - if (data) {this.getUsers()} - } - ); - } - - //查看 - see (e) { - this.http.get(`/api/Users/${e}`).subscribe( - data=> { - let dialogRef = this.dialog.open(seeInformation, - { - width:'600px', - data - }); - dialogRef.afterClosed().subscribe(); - } - - ) - } - - //重置密码 - reset (e) { - this.http.put(`/api/Users/${e}/ResetPassword`,{}).subscribe( - data=> { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('重置密码成功!','确定',config); - } - ) - } - - //删除 - delete (e) { - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - this.http.delete(`/api/Users/${e}`).subscribe( - data=>{ - this.getUsers() - } - ) - } - } - - - -} - -//创建用户组件 -@Component({ - selector: 'app-createUser', - templateUrl: './createUser.html', - styleUrls: ['./usermanagement.component.scss'] -}) -export class CreateNewUser { - - newdata = []; - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - enabled:node.enabled, - order:node.order, - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - - constructor(public http: HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef) {} - - organizationId:any=''; //所属机构id - organizationName:any; //所属机构name - - ngOnInit() { - this.tree() - } - - //渲染Tree - tree () { - this.newdata=[] - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - function getparentNode(parentId){ - return data.find((item)=>{ - return item.id == parentId - }) - } - data.forEach(item => { - var parentNode = getparentNode(item.parentId); - if(parentNode){ - if(!parentNode.children){ - parentNode.children = [] - } - parentNode.children.push(item) - }else{ - if(!item.parentId){ - this.newdata.push(item) - } - } - }); - this.dataSource.data = this.newdata; - } - ) - - } - hasChild = (_: number, node: any) => node.expandable; - - //选择机构 - add (e) { - this.organizationId = e.id - this.organizationName = e.name - } - - errmsg:any; //捕获错误信息 - //新增用户 - onSubmit(e) { - let time =new Date() - if(this.organizationId) { - this.http.post('/api/Users',{ - name:e.name, - realName:e.user, - post:e.post, - phone:e.phone, - enabled:true, - creationTime:time, - organizationId:this.organizationId - }).subscribe(data=> { - this.dialogRef.close('success')}, - error=>{this.errmsg = error} - ) - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择机构','确定',config); - } - } - - - -} - - - -//编辑用户组件 -@Component({ - selector: 'app-editUser', - templateUrl: './editUser.html', - styleUrls: ['./usermanagement.component.scss'] -}) -export class EditNewUser { - constructor(public http: HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit() { - this.getTreeData() - this.name=this.data.e.name - this.realName=this.data.e.realName - this.post=this.data.e.post, - this.phone=this.data.e.phone, - this.affiliate=this.data.e.organizationId - this.affiliateName=this.data.e.organizationName - } - - private _transformer = (node, level: number) => { - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - enabled:node.enabled, - order:node.order, - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - hasChild = (_: number, node: any) => node.expandable; - - name:any; //登录账号 - realName:any; //真实姓名 - post:any; //职务 - phone:any; //联系电话 - affiliate:any; //所属机构id - affiliateName:any; //所属机构name - - //获取tree数据 - getTreeData () { - this.http.get('/api/Organizations').subscribe((data:any)=>{ - let treeData = [] - data.forEach(element => { - element.children = [] - data.forEach(item => { if (item.parentId==element.id) {element.children.push(item)} }); - if(!element.parentId) {treeData.push(element)} - }); //forEach - this.dataSource.data = treeData - - }) - } - - //选择组织机构 - add (e) { - this.affiliate = e.id - this.affiliateName = e.name - } - - //编辑 - onSubmit (e) { - this.http.put(`/api/Users/${this.data.e.name}`,{ - name:this.data.e.name, - realName:this.realName, - post:this.post, - phone:this.phone, - roleNames:this.data.e.roleNames, - enabled: this.data.e.enabled, - creationTime:this.data.e.creationTime, - organizationId:this.affiliate - }).subscribe(data=>{ - this.dialogRef.close('success') - }) - - } - - - -} - - - -//分配角色组件 -@Component({ - selector: 'app-allRoles', - templateUrl: './allRoles.html', - styleUrls: ['./usermanagement.component.scss'] -}) -export class allRoles { - - constructor(public http: HttpClient,public snackBar: MatSnackBar, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit() { - this.getUsers() - } - - allRoles:any; //所有角色 - checked:any=[]; //选中的角色 - - //获取所有角色 - getUsers () { - this.http.get('/api/Roles').subscribe( data=>{ - this.allRoles=data - this.allRoles.forEach(element => { //所有角色 - element.checked = false - this.data.e.roleNames.forEach(elements=> { //当前账号已有角色 - if (element.name == elements) { - element.checked = true - this.checked.push(element)} }); - }); - - }) - } - - //check框change事件 - fill (e) { - e.checked = !e.checked - if (e.checked) { - this.checked.push(e) - } else { - this.checked.splice(this.checked.findIndex(item => item==e), 1) - } - } - - //分配角色 - onSubmit () { - if (this.checked.length) { - let data:any=[] - this.checked.forEach(item=>{ - data.push(item.id) - }) - this.http.post(`/api/Users/${this.data.e.name}/Roles`,data).subscribe( data=> { - this.dialogRef.close('success') - }) - } else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择分配角色','确定',config); - } - } - - - -} - - -//查看用户组件 -@Component({ - selector: 'app-seeInformation', - templateUrl: './seeInformation.html', - styleUrls: ['./usermanagement.component.scss'] -}) -export class seeInformation { - constructor(public http: HttpClient, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit() { - } - -} From 0cf0b8dc6091ae55dbb1dd20f146870d8d82486c Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Thu, 5 Nov 2020 15:38:44 +0800 Subject: [PATCH 2/8] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=89=A9=E4=BD=99=E5=86=97=E6=9D=82=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app-routing.module.ts | 10 +- src/app/app.module.ts | 4 +- .../gis-labeling/gis-labeling.component.html | 3 - .../gis-labeling/gis-labeling.component.scss | 84 -- .../gis-labeling.component.spec.ts | 25 - .../gis-labeling/gis-labeling.component.ts | 74 -- .../gis-management-routing.module.ts | 14 - .../gis-management/gis-management.module.ts | 100 -- src/app/pages/home2/home2.component.html | 63 -- src/app/pages/home2/home2.component.scss | 247 ----- src/app/pages/home2/home2.component.spec.ts | 25 - src/app/pages/home2/home2.component.ts | 348 ------ .../homedetail/homedetail.component.html | 70 -- .../homedetail/homedetail.component.scss | 1 - .../homedetail/homedetail.component.spec.ts | 25 - .../pages/homedetail/homedetail.component.ts | 563 ---------- .../lockscreen/lockscreen.component.html | 22 - .../lockscreen/lockscreen.component.scss | 111 -- .../lockscreen/lockscreen.component.spec.ts | 25 - .../pages/lockscreen/lockscreen.component.ts | 24 - src/app/pages/pages-routing.module.ts | 9 +- src/app/pages/pages.module.ts | 10 +- .../personaldata/personaldata.component.html | 280 ----- .../personaldata/personaldata.component.scss | 110 -- .../personaldata.component.spec.ts | 25 - .../personaldata/personaldata.component.ts | 15 - .../detachment-level.component.html | 161 --- .../detachment-level.component.scss | 0 .../detachment-level.component.spec.ts | 25 - .../detachment-level.component.ts | 248 ----- .../plan-audit/plan-audit-routing.module.ts | 17 - src/app/plan-audit/plan-audit.module.ts | 104 -- .../plan-audit/plan-audit.component.html | 173 --- .../plan-audit/plan-audit.component.scss | 83 -- .../plan-audit/plan-audit.component.spec.ts | 25 - .../plan-audit/plan-audit.component.ts | 317 ------ .../plan-audit/plan-opendialog.html | 25 - .../plan-pass/plan-pass.component.html | 64 -- .../plan-pass/plan-pass.component.scss | 20 - .../plan-pass/plan-pass.component.spec.ts | 25 - .../plan-pass/plan-pass.component.ts | 170 --- .../entry-plan-look/AddPlanone.html | 88 -- .../entry-plan-look/auditresult.html | 18 - .../entry-plan-look/changename.html | 16 - .../entry-plan-look/downloadFile.html | 20 - .../entry-plan-look.component.html | 95 -- .../entry-plan-look.component.scss | 117 --- .../entry-plan-look.component.spec.ts | 25 - .../entry-plan-look.component.ts | 988 ------------------ .../entry-plan/entry-plan.component.html | 258 ----- .../entry-plan/entry-plan.component.scss | 231 ---- .../entry-plan/entry-plan.component.spec.ts | 25 - .../entry-plan/entry-plan.component.ts | 256 ----- .../open-plan/open-plan.component.html | 109 -- .../open-plan/open-plan.component.scss | 84 -- .../open-plan/open-plan.component.spec.ts | 25 - .../open-plan/open-plan.component.ts | 223 ---- .../pass-plan/pass-plan.component.html | 142 --- .../pass-plan/pass-plan.component.scss | 92 -- .../pass-plan/pass-plan.component.spec.ts | 25 - .../pass-plan/pass-plan.component.ts | 232 ---- .../plan-management-routing.module.ts | 21 - .../plan-management/plan-management.module.ts | 107 -- .../web-look/web-look.component.html | 4 - .../web-look/web-look.component.scss | 0 .../web-look/web-look.component.spec.ts | 25 - .../web-look/web-look.component.ts | 19 - src/app/ui/ui-routing.module.ts | 4 - src/app/ui/ui.module.ts | 11 +- .../ui/unit-information/addUnitAttribute.html | 71 -- .../unit-information/addgroups.component.html | 28 - .../unit-information/addgroups.component.ts | 114 -- .../addunitinfo.component.html | 22 - .../unit-information/addunitinfo.component.ts | 30 - .../unit-information/editUnitAttribute.html | 76 -- .../unit-information/editgroup.component.html | 27 - .../unit-information/editgroup.component.ts | 51 - .../editunitinfo.component.html | 22 - .../editunitinfo.component.ts | 31 - .../unit-information.component.html | 164 --- .../unit-information.component.scss | 120 --- .../unit-information.component.ts | 635 ----------- 82 files changed, 6 insertions(+), 8389 deletions(-) delete mode 100644 src/app/gis-management/gis-labeling/gis-labeling.component.html delete mode 100644 src/app/gis-management/gis-labeling/gis-labeling.component.scss delete mode 100644 src/app/gis-management/gis-labeling/gis-labeling.component.spec.ts delete mode 100644 src/app/gis-management/gis-labeling/gis-labeling.component.ts delete mode 100644 src/app/gis-management/gis-management-routing.module.ts delete mode 100644 src/app/gis-management/gis-management.module.ts delete mode 100644 src/app/pages/home2/home2.component.html delete mode 100644 src/app/pages/home2/home2.component.scss delete mode 100644 src/app/pages/home2/home2.component.spec.ts delete mode 100644 src/app/pages/home2/home2.component.ts delete mode 100644 src/app/pages/homedetail/homedetail.component.html delete mode 100644 src/app/pages/homedetail/homedetail.component.scss delete mode 100644 src/app/pages/homedetail/homedetail.component.spec.ts delete mode 100644 src/app/pages/homedetail/homedetail.component.ts delete mode 100644 src/app/pages/lockscreen/lockscreen.component.html delete mode 100644 src/app/pages/lockscreen/lockscreen.component.scss delete mode 100644 src/app/pages/lockscreen/lockscreen.component.spec.ts delete mode 100644 src/app/pages/lockscreen/lockscreen.component.ts delete mode 100644 src/app/pages/personaldata/personaldata.component.html delete mode 100644 src/app/pages/personaldata/personaldata.component.scss delete mode 100644 src/app/pages/personaldata/personaldata.component.spec.ts delete mode 100644 src/app/pages/personaldata/personaldata.component.ts delete mode 100644 src/app/plan-audit/detachment-level/detachment-level.component.html delete mode 100644 src/app/plan-audit/detachment-level/detachment-level.component.scss delete mode 100644 src/app/plan-audit/detachment-level/detachment-level.component.spec.ts delete mode 100644 src/app/plan-audit/detachment-level/detachment-level.component.ts delete mode 100644 src/app/plan-audit/plan-audit-routing.module.ts delete mode 100644 src/app/plan-audit/plan-audit.module.ts delete mode 100644 src/app/plan-audit/plan-audit/plan-audit.component.html delete mode 100644 src/app/plan-audit/plan-audit/plan-audit.component.scss delete mode 100644 src/app/plan-audit/plan-audit/plan-audit.component.spec.ts delete mode 100644 src/app/plan-audit/plan-audit/plan-audit.component.ts delete mode 100644 src/app/plan-audit/plan-audit/plan-opendialog.html delete mode 100644 src/app/plan-audit/plan-pass/plan-pass.component.html delete mode 100644 src/app/plan-audit/plan-pass/plan-pass.component.scss delete mode 100644 src/app/plan-audit/plan-pass/plan-pass.component.spec.ts delete mode 100644 src/app/plan-audit/plan-pass/plan-pass.component.ts delete mode 100644 src/app/plan-management/entry-plan-look/AddPlanone.html delete mode 100644 src/app/plan-management/entry-plan-look/auditresult.html delete mode 100644 src/app/plan-management/entry-plan-look/changename.html delete mode 100644 src/app/plan-management/entry-plan-look/downloadFile.html delete mode 100644 src/app/plan-management/entry-plan-look/entry-plan-look.component.html delete mode 100644 src/app/plan-management/entry-plan-look/entry-plan-look.component.scss delete mode 100644 src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts delete mode 100644 src/app/plan-management/entry-plan-look/entry-plan-look.component.ts delete mode 100644 src/app/plan-management/entry-plan/entry-plan.component.html delete mode 100644 src/app/plan-management/entry-plan/entry-plan.component.scss delete mode 100644 src/app/plan-management/entry-plan/entry-plan.component.spec.ts delete mode 100644 src/app/plan-management/entry-plan/entry-plan.component.ts delete mode 100644 src/app/plan-management/open-plan/open-plan.component.html delete mode 100644 src/app/plan-management/open-plan/open-plan.component.scss delete mode 100644 src/app/plan-management/open-plan/open-plan.component.spec.ts delete mode 100644 src/app/plan-management/open-plan/open-plan.component.ts delete mode 100644 src/app/plan-management/pass-plan/pass-plan.component.html delete mode 100644 src/app/plan-management/pass-plan/pass-plan.component.scss delete mode 100644 src/app/plan-management/pass-plan/pass-plan.component.spec.ts delete mode 100644 src/app/plan-management/pass-plan/pass-plan.component.ts delete mode 100644 src/app/plan-management/plan-management-routing.module.ts delete mode 100644 src/app/plan-management/plan-management.module.ts delete mode 100644 src/app/plan-management/web-look/web-look.component.html delete mode 100644 src/app/plan-management/web-look/web-look.component.scss delete mode 100644 src/app/plan-management/web-look/web-look.component.spec.ts delete mode 100644 src/app/plan-management/web-look/web-look.component.ts delete mode 100644 src/app/ui/unit-information/addUnitAttribute.html delete mode 100644 src/app/ui/unit-information/addgroups.component.html delete mode 100644 src/app/ui/unit-information/addgroups.component.ts delete mode 100644 src/app/ui/unit-information/addunitinfo.component.html delete mode 100644 src/app/ui/unit-information/addunitinfo.component.ts delete mode 100644 src/app/ui/unit-information/editUnitAttribute.html delete mode 100644 src/app/ui/unit-information/editgroup.component.html delete mode 100644 src/app/ui/unit-information/editgroup.component.ts delete mode 100644 src/app/ui/unit-information/editunitinfo.component.html delete mode 100644 src/app/ui/unit-information/editunitinfo.component.ts delete mode 100644 src/app/ui/unit-information/unit-information.component.html delete mode 100644 src/app/ui/unit-information/unit-information.component.scss delete mode 100644 src/app/ui/unit-information/unit-information.component.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 36785e4..f1f49c3 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -2,7 +2,6 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { LoginComponent } from './pages/login/login.component'; import { NavigationComponent } from './navigation/navigation.component'; -import { LockscreenComponent } from './pages/lockscreen/lockscreen.component'; import {HomeComponent} from './home/home.component' //路由守卫 @@ -21,11 +20,8 @@ const routes: Routes = [ children:[ {path:'ui',loadChildren:() => import('./ui/ui.module').then(m => m.UiModule)}, {path:'keyUnit',loadChildren:() => import('./key-unit/key-unit.module').then(m => m.KeyUnitModule)}, - {path:'planManagement',loadChildren:() => import('./plan-management/plan-management.module').then(m => m.PlanManagementModule)}, - {path:'planAudit',loadChildren:() => import('./plan-audit/plan-audit.module').then(m => m.PlanAuditModule)}, {path:'home',loadChildren:() => import('./pages/pages.module').then(m => m.PagesModule)}, - {path:'visualization',component: HomeComponent}, - {path:'gis',loadChildren:() => import('./gis-management/gis-management.module').then(m => m.GISManagementModule)} + {path:'visualization',component: HomeComponent} ] }, {path:'login', @@ -33,10 +29,6 @@ const routes: Routes = [ {path:'getNoMToken', component:MTokenK1Component, canActivate: [AuthGuard],}, //K1秘钥验证失败是跳转页面 - - {path:'lockscreen', - component:LockscreenComponent, - canActivate: [AuthGuard]}//守卫验证 ]; @NgModule({ diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 3b99be1..eea1f7b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -19,7 +19,6 @@ import {CacheTokenService} from './http-interceptors/cache-token.service' import { TreeService } from'./http-interceptors/tree.service'; import { MTokenK1Component } from './m-token-k1/m-token-k1.component' //K1秘钥 import { CountdownModule } from 'ngx-countdown'; //倒计时插件 -import { GISManagementModule } from './gis-management/gis-management.module'; @NgModule({ declarations: [ @@ -39,8 +38,7 @@ import { GISManagementModule } from './gis-management/gis-management.module'; PagesModule, FormsModule, HttpClientModule, - CountdownModule, - GISManagementModule + CountdownModule ], providers: [httpInterceptorProviders, CacheTokenService,TreeService], bootstrap: [AppComponent] diff --git a/src/app/gis-management/gis-labeling/gis-labeling.component.html b/src/app/gis-management/gis-labeling/gis-labeling.component.html deleted file mode 100644 index 14ea061..0000000 --- a/src/app/gis-management/gis-labeling/gis-labeling.component.html +++ /dev/null @@ -1,3 +0,0 @@ -
    - -
    diff --git a/src/app/gis-management/gis-labeling/gis-labeling.component.scss b/src/app/gis-management/gis-labeling/gis-labeling.component.scss deleted file mode 100644 index feb03fd..0000000 --- a/src/app/gis-management/gis-labeling/gis-labeling.component.scss +++ /dev/null @@ -1,84 +0,0 @@ -.mapbox{ - width: 100%; - height: 100%; -} - - - - - - - - - - -// .content-window-card { -// position: relative; -// box-shadow: none; -// bottom: 0; -// left: 0; -// width: auto; -// padding: 0; -// } - -// .content-window-card p { -// height: 20px; -// } - -// .custom-info { -// border: solid 1px silver; -// } -// div.info-top { -// position: relative; -// background: none repeat scroll 0 0 #F9F9F9; -// border-bottom: 1px solid #CCC; -// border-radius: 5px 5px 0 0; -// } - -// div.info-top div { -// display: inline-block; -// color: #333333; -// font-size: 14px; -// font-weight: bold; -// line-height: 31px; -// padding: 0 10px; -// } - -// div.info-top img { -// position: absolute; -// top: 10px; -// right: 10px; -// transition-duration: 0.25s; -// } - -// div.info-top img:hover { -// box-shadow: 0px 0px 5px #000; -// } - -// div.info-middle { -// font-size: 12px; -// padding: 10px 6px; -// line-height: 20px; -// } - -// div.info-bottom { -// height: 0px; -// width: 100%; -// clear: both; -// text-align: center; -// } - -// div.info-bottom img { -// position: relative; -// z-index: 104; -// } - -// span { -// margin-left: 5px; -// font-size: 11px; -// } - -// .info-middle img { -// float: left; -// margin-right: 6px; -// } diff --git a/src/app/gis-management/gis-labeling/gis-labeling.component.spec.ts b/src/app/gis-management/gis-labeling/gis-labeling.component.spec.ts deleted file mode 100644 index 666c51f..0000000 --- a/src/app/gis-management/gis-labeling/gis-labeling.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { GisLabelingComponent } from './gis-labeling.component'; - -describe('GisLabelingComponent', () => { - let component: GisLabelingComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ GisLabelingComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(GisLabelingComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/gis-management/gis-labeling/gis-labeling.component.ts b/src/app/gis-management/gis-labeling/gis-labeling.component.ts deleted file mode 100644 index e6420cc..0000000 --- a/src/app/gis-management/gis-labeling/gis-labeling.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Component, OnInit ,Renderer2,ElementRef } from '@angular/core'; -declare var AMap: any; -@Component({ - selector: 'app-gis-labeling', - templateUrl: './gis-labeling.component.html', - styleUrls: ['./gis-labeling.component.scss'] -}) -export class GisLabelingComponent implements OnInit { - - constructor(private elementRef: ElementRef,public renderer2: Renderer2) { } - map:any //地图 - ngOnInit(): void { - - setTimeout(() => { - this.map = new AMap.Map('map'); - //给地图增加点击事件 - this.map.on('click', (ev)=>{ - // 触发事件的对象 - var target = ev.target; - - // 触发事件的地理坐标,AMap.LngLat 类型 - var lnglat = ev.lnglat; - - // 触发事件的像素坐标,AMap.Pixel 类型 - var pixel = ev.pixel; - - // 触发事件类型 - var type = ev.type; - - let marker = new AMap.Marker({ - position:[lnglat.lng, lnglat.lat]//位置 - }) - // marker.content = '我是第' + (i + 1) + '个Marker'; - marker.setMap(this.map) - - AMap.event.addListener(marker, 'click', () => { - infoWindow.open(this.map, marker.getPosition()); - console.log(222,marker) - setTimeout(() => { - this.renderer2.listen(this.elementRef.nativeElement.querySelector('#lnglat2container'),'click',(event)=>{ - console.log(111) - }) - }, 0); - - }); - - }); - - var infoWindowContent = - '
    ' + - '' + - '
    ' + - '
    ' + - '经纬度' + - '
    ' + - '' + - '
    ' + - '' + - '
    '; - var infoWindow = new AMap.InfoWindow({ - content: infoWindowContent, - offset: new AMap.Pixel(0, -45) - }); - - // var xxx  =  this.el.nativeElement.querySelector('#lnglat2container') - let yyy = document.getElementById('lnglat2container'); - - }, 0); - } - - getLngLat(){ - console.log(123) - } -} diff --git a/src/app/gis-management/gis-management-routing.module.ts b/src/app/gis-management/gis-management-routing.module.ts deleted file mode 100644 index 599381e..0000000 --- a/src/app/gis-management/gis-management-routing.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { GisLabelingComponent } from './gis-labeling/gis-labeling.component'; - - -const routes: Routes = [ - { path: '', component: GisLabelingComponent }, -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) -export class GisRoutingModule { } diff --git a/src/app/gis-management/gis-management.module.ts b/src/app/gis-management/gis-management.module.ts deleted file mode 100644 index 11bbefe..0000000 --- a/src/app/gis-management/gis-management.module.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { GisLabelingComponent } from './gis-labeling/gis-labeling.component'; - -import {A11yModule} from '@angular/cdk/a11y'; -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {PortalModule} from '@angular/cdk/portal'; -import {ScrollingModule} from '@angular/cdk/scrolling'; -import {CdkStepperModule} from '@angular/cdk/stepper'; -import {CdkTableModule} from '@angular/cdk/table'; -import {CdkTreeModule} from '@angular/cdk/tree'; -import {MatAutocompleteModule} from '@angular/material/autocomplete'; -import {MatBadgeModule} from '@angular/material/badge'; -import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; -import {MatButtonModule} from '@angular/material/button'; -import {MatButtonToggleModule} from '@angular/material/button-toggle'; -import {MatCardModule} from '@angular/material/card'; -import {MatCheckboxModule} from '@angular/material/checkbox'; -import {MatChipsModule} from '@angular/material/chips'; -import {MatStepperModule} from '@angular/material/stepper'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import {MatDialogModule} from '@angular/material/dialog'; -import {MatDividerModule} from '@angular/material/divider'; -import {MatExpansionModule} from '@angular/material/expansion'; -import {MatGridListModule} from '@angular/material/grid-list'; -import {MatIconModule} from '@angular/material/icon'; -import {MatInputModule} from '@angular/material/input'; -import {MatListModule} from '@angular/material/list'; -import {MatMenuModule} from '@angular/material/menu'; -import {MatNativeDateModule, MatRippleModule, MatOption} from '@angular/material/core'; -import {MatPaginatorModule} from '@angular/material/paginator'; -import {MatProgressBarModule} from '@angular/material/progress-bar'; -import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; -import {MatRadioModule} from '@angular/material/radio'; -import {MatSelectModule} from '@angular/material/select'; -import {MatSidenavModule} from '@angular/material/sidenav'; -import {MatSliderModule} from '@angular/material/slider'; -import {MatSlideToggleModule} from '@angular/material/slide-toggle'; -import {MatSnackBarModule} from '@angular/material/snack-bar'; -import {MatSortModule} from '@angular/material/sort'; -import {MatTableModule} from '@angular/material/table'; -import {MatTabsModule} from '@angular/material/tabs'; -import {MatToolbarModule} from '@angular/material/toolbar'; -import {MatTooltipModule} from '@angular/material/tooltip'; -import {MatTreeModule} from '@angular/material/tree'; -import { FormsModule } from '@angular/forms'; -import { GisRoutingModule } from './gis-management-routing.module'; - -@NgModule({ - declarations: [GisLabelingComponent], - imports: [ - CommonModule, - CommonModule, - GisRoutingModule, - A11yModule, - CdkStepperModule, - CdkTableModule, - CdkTreeModule, - DragDropModule, - MatAutocompleteModule, - MatBadgeModule, - MatBottomSheetModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatStepperModule, - MatDatepickerModule, - MatDialogModule, - MatDividerModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - MatTreeModule, - PortalModule, - ScrollingModule, - FormsModule - ] -}) -export class GISManagementModule { } diff --git a/src/app/pages/home2/home2.component.html b/src/app/pages/home2/home2.component.html deleted file mode 100644 index 16e1bb4..0000000 --- a/src/app/pages/home2/home2.component.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -
    -

    数字化预案编制和管理平台

    -
    {{time}}
    -
    -
    -
    -
    -

    单位类型

    -
    - -
    -
    -

    预案状态

    -
    - -
    -
    -

    预案类型

    -
    - -
    -
    -
    -
    -
    -
      -
    • 123
    • -
    • 456
    • -
    -
    -
    -
      -
    • 预案数量
    • -
    • 单位数量
    • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    趋势图

    -
    - -
    -
    -

    玫瑰图

    -
    - -
    -
    -

    柱状图

    -
    - -
    -
    -
    -
    diff --git a/src/app/pages/home2/home2.component.scss b/src/app/pages/home2/home2.component.scss deleted file mode 100644 index 8bae936..0000000 --- a/src/app/pages/home2/home2.component.scss +++ /dev/null @@ -1,247 +0,0 @@ -@font-face { - font-family: electronicFont; - src: url(../../../assets/font/DS-DIGIT.TTF); -} -.contentBox{ - width: 100%; - height: 100%; - background: url(../../../assets/images/bg.jpg) no-repeat top center; - line-height: 1.15; - header{ - position: relative; - height:8%; - min-height: 64px; - background: url(../../../assets/images/head_bg.png) no-repeat; - background-size: 100% 100%; - h1{ - font-size: 28px; - color: #fff; - text-align: center; - line-height: 64px; - - } - .showTime{ - position: absolute; - right: 20px; - line-height: 60px; - color: rgba(255,255,255, $alpha: 0.7); - font-size: 16px; - top: 0; - } - } - .mainbox{ - width: 100%; - height: 92%; - // background-color: pink; - padding: 2px 0 2px 0; - display: flex; - .column{ - flex: 3; - } - .column:nth-child(2){ - flex: 6; - margin: 0 8px 8px 8px; - } - .panel{ - height: 29.8%; - position: relative; - // background-color: red; - border: 1px solid rgba(25,186,139,0.17); - background: url(../../../assets/images/line.png) rgba(255,255,255, $alpha: 0.03); - margin-bottom: 8px; - &::before{ - position: absolute; - top: 0; - left: 0; - content: ""; - width:14px; - height:14px; - border-left: 2px solid #02a6b5; - border-top: 2px solid #02a6b5; - } - &::after{ - position: absolute; - top: 0; - right: 0; - content: ""; - width:14px; - height:14px; - border-right: 2px solid #02a6b5; - border-top: 2px solid #02a6b5; - } - .panel-footer{ - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 14px; - &::before{ - position: absolute; - top: 0; - left: 0; - content: ""; - width:14px; - height:14px; - border-left: 2px solid #02a6b5; - border-bottom: 2px solid #02a6b5; - } - &::after{ - position: absolute; - top: 0; - right: 0; - content: ""; - width:14px; - height:14px; - border-right: 2px solid #02a6b5; - border-bottom: 2px solid #02a6b5; - } - } - h2{ - height: 18px; - color: #fff; - line-height: 18px; - text-align: center; - font-size: 14px; - font-weight: 400; - } - .chart{ - height: 91%; - // background-color: pink; - } - } - .no{ - background: rgba(101,132,226,0.1); - padding: 4px 16px; - height: 10%; - min-height: 100px; - .no-hd{ - position: relative; - border: 1px solid rgba(25,186,139,0.17); - &::before{ - position: absolute; - top: 0; - left: 0; - content: ""; - width:30px; - height:14px; - border-left: 2px solid #02a6b5; - border-top: 2px solid #02a6b5; - } - &::after{ - position: absolute; - bottom: 0; - right: 0; - content: ""; - width:30px; - height:14px; - border-right: 2px solid #02a6b5; - border-bottom: 2px solid #02a6b5; - } - ul{ - display: flex; - li{ - - flex: 1; - line-height: 55px; - font-size: 48px; - color: #ffeb7b; - text-align: center; - font-family: 'electronicFont'; - } - li:nth-child(1){ - position: relative; - &::after{ - position: absolute; - top: 25%; - height: 50%; - right: 0; - content: ""; - width:1px; - background: rgba(255,255,255, $alpha: 0.2); - } - } - } - - } - .no-bd{ - ul{ - display: flex; - padding: 4px 0; - li{ - flex: 1; - text-align: center; - color: rgba(255,255,255, $alpha: 0.7); - font-size: 14px; - line-height: 30px; - } - } - } - } - .map { - position: relative; - margin-top: 12px; - height: 78%; - .map1 { - width: 480px; - height: 480px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: url(../../../assets/images/map.png); - background-size: 100% 100%; - opacity: 0.3; - } - .map2 { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 600px; - height: 600px; - background: url(../../../assets/images/lbx.png); - - animation: rotate1 15s linear infinite; - opacity: 0.6; - background-size: 100% 100%; - } - - .map3 { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - // width: 7.075rem; - // height: 7.075rem; - // background: url(../images/jt.png); - // animation: rotate2 10s linear infinite; - // opacity: 0.6; - background-size: 100% 100%; - } - // .chart { - // position: absolute; - // top: 0; - // left: 0; - // // background-color: pink; - // width: 100%; - // height: 10.125rem; - // } - @keyframes rotate1 { - 0% { - transform: translate(-50%, -50%) rotate(0deg); - }; - 100% { - transform: translate(-50%, -50%) rotate(360deg); - } - } - // @keyframes rotate2 { - // form { - // transform: translate(-50%, -50%) rotate(0deg); - // } - // to { - // transform: translate(-50%, -50%) rotate(-360deg); - // } - // } - } - } -} diff --git a/src/app/pages/home2/home2.component.spec.ts b/src/app/pages/home2/home2.component.spec.ts deleted file mode 100644 index b7d612f..0000000 --- a/src/app/pages/home2/home2.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { Home2Component } from './home2.component'; - -describe('Home2Component', () => { - let component: Home2Component; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ Home2Component ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(Home2Component); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/pages/home2/home2.component.ts b/src/app/pages/home2/home2.component.ts deleted file mode 100644 index a7e4b6d..0000000 --- a/src/app/pages/home2/home2.component.ts +++ /dev/null @@ -1,348 +0,0 @@ -import { Component, OnInit ,ElementRef} from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { HighlightSpanKind } from 'typescript'; - -declare var echarts: any; -declare var westeros: any; -declare var AMap: any; -declare var Loca: any; -@Component({ - selector: 'app-home2', - templateUrl: './home2.component.html', - styleUrls: ['./home2.component.scss'] -}) -export class Home2Component implements OnInit { - - constructor(private http:HttpClient,public element: ElementRef) { } - - unitTypeStatistics:any //单位类型统计 - myUnitTypeChart:any //单位类型统计图表 - unitTypeOption:any = { - title: { - // text: '单位类型统计', - // left: 'center' - }, - tooltip: { - trigger: 'item', - formatter: '占比:
    {b} : {c} ({d}%)' - }, - legend: { - // orient: 'vertical', - // top: 'middle', - bottom: 0, - left: 'center', - data: [] - }, - series: [ - { - type: 'pie', - radius: '65%', - center: ['50%', '50%'], - selectedMode: 'single', - data: [ - ], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] - }; //单位类型数据 - - planStateStatistics //预案状态统计 - myPlanStateChart:any //预案状态统计图表 - planStateOption:any = { - title: { - // text: '预案编制情况统计', - // left: 'center' - }, - tooltip: { - trigger: 'item', - formatter: '占比:
    {b} : {c} ({d}%)' - }, - legend: { - // orient: 'vertical', - // top: 'middle', - bottom: 0, - left: 'center', - data: ['审核通过','已提交','已公开'] - }, - series: [ - { - type: 'pie',//类型为饼图 - radius: '65%', - center: ['50%', '50%'], - selectedMode: 'single', - data: [ - ], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] - }; //预案状态数据 - - planTypeStatistics //各类型预案统计 - myPlanTypeChart:any //各类型预案图表 - planTypeOption:any = { - title: { - // text: '各类型预案情况统计', - // left: 'center' - }, - tooltip: { - trigger: 'item', - formatter: '占比:
    {b} : {c} ({d}%)' - }, - legend: { - // orient: 'vertical', - // top: 'middle', - bottom: 0, - left: 'center', - data: ['卡片预案','二维预案','三维预案','其他预案'] - }, - series: [ - { - type: 'pie', - radius: '65%', - center: ['50%', '50%'], - selectedMode: 'single', - data: [ - ], - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] - }; //预案状态数据 - - trendStatistics //趋势统计 - trendChart:any //趋势图表 - trendOption:any = { - title: { - // text: '预案趋势统计' - }, - tooltip: { - trigger: 'axis' - }, - legend: { - data: ['新增预案', '修改预案'] - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - toolbox: { - feature: { - saveAsImage: {} - } - }, - xAxis: { - type: 'category', - boundaryGap: false, - data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月','十二月'] - }, - yAxis: { - type: 'value' - }, - series: [ - { - name: '新增预案', - type: 'line', - stack: '总量', - data: [] - }, - { - name: '修改预案', - type: 'line', - stack: '总量', - data: [] - } - ] - }; //预案状态数据 - - xxxChart:any - xxxOption:any = { - title: { - // text: '南丁格尔玫瑰图', - // subtext: '纯属虚构', - // left: 'center' - }, - tooltip: { - trigger: 'item', - formatter: '{a}
    {b} : {c} ({d}%)' - }, - legend: { - left: 'center', - top: 'bottom', - data: ['1', '2', '3', '4'] - }, - toolbox: { - show: true, - feature: { - mark: {show: true}, - dataView: {show: true, readOnly: false}, - magicType: { - show: true, - type: ['pie', 'funnel'] - }, - restore: {show: true}, - saveAsImage: {show: true} - } - }, - series: [ - { - name: '面积模式', - type: 'pie', - radius: [30, 110], - // center: ['75%', '50%'], - roseType: 'area', - data: [ - {value: 10, name: '1'}, - {value: 5, name: '2'}, - {value: 15, name: '3'}, - {value: 25, name: '4'} - ] - } - ] - } - - yyyChart:any - yyyOption:any = { - color: ['#3398DB'], - tooltip: { - trigger: 'axis', - axisPointer: { // 坐标轴指示器,坐标轴触发有效 - type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' - } - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - xAxis: [ - { - type: 'category', - data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], - axisTick: { - alignWithLabel: true - } - } - ], - yAxis: [ - { - type: 'value' - } - ], - series: [ - { - name: '直接访问', - type: 'bar', - barWidth: '60%', - data: [10, 52, 200, 334, 390, 330, 220] - } - ] - }; - - t:any - time:any - theme:any //主题风格 - ngOnInit(): void { - // const map = new AMap.Map(this.element.nativeElement.querySelector('#map'), { - // mapStyle: 'amap://styles/1de318cbb8d12c02303a22c550b9ccc9', - // // pitch: 0, - // features: ['bg', 'road'],//地图显示要素 - // zoom: 6, - // center: [116.408075, 39.950187], - // // viewMode: '3D' - // }); - // const layer = new Loca.DistrictLayer({ - // map: map - // }); - // layer.setMap(map); - - - - this.getTime() - setTimeout(() => { - - this.myUnitTypeChart = echarts.init(this.element.nativeElement.querySelector('#unitType'),'westeros'); - this.myPlanStateChart = echarts.init(this.element.nativeElement.querySelector('#planStates') ,'westeros'); - this.myPlanTypeChart = echarts.init(this.element.nativeElement.querySelector('#planType'),'westeros'); - this.trendChart = echarts.init(this.element.nativeElement.querySelector('#trend'),'westeros'); - this.xxxChart = echarts.init(this.element.nativeElement.querySelector('#xxx'),'westeros'); - this.xxxChart.setOption(this.xxxOption); - this.yyyChart = echarts.init(this.element.nativeElement.querySelector('#yyy'),'westeros'); - this.yyyChart.setOption(this.yyyOption); - }, 0); - - - this.chartsSetOption(); - } - getTime():any{ - this.t = setInterval(()=>{ - var dt = new Date(); - var y = dt.getFullYear(); - var mt = dt.getMonth() + 1; - var day = dt.getDate(); - var h = dt.getHours(); //获取时 - var m = dt.getMinutes(); //获取分 - var s = dt.getSeconds(); //获取秒 - this.time = "当前时间:" + y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒"; - }, 1000); //開始运行 - } - chartsSetOption(){ - this.http.get("/api/StatisticsAnalysis").subscribe((data:any)=>{ - //单位类型统计 - this.unitTypeStatistics = data.companyStatistics.buildingTypeStatistics.buildingTypes - this.unitTypeStatistics.forEach(item => { - item.name = item.buildingTypeName - item.value = item.count - // this.unitTypeOption.legend.data.push(item.buildingTypeName) - }); - this.unitTypeOption.series[0].data = this.unitTypeStatistics - this.myUnitTypeChart.setOption(this.unitTypeOption,true); - //预案状态统计 - this.planStateStatistics = data.planStatistics.planningStatistics - this.planStateOption.series[0].data.push({name:'审核通过',value:data.planStatistics.planningStatistics.approvedCount}) - this.planStateOption.series[0].data.push({name:'已提交',value:data.planStatistics.planningStatistics.committedCount}) - this.planStateOption.series[0].data.push({name:'已公开',value:data.planStatistics.planningStatistics.publicCount}) - this.myPlanStateChart.setOption(this.planStateOption,true); - //各类型预案统计 - this.planTypeStatistics = data.planStatistics.planTypeStatistics - this.planTypeOption.series[0].data.push({name:'卡片预案',value:data.planStatistics.planTypeStatistics.planCardCount}) - this.planTypeOption.series[0].data.push({name:'二维预案',value:data.planStatistics.planTypeStatistics.plan2DCount}) - this.planTypeOption.series[0].data.push({name:'三维预案',value:data.planStatistics.planTypeStatistics.plan3DCount}) - this.planTypeOption.series[0].data.push({name:'其他预案',value:data.planStatistics.planTypeStatistics.planOtherCount}) - this.myPlanTypeChart.setOption(this.planTypeOption,true); - //预案趋势图统计 - this.trendStatistics = data.planStatistics.trendStatistics - // this.trendOption.series = [] - this.trendStatistics.added.forEach(item=>{ - this.trendOption.series[0].data.push(item.count) - }) - this.trendStatistics.modified.forEach(item=>{ - this.trendOption.series[1].data.push(item.count) - }) - this.trendChart.setOption(this.trendOption,true); - - }) - } - ngOnDestroy(){ - window.clearInterval(this.t) //清一遍定时器 - } -} diff --git a/src/app/pages/homedetail/homedetail.component.html b/src/app/pages/homedetail/homedetail.component.html deleted file mode 100644 index e379f6d..0000000 --- a/src/app/pages/homedetail/homedetail.component.html +++ /dev/null @@ -1,70 +0,0 @@ -
    - - - -
    -
    -
    -
    重点单位总量
    -
    8,666
    -
    -
    -
    数据采集总量
    -
    999,999
    -
    -
    -
    预案编制总量
    -
    345,678
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    \ No newline at end of file diff --git a/src/app/pages/homedetail/homedetail.component.scss b/src/app/pages/homedetail/homedetail.component.scss deleted file mode 100644 index a5c924a..0000000 --- a/src/app/pages/homedetail/homedetail.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import "../../../assets/css/style.css"; \ No newline at end of file diff --git a/src/app/pages/homedetail/homedetail.component.spec.ts b/src/app/pages/homedetail/homedetail.component.spec.ts deleted file mode 100644 index 4639de2..0000000 --- a/src/app/pages/homedetail/homedetail.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HomedetailComponent } from './homedetail.component'; - -describe('HomedetailComponent', () => { - let component: HomedetailComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ HomedetailComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(HomedetailComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/pages/homedetail/homedetail.component.ts b/src/app/pages/homedetail/homedetail.component.ts deleted file mode 100644 index c46e4a3..0000000 --- a/src/app/pages/homedetail/homedetail.component.ts +++ /dev/null @@ -1,563 +0,0 @@ -import { Component, OnInit ,ViewChild, AfterViewInit,ElementRef,Renderer2 } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { Router,ActivatedRoute } from '@angular/router' -declare var echarts: any; -declare var AMap: any; - -declare var AMapUI: any; - - -@Component({ - selector: 'app-homedetail', - templateUrl: './homedetail.component.html', - styleUrls: ['./homedetail.component.scss'] -}) -export class HomedetailComponent implements OnInit { - - constructor(private http:HttpClient, private render2: Renderer2,public element: ElementRef,private router:Router,private route:ActivatedRoute) { } - - //全队数据采集和预案编制数量统计 - chartQusj:any - chartQusjOption:any = { - - grid: { - top: 50, - left: 30, - right: 20, - bottom: 20, - }, - // 标题 - title: { - text: '全队数据采集和预案编制数量统计', - top: -4, - left:-2 - }, - //图例 - legend: { - top: 0, - right:-2, - // left:3, - data: ['单位预案编制数量', '单位数据采集数量'], - }, - //提示框 - tooltip: { - trigger: 'axis', - }, - // x轴 - xAxis: { - type: 'category', - data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], - boundaryGap: false, - }, - // y轴 - yAxis: { - type: 'value', - name:'个' - }, - // 数据 - series: [ - { - name: '单位预案编制数量', - type: 'line', - data: [38, 42, 46, 40, 35, 30, 38, 38, 42, 46, 40, 35], - // showSymbol: true, - // symbolSize:6, - // smooth: false, - // label: { - // show: true, - // }, - areaStyle: { - color: { - type: 'linear', - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [{ - offset: 0, - color: 'rgba(60,103,195,1)' // 0% 处的颜色 - }, { - offset: 1, - color: 'rgba(0,194,255,.2)' // 100% 处的颜色 - }], - global: false // 缺省为 false - } - } - }, - { - name: '单位数据采集数量', - type: 'line', - data: [28, 12, 66, 50, 25, 40, 48, 12, 66, 50, 25, 40 ], - }, - ], - }; - //预案单位类型统计 - chartYadwlx:any - data02:any = [{ - value: 335, - name: '类型名称1' - }, - { - value: 110, - name: '类型名称2' - }, - { - value: 274, - name: '类型名称3' - }, - { - value: 235, - name: '视频广告' - }, - { - value: 400, - name: '类型名称4' - } - ]; - chartYadwlxOption:any = { - // 标题 - title: { - text: '预案单位类型统计', - left: '15%', - top:0 - }, - //图例 - legend: { - orient: 'vertical', - top: 'center', - right: '0%', - show: false, - formatter: function (name) { - var target; - for (var i = 0, l = this.data02.length; i < l; i++) { - if (this.data02[i].name == name) { - target = this.data02[i].value; - } - } - return name + ' ' + target; - } - }, - //提示框 - tooltip: { - trigger: 'item', - }, - // 数据 - series: [{ - type: 'pie', - center: ['55%', '55%'], - radius: ['25%', '60%'], - roseType:true, - // labelLine: { - // show: true, - // length: 20, - // length2: 0, - // lineStyle: { - // color: '#999', - // width: 1 - // } - // }, - labelLine:{ - lineStyle:{ - color: '#93FCFF' - } - }, - label: { - //formatter: '{hr|}\n{a|{b}}\n{b|{c}}万吨\n{c|{d}%}', - formatter: '{a|{b}}\n{b|{c}}{c|万吨}\n{d|{d}%}', - rich: { - // hr: { - // borderColor: '#999', - // width: '100%', - // borderWidth: 1, - // marginLeft: '-15px', - // marginRight: '-15px', - // height:0 - // }, - a: { - color: '#1F6F9B', - fontSize: 12, - height: 18, - borderColor: '#999', - //marginTop: '65px', - }, - b: { - color: '#fff', - fontSize: 24, - height: 36, - }, - c: { - color: '#fff', - fontSize: 12, - }, - d: { - color: '#fff', - fontSize: 12, - height: 16, - marginLeft: '5px', - }, - }, - }, - data: [{ - value: 335, - name: '类型名称1' - }, - { - value: 110, - name: '类型名称2' - }, - { - value: 274, - name: '类型名称3' - }, - { - value: 235, - name: '类型名称4' - } - ], - }], - }; - // 预案评优排行 - chartYapyph:any - chartYapyphOption:any = { - // 标题 - title: { - text: '预案评优排行', - left:0 - }, - grid: { - left: 30, - right: 0, - }, - //提示框 - tooltip: { - trigger: 'axis', - }, - // x轴 - xAxis: { - type: 'category', - data: ['机构1', '机构2', '机构3', '机构4', '机构5', '机构6', '机构7'] - }, - // y轴 - yAxis: { - type: 'value', - splitLine: { - show: true, - lineStyle: { - color: '#fff' - } - }, - }, - // 数据 - series: [{ - name: '预案评优', - type: 'bar', - data: [320, 302, 301, 234, 390, 330, 320], - label: { - show: false, - position: "top", - formatter: '{c}', - color: "#fff", - }, - itemStyle: { - color: { - type: 'linear', - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [{ - offset: 0, - color: 'rgba(0,220,254,1)' // 0% 处的颜色 - }, { - offset: 1, - color: 'rgba(1,104,191,1)' // 100% 处的颜色 - }], - globalCoord: false // 缺省为 false - }, - } - } - ], - }; - //预案类型统计 - chartYalxtj:any - chartYalxtjOption:any = { - color: ['#FB33C2', '#00CFF0', '#2C3DE0'], - grid: { - top: 50, - left: 30, - right: 20, - bottom: 20, - }, - // 标题 - title: { - text: '预案类型统计', - top: -4, - left: 0 - }, - //图例 - legend: { - top: 0, - data: ['二维预案', '三维预案', '卡片预案'], - icon:'circle', - itemGap: 20, - }, - //提示框 - tooltip: { - trigger: 'axis', - }, - // x轴 - xAxis: { - type: 'category', - data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], - boundaryGap: false, - }, - // y轴 - yAxis: { - type: 'value', - }, - // 数据 - series: [{ - name: '二维预案', - type: 'line', - symbolSize: 0, - smooth:true, - lineStyle:{ - width: 4, - color: { - type: 'linear', - x: 0, - y: 0, - x2: 1, - y2: 0, - colorStops: [{ - offset: 0, - color: 'rgba(254,51,194,0)' // 0% 处的颜色 - }, { - offset: 0.5, - color: 'rgba(254,51,194,1)' // 100% 处的颜色 - }, { - offset: 1, - color: 'rgba(254,51,194,0)' // 100% 处的颜色 - }], - global: false // 缺省为 false - } - }, - data: [38, 42, 46, 40, 35, 30, 38, 42, 46, 40, 35, 30 ], - }, - { - name: '三维预案', - type: 'line', - symbolSize: 0, - smooth:true, - lineStyle:{ - width: 4, - color: { - type: 'linear', - x: 0, - y: 0, - x2: 1, - y2: 0, - colorStops: [{ - offset: 0, - color: 'rgba(14,222,252,0)' // 0% 处的颜色 - }, { - offset: 0.5, - color: 'rgba(0,221,255,1)' // 100% 处的颜色 - }, { - offset: 1, - color: 'rgba(1,255,253,0)' // 100% 处的颜色 - }], - global: false // 缺省为 false - }, - }, - data: [28, 72, 66, 50, 25, 40, 48, 66, 50, 25, 40, 48 ], - }, - { - name: '卡片预案', - type: 'line', - symbolSize: 0, - smooth:true, - lineStyle:{ - width: 4, - color: { - type: 'linear', - x: 0, - y: 0, - x2: 1, - y2: 0, - colorStops: [{ - offset: 0, - color: 'rgba(48,63,240,0)' // 0% 处的颜色 - }, { - offset: 0.5, - color: 'rgba(48,63,240,1)' // 100% 处的颜色 - }, { - offset: 1, - color: 'rgba(48,63,240,0)' // 100% 处的颜色 - }], - global: false // 缺省为 false - }, - }, - data: [28, 112, 166, 150, 125, 140, 48, 28, 112, 166, 150, 125 ], - }, - ], - }; - //地图 - - chartMap:any - chartMapOption:any = { - tooltip: { - show: true, - formatter: function (params) { - return params.name + ':' + params.data['value']; - }, - }, - geo: [{ - show: true, - map: 'chongqing', - zoom: 1, - itemStyle: { - areaColor: '#090C15', - borderColor: '#0584DD', - borderWidth: 2, - shadowColor: 'rgba(5, 132, 221, 1)', - shadowBlur: 1, - shadowOffsetX: 2, - shadowOffsetY: 10, - }, - emphasis: { - label: { - color: '#fff', - }, - itemStyle: { - areaColor: '#0584DD', - } - } - }, - { - show: true, - map: 'chongqing', - label: { - show: true, - color: '#fff', - fontSize: 12, - }, - zoom: 1, - itemStyle: { - areaColor: '#090C15', - borderColor: '#0584DD', - }, - emphasis: { - label: { - color: '#fff', - }, - itemStyle: { - areaColor: '#0584DD', - } - } - } - ] - } - - ngOnInit(): void { - setTimeout(() => { - this.chartQusj = echarts.init(this.element.nativeElement.querySelector('#chartQusj'),'skinUpp'); - this.chartQusj.setOption(this.chartQusjOption); - this.chartYadwlx = echarts.init(this.element.nativeElement.querySelector('#chartYadwlx'),'skinUpp'); - this.chartYadwlx.setOption(this.chartYadwlxOption); - this.chartYapyph = echarts.init(this.element.nativeElement.querySelector('#chartYapyph'),'skinUpp'); - this.chartYapyph.setOption(this.chartYapyphOption); - this.chartYalxtj = echarts.init(this.element.nativeElement.querySelector('#chartYalxtj'),'skinUpp'); - this.chartYalxtj.setOption(this.chartYalxtjOption); - this.chartMap = echarts.init(this.element.nativeElement.querySelector('#chartMap')); - console.log(this.chartMapOption) - this.chartMap.setOption(this.chartMapOption); - this.mapInit() //初始化地图 - }, 0); - console.log(echarts) - } - mapInit () { - - //创建地图 - var map = new AMap.Map('chartMap', { - cursor: 'default', - zooms:[7,10], - mapStyle:"amap://styles/grey", - - }); - - var colors = [ - "#3366cc", "#dc3912", "#ff9900", "#109618", "#990099", "#0099c6", "#dd4477", "#66aa00", - "#b82e2e", "#316395", "#994499", "#22aa99", "#aaaa11", "#6633cc", "#e67300", "#8b0707", - "#651067", "#329262", "#5574a6", "#3b3eac" - ]; - - AMapUI.loadUI(['geo/DistrictExplorer'], (DistrictExplorer)=> { - - //创建一个实例 - var districtExplorer = new DistrictExplorer({ - map: map, - eventSupport: true, //打开事件支持 - }); - - var adcode = this.route.snapshot.queryParams.code; - - districtExplorer.loadAreaNode(adcode, (error, areaNode)=>{ - - //更新地图视野 - map.setBounds(areaNode.getBounds(), null, null, true); - - //清除已有的绘制内容 - districtExplorer.clearFeaturePolygons(); - - //绘制子区域 - districtExplorer.renderSubFeatures(areaNode, (feature, i) => { - // console.log(123,feature,i) - var fillColor = colors[i % colors.length]; - var strokeColor = colors[colors.length - 1 - i % colors.length]; - - return { - cursor: 'default', - bubble: true, - strokeColor: strokeColor, //线颜色 - strokeOpacity: 1, //线透明度 - strokeWeight: 1, //线宽 - fillColor: fillColor, //填充色 - fillOpacity: 0.5, //填充透明度 - }; - }); - - let fillColor2 - if(this.route.snapshot.queryParams.level == 'city'){ - fillColor2 = null - }else{ - fillColor2 = '#329262' - } - // console.log(789,fillColor2) - //绘制父区域 - districtExplorer.renderParentFeature(areaNode, { - cursor: 'default', - bubble: true, - strokeColor: 'black', //线颜色 - strokeOpacity: 1, //线透明度 - strokeWeight: 1, //线宽 - fillColor: fillColor2, //填充色 - fillOpacity: 0.5, //填充透明度 - }); - - }); - districtExplorer.on('featureClick', function(e, feature) { - var props = feature.properties; - // //如果存在子节点 - // // if (props.childrenNum > 0) { - // //切换聚焦区域 - // switch2AreaNode(props.adcode); - // // } - console.log(props) - }); - - - }); - - } -} diff --git a/src/app/pages/lockscreen/lockscreen.component.html b/src/app/pages/lockscreen/lockscreen.component.html deleted file mode 100644 index 77892b0..0000000 --- a/src/app/pages/lockscreen/lockscreen.component.html +++ /dev/null @@ -1,22 +0,0 @@ -
    -
    -
    -

    锁屏

    -
    - - 输入密码 - - lock - -
    -

    - 输入密码以进入 -

    - - -
    -
    -
    diff --git a/src/app/pages/lockscreen/lockscreen.component.scss b/src/app/pages/lockscreen/lockscreen.component.scss deleted file mode 100644 index 041d3ab..0000000 --- a/src/app/pages/lockscreen/lockscreen.component.scss +++ /dev/null @@ -1,111 +0,0 @@ -.pages-lockscreen { - .page-content { - display: inline-block; - width: 400px; - max-width: 100%; - padding: 30px; - } - .avatar { - width: 50px; - height: 50px; - margin: 0 auto; - - img { - border-radius: 50%; - } - - } -} -.layout-full { - position: absolute; - z-index: 0; - width: 100%; - height: 100%; - color: #fff; - font-family: Roboto, sans-serif; - background: url('../../../assets/images/background.jpg'); - &::before { - position: fixed; - top: 0; - left: 0; - z-index: -1; - width: 100%; - height: 100%; - content: ""; - background-position: center top; - background-size: cover; - } - - &::after { - position: fixed; - top: 0; - left: 0; - z-index: -1; - width: 100%; - height: 100%; - content: ""; - background-color: rgba(33, 33, 33, .6); - } - - .page { - position: relative; - height: 100%; - padding: 0; - margin: 0; - background: transparent; - } - -} - - -.auth-box { - - .copyright { - margin-top: 60px; - font-size: 12px; - font-weight: 500; - letter-spacing: 1px; - - p { - margin: 0 0 14px; - } - } - - .social { - mat-icon { - color: #fff; - } - } -} - -.vertical-align { - &::before { - display: inline-block; - height: 100%; - vertical-align: middle; - content: ""; - } - - .vertical-align-middle { - display: inline-block; - vertical-align: middle; - } - -} - -.pages-login { - .page-content { - display: inline-block; - width: 400px; - max-width: 100%; - padding: 30px; - } - -} -.page-content{ - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%,-50%); - text-align: center; -} \ No newline at end of file diff --git a/src/app/pages/lockscreen/lockscreen.component.spec.ts b/src/app/pages/lockscreen/lockscreen.component.spec.ts deleted file mode 100644 index 7f11516..0000000 --- a/src/app/pages/lockscreen/lockscreen.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LockscreenComponent } from './lockscreen.component'; - -describe('LockscreenComponent', () => { - let component: LockscreenComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ LockscreenComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LockscreenComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/pages/lockscreen/lockscreen.component.ts b/src/app/pages/lockscreen/lockscreen.component.ts deleted file mode 100644 index fe3258d..0000000 --- a/src/app/pages/lockscreen/lockscreen.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Router,ActivatedRoute } from '@angular/router' -import {CacheTokenService} from '../../http-interceptors/cache-token.service'//引入服务 -@Component({ - selector: 'app-lockscreen', - templateUrl: './lockscreen.component.html', - styleUrls: ['./lockscreen.component.scss'] -}) -export class LockscreenComponent implements OnInit { - - constructor(private router:Router,private route:ActivatedRoute,private getMenus:CacheTokenService) { } - password = '' - ngOnInit() { - } - - open(){ - if(this.password == "12345678"){ - this.router.navigate(['/ui/enterpriseuser']) - } - } - - - -} diff --git a/src/app/pages/pages-routing.module.ts b/src/app/pages/pages-routing.module.ts index 1024d73..0c4a705 100644 --- a/src/app/pages/pages-routing.module.ts +++ b/src/app/pages/pages-routing.module.ts @@ -1,17 +1,10 @@ import { Routes, RouterModule } from '@angular/router'; import { NgModule } from '@angular/core'; import { PagesComponent } from './pages.component'; -import { PersonaldataComponent } from './personaldata/personaldata.component'; import { HomeComponent } from './home/home.component'; -import { Home2Component } from './home2/home2.component'; -import { HomedetailComponent } from './homedetail/homedetail.component'; - const routes: Routes = [ - { path: '', component: HomeComponent}, - { path: '2', component: Home2Component}, - { path: 'detail', component: HomedetailComponent}, - + { path: '', component: HomeComponent} ]; @NgModule({ diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts index abf0f80..429a055 100644 --- a/src/app/pages/pages.module.ts +++ b/src/app/pages/pages.module.ts @@ -48,17 +48,10 @@ import {MatToolbarModule} from '@angular/material/toolbar'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatTreeModule} from '@angular/material/tree'; import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { PersonaldataComponent } from './personaldata/personaldata.component'; import { RouterModule } from '@angular/router'; -import { LockscreenComponent } from './lockscreen/lockscreen.component'; import { HomeComponent } from './home/home.component'; -import { Home2Component } from './home2/home2.component'; -import { HomedetailComponent } from './homedetail/homedetail.component'; -// import { PagesRoutingModule } from './pages-routing.module'; - - @NgModule({ - declarations: [PagesComponent, LoginComponent, RegisterComponent, LockscreenComponent, HomeComponent, Home2Component, HomedetailComponent], + declarations: [PagesComponent, LoginComponent, RegisterComponent, HomeComponent], imports: [ PagesRoutingModule, @@ -75,7 +68,6 @@ import { HomedetailComponent } from './homedetail/homedetail.component'; MatButtonModule, MatButtonToggleModule, MatCardModule, - MatCheckboxModule, MatChipsModule, MatStepperModule, diff --git a/src/app/pages/personaldata/personaldata.component.html b/src/app/pages/personaldata/personaldata.component.html deleted file mode 100644 index 4e0fb3e..0000000 --- a/src/app/pages/personaldata/personaldata.component.html +++ /dev/null @@ -1,280 +0,0 @@ -
    -
    - - - - 安信科创 - 嘻嘻嘻嘻 -

    - 不要做程序员,要做问题解决者 -

    -
    - - - - -
    - -
    - -
    - 260 - 粉丝 -
    -
    - 180 - 关注 -
    -
    - 2000 - 博客 -
    -
    -
    - - - - - - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - - - -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    -
    -
    - -
    -
    - - - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - - - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - - - -
    -
    -
    -
    - - - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - - - - -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    - -
    - -
    -
    我是假数据 - 我是假数据 -
    - 我是假数据 -
    -
    -
    - 我是假数据 -
    -
    -
    -
    -
    -
    -
    -
    diff --git a/src/app/pages/personaldata/personaldata.component.scss b/src/app/pages/personaldata/personaldata.component.scss deleted file mode 100644 index 674904d..0000000 --- a/src/app/pages/personaldata/personaldata.component.scss +++ /dev/null @@ -1,110 +0,0 @@ - -#xxx{ - display: flex; - justify-content: space-around; -} -.pages-profile { - padding: 30px; - - .profile-card { - padding: 9px; - text-align: center; - font-family: Roboto, sans-serif; - width: 500px; - height: 600px; - mat-card-content { - padding: 40px 15px; - margin: 0; - } - - .mat-card-avatar { - width: 130px; - height: 130px; - margin-bottom: 10px; - } - - .profile-user { - margin: 10px 0; - font-weight: normal; - } - - .profile-job { - margin-bottom: 20px; - color: #9e9e9e; - font-weight: 500; - } - - .profile-introduction { - margin: 0 0 1rem; - color: #757575; - } - - .profile-social { - margin: 25px 0; - - mat-icon { - margin: 0 10px; - color: rgba(66, 66, 66, .4); - } - } - - mat-card-actions { - padding: 10px; - background: #f6f9fd; - } - - .profile-card-footer { - display: flex; - justify-content: space-around; - .profile-stat-count { - display: block; - margin-bottom: 3px; - font-size: 20px; - font-weight: bold; - color: #616161; - - +span { - color: #9e9e9e; - } - } - } - - } - - .profile-board { - padding: 30px; - width: 500px; - mat-list { - padding-bottom: 20px; - } - - mat-list-item { - height: auto; - padding: 25px 0; - margin-left: -16px; - border-bottom: 1px solid #dfe0df; - - .profile-item-content { - padding: 20px 0 0 56px; - line-height: 1.571429; - color: #757575; - white-space: normal; - display: flex; - flex-wrap: wrap; - - img { - width: 100%; - max-width: 220px; - max-height: 150px; - padding: 0 20px 20px 0; - } - } - } - } - - .show-more-btn { - width: 100%; - background-color: #eee; - color: #3949ab; - } -} \ No newline at end of file diff --git a/src/app/pages/personaldata/personaldata.component.spec.ts b/src/app/pages/personaldata/personaldata.component.spec.ts deleted file mode 100644 index cf44bea..0000000 --- a/src/app/pages/personaldata/personaldata.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PersonaldataComponent } from './personaldata.component'; - -describe('PersonaldataComponent', () => { - let component: PersonaldataComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PersonaldataComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PersonaldataComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/pages/personaldata/personaldata.component.ts b/src/app/pages/personaldata/personaldata.component.ts deleted file mode 100644 index 28d9b93..0000000 --- a/src/app/pages/personaldata/personaldata.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-personaldata', - templateUrl: './personaldata.component.html', - styleUrls: ['./personaldata.component.scss'] -}) -export class PersonaldataComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/plan-audit/detachment-level/detachment-level.component.html b/src/app/plan-audit/detachment-level/detachment-level.component.html deleted file mode 100644 index 20ff8cc..0000000 --- a/src/app/plan-audit/detachment-level/detachment-level.component.html +++ /dev/null @@ -1,161 +0,0 @@ -
    -
    -
    -
    - - - - -
    - -
    - - - - - 包含下级 - -
    -
    clear
    - - - -
  • {{node.name}}
  • -
    - - -
  • {{node.name}}
  • -
    -
    -
    - -
    - -
    - - - - - {{unit.name}} - - - -
    - -
    - - - - - {{plan.name}} - - - -
    - -
    - - - - - {{state.name}} - - - -
    - -
    - -
    - - -
    -
    -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位名称{{element.companyName}}预案名称{{element.name}}添加人{{element.creatorName}}添加时间 - {{element.creationTime|date:'yyyy-MM-dd'}} - 预案类型 - - - - - 审核状态 - - - - - 是否公开{{element.openRange}}编制级别 - - - - - 操作 - - - - -
    - - -
    -
    \ No newline at end of file diff --git a/src/app/plan-audit/detachment-level/detachment-level.component.scss b/src/app/plan-audit/detachment-level/detachment-level.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/plan-audit/detachment-level/detachment-level.component.spec.ts b/src/app/plan-audit/detachment-level/detachment-level.component.spec.ts deleted file mode 100644 index 568d65b..0000000 --- a/src/app/plan-audit/detachment-level/detachment-level.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DetachmentLevelComponent } from './detachment-level.component'; - -describe('DetachmentLevelComponent', () => { - let component: DetachmentLevelComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ DetachmentLevelComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DetachmentLevelComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-audit/detachment-level/detachment-level.component.ts b/src/app/plan-audit/detachment-level/detachment-level.component.ts deleted file mode 100644 index 6973614..0000000 --- a/src/app/plan-audit/detachment-level/detachment-level.component.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' - - -export interface Food { - name:string; - value: string; -} -@Component({ - selector: 'app-detachment-level', - templateUrl: './detachment-level.component.html', - styleUrls: ['../plan-audit/plan-audit.component.scss'] -}) -export class DetachmentLevelComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - - organizationName:any //当前单位所属辖区中队名称 - allunittype:any //所有单位类型 - planpatterns:Food[] = [ //预案类型 - {name:"卡片预案",value:"8"}, - {name:"二维预案",value:"1" }, - {name:"三维预案",value:"2" }, - {name:"其他预案",value:"4" },] - passstates:Food[]=[ //审核状态 - {name:"审核中",value:"1"}, - {name:"审核通过",value:"2"}, - {name:"审核退回",value:"4"},] - - displayedColumns: string[] = ['unitname','planname', 'addpeople', 'addtime','plantype','auditstate', 'isopen','preparethelevel','operation']; - tabledataSource:any; //所有预案审核信息 - - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:number = 1; //第几页 - - //查询筛选条件 - CompanyName:any; //单位名称 - selectOrganizationID:any //选中的辖区中队id - selectOrganizationIName:any //选中的辖区中队name - HasChildrenOrganization:boolean = false; //辖区中队是否包含下级 - BuildingTypeId:any; //选中的单位类型 - PlanType:any; //选中的预案类型 - AuditStatus:any = '1'; //选中的审核状态 - PlanLevel:any='2'; //选中的编制级别 - - //分页事件 - chagePage(e){ - this.PageNumber = e.pageIndex + 1 - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '2', - PageNumber: String(this.PageNumber), - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.tabledataSource = data.items - }) - } - - //查询 - onSubmit(e){ - this.getAllPlanAudits() - } - - //重置 - reset () { - this.CompanyName = '' - this.selectOrganizationID = '' - this.selectOrganizationIName = '' - this.HasChildrenOrganization = false - this.BuildingTypeId = '' - this.PlanType = '', - this.AuditStatus = '1', - this.PlanLevel = '2', - this.getAllPlanAudits() - } - - //获取当前所有预案审核 - getAllPlanAudits () { - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '2', - PageNumber: '1', - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.pageEvent.pageIndex = 0 - this.tabledataSource = data.items - }) - } - - ngOnInit(): void { - this.getunitdata(); - this.getOrganizations(); - this.getUnittype(); - this.getAllPlanAudits() - } - - //得到当前账号所属辖区中队名称 - getunitdata(){ - this.http.get("/api/Account/Profiles").subscribe((data:any)=>{ - this.organizationName = data.organizationName - }) - } - - //获得所有辖区中队(处理数据结构) - getOrganizations(){ - let treeData = [] - this.http.get('/api/Organizations').subscribe((data:any)=>{ - data.forEach(element => { - element.children = [] - data.forEach(item => { if (item.parentId == element.id) {element.children.push(item)} }); - }); - if (this.organizationName) { //当前账号有辖区中队时 - data.forEach(element => { - if (element.name===this.organizationName) { - treeData.push(element) - this.dataSource.data = treeData } - }); - } else { //当前账号没有有辖区中队时 - data.forEach(element => { - if (!element.parentId) { - treeData.push(element) - this.dataSource.data = treeData } - }); - } - - }) - } - - //获得所有单位类型 - getUnittype(){ - this.http.get('/api/BuildingTypes/Simple').subscribe(data=>{ - this.allunittype = data - }) - } - - isorganizationbox:boolean = false //辖区中队DIV显隐 - - //打开辖区中队 - openorganizationbox() { - this.isorganizationbox = true - } - - //关闭辖区中队 - closediv(){ - this.isorganizationbox = false - } - - //选择辖区中队时 - add(node) { - this.selectOrganizationID = node.id - this.selectOrganizationIName = node.name - this.isorganizationbox = false - } - - //预案审核 - toExamine (e) { - window.open(`/planAudit/planpass?id=${e.companyId}&companyName=${e.companyName}&auditPlanId=${e.id}&auditStatus=${e.auditStatus}`); - } - - //预案公开 - openReserve (e) { - this.http.put(`/api/PlanAudits/${e.id}/Public`,[]).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('预案公开成功','确定',config); - this.renew() - }) - } - - //预案取消公开 - closeReserve (e) { - this.http.put(`/api/PlanAudits/${e.id}/Unpublic`,[]).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('预案已取消公开','确定',config); - this.renew() - }) - } - - //按查询条件及分页 更新当前页面 - renew () { - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '2', - PageNumber: String(this.PageNumber), - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.tabledataSource = data.items - }) - } - - - -} diff --git a/src/app/plan-audit/plan-audit-routing.module.ts b/src/app/plan-audit/plan-audit-routing.module.ts deleted file mode 100644 index 4069bfa..0000000 --- a/src/app/plan-audit/plan-audit-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import {DetachmentLevelComponent} from './detachment-level/detachment-level.component' -import { PlanAuditComponent } from './plan-audit/plan-audit.component'; -import { PlanPassComponent } from './plan-pass/plan-pass.component'; - -const routes: Routes = [ - { path: 'detachmentLevel', component: DetachmentLevelComponent }, - { path: 'planaudit', component: PlanAuditComponent }, - { path: 'planpass', component: PlanPassComponent }, -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) -export class PlanAuditRoutingModule { } diff --git a/src/app/plan-audit/plan-audit.module.ts b/src/app/plan-audit/plan-audit.module.ts deleted file mode 100644 index c8bbc2a..0000000 --- a/src/app/plan-audit/plan-audit.module.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { PlanAuditRoutingModule } from './plan-audit-routing.module'; -import { DetachmentLevelComponent } from './detachment-level/detachment-level.component'; - -import {A11yModule} from '@angular/cdk/a11y'; -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {PortalModule} from '@angular/cdk/portal'; -import {ScrollingModule} from '@angular/cdk/scrolling'; -import {CdkStepperModule} from '@angular/cdk/stepper'; -import {CdkTableModule} from '@angular/cdk/table'; -import {CdkTreeModule} from '@angular/cdk/tree'; -import {MatAutocompleteModule} from '@angular/material/autocomplete'; -import {MatBadgeModule} from '@angular/material/badge'; -import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; -import {MatButtonModule} from '@angular/material/button'; -import {MatButtonToggleModule} from '@angular/material/button-toggle'; -import {MatCardModule} from '@angular/material/card'; -import {MatCheckboxModule} from '@angular/material/checkbox'; -import {MatChipsModule} from '@angular/material/chips'; -import {MatStepperModule} from '@angular/material/stepper'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import {MatDialogModule} from '@angular/material/dialog'; -import {MatDividerModule} from '@angular/material/divider'; -import {MatExpansionModule} from '@angular/material/expansion'; -import {MatGridListModule} from '@angular/material/grid-list'; -import {MatIconModule} from '@angular/material/icon'; -import {MatInputModule} from '@angular/material/input'; -import {MatListModule} from '@angular/material/list'; -import {MatMenuModule} from '@angular/material/menu'; -import {MatNativeDateModule, MatRippleModule, MatOption} from '@angular/material/core'; -import {MatPaginatorModule} from '@angular/material/paginator'; -import {MatProgressBarModule} from '@angular/material/progress-bar'; -import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; -import {MatRadioModule} from '@angular/material/radio'; -import {MatSelectModule} from '@angular/material/select'; -import {MatSidenavModule} from '@angular/material/sidenav'; -import {MatSliderModule} from '@angular/material/slider'; -import {MatSlideToggleModule} from '@angular/material/slide-toggle'; -import {MatSnackBarModule} from '@angular/material/snack-bar'; -import {MatSortModule} from '@angular/material/sort'; -import {MatTableModule} from '@angular/material/table'; -import {MatTabsModule} from '@angular/material/tabs'; -import {MatToolbarModule} from '@angular/material/toolbar'; -import {MatTooltipModule} from '@angular/material/tooltip'; -import {MatTreeModule} from '@angular/material/tree'; -import { PlanAuditComponent, PlanOpen } from './plan-audit/plan-audit.component'; -import { FormsModule } from '@angular/forms'; -import { PlanPassComponent } from './plan-pass/plan-pass.component'; -import {ViewUnitDetailsPlanComponent} from '../key-unit/view-unit-details-plan/view-unit-details-plan.component' -import {KeyUnitModule} from '../key-unit/key-unit.module' - -@NgModule({ - declarations: [DetachmentLevelComponent, PlanAuditComponent, PlanPassComponent,PlanOpen,], - imports: [ - CommonModule, - PlanAuditRoutingModule, - A11yModule, - CdkStepperModule, - CdkTableModule, - CdkTreeModule, - DragDropModule, - MatAutocompleteModule, - MatBadgeModule, - MatBottomSheetModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatStepperModule, - MatDatepickerModule, - MatDialogModule, - MatDividerModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - MatTreeModule, - PortalModule, - ScrollingModule, - FormsModule, - KeyUnitModule - ] -}) -export class PlanAuditModule { } diff --git a/src/app/plan-audit/plan-audit/plan-audit.component.html b/src/app/plan-audit/plan-audit/plan-audit.component.html deleted file mode 100644 index 75b1a2d..0000000 --- a/src/app/plan-audit/plan-audit/plan-audit.component.html +++ /dev/null @@ -1,173 +0,0 @@ -
    -
    -
    -
    - - - - -
    - -
    - - - - - 包含下级 - -
    -
    clear
    - - - -
  • {{node.name}}
  • -
    - - -
  • {{node.name}}
  • -
    -
    -
    - -
    - -
    - - - - - {{unit.name}} - - - -
    - -
    - - - - - {{plan.name}} - - - -
    - -
    - - - - - {{state.name}} - - - -
    - -
    - - - - - {{level.name}} - - - - 包含下级 -
    - -
    - -
    - - -
    -
    -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位名称{{element.companyName}}预案名称{{element.name}}添加人{{element.creatorName}}添加时间 - {{element.creationTime|date:'yyyy-MM-dd'}} - 预案类型 - - - - - 审核状态 - - - - - 是否公开{{element.openRange}}编制级别 - - - - - 操作 - - - - -
    - - -
    -
    \ No newline at end of file diff --git a/src/app/plan-audit/plan-audit/plan-audit.component.scss b/src/app/plan-audit/plan-audit/plan-audit.component.scss deleted file mode 100644 index 313ca71..0000000 --- a/src/app/plan-audit/plan-audit/plan-audit.component.scss +++ /dev/null @@ -1,83 +0,0 @@ -.header { - width: 100%; - padding: 10px 10px; - box-sizing: border-box; - .queryBox { - box-sizing: border-box; - padding: 5px 25px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - .queryField { - margin: 3px 40px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - } //queryBox - - .ordiv{ //辖区中队 - position: relative; - .organizationbox{ - width:450px; - height: 200px; - background: white; - position: absolute; - top: 48px; - left: 77px; - z-index: 999; - border: 1px solid grey; - overflow-y: auto; - li{ - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - mat-tree-node{ - cursor: pointer; - white-space:pre; - } - mat-tree-node:hover{ - background: rgba(225, 225, 225, 0.8); - } - .closediv{ - z-index: 100; - position: absolute; - right: 0; - top: 0; - width: 30px; - height: 30px; - cursor: pointer; - line-height: 30px; - text-align: center; - } - .closediv:hover{ - background:rgba(225, 225, 225, 0.8); - } - } - } //ordiv - -} //header - -.body{ - .tablebox{ - overflow-y: auto; - table { - width: 100%; - text-align: center; - .cdk-header-cell { text-align: center;} - } - } //tablebox - -} - -textarea { - border-radius: 5px; - padding: 5px; - width: 300px; - height: 100px; - resize: none; -} \ No newline at end of file diff --git a/src/app/plan-audit/plan-audit/plan-audit.component.spec.ts b/src/app/plan-audit/plan-audit/plan-audit.component.spec.ts deleted file mode 100644 index 64d9c20..0000000 --- a/src/app/plan-audit/plan-audit/plan-audit.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PlanAuditComponent } from './plan-audit.component'; - -describe('PlanAuditComponent', () => { - let component: PlanAuditComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PlanAuditComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PlanAuditComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-audit/plan-audit/plan-audit.component.ts b/src/app/plan-audit/plan-audit/plan-audit.component.ts deleted file mode 100644 index fa9e7e9..0000000 --- a/src/app/plan-audit/plan-audit/plan-audit.component.ts +++ /dev/null @@ -1,317 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' - - - -export interface Food { - name:string; - value: string; -} -@Component({ - selector: 'app-plan-audit', - templateUrl: './plan-audit.component.html', - styleUrls: ['./plan-audit.component.scss'] -}) -export class PlanAuditComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - - organizationName:any //当前单位所属辖区中队名称 - allunittype:any //所有单位类型 - preparelevels:Food[] //编制级别 - planpatterns:Food[] = [ //预案类型 - {name:"卡片预案",value:"8"}, - {name:"二维预案",value:"1" }, - {name:"三维预案",value:"2" }, - {name:"其他预案",value:"4" },] - passstates:Food[]=[ //审核状态 - {name:"审核中",value:"1"}, - {name:"审核通过",value:"2"}, - {name:"审核退回",value:"4"},] - - displayedColumns: string[] = ['unitname','planname', 'addpeople', 'addtime','plantype','auditstate', 'isopen','preparethelevel','operation']; - tabledataSource:any; //所有预案审核信息 - - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:number = 1; //第几页 - - //查询筛选条件 - CompanyName:any; //单位名称 - selectOrganizationID:any //选中的辖区中队id - selectOrganizationIName:any //选中的辖区中队name - HasChildrenOrganization:boolean = false; //辖区中队是否包含下级 - BuildingTypeId:any; //选中的单位类型 - PlanType:any; //选中的预案类型 - AuditStatus:any = '1'; //选中的审核状态 - PlanLevel:any; //选中的编制级别 - HasChildrenPlanLevel:boolean = false; //编制级别是否包含下级 - - //分页事件 - chagePage(e){ - this.PageNumber = e.pageIndex + 1 - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '', - HasChildrenPlanLevel: String(this.HasChildrenPlanLevel) || 'false', - PageNumber: String(this.PageNumber), - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.tabledataSource = data.items - }) - } - - //查询 - onSubmit(e){ - this.getAllPlanAudits() - } - - //重置 - reset () { - this.CompanyName = '' - this.selectOrganizationID = '' - this.selectOrganizationIName = '' - this.HasChildrenOrganization = false - this.BuildingTypeId = '' - this.PlanType = '', - this.AuditStatus = '1', - this.PlanLevel = '', - this.HasChildrenPlanLevel = false - this.getAllPlanAudits() - } - - //获取当前所有预案审核 - getAllPlanAudits () { - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '', - HasChildrenPlanLevel: String(this.HasChildrenPlanLevel) || 'false', - PageNumber: '1', - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.pageEvent.pageIndex = 0 - this.tabledataSource = data.items - }) - } - - ngOnInit(): void { - this.getunitdata(); - this.getOrganizations(); - this.getUnittype(); - let level = sessionStorage.getItem("level"); - if(level == "0"){ //如果是总队 - this.preparelevels = [ - {name:"总队",value:"1"}, - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"},] } - if(level == "1"){ //如果是支队 - this.preparelevels = [ - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"},] } - if(level == "2"){ //如果是大队 - this.preparelevels = [ - {name:"大队",value:"4"}, - {name:"中队",value:"8"},] } - if(level == "3"){ //如果是中队 - this.preparelevels = [{name:"中队",value:"8"}] } - - this.getAllPlanAudits() - } - - //得到当前账号所属辖区中队名称 - getunitdata(){ - this.http.get("/api/Account/Profiles").subscribe((data:any)=>{ - this.organizationName = data.organizationName - }) - } - - //获得所有辖区中队(处理数据结构) - getOrganizations(){ - let treeData = [] - this.http.get('/api/Organizations').subscribe((data:any)=>{ - data.forEach(element => { - element.children = [] - data.forEach(item => { if (item.parentId == element.id) {element.children.push(item)} }); - }); - if (this.organizationName) { //当前账号有辖区中队时 - data.forEach(element => { - if (element.name===this.organizationName) { - treeData.push(element) - this.dataSource.data = treeData } - }); - } else { //当前账号没有有辖区中队时 - data.forEach(element => { - if (!element.parentId) { - treeData.push(element) - this.dataSource.data = treeData } - }); - } - - }) - } - - //获得所有单位类型 - getUnittype(){ - this.http.get('/api/BuildingTypes/Simple').subscribe(data=>{ - this.allunittype = data - }) - } - - isorganizationbox:boolean = false //辖区中队DIV显隐 - - //打开辖区中队 - openorganizationbox() { - this.isorganizationbox = true - } - - //关闭辖区中队 - closediv(){ - this.isorganizationbox = false - } - - //选择辖区中队时 - add(node) { - this.selectOrganizationID = node.id - this.selectOrganizationIName = node.name - this.isorganizationbox = false - } - - //预案审核 - toExamine (e) { - window.open(`/planAudit/planpass?id=${e.companyId}&companyName=${e.companyName}&auditPlanId=${e.id}&auditStatus=${e.auditStatus}`); - } - - //预案公开 - openReserve (e) { - this.http.put(`/api/PlanAudits/${e.id}/Public`,[]).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('预案已公开','确定',config); - this.renew() - }) - } - - //预案取消公开 - closeReserve (e) { - this.http.put(`/api/PlanAudits/${e.id}/Unpublic`,[]).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('预案已取消公开','确定',config); - this.renew() - }) - } - - //按查询条件及分页 更新当前页面 - renew () { - let header = { - CompanyName: this.CompanyName || '', - OrganizationId: this.selectOrganizationID || '', - HasChildrenOrganization: String(this.HasChildrenOrganization) || 'false', - BuildingTypeId: this.BuildingTypeId || '', - PlanType: this.PlanType || '', - AuditStatus: this.AuditStatus || '1', - PlanLevel: this.PlanLevel || '', - HasChildrenPlanLevel: String(this.HasChildrenPlanLevel) || 'false', - PageNumber: String(this.PageNumber), - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - this.length = data.totalCount - this.pageSize = data.pageSize - this.tabledataSource = data.items - }) - } - - - -} - - - -@Component({ - selector: 'planopen', - templateUrl: './plan-opendialog.html', - styleUrls: ['./plan-audit.component.scss'] -}) -export class PlanOpen { - - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar,private tree: TreeService, - private route:ActivatedRoute,) {} - - ngOnInit(): void { - - } - - //审核预案 - onSubmit (e) { - e.auditStatus = Number(e.auditStatus) - this.http.put(`/api/PlanAudits/${this.data}`,e).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('审批结果提交成功','确定',config); - this.dialogRef.close(); - }) - } - - //提醒弹窗 - remind () { - let type = this.route.snapshot.queryParams.auditStatus //当前预案审核状态 =2为审核通过时 - if (type==2) { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('预案驳回,公开预案会设置为未公开状态','确定',config); - } - } - - - -} \ No newline at end of file diff --git a/src/app/plan-audit/plan-audit/plan-opendialog.html b/src/app/plan-audit/plan-audit/plan-opendialog.html deleted file mode 100644 index b15f335..0000000 --- a/src/app/plan-audit/plan-audit/plan-opendialog.html +++ /dev/null @@ -1,25 +0,0 @@ -
    审核预案
    -
    -
    - -
    - - - 审批通过 - 审批驳回 - -
    - -
    - - -
    - -
    - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/plan-audit/plan-pass/plan-pass.component.html b/src/app/plan-audit/plan-pass/plan-pass.component.html deleted file mode 100644 index 6131a9e..0000000 --- a/src/app/plan-audit/plan-pass/plan-pass.component.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -
    - -
    - 单位名称: - {{compantData.name?compantData.name : '暂无数据'}} -
    -
    - 辖区中队: - {{compantData.organizationName?compantData.organizationName : '暂无数据'}} -
    -
    - 单位类型: - {{compantData.buildingTypes.length?compantData.buildingTypes[0].name : '暂无数据'}} -
    -
    - 单位地址: - {{compantData.address?compantData.address : '暂无数据'}} -
    -
    - -
    - -
    -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - -
    文件名称{{element.fileName?element.fileName : compantData.name}}上传时间{{element.lastModified | date:'yyyy-MM-dd'}}操作 - - - -
    -
    -
    - -
    -
    - -
    - -
    diff --git a/src/app/plan-audit/plan-pass/plan-pass.component.scss b/src/app/plan-audit/plan-pass/plan-pass.component.scss deleted file mode 100644 index 058dc93..0000000 --- a/src/app/plan-audit/plan-pass/plan-pass.component.scss +++ /dev/null @@ -1,20 +0,0 @@ -.planHeader { - width: 100%; - box-sizing: border-box; - display: flex; - align-items: center; - .planBox { - margin: 0px 30px; - color: black; - :first-child {margin-right: 10px;} - } -} - -.table { - overflow-y: auto; - table { - width: 100%; - text-align: center; - .cdk-header-cell { text-align: center;} - } -} diff --git a/src/app/plan-audit/plan-pass/plan-pass.component.spec.ts b/src/app/plan-audit/plan-pass/plan-pass.component.spec.ts deleted file mode 100644 index 1df6883..0000000 --- a/src/app/plan-audit/plan-pass/plan-pass.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PlanPassComponent } from './plan-pass.component'; - -describe('PlanPassComponent', () => { - let component: PlanPassComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PlanPassComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PlanPassComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-audit/plan-pass/plan-pass.component.ts b/src/app/plan-audit/plan-pass/plan-pass.component.ts deleted file mode 100644 index f853fdb..0000000 --- a/src/app/plan-audit/plan-pass/plan-pass.component.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -import { MatTableDataSource } from '@angular/material/table'; -import { DomSanitizer } from '@angular/platform-browser'; -import {PlanOpen} from '../plan-audit/plan-audit.component' -import {ViewUnitDetailsPlanComponent} from '../../key-unit/view-unit-details-plan/view-unit-details-plan.component' - - - -export interface Food { - name:string; - value: string; -} -@Component({ - selector: 'app-plan-pass', - templateUrl: './plan-pass.component.html', - styleUrls: ['./plan-pass.component.scss'] -}) -export class PlanPassComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog, - public snackBar: MatSnackBar,private sanitizer: DomSanitizer) { } - - type:any //审核按钮是否出现 - ngOnInit(): void { - this.type = this.route.snapshot.queryParams.type - this.getCompanyData() - this.getPlanData() - } - - displayedColumns: string[] = ['filename','addtime','operation']; //表头 - compantData:any = {name:'',organizationName: '', buildingTypes:[{name:''}], address:''}; //当前单位信息 - planData:any; //审核预案信息 - - //获取当前单位信息 - getCompanyData () { - let header = { - CompanyName: this.route.snapshot.queryParams.companyName || '', - PageSize: '100'} - this.http.get('/api/Plans',{params:header}).subscribe((data:any)=>{ - data.items.forEach(element => { - if (element.companyId===this.route.snapshot.queryParams.id) { - this.compantData = element.company - return } }); - - }) - } - - //获取当前单位审核预案的信息 - getPlanData () { - let header = { - CompanyName: this.route.snapshot.queryParams.companyName || '', - AuditStatus: this.route.snapshot.queryParams.auditStatus || '', - PageSize: '100', - } - this.http.get('/api/PlanAudits',{params:header}).subscribe((data:any)=>{ - data.items.forEach(element => { - if (element.id===this.route.snapshot.queryParams.auditPlanId) { - this.planData = element - this.handleData() - return } }); - - }) - } - - planType:any; //展示预案类型 - allFile:any = []; //类型=0时所有文件 - thirdPartyURL:any; //类型=3时网址 - handleData () { - this.planType = this.planData.planMode - let data = this.planData - if (this.planData.planMode==0) { //预案planMode=0时, 下载文件 - data.attachmentUrls.forEach(item => { - this.http.get(`/api/ObjectMetadata/PlanPlatform/${item}`).subscribe((data:any)=>{ - data.isLoading = false - this.allFile.push(data) - this.allFile = new MatTableDataSource(this.allFile) }) - }); - } else if (this.planData.planMode==1) { //预案planMode=1时, 解析文档 - - } else if (this.planData.planMode==2) { //预案planMode=2时, 跳查看页面组件 - sessionStorage.setItem("buildingTypeId", this.compantData.buildingTypes.length? this.compantData.buildingTypes[0].id: undefined); - sessionStorage.setItem("companyId",this.route.snapshot.queryParams.id); - sessionStorage.setItem("planId",this.route.snapshot.queryParams.auditPlanId); - sessionStorage.setItem("editable",'0'); - } else if (this.planData.planMode==3) { //预案planMode=3时, 第三方网址 - this.thirdPartyURL = this.sanitizer.bypassSecurityTrustResourceUrl(data.url) - } - - } - - //预案审核 - toExamine () { - let data = this.route.snapshot.queryParams.auditPlanId - const dialogRef = this.dialog.open(PlanOpen,{data}); - } - - suffix:string; //文件名后缀 - //下载 - download (e) { - e.isLoading = true - let file = e - let fileSize = file.fileLength //下载文件的总大小 - let shardSize = 10 * 1024 * 1024 //文件大小是否大于10MB - this.suffix = this.compantData.name + '.' + (e.objectName.substring(e.objectName.lastIndexOf(".")+1,e.objectName.length)); - - if (file && fileSize<=shardSize) { //<=10MB时直接下载 - this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{responseType: 'blob'},).subscribe(data=>{ - let url = window.URL.createObjectURL(new Blob([data])); //createObjectURL创建一个下载Blob的url地址 - let link = document.createElement("a"); - link.style.display = "none"; - link.href = url; - link.setAttribute("download", e.fileName?e.fileName : this.suffix); - document.body.appendChild(link); - link.click(); - e.isLoading = false - }) - } else if (file && fileSize>shardSize) { //>10MB时分块下载 - this.blockingDownload(e) //分段下载 - } - - } - - //分段下载并合并 - async blockingDownload (e) { - let file = e - let fileSize = file.fileLength //下载文件的总大小 - let shardSize = 3 * 1024 * 1024 //3MB一个分片 - let allSlice = Math.ceil(fileSize / shardSize) //总文件/3MB===共分多少段 - let allFile:any = [] //所有的file分段 - - for (let i=0;i{ - this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{headers:{'range':`bytes= ${start}-${end}`},responseType:'blob'}).subscribe(data=>{ - result(data) }) - }) - allFile.push(result) - e.progress = Number((i/allSlice).toFixed(2))*100 + '%' - - if (allFile.length === allSlice) { //合并文件输出给浏览器 - let url = window.URL.createObjectURL(new Blob(allFile)); //createObjectURL创建一个下载Blob的url地址 - let link = document.createElement("a"); - link.style.display = "none"; - link.href = url; - link.setAttribute("download", e.fileName?e.fileName : this.suffix); - document.body.appendChild(link); - link.click(); - e.isLoading = false - e.progress = '' - } - - } //for循环 - - } - - - -} diff --git a/src/app/plan-management/entry-plan-look/AddPlanone.html b/src/app/plan-management/entry-plan-look/AddPlanone.html deleted file mode 100644 index beaf0d1..0000000 --- a/src/app/plan-management/entry-plan-look/AddPlanone.html +++ /dev/null @@ -1,88 +0,0 @@ -
    -
    - 新建预案 -
    -
    - - - - 填写名称与类型 - - - - -
    - - - - 卡片预案 - 二维预案 - 三维预案 - 其他预案 - - -
    -
    - - -
    - -
    - -
    - 上传预案完成创建 -
    -
    - 预案形式: -
    - - -
    - 本地上传 - - (已上传) -
    -
    - 导入word文档 - -
    -
    - 在线编辑 -
    -
    - 网页地址 - -
    - -
    -
    - -
    - - 上传中... - - -
    -
    - - - -
    -
    - - -
    - -
    -
    - - diff --git a/src/app/plan-management/entry-plan-look/auditresult.html b/src/app/plan-management/entry-plan-look/auditresult.html deleted file mode 100644 index 2c61b7e..0000000 --- a/src/app/plan-management/entry-plan-look/auditresult.html +++ /dev/null @@ -1,18 +0,0 @@ -
    - 审批结果 -
    - -
    -

    预案名称:{{planName}}

    -

    提交时间:{{commitTime| date:'yyyy-MM-dd HH:mm:ss'}}

    -

    发起申请:{{commitOrganizationName }}

    - -

    审批大队:{{auditOrganizationName}}

    -

    审批结果:{{auditResult | auditsatus}}

    -

    审批意见:{{auditOpinion}}

    -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/plan-management/entry-plan-look/changename.html b/src/app/plan-management/entry-plan-look/changename.html deleted file mode 100644 index 5299e45..0000000 --- a/src/app/plan-management/entry-plan-look/changename.html +++ /dev/null @@ -1,16 +0,0 @@ -
    -
    - 更改预案名称 -
    -
    - - - - -
    -
    - - -
    -
    diff --git a/src/app/plan-management/entry-plan-look/downloadFile.html b/src/app/plan-management/entry-plan-look/downloadFile.html deleted file mode 100644 index 8e6b4d4..0000000 --- a/src/app/plan-management/entry-plan-look/downloadFile.html +++ /dev/null @@ -1,20 +0,0 @@ -
    - 选择要下载的文件: - - -
    - insert_drive_file - {{item.fileName ? item.fileName : name2 }} - 文件大小:{{ item.filePige }} M - check_circle -
    - - - -
    - - -
    - - -
    \ No newline at end of file diff --git a/src/app/plan-management/entry-plan-look/entry-plan-look.component.html b/src/app/plan-management/entry-plan-look/entry-plan-look.component.html deleted file mode 100644 index 770bed2..0000000 --- a/src/app/plan-management/entry-plan-look/entry-plan-look.component.html +++ /dev/null @@ -1,95 +0,0 @@ - -
    -
    - 单位名称:{{unitdata.unitname == "null" ? "无" : unitdata.unitname}} -
    -
    - 辖区中队:{{unitdata.organizationName == "null" ? "无" : unitdata.organizationName}} -
    -
    - 单位类型:{{unitdata.unittype == "null" ? "无" : unitdata.unittype}} -
    -
    - 单位地址:{{unitdata.unitaddress == "null" ? "无" : unitdata.unitaddress}} -
    - - 查看详情 -
    - -
    -
    - - -
    - - - {{downloadFileName}} - 下载中... - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    预案名称{{element.name}}添加人{{element.creatorName}}修改时间 - {{element.modifiedTime | date:'yyyy-MM-dd'}} - 预案类型{{element.planType | plantype}}审核状态{{element.auditStatus | auditsatus}}是否公开{{element.openRange}}编制级别{{element.planLevel | planlevel}}操作 - 改名 - 编辑 - 查看 - 下载 - 删除 - 审批结果 - - 提交审核 - 撤销审核 - 操作 - 查看 - 下载 -
    - - -
    -
    \ No newline at end of file diff --git a/src/app/plan-management/entry-plan-look/entry-plan-look.component.scss b/src/app/plan-management/entry-plan-look/entry-plan-look.component.scss deleted file mode 100644 index cadd2d5..0000000 --- a/src/app/plan-management/entry-plan-look/entry-plan-look.component.scss +++ /dev/null @@ -1,117 +0,0 @@ -.header{ - height: 130px; - // border-bottom: 1px solid rgba(0, 0, 0, 0.12); - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - // justify-content:center; - div{ - width: 300px; - height: 30px; - // margin: 0 30px; - margin-left: 80px; - } - // margin-bottom: 30px; -} -.body{ - .btn{ - button{ - width: 80px; - height: 40px; - margin-left: 2%; - } - } - .tablebox{ - table{ - width: 100%; - margin-left: 0%; - margin-top: 15px; - } - mat-paginator{ - width: 100%; - margin-left: 0%; - // margin-top: 30px; - } - } -} -.upbox{ - height: 100px; - margin-bottom: 15px; - mat-radio-group{ - div{ - margin: 10px 0; - } - } -} -.createbtnbox{ - button{ - margin: 0 6px; - } -} -.mat-header-cell{ - text-align: center; -} -.mat-cell{ - text-align: center; - span{ - color: #0000BF; - margin: 0 3px; - cursor: pointer; - } - span:hover{ - text-decoration:underline - } - .grey{ - color: grey; - pointer-events: none; - } -} - -//进度条 -.progressBox{ - line-height: 49px; - height: 49px; - position: relative; - display: inline-block; - width: 100%; - button{ - float: right; - } - .progress{ - display: inline-block; - position: absolute; - width: 500px; - top: 22px; - left: 32px; - } - - .filename{ - display: inline-block; - max-width: 180px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - // margin-left: 160px; - } - -} - - .fileDiv{ - cursor: pointer; - } - .fileDiv:hover{ - background-color: #fafafa; -} -.auditDiv{ - p{ - margin: 8px 0; - margin-left: 16px; - } -} -.btn{ - text-align: center; - button{ - margin: 0 3px; - } -} \ No newline at end of file diff --git a/src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts b/src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts deleted file mode 100644 index 381ed6c..0000000 --- a/src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EntryPlanLookComponent } from './entry-plan-look.component'; - -describe('EntryPlanLookComponent', () => { - let component: EntryPlanLookComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ EntryPlanLookComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(EntryPlanLookComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts b/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts deleted file mode 100644 index 15f9db0..0000000 --- a/src/app/plan-management/entry-plan-look/entry-plan-look.component.ts +++ /dev/null @@ -1,988 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient,HttpHeaders } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -import {FormBuilder, FormGroup, Validators} from '@angular/forms'; -import { async } from '@angular/core/testing'; -@Component({ - selector: 'app-entry-plan-look', - templateUrl: './entry-plan-look.component.html', - styleUrls: ['./entry-plan-look.component.scss'] -}) -export class EntryPlanLookComponent implements OnInit { - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - pageEvent: PageEvent; - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - - displayedColumns: string[] = ['planname', 'addpeople', 'addtime','plantype','auditstate', 'isopen','preparethelevel','operation']; - tabledataSource:any - //分页 - @ViewChild(MatPaginator, {static: true}) - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:any = 1; //第几页 - - unitdata:any = {} - - - - unittypeId:any //单位类型id - - //获取当前单位信息 - compantData:any - getCompanyData () { - let CompanyName = sessionStorage.getItem("companyName") - let header = { - CompanyName: CompanyName || '', - } - this.http.get('/api/Plans',{params:header}).subscribe((data:any)=>{ - data.items.forEach(element => { - if (element.companyId===this.route.snapshot.queryParams.unitId) { - this.compantData = element.company - return } }); - // console.log(123,this.compantData) - this.unitdata.unitname = this.compantData.name - this.unitdata.organizationName = this.compantData.organizationName - this.unitdata.unittype = this.compantData.buildingTypes[0].name - this.unitdata.unitaddress = this.compantData.address - this.unittypeId = this.compantData.buildingTypes[0].id - }) - } - //跳转单位信息 - lookUnitData(){ - window.open(`/keyUnit/viewunitinfo?id=${this.route.snapshot.queryParams.unitId}`) - } - //分页事件 - changePage(e){ - this.PageNumber = e.pageIndex+1 - this.getAllPlanComponents() - } - isoperation:any //判断预案录入 和 审核公开预案 区别变量 - ngOnInit(): void { - this.tabledataSource = [ - ] - // this.getCompanyData() - this.isoperation = this.route.snapshot.queryParams.operation - - - this.unitdata.unitname = this.route.snapshot.queryParams.unitName - this.unitdata.organizationName = this.route.snapshot.queryParams.orName - this.unitdata.unittype = this.route.snapshot.queryParams.unitType - this.unitdata.unitaddress = this.route.snapshot.queryParams.unitAdd - this.companyId = this.route.snapshot.queryParams.unitId - this.unittypeId = this.route.snapshot.queryParams.unitTypeId - this.getAllPlanComponents() - } - //查看预案 - lookPlan(e){ - if(e.planMode == 0){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('本地文件,请下载查看','确定',config); - } - if(e.planMode == 1){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('查看导入word文件','确定',config); - } - if(e.planMode == 2){ //如果是在线编辑 - let id = e.id - sessionStorage.setItem("planId",id) - sessionStorage.setItem("companyId",this.companyId) - sessionStorage.setItem("buildingTypeId",this.unittypeId) - sessionStorage.setItem("editable","0") - sessionStorage.setItem("planName",e.name) - let companyId = sessionStorage.getItem("companyId") - window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); - } - if(e.planMode == 3){ //如果是跳转网页 - sessionStorage.setItem("url",e.url) - window.open(`/planManagement/webLook`) - } - } - //编辑预案 - editPlan(e){ - if(e.planMode == 2){ //如果是在线编辑 - let id = e.id - sessionStorage.setItem("planId",id) - sessionStorage.setItem("companyId",this.companyId) - sessionStorage.setItem("buildingTypeId",this.unittypeId) - sessionStorage.setItem("editable","1") - sessionStorage.setItem("planName",e.name) - let companyId = sessionStorage.getItem("companyId") - window.open(`/keyUnit/editunitinfo?id=${companyId}`); - } - } - allPlanComponents:any //所有预案组件 - companyId : any //新建预案需要使用的id - planId : any //统一预案id - //改名 - changeName(element){ - // console.log(element) - const dialogRef = this.dialog.open(ChangeName, { - data: {element:element} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('修改成功!','确定',config); - this.getAllPlanComponents() - } - } - ); - } - //获得所有预案组件 - getAllPlanComponents(){ - let pagetype = this.route.snapshot.queryParams.pagetype - let unitId = this.route.snapshot.queryParams.unitId - let paramsData:any - if(pagetype == 'entryplan'){ - paramsData = { - companyId:unitId, - pageNumber: this.PageNumber, - pageSize: "", - sort: "" - } - } - if(pagetype == 'passplan'){ - paramsData = { - companyId:unitId, - pageNumber: this.PageNumber, - pageSize: "", - AuditStatus:2, - sort: "" - } - } - if(pagetype == 'openplan'){ - paramsData = { - companyId:unitId, - pageNumber: this.PageNumber, - pageSize: "", - IsPublic:true, - sort: "" - } - } - - this.http.get("/api/PlanComponents",{params:paramsData}).subscribe((data:any)=>{ - this.length = data.totalCount - this.allPlanComponents = data - this.tabledataSource = data.items - }) - } - //删除预案 - deletePlan(plandata){ - - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - if(plandata.planType == 1){//如果删除的是二维预案 - this.http.delete(`/api/PlanComponents2D/${plandata.id}`).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('删除成功!','确定',config); - this.getAllPlanComponents() - }) - }else{ - this.http.delete(`/api/PlanComponents/${plandata.id}`).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('删除成功!','确定',config); - this.getAllPlanComponents() - }) - } - } - - } - //提交审核 - submitAudit(element){ - // console.log(element) - if(element.auditStatus == 4){ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('审核退回的预案需要修改后方可再次提交审核!','确定',config); - }else{ - if(element.planType == 1){//如果提交审核的是二维预案 - this.http.put(`/api/PlanComponents2D/${element.id}/Commit`,"").subscribe(data=>{ - this.getAllPlanComponents() - }) - }else{ - this.http.put(`/api/PlanComponents/${element.id}/Commit`,"").subscribe(data=>{ - this.getAllPlanComponents() - }) - } - } - - } - //撤销审核 - cancelAudit(element){ - if(element.planType == 1){//如果撤销审核的是二维预案 - this.http.put(`/api/PlanComponents2D/${element.id}/Cancel`,"").subscribe(data=>{ - this.getAllPlanComponents() - }) - }else{ - this.http.put(`/api/PlanComponents/${element.id}/Cancel`,"").subscribe(data=>{ - this.getAllPlanComponents() - }) - } - } - //审核结果 - auditResult(element){ - // console.log(element) - const dialogRef = this.dialog.open(AuditResult, { - width:"395px", - data: {element:element} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - - } - } - ); - - } - - //下载↓ - selectDownloadFile:any; //选择下载的文件 - download:any; //下载文件元数据 - downloadisLoading:boolean = false; //进度条loading加载 - downloadProgress:number=0; //进度条进度 - downloadFileName:any - - - uploadFileLonging:any - //读取下载文件信息 - readFile (element) { - this.uploadFileLonging = element - const dialogRef = this.dialog.open(DownloadFile, { - width:"435px", - // height:"410px", - data: {fileUrls:element.attachmentUrls,compantData:this.unitdata.unitname,element:element} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.downloadFileName = data.fileName - this.download = data - this.downloadFile() - } - } - ); - } - - //初始化下载 - downloadFile () { - this.downloadProgress = 0 - let file = this.download - let fileSize = file.fileLength//下载文件的总大小 - let shardSize = 10 * 1024 * 1024 //文件大小是否大于10MB - - if (file && fileSize<=shardSize) { //<=10MB时直接下载 - this.downloadisLoading = true - // this.setFileLoading() - this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{responseType: 'blob'},).subscribe(data=>{ - - let url = window.URL.createObjectURL(new Blob([data])); //createObjectURL创建一个下载Blob的url地址 - let link = document.createElement("a"); - link.style.display = "none"; - link.href = url; - - let suffix = file.objectName.substring(file.objectName.lastIndexOf(".")+1,file.objectName.length) ; - link.setAttribute("download", file.fileName ? file.fileName : this.unitdata.unitname + "-" +this.uploadFileLonging.name + "." + suffix); - document.body.appendChild(link); - link.click(); - this.downloadisLoading = false - // this.setFileLoading() - }) - } else if (file && fileSize > shardSize) { //>10MB时分块下载 - this.blockingDownload() //分段下载 - this.downloadisLoading = true - // this.setFileLoading() - } - - } - - //分段下载并合并 - async blockingDownload () { - let file = this.download - let fileSize = file.fileLength //下载文件的总大小 - let shardSize = 3 * 1024 * 1024 //3MB一个分片 - let allSlice = Math.ceil(fileSize / shardSize) //总文件/3MB===共分多少段 - let allFile:any = [] //所有的file分段 - - for (let i=0;i{ - this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{headers:{'range':`bytes= ${start}-${end}`},responseType:'blob'}).subscribe(data=>{ - result(data) }) - }) - allFile.push(result) - this.downloadProgress = Number((i/allSlice).toFixed(2))*100 - - if (allFile.length === allSlice) { //合并文件输出给浏览器 - let url = window.URL.createObjectURL(new Blob(allFile)); //createObjectURL创建一个下载Blob的url地址 - let link = document.createElement("a"); - link.style.display = "none"; - link.href = url; - let suffix = file.objectName.substring(file.objectName.lastIndexOf(".")+1,file.objectName.length) ; - link.setAttribute("download", file.fileName ? file.fileName : this.unitdata.unitname + "-" +this.uploadFileLonging.name + "." + suffix); - document.body.appendChild(link); - link.click(); - // this.downloadProgress = 0 - this.downloadisLoading = false - // this.setFileLoading() - } - - } //for循环 - - } - - //取消分块下载 - cancelDowload () { - } - - //封装函数设置当前文件loading状态 - setFileLoading () { - // let id = this.selectDownloadFile.id - // this.CADList.forEach(element => { - // if (element.id === id) { element.loading = !element.loading } - // }); - } - - //新建预案弹出框 - addplan () { - const dialogRef = this.dialog.open(AddPlanone, { - width:"585px", - height:"410px", - data: {companyId:this.companyId}, - disableClose:true - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - // this.route.snapshot.queryParams.id = data.planId - this.planId = data.planId - this.getAllPlanComponents() - if(data.planMode == 2){//如果添加方式为在线编辑 - sessionStorage.setItem("planId",data.id); - sessionStorage.setItem("companyId",this.companyId) - sessionStorage.setItem("buildingTypeId",this.unittypeId) - sessionStorage.setItem("editable","1") - let companyId = sessionStorage.getItem("companyId") - window.open(`/keyUnit/editunitinfo?id=${companyId}`); - } - } - } - ); - } -} - - -//新建预案弹出框 -@Component({ - selector: 'AddPlanone', - templateUrl: './AddPlanone.html', - styleUrls: ['./entry-plan-look.component.scss'] -}) -export class AddPlanone { - isLinear = true; //是否为线性步进器 - firstFormGroup: FormGroup; - secondFormGroup: FormGroup; - constructor(private _formBuilder: FormBuilder,private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar,private tree: TreeService) {} - - - - ngOnInit(): void { - - this.firstFormGroup = this._formBuilder.group({ - firstCtrlone: ['', Validators.required], - firstCtrltwo: ['', Validators.required] - }); - this.secondFormGroup = this._formBuilder.group({ - secondCtrl: ['', Validators.required] - }); - - } - onNoClick(): void { - this.dialogRef.close(); - } - isup:boolean = true //上传input框是否显示 - isweb:boolean = false //web输入框是否显示 - isinput:boolean = false //导入是否显示 - defaultisshow = '0' //默认显示上传input框 - //选择radio - selectradio(e){ - if(e.value == "0"){ //如果点击本地上传 - this.isup = true - this.isinput = false - this.isweb = false - this.webaddress = "" - } - if(e.value == "1"){ //如果点击导入word文档 - this.isinput = true - this.isup = false - this.isweb = false - this.webaddress = "" - } - if(e.value == "2"){ //如果点击在线编辑 - this.isinput = false - this.isup = false - this.isweb = false - this.webaddress = "" - } - if(e.value == "3"){ //如果点击输入网址 - this.isweb = true - this.isup = false - this.isinput = false - this.webaddress = "" - } - } - file2:any = null; //导入的文件 - webaddress:any = "" //输入的网页地址 - - //上传文件↓ - file:any; //上传的文件 - fileName:any; //上传文件name - uploadisLoading:boolean = false; //进度条loading加载 - uploadProgress:number=0; //进度条进度 - objectName:any; //上传对象名 - uploadId:any; //上传分块上传事件编号 - //上传文件input - filechange(e){ - this.file = e.target.files[0] || null //上传的文件 - // this.startUploading() -} - - //上传文件 - startUploading (planType) { - - let file = this.file || null //获取上传的文件 - let fileSize = file.size || null //上传文件的总大小 - let shardSize = 5 * 1024 * 1024 //5MB一个分片 - - if (file && fileSize<=shardSize) { //上传文件<=5MB时 - let formData = new FormData() - formData.append("file",file) - this.http.post(`/api/Objects/PlanPlatform/${this.data.companyId}/2D`,formData).subscribe((data:any)=>{ - this.objectName = data.objectName - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('上传成功!','确定',config); - this.uploadover = true - - let level = sessionStorage.getItem("level") - // console.log(level) - let PlanLevel - if(level == '0'){ - PlanLevel = 1 - } - if(level == '1'){ - PlanLevel = 2 - } - if(level == '2'){ - PlanLevel = 4 - } - if(level == '3'){ - PlanLevel = 8 - } - let uploadUrl - if(planType == "非二维"){ - uploadUrl = "/api/PlanComponents" - }else{ - uploadUrl = "/api/PlanComponents2D" - } - if(this.uploadover){ - this.http.post(uploadUrl,{ - id: "", - name: this.selectedPLanName, - planType:Number(this.selectedPLanType), - planMode: Number(this.defaultisshow), - planLevel: PlanLevel, - url: "", - attachmentUrls: [`${this.objectName}`] - },{params:{ - companyId : this.data.companyId - }}).subscribe(data=>{ - this.dialogRef.close(data); - }) - }else{ - console.log("上传出错") - } - - }) - } else if (file && fileSize>shardSize) { //上传文件>5MB时,分块上传 - let data = {filename: file.name} - this.uploadisLoading = true - this.http.post(`/api/NewMultipartUpload/PlanPlatform/${this.data.companyId}/2D`,{},{params:data}).subscribe((data:any)=>{ //初始化分段上传 - this.objectName = data.objectName - this.uploadId = data.uploadId - this.subsectionUploading(planType) - }) - } - - } - - PartNumberETag:any=[]; //每次返回需要保存的信息 - //开始分段上传 - async subsectionUploading (planType) { - let file = this.file || null //获取上传的文件 - let fileSize = file.size || null //上传文件的总大小 - let shardSize = 5 * 1024 * 1024 //5MB一个分片 - let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段 向上取整 - - for (let i = 0;i < allSlice;i++) { //循环分段上传 - let start = i * shardSize //切割文件开始位置 - let end = Math.min(fileSize, start + shardSize); //切割文件结束位置 (对比取小数) - let formData = new FormData() - formData.append("file",file.slice(start, end)) - - //同步写法实现异步调用 - let result = await new Promise((resolve, reject) => { - // await 需要后面返回一个 promise 对象 - this.http.post(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}&partNumber=${i+1}`,formData).subscribe((data:any)=>{ - let msg = { - "partNumber":data.partNumber || null, - "eTag": data.eTag || null} - resolve(msg) // 调用 promise 内置方法处理成功 - }) - }); - this.PartNumberETag.push(result) - this.uploadProgress = Number((i/allSlice).toFixed(2))*100 - - if (this.PartNumberETag.length === allSlice) { - this.uploadProgress = 100 - this.endUploading(planType)} - }//for循环 - - } - uploadover:any = false //上传完成之后提示 - //完成分块上传 - endUploading (planType) { - let data = this.PartNumberETag - let paramsData = {uploadId:this.uploadId} - this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${this.objectName}`,data,{params:paramsData}).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('上传成功!','确定',config); - this.uploadProgress = 0; - this.uploadisLoading = false - this.PartNumberETag =[] //清空保存返回的信息 - this.uploadover = true - let level = sessionStorage.getItem("level") - // console.log(level) - let PlanLevel - if(level == '0'){ - PlanLevel = 1 - } - if(level == '1'){ - PlanLevel = 2 - } - if(level == '2'){ - PlanLevel = 4 - } - if(level == '3'){ - PlanLevel = 8 - } - let uploadUrl - if(planType == "非二维"){ - uploadUrl = "/api/PlanComponents" - }else{ - uploadUrl = "/api/PlanComponents2D" - } - if(this.uploadover){//如果上次成功了才创建 - this.http.post(uploadUrl,{ - id: "", - name: this.selectedPLanName, - planType:Number(this.selectedPLanType), - planMode: Number(this.defaultisshow), - planLevel: PlanLevel, - url: "", - attachmentUrls: [`${this.objectName}`] - },{params:{ - companyId : this.data.companyId - }}).subscribe(data=>{ - this.dialogRef.close(data); - }) - }else{ - console.log("上传出错!") - } - - }) - } - - //取消分块上传 - cancel () { - this.http.delete(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}`).subscribe(data=>{ - this.uploadProgress = 0; - this.uploadisLoading= false; - (document.getElementById('uploadFile')).value = null - this.PartNumberETag =[] //清空保存返回的信息 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('取消上传成功!','确定',config); - this.uploadover = false - this.file = null - }) - } - - - - - - //导入word文件 - fileInput(e){ - this.file2 = e.target.files[0] - } - //点击下一步 - selectedPLanType:any//所选预案类型 - selectedPLanName:any//所选预案名称 - localup:boolean = false //本地上传 - inputword:boolean = false //导入文档 - onlineedit:boolean = false //在线编辑 - website:boolean = false //网页地址 - next(formdata){ - // console.log(formdata.value.firstCtrltwo) - this.selectedPLanName = formdata.value.firstCtrlone - this.selectedPLanType = formdata.value.firstCtrltwo - if(formdata.value.firstCtrltwo=='8'){ //如果是卡片预案 - this.localup = true - this.inputword = true - this.onlineedit = false - this.website = false - } - if(formdata.value.firstCtrltwo=='1'){ //如果是2D预案 - this.localup = true - this.inputword = false - this.onlineedit = true - this.website = true - } - if(formdata.value.firstCtrltwo=='2' || formdata.value.firstCtrltwo=='4'){ - this.localup = true - this.inputword = false - this.onlineedit = false - this.website = true - } - } - closediv(){ - this.cancel(); - this.dialogRef.close(); - } - - - - // 提交创建 - onSubmit(value){ - let level = sessionStorage.getItem("level") - // console.log(level) - let PlanLevel - if(level == '0'){ - PlanLevel = 1 - } - if(level == '1'){ - PlanLevel = 2 - } - if(level == '2'){ - PlanLevel = 4 - } - if(level == '3'){ - PlanLevel = 8 - } - if(this.selectedPLanType != "1"){//如果创建的不是二维预案 - if(this.defaultisshow == '0' && this.file == null){ //如果是本地上传 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先上传文件','确定',config); - } - if(this.defaultisshow == '0' && this.file){ //如果是本地上传并且有文件 - //先上传成功 - this.startUploading("非二维") - - //再创建预案 - // this.http.post("/api/PlanComponents",{ - // id: "", - // name: this.selectedPLanName, - // planType:Number(this.selectedPLanType), - // planMode: Number(this.defaultisshow), - // planLevel: PlanLevel, - // url: "", - // attachmentUrls: [`${this.objectName}`] - // },{params:{ - // companyId : this.data.companyId - // }}).subscribe(data=>{ - // this.dialogRef.close(data); - // }) - } - - if(this.defaultisshow == '1'){//如果是导入则很复杂 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('暂不支持导入','确定',config); - } - if(this.defaultisshow == '3' && (this.webaddress == "" || this.webaddress == null)){ //如果是填写网址 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先输入网址','确定',config); - } - if(this.defaultisshow == '3' && this.webaddress){ //如果是填写网址 - // console.log(99999,this.selectedPLanType) - var reg = new RegExp('(http|https):\/\/([\w.!@#$%^&*()_+-=])*\s*') - if(reg.test(this.webaddress)){ - let body = { - id: "", - name: this.selectedPLanName, - planType:Number(this.selectedPLanType), - planMode: Number(this.defaultisshow), - planLevel: PlanLevel, - url: this.webaddress, - attachmentUrls: null - } - this.http.post("/api/PlanComponents",body,{params:{ - companyId : this.data.companyId - }}).subscribe(data=>{ - // console.log("创建成功") - this.dialogRef.close(data); - }) - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确网址格式,需以http://或者https://开头的正确网址','确定',config); - } - - } - }else{ //如果创建的是二维预案 - if(this.defaultisshow == '0' && this.file == null){ //如果是本地上传 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先上传文件','确定',config); - } - if(this.defaultisshow == '0' && this.file){ - this.startUploading("二维") - // let body = { - // id: "", - // name: this.selectedPLanName, - // planType:Number(this.selectedPLanType), - // planMode: Number(this.defaultisshow), - // planLevel: PlanLevel, - // url: "", - // attachmentUrls: [`${this.objectName}`] - // } - // this.http.post("/api/PlanComponents2D",body,{params:{ - // companyId : this.data.companyId - // }}).subscribe(data=>{ - // // console.log("创建成功") - // this.dialogRef.close(data); - // }) - } - if(this.defaultisshow == '2'){ //如果是在线编辑------>跳转编制工具 - let body = { - id: "", - name: this.selectedPLanName, - planType:Number(this.selectedPLanType), - planMode: Number(this.defaultisshow), - planLevel: PlanLevel, - url: "", - attachmentUrls: null - } - this.http.post("/api/PlanComponents2D",body,{params:{ - companyId : this.data.companyId - }}).subscribe(data=>{ - // console.log("创建成功") - this.dialogRef.close(data); - }) - } - if(this.defaultisshow == '3' && (this.webaddress == "" || this.webaddress == null)){ //如果是填写网址 - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先输入网址','确定',config); - } - if(this.defaultisshow == '3' && this.webaddress){ //如果是填写网址 - - var reg = new RegExp('(http|https):\/\/([\w.!@#$%^&*()_+-=])*\s*') - if(reg.test(this.webaddress)){ - let body = { - id: "", - name: this.selectedPLanName, - planType:Number(this.selectedPLanType), - planMode: Number(this.defaultisshow), - planLevel: PlanLevel, - url: this.webaddress, - attachmentUrls: null - } - this.http.post("/api/PlanComponents2D",body,{params:{ - companyId : this.data.companyId - }}).subscribe(data=>{ - // console.log("创建成功") - this.dialogRef.close(data); - }) - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请填写正确网址格式,需以http://或者https://开头的正确网址','确定',config); - } - - - - } - - } - } - onSubmit2(value){ - console.log(this.webaddress) - var reg = new RegExp('(http|https):\/\/([\w.!@#$%^&*()_+-=])*\s*') -  console.log(reg.test(this.webaddress)) - } - -} - - - - - - - -//下载文件弹出框 -@Component({ - selector: 'downloadfile', - templateUrl: './downloadFile.html', - styleUrls: ['./entry-plan-look.component.scss'] -}) -export class DownloadFile { - - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {} - fileUrls:any //当前预案附件地址 - fileDatas:any = [] - selectedFileIndex : any = 0 - selectedFileData : any - - name2:any //如果真实姓名为空时 - ngOnInit(): void { - this.name2 = this.data.element.name - this.fileUrls = this.data.fileUrls - this.fileUrls.forEach(item=>{ - this.http.get('/api/ObjectMetadata/PlanPlatform/'+item).subscribe((data:any)=>{ - data.filePige = (data.fileLength / (1024*1024)).toFixed(2) - this.fileDatas.push(data) - this.selectedFileData = data - }) - }) - } - onNoClick(): void { - this.dialogRef.close(); - } - - confirm(){ - this.dialogRef.close(this.selectedFileData); - } - - //点击想要下载的文件 - addurl(item,key){ - console.log(item,key) - this.selectedFileIndex = key - this.selectedFileData = item - } -} - - -//审批结果弹出框 -@Component({ - selector: 'auditresult', - templateUrl: './auditresult.html', - styleUrls: ['./entry-plan-look.component.scss'] -}) -export class AuditResult { - - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {} - - planName:any = this.data.element.name - commitTime:any = this.data.element.committedTime - commitOrganizationName:any = this.data.element.committerOrganizationName - - auditOrganizationName:any = this.data.element.auditorOrganizationName - auditResult:any = this.data.element.auditStatus - auditOpinion:any = this.data.element.auditOpinion - ngOnInit(): void { - - } - onNoClick(): void { - this.dialogRef.close(); - } -} - - -//改名弹出框 -@Component({ - selector: 'changename', - templateUrl: './changename.html', - styleUrls: ['./entry-plan-look.component.scss'] -}) -export class ChangeName { - - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {} - planName:any//预案名称 - ngOnInit(): void { - this.planName = this.data.element.name - } - onNoClick(): void { - this.dialogRef.close(); - } - onSubmit(value){ - let headers = new HttpHeaders({ - 'Content-Type': 'text/json' - }); - let options = { - headers - }; - let body = JSON.stringify(value.name); - if(this.data.element.planType == 1){//如果是二维预案 - this.http.put(`/api/PlanComponents2D/${this.data.element.id}`,body,options).subscribe(data=>{ - this.dialogRef.close("success"); - }) - }else{ - this.http.put(`/api/PlanComponents/${this.data.element.id}`,body,options).subscribe(data=>{ - this.dialogRef.close("success"); - }) - } - } -} \ No newline at end of file diff --git a/src/app/plan-management/entry-plan/entry-plan.component.html b/src/app/plan-management/entry-plan/entry-plan.component.html deleted file mode 100644 index ab20216..0000000 --- a/src/app/plan-management/entry-plan/entry-plan.component.html +++ /dev/null @@ -1,258 +0,0 @@ -
    -
    -
    - -
    - - - - -
    - -
    - - - - - 包含下级 -
    -
    clear
    - - - -
  • {{node.name}}
  • -
    - - -
  • {{node.name}}
  • -
    -
    -
    -
    - -
    - - - - - {{unit.name}} - - - -
    -
    - - - - 卡片预案 - 二维预案 - 三维预案 - 其他预案 - - -
    -
    - - - - 未提交审核 - 审核中 - 审核通过 - 审核退回 - - -
    -
    - - - - - {{item.name}} - - - 包含下级 -
    - -
    -
    - - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位名称{{element.company.name}}辖区中队{{element.company.organizationName}}单位类型{{element.company.buildingTypes[0] ? element.company.buildingTypes[0].name : ''}}预案类型{{element.planType}}审核状态{{element.auditStatus}}编制级别{{element.planLevel}}操作 - 查看预案 -
    - - - - -
    -
    \ No newline at end of file diff --git a/src/app/plan-management/entry-plan/entry-plan.component.scss b/src/app/plan-management/entry-plan/entry-plan.component.scss deleted file mode 100644 index 42c10c8..0000000 --- a/src/app/plan-management/entry-plan/entry-plan.component.scss +++ /dev/null @@ -1,231 +0,0 @@ -.header { - width: 100%; - padding: 12px 10px; -// margin-bottom: 10px; - box-sizing: border-box; -// border-bottom: 1px solid black; - .queryBox { - box-sizing: border-box; - padding: 5px 25px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - // justify-content:center; - .queryField { - margin: 3px 40px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - - } //queryBox - .ordiv{ - position: relative; - - .organizationbox{ - width:450px; - height: 200px; - background: white; - position: absolute; - top: 48px; - left: 77px; - z-index: 999; - border: 1px solid grey; - overflow-y: auto; - background-color: #fafafa; - li{ - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - background-color: #fafafa; - } - mat-tree-node{ - cursor: pointer; - white-space:pre; - background-color: #fafafa; - } - mat-tree-node:hover{ - background: rgba(225, 225, 225, 0.8); - li{ - background: rgba(225, 225, 225, 0.8); - } - } - .closediv{ - z-index: 100; - position: absolute; - right: 0; - top: 0; - width: 30px; - height: 30px; - cursor: pointer; - line-height: 30px; - text-align: center; - } - .closediv:hover{ - background:rgba(225, 225, 225, 0.8); - } - } - - } -} -.body{ - .buttonbox{ - padding-left: 50px; - button{ - margin:0 10px - } - } - .tablebox{ - table{ - width: 100%; - margin-left: 0%; - margin-top:15px; - } - mat-paginator{ - width: 100%; - margin-left: 0%; - // margin-top: 30px; - } - } -} - -.mat-header-cell{ - text-align: center; -} -.mat-cell{ - text-align: center; - span{ - color:red; - margin: 0 3px; - cursor: pointer; - } - span:hover{ - text-decoration:underline - } - .grey{ - color: grey; - pointer-events: none; - } -} - -//完整度 -.integrityDiv{ - width: 180px; - height: 30px; - background-color: #e2e7ee; - margin: 0 auto; - position: relative; - .integrityNum{ - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - color: black; - font-weight: 800; - font-size: 15px; - cursor: default; - } - .integrityColorDiv{ - height: 100%; - // background-color: #32cd32; - } - .integrityDetails{ - position: absolute; - display: none; - width: 350px; - height:280px; - border: 1px solid rgba(0, 0, 0, 0.22); - background-color: white; - .integrityDetailsTop{ - width: 100%; - height: 23px; - line-height:23px; - border-bottom: 1px solid rgba(0, 0, 0, 0.22); - margin-bottom: 1px; - font-size: 14px; - span{ - display: inline-block; - text-align: center; - font-weight: 800; - margin: 0; - color: black; - } - .span1{ - width: 25%; - } - .span2{ - width: 60%; - } - .span3{ - width: 15%; - } - } - .integrityDetailsBody{ - ul{ - li{ - width: 100%; - height: 23px; - line-height: 23px; - margin: 3px 0; - div{ - float: left; - font-size: 13px; - } - .name{ - width: 25%; - height: 100%; - } - .colorDiv{ - width: 60%; - height: 100%; - position: relative; - .colorDivBac{ - width: 90%; - height: 100%; - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%,-50%); - background-color: #dfe5ec; - border-radius: 5px; - .colorDivCon{ - border-radius: 5px; - height: 100%; - background-color: #2398f1; - } - } - span{ - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%,-50%); - color: black; - font-weight: 600; - } - } - .number{ - width: 15%; - height: 100%; - } - } - } - - } - } - .bottomposition{ - top: 2px; - left: 188px; - } - .topposition{ - top: -252px; - left: 188px; - } -} -.integrityDiv:hover{ - .integrityDetails{ - display: block; - } -} \ No newline at end of file diff --git a/src/app/plan-management/entry-plan/entry-plan.component.spec.ts b/src/app/plan-management/entry-plan/entry-plan.component.spec.ts deleted file mode 100644 index 8b4ef5a..0000000 --- a/src/app/plan-management/entry-plan/entry-plan.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EntryPlanComponent } from './entry-plan.component'; - -describe('EntryPlanComponent', () => { - let component: EntryPlanComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ EntryPlanComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(EntryPlanComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-management/entry-plan/entry-plan.component.ts b/src/app/plan-management/entry-plan/entry-plan.component.ts deleted file mode 100644 index 4695575..0000000 --- a/src/app/plan-management/entry-plan/entry-plan.component.ts +++ /dev/null @@ -1,256 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -import { ConstantPool } from '@angular/compiler'; -@Component({ - selector: 'app-entry-plan', - templateUrl: './entry-plan.component.html', - styleUrls: ['./entry-plan.component.scss'] -}) -export class EntryPlanComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:any; //第几页 - - - - displayedColumns: string[] = ['unitname', 'jurisdictionsquadron', 'unittype','plantype', 'passstate','projectlevel','operation']; - allorganizations:any //所有组织机构 - allunittype:any //所有单位类型 - tabledataSource:any //表格数据 - - organizationName:any //当前单位组织机构名称 - preparelevels:any - integrity(width){ - let style:any = {} - style.width = width*10 +'%'; - if(width < 4){ - style.background = "#FF4500"; - } - if(width >= 4 && width <7){ - style.background = "#FF8C00"; - } - if(width >= 7){ - style.background = "#32cd32"; - } - return style - } - integrityDetails(width,zong){ - let style:any = {} - style.width = (width/zong)*100 +'%'; - return style - } - ngOnInit(): void { - this.getunitdata(); - this.getOrganizations(); - this.getUnittype(); - this.getAllPlanInfo(); - let level = sessionStorage.getItem("level"); - if(level == "0"){//如果是总队 - this.preparelevels = [ - {name:"总队",value:"1"}, - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "1"){//如果是支队 - this.preparelevels = [ - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "2"){//如果是大队 - this.preparelevels = [ - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "3"){//如果是中队 - this.preparelevels = [ - {name:"中队",value:"8"} - ] - } - } - - - - //得到当前单位信息 - getunitdata(){ - this.http.get("/api/Account/Profiles").subscribe( - (data:any)=>{ - this.organizationName = data.organizationName - } - ) - } - treedata:any //组织机构树型数据 - newArr:any = [] - newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 - //得到当前单位所在组织机构的tree型数据 - getpresentOrganization(){ - this.newallorganizations = this.allorganizations - - this.newallorganizations.forEach(item => { - item.children = [] - this.newallorganizations.forEach(element => { - if(element.parentId == item.id){ - item.children.push(element) - } - }); - }); - this.http.get("/api/Account/Profiles").subscribe( - (data:any)=>{ - this.organizationName = data.organizationName - if(this.organizationName){ - this.newallorganizations.forEach(item => { - if(item.name == this.organizationName){ - this.dataSource.data = [item] - } - }); - }else{ - this.dataSource.data = this.tree.toTree(this.treedata); - } - } - ) - - - } - //获得所有组织机构 - getOrganizations(){ - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.allorganizations = data - this.treedata = this.tree.toTree(data); - this.getpresentOrganization(); - } - ) - } - //获得所有单位类型 - getUnittype(){ - this.http.get('/api/BuildingTypes/Simple').subscribe( - data=>{ - this.allunittype = data - } - ) - } - - //分页事件 - chagePage(e){ - this.PageNumber = e.pageIndex+1 - this.getAllPlanInfo(); - } - //辖区中队div是否显示 - isorganizationbox:boolean = false - //点击辖区中队树,将选择的辖区中队添加到变量 - add(node) { - this.isorganizationbox = false - this.js = node.name - this.jsId = node.id - } - //打开辖区中队隐藏框 - openorganizationbox() { - this.isorganizationbox = true - } - //关闭出现的组织机构div - closediv(){ - this.isorganizationbox = false - } - - allPlanInfo:any //存储所有预案信息 - //获得所有预案信息 - getAllPlanInfo(){ - let paramsdata:any = { - CompanyName: this.companyName || '', - OrganizationId: this.jsId || '', - HasChildrenOrganization:this.jscheck || '', - BuildingTypeId: this.unittype || '', - PlanType: this.reservePlanType || '', - AuditStatus: this.toExamine || '', - PlanLevel: this.preparelevel || '', - HasChildrenPlanLevel: this.plcheck || '', - PageNumber: this.PageNumber || '1', - PageSize: this.pageSizeOptions[0], - Sort: '' - } - this.http.get("/api/Plans",{params:paramsdata}).subscribe((data:any)=>{ - - this.length = data.totalCount - this.allPlanInfo = data - - this.tabledataSource = data.items - }) - } - - - //查看预案按钮跳转 - routerTo(element){ - // console.log(element) - sessionStorage.setItem("companyName",element.company.name) - window.open(`/planManagement/entryPlandetail?unitId=${element.company.id}&unitTypeId=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].id}&operation=true&pagetype=entryplan&unitName=${element.company.name}&orName=${element.company.organizationName}&unitType=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].name}&unitAdd=${element.company.address}`); - } - //查询 - onSubmit (value) { - this.PageNumber = 1 - this.pageEvent.pageIndex = 0 - this.getAllPlanInfo(); - } - - companyName:any //单位名称 - js:any //所选组织机构 - jsId:any //所选组织机构的id - jscheck:boolean //所选组织机构勾选框 - unittype:any //单位类型 - reservePlanType:any //预案类型 - toExamine:any //审核状态 - preparelevel:any //编制级别 - plcheck:boolean //编制级别勾选框 - //重置 - reset(){ - this.companyName = '' - this.js = '' - this.jsId = '' - this.jscheck = false - this.unittype = '' - this.reservePlanType = '' - this.toExamine = '' - this.preparelevel = '' - this.plcheck = false - //重新获取初始化列表 - // console.log(this.pageEvent) - this.pageEvent.pageIndex = 0 - this.PageNumber = 1 - this.getAllPlanInfo(); - } -} diff --git a/src/app/plan-management/open-plan/open-plan.component.html b/src/app/plan-management/open-plan/open-plan.component.html deleted file mode 100644 index 308e872..0000000 --- a/src/app/plan-management/open-plan/open-plan.component.html +++ /dev/null @@ -1,109 +0,0 @@ -
    -
    -
    -
    - - - - -
    - - -
    - - - - - {{unit.name}} - - - -
    -
    - - - - 卡片预案 - 二维预案 - 三维预案 - 其他预案 - - -
    - -
    - - - - - {{item.name}} - - - 包含下级 -
    - -
    -
    - - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位名称{{element.companyName}}预案名称{{element.name}}添加人{{element.creatorName}}添加时间{{element.creationTime | date:'yyyy-MM-dd'}}预案类型{{element.planType | plantype}}审核状态{{element.auditStatus | auditsatus}}是否公开{{element.openRange}}编制级别{{element.planLevel | planlevel}}操作 - 查看预案 -
    - - - -
    -
    - diff --git a/src/app/plan-management/open-plan/open-plan.component.scss b/src/app/plan-management/open-plan/open-plan.component.scss deleted file mode 100644 index dc9f5c8..0000000 --- a/src/app/plan-management/open-plan/open-plan.component.scss +++ /dev/null @@ -1,84 +0,0 @@ -.header { - width: 100%; - padding: 12px 10px; - // margin-bottom: 10px; - box-sizing: border-box; - // border-bottom: 1px solid black; - .queryBox { - box-sizing: border-box; - padding: 5px 25px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - // justify-content:center; - .queryField { - margin: 3px 40px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - - } //queryBox - .ordiv{ - position: relative; - - .organizationbox{ - width:450px; - height: 200px; - background: white; - position: absolute; - top: 48px; - left: 77px; - z-index: 999; - border: 1px solid grey; - overflow-y: auto; - li{ - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - mat-tree-node{ - cursor: pointer; - white-space:pre; - } - mat-tree-node:hover{ - background: rgba(225, 225, 225, 0.8); - } - .closediv{ - z-index: 100; - position: absolute; - right: 0; - top: 0; - width: 30px; - height: 30px; - cursor: pointer; - line-height: 30px; - text-align: center; - } - .closediv:hover{ - background:rgba(225, 225, 225, 0.8); - } - } - - } - } - .body{ - .buttonbox{ - padding-left: 50px; - button{ - margin:0 10px - } - } - .tablebox{ - table{ - width: 100%; - margin-top: 15px; - } - mat-paginator{ - width: 100%; - } - } - } \ No newline at end of file diff --git a/src/app/plan-management/open-plan/open-plan.component.spec.ts b/src/app/plan-management/open-plan/open-plan.component.spec.ts deleted file mode 100644 index 9a257ca..0000000 --- a/src/app/plan-management/open-plan/open-plan.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { OpenPlanComponent } from './open-plan.component'; - -describe('OpenPlanComponent', () => { - let component: OpenPlanComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ OpenPlanComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(OpenPlanComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-management/open-plan/open-plan.component.ts b/src/app/plan-management/open-plan/open-plan.component.ts deleted file mode 100644 index c7e4e3c..0000000 --- a/src/app/plan-management/open-plan/open-plan.component.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -@Component({ - selector: 'app-open-plan', - templateUrl: './open-plan.component.html', - styleUrls: ['./open-plan.component.scss'] -}) -export class OpenPlanComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:any; //第几页 - - displayedColumns: string[] = ['unitname', 'planname', 'addpeople','addtime','plantype','auditStatus','openRange','projectlevel','operation']; - - allorganizations:any //所有组织机构 - allunittype:any //所有单位类型 - tabledataSource:any //表格数据 - preparelevels:any //编制级别 - ngOnInit(): void { - this.getunitdata(); - this.getOrganizations(); - this.getUnittype(); - this.getAllPlanInfo(); //得到所有单位 - let level = sessionStorage.getItem("level"); - if(level == "0"){//如果是总队 - this.preparelevels = [ - {name:"总队",value:"1"}, - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "1"){//如果是支队 - this.preparelevels = [ - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "2"){//如果是大队 - this.preparelevels = [ - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "3"){//如果是中队 - this.preparelevels = [ - {name:"中队",value:"8"} - ] - } - } - - - allPlanInfo:any //存储所有预案信息 - //获得所有预案信息 - getAllPlanInfo(){ - let paramsdata:any = { - CompanyName: this.companyName || '', - OrganizationId: '', - HasChildrenOrganization:'', - BuildingTypeId: this.unittype || '', - PlanType: this.reservePlanType || '', - AuditStatus:'', //审核状态 - PlanLevel: this.preparelevel || '', - HasChildrenPlanLevel: this.plcheck || '', - PageNumber: this.PageNumber || '1', - PageSize: this.pageSizeOptions[0], - Sort: '' - } - this.http.get("/api/PublicPlans",{params:paramsdata}).subscribe((data:any)=>{ - // console.log(111,data) - this.length = data.totalCount - this.allPlanInfo = data - this.tabledataSource = data.items - }) - } - //得到当前单位信息 - getunitdata(){ - this.http.get("/api/Account/Profiles").subscribe( - (data:any)=>{ - this.organizationName = data.organizationName - } - ) - } - organizationName:any //当前单位组织机构名称 - treedata:any //组织机构树型数据 - newArr:any = [] - newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 - //得到当前单位所在组织机构的tree型数据 - getpresentOrganization(){ - this.newallorganizations = this.allorganizations - this.newallorganizations.forEach(item => { - item.children = [] - this.newallorganizations.forEach(element => { - if(element.parentId == item.id){ - item.children.push(element) - } - }); - }); - // console.log(666,this.organizationName) - if(this.organizationName){ - this.newallorganizations.forEach(item => { - if(item.name == this.organizationName){ - this.dataSource.data = [item] - } - }); - }else{ - this.dataSource.data = this.tree.toTree(this.treedata); - } - - } - //获得所有组织机构 - getOrganizations(){ - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.allorganizations = data - this.treedata = this.tree.toTree(data); - this.getpresentOrganization(); - } - ) - } - - //获得所有单位类型 - getUnittype(){ - this.http.get('/api/BuildingTypes/Simple').subscribe( - data=>{ - this.allunittype = data - } - ) - } - //跳转查看预案页面 - routerTo(element){ - sessionStorage.setItem("companyName",element.companyName) - // window.open(`/planManagement/entryPlandetail?unitId=${element.company.id}&unitTypeId=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].id}&operation=false&pagetype=openplan&unitName=${element.company.name}&orName=${element.company.organizationName}&unitType=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].name}&unitAdd=${element.company.address}`); - window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6`); - - } - //分页事件 - chagePage(e){ - this.PageNumber = e.pageIndex+1 - this.getAllPlanInfo(); - } - //辖区中队div是否显示 - isorganizationbox:boolean = false - //点击辖区中队树,将选择的辖区中队添加到变量 - add(node) { - this.isorganizationbox = false - this.js = node.name - this.jsId = node.id - } - //关闭辖区中队隐藏框 - closeorganizationbox() { - this.isorganizationbox = false - } - //打开辖区中队隐藏框 - openorganizationbox() { - this.isorganizationbox = true - } - //关闭出现的组织机构div - closediv(){ - this.isorganizationbox = false - } - //查询 - onSubmit (e) { - this.getAllPlanInfo() - } - companyName:any //单位名称 - js:any //所选组织机构 - jsId:any //所选组织机构的id - // jscheck:boolean //所选组织机构勾选框 - unittype:any //单位类型 - reservePlanType:any //预案类型 - preparelevel:any //编制级别 - plcheck:boolean //编制级别勾选框 - //重置 - reset(){ - this.companyName = '' - // this.js = '' - // this.jsId = '' - // this.jscheck = false - this.unittype = '' - this.reservePlanType = '' - this.preparelevel = '' - this.plcheck = false - //重新获取初始化列表 - this.pageEvent.pageIndex = 0 - this.PageNumber = 1 - this.getAllPlanInfo(); - - } -} diff --git a/src/app/plan-management/pass-plan/pass-plan.component.html b/src/app/plan-management/pass-plan/pass-plan.component.html deleted file mode 100644 index c62fb6d..0000000 --- a/src/app/plan-management/pass-plan/pass-plan.component.html +++ /dev/null @@ -1,142 +0,0 @@ -
    -
    -
    - -
    - - - - -
    - -
    - - - - - 包含下级 -
    -
    clear
    - - - -
  • {{node.name}}
  • -
    - - -
  • {{node.name}}
  • -
    -
    -
    -
    - -
    - - - - - {{unit.name}} - - - -
    -
    - - - - 卡片预案 - 二维预案 - 三维预案 - 其他预案 - - -
    - -
    - - - - - {{item.name}} - - - 包含下级 -
    - -
    -
    - - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    单位名称{{element.companyName}}预案名称{{element.name}}添加人{{element.creatorName}}添加时间{{element.creationTime | date:'yyyy-MM-dd'}}预案类型{{element.planType | plantype}}审核状态{{element.auditStatus | auditsatus}}是否公开{{element.openRange}}编制级别{{element.planLevel | planlevel}}操作 - 查看预案 -
    - - - -
    -
    - - \ No newline at end of file diff --git a/src/app/plan-management/pass-plan/pass-plan.component.scss b/src/app/plan-management/pass-plan/pass-plan.component.scss deleted file mode 100644 index 3769e5e..0000000 --- a/src/app/plan-management/pass-plan/pass-plan.component.scss +++ /dev/null @@ -1,92 +0,0 @@ -.header { - width: 100%; - padding: 12px 10px; - box-sizing: border-box; - .queryBox { - box-sizing: border-box; - padding: 5px 25px; - // margin-left: 50px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items:center; - // justify-content:center; - .queryField { - margin: 3px 40px; - input { - width: 180px; - height: 22px; - line-height: 22px; - border-radius: 3px;} - } - - } //queryBox - .ordiv{ - position: relative; - .organizationbox{ - width:450px; - height: 200px; - background: white; - position: absolute; - top: 48px; - left: 77px; - z-index: 999; - border: 1px solid grey; - overflow-y: auto; - li{ - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - mat-tree-node{ - cursor: pointer; - white-space:pre; - } - mat-tree-node:hover{ - background: rgba(225, 225, 225, 0.8); - } - .closediv{ - z-index: 100; - position: absolute; - right: 0; - top: 0; - width: 30px; - height: 30px; - cursor: pointer; - line-height: 30px; - text-align: center; - } - .closediv:hover{ - background:rgba(225, 225, 225, 0.8); - } - } - - } - } - .body{ - .buttonbox{ - padding-left: 50px; - button{ - margin:0 10px - } - } - .tablebox{ - table{ - width: 100%; - // margin-left: 2%; - margin-top: 15px; - } - mat-paginator{ - width:100%; - // margin-left: 2%; - // margin-top: 30px; - } - } - } - .mat-header-cell{ - text-align: center; -} -.mat-cell{ - text-align: center; - -} \ No newline at end of file diff --git a/src/app/plan-management/pass-plan/pass-plan.component.spec.ts b/src/app/plan-management/pass-plan/pass-plan.component.spec.ts deleted file mode 100644 index 7ee8878..0000000 --- a/src/app/plan-management/pass-plan/pass-plan.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PassPlanComponent } from './pass-plan.component'; - -describe('PassPlanComponent', () => { - let component: PassPlanComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PassPlanComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PassPlanComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-management/pass-plan/pass-plan.component.ts b/src/app/plan-management/pass-plan/pass-plan.component.ts deleted file mode 100644 index db73627..0000000 --- a/src/app/plan-management/pass-plan/pass-plan.component.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { Component, OnInit, ViewChild, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http' -import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { MatPaginator } from '@angular/material/paginator'; -import { FlatTreeControl } from '@angular/cdk/tree'; -import { FormControl } from '@angular/forms'; -import { Router,ActivatedRoute } from '@angular/router' -import { PageEvent } from '@angular/material/paginator'; -import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; -import { TreeService } from '../../http-interceptors/tree.service' -@Component({ - selector: 'app-pass-plan', - templateUrl: './pass-plan.component.html', - styleUrls: ['./pass-plan.component.scss'] -}) -export class PassPlanComponent implements OnInit { - - constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - private _transformer = (node, level: number) => { //初始化tree - return { - expandable: !!node.children && node.children.length > 0, - name: node.name, - level: level, - id: node.id, - parentId: node.parentId, - children: node.children - }; - } - treeControl = new FlatTreeControl(node => node.level, node => node.expandable); - treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); - dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); - myControl = new FormControl(); - hasChild = (_: number, node: any) => node.expandable; - //分页 - @ViewChild(MatPaginator, {static: true}) - pageEvent: PageEvent; - paginator: MatPaginator; - length:any; //共多少条数据 - pageSize:any; //每页条数 - pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:any; //第几页 - - displayedColumns: string[] = ['unitname', 'planname', 'addpeople','addtime','plantype','auditStatus','openRange','projectlevel','operation']; - allorganizations:any //所有组织机构 - allunittype:any //所有单位类型 - tabledataSource:any //表格数据 - - preparelevels:any - ngOnInit(): void { - this.getunitdata(); - this.getOrganizations(); - this.getUnittype(); - this.getAllPlanInfo(); - let level = sessionStorage.getItem("level"); - if(level == "0"){//如果是总队 - this.preparelevels = [ - {name:"总队",value:"1"}, - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "1"){//如果是支队 - this.preparelevels = [ - {name:"支队",value:"2"}, - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "2"){//如果是大队 - this.preparelevels = [ - {name:"大队",value:"4"}, - {name:"中队",value:"8"} - ] - } - if(level == "3"){//如果是中队 - this.preparelevels = [ - {name:"中队",value:"8"} - ] - } - } - - allPlanInfo:any //存储所有预案信息 - //获得所有预案信息 - getAllPlanInfo(){ - let paramsdata:any = { - CompanyName: this.companyName || '', - OrganizationId: this.jsId || '', - HasChildrenOrganization:this.jscheck || '', - BuildingTypeId: this.unittype || '', - PlanType: this.reservePlanType || '', - AuditStatus:'', //审核状态 - PlanLevel: this.preparelevel || '', - HasChildrenPlanLevel: this.plcheck || '', - PageNumber: this.PageNumber || '1', - PageSize: this.pageSizeOptions[0], - Sort: '' - } - this.http.get("/api/ApprovedPlans",{params:paramsdata}).subscribe((data:any)=>{ - this.length = data.totalCount - this.allPlanInfo = data - this.tabledataSource = data.items - }) - } - - - - - //得到当前单位信息 - getunitdata(){ - this.http.get("/api/Account/Profiles").subscribe( - (data:any)=>{ - this.organizationName = data.organizationName - } - ) - } - organizationName:any //当前单位组织机构名称 - treedata:any //组织机构树型数据 - newArr:any = [] - newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 - //得到当前单位所在组织机构的tree型数据 - getpresentOrganization(){ - this.newallorganizations = this.allorganizations - this.newallorganizations.forEach(item => { - item.children = [] - this.newallorganizations.forEach(element => { - if(element.parentId == item.id){ - item.children.push(element) - } - }); - }); - this.http.get("/api/Account/Profiles").subscribe( - (data:any)=>{ - this.organizationName = data.organizationName - if(this.organizationName){ - this.newallorganizations.forEach(item => { - if(item.name == this.organizationName){ - this.dataSource.data = [item] - } - }); - }else{ - this.dataSource.data = this.tree.toTree(this.treedata); - } - } - ) - - } - //获得所有组织机构 - getOrganizations(){ - this.http.get('/api/Organizations').subscribe( - (data:any)=>{ - this.allorganizations = data - this.treedata = this.tree.toTree(data); - this.getpresentOrganization(); - } - ) - } - - //获得所有单位类型 - getUnittype(){ - this.http.get('/api/BuildingTypes/Simple').subscribe( - data=>{ - this.allunittype = data - } - ) - } - //跳转查看预案页面 - routerTo(element){ - sessionStorage.setItem("companyName",element.companyName) - // window.open(`/planManagement/entryPlandetail?unitId=${element.company.id}&unitTypeId=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].id}&operation=false&pagetype=passplan&unitName=${element.company.name}&orName=${element.company.organizationName}&unitType=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].name}&unitAdd=${element.company.address}`); - window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6`); - - } - //分页事件 - chagePage(e){ - this.PageNumber = e.pageIndex+1 - this.getAllPlanInfo(); - } - - //辖区中队div是否显示 - isorganizationbox:boolean = false - //点击辖区中队树,将选择的辖区中队添加到变量 - add(node) { - this.isorganizationbox = false - this.js = node.name - this.jsId = node.id - } - //关闭辖区中队隐藏框 - closeorganizationbox() { - this.isorganizationbox = false - } - //打开辖区中队隐藏框 - openorganizationbox() { - this.isorganizationbox = true - } - //关闭出现的组织机构div - closediv(){ - this.isorganizationbox = false - } - //查询 - onSubmit (e) { - this.PageNumber = 1 - this.pageEvent.pageIndex = 0 - this.getAllPlanInfo(); - } - companyName:any //单位名称 - js:any //所选组织机构 - jsId:any //所选组织机构的id - jscheck:boolean //所选组织机构勾选框 - unittype:any //单位类型 - reservePlanType:any //预案类型 - preparelevel:any //编制级别 - plcheck:boolean //编制级别勾选框 - //重置 - reset(){ - this.companyName = '' - this.js = '' - this.jsId = '' - this.jscheck = false - this.unittype = '' - this.reservePlanType = '' - this.preparelevel = '' - this.plcheck = false - //重新获取初始化列表 - this.pageEvent.pageIndex = 0 - this.PageNumber = 1 - this.getAllPlanInfo(); - - } -} diff --git a/src/app/plan-management/plan-management-routing.module.ts b/src/app/plan-management/plan-management-routing.module.ts deleted file mode 100644 index 7fa18ab..0000000 --- a/src/app/plan-management/plan-management-routing.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import {EntryPlanComponent} from './entry-plan/entry-plan.component' -import { OpenPlanComponent } from './open-plan/open-plan.component'; -import { PassPlanComponent } from './pass-plan/pass-plan.component'; -import { EntryPlanLookComponent } from './entry-plan-look/entry-plan-look.component'; -import { WebLookComponent } from './web-look/web-look.component'; - -const routes: Routes = [ - { path: 'entryPlan', component: EntryPlanComponent}, - { path: 'openPlan', component: OpenPlanComponent}, - { path: 'passPlan', component: PassPlanComponent}, - { path: 'entryPlandetail', component: EntryPlanLookComponent}, - { path: 'webLook', component: WebLookComponent} -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) -export class PlanManagementRoutingModule { } diff --git a/src/app/plan-management/plan-management.module.ts b/src/app/plan-management/plan-management.module.ts deleted file mode 100644 index d874586..0000000 --- a/src/app/plan-management/plan-management.module.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { PlanManagementRoutingModule } from './plan-management-routing.module'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import {A11yModule} from '@angular/cdk/a11y'; -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {PortalModule} from '@angular/cdk/portal'; -import {ScrollingModule} from '@angular/cdk/scrolling'; -import {CdkStepperModule} from '@angular/cdk/stepper'; -import {CdkTableModule} from '@angular/cdk/table'; -import {CdkTreeModule} from '@angular/cdk/tree'; -import {MatAutocompleteModule} from '@angular/material/autocomplete'; -import {MatBadgeModule} from '@angular/material/badge'; -import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; -import {MatButtonModule} from '@angular/material/button'; -import {MatButtonToggleModule} from '@angular/material/button-toggle'; -import {MatCardModule} from '@angular/material/card'; -import {MatCheckboxModule} from '@angular/material/checkbox'; -import {MatChipsModule} from '@angular/material/chips'; -import {MatStepperModule} from '@angular/material/stepper'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import {MatDialogModule} from '@angular/material/dialog'; -import {MatDividerModule} from '@angular/material/divider'; -import {MatExpansionModule} from '@angular/material/expansion'; -import {MatGridListModule} from '@angular/material/grid-list'; -import {MatIconModule} from '@angular/material/icon'; -import {MatInputModule} from '@angular/material/input'; -import {MatListModule} from '@angular/material/list'; -import {MatMenuModule} from '@angular/material/menu'; -import {MatNativeDateModule, MatRippleModule} from '@angular/material/core'; -import {MatPaginatorModule} from '@angular/material/paginator'; -import {MatProgressBarModule} from '@angular/material/progress-bar'; -import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; -import {MatRadioModule} from '@angular/material/radio'; -import {MatSelectModule} from '@angular/material/select'; -import {MatSidenavModule} from '@angular/material/sidenav'; -import {MatSliderModule} from '@angular/material/slider'; -import {MatSlideToggleModule} from '@angular/material/slide-toggle'; -import {MatSnackBarModule} from '@angular/material/snack-bar'; -import {MatSortModule} from '@angular/material/sort'; -import {MatTableModule} from '@angular/material/table'; -import {MatTabsModule} from '@angular/material/tabs'; -import {MatToolbarModule} from '@angular/material/toolbar'; -import {MatTooltipModule} from '@angular/material/tooltip'; -import {MatTreeModule} from '@angular/material/tree'; - -import { EntryPlanComponent } from './entry-plan/entry-plan.component'; -import { PassPlanComponent } from './pass-plan/pass-plan.component'; -import { OpenPlanComponent } from './open-plan/open-plan.component'; -import { EntryPlanLookComponent, AddPlanone, DownloadFile, AuditResult, ChangeName } from './entry-plan-look/entry-plan-look.component'; -import { PlanType, AuditSatus, PlanLevel } from '../pipes/boolean.pipe'; -import { WebLookComponent } from './web-look/web-look.component'; - - - -@NgModule({ - declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent,AddPlanone,PlanType,AuditSatus,PlanLevel,DownloadFile,AuditResult,ChangeName, WebLookComponent], - imports: [ - CommonModule, - PlanManagementRoutingModule, - ReactiveFormsModule, - FormsModule, - A11yModule, - DragDropModule, - PortalModule, - ScrollingModule, - CdkStepperModule, - CdkTableModule, - CdkTreeModule, - MatAutocompleteModule, - MatBadgeModule, - MatBottomSheetModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatStepperModule, - MatDatepickerModule, - MatDialogModule, - MatDividerModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatRippleModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - MatTreeModule - ] -}) -export class PlanManagementModule { } diff --git a/src/app/plan-management/web-look/web-look.component.html b/src/app/plan-management/web-look/web-look.component.html deleted file mode 100644 index f2c7bee..0000000 --- a/src/app/plan-management/web-look/web-look.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -
    - -
    \ No newline at end of file diff --git a/src/app/plan-management/web-look/web-look.component.scss b/src/app/plan-management/web-look/web-look.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/plan-management/web-look/web-look.component.spec.ts b/src/app/plan-management/web-look/web-look.component.spec.ts deleted file mode 100644 index 894b3db..0000000 --- a/src/app/plan-management/web-look/web-look.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { WebLookComponent } from './web-look.component'; - -describe('WebLookComponent', () => { - let component: WebLookComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ WebLookComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(WebLookComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/plan-management/web-look/web-look.component.ts b/src/app/plan-management/web-look/web-look.component.ts deleted file mode 100644 index 7e4c581..0000000 --- a/src/app/plan-management/web-look/web-look.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Router,ActivatedRoute } from '@angular/router' -import { DomSanitizer } from '@angular/platform-browser'; - -@Component({ - selector: 'app-web-look', - templateUrl: './web-look.component.html', - styleUrls: ['./web-look.component.scss'] -}) -export class WebLookComponent implements OnInit { - - constructor(private router:Router,private route:ActivatedRoute,private sanitizer: DomSanitizer) { } - url:any = sessionStorage.getItem("url") - thirdPartyURL:any - ngOnInit(): void { - this.thirdPartyURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.url) - } - -} diff --git a/src/app/ui/ui-routing.module.ts b/src/app/ui/ui-routing.module.ts index 94ebf06..89d2eb1 100644 --- a/src/app/ui/ui-routing.module.ts +++ b/src/app/ui/ui-routing.module.ts @@ -2,9 +2,7 @@ import { Routes, RouterModule } from '@angular/router'; import { NgModule } from '@angular/core'; import { UiComponent } from './ui.component'; import { PaginatorComponent } from './paginator/paginator.component'; -import { PersonaldataComponent } from '../pages/personaldata/personaldata.component'; import { UserdataComponent } from './userdata/userdata.component'; -import {UnitInformationComponent} from './unit-information/unit-information.component'; import { CollectionToolsComponent } from './collection-tools/collection-tools.component'; @@ -12,9 +10,7 @@ import { CollectionToolsComponent } from './collection-tools/collection-tools.co const routes: Routes = [ { path: '', component: UiComponent}, { path: 'paginator', component:PaginatorComponent }, - { path: 'person', component:PersonaldataComponent }, { path: 'userdata', component:UserdataComponent }, - { path: 'unitInformation', component:UnitInformationComponent }, { path: 'collectionTools', component:CollectionToolsComponent }, ]; diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index 21ff92c..c9b8734 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -47,27 +47,20 @@ import { ReactiveFormsModule, FormsModule } from '@angular/forms'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatPaginatorIntl } from '@angular/material/paginator'; import { PaginatorModule } from './paginator/paginator.module'; -import { PersonaldataComponent } from '../pages/personaldata/personaldata.component'; import { FooterComponent } from './footer/footer.component'; import { UserdataComponent, EditUser } from './userdata/userdata.component'; import { ChangepasswordComponent } from './changepassword/changepassword.component'; import { IsnoPipe } from '../pipes/boolean.pipe'; import {ConfirmpswDirective} from './changepassword/equal-validator.directive' import { TimePipe } from '../pipes/time.pipe'; -import { UnitInformationComponent,addUnitAttributeComponent,editUnitAttribute } from './unit-information/unit-information.component'; import { NzTreeModule } from 'ng-zorro-antd/tree'; -import { FileUploadModule } from 'ng2-file-upload' -import { EditUnitInfo } from './unit-information/editunitinfo.component'; -import { AddUnitInfo } from './unit-information/addunitinfo.component'; -import { AddGroups } from './unit-information/addgroups.component'; -import { EditGroup } from './unit-information/editgroup.component'; - +import { FileUploadModule } from 'ng2-file-upload'; import { CollectionToolsComponent, CreateBuilding, EditBuilding, ViewDetails } from './collection-tools/collection-tools.component'; import { WorkingAreaComponent } from '../working-area/working-area.component'; import {leftFunctionalDomainComponent,editPlaneFigureComponent,addDisposalNodeComponent,editDisposalNodeComponent} from './collection-tools/leftFunctionalDomain' import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; @NgModule({ - declarations: [UiComponent,PersonaldataComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,UnitInformationComponent,EditUnitInfo,AddUnitInfo,AddGroups,EditGroup,addUnitAttributeComponent,editUnitAttribute,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], + declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], imports: [ CommonModule, diff --git a/src/app/ui/unit-information/addUnitAttribute.html b/src/app/ui/unit-information/addUnitAttribute.html deleted file mode 100644 index a98f573..0000000 --- a/src/app/ui/unit-information/addUnitAttribute.html +++ /dev/null @@ -1,71 +0,0 @@ -
    新增属性
    -
    -
    - -
    - - - -
    - -
    - - - - {{item.viewValue}} - - - - - - -
    - -
    - - - - - -
    - -
    - - - 不验证 - - - 区间 - 正则匹配 - - - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/addgroups.component.html b/src/app/ui/unit-information/addgroups.component.html deleted file mode 100644 index c8417d5..0000000 --- a/src/app/ui/unit-information/addgroups.component.html +++ /dev/null @@ -1,28 +0,0 @@ -
    - 新增分组 - - - -

    *可通过/进行层级分级以及归属,例如:a/b/c

    - - - 表单 - 表格 - - - - - 不新增 - 新增行 - 新增组 - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/addgroups.component.ts b/src/app/ui/unit-information/addgroups.component.ts deleted file mode 100644 index b71963a..0000000 --- a/src/app/ui/unit-information/addgroups.component.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; - - - -@Component({ - selector: 'addgroups', - templateUrl: './addgroups.component.html', - styleUrls: ['./unit-information.component.scss'] - }) - export class AddGroups { - myControl = new FormControl(); - templatestatus = "0"//创建模板时的默认状态 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit(): void {} - - onNoClick(): void { - this.dialogRef.close(); - } - - grouporder = null; //没有'/'情况的order值 - - //提交表单新增分组 - onSubmit(value){ - if(this.data.allGrouping.length == 0){ //分组为空时 - this.http.post("/api/BasicGroups",{ - id: "", - name: value.groupname, - type: Number(value.propertyType), - addMode:Number(value.databehavior), - isOptional:true, - order: 0, - enabled: true, - propertyInfos: [], - basicCategoryId: this.data.unitInformation.id - }).subscribe(data=>{ - this.dialogRef.close('yes'); - }) - } - if (value.groupname.indexOf('/') == -1 && this.data.allGrouping.length != 0) { //分组name中没有'/'情况时 - this.grouporder = this.data.allGrouping[this.data.allGrouping.length - 1].order + 1 - this.http.post("/api/BasicGroups",{ - id: "", - name: value.groupname, - type: Number(value.propertyType), - addMode:Number(value.databehavior), - isOptional:true, - order: this.grouporder, - enabled: true, - propertyInfos: [], - basicCategoryId: this.data.unitInformation.id - }).subscribe(data=>{ - this.dialogRef.close('yes'); - }) - } - else if (value.groupname.indexOf('/') != -1 && this.data.allGrouping.length != 0) { //分组name中有'/'情况时 - let str = value.groupname.substring(0,value.groupname.lastIndexOf('/')) //截取'/'之前字符串 - for (let i=this.data.allGrouping.length;i--;i>=0) { - if (str.indexOf(this.data.allGrouping[i].name)!=-1) {//分组name中含有新建分组'/'之前文字时 - this.grouporder = this.data.allGrouping[this.data.allGrouping.length - 1].order + 1 - this.http.post("/api/BasicGroups",{ - id: "", - name: value.groupname, - type: Number(value.propertyType), - addMode:Number(value.databehavior), - isOptional:true, - order: this.grouporder, - enabled: true, - propertyInfos: [], - basicCategoryId: this.data.unitInformation.id - }).subscribe(data=>{ - let id = {categoryId:this.data.unitInformation.id} - this.http.get('/api/BasicGroups',{params:id}).subscribe((data:any)=>{ - let newitem = data.pop() - data.splice(i+1,0,newitem) - this.dialogRef.close(data); - }) - });break} - else if (str.indexOf(this.data.allGrouping[i].name)==-1 && i<1) {//分组name中没有新建分组'/'之前文字时 - this.grouporder = this.data.allGrouping[this.data.allGrouping.length - 1].order + 1 - this.http.post("/api/BasicGroups",{ - id: "", - name: value.groupname, - type: Number(value.propertyType), - addMode:Number(value.databehavior), - isOptional:true, - order: this.grouporder, - enabled: true, - propertyInfos: [], - basicCategoryId: this.data.unitInformation.id - }).subscribe(data=>{ - this.dialogRef.close('yes'); - });break} - - } //for循环 - - } //else if - - - - } //onSubmit - - - - - -} diff --git a/src/app/ui/unit-information/addunitinfo.component.html b/src/app/ui/unit-information/addunitinfo.component.html deleted file mode 100644 index 4ef9240..0000000 --- a/src/app/ui/unit-information/addunitinfo.component.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - 新增单位信息 - - - - - - - 禁用 - 启用 - - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/addunitinfo.component.ts b/src/app/ui/unit-information/addunitinfo.component.ts deleted file mode 100644 index 60a0e2f..0000000 --- a/src/app/ui/unit-information/addunitinfo.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; -@Component({ - selector: 'addunitinfo', - templateUrl: './addunitinfo.component.html', - styleUrls: ['./unit-information.component.scss'] - }) - export class AddUnitInfo { - myControl = new FormControl(); - templatestatus = "0"//创建模板时的默认状态 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - onNoClick(): void { - this.dialogRef.close(); - } - onSubmit(value){ - this.http.post("/api/BasicCategories",{ - id: "", - name: value.templatename, - enabled: Boolean(Number(value.enable)) , - }).subscribe(data=>{ - this.dialogRef.close('ooo'); - }) - } - } \ No newline at end of file diff --git a/src/app/ui/unit-information/editUnitAttribute.html b/src/app/ui/unit-information/editUnitAttribute.html deleted file mode 100644 index 66aa164..0000000 --- a/src/app/ui/unit-information/editUnitAttribute.html +++ /dev/null @@ -1,76 +0,0 @@ -
    编辑属性
    -
    -
    - -
    - - - -
    - -
    - - - - {{item.viewValue}} - - - - - - -
    - -
    - - - - - -
    - -
    - - - 不验证 - - - 区间 - 正则匹配 - - - - - -
    - -
    - - - - - - -
    - -
    - - - -
    - -
    - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/editgroup.component.html b/src/app/ui/unit-information/editgroup.component.html deleted file mode 100644 index 7975ba9..0000000 --- a/src/app/ui/unit-information/editgroup.component.html +++ /dev/null @@ -1,27 +0,0 @@ -
    - 修改分组 - - - - - - 表单 - 表格 - - - - - 不新增 - 新增行 - 新增组 - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/editgroup.component.ts b/src/app/ui/unit-information/editgroup.component.ts deleted file mode 100644 index 4bc9385..0000000 --- a/src/app/ui/unit-information/editgroup.component.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; - - - -@Component({ - selector: 'editgroup', - templateUrl: './editgroup.component.html', - styleUrls: ['./unit-information.component.scss'] - }) - export class EditGroup { - myControl = new FormControl(); - - groupname = this.data.item.name //分组名 - grouptype = String(this.data.item.type) //分组类型 - groupaddMode = String(this.data.item.addMode) //数据行为 - - templatestatus = "0"//创建模板时的默认状态 - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - - ngOnInit(): void { - - } - - onNoClick(): void { - this.dialogRef.close(); - } - - onSubmit(value){ - this.http.put(`/api/BasicGroups/${this.data.item.id}`,{ - id: this.data.item.id, - name: value.groupname, - type: Number(value.propertyType), - addMode:Number(value.databehavior), - isOptional: this.data.item.isOptional, - order: this.data.item.order, - enabled: this.data.item.enabled, - propertyInfos:this.data.item.propertyInfos, - basicCategoryId: this.data.item.basicCategoryId - }).subscribe(data=>{ - this.dialogRef.close('ooo'); - }) - } - - } \ No newline at end of file diff --git a/src/app/ui/unit-information/editunitinfo.component.html b/src/app/ui/unit-information/editunitinfo.component.html deleted file mode 100644 index 8fbc3a5..0000000 --- a/src/app/ui/unit-information/editunitinfo.component.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - 修改单位信息 - - - - - - - 禁用 - 启用 - - - - -
    - - -
    - -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/editunitinfo.component.ts b/src/app/ui/unit-information/editunitinfo.component.ts deleted file mode 100644 index 749645d..0000000 --- a/src/app/ui/unit-information/editunitinfo.component.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree'; -import {FlatTreeControl} from '@angular/cdk/tree'; -import { HttpClient } from '@angular/common/http'; -import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {FormControl} from '@angular/forms'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import format from 'date-fns/format'; -@Component({ - selector: 'editunitinfo', - templateUrl: './editunitinfo.component.html', - styleUrls: ['./unit-information.component.scss'] - }) - export class EditUnitInfo { - templatenamedefault = this.data.unitInformation.name - myControl = new FormControl(); - constructor(private http: HttpClient,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) {} - onNoClick(): void { - this.dialogRef.close(); - } - - onSubmit(value){ - this.http.put(`/api/BasicCategories/${this.data.unitInformation.id}`,{ - id: this.data.unitInformation.id, - name: value.templatename, - enabled: Boolean(Number(value.enable)), - }).subscribe(data=>{ - this.dialogRef.close('ooo'); - }) - } - } \ No newline at end of file diff --git a/src/app/ui/unit-information/unit-information.component.html b/src/app/ui/unit-information/unit-information.component.html deleted file mode 100644 index 3df4935..0000000 --- a/src/app/ui/unit-information/unit-information.component.html +++ /dev/null @@ -1,164 +0,0 @@ -
    -
    -
    - keyboard_arrow_down - chevron_right - 单位信息 -
    - - - - -
    -
    -
    -
    - {{item.name}} - block -
    -
    - -
    - -
    -
    -
    -

    {{unitInformation.name}}

    -
    - - - - -
    -
    - -
    -
    -
    - - {{item.name}} - - arrow_upward - - arrow_downward - - description - border_color - star - star_border - - block - - - block - - delete -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - add_box - - - 名称 - {{element.propertyName}} - 类型 - - - - 默认值 - {{element.propertyValue}} - 必填 - - - 单位 - {{element.physicalUnit}} - 操作 - - border_color - - - - block - - - block - - - delete - -
    -
    -
    - - - -
    -
    -
    \ No newline at end of file diff --git a/src/app/ui/unit-information/unit-information.component.scss b/src/app/ui/unit-information/unit-information.component.scss deleted file mode 100644 index fd0abd5..0000000 --- a/src/app/ui/unit-information/unit-information.component.scss +++ /dev/null @@ -1,120 +0,0 @@ -.content { - margin: 0 0 0 10px; - width: 100%; - height: 90%; - overflow-x: hidden; - overflow-y: auto; - display: flex; - .leftBox { - flex: 20%; - padding-top: 10px; - } - .rightBox { - border-left: 1px solid #999; - flex: 80%; - display: flex; - flex-direction: column; - .topBox { - flex:1; - .originalScript { - width: 100%; - background-color: #fafafa; - padding:10px 0; - padding-left: 20px; - font-weight: 500; - display: flex; - flex-direction: row; - p{ - margin-top: 11px; - } - .mat-icon { - vertical-align:middle; - } - } - } - } -} - - - -.bank { - display: flex; - font-size: 18px; - font-weight: 500; -} -.mat-icon { - width: 18px; - height: 18px; - vertical-align:top; - margin-right: 8px; - cursor:pointer; -} -.overFlowText { - width: 135px; - display: inline-block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.material { - cursor:pointer; - height: 30px; - font-size: 16px; - margin-top: 10px; - padding-left: 25px; - .blockBtn { - float: right; - margin-right: 12px; - width: 16px; - height: 16px; - } -} - -.tableBox { - margin-top: 10px; -} -.attribute { - padding-left: 25px; - display: flex; - flex-direction: row; - background-color: #d7d7d7; - .attributeLeft{ - flex: 1; - padding: 10px 0 10px 0; - .mat-icon { - margin-left: 5px; - } - } -} -table { - width: 100%; - text-align: center; - .cdk-header-cell { - text-align: center; - } -} - - - -.active { - background-color: rgba(225,225,225,0.8) -} -.btn{ - text-align: center; - button{ - margin: 0 8px; - } -} -.editunitformfield{ - width:230px -} - -//层级显示表格 -.twoLevel { - padding-left: 25px; - margin-top: 0px; -} -.threeLevel { - padding-left: 50px; - margin-top: 0px; -} \ No newline at end of file diff --git a/src/app/ui/unit-information/unit-information.component.ts b/src/app/ui/unit-information/unit-information.component.ts deleted file mode 100644 index de53143..0000000 --- a/src/app/ui/unit-information/unit-information.component.ts +++ /dev/null @@ -1,635 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { AddUnitInfo } from './addunitinfo.component' -import { EditUnitInfo } from './editunitinfo.component' -import { AddGroups } from './addgroups.component' -import { EditGroup } from './editgroup.component' -import { HttpClient } from '@angular/common/http'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; - - - -@Component({ - selector: 'app-unit-information', - templateUrl: './unit-information.component.html', - styleUrls: ['./unit-information.component.scss'] -}) -export class UnitInformationComponent implements OnInit { - - constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } - - ngOnInit(): void { - this.http.get('/api/BasicCategories').subscribe(data=>{ - this.allUnitInformation = data - this.unitInformation = data[0] - this.getAllGrouping()}) - } - - allUnitInformation:any; //所有单位 - unitInformation:any={name:''}; //选中的单位 - unitInformationIndex:any=0; //选中的单位index - - allGrouping:any; //单位信息模板对应所有分组 - groupingSelect:any=[]; //选中的分组 - groupingIndex:any=[]; //选中的分组index - attributeSelect:any=[]; //选中的分组属性 - attributeIndex:any=[]; //选中的分组属性所属分组index - - displayedColumns = ['checked', 'name', 'type', 'default','required','physicalUnit','operation']; - - isshow = true//左侧列表的显示隐藏 - //收起左侧列表 - showlist(){ - this.isshow = !this.isshow - } - //获取所有的单位信息模板 - getAllUnitInformation () { - this.http.get('/api/BasicCategories').subscribe(data=>{ - this.allUnitInformation = data - this.unitInformation = data[this.unitInformationIndex] - }) - } - - //单位信息模板对应所有分组 - getAllGrouping () { - if (this.unitInformation) { - let id = {categoryId:this.unitInformation.id} - this.http.get('/api/BasicGroups',{params:id}).subscribe((data:any)=>{ - if (data.length) { - data.forEach((item,index) => { - if (item.name.indexOf('/')!=-1) { - let str=item.name.substring(0,item.name.lastIndexOf('/')) - if (str.indexOf('/')==-1 && index!=0 && data[index-1].name.indexOf(str) != -1 ) { - item.css = true - } else if (str.indexOf('/')!=-1 && index!=0 && data[index-1].name.indexOf(str) != -1 ){ - item.newcss = true - } - } - }); - } - this.allGrouping = data - this.groupingSelect = [] - this.groupingIndex = [] - this.attributeSelect = [] - this.attributeIndex= [] - this.setIndex() - }) - } - - } - - //选中单位 - add (e,index) { - if (this.unitInformationIndex != index) { - this.unitInformation = e - this.unitInformationIndex = index - this.getAllGrouping() - } - } - - //选中当前分组checked - groupingChange (e,index,event) { - if (event.checked === true) { - this.groupingSelect.push(e) - this.groupingIndex.push(index) - } else { - this.groupingSelect.splice(this.groupingSelect.findIndex(item => item.id == e.id), 1) - this.groupingIndex.splice(this.groupingIndex.findIndex(items => items == index), 1) - } - } - - //分组上移 - groupingTop () { - if (this.groupingSelect.length && this.groupingIndex.length) { - let select = this.groupingSelect[this.groupingSelect.length-1] - let index = this.groupingIndex[this.groupingIndex.length-1] - if (index!=0) { - let topOrder = this.allGrouping[index].order - let bottomOrder = this.allGrouping[index-1].order - this.allGrouping[index-1].order = topOrder - this.allGrouping.forEach(item => { - item.propertyInfos.forEach((element) => { - delete element.index - }); - }); - this.http.put(`/api/BasicGroups/${this.allGrouping[index-1].id}`,{ - id:this.allGrouping[index-1].id, - name:this.allGrouping[index-1].name, - type:this.allGrouping[index-1].type, - addMode:this.allGrouping[index-1].addMode, - isOptional:this.allGrouping[index-1].isOptional, - order:this.allGrouping[index-1].order, - enabled:this.allGrouping[index-1].enabled, - propertyInfos:this.allGrouping[index-1].propertyInfos, - basicCategoryId:this.allGrouping[index-1].basicCategoryId - }).subscribe(data=>{ - this.allGrouping[index].order = bottomOrder - this.submit(select,index) - }) - } - } - } - - //分组下移 - groupingBottom () { - if (this.groupingSelect.length && this.groupingIndex.length) { - let select = this.groupingSelect[this.groupingSelect.length-1] - let index = this.groupingIndex[this.groupingIndex.length-1] - if (index!=this.allGrouping.length-1) { - let topOrder = this.allGrouping[index].order - let bottomOrder = this.allGrouping[index+1].order - this.allGrouping[index+1].order = topOrder - this.allGrouping.forEach(item => { - item.propertyInfos.forEach((element) => { - delete element.index - }); - }); - this.http.put(`/api/BasicGroups/${this.allGrouping[index+1].id}`,{ - id:this.allGrouping[index+1].id, - name:this.allGrouping[index+1].name, - type:this.allGrouping[index+1].type, - addMode:this.allGrouping[index+1].addMode, - isOptional:this.allGrouping[index+1].isOptional, - order:this.allGrouping[index+1].order, - enabled:this.allGrouping[index+1].enabled, - propertyInfos:this.allGrouping[index+1].propertyInfos, - basicCategoryId:this.allGrouping[index+1].basicCategoryId - }).subscribe(data=>{ - this.allGrouping[index].order = bottomOrder - this.submit(select,index) - }) - } - } - } - - //新增单位 - addunitinfo(){ - const dialogRef = this.dialog.open(AddUnitInfo, {//调用open方法打开对话框并且携带参数过去 - width: '260px', - data: {} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getAllUnitInformation () - } - - } - ); - } - - //编辑单位 - editunitinfo(){ - if(this.unitInformation){ - const dialogRef = this.dialog.open(EditUnitInfo, {//调用open方法打开对话框并且携带参数过去 - width: '295px', - data: {unitInformation:this.unitInformation} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getAllUnitInformation () - } - } - ); - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先选择单位','确定',config); - } - } - - //禁启用单位 - disableunit(){ - if(this.unitInformation){ - this.http.put(`/api/BasicCategories/${this.unitInformation.id}`,{ - id: this.unitInformation.id, - name: this.unitInformation.name, - enabled: !this.unitInformation.enabled, - }).subscribe(data=>{ - this.getAllUnitInformation () - }) - }else{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请先选择单位','确定',config); - } - } - - //删除单位 - deleteunit(){ - var isdeleted = confirm(`确定要删除${this.unitInformation.name}单位信息吗?`) - if(isdeleted){ - //请求删除接口 - this.http.delete(`/api/BasicCategories/${this.unitInformation.id}`).subscribe( data=>{ - this.http.get('/api/BasicCategories').subscribe(data=>{ - this.allUnitInformation = data - this.unitInformation = data[this.unitInformationIndex] - this.getAllGrouping()}) - }) - } - } - - //新增分组 - addgroups(){ - const dialogRef = this.dialog.open(AddGroups, {//调用open方法打开对话框并且携带参数过去 - width: '295px', - data: {unitInformation:this.unitInformation,allGrouping:this.allGrouping} - }); - dialogRef.afterClosed().subscribe( - msg=>{ - if(msg && msg!='yes'){ - msg.forEach((item,index) => { - this.http.put(`/api/BasicGroups/${item.id}`,{ - id: item.id, - name: item.name, - type:item.type, - addMode:item.addMode, - isOptional:item.isOptional, - order: index, - enabled: item.enabled, - propertyInfos:item.propertyInfos, - basicCategoryId: item.basicCategoryId - }).subscribe(data=>{ - if (index===msg.length-1) {this.getAllGrouping()} - }) - }); - // this.getAllGrouping() - } else if (msg == 'yes') {this.getAllGrouping()} - - } - - - - ); - } - - //编辑分组 - editgroup(item,index){ - const dialogRef = this.dialog.open(EditGroup, {//调用open方法打开对话框并且携带参数过去 - width: '295px', - data: {unitInformation:this.unitInformation,allGrouping:this.allGrouping,item:item} - }); - dialogRef.afterClosed().subscribe( - data=>{ - if(data){ - this.getAllGrouping () - } - } - ); - } - - //禁启用分组 - disablegroup(item){ - if(item.enabled){ - this.http.put(`/api/BasicGroups/${item.id}`,{ - id: item.id, - name: item.name, - type:item.type, - addMode:item.addMode, - isOptional:item.isOptional, - order: item.order, - enabled: false, - propertyInfos:item.propertyInfos, - basicCategoryId: item.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('禁用成功','确定',config); - this.getAllGrouping () - }) - }else{ - this.http.put(`/api/BasicGroups/${item.id}`,{ - id: item.id, - name: item.name, - type:item.type, - addMode:item.addMode, - isOptional:item.isOptional, - order: item.order, - enabled: true, - propertyInfos:item.propertyInfos, - basicCategoryId: item.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('启用成功','确定',config); - this.getAllGrouping () - }) - } - } - - //设置是否分组可选 - optional (item) { - if (item.isOptional) { - this.http.put(`/api/BasicGroups/${item.id}`,{ - id: item.id, - name: item.name, - type:item.type, - addMode:item.addMode, - isOptional:false, - order: item.order, - enabled: item.enabled, - propertyInfos:item.propertyInfos, - basicCategoryId: item.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('现状态为不可选','确定',config); - this.getAllGrouping () - }) - } else{ - this.http.put(`/api/BasicGroups/${item.id}`,{ - id: item.id, - name: item.name, - type:item.type, - addMode:item.addMode, - isOptional:true, - order: item.order, - enabled: item.enabled, - propertyInfos:item.propertyInfos, - basicCategoryId: item.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('现状态为可选','确定',config); - this.getAllGrouping () - }) - } - } - - //删除分组 - deletegroup(item){ - var isdeleted = confirm(`确定要删除${item.name}分组吗?`) - if(isdeleted){ - //请求删除接口 - this.http.delete(`/api/BasicGroups/${item.id}`).subscribe( data=>{ - this.getAllGrouping () - }) - } - } - - - - - - //分组属性操作↓ - //选中分组属性checked - attributeChange (item,index,event) { - if (event.checked === true) { - this.attributeSelect.push(item) - this.attributeIndex.push(index) - } else { - this.attributeSelect.splice(this.attributeSelect.findIndex(items => items == item), 1) - this.attributeIndex.splice(this.attributeIndex.findIndex(items => items == index), 1) - } - } - - //属性上移 - attributeTop (e,index) { - let select = this.attributeSelect[this.attributeSelect.length-1] - let newIndex = this.attributeIndex[this.attributeIndex.length-1] - if (this.attributeSelect.length && newIndex===index) { - let newOrder = this.attributeSelect[this.attributeSelect.length-1].order - if(select.index != 0) { - this.allGrouping[index].propertyInfos[select.index].order=this.allGrouping[index].propertyInfos[select.index-1].order - this.allGrouping[index].propertyInfos[select.index-1].order=newOrder - this.submit(e,index) - } - } - } - - //属性下移 - attributeBottom (e,index) { - let select = this.attributeSelect[this.attributeSelect.length-1] - let newIndex = this.attributeIndex[this.attributeIndex.length-1] - if (this.attributeSelect.length && newIndex===index) { - let newOrder = this.attributeSelect[this.attributeSelect.length-1].order - if(select.index != this.allGrouping[index].propertyInfos.length-1) { - this.allGrouping[index].propertyInfos[select.index].order=this.allGrouping[index].propertyInfos[select.index+1].order - this.allGrouping[index].propertyInfos[select.index+1].order=newOrder - this.submit(e,index) - } - } - } - - //封装函数每条属性添加index - setIndex () { - if (this.allGrouping.length) { - this.allGrouping.forEach(item => { - item.propertyInfos.forEach((element,index) => { - element.index = index - }); - }); - } - } - - //创建分组属性 - addGrouping (e,index) { - let data = e - const dialogRef = this.dialog.open(addUnitAttributeComponent,{data}); - dialogRef.afterClosed().subscribe( - data=>{ if (data) { - this.allGrouping[index].propertyInfos.push(data) - this.submit(e,index) - }}) - } - - //编辑分组属性 - editGrouping (e,index,element) { - let data = element - const dialogRef = this.dialog.open(editUnitAttribute,{data}); - dialogRef.afterClosed().subscribe( - data=>{ if (data) { - this.allGrouping[index].propertyInfos[data.index] = data - this.submit(e,index) - }}) - } - - //属性显示 - display (e) { - e.visible = true - } - - //属性隐藏 - noDisplay (e) { - e.visible = false - } - - //属性启用 - enabledGrouping (e) { - e.enabled = true - } - - //属性禁用 - noEnabledGrouping (e) { - e.enabled = false - } - - //属性删除 - deleteGrouping (e,index,elementIndex) { - let isTrue = confirm('您确定要删除吗') - if (isTrue) { - this.allGrouping[index].propertyInfos.splice(elementIndex,1) - this.submit(e,index) - } - } - - - - //提交当前分组保存数据 - submit (e,index) { - if (this.allGrouping.length) { - this.allGrouping.forEach(item => { - item.propertyInfos.forEach((element) => { - delete element.index - }); - }); - this.http.put(`/api/BasicGroups/${e.id}`,{ - id:e.id, - name:e.name, - type:e.type, - addMode:e.addMode, - isOptional: e.isOptional, - order:e.order, - enabled:e.enabled, - propertyInfos:this.allGrouping[index].propertyInfos, - basicCategoryId:e.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); - this.getAllGrouping() - }) - } else { - this.http.put(`/api/BasicGroups/${e.id}`,{ - id:e.id, - name:e.name, - type:e.type, - addMode:e.addMode, - isOptional:e.isOptional, - order:e.order, - enabled:e.enabled, - propertyInfos:this.allGrouping[index].propertyInfos, - basicCategoryId:e.basicCategoryId - }).subscribe(data=>{ - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('数据更新成功','确定',config); - this.getAllGrouping() - }) - } - } - - - -} - - - -//新增属性弹窗 -export interface Food { - value: number; - viewValue: string; -} -@Component({ - selector: 'app-addUnitAttribute', - templateUrl: './addUnitAttribute.html', - styleUrls: ['./unit-information.component.scss'] -}) -export class addUnitAttributeComponent { - - constructor(private http:HttpClient,public dialog: MatDialog, - public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) { } - - ngOnInit(): void { - if (this.data.propertyInfos.length) { - this.order = this.data.propertyInfos[this.data.propertyInfos.length-1].order +1 - } else { - this.order = 0 - } - } - - //定义属性数据 - propertyType:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'},] - - order:number; //order - - //提交表单 - onSubmit (e) { - e.order = this.order - e.enabled = true - e.visible = true - e.required = e.required=='true'? true: false, - this.dialogRef.close(e) - } - - - -} - - - -//编辑属性弹窗 -@Component({ - selector: 'app-editUnitAttribute', - templateUrl: './editUnitAttribute.html', - styleUrls: ['./unit-information.component.scss'] -}) -export class editUnitAttribute { - - constructor(private http:HttpClient,public dialog: MatDialog, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data,) { } - - ngOnInit(): void { - this.propertyName = this.data.propertyName - this.propertyValue = this.data.propertyValue - this.propertyType = this.data.propertyType - this.required = String(this.data.required) - this.ruleName = this.data.ruleName - this.ruleValue = this.data.ruleValue - this.physicalUnit = this.data.physicalUnit - this.tag = this.data.tag - this.order = this.data.order} - - - - propertyName:any - propertyValue:any; - propertyType:number; - required:any; - ruleName:any; - ruleValue:any; - physicalUnit:any; - tag:any; - order:number; - - //定义属性数据 - type:Food[]=[ - {value:0, viewValue: '单行文本'}, - {value:1, viewValue: '多行文本'}, - {value:2, viewValue: '数值'},] - - //提交表单 - onSubmit (e) { - e.enabled = this.data.enabled - e.visible = this.data.visible - e.index = this.data.index - e.required = e.required=='true'? true: false, - this.dialogRef.close(e) - } - - - -} From 726a09f4bb9bfb3312cf5d2dbebb774df1f2b703 Mon Sep 17 00:00:00 2001 From: cpf <1105965053@qq.com> Date: Thu, 5 Nov 2020 15:48:29 +0800 Subject: [PATCH 3/8] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 123 ++++++----------------- src/app/pages/login/login.component.html | 27 +---- src/app/pages/login/login.component.scss | 76 ++++++-------- src/app/pages/login/login.component.ts | 47 +-------- src/app/ui/home/home.component.html | 3 + src/app/ui/home/home.component.scss | 7 ++ src/app/ui/home/home.component.spec.ts | 25 +++++ src/app/ui/home/home.component.ts | 15 +++ src/app/ui/ui-routing.module.ts | 2 + src/app/ui/ui.module.ts | 3 +- src/assets/images/pic.png | Bin 0 -> 764176 bytes src/index.html | 2 +- 12 files changed, 125 insertions(+), 205 deletions(-) create mode 100644 src/app/ui/home/home.component.html create mode 100644 src/app/ui/home/home.component.scss create mode 100644 src/app/ui/home/home.component.spec.ts create mode 100644 src/app/ui/home/home.component.ts create mode 100644 src/assets/images/pic.png diff --git a/package-lock.json b/package-lock.json index d6c4941..b96780b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10524,8 +10524,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -10546,14 +10545,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10568,20 +10565,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -10698,8 +10692,7 @@ "inherits": { "version": "2.0.4", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -10711,7 +10704,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -10726,7 +10718,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -10734,14 +10725,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.9.0", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -10760,7 +10749,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -10850,8 +10838,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -10863,7 +10850,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -10949,8 +10935,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -10986,7 +10971,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -11006,7 +10990,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -11050,14 +11033,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -16680,8 +16661,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -16702,14 +16682,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -16724,20 +16702,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -16854,8 +16829,7 @@ "inherits": { "version": "2.0.4", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -16867,7 +16841,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -16882,7 +16855,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -16890,14 +16862,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.9.0", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -16916,7 +16886,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -17006,8 +16975,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -17019,7 +16987,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -17105,8 +17072,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -17142,7 +17108,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -17162,7 +17127,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -17206,14 +17170,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -17595,8 +17557,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -17617,14 +17578,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -17639,20 +17598,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -17769,8 +17725,7 @@ "inherits": { "version": "2.0.4", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -17782,7 +17737,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -17797,7 +17751,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -17805,14 +17758,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.9.0", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -17831,7 +17782,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -17921,8 +17871,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -17934,7 +17883,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -18020,8 +17968,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -18057,7 +18004,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -18077,7 +18023,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -18121,14 +18066,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, diff --git a/src/app/pages/login/login.component.html b/src/app/pages/login/login.component.html index 0ed8f33..2bd2854 100644 --- a/src/app/pages/login/login.component.html +++ b/src/app/pages/login/login.component.html @@ -1,24 +1,9 @@ diff --git a/src/app/pages/login/login.component.scss b/src/app/pages/login/login.component.scss index 5e378b0..97f585f 100644 --- a/src/app/pages/login/login.component.scss +++ b/src/app/pages/login/login.component.scss @@ -3,22 +3,18 @@ width: 100%; height: 100%; display: flex; + overflow: hidden; .intro { - flex: 85%; - height: 100%; - background: url('../../../assets/images/background.jpg'); - background-repeat:no-repeat; + flex: 1; + background: url('../../../assets/images/pic.png'); background-size:100% 100%; - -moz-background-size:100% 100%; - .text { - padding-top: 3%; - margin-left: 8%; - width: 53%; - } } .card{ - flex: 15%; + width: 3.90625rem; height: 100%; + display: flex; + flex-direction: column; + justify-content: center; background-color: #fff; } } @@ -29,59 +25,51 @@ width: 100%; } .loginbtn { - margin-top: 25px; - height: 35px; - background-color:#039be5; - border-radius: 15px; - color: #fff;; -} -.website { - font-size: 14px; - text-align: center; - margin-top: 60px; + margin-top: 0.488281rem; + height: 0.341797rem; + background: linear-gradient(303deg, #FC7045 0%, #FF4923 100%); + border-radius: 0.292969rem; + color: #fff; } .alert-danger { - font-size: 14px; + font-size: 0.136719rem; color: red; } -.cardheader{ - font-size: 26px; - font-weight: 500; - margin-top: 20px; -} .mat-card { box-shadow: 0px 0px 0px; - margin-top: 10px; - padding-left: 20px; + margin-top: 0.097656rem; + padding-left: 0.195313rem; } .mat-form-field { - padding-left: 20px;; + padding-left: 0.195313rem; + font-size: 0.15625rem; + input { font-size: 0.15625rem; } } .loginImg { - margin-top: 90px; text-align: center; + margin-bottom: 0.488281rem; + background-image:-webkit-linear-gradient(right,#f18d6f,#FF4923); + font-weight: 800; + font-family: KaiTi; + -webkit-background-clip:text; + -webkit-text-fill-color:transparent; } .mat-input-element { position: relative; } .mat-card .example-container .icon { - width: 24px; + width: 0.234375rem; color: #666; - font-size: 24px; + font-size: 0.234375rem; position: absolute; - top:36px; - left: 15px; + top: 0.351563rem; + left: 0.146484rem; } .mat-card .example-container .icon2 { - width: 24px; + width: 0.234375rem; color: #666; - font-size: 24px; + font-size: 0.234375rem; position: absolute; - top:100px; - left: 15px; -} -a { - font-size: 14px; - color: #0066FF; - margin-left: 250px; + top: 0.976563rem; + left: 0.146484rem } \ No newline at end of file diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts index 1a38a1d..0782bf3 100644 --- a/src/app/pages/login/login.component.ts +++ b/src/app/pages/login/login.component.ts @@ -18,7 +18,7 @@ export class LoginComponent implements OnInit { constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,public token:CacheTokenService,public snackBar: MatSnackBar) { } ngOnInit() { - this.automaticLogin() + } errmsg :string = '' @@ -30,52 +30,11 @@ export class LoginComponent implements OnInit { sessionStorage.setItem("level",data.level); sessionStorage.setItem("token",data.token); sessionStorage.setItem("refreshToken",data.refreshToken); - // this.router.navigate([`/home`]) - this.http.get('/api/Account/NavMenus').subscribe((data:any)=>{ - - let isHave = data.find(item=>{ return item.url == "/home"}) - - if (isHave) { - this.router.navigate([`/home`]) - } else { - data.forEach(item => { - if(item.url){ - this.router.navigate([`/keyUnit`]) - return - } - }); - } - - }) - if(e.notlogin){ //7天免登录时 - localStorage.setItem("isnologin","true") - localStorage.setItem("token",data.token) - localStorage.setItem("refreshToken",data.refreshToken) } + this.router.navigate([`/ui/home`]) //调用服务中的function刷新token this.token.startUp() }, - (err) => {this.errmsg = err} - ) - } - - //7天免登录自动登录 - automaticLogin () { - let isNoLogin = localStorage.getItem("isnologin") - if (isNoLogin) { //7天免登录时 - let token = localStorage.getItem("token"); - let refreshToken = localStorage.getItem("refreshToken"); - this.http.post('/api/Account/RefreshToken', { - token: token, - refreshToken: refreshToken}).subscribe((data:any)=>{ - sessionStorage.setItem("level",data.level); - sessionStorage.setItem("token",data.token); - sessionStorage.setItem("refreshToken",data.refreshToken); - this.token.startUp() - this.router.navigate(['/ui/userdata']) - this.snackBar.open('已自动登录', '确定', {duration: 3000}); - }) - } //if - + (err) => {this.errmsg = err}) } //打开弹窗 diff --git a/src/app/ui/home/home.component.html b/src/app/ui/home/home.component.html new file mode 100644 index 0000000..4e103ca --- /dev/null +++ b/src/app/ui/home/home.component.html @@ -0,0 +1,3 @@ +
    + 首页 +
    diff --git a/src/app/ui/home/home.component.scss b/src/app/ui/home/home.component.scss new file mode 100644 index 0000000..eeabf97 --- /dev/null +++ b/src/app/ui/home/home.component.scss @@ -0,0 +1,7 @@ +.content { + width: 100%; + height: 100%; + box-sizing: border-box; + padding: 0.009766rem; + overflow: hidden; +} \ No newline at end of file diff --git a/src/app/ui/home/home.component.spec.ts b/src/app/ui/home/home.component.spec.ts new file mode 100644 index 0000000..490e81b --- /dev/null +++ b/src/app/ui/home/home.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HomeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/home/home.component.ts b/src/app/ui/home/home.component.ts new file mode 100644 index 0000000..73acf06 --- /dev/null +++ b/src/app/ui/home/home.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'] +}) +export class HomeComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/ui/ui-routing.module.ts b/src/app/ui/ui-routing.module.ts index d3e39c5..98221c2 100644 --- a/src/app/ui/ui-routing.module.ts +++ b/src/app/ui/ui-routing.module.ts @@ -26,6 +26,7 @@ import {UnitInformationComponent} from './unit-information/unit-information.comp import { EnterpriseuserComponent } from './enterpriseuser/enterpriseuser.component'; import { FireFightingFacilitiesFormworkComponent } from './fire-fighting-facilities-formwork/fire-fighting-facilities-formwork.component' import { CollectionToolsComponent } from './collection-tools/collection-tools.component'; +import { HomeComponent } from './home/home.component'; @@ -56,6 +57,7 @@ const routes: Routes = [ { path: 'enterpriseuser', component:EnterpriseuserComponent }, { path: 'fireFightingFacilitiesFormwork', component:FireFightingFacilitiesFormworkComponent }, { path: 'collectionTools', component:CollectionToolsComponent }, + { path: 'home', component:HomeComponent } ]; @NgModule({ diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index fee20f2..eab254e 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -95,8 +95,9 @@ import { CollectionToolsComponent, CreateBuilding, EditBuilding, ViewDetails } f import { WorkingAreaComponent } from '../working-area/working-area.component'; import {leftFunctionalDomainComponent,editPlaneFigureComponent,addDisposalNodeComponent,editDisposalNodeComponent} from './collection-tools/leftFunctionalDomain' import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; +import { HomeComponent } from './home/home.component'; @NgModule({ - declarations: [UiComponent, DateselectComponent, MenuComponent, CardComponent, ListComponent, GridComponent, StepperComponent, TabgroupComponent, ButtonComponent, BadgeComponent, ProgressComponent, SnackbarComponent,PersonaldataComponent, FooterComponent, UserdataComponent, ChangepasswordComponent, OrganizationComponent, UnittypeComponent, AuthorityComponent, RoleComponent, UsermanagementComponent,IsnoPipe,ConfirmpswDirective,DialogOverviewExampleDialog,CreateAuthority,CreateRole,TimePipe,CreateNewUser,EditNewUser,allRoles,EditRole,CreateOrganization,EditOrganization,seeInformation,EditUser,editorialUnit,FireProtectionElementsComponent,Establish,EditingFireControl,FireFightingTemplateComponent, NavmenusComponent,CreateMenus,EditMenus,NewFireFighting,EditFireClassification, MaterialBankComponent, UnitInformationComponent,AddMatLibrary,EditMatLibrary,attributeComponent,AddOriginalCopy,addAttributeComponent,editAttribute,EditOriginalCopy,SelectOriginalCopy,EditUnitInfo,AddUnitInfo,AddGroups,EditGroup, EnterpriseuserComponent,AddEnterpriserUser,addUnitAttributeComponent,editUnitAttribute,seeenterpriseuser,editenterpriseuser, FireFightingFacilitiesFormworkComponent,addFireFightingFacilitiesFormworkComponent,editFireFightingFacilitiesFormworkComponent,addBuiltInComponent,addBuiltInAttributeComponent,addOptionalComponent,addOptionalAttributeComponent,editBuiltInAttributeComponent,editOptionalAttributeComponent, CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], + declarations: [UiComponent, DateselectComponent, MenuComponent, CardComponent, ListComponent, GridComponent, StepperComponent, TabgroupComponent, ButtonComponent, BadgeComponent, ProgressComponent, SnackbarComponent,PersonaldataComponent, FooterComponent, UserdataComponent, ChangepasswordComponent, OrganizationComponent, UnittypeComponent, AuthorityComponent, RoleComponent, UsermanagementComponent,IsnoPipe,ConfirmpswDirective,DialogOverviewExampleDialog,CreateAuthority,CreateRole,TimePipe,CreateNewUser,EditNewUser,allRoles,EditRole,CreateOrganization,EditOrganization,seeInformation,EditUser,editorialUnit,FireProtectionElementsComponent,Establish,EditingFireControl,FireFightingTemplateComponent, NavmenusComponent,CreateMenus,EditMenus,NewFireFighting,EditFireClassification, MaterialBankComponent, UnitInformationComponent,AddMatLibrary,EditMatLibrary,attributeComponent,AddOriginalCopy,addAttributeComponent,editAttribute,EditOriginalCopy,SelectOriginalCopy,EditUnitInfo,AddUnitInfo,AddGroups,EditGroup, EnterpriseuserComponent,AddEnterpriserUser,addUnitAttributeComponent,editUnitAttribute,seeenterpriseuser,editenterpriseuser, FireFightingFacilitiesFormworkComponent,addFireFightingFacilitiesFormworkComponent,editFireFightingFacilitiesFormworkComponent,addBuiltInComponent,addBuiltInAttributeComponent,addOptionalComponent,addOptionalAttributeComponent,editBuiltInAttributeComponent,editOptionalAttributeComponent, CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent, HomeComponent], imports: [ CommonModule, diff --git a/src/assets/images/pic.png b/src/assets/images/pic.png new file mode 100644 index 0000000000000000000000000000000000000000..40ddc8da09066c9f41e3974fe3803acd0c290984 GIT binary patch literal 764176 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°yc>V?yc?hPV|>}E7nZbkGKSjEjR!}2uA@;k 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%0A89^afd)8y0!kQXz4Sv&2+!!^q| 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%0Dq3L0m^&J9(bX5F<&a`Hp2&uA(c-xp#C1@hg9UbR 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 z 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 D1jwUuC=BqI7F%Gyi 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%0DHG$vgj2~16nWZD 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

    0G2^^+qnJ0I^O)9ZOm>11s}xj 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 - 数字化预案编制管理平台 + 六熟悉演练记录系统 From 9b7aeb403bb9942eaa20907333df180153217a03 Mon Sep 17 00:00:00 2001 From: cpf <1105965053@qq.com> Date: Fri, 6 Nov 2020 08:25:25 +0800 Subject: [PATCH 4/8] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=20=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pages/login/login.component.scss | 2 +- src/app/ui/home/home.component.html | 30 ++++++++- src/app/ui/home/home.component.scss | 77 ++++++++++++++++++++++++ src/app/ui/home/home.component.ts | 42 ++++++++++++- 4 files changed, 148 insertions(+), 3 deletions(-) diff --git a/src/app/pages/login/login.component.scss b/src/app/pages/login/login.component.scss index 0c628e3..9c3ceb1 100644 --- a/src/app/pages/login/login.component.scss +++ b/src/app/pages/login/login.component.scss @@ -49,7 +49,7 @@ text-align: center; margin-bottom: 0.488281rem; background-image:-webkit-linear-gradient(right,#f18d6f,#FF4923); - font-weight: 800; + font-weight: 900; font-family: KaiTi; -webkit-background-clip:text; font-size: 0.273438rem; diff --git a/src/app/ui/home/home.component.html b/src/app/ui/home/home.component.html index 4e103ca..f0f913a 100644 --- a/src/app/ui/home/home.component.html +++ b/src/app/ui/home/home.component.html @@ -1,3 +1,31 @@

    diff --git a/src/app/ui/home/home.component.scss b/src/app/ui/home/home.component.scss index eeabf97..9c713f1 100644 --- a/src/app/ui/home/home.component.scss +++ b/src/app/ui/home/home.component.scss @@ -3,5 +3,82 @@ height: 100%; box-sizing: border-box; padding: 0.009766rem; + display: flex; + flex-direction: column; overflow: hidden; + header { + width: 100%; + height: 0.585938rem; + line-height: 0.585938rem; + text-align: center; + position: relative; + label { font-weight: 550; } + .floatRight { + position: absolute; + top: 0.146484rem; + right: 0.244141rem; + height: 0.292969rem; + line-height: 0.292969rem; + font-size: 0.136719rem; + .mat-icon { + vertical-align: middle; + cursor: pointer; + color: #999; + margin-left: 0.048828rem; + } + } + } + .center { + flex: 1; + background: #F4F5F9; + display: flex; + flex-direction: column; + padding: 0.097656rem; + box-sizing: border-box; + overflow: hidden; + } +} + +//头部 +.oneColor { + background-image:-webkit-linear-gradient(right,#f18d6f,#FF4923); + -webkit-background-clip:text; + -webkit-text-fill-color:transparent; +} +.twoColor { + background-image:-webkit-linear-gradient(right,rgb(38, 91, 238),skyblue,); + -webkit-background-clip:text; + -webkit-text-fill-color:transparent; +} +button.mat-menu-item { text-align: center; } + +//中间内容区 +.centerHeader { + width: 100%; + height: 0.488281rem; + display: flex; + justify-content: center; + align-items: center; + div { margin: 0 0.097656rem } + input { + height: 0.292969rem; + line-height: 0.292969rem; + padding-left: 0.048828rem; + border-radius: 0.195313rem; + outline: none; + border: 0.009766rem solid #999; + } + button { + width: 0.78125rem; + height: 0.341797rem; + line-height: 0.341797rem; + border-radius: 0.195313rem; + outline: none; + border: none; + color: #fff; + } +} +.mat-datepicker-toggle{ vertical-align: middle; } +.centerTable { + flex: 1; } \ No newline at end of file diff --git a/src/app/ui/home/home.component.ts b/src/app/ui/home/home.component.ts index 73acf06..1642a5e 100644 --- a/src/app/ui/home/home.component.ts +++ b/src/app/ui/home/home.component.ts @@ -1,4 +1,11 @@ +import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { DateAdapter } from '@angular/material/core'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; +import { Router } from '@angular/router'; +import { CacheTokenService } from 'src/app/http-interceptors/cache-token.service'; @Component({ selector: 'app-home', @@ -7,9 +14,42 @@ import { Component, OnInit } from '@angular/core'; }) export class HomeComponent implements OnInit { - constructor() { } + constructor(private http:HttpClient,public token:CacheTokenService,public dialog: MatDialog,private router:Router,public snackBar: MatSnackBar,private adapter: DateAdapter,) { } ngOnInit(): void { + this.adapter.setLocale('CH'); + this.enddate = new FormControl(new Date()); //日历结束时间显示 } + enddate:any; //查询时间 + + //退出系统 + signOut () { + let out = confirm("您确定要退出吗") + if(out) { + this.http.post('/api/Account/SignOut',{}).subscribe(data=> { + this.token.delete() + sessionStorage.clear() + window.localStorage.clear() + this.router.navigate(['/login']) + const config = new MatSnackBarConfig(); + config.verticalPosition = 'bottom'; + config.duration = 3000 + this.snackBar.open('成功退出','确定',config); + }) + } + } + + //查询 + query () { + + } + + //新增 + add () { + + } + + + } From 34bf90a750370b61af0c6470e23949c66be79975 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 6 Nov 2020 08:26:34 +0800 Subject: [PATCH 5/8] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=85=AD=E7=86=9F=E6=82=89=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app-routing.module.ts | 3 + src/app/navigation/navigation.component.html | 2 +- src/app/pages/pages.module.ts | 4 - .../ui/add-six-familiar/Select-unit-list.html | 11 +++ .../add-six-familiar.component.html | 37 +++++++++ .../add-six-familiar.component.scss | 75 +++++++++++++++++++ .../add-six-familiar.component.spec.ts | 25 +++++++ .../add-six-familiar.component.ts | 42 +++++++++++ src/app/ui/title/title.component.html | 8 ++ src/app/ui/title/title.component.scss | 26 +++++++ src/app/ui/title/title.component.spec.ts | 25 +++++++ src/app/ui/title/title.component.ts | 21 ++++++ src/app/ui/ui-routing.module.ts | 1 + src/app/ui/ui.module.ts | 8 +- 14 files changed, 281 insertions(+), 7 deletions(-) create mode 100644 src/app/ui/add-six-familiar/Select-unit-list.html create mode 100644 src/app/ui/add-six-familiar/add-six-familiar.component.html create mode 100644 src/app/ui/add-six-familiar/add-six-familiar.component.scss create mode 100644 src/app/ui/add-six-familiar/add-six-familiar.component.spec.ts create mode 100644 src/app/ui/add-six-familiar/add-six-familiar.component.ts create mode 100644 src/app/ui/title/title.component.html create mode 100644 src/app/ui/title/title.component.scss create mode 100644 src/app/ui/title/title.component.spec.ts create mode 100644 src/app/ui/title/title.component.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index f1f49c3..d1033bd 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -7,6 +7,7 @@ import {HomeComponent} from './home/home.component' //路由守卫 import {AuthGuard} from './auth.guard' import {MTokenK1Component} from './m-token-k1/m-token-k1.component' //K1秘钥 +import { AddSixFamiliarComponent } from './ui/add-six-familiar/add-six-familiar.component'; @@ -24,6 +25,8 @@ const routes: Routes = [ {path:'visualization',component: HomeComponent} ] }, + {path:'addsixfamiliar', + component:AddSixFamiliarComponent}, {path:'login', component:LoginComponent}, diff --git a/src/app/navigation/navigation.component.html b/src/app/navigation/navigation.component.html index 61e4648..2e106bd 100644 --- a/src/app/navigation/navigation.component.html +++ b/src/app/navigation/navigation.component.html @@ -58,7 +58,7 @@
    - +
    diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts index 429a055..6da8972 100644 --- a/src/app/pages/pages.module.ts +++ b/src/app/pages/pages.module.ts @@ -53,10 +53,8 @@ import { HomeComponent } from './home/home.component'; @NgModule({ declarations: [PagesComponent, LoginComponent, RegisterComponent, HomeComponent], imports: [ - PagesRoutingModule, CommonModule, - A11yModule, CdkStepperModule, CdkTableModule, @@ -99,11 +97,9 @@ import { HomeComponent } from './home/home.component'; MatTreeModule, PortalModule, ScrollingModule, - FormsModule, ReactiveFormsModule, RouterModule - // PagesRoutingModule, ] }) export class PagesModule { } diff --git a/src/app/ui/add-six-familiar/Select-unit-list.html b/src/app/ui/add-six-familiar/Select-unit-list.html new file mode 100644 index 0000000..9d9caac --- /dev/null +++ b/src/app/ui/add-six-familiar/Select-unit-list.html @@ -0,0 +1,11 @@ +
    +
    +
    + 单位名称 : + +
    +
    +
    + +
    +
    \ No newline at end of file diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.html b/src/app/ui/add-six-familiar/add-six-familiar.component.html new file mode 100644 index 0000000..1aa8209 --- /dev/null +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.html @@ -0,0 +1,37 @@ +
    + +
    + + + 熟悉对象 + + + + 详细地址 + + + + 联系人 + + + + 联系人电话 + + + + 熟悉人员数量 + + + + 带队领导 + + + +
    + + +
    +
    + +
    + diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.scss b/src/app/ui/add-six-familiar/add-six-familiar.component.scss new file mode 100644 index 0000000..b6ddcdb --- /dev/null +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.scss @@ -0,0 +1,75 @@ +.bigbox{ + width: 10rem; + height: 7.5rem; + position: relative; + background: #F4F5F9; + .content{ + width: 10rem; + height: 6.71875rem; + .list{ + margin-top: 0.117188rem; + mat-list-item{ + background-color: #fff; + margin-bottom: 1px; + position: relative; + height: 0.46875rem; + line-height: 0.46875rem; + font-size: 0.15625rem; + .name{ + margin-left: 0.175781rem; + } + input{ + position: absolute; + right: 0; + text-align: right; + height: 0.46875rem; + line-height: 0.46875rem; + font-size: 0.15625rem; + border: none; + width: 8.300781rem; + padding-right: 0.292969rem; + } + } + } + } + .btnbox{ + display: flex; + justify-content: center; + margin-top: 2.929688rem; + button{ + width: 1.757813rem; + height: 0.46875rem; + line-height: 0.46875rem; + text-align: center; + border-radius: 0.292969rem; + border: none; + opacity: 1; + font-size: 16px; + } + .ok{ + background: linear-gradient(337deg, #FC7045 0%, #FF4923 100%); + color: #fff; + margin-right: 0.097656rem; + } + .cancel{ + background: #E9EAF3; + color: black; + margin-left: 0.097656rem; + } + } +} + +.dialogbox{ + width: 7.617188rem; + height: 5.859375rem; + .topbox{ + span{ + font-size: 0.15625rem; + } + input{ + height: 20px; + line-height: 20px; + font-size: 0.15625rem; + } + } +} \ No newline at end of file diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.spec.ts b/src/app/ui/add-six-familiar/add-six-familiar.component.spec.ts new file mode 100644 index 0000000..8450a37 --- /dev/null +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AddSixFamiliarComponent } from './add-six-familiar.component'; + +describe('AddSixFamiliarComponent', () => { + let component: AddSixFamiliarComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AddSixFamiliarComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AddSixFamiliarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.ts b/src/app/ui/add-six-familiar/add-six-familiar.component.ts new file mode 100644 index 0000000..b563c92 --- /dev/null +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.ts @@ -0,0 +1,42 @@ +import { HttpClient } from '@angular/common/http'; +import { Component, OnInit, Inject } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +@Component({ + selector: 'app-add-six-familiar', + templateUrl: './add-six-familiar.component.html', + styleUrls: ['./add-six-familiar.component.scss'] +}) +export class AddSixFamiliarComponent implements OnInit { + + constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } + title:String = "新增六熟悉记录" + ngOnInit(): void { + } + //选择单位 + openUnitList(){ + let dialogRef = this.dialog.open(SelectUnit); + dialogRef.afterClosed().subscribe(data=>{ + + }); + } +} + + + +//选择单位 +@Component({ + selector: 'app-editBuilding', + templateUrl: './Select-unit-list.html', + styleUrls: ['./add-six-familiar.component.scss'] +}) +export class SelectUnit { + + constructor(private http:HttpClient,public dialog: MatDialog,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) { } + + + ngOnInit(): void { + + } + +} \ No newline at end of file diff --git a/src/app/ui/title/title.component.html b/src/app/ui/title/title.component.html new file mode 100644 index 0000000..80a2c38 --- /dev/null +++ b/src/app/ui/title/title.component.html @@ -0,0 +1,8 @@ +
    + + + {{title}} + +
    \ No newline at end of file diff --git a/src/app/ui/title/title.component.scss b/src/app/ui/title/title.component.scss new file mode 100644 index 0000000..e22fdde --- /dev/null +++ b/src/app/ui/title/title.component.scss @@ -0,0 +1,26 @@ +.tltleBox{ + text-align: center; + width: 10rem; + height: 0.585938rem; + line-height: 0.585938rem; + position: relative; + background: #FFFFFF; + top: 0; + .icon{ + position: absolute; + left: 0.292969rem; + top: 50%; + transform: translateY(-50%); + mat-icon{ + vertical-align: text-top; + width: 40px; + height: 40px; + font-size: 40px; + } + } + .text{ + font-size: 0.195313rem; + font-family: Source Han Sans CN; + font-weight: 500; + } +} \ No newline at end of file diff --git a/src/app/ui/title/title.component.spec.ts b/src/app/ui/title/title.component.spec.ts new file mode 100644 index 0000000..df219fa --- /dev/null +++ b/src/app/ui/title/title.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TitleComponent } from './title.component'; + +describe('TitleComponent', () => { + let component: TitleComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TitleComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TitleComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/title/title.component.ts b/src/app/ui/title/title.component.ts new file mode 100644 index 0000000..45dee00 --- /dev/null +++ b/src/app/ui/title/title.component.ts @@ -0,0 +1,21 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-title', + templateUrl: './title.component.html', + styleUrls: ['./title.component.scss'] +}) +export class TitleComponent implements OnInit { + + //传入标题名称 + @Input() title + + constructor() { } + + ngOnInit(): void { + + } + goBack(){ + window.history.back(); + } +} diff --git a/src/app/ui/ui-routing.module.ts b/src/app/ui/ui-routing.module.ts index 89d2eb1..50aef13 100644 --- a/src/app/ui/ui-routing.module.ts +++ b/src/app/ui/ui-routing.module.ts @@ -4,6 +4,7 @@ import { UiComponent } from './ui.component'; import { PaginatorComponent } from './paginator/paginator.component'; import { UserdataComponent } from './userdata/userdata.component'; import { CollectionToolsComponent } from './collection-tools/collection-tools.component'; +import { AddSixFamiliarComponent } from './add-six-familiar/add-six-familiar.component'; diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index c9b8734..5794953 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -59,10 +59,13 @@ import { CollectionToolsComponent, CreateBuilding, EditBuilding, ViewDetails } f import { WorkingAreaComponent } from '../working-area/working-area.component'; import {leftFunctionalDomainComponent,editPlaneFigureComponent,addDisposalNodeComponent,editDisposalNodeComponent} from './collection-tools/leftFunctionalDomain' import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; +import { AddSixFamiliarComponent, SelectUnit } from './add-six-familiar/add-six-familiar.component'; +import { TitleComponent } from './title/title.component'; @NgModule({ - declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent], + declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent, AddSixFamiliarComponent, TitleComponent, SelectUnit], imports: [ + CommonModule, UiRoutingModule, A11yModule, @@ -111,7 +114,8 @@ import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; ReactiveFormsModule, FormsModule, PaginatorModule, - FileUploadModule + FileUploadModule, + ], From e1bf251bb9bb188a51e2cd5f70951be30eeedd38 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 6 Nov 2020 08:31:43 +0800 Subject: [PATCH 6/8] =?UTF-8?q?[=E5=90=88=E5=B9=B6]=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app-routing.module.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index d1033bd..1bc35b5 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -2,16 +2,17 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { LoginComponent } from './pages/login/login.component'; import { NavigationComponent } from './navigation/navigation.component'; -import {HomeComponent} from './home/home.component' +import { HomeComponent } from './home/home.component' //路由守卫 -import {AuthGuard} from './auth.guard' -import {MTokenK1Component} from './m-token-k1/m-token-k1.component' //K1秘钥 +import { AuthGuard } from './auth.guard' +import { MTokenK1Component } from './m-token-k1/m-token-k1.component' //K1秘钥 import { AddSixFamiliarComponent } from './ui/add-six-familiar/add-six-familiar.component'; + const routes: Routes = [ {path:'',redirectTo:'login',pathMatch:'full'}, { @@ -31,8 +32,11 @@ const routes: Routes = [ component:LoginComponent}, {path:'getNoMToken', - component:MTokenK1Component, canActivate: [AuthGuard],}, //K1秘钥验证失败是跳转页面 -]; + component:MTokenK1Component, canActivate: [AuthGuard],}, + //K1秘钥验证失败是跳转页面 + {path:'home', component:HomeComponent,canActivate: [AuthGuard],}//守卫验证 + ] + @NgModule({ imports: [RouterModule.forRoot(routes)], From 39d78531d78995fccfce8d4a2de7778b834ab145 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 6 Nov 2020 10:06:01 +0800 Subject: [PATCH 7/8] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E8=AE=B0=E5=BD=95=E9=80=89=E9=A1=B9=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app-routing.module.ts | 7 +- .../ui/add-six-familiar/Select-unit-list.html | 12 +++- .../add-six-familiar.component.html | 16 ++--- .../add-six-familiar.component.scss | 21 +++++- .../add-six-familiar.component.ts | 68 ++++++++++++++++++- .../training-recordinfo.component.html | 24 +++++++ .../training-recordinfo.component.scss | 23 +++++++ .../training-recordinfo.component.spec.ts | 25 +++++++ .../training-recordinfo.component.ts | 15 ++++ src/app/ui/ui.module.ts | 3 +- 10 files changed, 196 insertions(+), 18 deletions(-) create mode 100644 src/app/ui/training-recordinfo/training-recordinfo.component.html create mode 100644 src/app/ui/training-recordinfo/training-recordinfo.component.scss create mode 100644 src/app/ui/training-recordinfo/training-recordinfo.component.spec.ts create mode 100644 src/app/ui/training-recordinfo/training-recordinfo.component.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 1bc35b5..1b4c265 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -8,6 +8,7 @@ import { HomeComponent } from './home/home.component' import { AuthGuard } from './auth.guard' import { MTokenK1Component } from './m-token-k1/m-token-k1.component' //K1秘钥 import { AddSixFamiliarComponent } from './ui/add-six-familiar/add-six-familiar.component'; +import { TrainingRecordinfoComponent } from './ui/training-recordinfo/training-recordinfo.component'; @@ -28,14 +29,16 @@ const routes: Routes = [ }, {path:'addsixfamiliar', component:AddSixFamiliarComponent}, + {path:'trainingrecordinfo', + component:TrainingRecordinfoComponent}, {path:'login', component:LoginComponent}, {path:'getNoMToken', component:MTokenK1Component, canActivate: [AuthGuard],}, //K1秘钥验证失败是跳转页面 - {path:'home', component:HomeComponent,canActivate: [AuthGuard],}//守卫验证 - ] + {path:'home', component:HomeComponent,canActivate: [AuthGuard],}//守卫验证 +] @NgModule({ diff --git a/src/app/ui/add-six-familiar/Select-unit-list.html b/src/app/ui/add-six-familiar/Select-unit-list.html index 9d9caac..13f572f 100644 --- a/src/app/ui/add-six-familiar/Select-unit-list.html +++ b/src/app/ui/add-six-familiar/Select-unit-list.html @@ -2,10 +2,18 @@
    单位名称 : - + +
    +
    + +
    +
    +
    - +
      +
    • {{item.name}}
    • +
    \ No newline at end of file diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.html b/src/app/ui/add-six-familiar/add-six-familiar.component.html index 1aa8209..57fa8f5 100644 --- a/src/app/ui/add-six-familiar/add-six-familiar.component.html +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.html @@ -4,32 +4,32 @@ 熟悉对象 - + 详细地址 - + 联系人 - + 联系人电话 - + 熟悉人员数量 - + 带队领导 - +
    - - + +
    diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.scss b/src/app/ui/add-six-familiar/add-six-familiar.component.scss index b6ddcdb..a941d86 100644 --- a/src/app/ui/add-six-familiar/add-six-familiar.component.scss +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.scss @@ -63,13 +63,30 @@ width: 7.617188rem; height: 5.859375rem; .topbox{ + height: 0.488281rem; + line-height: 0.488281rem; + display: flex; + justify-content: space-between; + border-bottom: 1px solid black; span{ font-size: 0.15625rem; } input{ - height: 20px; - line-height: 20px; + height: 0.195313rem; + line-height: 0.195313rem; font-size: 0.15625rem; } } + .listbox{ + height: 5.3rem; + overflow-y: auto; + li{ + z-index: 888; + font-size: 0.175781rem; + margin: 3px 0; + } + li:hover{ + background-color: #FC7045; + } + } } \ No newline at end of file diff --git a/src/app/ui/add-six-familiar/add-six-familiar.component.ts b/src/app/ui/add-six-familiar/add-six-familiar.component.ts index b563c92..c0b0177 100644 --- a/src/app/ui/add-six-familiar/add-six-familiar.component.ts +++ b/src/app/ui/add-six-familiar/add-six-familiar.component.ts @@ -1,7 +1,7 @@ import { HttpClient } from '@angular/common/http'; import { Component, OnInit, Inject } from '@angular/core'; -import { MatSnackBar } from '@angular/material/snack-bar'; import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; @Component({ selector: 'app-add-six-familiar', templateUrl: './add-six-familiar.component.html', @@ -11,15 +11,43 @@ export class AddSixFamiliarComponent implements OnInit { constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { } title:String = "新增六熟悉记录" + + unitname:any + address:any + contactname:any + contactphone:any + peoplenum:any + leadname:any ngOnInit(): void { } //选择单位 openUnitList(){ let dialogRef = this.dialog.open(SelectUnit); dialogRef.afterClosed().subscribe(data=>{ - + if(data){ + this.unitname = data.name + this.address = data.address + this.contactname = data.contacts + this.contactphone = data.phone + } }); } + //确定 + ok(){ + console.log(this.unitname) + if(this.unitname && this.address && this.contactname && this.contactphone && this.peoplenum && this.leadname){ + + }else{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('存在未填项','确定',config) + } + } + //取消 + cancel(){ + + } } @@ -34,9 +62,43 @@ export class SelectUnit { constructor(private http:HttpClient,public dialog: MatDialog,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data) { } - + unitName:any //输入的单位名 + allUnitList:any ngOnInit(): void { + this.getAllKeyUnit() + } + //获得所有单位 + getAllKeyUnit(){ + let paramsdata:any = { + Name: this.unitName || '', + OrganizationId: '', + HasChildren: '', + USCI:'', + IsFollowed: '', + BuildingTypeId: '', + PageNumber:'1', + PageSize: 100, + Sort: '' + } + this.http.get("/api/Companies",{params:paramsdata}).subscribe((data:any)=>{ + this.allUnitList = data.items + console.log(789,data.items) + }) + } + + selectedUnit:any//选中的单位 + selected(item){ + this.selectedUnit = item + console.log(item) } + //搜索 + search(){ + this.getAllKeyUnit() + } + //确定选择 + ok(){ + this.dialogRef.close(this.selectedUnit); + } } \ No newline at end of file diff --git a/src/app/ui/training-recordinfo/training-recordinfo.component.html b/src/app/ui/training-recordinfo/training-recordinfo.component.html new file mode 100644 index 0000000..cd69c2e --- /dev/null +++ b/src/app/ui/training-recordinfo/training-recordinfo.component.html @@ -0,0 +1,24 @@ +
    +
    + +
    + +
    +
    + + + 行驶路线 + + 熟悉路线 + 单位基本情况 + 平面图 + 安全疏散设施情况 + 消防设施情况 + 水源道路情况 + 重点部位情况 + 发现问题 + 现场照片 + +
    +
    +
    \ No newline at end of file diff --git a/src/app/ui/training-recordinfo/training-recordinfo.component.scss b/src/app/ui/training-recordinfo/training-recordinfo.component.scss new file mode 100644 index 0000000..b3c59e4 --- /dev/null +++ b/src/app/ui/training-recordinfo/training-recordinfo.component.scss @@ -0,0 +1,23 @@ +.bigbox{ + width: 10rem; + height: 100%; + background: #F4F5F9; + overflow: hidden; + .title{ + width: 10rem; + height: 0.585938rem; + + } + .content{ + width: 10rem; + height: 6.71875rem; + .cardbox{ + margin: 0 auto; + margin-top:0.195313rem; + background-color: #fff; + border-radius: 0.048828rem; + width:9.570313rem; + height: 6.523438rem; + } + } +} \ No newline at end of file diff --git a/src/app/ui/training-recordinfo/training-recordinfo.component.spec.ts b/src/app/ui/training-recordinfo/training-recordinfo.component.spec.ts new file mode 100644 index 0000000..523082c --- /dev/null +++ b/src/app/ui/training-recordinfo/training-recordinfo.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TrainingRecordinfoComponent } from './training-recordinfo.component'; + +describe('TrainingRecordinfoComponent', () => { + let component: TrainingRecordinfoComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TrainingRecordinfoComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TrainingRecordinfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/training-recordinfo/training-recordinfo.component.ts b/src/app/ui/training-recordinfo/training-recordinfo.component.ts new file mode 100644 index 0000000..8147b0d --- /dev/null +++ b/src/app/ui/training-recordinfo/training-recordinfo.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-training-recordinfo', + templateUrl: './training-recordinfo.component.html', + styleUrls: ['./training-recordinfo.component.scss'] +}) +export class TrainingRecordinfoComponent implements OnInit { + + constructor() { } + title:any = "训练记录信息" + ngOnInit(): void { + } + +} diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index d7f5322..9e5005e 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -62,8 +62,9 @@ import { saveOneDialog, saveTwoDialog } from './collection-tools/save'; import { AddSixFamiliarComponent, SelectUnit } from './add-six-familiar/add-six-familiar.component'; import { TitleComponent } from './title/title.component' import { HomeComponent } from './home/home.component'; +import { TrainingRecordinfoComponent } from './training-recordinfo/training-recordinfo.component'; @NgModule({ - declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent,HomeComponent, AddSixFamiliarComponent, TitleComponent, SelectUnit], + declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent,HomeComponent, AddSixFamiliarComponent, TitleComponent, SelectUnit, TrainingRecordinfoComponent], imports: [ From 78380822636564679c7c24224440334a15ca264a Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 6 Nov 2020 10:23:07 +0800 Subject: [PATCH 8/8] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E5=A4=96=E9=83=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.module.ts | 4 +++- src/app/key-unit/key-unit.module.ts | 3 +-- .../ui/training-recordinfo/training-recordinfo.component.html | 4 +++- src/app/ui/ui.module.ts | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index eea1f7b..56a0618 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -19,6 +19,7 @@ import {CacheTokenService} from './http-interceptors/cache-token.service' import { TreeService } from'./http-interceptors/tree.service'; import { MTokenK1Component } from './m-token-k1/m-token-k1.component' //K1秘钥 import { CountdownModule } from 'ngx-countdown'; //倒计时插件 +import { KeyUnitModule } from './key-unit/key-unit.module'; @NgModule({ declarations: [ @@ -38,7 +39,8 @@ import { CountdownModule } from 'ngx-countdown'; //倒计时插件 PagesModule, FormsModule, HttpClientModule, - CountdownModule + CountdownModule, + KeyUnitModule ], providers: [httpInterceptorProviders, CacheTokenService,TreeService], bootstrap: [AppComponent] diff --git a/src/app/key-unit/key-unit.module.ts b/src/app/key-unit/key-unit.module.ts index 6bc8ca4..c536b4c 100644 --- a/src/app/key-unit/key-unit.module.ts +++ b/src/app/key-unit/key-unit.module.ts @@ -74,12 +74,11 @@ import { FireFightingDeviceLookComponent } from './fire-fighting-device-look/fir import { ImagesData2, previewBigImg2 } from './fire-fighting-device-look/imagesdata.component'; import { ImgsDataDetail2 } from './fire-fighting-device-look/addGrouping.component'; import { LookMaster2 } from './basicinfo-look/lookmaster.component'; -// import { LookMaster2 } from './basicinfo-look/lookmaster.component'; import { UiModule } from '../../app/ui/ui.module' @NgModule({ declarations: [KeyUnitManagementComponent, EditUnitInfoComponent, ViewUnitDetailsComponent,CreateUnit,BasicinfoComponent,LookMaster,AddHouseInfo, EditPlanInfoComponent,BasicinfoLookComponent, ViewUnitDetailsPlanComponent,FunctionDivisionComponent,addPartition,addPartitionAttribute,AllaroundComponent,ImgDetails,RealisticPictureComponent,previewImg,addRealPicture,editRealPicture,KeySiteComponent,KeyImgDetail,KeySiteImgs,UploadingCADComponent,readFile,editFile,KeySiteLookComponent,KeySiteImgs2,FunctionDivisionLookComponent,RealisticPictureLookComponent,previewImg3,UploadingCADLookComponent,FireFightingDeviceComponent,ImagesData,previewBigImg,ImgsDataDetail,FireFightingDeviceLookComponent,ImagesData2,ImgsDataDetail2,previewBigImg2,LookMaster2,addPartitionAttribute2], - exports:[ViewUnitDetailsPlanComponent], + exports:[ViewUnitDetailsPlanComponent,BasicinfoComponent], imports: [ CommonModule, KeyUnitRoutingModule, diff --git a/src/app/ui/training-recordinfo/training-recordinfo.component.html b/src/app/ui/training-recordinfo/training-recordinfo.component.html index cd69c2e..98c29bc 100644 --- a/src/app/ui/training-recordinfo/training-recordinfo.component.html +++ b/src/app/ui/training-recordinfo/training-recordinfo.component.html @@ -10,7 +10,9 @@ 行驶路线 熟悉路线 - 单位基本情况 + + + 平面图 安全疏散设施情况 消防设施情况 diff --git a/src/app/ui/ui.module.ts b/src/app/ui/ui.module.ts index 9e5005e..e3aec45 100644 --- a/src/app/ui/ui.module.ts +++ b/src/app/ui/ui.module.ts @@ -63,11 +63,12 @@ import { AddSixFamiliarComponent, SelectUnit } from './add-six-familiar/add-six- import { TitleComponent } from './title/title.component' import { HomeComponent } from './home/home.component'; import { TrainingRecordinfoComponent } from './training-recordinfo/training-recordinfo.component'; +import { BasicinfoComponent } from '../key-unit/basicinfo/basicinfo.component'; +import { KeyUnitModule } from '../key-unit/key-unit.module'; @NgModule({ declarations: [UiComponent, FooterComponent, UserdataComponent, ChangepasswordComponent,IsnoPipe,ConfirmpswDirective,TimePipe,EditUser,CollectionToolsComponent,WorkingAreaComponent,CreateBuilding,EditBuilding,leftFunctionalDomainComponent,editPlaneFigureComponent,ViewDetails,saveOneDialog,saveTwoDialog,addDisposalNodeComponent,editDisposalNodeComponent,HomeComponent, AddSixFamiliarComponent, TitleComponent, SelectUnit, TrainingRecordinfoComponent], imports: [ - CommonModule, UiRoutingModule, A11yModule, @@ -117,7 +118,6 @@ import { TrainingRecordinfoComponent } from './training-recordinfo/training-reco FormsModule, PaginatorModule, FileUploadModule, - ],