From 0988c2cd7ba57e0c66cf64a033269740b3810d0b Mon Sep 17 00:00:00 2001 From: kkerwin Date: Wed, 8 May 2024 00:49:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply-asset-flow.component.html | 45 ++++++++ .../apply-asset-flow.component.less | 0 .../apply-asset-flow.component.ts | 100 ++++++++++++++++++ ...component-basic-category-tree.component.ts | 3 +- web-admin-app/src/app/components/index.ts | 2 + .../basic-category.component.ts | 3 +- .../basic-maintainer.component.html | 9 +- .../basic-manufacturer.component.html | 9 +- .../basic-supplier.component.html | 9 +- .../basic-warehouse.component.html | 10 +- .../save-position.component.html | 9 +- .../save-position/save-position.component.ts | 2 +- .../fixed-asset/fixed-asset.component.html | 4 +- .../flow/flow-main/flow-main.component.html | 16 +-- .../flow/flow-main/flow-main.component.ts | 32 +++++- .../org-setting/org-setting.component.html | 8 +- web-admin-app/src/app/services/api.service.ts | 3 + 17 files changed, 234 insertions(+), 30 deletions(-) create mode 100644 web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.html create mode 100644 web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.less create mode 100644 web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.ts diff --git a/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.html b/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.html new file mode 100644 index 0000000..aa22abc --- /dev/null +++ b/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.html @@ -0,0 +1,45 @@ + diff --git a/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.less b/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.less new file mode 100644 index 0000000..e69de29 diff --git a/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.ts b/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.ts new file mode 100644 index 0000000..cb6e87c --- /dev/null +++ b/web-admin-app/src/app/components/apply-asset-flow/apply-asset-flow.component.ts @@ -0,0 +1,100 @@ +import { Component, Input, OnInit, inject } from '@angular/core' +import { FormBuilder, FormGroup } from '@angular/forms' +import { ApiService } from 'app/services' +import { SharedModule } from 'app/shared/shared.module' +import { FormValidators, Utils } from 'app/utils' +import { NzMessageService } from 'ng-zorro-antd/message' +import { OrgSelectComponent } from '../org-select/org-select.component' +import { SelectUserByOrgComponent } from '../select-user-by-org/select-user-by-org.component' +import { PositionSelectComponent } from '../position-select/position-select.component' +import { NzSafeAny } from 'ng-zorro-antd/core/types' +import { NZ_MODAL_DATA } from 'ng-zorro-antd/modal' +import { SupplierSelectComponent } from '../supplier-select/supplier-select.component' +import { AssetSelectComponent } from '../asset-select/asset-select.component' +import { WarehouseSelectComponent } from '../warehouse-select/warehouse-select.component' + +@Component({ + selector: 'app-apply-asset-flow', + standalone: true, + imports: [ + SharedModule, + SelectUserByOrgComponent, + SupplierSelectComponent, + AssetSelectComponent, + OrgSelectComponent, + PositionSelectComponent, + WarehouseSelectComponent, + ], + templateUrl: './apply-asset-flow.component.html', + styleUrl: './apply-asset-flow.component.less', +}) +export class ApplyAssetFlowComponent { + constructor( + private fb: FormBuilder, + private api: ApiService, + private msg: NzMessageService, + ) {} + + readonly data: NzSafeAny = inject(NZ_MODAL_DATA) + + formGroup!: FormGroup + + groupIndex = 0 + + uploadLoading = false + + ngOnInit(): void { + this.formGroup = this.fb.group({ + id: this.fb.control(null, []), + title: this.fb.control('', [FormValidators.required('请输入')]), + // useUserId: this.fb.control(null, [FormValidators.required('请选择')]), + applyDepartmentId: this.fb.control(null, [FormValidators.required('请选择')]), + applicant: this.fb.control({ value: this.api.authInfo?.userName, disabled: true }, [ + FormValidators.required('请选择'), + ]), + // businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]), + + notes: this.fb.control(null, [FormValidators.required('请输入')]), + }) + + this.patchValues() + } + + patchValues() { + const { value: data, preview } = this.data + if (data) { + this.formGroup.patchValue({ + ...data, + }) + } + if (preview) { + this.formGroup.disable() + } + } + + public getValues() { + let values = null + if (FormValidators.validateFormGroup(this.formGroup)) { + const v = this.formGroup.value + + values = { + ...v, + + applyDepartmentId: Number(v.applyDepartmentId?.[0]), + } + } + return values + } + + onFileChange(e: Event) { + const target = e.target as HTMLInputElement + const file = target.files![0] + target.value = '' + + const formdata = new FormData() + formdata.append('file', file) + this.api.upload(formdata).subscribe((res) => { + this.formGroup.get('attach')?.setValue(res.body.fileName) + }) + } +} diff --git a/web-admin-app/src/app/components/component-basic-category-tree/component-basic-category-tree.component.ts b/web-admin-app/src/app/components/component-basic-category-tree/component-basic-category-tree.component.ts index 8b85e82..50385cc 100644 --- a/web-admin-app/src/app/components/component-basic-category-tree/component-basic-category-tree.component.ts +++ b/web-admin-app/src/app/components/component-basic-category-tree/component-basic-category-tree.component.ts @@ -84,10 +84,9 @@ export class ComponentBasicCategoryTreeComponent { selectedKeys: string[] = [] initTree() { - this.api.getBasicCategoryTree().subscribe((res) => { + this.api.getBasicCategoryTree(true).subscribe((res) => { this.nodes = buildCateTree(res.body) this.expandedKeys = [...this.expandedKeys] - console.log('this.selectedKeys', this.selectedKeys) if (this.selectedKeys.length === 0) { this.selectedKeys = [this.nodes[0].key] } else { diff --git a/web-admin-app/src/app/components/index.ts b/web-admin-app/src/app/components/index.ts index a1ea714..e5b2ab6 100644 --- a/web-admin-app/src/app/components/index.ts +++ b/web-admin-app/src/app/components/index.ts @@ -26,3 +26,5 @@ export * from './repair-fault-form/repair-fault-form.component' export * from './position-tree/position-tree.component' export * from './stocktaking-detail-form/stocktaking-detail-form.component' + +export * from './apply-asset-flow/apply-asset-flow.component' diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/basic-category/basic-category.component.ts b/web-admin-app/src/app/pages/fixed-asset/basic/basic-category/basic-category.component.ts index 66ad4ba..5da320c 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/basic-category/basic-category.component.ts +++ b/web-admin-app/src/app/pages/fixed-asset/basic/basic-category/basic-category.component.ts @@ -43,6 +43,7 @@ export class BasicCategoryComponent { initCreateForm() { this.createForm = this.fb.group({ categoryId: [], + parentId: ['', [FormValidators.required('请输入')]], categoryName: ['', [FormValidators.required('请输入')]], safetyLimit: [0, []], lowerLimit: [0, []], @@ -74,7 +75,7 @@ export class BasicCategoryComponent { }) .subscribe((res) => { this.msg.success(res.desc) - console.log('this.treeEl', this.treeEl) + this.treeEl.initTree() }) } diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/basic-maintainer/basic-maintainer.component.html b/web-admin-app/src/app/pages/fixed-asset/basic/basic-maintainer/basic-maintainer.component.html index 07a59f6..f84ac5f 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/basic-maintainer/basic-maintainer.component.html +++ b/web-admin-app/src/app/pages/fixed-asset/basic/basic-maintainer/basic-maintainer.component.html @@ -1,11 +1,16 @@ - +
- + @switch (key) { @case ('status') { diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/basic-manufacturer/basic-manufacturer.component.html b/web-admin-app/src/app/pages/fixed-asset/basic/basic-manufacturer/basic-manufacturer.component.html index 3d993e6..0812a28 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/basic-manufacturer/basic-manufacturer.component.html +++ b/web-admin-app/src/app/pages/fixed-asset/basic/basic-manufacturer/basic-manufacturer.component.html @@ -1,11 +1,16 @@ - +
- + @switch (key) { @case ('status') { diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/basic-supplier/basic-supplier.component.html b/web-admin-app/src/app/pages/fixed-asset/basic/basic-supplier/basic-supplier.component.html index 07a59f6..c536bd4 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/basic-supplier/basic-supplier.component.html +++ b/web-admin-app/src/app/pages/fixed-asset/basic/basic-supplier/basic-supplier.component.html @@ -1,11 +1,16 @@ - +
- + @switch (key) { @case ('status') { diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/basic-warehouse/basic-warehouse.component.html b/web-admin-app/src/app/pages/fixed-asset/basic/basic-warehouse/basic-warehouse.component.html index fa34e2d..92bac12 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/basic-warehouse/basic-warehouse.component.html +++ b/web-admin-app/src/app/pages/fixed-asset/basic/basic-warehouse/basic-warehouse.component.html @@ -1,4 +1,4 @@ - + @@ -6,7 +6,12 @@
- + @switch (key) { @case ('status') { @@ -29,7 +34,6 @@ + @@ -6,7 +6,12 @@
- + @switch (key) { @case ('status') { diff --git a/web-admin-app/src/app/pages/fixed-asset/basic/save-position/save-position.component.ts b/web-admin-app/src/app/pages/fixed-asset/basic/save-position/save-position.component.ts index 154521f..e19d99f 100644 --- a/web-admin-app/src/app/pages/fixed-asset/basic/save-position/save-position.component.ts +++ b/web-admin-app/src/app/pages/fixed-asset/basic/save-position/save-position.component.ts @@ -93,7 +93,7 @@ export class SavePositionComponent implements OnInit { .saveBasicPosition({ ...value, parentId: 0, - positionId: value.positionId ?? 0, + positionId: value.positionId, }) .subscribe((res) => { this.msg.success(res.desc) diff --git a/web-admin-app/src/app/pages/fixed-asset/fixed-asset.component.html b/web-admin-app/src/app/pages/fixed-asset/fixed-asset.component.html index 83731b5..d535868 100644 --- a/web-admin-app/src/app/pages/fixed-asset/fixed-asset.component.html +++ b/web-admin-app/src/app/pages/fixed-asset/fixed-asset.component.html @@ -165,9 +165,9 @@ [nzOpen]="openedSubmenu.startsWith('/fixed-asset/basic/')" >
    -
  • +
  • 物品分类
  • diff --git a/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.html b/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.html index 3621114..e47c9ea 100644 --- a/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.html +++ b/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.html @@ -2,21 +2,19 @@
    @for (item of assetFlows; track $index) { -
    +
    -
    +
    -
    -

    - {{ item.name }} -

    +
    - {{ item.formKey }} + {{ item.name }}
    +
    {{ item.formKey }}
    @if (item._assignee) {
    审批人:{{ item._assignee.userName }} @@ -24,7 +22,9 @@ }
    - 发起流程 + +
    发起流程
    +
    } diff --git a/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.ts b/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.ts index c0424ee..2447a94 100644 --- a/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.ts +++ b/web-admin-app/src/app/pages/flow/flow-main/flow-main.component.ts @@ -1,10 +1,11 @@ import { Component, OnInit } from '@angular/core' +import { ApplyAssetFlowComponent } from 'app/components' import { ApiService } from 'app/services' import { SharedModule } from 'app/shared/shared.module' import { NzSafeAny } from 'ng-zorro-antd/core/types' import { NzMessageService } from 'ng-zorro-antd/message' import { NzModalService } from 'ng-zorro-antd/modal' -import { finalize } from 'rxjs' +import { finalize, lastValueFrom } from 'rxjs' @Component({ selector: 'app-flow-main', @@ -37,4 +38,33 @@ export class FlowMainComponent implements OnInit { this.assetFlows = res.body }) } + + comsMap = { + eam_asset_employee_apply: ApplyAssetFlowComponent, + } + + onStart(model: NzSafeAny) { + this.modal.create({ + nzTitle: '开始流程', + nzContent: this.comsMap[model.formKey as keyof typeof this.comsMap], + nzWrapClassName: 'modal-lg', + nzWidth: '80vw', + nzData: { + value: model, + preview: false, + }, + nzOnOk: async (e) => { + const vals = e.getValues() + if (vals) { + const res = await lastValueFrom(this.api.startFlow(vals, model.formKey)) + this.msg.success(res.desc) + return true + } + return false + }, + nzOnCancel: () => { + console.log('Cancel') + }, + }) + } } diff --git a/web-admin-app/src/app/pages/org-setting/org-setting.component.html b/web-admin-app/src/app/pages/org-setting/org-setting.component.html index c69a883..1cd0bbe 100644 --- a/web-admin-app/src/app/pages/org-setting/org-setting.component.html +++ b/web-admin-app/src/app/pages/org-setting/org-setting.component.html @@ -12,11 +12,11 @@ -
    +
    -
    +
    @switch (key) { @@ -29,8 +29,8 @@ } @case ('status') { } @case ('sex') { diff --git a/web-admin-app/src/app/services/api.service.ts b/web-admin-app/src/app/services/api.service.ts index 11e43aa..ef5704d 100644 --- a/web-admin-app/src/app/services/api.service.ts +++ b/web-admin-app/src/app/services/api.service.ts @@ -489,4 +489,7 @@ export class ApiService { getMyFinishedAssetFlow(data: {}) { return this.http.post(`/api/flowable/task/finishedList`, data) } + startFlow(json: {}, form_key: string) { + return this.http.post(`/api/flowable/definition/start/${form_key}`, json) + } }