diff --git a/web-admin-app/README.md b/web-admin-app/README.md
index 29c8e7b..40b5073 100644
--- a/web-admin-app/README.md
+++ b/web-admin-app/README.md
@@ -34,4 +34,13 @@
- 所有列表页分页total 最多10 条, pageSize & pageNum
- 【盘点计划】内容和盘点任务一样 ?
- 【资产】 财务分类 id 从哪里选择?
+- 【资产】 费用项目 id 从哪里选择?
+- 【资产】 财务选项 id 从哪里选择?
+## 05-04
+- 【固资管理】 所有新增接口报错 500 , 建议:参数不对的情况 提示信息明确一点
+- 【资产入库】 需要添加一个接口,前端提交资产id列表,后端返回对应的资产数据列表
+
+## 05-05
+- 【维修登记】 新增接口报错 500
+- 业务编号 需不需要输入?
diff --git a/web-admin-app/src/app/app.routes.ts b/web-admin-app/src/app/app.routes.ts
index 916adfe..8b011c1 100644
--- a/web-admin-app/src/app/app.routes.ts
+++ b/web-admin-app/src/app/app.routes.ts
@@ -42,6 +42,9 @@ import { BasicSupplierComponent } from './pages/fixed-asset/basic/basic-supplier
import { BasicCategoryComponent } from './pages/fixed-asset/basic/basic-category/basic-category.component'
import { StockakingJobComponent } from './pages/fixed-asset/stocktaking/stockaking-job/stockaking-job.component'
import { StockakingPlanComponent } from './pages/fixed-asset/stocktaking/stockaking-plan/stockaking-plan.component'
+import { RepairTypeComponent } from './pages/fixed-asset/repair/repair-type/repair-type.component'
+import { RepairListComponent } from './pages/fixed-asset/repair/repair-list/repair-list.component'
+import { RepairFaultComponent } from './pages/fixed-asset/repair/repair-fault/repair-fault.component'
export const routes: Routes = [
{
@@ -185,6 +188,32 @@ export const routes: Routes = [
},
],
},
+ {
+ path: 'repair',
+ title: '维护维保',
+ children: [
+ {
+ path: '',
+ redirectTo: 'list',
+ pathMatch: 'full',
+ },
+ {
+ path: 'type',
+ component: RepairTypeComponent,
+ title: '维修类型',
+ },
+ {
+ path: 'list',
+ component: RepairListComponent,
+ title: '维修登记',
+ },
+ {
+ path: 'fault',
+ component: RepairFaultComponent,
+ title: '故障登记',
+ },
+ ],
+ },
{
path: 'manage',
// title: '固资管理',
@@ -207,12 +236,12 @@ export const routes: Routes = [
{
path: 'distribution',
component: FixedAssetManageDistributionComponent,
- title: '资产派发',
+ title: '资产领用',
},
{
path: 'return',
component: FixedAssetManageReturnComponent,
- title: '资产退还',
+ title: '资产退库',
},
{
path: 'borrow',
diff --git a/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.html b/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.html
new file mode 100644
index 0000000..0b2b9f9
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.html
@@ -0,0 +1,80 @@
+
diff --git a/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.less b/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.ts b/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.ts
new file mode 100644
index 0000000..e7df972
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-allot-form/asset-business-allot-form.component.ts
@@ -0,0 +1,112 @@
+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-asset-business-allot-form',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ WarehouseSelectComponent,
+ ],
+ templateUrl: './asset-business-allot-form.component.html',
+ styleUrl: './asset-business-allot-form.component.less',
+})
+export class AssetBusinessAllotFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ // useUserId: this.fb.control(null, [FormValidators.required('请选择')]),
+ // useOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ // businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ notes: this.fb.control(null, []),
+ inWarehouseId: this.fb.control(null, [FormValidators.required('请选择')]),
+ outWarehouseId: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ attach: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-borrow-form/asset-business-borrow-form.component.html b/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.html
new file mode 100644
index 0000000..44c0eb8
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.less b/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.ts b/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.ts
new file mode 100644
index 0000000..daf98f2
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-borrow-form/asset-business-borrow-form.component.ts
@@ -0,0 +1,109 @@
+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'
+
+@Component({
+ selector: 'app-asset-business-return-form',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ ],
+ templateUrl: './asset-business-borrow-form.component.html',
+ styleUrl: './asset-business-borrow-form.component.less',
+})
+export class AssetBusinessBorrowFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ useUserId: this.fb.control(null, [FormValidators.required('请选择')]),
+ // useOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+ returnTime: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ notes: this.fb.control(null, []),
+
+ attach: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-collection/asset-business-collection.component.html b/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.html
new file mode 100644
index 0000000..308c988
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.html
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.less b/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.ts b/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.ts
new file mode 100644
index 0000000..b512cd5
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-collection/asset-business-collection.component.ts
@@ -0,0 +1,113 @@
+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 { AssetCategorySelectComponent } from '../asset-category-select/asset-category-select.component'
+import { OrgSelectComponent } from '../org-select/org-select.component'
+import { ASSET_SOURCE_MAP, ASSET_STATUS, MAINTENANCE_STATUS, MAINTENANCE_TYPE } from 'app/constants'
+import { SelectUserByOrgComponent } from '../select-user-by-org/select-user-by-org.component'
+import { ManufacturerSelectComponent } from '../manufacturer-select/manufacturer-select.component'
+import { PositionSelectComponent } from '../position-select/position-select.component'
+import { MaintenanceSelectComponent } from '../maintenance-select/maintenance-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'
+
+@Component({
+ selector: 'app-asset-business-collection',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ ],
+ templateUrl: './asset-business-collection.component.html',
+ styleUrl: './asset-business-collection.component.less',
+})
+export class AssetBusinessCollectionComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ useUserId: this.fb.control(null, [FormValidators.required('请选择')]),
+ useOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ notes: this.fb.control(null, []),
+ positionId: this.fb.control(null, []),
+ attach: this.fb.control('', []),
+ positionDetail: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-return-form/asset-business-return-form.component.html b/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.html
new file mode 100644
index 0000000..2deef90
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.html
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.less b/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.ts b/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.ts
new file mode 100644
index 0000000..32df8de
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-return-form/asset-business-return-form.component.ts
@@ -0,0 +1,109 @@
+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'
+
+@Component({
+ selector: 'app-asset-business-return-form',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ ],
+ templateUrl: './asset-business-return-form.component.html',
+ styleUrl: './asset-business-return-form.component.less',
+})
+export class AssetBusinessReturnFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ useUserId: this.fb.control(null, [FormValidators.required('请选择')]),
+ useOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ notes: this.fb.control(null, []),
+ positionId: this.fb.control(null, []),
+ attach: this.fb.control('', []),
+ positionDetail: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-revert-form/asset-business-revert-form.component.html b/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.html
new file mode 100644
index 0000000..6606b5c
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.less b/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.ts b/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.ts
new file mode 100644
index 0000000..e3c3c95
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-revert-form/asset-business-revert-form.component.ts
@@ -0,0 +1,110 @@
+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'
+
+@Component({
+ selector: 'app-asset-business-return-form',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ ],
+ templateUrl: './asset-business-revert-form.component.html',
+ styleUrl: './asset-business-revert-form.component.less',
+})
+export class AssetBusinessRevertFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+ manager: this.fb.control(null, []),
+ useUserId: this.fb.control(null, []),
+ useOrganizationId: this.fb.control(null, []),
+
+ notes: this.fb.control(null, []),
+ positionId: this.fb.control(null, []),
+ attach: this.fb.control('', []),
+ positionDetail: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-storage-form/asset-business-storage-form.component.html b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.html
new file mode 100644
index 0000000..6ccaf6c
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.less b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.less
new file mode 100644
index 0000000..8ce33e4
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.less
@@ -0,0 +1,4 @@
+.modal {
+ height: 70vh;
+ overflow-y: auto;
+}
\ No newline at end of file
diff --git a/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.ts b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.ts
new file mode 100644
index 0000000..5c3e6a4
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-storage-form/asset-business-storage-form.component.ts
@@ -0,0 +1,109 @@
+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 { AssetCategorySelectComponent } from '../asset-category-select/asset-category-select.component'
+import { OrgSelectComponent } from '../org-select/org-select.component'
+import { ASSET_SOURCE_MAP, ASSET_STATUS, MAINTENANCE_STATUS, MAINTENANCE_TYPE } from 'app/constants'
+import { SelectUserByOrgComponent } from '../select-user-by-org/select-user-by-org.component'
+import { ManufacturerSelectComponent } from '../manufacturer-select/manufacturer-select.component'
+import { PositionSelectComponent } from '../position-select/position-select.component'
+import { MaintenanceSelectComponent } from '../maintenance-select/maintenance-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'
+
+@Component({
+ selector: 'app-asset-business-storage',
+ standalone: true,
+ imports: [SharedModule, SelectUserByOrgComponent, SupplierSelectComponent, AssetSelectComponent],
+ templateUrl: './asset-business-storage-form.component.html',
+ styleUrl: './asset-business-storage-form.component.less',
+})
+export class AssetBusinessStorageFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ manager: this.fb.control(null, []),
+ createTime: this.fb.control(null, []),
+ supplierVendorId: this.fb.control(null, []),
+ notes: this.fb.control(null, []),
+ assetIdList: this.fb.control([], []),
+ attach: this.fb.control('', []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ manager: data._manager?.userId ? [data._manager?.userId] : [],
+ responsiblePerson: data._responsiblePerson?.userId ? [data._responsiblePerson?.userId] : [],
+ categoryId: data._category?.categoryId + '',
+ positionId: data._position?.positionId + '',
+ ownCompanyId: data._ownCompany?.organizationId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ maintenanceVendor: data._maintenanceVendor?.maintenanceVendorId,
+ manufacturersVendorId: data._manufacturersVendor?.manufacturersVendorId,
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: v.positionId?.[0],
+ useOrganizationId: v.useOrganizationId?.[0],
+ responsiblePerson: v.responsiblePerson?.[0],
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-business-transfer-form/asset-business-transfer-form.component.html b/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.html
new file mode 100644
index 0000000..4012d6e
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
diff --git a/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.less b/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.less
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.ts b/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.ts
new file mode 100644
index 0000000..e9ff588
--- /dev/null
+++ b/web-admin-app/src/app/components/asset-business-transfer-form/asset-business-transfer-form.component.ts
@@ -0,0 +1,115 @@
+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-asset-business-transfer-form',
+ standalone: true,
+ imports: [
+ SharedModule,
+ SelectUserByOrgComponent,
+ SupplierSelectComponent,
+ AssetSelectComponent,
+ OrgSelectComponent,
+ PositionSelectComponent,
+ WarehouseSelectComponent,
+ ],
+ templateUrl: './asset-business-transfer-form.component.html',
+ styleUrl: './asset-business-transfer-form.component.less',
+})
+export class AssetBusinessTransferFormComponent {
+ 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, []),
+ name: this.fb.control('', [FormValidators.required('请输入')]),
+ useUserId: this.fb.control(null, []),
+ // useOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ // businessGeneratedDate: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ notes: this.fb.control(null, []),
+ managerId: this.fb.control(null, [FormValidators.required('请选择')]),
+ inUseOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+ outUseOrganizationId: this.fb.control(null, [FormValidators.required('请选择')]),
+
+ attach: this.fb.control('', []),
+ positionId: this.fb.control('', []),
+ positionDetail: this.fb.control('', []),
+
+ assetIdList: this.fb.control([], []),
+ })
+
+ this.patchValues()
+ }
+
+ patchValues() {
+ const { value: data, preview } = this.data
+ if (data) {
+ this.formGroup.patchValue({
+ ...data,
+
+ useUserId: data._useUser?.userId ? [data._useUser?.userId] : [],
+ positionId: data._position?.positionId + '',
+ useOrganizationId: data._useOrganization?.organizationId + '',
+ })
+ }
+ if (preview) {
+ this.formGroup.disable()
+ }
+ }
+
+ public getValues() {
+ let values = null
+ if (FormValidators.validateFormGroup(this.formGroup)) {
+ const v = this.formGroup.value
+
+ values = {
+ ...v,
+ useUserId: v.useUserId?.[0],
+ manager: v.manager?.[0],
+ categoryId: v.categoryId?.[0],
+ ownCompanyId: v.ownCompanyId?.[0],
+ positionId: Number(v.positionId?.[0]),
+ useOrganizationId: Number(v.useOrganizationId?.[0]),
+ assetIdList: JSON.stringify(v.assetIdList),
+ }
+ }
+ 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/asset-category-select/asset-category-select.component.html b/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.html
index 4a12fcd..dbe408f 100644
--- a/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.html
+++ b/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.html
@@ -2,6 +2,7 @@
[nzNodes]="assetCategoryTree"
[nzPlaceHolder]="placeholder"
[(ngModel)]="value"
+ [disabled]="disabled"
(ngModelChange)="onChange($event)"
>
diff --git a/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.ts b/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.ts
index 4be9680..f38e36c 100644
--- a/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.ts
+++ b/web-admin-app/src/app/components/asset-category-select/asset-category-select.component.ts
@@ -49,6 +49,8 @@ export class AssetCategorySelectComponent implements ControlValueAccessor, OnIni
value?: string
+ disabled = false
+
ngOnInit(): void {
this.api.getBasicCategoryTree().subscribe((res) => {
this.originTreeData = res.body
@@ -73,5 +75,7 @@ export class AssetCategorySelectComponent implements ControlValueAccessor, OnIni
this.onTouched = fn
}
- setDisabledState?(isDisabled: boolean): void {}
+ setDisabledState?(isDisabled: boolean): void {
+ this.disabled = isDisabled
+ }
}
diff --git a/web-admin-app/src/app/components/asset-form/asset-form.component.html b/web-admin-app/src/app/components/asset-form/asset-form.component.html
index 9c51f32..4ddc832 100644
--- a/web-admin-app/src/app/components/asset-form/asset-form.component.html
+++ b/web-admin-app/src/app/components/asset-form/asset-form.component.html
@@ -1,263 +1,395 @@
-