Browse Source

[新增]批量更新workerTag字段

beijing
邵佳豪 2 years ago
parent
commit
d818d2d087
  1. 1
      src/app/app.component.ts
  2. 1
      src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.html
  3. 3
      src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.scss
  4. 17
      src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts
  5. 17
      src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.html
  6. 28
      src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.scss
  7. 25
      src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.spec.ts
  8. 132
      src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.ts
  9. 2
      src/app/system-management/system-management.module.ts
  10. 5
      src/index.html

1
src/app/app.component.ts

@ -13,5 +13,6 @@ export class AppComponent {
//调用服务中的function刷新token
this.token.startUp()
}
console.log('更新日期:20230814')
}
}

1
src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.html

@ -12,6 +12,7 @@
</div>
<div class="treeTitle">
<span>组织机构</span>
<a (click)="workerTag()">批量更新workerTag字段</a>
</div>
<div class="treebox">
<nz-tree [nzHideUnMatched]='true' [nzSearchValue]="searchValue" #nzTreeComponent [nzData]="nodes"

3
src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.scss

@ -58,8 +58,7 @@
justify-content: space-between;
color: #000D21;
box-sizing: border-box;
padding-left: 30px;
padding-right: 180px;
padding:0 30px;
background: rgba(145, 204, 255, 0.2);
border: 1px solid rgba(145, 204, 255, 0.2);
}

17
src/app/system-management/analysis-of-the-host/analysis-of-the-host.component.ts

