diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 72a75de..fddb7bc 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -14,6 +14,9 @@ import { TreeService } from './service/tree.service'; import { RouteReuseStrategy } from '@angular/router'; import { CustomReuseStrategy } from './CustomReuseStrategy'; import { ConfigFormDataService } from './service/configFormData.service'; +import { registerLocaleData } from '@angular/common'; +import zh from '@angular/common/locales/zh'; +registerLocaleData(zh); @NgModule({ declarations: [ AppComponent diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts index 722150f..53dc933 100644 --- a/src/app/home/home.module.ts +++ b/src/app/home/home.module.ts @@ -48,6 +48,9 @@ import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; import { ScrollingModule } from '@angular/cdk/scrolling'; import { NzGridModule } from 'ng-zorro-antd/grid'; import { NzRadioModule } from 'ng-zorro-antd/radio'; +import { ApplyComponent } from './task/station-task-apply/apply/apply.component'; +import { ApplyLookComponent } from './task/station-task-apply/apply-look/apply-look.component'; +import { NzDatePickerModule } from 'ng-zorro-antd/date-picker'; @NgModule({ declarations: [ NavComponent, @@ -74,7 +77,9 @@ import { NzRadioModule } from 'ng-zorro-antd/radio'; EdituserComponent, AddorComponent, EditorComponent, - AddUnitComponent + AddUnitComponent, + ApplyComponent, + ApplyLookComponent ], imports: [ CommonModule, @@ -101,8 +106,9 @@ import { NzRadioModule } from 'ng-zorro-antd/radio'; NzCheckboxModule, ScrollingModule, NzGridModule, - NzRadioModule + NzRadioModule, + NzDatePickerModule ], - entryComponents: [AddroleComponent, EditroleComponent, AdduserComponent, EdituserComponent, AddorComponent, EditorComponent] + entryComponents: [AddroleComponent, EditroleComponent, AdduserComponent, EdituserComponent, AddorComponent, EditorComponent, ApplyComponent, ApplyLookComponent] }) export class HomeModule { } diff --git a/src/app/home/system-management/user/adduser/adduser.component.html b/src/app/home/system-management/user/adduser/adduser.component.html index 483daec..bb95809 100644 --- a/src/app/home/system-management/user/adduser/adduser.component.html +++ b/src/app/home/system-management/user/adduser/adduser.component.html @@ -34,16 +34,6 @@ - 手机号 @@ -52,6 +42,5 @@ - \ No newline at end of file diff --git a/src/app/home/task/station-task-apply/apply-look/apply-look.component.html b/src/app/home/task/station-task-apply/apply-look/apply-look.component.html new file mode 100644 index 0000000..f42a839 --- /dev/null +++ b/src/app/home/task/station-task-apply/apply-look/apply-look.component.html @@ -0,0 +1,6 @@ +
+ +

任务名称: 熟悉演练

+

单位名称: 上海雅特酒店管理有限公司济南泺文路分公司

+

协助机构: 历下区A消防救援站

+
\ No newline at end of file diff --git a/src/app/home/task/station-task-apply/apply-look/apply-look.component.scss b/src/app/home/task/station-task-apply/apply-look/apply-look.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/home/task/station-task-apply/apply-look/apply-look.component.ts b/src/app/home/task/station-task-apply/apply-look/apply-look.component.ts new file mode 100644 index 0000000..a4fab8e --- /dev/null +++ b/src/app/home/task/station-task-apply/apply-look/apply-look.component.ts @@ -0,0 +1,54 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { NzModalRef } from 'ng-zorro-antd/modal'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { HttpClient } from '@angular/common/http'; +import { TreeService } from 'src/app/service/tree.service'; + +@Component({ + selector: 'app-apply-look', + templateUrl: './apply-look.component.html', + styleUrls: ['./apply-look.component.scss'] +}) +export class ApplyLookComponent implements OnInit { + + @Input() title?: string; + @Input() subtitle?: string; + validateForm!: FormGroup; + constructor(private modal: NzModalRef, private fb: FormBuilder, private http: HttpClient, private toTree: TreeService) { } + + ngOnInit(): void { + this.validateForm = this.fb.group({ + taskname: [true, [Validators.required]], + unitname: [null, [Validators.required]], + organization: [null, [Validators.required]] + }); + + this.getAllOrganization() + } + destroyModal(): void { + this.modal.destroy({ data: 'this the result data' }); + } + + //获取所有组织机构 + nodes: any = [] + getAllOrganization() { + // let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + // let params = { + // OrganizationUnitId: OrganizationUnitId, + // IsContainsChildren: "true" + // } + // this.http.get('/api/services/app/Organization/GetAll', { + // params: params + // }).subscribe((data: any) => { + // data.result.items.forEach(element => { + // if (element.id == OrganizationUnitId) { + // element.parentId = null + // } + // element.key = element.id + // element.title = element.displayName + // }); + // this.nodes = [...this.toTree.toTree(data.result.items)] + // }) + } + +} diff --git a/src/app/home/task/station-task-apply/apply/apply.component.html b/src/app/home/task/station-task-apply/apply/apply.component.html new file mode 100644 index 0000000..a4428b7 --- /dev/null +++ b/src/app/home/task/station-task-apply/apply/apply.component.html @@ -0,0 +1,36 @@ +
+
+ + 任务名称 + + + + + + 单位名称 + + + + + + + + 协助机构 + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/src/app/home/task/station-task-apply/apply/apply.component.scss b/src/app/home/task/station-task-apply/apply/apply.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/home/task/station-task-apply/apply/apply.component.ts b/src/app/home/task/station-task-apply/apply/apply.component.ts new file mode 100644 index 0000000..b094675 --- /dev/null +++ b/src/app/home/task/station-task-apply/apply/apply.component.ts @@ -0,0 +1,53 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { NzModalRef } from 'ng-zorro-antd/modal'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { HttpClient } from '@angular/common/http'; +import { TreeService } from 'src/app/service/tree.service'; + +@Component({ + selector: 'app-apply', + templateUrl: './apply.component.html', + styleUrls: ['./apply.component.scss'] +}) +export class ApplyComponent implements OnInit { + + @Input() title?: string; + @Input() subtitle?: string; + validateForm!: FormGroup; + constructor(private modal: NzModalRef, private fb: FormBuilder, private http: HttpClient, private toTree: TreeService) { } + + ngOnInit(): void { + this.validateForm = this.fb.group({ + taskname: [true, [Validators.required]], + unitname: [null, [Validators.required]], + organization: [null, [Validators.required]] + }); + + this.getAllOrganization() + } + destroyModal(): void { + this.modal.destroy({ data: 'this the result data' }); + } + + //获取所有组织机构 + nodes: any = [] + getAllOrganization() { + // let OrganizationUnitId = sessionStorage.getItem('isGasStation') == 'true' ? JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id : JSON.parse(sessionStorage.getItem('userdata')).organization.id + // let params = { + // OrganizationUnitId: OrganizationUnitId, + // IsContainsChildren: "true" + // } + // this.http.get('/api/services/app/Organization/GetAll', { + // params: params + // }).subscribe((data: any) => { + // data.result.items.forEach(element => { + // if (element.id == OrganizationUnitId) { + // element.parentId = null + // } + // element.key = element.id + // element.title = element.displayName + // }); + // this.nodes = [...this.toTree.toTree(data.result.items)] + // }) + } +} diff --git a/src/app/home/task/station-task-apply/station-task-apply.component.html b/src/app/home/task/station-task-apply/station-task-apply.component.html index 294cc99..1d51153 100644 --- a/src/app/home/task/station-task-apply/station-task-apply.component.html +++ b/src/app/home/task/station-task-apply/station-task-apply.component.html @@ -1 +1,72 @@ -

station-task-apply works!

+ +
+ +
+
+ + 任务申请 + + + + 任务申请已开始!剩余时间 3天13小时 / 生成周计划已开始!剩余时间 23:54:03 + +
+ +
+
+ +
+
+ + + + 任务名称 + 单位名称 + 单位级别 + 协助机构 + 结果 + 操作 + + + + + 监督检查 + + 上海雅特酒店管理有限公司济南泺文路分公司 + + + 一般单位 + + + 历下区A消防救援站 + + + 未发现违法违规情况 + + + 查看 + + + + +
+ +
+
+ +
\ No newline at end of file diff --git a/src/app/home/task/station-task-apply/station-task-apply.component.scss b/src/app/home/task/station-task-apply/station-task-apply.component.scss index e69de29..9df39e3 100644 --- a/src/app/home/task/station-task-apply/station-task-apply.component.scss +++ b/src/app/home/task/station-task-apply/station-task-apply.component.scss @@ -0,0 +1,79 @@ +.box { + width: 100%; + height: 100%; + + color: #303133; + box-sizing: border-box; + padding: 18px; + + + .fffbox { + width: 100%; + height: 100%; + background: #FFFFFF; + box-shadow: 0px 3px 8px 1px rgba(0, 0, 0, 0.0800); + border-radius: 4px 4px 4px 4px; + opacity: 1; + border: 1px solid #E4E7EC; + display: flex; + flex-direction: column; + } + + + .header { + width: 100%; + height: 56px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + border-bottom: 1px solid #E4E7EC; + + span { + color: #303133; + font-weight: 500; + font-size: 16px; + } + } + + .searchbox { + height: 70px; + display: flex; + justify-content: space-between; + padding: 0 20px; + align-items: center; + border-bottom: 1px solid #E4E7EC; + .search { + width: 80%; + display: flex; + + input { + margin-right: 16px; + } + + button { + margin-right: 16px; + } + } + } + + .content { + flex: 1; + box-sizing: border-box; + padding: 18px; + padding-top: 0px; + display: flex; + flex-direction: column; + + .applybtn { + align-self: flex-start; + margin: 18px 0; + } + + .operation { + a { + margin-right: 16px; + } + } + } +} diff --git a/src/app/home/task/station-task-apply/station-task-apply.component.ts b/src/app/home/task/station-task-apply/station-task-apply.component.ts index dbb373d..8187a91 100644 --- a/src/app/home/task/station-task-apply/station-task-apply.component.ts +++ b/src/app/home/task/station-task-apply/station-task-apply.component.ts @@ -1,4 +1,12 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NzFormatEmitEvent, NzTreeComponent, NzTreeNodeOptions } from 'ng-zorro-antd/tree'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { HttpClient } from '@angular/common/http'; +import { TreeService } from 'src/app/service/tree.service'; +import { ApplyComponent } from './apply/apply.component'; +import { ApplyLookComponent } from './apply-look/apply-look.component'; @Component({ selector: 'app-station-task-apply', @@ -7,9 +15,119 @@ import { Component, OnInit } from '@angular/core'; }) export class StationTaskApplyComponent implements OnInit { - constructor() { } - + validateForm!: FormGroup; + constructor(private fb: FormBuilder, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private message: NzMessageService, private http: HttpClient, private toTree: TreeService) { } + searchForm = { + taskname: '', + unitname: '', + unitlevel: '', + or: '' + } + usersNum + loading + usersLIst = [1] ngOnInit(): void { } + pageChange($event) { + + } + + cancel(item, type) { + } + delete(item) { + + } + + apply() { + const modal = this.modal.create({ + nzTitle: '申请', + nzContent: ApplyComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 660, + nzMaskClosable: false, + nzComponentParams: { + title: '', + subtitle: '' + }, + nzOnOk: async () => { + if (instance.validateForm.valid) { + await new Promise(resolve => { + let roleNames = [...instance.validateForm.value.role, ...instance.validateForm.value.role2] + let body = { + userName: instance.validateForm.value.account, + name: instance.validateForm.value.name, + organizationUnitId: Number(instance.validateForm.value.organization), + roleNames: roleNames, + phoneNumber: instance.validateForm.value.phonenum, + isActive: true + } + // this.http.post(this.addUrl, body).subscribe(data => { + // resolve(data) + // this.message.create('success', '创建成功!'); + // this.SkipCount = 0 + // this.getAllUsers() + // return true + // }, err => { + // resolve(err) + // this.message.create('warning', err.error.error.message); + // return false + // }) + }) + } else { + this.message.create('warning', '请填写完整!'); + return false + } + } + }); + const instance = modal.getContentComponent(); + modal.afterOpen.subscribe(() => console.log('[afterOpen] emitted!')); + modal.afterClose.subscribe(result => console.log('[afterClose] The result is:', result)); + } + look(item) { + const modal = this.modal.create({ + nzTitle: '详情', + nzContent: ApplyLookComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 660, + nzMaskClosable: false, + nzComponentParams: { + title: '', + subtitle: '' + }, + nzFooter:null, + nzOnOk: async () => { + if (instance.validateForm.valid) { + await new Promise(resolve => { + let roleNames = [...instance.validateForm.value.role, ...instance.validateForm.value.role2] + let body = { + userName: instance.validateForm.value.account, + name: instance.validateForm.value.name, + organizationUnitId: Number(instance.validateForm.value.organization), + roleNames: roleNames, + phoneNumber: instance.validateForm.value.phonenum, + isActive: true + } + // this.http.post(this.addUrl, body).subscribe(data => { + // resolve(data) + // this.message.create('success', '创建成功!'); + // this.SkipCount = 0 + // this.getAllUsers() + // return true + // }, err => { + // resolve(err) + // this.message.create('warning', err.error.error.message); + // return false + // }) + }) + } else { + this.message.create('warning', '请填写完整!'); + return false + } + } + }); + const instance = modal.getContentComponent(); + modal.afterOpen.subscribe(() => console.log('[afterOpen] emitted!')); + modal.afterClose.subscribe(result => console.log('[afterClose] The result is:', result)); + } } diff --git a/src/app/home/task/station-task-execution/station-task-execution.component.html b/src/app/home/task/station-task-execution/station-task-execution.component.html index 6c69ff0..d756c1d 100644 --- a/src/app/home/task/station-task-execution/station-task-execution.component.html +++ b/src/app/home/task/station-task-execution/station-task-execution.component.html @@ -1 +1,70 @@ -

station-task-execution works!

+ +
+
+
+ + 任务执行 + + + + 任务申请已开始!剩余时间 3天13小时 / 生成周计划已开始!剩余时间 23:54:03 + +
+ +
+
+ + + + 任务名称 + 时间 + 单位名称 + 单位级别 + 协助机构 + 检查结果 + 操作 + + + + + 监督检查 + 2022.07.20 14:00 + + 上海雅特酒店管理有限公司济南泺文路分公司 + + + 一般单位 + + + 历下区A消防救援站 + + + 未发现违法违规情况 + + + 查看 + + + + +
+ +
+
+
\ No newline at end of file diff --git a/src/app/home/task/station-task-execution/station-task-execution.component.scss b/src/app/home/task/station-task-execution/station-task-execution.component.scss index e69de29..8c500fc 100644 --- a/src/app/home/task/station-task-execution/station-task-execution.component.scss +++ b/src/app/home/task/station-task-execution/station-task-execution.component.scss @@ -0,0 +1,72 @@ +.box { + width: 100%; + height: 100%; + + color: #303133; + box-sizing: border-box; + padding: 18px; + + + .fffbox { + width: 100%; + height: 100%; + background: #FFFFFF; + box-shadow: 0px 3px 8px 1px rgba(0, 0, 0, 0.0800); + border-radius: 4px 4px 4px 4px; + opacity: 1; + border: 1px solid #E4E7EC; + display: flex; + flex-direction: column; + } + + + .header { + width: 100%; + height: 56px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + border-bottom: 1px solid #E4E7EC; + + span { + color: #303133; + font-weight: 500; + font-size: 16px; + } + } + + .searchbox { + height: 70px; + display: flex; + justify-content: space-between; + padding: 0 20px; + align-items: center; + + .search { + width: 100%; + display: flex; + + input { + margin-right: 16px; + } + + button { + margin-right: 16px; + } + } + } + + .content { + flex: 1; + box-sizing: border-box; + padding: 18px; + padding-top: 0px; + + .operation { + a { + margin-right: 16px; + } + } + } +} diff --git a/src/app/home/task/station-task-execution/station-task-execution.component.ts b/src/app/home/task/station-task-execution/station-task-execution.component.ts index 6a800be..eb6d271 100644 --- a/src/app/home/task/station-task-execution/station-task-execution.component.ts +++ b/src/app/home/task/station-task-execution/station-task-execution.component.ts @@ -1,5 +1,10 @@ -import { Component, OnInit } from '@angular/core'; - +import { Component, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NzFormatEmitEvent, NzTreeComponent, NzTreeNodeOptions } from 'ng-zorro-antd/tree'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { HttpClient } from '@angular/common/http'; +import { TreeService } from 'src/app/service/tree.service'; @Component({ selector: 'app-station-task-execution', templateUrl: './station-task-execution.component.html', @@ -7,9 +12,28 @@ import { Component, OnInit } from '@angular/core'; }) export class StationTaskExecutionComponent implements OnInit { - constructor() { } - + validateForm!: FormGroup; + constructor(private fb: FormBuilder, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private message: NzMessageService, private http: HttpClient, private toTree: TreeService) { } + searchForm = { + taskname: '', + tasktime: '', + unitname: '', + unitlevel: '', + or:'' + } + usersNum + loading + usersLIst = [1] ngOnInit(): void { + } + pageChange($event) { + } + cancel(item, type) { + + } + delete(item) { + + } } diff --git a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.html b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.html index 1c0d324..46471af 100644 --- a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.html +++ b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.html @@ -1 +1,60 @@ -

station-weekly-plan works!

+ +
+
+
+ + 申请周计划 + + + + 任务申请已开始!剩余时间 3天13小时 / 生成周计划已开始!剩余时间 23:54:03 + +
+
+
+ + + + 任务类型 + 单位名称 + 单位级别 + 检查人 + 消防负责人 + 联系电话 + 操作 + + + + + 双随机 + 上海雅特酒店管理有限公司济南泺文路分公司 + + 一般单位 + + + 张三三 + + + 张三三 + + + 15022667845 + + + + + + + + +
+ +
+
+
\ No newline at end of file diff --git a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.scss b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.scss index e69de29..1d72bc1 100644 --- a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.scss +++ b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.scss @@ -0,0 +1,52 @@ +.box { + width: 100%; + height: 100%; + + color: #303133; + box-sizing: border-box; + padding: 18px; + + + .fffbox { + width: 100%; + height: 100%; + background: #FFFFFF; + box-shadow: 0px 3px 8px 1px rgba(0, 0, 0, 0.0800); + border-radius: 4px 4px 4px 4px; + opacity: 1; + border: 1px solid #E4E7EC; + display: flex; + flex-direction: column; + } + + + .header { + width: 100%; + height: 56px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + border-bottom: 1px solid #E4E7EC; + + span { + color: #303133; + font-weight: 500; + font-size: 16px; + } + } + + .content { + flex: 1; + box-sizing: border-box; + padding: 18px; + padding-top: 0px; + margin-top: 18px; + .operation { + + nz-date-picker { + width: 140px; + } + } + } +} diff --git a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts index ec19a67..0da35cd 100644 --- a/src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts +++ b/src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts @@ -1,5 +1,10 @@ -import { Component, OnInit } from '@angular/core'; - +import { Component, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NzFormatEmitEvent, NzTreeComponent, NzTreeNodeOptions } from 'ng-zorro-antd/tree'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { HttpClient } from '@angular/common/http'; +import { TreeService } from 'src/app/service/tree.service'; @Component({ selector: 'app-station-weekly-plan', templateUrl: './station-weekly-plan.component.html', @@ -7,9 +12,28 @@ import { Component, OnInit } from '@angular/core'; }) export class StationWeeklyPlanComponent implements OnInit { - constructor() { } - + validateForm!: FormGroup; + constructor(private fb: FormBuilder, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private message: NzMessageService, private http: HttpClient, private toTree: TreeService) { } + searchForm = { + taskname: '', + tasktime: '', + unitname: '', + unitlevel: '', + or: '' + } + usersNum + loading + usersLIst = [1] ngOnInit(): void { + } + pageChange($event) { + } + cancel(item, type) { + + } + delete(item) { + + } } diff --git a/src/theme.less b/src/theme.less index e04ee2c..639308e 100644 --- a/src/theme.less +++ b/src/theme.less @@ -21,8 +21,61 @@ white-space: pre; font-size: 18px; } -.progresssquare{ - .ant-progress-inner{ + +.progresssquare { + .ant-progress-inner { border-radius: 0px; } -} \ No newline at end of file +} + +.applymodel { + .ant-col-sm-6 { + flex: 0 0 15%; + } +} + +// 周计划日期选择权 +.weeklyplan { + .ant-picker { + padding-left: 0; + } + + .ant-picker-suffix { + color: #2C4DC0; + } + + input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + + color: #2C4DC0; + + } + + :-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #2C4DC0; + + } + + ::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #2C4DC0; + + } + + input:-ms-input-placeholder { + /* Internet Explorer 10-11 */ + + color: #2C4DC0; + + } + + input::-ms-input-placeholder { + /* Microsoft Edge */ + + color: #2C4DC0; + + } +}