From 074d4b74099c82f79ab1758c94e1dcb60a236291 Mon Sep 17 00:00:00 2001 From: liweijin <610336687@qq.com> Date: Mon, 19 Nov 2018 20:58:55 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- angular.json | 2 +- package-lock.json | 8 ++ src/app/components/components.module.ts | 19 +++- .../request-status.component.html | 13 +++ .../request-status.component.scss | 23 +++++ .../request-status.component.spec.ts | 25 +++++ .../request-status.component.ts | 18 ++++ src/app/pages/main.scss | 37 +++++++- .../system-management.module.ts | 7 +- .../user-management.component.html | 71 +++++++++++++- .../user-management.component.scss | 2 +- .../user-management.component.ts | 93 ++++++++++++------- 12 files changed, 269 insertions(+), 49 deletions(-) create mode 100644 src/app/components/request-status/request-status.component.html create mode 100644 src/app/components/request-status/request-status.component.scss create mode 100644 src/app/components/request-status/request-status.component.spec.ts create mode 100644 src/app/components/request-status/request-status.component.ts diff --git a/angular.json b/angular.json index 04d0a07..d3ec304 100644 --- a/angular.json +++ b/angular.json @@ -36,7 +36,7 @@ "node_modules/font-awesome/scss/font-awesome.scss", "node_modules/ng-zorro-antd/ng-zorro-antd.min.css", "src/styles.scss", - "node_modules/ztree/css/zTreeStyle/zTreeStyle.css" + "node_modules/ztree/css/metroStyle/metroStyle.css" ], "scripts": [ "node_modules/jquery/dist/jquery.min.js", diff --git a/package-lock.json b/package-lock.json index dababff..f3774bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10580,6 +10580,14 @@ "version": "0.8.26", "resolved": "http://registry.npm.taobao.org/zone.js/download/zone.js-0.8.26.tgz", "integrity": "sha1-e91y92aMWnrWsRgUi06jnFnQjS0=" + }, + "ztree": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/ztree/-/ztree-3.5.24.tgz", + "integrity": "sha1-tj/lKYH98sMpZ1z9J3Lw0UdSH/E=", + "requires": { + "jquery": "3.3.1" + } } } } diff --git a/src/app/components/components.module.ts b/src/app/components/components.module.ts index 73d060f..2df3bcc 100644 --- a/src/app/components/components.module.ts +++ b/src/app/components/components.module.ts @@ -1,9 +1,15 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { PageTopModule } from './page-top/page-top.module' //头部 -import { ToastModule } from './toast/toast.module' //消息提示 -import { SidebarMenuModule } from './sidebar-menu/sidebar-menu.module' +import { PageTopModule } from './page-top/page-top.module'; //头部 +import { ToastModule } from './toast/toast.module'; //消息提示 +import { SidebarMenuModule } from './sidebar-menu/sidebar-menu.module'; +import { RequestStatusComponent } from './request-status/request-status.component'; +import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd'; + +import { registerLocaleData } from '@angular/common'; +import zh from '@angular/common/locales/zh'; +registerLocaleData(zh); @NgModule({ imports: [ @@ -11,12 +17,17 @@ import { SidebarMenuModule } from './sidebar-menu/sidebar-menu.module' PageTopModule, ToastModule, SidebarMenuModule, + NgZorroAntdModule ], - declarations: [], + declarations: [ + RequestStatusComponent, + ], + providers : [ { provide: NZ_I18N, useValue: zh_CN } ], exports: [ PageTopModule, ToastModule, SidebarMenuModule, + RequestStatusComponent, ] }) export class ComponentsModule { } diff --git a/src/app/components/request-status/request-status.component.html b/src/app/components/request-status/request-status.component.html new file mode 100644 index 0000000..a99931f --- /dev/null +++ b/src/app/components/request-status/request-status.component.html @@ -0,0 +1,13 @@ +
+
+ +
+
+ + 请求失败 +
+
+ 暂无数据 +
+
+ diff --git a/src/app/components/request-status/request-status.component.scss b/src/app/components/request-status/request-status.component.scss new file mode 100644 index 0000000..12599e2 --- /dev/null +++ b/src/app/components/request-status/request-status.component.scss @@ -0,0 +1,23 @@ +.position-center-box{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + text-align: center; + .loading-icon{ + color: #1890ff; + } + .warning-icon{ + color: orange + } + .data-null{ + + } + i{ + font-size: 40px; + } + .result-text{ + display: block; + padding-top: 10px; + } +} \ No newline at end of file diff --git a/src/app/components/request-status/request-status.component.spec.ts b/src/app/components/request-status/request-status.component.spec.ts new file mode 100644 index 0000000..fe15b7a --- /dev/null +++ b/src/app/components/request-status/request-status.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RequestStatusComponent } from './request-status.component'; + +describe('RequestStatusComponent', () => { + let component: RequestStatusComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ RequestStatusComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RequestStatusComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/request-status/request-status.component.ts b/src/app/components/request-status/request-status.component.ts new file mode 100644 index 0000000..9d43bcc --- /dev/null +++ b/src/app/components/request-status/request-status.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit,Input } from '@angular/core'; + +@Component({ + selector: 'app-request-status', + templateUrl: './request-status.component.html', + styleUrls: ['./request-status.component.scss'] +}) +export class RequestStatusComponent implements OnInit { + //该组件使用,要求父级标签position:relative。 + @Input() statusParams={ + status:1, //接口的状态,0请求失败 1请求前loading 2请求中 3请求成功,有数据 4请求成功,无数据 + } + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/pages/main.scss b/src/app/pages/main.scss index c998948..92213a7 100644 --- a/src/app/pages/main.scss +++ b/src/app/pages/main.scss @@ -1,12 +1,31 @@ +/* 基础样式 */ +.mr10{ + margin-right: 10px; +} +.red{ + color: red; +} +.orange{ + color: orange; +} + .system-main-container { + position: relative; padding: 20px 20px; width: 100%; height: 100%; min-height: 300px; background-color: #f0f0f0; - .system-main-body{ + overflow-y: scroll; + .system-main-content{ height: 100%; - width: 100%; + min-height: 600px; + .search-box{ + + } + .table-box{ + + } } } .card{ @@ -14,9 +33,14 @@ background: #fff; padding: 20px; box-shadow: 1px 1px 4px 1px rgba(0,0,0,0.15); + border-radius: 0; } .tree-box{ + position: relative; + min-width: 300px; + min-height: 600px; + margin-right: 10px; float: left; padding: 20px; height: 100%; @@ -24,6 +48,15 @@ box-shadow: 1px 1px 4px 1px rgba(0,0,0,0.15); } +.page-box{ + text-align: center; + margin-top: 30px; + margin-bottom: 10px; +} +.table-operation-box{ + margin-bottom: 16px; +} + /* 目录树样式 */ :host /deep/ ul.tree{ diff --git a/src/app/pages/system-management/system-management.module.ts b/src/app/pages/system-management/system-management.module.ts index 7791f3e..313ceae 100644 --- a/src/app/pages/system-management/system-management.module.ts +++ b/src/app/pages/system-management/system-management.module.ts @@ -11,7 +11,7 @@ import { OperationLogsComponent } from './operation-logs/operation-logs.componen import { DataSynchronizeComponent } from './data-synchronize/data-synchronize.component'; -import { SystemManagementRouting } from './system-management-routing.module' +import { SystemManagementRouting } from './system-management-routing.module'; import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd'; import { registerLocaleData } from '@angular/common'; @@ -20,7 +20,7 @@ registerLocaleData(zh); import { ColorSettingsComponent } from './personal-settings/color-settings/color-settings.component'; import { MsgAlertWarningComponent } from './personal-settings/msg-alert-warning/msg-alert-warning.component'; import { FlightAgencyComponent } from './personal-settings/flight-agency/flight-agency.component'; - +import { ComponentsModule } from '../../components/components.module'; @NgModule({ imports: [ CommonModule, @@ -28,7 +28,8 @@ import { FlightAgencyComponent } from './personal-settings/flight-agency/flight- NgZorroAntdModule, ColorPickerModule, ReactiveFormsModule, - FormsModule + FormsModule, + ComponentsModule ], declarations: [ SystemManagementComponent, diff --git a/src/app/pages/system-management/user-management/user-management.component.html b/src/app/pages/system-management/user-management/user-management.component.html index 6d449f1..eaf3837 100644 --- a/src/app/pages/system-management/user-management/user-management.component.html +++ b/src/app/pages/system-management/user-management/user-management.component.html @@ -1,10 +1,75 @@
-
    + +
      -
      - +
      + +
      + + + + + 姓名 + + 性别 + 用户名 + 邮箱 + 电话 + 操作 + + + + + {{item.real_name}} + + + + + {{item.login_name}} + {{item.email}} + {{item.mobile}} + + + + + +
      +
      + +
      + \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management.component.scss b/src/app/pages/system-management/user-management/user-management.component.scss index c251a11..bea8707 100644 --- a/src/app/pages/system-management/user-management/user-management.component.scss +++ b/src/app/pages/system-management/user-management/user-management.component.scss @@ -2,4 +2,4 @@ .card{ } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management.component.ts b/src/app/pages/system-management/user-management/user-management.component.ts index fa650e0..96f472f 100644 --- a/src/app/pages/system-management/user-management/user-management.component.ts +++ b/src/app/pages/system-management/user-management/user-management.component.ts @@ -12,16 +12,22 @@ declare var jQuery: any; }) export class UserManagementComponent implements OnInit { treeSelected:any; //树模型-当前选中项 + collectionSize:any ; + statusParamsTable:any={ //获取目录树接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 + status:1, + } + statusParamsTree:any={ //获取机构接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 + status:1, + } public search:any={ page_index:'1', page_size:'10', real_name:'', login_name:'', - orgId:'', + orgId:'', } - parentNode:any; - parentName:any; - isTreeTop:any=false; //判断是否为树最顶层 + isLoading:false; + public tableData:any=[]; constructor( private http:HttpClientService, @@ -29,17 +35,31 @@ export class UserManagementComponent implements OnInit { ngOnInit() { this.initTree(); + this.queryTable(); + } + //获取列表 + queryTable():void{ + this.statusParamsTable.status=1; + this.http.get('/sysapi/setting/user/list',this.search).subscribe((json)=>{ + if(json.is_success){ + this.tableData=json.body.list; + this.statusParamsTable.status=3; + this.collectionSize=json.body.total; + }else{ + this.statusParamsTable.status=0; + } + }) } //树模型参数设置 public zNodes: any[]; setting = { data: { simpleData: { - enable: true + enable: true } }, view: { - showLine: false, + showLine: true, dblClickExpand: false, showIcon:true }, @@ -47,47 +67,50 @@ export class UserManagementComponent implements OnInit { //节点点击事件 onClick: (event, treeId, treeNode, clickFlag) => { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); - zTree.expandNode(treeNode); this.treeSelected=treeNode; - this.search.orgId=this.treeSelected.id; - this.parentNode=this.treeSelected.getParentNode(); - if(!this.parentNode){ - this.isTreeTop=true; - }else{ - this.isTreeTop=false; + let isTopNode=this.treeSelected.getParentNode(); //是否为顶级节点 true不是顶级节点 false 为顶级节点 + if(isTopNode){ //子节点 + this.search.orgId=this.treeSelected.id; + }else{ //顶级节点 + this.search.orgId=''; } + this.queryTable(); }, - //节点展开事件 - onExpand: (event, treeId, treeNode) => { - - } }, }; //新树模型 initTree(){ //获取目录列表 + this.statusParamsTree.status=1; this.http.get("/sysapi/setting/organization/list",).subscribe(json=>{ - if(json.is_success&&json.body){ - let children=[]; - for(var i=0;i0){ + this.statusParamsTree.status=3; + let children=[]; + for(var i=0;i Date: Tue, 20 Nov 2018 18:29:13 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AF=A6=E6=83=85=E3=80=81=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pages/main.scss | 16 +- .../system-management-routing.module.ts | 7 +- .../system-management.module.ts | 2 + .../user-management-modify.component.html | 58 ++++++ .../user-management-modify.component.scss | 0 .../user-management-modify.component.spec.ts | 25 +++ .../user-management-modify.component.ts | 46 +++++ .../user-management.component.html | 168 ++++++++++++++---- .../user-management.component.scss | 7 +- .../user-management.component.ts | 63 ++++++- 10 files changed, 348 insertions(+), 44 deletions(-) create mode 100644 src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html create mode 100644 src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss create mode 100644 src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.spec.ts create mode 100644 src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts diff --git a/src/app/pages/main.scss b/src/app/pages/main.scss index 92213a7..ae745e3 100644 --- a/src/app/pages/main.scss +++ b/src/app/pages/main.scss @@ -56,7 +56,21 @@ .table-operation-box{ margin-bottom: 16px; } - +/* 表格样式 */ +.table-box { + .table-operation-btn { + padding-left: 2px; + padding-right: 2px; + cursor: pointer; + font-size: 20px; + } + .edit{ + color: #40a9ff; + } + .danger{ + color: #f86c6b; + } +} /* 目录树样式 */ :host /deep/ ul.tree{ diff --git a/src/app/pages/system-management/system-management-routing.module.ts b/src/app/pages/system-management/system-management-routing.module.ts index f3be8bc..f52016b 100644 --- a/src/app/pages/system-management/system-management-routing.module.ts +++ b/src/app/pages/system-management/system-management-routing.module.ts @@ -8,6 +8,7 @@ import { UserManagementComponent } from './user-management/user-management.compo import { DepartmentManagementComponent } from './department-management/department-management.component'; import { OperationLogsComponent } from './operation-logs/operation-logs.component'; import { DataSynchronizeComponent } from './data-synchronize/data-synchronize.component'; +import { UserManagementModifyComponent } from './user-management/user-management-modify/user-management-modify.component'; const systemManagementRoutes: Routes = [ { @@ -29,7 +30,7 @@ const systemManagementRoutes: Routes = [ }, { path: 'users', - component: UserManagementComponent + component: UserManagementComponent, }, { path: 'departments', @@ -42,6 +43,10 @@ const systemManagementRoutes: Routes = [ { path: 'synchronization', component: DataSynchronizeComponent + }, + { + path: 'users/modify', + component: UserManagementModifyComponent } ] } diff --git a/src/app/pages/system-management/system-management.module.ts b/src/app/pages/system-management/system-management.module.ts index 313ceae..9a6ff3e 100644 --- a/src/app/pages/system-management/system-management.module.ts +++ b/src/app/pages/system-management/system-management.module.ts @@ -21,6 +21,7 @@ import { ColorSettingsComponent } from './personal-settings/color-settings/color import { MsgAlertWarningComponent } from './personal-settings/msg-alert-warning/msg-alert-warning.component'; import { FlightAgencyComponent } from './personal-settings/flight-agency/flight-agency.component'; import { ComponentsModule } from '../../components/components.module'; +import { UserManagementModifyComponent } from './user-management/user-management-modify/user-management-modify.component'; @NgModule({ imports: [ CommonModule, @@ -42,6 +43,7 @@ import { ComponentsModule } from '../../components/components.module'; ColorSettingsComponent, MsgAlertWarningComponent, FlightAgencyComponent, + UserManagementModifyComponent, ], providers : [ { provide: NZ_I18N, useValue: zh_CN } ], diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html new file mode 100644 index 0000000..42ad053 --- /dev/null +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html @@ -0,0 +1,58 @@ +
      +
      +
      + + 姓名 + + + 请输入姓名 + + + + 统一身份认证账号 + + + 请输入统一身份认证账号 + + + + 本系统密码 + + + 请输入密码 + + + + 所属机构 + + + 请选择所属机构 + + + + 身份证号 + + + + + + 邮箱 + + + + + + 电话 + + + + + + + + + + +
      +
      +
      \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.spec.ts b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.spec.ts new file mode 100644 index 0000000..1a06c95 --- /dev/null +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserManagementModifyComponent } from './user-management-modify.component'; + +describe('UserManagementModifyComponent', () => { + let component: UserManagementModifyComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserManagementModifyComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserManagementModifyComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts new file mode 100644 index 0000000..b636eb9 --- /dev/null +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts @@ -0,0 +1,46 @@ +import { Component, OnInit } from '@angular/core'; +import { FormBuilder,FormControl,FormGroup,Validators} from '@angular/forms'; + +@Component({ + selector: 'app-user-management-modify', + templateUrl: './user-management-modify.component.html', + styleUrls: ['./user-management-modify.component.scss','../../../main.scss'] +}) +export class UserManagementModifyComponent implements OnInit { + validateForm: FormGroup; + + constructor( + private fb: FormBuilder + ) { } + + ngOnInit() { + this.validateForm = this.fb.group({ + real_name:[ null, [ Validators.required ] ], + loginId:[ null, [ Validators.required ] ], + password:[ null, [ Validators.required ] ], + identify_num:[ null], + email:[ null], + mobile:[ null], + }); + } + submitForm(): void { + for (const i in this.validateForm.controls) { + this.validateForm.controls[ i ].markAsDirty(); + this.validateForm.controls[ i ].updateValueAndValidity(); + } + } + updateConfirmValidator(): void { + /** wait for refresh value */ + Promise.resolve().then(() => this.validateForm.controls.checkPassword.updateValueAndValidity()); + } + + confirmationValidator = (control: FormControl): { [ s: string ]: boolean } => { + if (!control.value) { + return { required: true }; + } else if (control.value !== this.validateForm.controls.password.value) { + return { confirm: true, error: true }; + } + }; + + +} diff --git a/src/app/pages/system-management/user-management/user-management.component.html b/src/app/pages/system-management/user-management/user-management.component.html index eaf3837..091f556 100644 --- a/src/app/pages/system-management/user-management/user-management.component.html +++ b/src/app/pages/system-management/user-management/user-management.component.html @@ -11,7 +11,7 @@ 姓名 - +
      @@ -19,57 +19,151 @@ 用户名 - +
      - - + +
      - +
      -
      - - - - - 姓名 - - 性别 - 用户名 - 邮箱 - 电话 - 操作 - - - - - {{item.real_name}} - - - - - {{item.login_name}} - {{item.email}} - {{item.mobile}} - - - + +
      + + + + 姓名 + 性别 + 用户名 + 邮箱 + 电话 + 操作 + + + + + {{item.real_name}} + + + + + {{item.login_name}} + {{item.email}} + {{item.mobile}} + + + + + + + - +
      + +
      -
      - -
      +
      - \ No newline at end of file + +
      + + +
      +
      +
      + + 姓名 + {{userDetail.real_name}} + + +
      +
      + + 统一身份认证账号 + {{userDetail.loginId}} + + +
      +
      +
      +
      + + 本系统密码 + {{userDetail.password}} + + +
      +
      + + 所属机构 + {{option.organization}} + + +
      +
      +
      +
      + + 身份证号 + {{userDetail.identify_num}} + + +
      +
      + + 邮箱 + {{userDetail.email}} + + +
      +
      +
      +
      + + 电话 + {{userDetail.mobile}} + + +
      +
      + + 所属角色 + + {{option.role_name}} + + + +
      +
      +
      +
      + + 状态 + 已激活 + 未激活 + + +
      +
      + + 性别 + + + + +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management.component.scss b/src/app/pages/system-management/user-management/user-management.component.scss index bea8707..4357470 100644 --- a/src/app/pages/system-management/user-management/user-management.component.scss +++ b/src/app/pages/system-management/user-management/user-management.component.scss @@ -2,4 +2,9 @@ .card{ } -} \ No newline at end of file +} +.user-detail{ + .detail-item-text{ + color: #1890ff; + } +} \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management.component.ts b/src/app/pages/system-management/user-management/user-management.component.ts index 96f472f..4f24574 100644 --- a/src/app/pages/system-management/user-management/user-management.component.ts +++ b/src/app/pages/system-management/user-management/user-management.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; +import { Router } from '@angular/router'; import 'ztree'; declare var $: any; @@ -13,12 +14,16 @@ declare var jQuery: any; export class UserManagementComponent implements OnInit { treeSelected:any; //树模型-当前选中项 collectionSize:any ; + public tableData:any=[]; statusParamsTable:any={ //获取目录树接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 status:1, } statusParamsTree:any={ //获取机构接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 status:1, } + statusParamsDetail:any={ //获取用户详情接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 + status:1, + } public search:any={ page_index:'1', page_size:'10', @@ -26,30 +31,80 @@ export class UserManagementComponent implements OnInit { login_name:'', orgId:'', } - isLoading:false; - public tableData:any=[]; + visible = false; + userDetail:any={}; //用户详情 + constructor( private http:HttpClientService, + private router:Router, ) { } ngOnInit() { this.initTree(); this.queryTable(); } + //新增、修改 1新增 2修改 + addModify(type,item?){ + if(type==1){ + console.log(222) + this.router.navigate(['app/system/users/modify'],{queryParams:{operateType:1}}) + }else if(type==2){ + + } + } + //打开详情页面 + open(item): void { + this.statusParamsDetail.status=1; + this.visible = true; + this.userDetail={}; + this.http.get('/sysapi/setting/user/detail/list', { uid: item.uid }).subscribe((json)=>{ + if(json.is_success){ + if(json.body){ + this.statusParamsDetail.status=3; + this.userDetail=json.body; + }else{ + this.statusParamsDetail.status=4; + } + }else{ + this.statusParamsDetail.status=0; + } + }) + } + //关闭详情页面 + close(): void { + this.visible = false; + } + //重置,重置搜索条件 + reset(){ + this.search.page_index=1; + this.search.page_size=10; + this.search.real_name=''; + this.search.login_name=''; + this.queryTable(); + } //获取列表 queryTable():void{ this.statusParamsTable.status=1; this.http.get('/sysapi/setting/user/list',this.search).subscribe((json)=>{ if(json.is_success){ this.tableData=json.body.list; - this.statusParamsTable.status=3; this.collectionSize=json.body.total; + if(json.body.list&&json.body.list.length>0){ + this.statusParamsTable.status=3; + }else{ + this.statusParamsTable.status=4; + } }else{ this.statusParamsTable.status=0; } }) } + //翻页 + pageChange(event){ + this.search.page_index=event; + this.queryTable(); + } //树模型参数设置 public zNodes: any[]; setting = { @@ -78,7 +133,7 @@ export class UserManagementComponent implements OnInit { }, }, }; - //新树模型 + //获取机构列表,树模型数据处理 initTree(){ //获取目录列表 this.statusParamsTree.status=1; From 1d250e81a517511499cc9ca2c7cbf3f0aa6f55bf Mon Sep 17 00:00:00 2001 From: liweijin <610336687@qq.com> Date: Wed, 21 Nov 2018 17:58:12 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E3=80=81=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pages/main.scss | 2 +- .../user-management-modify.component.html | 69 ++++- .../user-management-modify.component.scss | 16 ++ .../user-management-modify.component.ts | 236 ++++++++++++++++-- .../user-management.component.html | 10 +- .../user-management.component.ts | 20 +- 6 files changed, 314 insertions(+), 39 deletions(-) diff --git a/src/app/pages/main.scss b/src/app/pages/main.scss index ae745e3..5884cbd 100644 --- a/src/app/pages/main.scss +++ b/src/app/pages/main.scss @@ -3,7 +3,7 @@ margin-right: 10px; } .red{ - color: red; + color: #f5222d; } .orange{ color: orange; diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html index 42ad053..bfbb3a6 100644 --- a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.html @@ -1,6 +1,6 @@
      -
      + 姓名 @@ -9,14 +9,14 @@ - 统一身份认证账号 + 系统账号 - - 请输入统一身份认证账号 + + 请输入系统账号 - 本系统密码 + 系统密码 请输入密码 @@ -25,8 +25,23 @@ 所属机构 - - 请选择所属机构 + + {{orgDetail.organization}} + + 修改选择 + 请选择所属机构 + + + + 所属角色 + +
      + +
      + + + + 请选择所属角色
      @@ -47,12 +62,48 @@
      - + + 性别 + + + + + + + + + - + +
      +
      + +
      + + +
      + +
        + +
        +
        \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss index e69de29..63d221c 100644 --- a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.scss @@ -0,0 +1,16 @@ +.ztree{ + padding-bottom: 40px; + padding-right: 16px; +} +.drawer-footer{ + display: inline-block; + position: relative; + left: 50%; + bottom: 20px; + transform: translate(-50%) +} +.relative{ + position: relative; + width: 120px; + height: 40px; +} \ No newline at end of file diff --git a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts index b636eb9..30ed3e1 100644 --- a/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts +++ b/src/app/pages/system-management/user-management/user-management-modify/user-management-modify.component.ts @@ -1,5 +1,12 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder,FormControl,FormGroup,Validators} from '@angular/forms'; +import { HttpClientService } from '../../../../services/http-client.service'; +import { Router,ActivatedRoute } from '@angular/router'; +import { NzMessageService } from 'ng-zorro-antd'; + +import 'ztree'; +declare var $: any; +declare var jQuery: any; @Component({ selector: 'app-user-management-modify', @@ -7,40 +14,225 @@ import { FormBuilder,FormControl,FormGroup,Validators} from '@angular/forms'; styleUrls: ['./user-management-modify.component.scss','../../../main.scss'] }) export class UserManagementModifyComponent implements OnInit { - validateForm: FormGroup; - - constructor( - private fb: FormBuilder + validateForm: FormGroup; + statusParamsTree:any={ //获取机构接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 + status:1, + } + statusParamsRole:any={ //获取机构接口的状态,0请求失败 1请求前 2请求中 3请求成功,有数据 4请求成功,无数据 + status:1, + } + visible = false; //控制抽屉显示 + treeSelected:any; + orgDetail:any=''; //所选机构详情 + orgList:any=[]; //机构列表 + orgSeletedBtn:any=true; //控制机构选择按钮 + nodeList:any=[]; + saveCheck:any=false; //保存检查,保存验证表单 false 还未验证 true 触发了验证 + roleList:any=[]; //保存所选角色 + listOfRole:any=[]; //角色列表 + constructor( + private fb: FormBuilder, + private http:HttpClientService, + private route:ActivatedRoute, + private router:Router, + private message: NzMessageService, ) { } ngOnInit() { + this.queryRole(); this.validateForm = this.fb.group({ - real_name:[ null, [ Validators.required ] ], - loginId:[ null, [ Validators.required ] ], - password:[ null, [ Validators.required ] ], - identify_num:[ null], - email:[ null], - mobile:[ null], + real_name:[ '', [ Validators.required ] ], + login_name:[ '', [ Validators.required ] ], + password:[ '', [ Validators.required ] ], + identify_num:[ ''], + email:[ ''], + mobile:[ ''], + sex:['m'], + status:['1'], + role:[''] }); + //取路由参数 + this.route.queryParams.subscribe(routeParams=>{ + //routeParams 1新增 2修改 + if(routeParams.operateType==2){ + + + } + }) + } + checkName(){ + console.log(334343) + } + //机构树,搜索功能 + searchNode() { + var zTree = $.fn.zTree.getZTreeObj("treeDemo"); + zTree.cancelSelectedNode() + + var key = $("#key"); + var value = $.trim(key.get(0).value); + var keyType = "name"; + this.nodeList = zTree.getNodesByParamFuzzy(keyType, value); + if (value) { + for (var i = this.nodeList.length - 1; i >= 0; i--) { + zTree.selectNode(this.nodeList[i], true, false); + } + } + + } + //删除机构标签 + tagClose(event){ + this.orgSeletedBtn=true; + this.orgDetail=''; + } + //保存选择机构 + treeSave(){ + if(this.treeSelected){ + this.orgDetail=this.treeSelected; + this.visible = false; + this.orgSeletedBtn=false; + }else{ + //如果没有选择机构,提示请选择机构 + this.message.create('warning', `请选择所属机构!`,{ nzDuration: 2000 }); + } + } + //打开机构树抽屉 + open(): void { + this.treeSelected=''; + this.statusParamsTree.status=1; + this.visible = true; + this.initTree(); + + } + //关闭机构选择页面 + close(): void { + this.visible = false; + } submitForm(): void { + this.saveCheck=true; for (const i in this.validateForm.controls) { this.validateForm.controls[ i ].markAsDirty(); this.validateForm.controls[ i ].updateValueAndValidity(); } - } - updateConfirmValidator(): void { - /** wait for refresh value */ - Promise.resolve().then(() => this.validateForm.controls.checkPassword.updateValueAndValidity()); - } + if(this.validateForm.valid&&this.orgDetail&&this.roleList.length>0){ + let item=this.validateForm.value; + let params={ + real_name: item.real_name, + login_name: item.login_name, + password: item.password, + mobile: item.mobile, + sex: item.sex, + identify_num: item.identify_num, + email: item.email, + status: item.status, + orgList: [], + roleList: [], + }; + this.roleList.forEach(option=>{ + params.roleList.push({ + rid:option + }) + }) + this.orgList.forEach(option=>{ + if(option.id==this.orgDetail.id){ + params.orgList.push(option) + } + }) + console.log(params) + this.http.post('/sysapi/setting/user/add', params).subscribe((json) => { + if (json.is_success) { + this.message.success(`新增成功`); + this.router.navigate(['app/system/users']) + } else { + this.message.error(`新增失败`) + } + }) + } - confirmationValidator = (control: FormControl): { [ s: string ]: boolean } => { - if (!control.value) { - return { required: true }; - } else if (control.value !== this.validateForm.controls.password.value) { - return { confirm: true, error: true }; - } - }; + + } + //取消 返回列表页 + cancel(){ + this.router.navigate(['app/system/users']) + } + //获取角色列表 + queryRole(): void { + this.statusParamsRole.status=1; + this.http.get('/sysapi/setting/role/list', {page_index: '1',page_size: '100',}).subscribe((json) => { + if (json.is_success) { + this.listOfRole = json.body.list; + if(json.body.list&&json.body.list.length>0){ + this.statusParamsRole.status=3; + }else{ + this.statusParamsRole.status=4; + } + } else { + this.statusParamsRole.status=0; + } + }) + } + //树模型参数设置 + public zNodes: any[]; + setting = { + data: { + simpleData: { + enable: true + } + }, + view: { + showLine: true, + dblClickExpand: false, + showIcon:true + }, + callback: { + //节点点击事件 + onClick: (event, treeId, treeNode, clickFlag) => { + var zTree = $.fn.zTree.getZTreeObj("treeDemo"); + this.treeSelected=treeNode; + }, + }, + }; + //获取机构列表,树模型数据处理 + initTree(){ + //获取目录列表 + this.statusParamsTree.status=1; + this.http.get("/sysapi/setting/organization/list",).subscribe(json=>{ + if(json.is_success){ + if(json.body.length>0){ + this.orgList=json.body; + this.statusParamsTree.status=3; + let children=[]; + for(var i=0;i - + @@ -90,16 +90,16 @@
        - 统一身份认证账号 - {{userDetail.loginId}} - + 系统账号 + {{userDetail.login_name}} +
        - 本系统密码 + 系统密码 {{userDetail.password}} diff --git a/src/app/pages/system-management/user-management/user-management.component.ts b/src/app/pages/system-management/user-management/user-management.component.ts index 4f24574..925818e 100644 --- a/src/app/pages/system-management/user-management/user-management.component.ts +++ b/src/app/pages/system-management/user-management/user-management.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; import { Router } from '@angular/router'; +import { NzMessageService } from 'ng-zorro-antd'; import 'ztree'; declare var $: any; @@ -38,19 +39,34 @@ export class UserManagementComponent implements OnInit { constructor( private http:HttpClientService, private router:Router, + private message: NzMessageService, ) { } ngOnInit() { this.initTree(); this.queryTable(); + } + //删除 + delectConfirm(item){ + this.http.delete('/sysapi/setting/user/deleteById/'+item.uid).subscribe((json)=>{ + if(json.is_success){ + this.message.success(`删除成功!`); + this.queryTable(); + }else{ + this.message.error(`删除失败`) + } + }) + } + //取消删除 + delectCancel(){ + } //新增、修改 1新增 2修改 addModify(type,item?){ if(type==1){ - console.log(222) this.router.navigate(['app/system/users/modify'],{queryParams:{operateType:1}}) }else if(type==2){ - + this.router.navigate(['app/system/users/modify'],{queryParams:{operateType:2,id:item.uid}}) } } //打开详情页面