@ -19,6 +19,7 @@ import { AddhostComponent } from './addhost/addhost.component';
import { EdithostComponent } from './edithost/edithost.component';
import { NavigationEnd, Router } from '@angular/router';
import { filter } from 'rxjs';
import { WorkerTagComponent } from './worker-tag/worker-tag.component';
@Component({
selector: 'app-analysis-of-the-host',
templateUrl: './analysis-of-the-host.component.html',
@ -69,6 +70,9 @@ export class AnalysisOfTheHostComponent implements OnInit {
element.selectable = false;
if (element.isGasStation) {
element.isLeaf = true;
element.disableCheckbox = false;
} else {
element.disableCheckbox = true;
}
});
this.nodes = [...this.toTree.toTree(data.items)];
@ -300,6 +304,19 @@ export class AnalysisOfTheHostComponent implements OnInit {
},
});
}
workerTag() {
this.modal.create({
nzTitle: '修改workerTag字段',
nzContent: WorkerTagComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 500,
nzComponentParams: {
tree: this.nodes,
},
nzFooter: null,
});
}
}
enum DeviceProvider {

17
src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.html

@ -0,0 +1,17 @@
<div class="tagbox">
<div class="content">
<nz-tree [hidden]="!(step === 1)" #nzTreeComponent [nzData]="nodes" nzCheckable
[nzCheckedKeys]="defaultCheckedKeys" [nzExpandedKeys]="defaultExpandedKeys"></nz-tree>
<div class="inputbox" [hidden]="!(step === 2)">
<button (click)="addInput()" nz-button>增加一行</button>
<div class="inputItem" *ngFor="let item of inputList;let key =index">
<input nz-input [(ngModel)]="item.value" [name]="key.toString()" />
</div>
</div>
</div>
<div class="btnbox">
<button nz-button nzType="primary" (click)="nextStep()" *ngIf="step === 1">下一步</button>
<button nz-button nzType="primary" (click)="back()" *ngIf="step === 2">上一步</button>
<button nz-button nzType="primary" (click)="ok()" *ngIf="step === 2">确定</button>
</div>
</div>

28
src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.scss

@ -0,0 +1,28 @@
.tagbox {
max-height: 600px;
display: flex;
flex-direction: column;
}
.content {
flex: 1;
overflow-y: auto;
.inputbox {
.inputItem {
display: flex;
margin:6px 0px;
}
}
}
.btnbox {
display: flex;
justify-content: flex-end;
align-items: center;
margin-top: 16px;
button{
margin-left: 6px;
}
}

25
src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.spec.ts

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { WorkerTagComponent } from './worker-tag.component';
describe('WorkerTagComponent', () => {
let component: WorkerTagComponent;
let fixture: ComponentFixture<WorkerTagComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ WorkerTagComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(WorkerTagComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

132
src/app/system-management/analysis-of-the-host/worker-tag/worker-tag.component.ts

@ -0,0 +1,132 @@
import { HttpClient } from '@angular/common/http';
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzTreeComponent } from 'ng-zorro-antd/tree';
import { TreeService } from 'src/app/service/tree.service';
@Component({
selector: 'app-worker-tag',
templateUrl: './worker-tag.component.html',
styleUrls: ['./worker-tag.component.scss'],
})
export class WorkerTagComponent implements OnInit {
@Input() tree: any;
@ViewChild('nzTreeComponent', { static: false })
nzTreeComponent!: NzTreeComponent;
defaultCheckedKeys = [];
defaultExpandedKeys = [];
constructor(
private http: HttpClient,
private message: NzMessageService,
private toTree: TreeService
) {}
nodes = [];
inputList = [{ value: '' }];
step = 1;
ngOnInit(): void {
this.getAllOrganization();
}
getAllOrganization() {
let params = {
ContainsChildren: true,
PageSize: 9999,
};
this.http
.get('/api/Organizations', {
params: params,
})
.subscribe((data: any) => {
data.items.forEach((element) => {
element.key = element.id;
element.title = element.name;
element.selectable = false;
if (element.isGasStation) {
element.isLeaf = true;
element.disableCheckbox = false;
} else {
element.disableCheckbox = true;
}
});
this.nodes = [...this.toTree.toTree(data.items)];
// this.defaultExpandedKeys = [this.nodes[0].id];
// this.defaultExpandedKeys = [...this.defaultExpandedKeys];
});
}
nextStep() {
this.step = 2;
}
back() {
this.step = 1;
}
addInput() {
this.inputList.push({ value: '' });
}
ok() {
let ids =
this.nzTreeComponent.getCheckedNodeList().map((item) => {
return item.key;
}) || [];
let workerTags =
this.inputList.map((item) => {
return item.value;
}) || [];
if (ids.length === 0) {
this.message.create('info', '请至少选择一个加油站');
return;
}
if (this.inputList.find((v) => !v.value)) {
this.message.create('info', '请将所有输入框填写完整');
return;
}
let _this = this;
function BatchModifyWorkerTags() {
var a = new Promise<void>((resolve, reject) => {
_this.http
.put('/api/EdgeDevices/BatchModifyWorkerTags', ids, {
params: { workerTags: workerTags },
})
.subscribe({
next: (data: any) => {
_this.message.create('success', '批量修改成功');
resolve(data);
},
error: (err) => {
_this.message.create('error', '批量修改失败,请重试');
reject(err);
},
});
});
return a;
}
function BatchPushFile() {
let b = new Promise<void>((resolve, reject) => {
_this.http
.put('/api/EdgeDevices/Commands/BatchPushFile', ids, {
params: { fileName: 'data.yaml' },
})
.subscribe({
next: (data: any) => {
_this.message.create('success', '批量推送成功');
resolve(data);
},
error: (err) => {
_this.message.create('error', '批量推送失败');
reject(err);
},
});
});
return b;
}
BatchModifyWorkerTags()
.then((data) => {
BatchPushFile();
})
.catch((err) => {});
}
}

2
src/app/system-management/system-management.module.ts

@ -51,6 +51,7 @@ import { ImageLabelAnxinComponent } from './image-label-anxin/image-label-anxin.
import { AnxinConfigComponent } from './host-config/anxin-config/anxin-config.component';
import { DragDropModule } from '@angular/cdk/drag-drop';
import { IframeComponent } from './iframe/iframe.component';
import { WorkerTagComponent } from './analysis-of-the-host/worker-tag/worker-tag.component';
@NgModule({
declarations: [
OrganizationComponent,
@ -82,6 +83,7 @@ import { IframeComponent } from './iframe/iframe.component';
ImageLabelAnxinComponent,
AnxinConfigComponent,
IframeComponent,
WorkerTagComponent,
],
imports: [
CommonModule,

5
src/index.html

@ -12,10 +12,5 @@
<body>
<app-root></app-root>
</body>
<script>
function test(a) {
console.log(a)
}
</script>
</html>
Loading…
Cancel
Save