edit
This commit is contained in:
		| @ -22,6 +22,8 @@ const auths = ['YUNLI-CART-SEARCH', 'YUNLI-CART-DAOCHU', 'YUNLI-CART-DETAIL']; | ||||
| export class AuthGuard implements CanActivate, CanActivateChild, CanLoad { | ||||
|   constructor(srv: ACLService, router: Router, private eaUserSrv: CoreService, private router2: Router, private inject: Injector) {} | ||||
|   canLoad(route: Route, segments: UrlSegment[]): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> { | ||||
|     console.log(route); | ||||
|      | ||||
|     throw true; | ||||
|   } | ||||
|  | ||||
|  | ||||
| @ -1,44 +0,0 @@ | ||||
| <page-header-wrapper title="Alain案例"> | ||||
| </page-header-wrapper> | ||||
| <nz-card> | ||||
|     <div nz-row nzGutter="8"> | ||||
|         <div nz-col [nzSpan]="_$expand ? 24 : 18"> | ||||
|             <sf #sf [schema]="searchSchema" [ui]="ui" [compact]="true" [button]="'none'"></sf> | ||||
|         </div> | ||||
|         <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> | ||||
|             <button nz-button nzType="primary" (click)="add()"> 新建</button> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button nzType="link" (click)="expandToggle()"> | ||||
|                 {{ !_$expand ? '展开' : '收起' }} | ||||
|                 <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||
|             </button> | ||||
|         </div> | ||||
|     </div> | ||||
|     <ng-container *ngIf="selectedRows.length > 0"> | ||||
|         <button nz-button>批量操作</button> | ||||
|         <button nz-button nz-dropdown [nzDropdownMenu]="batchMenu" nzPlacement="bottomLeft"> | ||||
|             更多操作 | ||||
|             <i nz-icon nzType="down"></i> | ||||
|         </button> | ||||
|         <nz-dropdown-menu #batchMenu="nzDropdownMenu"> | ||||
|             <ul nz-menu> | ||||
|                 <li nz-menu-item (click)="remove()">删除</li> | ||||
|                 <li nz-menu-item (click)="approval()">批量审批</li> | ||||
|             </ul> | ||||
|         </nz-dropdown-menu> | ||||
|     </ng-container> | ||||
|     <div class="my-md"> | ||||
|         <nz-alert [nzType]="'info'" [nzShowIcon]="true" [nzMessage]="message"> | ||||
|             <ng-template #message> | ||||
|                 已选择 | ||||
|                 <strong class="text-primary">{{ selectedRows.length }}</strong> 项   服务调用总计 <strong>{{ | ||||
|                     totalCallNo }}</strong> 万 | ||||
|                 <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> | ||||
|             </ng-template> | ||||
|         </nz-alert> | ||||
|     </div> | ||||
|  | ||||
|     <st #st [data]="url" [columns]="columns" [req]="{method:'POST'}" [res]="{reName:{ list: 'data.records', total: 'data.total' }}" | ||||
|         (change)="stChange($event)"></st> | ||||
| </nz-card> | ||||
| @ -1,5 +0,0 @@ | ||||
| :host::ng-deep { | ||||
|     nz-range-picker { | ||||
|         width: 100%; | ||||
|     } | ||||
| } | ||||
| @ -1,206 +0,0 @@ | ||||
| import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'; | ||||
| import { STComponent, STColumn, STChange } from '@delon/abc/st'; | ||||
| import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; | ||||
| import { _HttpClient, ModalHelper } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { DemoService } from '../../services/demo.service'; | ||||
| import { DemoEditComponent } from '../zorro-demo/edit/edit.component'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-alian-demo', | ||||
|   templateUrl: './alian-demo.component.html', | ||||
|   styleUrls: ['./alian-demo.component.less'] | ||||
| }) | ||||
| export class AlianDemoComponent implements OnInit { | ||||
|   url = `/rule?_allow_anonymous=true`; | ||||
|  | ||||
|   status = [ | ||||
|     { index: 0, text: '关闭', value: false, type: 'default', checked: false }, | ||||
|     { | ||||
|       index: 1, | ||||
|       text: '运行中', | ||||
|       value: false, | ||||
|       type: 'processing', | ||||
|       checked: false | ||||
|     }, | ||||
|     { index: 2, text: '已上线', value: false, type: 'success', checked: false }, | ||||
|     { index: 3, text: '异常', value: false, type: 'error', checked: false } | ||||
|   ]; | ||||
|   @ViewChild('st', { static: true }) | ||||
|   st!: STComponent; | ||||
|   @ViewChild('sf', { static: false }) | ||||
|   sf!: SFComponent; | ||||
|   columns: STColumn[] = [ | ||||
|     { title: '', index: 'key', type: 'checkbox' }, | ||||
|     { title: '规则编号', index: 'no' }, | ||||
|     { title: '描述', index: 'description' }, | ||||
|     { | ||||
|       title: '服务调用次数', | ||||
|       index: 'callNo', | ||||
|       type: 'number', | ||||
|       format: item => `${item.callNo} 万`, | ||||
|       sort: { | ||||
|         compare: (a, b) => a.callNo - b.callNo | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '状态', | ||||
|       index: 'status', | ||||
|       render: 'status', | ||||
|       filter: { | ||||
|         menus: this.status, | ||||
|         fn: (filter, record) => record.status === filter.index | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '更新时间', | ||||
|       index: 'updatedAt', | ||||
|       type: 'date', | ||||
|       sort: { | ||||
|         compare: (a, b) => a.updatedAt - b.updatedAt | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '操作', | ||||
|       buttons: [ | ||||
|         { | ||||
|           text: '修改', | ||||
|           click: item => this.edit(item) | ||||
|         }, | ||||
|         { | ||||
|           text: '删除', | ||||
|           click: item => this.delete(item) | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   ]; | ||||
|   searchSchema: SFSchema = { | ||||
|     properties: { | ||||
|       expand: { | ||||
|         type: 'boolean', | ||||
|         ui: { | ||||
|           hidden: true | ||||
|         } | ||||
|       }, | ||||
|       orderSn: { | ||||
|         type: 'string', | ||||
|         title: '订单号', | ||||
|         ui: { | ||||
|           autocomplete: 'off' | ||||
|         } | ||||
|       }, | ||||
|       receiveName: { | ||||
|         type: 'string', | ||||
|         title: '收件人' | ||||
|       }, | ||||
|       receiveMobile: { | ||||
|         type: 'string', | ||||
|         title: '收件人电话' | ||||
|       }, | ||||
|       tenantName: { | ||||
|         type: 'string', | ||||
|         title: '下单商家', | ||||
|         ui: { | ||||
|           visibleIf: { | ||||
|             expand: (value: boolean) => value | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       createTime: { | ||||
|         title: '下单时间', | ||||
|         type: 'string', | ||||
|         ui: { | ||||
|           widget: 'date', | ||||
|           mode: 'range', | ||||
|           format: 'yyyy-MM-dd', | ||||
|           visibleIf: { | ||||
|             expand: (value: boolean) => value | ||||
|           } | ||||
|         } as SFDateWidgetSchema | ||||
|       } | ||||
|     } | ||||
|   }; | ||||
|  | ||||
|   ui: SFUISchema = { | ||||
|     '*': { | ||||
|       spanLabelFixed: 90, | ||||
|       grid: { span: 8, gutter: 4 } | ||||
|     }, | ||||
|     $orderSn: { | ||||
|       grid: { span: 8 } | ||||
|     }, | ||||
|     $receiveName: { | ||||
|       grid: { span: 8 } | ||||
|     }, | ||||
|     $createTime: { grid: { span: 8 } } | ||||
|   }; | ||||
|   _$expand = false; | ||||
|  | ||||
|   selectedRows: any[] = []; | ||||
|   totalCallNo = 0; | ||||
|   constructor(public service: DemoService, public msg: NzMessageService, private modal: ModalHelper) {} | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|  | ||||
|   stChange(e: STChange): void { | ||||
|     switch (e.type) { | ||||
|       case 'checkbox': | ||||
|         this.selectedRows = e.checkbox!; | ||||
|         this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.callNo, 0); | ||||
|         break; | ||||
|       case 'filter': | ||||
|         this.st.load(); | ||||
|         break; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   remove(): void { | ||||
|     this.service.request('/delete/rule?_allow_anonymous=true', { nos: this.selectedRows.map(i => i.no).join(',') }).subscribe(() => { | ||||
|       this.st.load(); | ||||
|       this.st.clearCheck(); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   approval(): void { | ||||
|     this.msg.success(`审批了 ${this.selectedRows.length} 笔`); | ||||
|   } | ||||
|  | ||||
|   add(): void { | ||||
|     this.modal.createStatic(DemoEditComponent, { i: { id: 0 } }).subscribe(res => { | ||||
|       if (res) { | ||||
|         console.log(res); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   edit(item: any) { | ||||
|     this.modal | ||||
|       .createStatic(DemoEditComponent, { i: { no: 1, owner: '22222', callNo: 111, status: 1, description: '222' } }) | ||||
|       .subscribe(res => { | ||||
|         if (res) { | ||||
|           this.st.setRow(item, res); | ||||
|         } | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   delete(item: any) { | ||||
|     this.st.removeRow(item); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * 重置表单 | ||||
|    */ | ||||
|   resetSF() { | ||||
|     this.sf.reset(); | ||||
|     this._$expand = false; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * 伸缩查询条件 | ||||
|    */ | ||||
|   expandToggle() { | ||||
|     this._$expand = !this._$expand; | ||||
|     this.sf?.setValue('/expand', this._$expand); | ||||
|   } | ||||
| } | ||||
| @ -1,10 +0,0 @@ | ||||
| <div class="modal-header"> | ||||
|   <div class="modal-title">编辑 {{ record.id }} 信息</div> | ||||
| </div> | ||||
| <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> | ||||
| <sf *ngIf="i" #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="i" button="none"> | ||||
|   <div class="modal-footer"> | ||||
|     <button nz-button type="button" (click)="close()">关闭</button> | ||||
|     <button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="!sf.valid" [nzLoading]="http.loading">保存</button> | ||||
|   </div> | ||||
| </sf> | ||||
| @ -1,24 +0,0 @@ | ||||
| import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { DemoEditComponent } from './edit.component'; | ||||
|  | ||||
| describe('DemoEditComponent', () => { | ||||
|   let component: DemoEditComponent; | ||||
|   let fixture: ComponentFixture<DemoEditComponent>; | ||||
|  | ||||
|   beforeEach(waitForAsync(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [ DemoEditComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   })); | ||||
|  | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(DemoEditComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
|  | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -1,63 +0,0 @@ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { SFSchema, SFUISchema } from '@delon/form'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalRef } from 'ng-zorro-antd/modal'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-demo-edit', | ||||
|   templateUrl: './edit.component.html', | ||||
| }) | ||||
| export class DemoEditComponent implements OnInit { | ||||
|   record: any = {}; | ||||
|   i: any; | ||||
|   schema: SFSchema = { | ||||
|     properties: { | ||||
|       no: { type: 'string', title: '编号' }, | ||||
|       owner: { type: 'string', title: '姓名', maxLength: 15 }, | ||||
|       callNo: { type: 'number', title: '调用次数' }, | ||||
|       status: { type: 'number', title: '链接' }, | ||||
|       description: { type: 'string', title: '描述', maxLength: 140 }, | ||||
|     }, | ||||
|     required: ['owner', 'callNo', 'description'], | ||||
|   }; | ||||
|   ui: SFUISchema = { | ||||
|     '*': { | ||||
|       spanLabelFixed: 100, | ||||
|       grid: { span: 12 }, | ||||
|     }, | ||||
|     $no: { | ||||
|       widget: 'text' | ||||
|     }, | ||||
|     $href: { | ||||
|       widget: 'string', | ||||
|     }, | ||||
|     $description: { | ||||
|       widget: 'textarea', | ||||
|       grid: { span: 24 }, | ||||
|     }, | ||||
|   }; | ||||
|  | ||||
|   constructor( | ||||
|     private modal: NzModalRef, | ||||
|     private msgSrv: NzMessageService, | ||||
|     public http: _HttpClient, | ||||
|   ) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     if (this.record.id > 0) | ||||
|     this.http.get(`/user/${this.record.id}`).subscribe(res => (this.i = res)); | ||||
|   } | ||||
|  | ||||
|   save(value: any): void { | ||||
|     this.modal.close(value); | ||||
|     // this.http.post(`/user/${this.record.id}`, value).subscribe(res => { | ||||
|     //   this.msgSrv.success('保存成功'); | ||||
|     //   this.modal.close(true); | ||||
|     // }); | ||||
|   } | ||||
|  | ||||
|   close(): void { | ||||
|     this.modal.destroy(); | ||||
|   } | ||||
| } | ||||
| @ -1,129 +0,0 @@ | ||||
| <page-header-wrapper title="Zorro案例"> | ||||
| </page-header-wrapper> | ||||
|  | ||||
| <nz-card [nzBordered]="false"> | ||||
|     <form nz-form (ngSubmit)="getData()" class="search__form"> | ||||
|         <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }"> | ||||
|             <div nz-col nzMd="8" nzSm="24"> | ||||
|                 <nz-form-item> | ||||
|                     <nz-form-label nzFor="no">规则编号</nz-form-label> | ||||
|                     <nz-form-control> | ||||
|                         <input nz-input [(ngModel)]="q.no" name="no" placeholder="请输入" id="no" /> | ||||
|                     </nz-form-control> | ||||
|                 </nz-form-item> | ||||
|             </div> | ||||
|             <div nz-col nzMd="8" nzSm="24"> | ||||
|                 <nz-form-item> | ||||
|                     <nz-form-label nzFor="status">使用状态</nz-form-label> | ||||
|                     <nz-form-control> | ||||
|                         <nz-select [(ngModel)]="q.status" name="status" id="status" [nzPlaceHolder]="'请选择'" | ||||
|                             [nzShowSearch]="true"> | ||||
|                             <nz-option *ngFor="let i of status; let idx = index" [nzLabel]="i.text" [nzValue]="idx"> | ||||
|                             </nz-option> | ||||
|                         </nz-select> | ||||
|                     </nz-form-control> | ||||
|                 </nz-form-item> | ||||
|             </div> | ||||
|             <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm"> | ||||
|                 <nz-form-item> | ||||
|                     <nz-form-label nzFor="callNo">调用次数</nz-form-label> | ||||
|                     <nz-form-control> | ||||
|                         <input nz-input id="callNo" /> | ||||
|                     </nz-form-control> | ||||
|                 </nz-form-item> | ||||
|             </div> | ||||
|             <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm"> | ||||
|                 <nz-form-item> | ||||
|                     <nz-form-label nzFor="updatedAt">更新日期</nz-form-label> | ||||
|                     <nz-form-control> | ||||
|                         <nz-date-picker id="updatedAt" style="width: 100%;"></nz-date-picker> | ||||
|                     </nz-form-control> | ||||
|                 </nz-form-item> | ||||
|             </div> | ||||
|             <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm"> | ||||
|                 <nz-form-item> | ||||
|                     <nz-form-label nzFor="status2">使用状态</nz-form-label> | ||||
|                     <nz-form-control> | ||||
|                         <nz-select [nzPlaceHolder]="'请选择'" nzId="status2" [nzShowSearch]="true"> | ||||
|                             <nz-option *ngFor="let i of status; let idx = index" [nzLabel]="i.text" [nzValue]="idx"> | ||||
|                             </nz-option> | ||||
|                         </nz-select> | ||||
|                     </nz-form-control> | ||||
|                 </nz-form-item> | ||||
|             </div> | ||||
|             <div nz-col [nzSpan]="8" [class.text-right]="expandForm"> | ||||
|                 <button nz-button type="button" [nzType]="'primary'" (click)="action(modalContent)">新增</button> | ||||
|                 <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="loading">查询</button> | ||||
|                 <button nz-button type="reset" (click)="reset()" class="mx-sm">重置</button> | ||||
|                 <a (click)="expandForm = !expandForm"> | ||||
|                     {{ expandForm ? '收起' : '展开' }} | ||||
|                     <i nz-icon [nzType]="expandForm ? 'up' : 'down'"></i> | ||||
|                 </a> | ||||
|             </div> | ||||
|         </div> | ||||
|     </form> | ||||
|  | ||||
|     <ng-container *ngIf="selectedRows.length > 0"> | ||||
|         <button nz-button class="mb-md">批量操作</button> | ||||
|         <button nz-button nz-dropdown [nzDropdownMenu]="batchMenu" nzPlacement="bottomLeft"> | ||||
|             更多操作 | ||||
|             <i nz-icon nzType="down"></i> | ||||
|         </button> | ||||
|         <nz-dropdown-menu #batchMenu="nzDropdownMenu"> | ||||
|             <ul nz-menu> | ||||
|                 <li nz-menu-item (click)="remove()">删除</li> | ||||
|                 <li nz-menu-item (click)="approval()">批量审批</li> | ||||
|             </ul> | ||||
|         </nz-dropdown-menu> | ||||
|     </ng-container> | ||||
|     <div> | ||||
|         <nz-alert [nzType]="'info'" [nzShowIcon]="true" [nzMessage]="message"> | ||||
|             <ng-template #message> | ||||
|                 已选择 | ||||
|                 <strong class="text-primary">{{ selectedRows.length }}</strong> 项   服务调用总计 <strong>{{ | ||||
|                     totalCallNo }}</strong> 万 | ||||
|                 <a *ngIf="selectedRows.length > 0" (click)="clearCheck()" class="ml-lg">清空</a> | ||||
|             </ng-template> | ||||
|         </nz-alert> | ||||
|     </div> | ||||
|  | ||||
|     <nz-table #rowSelectionTable nzShowPagination nzShowSizeChanger [nzData]="data"> | ||||
|         <thead> | ||||
|             <tr> | ||||
|                 <th [(nzChecked)]="checkedAll" [nzIndeterminate]="indeterminate" | ||||
|                     (nzCheckedChange)="onAllChecked($event)"> | ||||
|                 </th> | ||||
|                 <th>No</th> | ||||
|                 <th>Name</th> | ||||
|                 <th>Description</th> | ||||
|                 <th>Option</th> | ||||
|             </tr> | ||||
|         </thead> | ||||
|         <tbody> | ||||
|             <tr *ngFor="let data of rowSelectionTable.data"> | ||||
|                 <td [nzShowCheckbox]="true" [(nzChecked)]="data.checked" [nzDisabled]="data.disabled" | ||||
|                     (nzCheckedChange)="onItemChecked($event,data)"> | ||||
|                 </td> | ||||
|                 <td>{{ data.no }}</td> | ||||
|                 <td>{{ data.callNo }}</td> | ||||
|                 <td>{{ data.description }}</td> | ||||
|                 <td> | ||||
|                     <a (click)="action(modalContent,data)">Edit</a> | ||||
|                     <nz-divider nzType="vertical"></nz-divider> | ||||
|                     <a (click)="deleteAction(data)">Delete </a> | ||||
|                 </td> | ||||
|             </tr> | ||||
|         </tbody> | ||||
|     </nz-table> | ||||
| </nz-card> | ||||
|  | ||||
|  | ||||
|  | ||||
| <ng-template #modalContent> | ||||
|     <nz-form-item> | ||||
|         <nz-form-label nzFor="no">描述</nz-form-label> | ||||
|         <nz-form-control> | ||||
|             <input nz-input [(ngModel)]="description" name="description" placeholder="请输入" id="no" /> | ||||
|         </nz-form-control> | ||||
|     </nz-form-item> | ||||
| </ng-template> | ||||
| @ -1,161 +0,0 @@ | ||||
| import { ChangeDetectorRef, Component, OnInit, TemplateRef } from '@angular/core'; | ||||
| import { NzSafeAny } from 'ng-zorro-antd/core/types'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { map, tap } from 'rxjs/operators'; | ||||
| import { DemoService } from '../../services/demo.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-zorro-demo', | ||||
|   templateUrl: './zorro-demo.component.html', | ||||
|   styleUrls: ['./zorro-demo.component.less'] | ||||
| }) | ||||
| export class ZorroDemoComponent implements OnInit { | ||||
|   data: any[] = []; | ||||
|   loading = false; | ||||
|   expandForm = false; | ||||
|  | ||||
|   q: { | ||||
|     pi: number; | ||||
|     ps: number; | ||||
|     no: string; | ||||
|     sorter: string; | ||||
|     status: number | null; | ||||
|     statusList: NzSafeAny[]; | ||||
|   } = { | ||||
|     pi: 1, | ||||
|     ps: 10, | ||||
|     no: '', | ||||
|     sorter: '', | ||||
|     status: null, | ||||
|     statusList: [] | ||||
|   }; | ||||
|  | ||||
|   status = [ | ||||
|     { index: 0, text: '关闭', value: false, type: 'default', checked: false }, | ||||
|     { | ||||
|       index: 1, | ||||
|       text: '运行中', | ||||
|       value: false, | ||||
|       type: 'processing', | ||||
|       checked: false | ||||
|     }, | ||||
|     { index: 2, text: '已上线', value: false, type: 'success', checked: false }, | ||||
|     { index: 3, text: '异常', value: false, type: 'error', checked: false } | ||||
|   ]; | ||||
|  | ||||
|   selectedRows: any[] = []; | ||||
|   totalCallNo = 0; | ||||
|   description: string = ''; | ||||
|   checkedAll = false; | ||||
|   indeterminate = false; | ||||
|   constructor( | ||||
|     private service: DemoService, | ||||
|     public msg: NzMessageService, | ||||
|     private modalSrv: NzModalService, | ||||
|     private cdr: ChangeDetectorRef | ||||
|   ) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.getData(); | ||||
|   } | ||||
|  | ||||
|   getData(): void { | ||||
|     this.loading = true; | ||||
|     this.q.statusList = this.status.filter(w => w.checked).map(item => item.index); | ||||
|     if (this.q.status !== null && this.q.status > -1) { | ||||
|       this.q.statusList.push(this.q.status); | ||||
|     } | ||||
|     this.service | ||||
|       .request('/rule?_allow_anonymous=true', this.q) | ||||
|       .pipe( | ||||
|         map((list: { records: Array<{ status: number; statusText: string; statusType: string }> }) => | ||||
|           list.records.map(i => { | ||||
|             const statusItem = this.status[i.status]; | ||||
|             i.statusText = statusItem.text; | ||||
|             i.statusType = statusItem.type; | ||||
|             return i; | ||||
|           }) | ||||
|         ), | ||||
|         tap(() => (this.loading = false)) | ||||
|       ) | ||||
|       .subscribe(res => { | ||||
|         this.data = res; | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   action(tpl: TemplateRef<{}>, data?: any): void { | ||||
|     if (data) { | ||||
|       this.description = data.description; | ||||
|     } | ||||
|     this.modalSrv.create({ | ||||
|       nzTitle: '新建规则', | ||||
|       nzContent: tpl, | ||||
|       nzOnOk: () => { | ||||
|         this.loading = true; | ||||
|  | ||||
|         // this.http.post('/rule', { description: this.description }).subscribe(() => this.getData()); | ||||
|         if (data) { | ||||
|           Object.assign(data, { description: this.description }); | ||||
|         } else { | ||||
|           this.data.push({ | ||||
|             checked: false, | ||||
|             key: this.data.length, | ||||
|             callNo: 111, | ||||
|             description: this.description | ||||
|           }); | ||||
|           this.data = [...this.data]; | ||||
|         } | ||||
|         setTimeout(() => { | ||||
|           this.loading = false; | ||||
|         }, 1000); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   remove(): void { | ||||
|     this.service.request('/delete/rule?_allow_anonymous=true', { nos: this.selectedRows.map((i: any) => i.no).join(',') }).subscribe(() => { | ||||
|       this.getData(); | ||||
|       this.clearCheck(); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   deleteAction(item: any) { | ||||
|     this.data = this.data.filter(({ no }) => no !== item.no); | ||||
|   } | ||||
|  | ||||
|   approval(): void { | ||||
|     this.msg.success(`审批了 ${this.selectedRows.length} 笔`); | ||||
|   } | ||||
|  | ||||
|   onAllChecked(checked: boolean): void { | ||||
|     this.data.filter(({ disabled }) => !disabled).forEach(item => (item.checked = checked)); | ||||
|     this.selectedRows = this.data.filter(({ checked }) => checked); | ||||
|   } | ||||
|  | ||||
|   onItemChecked(checked: boolean, item: any): void { | ||||
|     if (checked) { | ||||
|       this.selectedRows.push(item); | ||||
|     } else { | ||||
|       this.selectedRows = this.selectedRows.filter(({ no }) => no !== item.no); | ||||
|     } | ||||
|     this.refreshCheckedStatus(); | ||||
|   } | ||||
|  | ||||
|   refreshCheckedStatus(): void { | ||||
|     this.checkedAll = this.data.every(item => item.checked); | ||||
|     this.indeterminate = this.data.some(item => item.checked) && !this.checkedAll; | ||||
|   } | ||||
|  | ||||
|   clearCheck() { | ||||
|     this.data.forEach(item => (item.checked = false)); | ||||
|     this.selectedRows = []; | ||||
|     this.checkedAll = false; | ||||
|     this.indeterminate = false; | ||||
|   } | ||||
|  | ||||
|   reset(): void { | ||||
|     // wait form reset updated finished | ||||
|     setTimeout(() => this.getData()); | ||||
|   } | ||||
| } | ||||
| @ -1,15 +0,0 @@ | ||||
| import { NgModule } from '@angular/core'; | ||||
| import { RouterModule, Routes } from '@angular/router'; | ||||
| import { AlianDemoComponent } from './components/alian-demo/alian-demo.component'; | ||||
| import { ZorroDemoComponent } from './components/zorro-demo/zorro-demo.component'; | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { path: 'zorro', component: ZorroDemoComponent }, | ||||
|   { path: 'alain', component: AlianDemoComponent }, | ||||
| ]; | ||||
|  | ||||
| @NgModule({ | ||||
|   imports: [RouterModule.forChild(routes)], | ||||
|   exports: [RouterModule] | ||||
| }) | ||||
| export class DemoRoutingModule { } | ||||
| @ -1,15 +0,0 @@ | ||||
| import { NgModule, Type } from '@angular/core'; | ||||
| import { SharedModule } from '@shared'; | ||||
| import { AlianDemoComponent } from './components/alian-demo/alian-demo.component'; | ||||
| import { DemoEditComponent } from './components/zorro-demo/edit/edit.component'; | ||||
|  | ||||
| import { ZorroDemoComponent } from './components/zorro-demo/zorro-demo.component'; | ||||
| import { DemoRoutingModule } from './demo-routing.module'; | ||||
|  | ||||
| const COMPONENTS: Array<Type<void>> = [DemoEditComponent, ZorroDemoComponent, AlianDemoComponent]; | ||||
|  | ||||
| @NgModule({ | ||||
|   imports: [SharedModule, DemoRoutingModule], | ||||
|   declarations: COMPONENTS | ||||
| }) | ||||
| export class DemoModule {} | ||||
| @ -1,11 +0,0 @@ | ||||
| import { Injectable, Injector } from '@angular/core'; | ||||
| import { BaseService } from 'src/app/shared/services'; | ||||
|  | ||||
| @Injectable({ | ||||
|   providedIn: 'root' | ||||
| }) | ||||
| export class DemoService extends BaseService { | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector); | ||||
|   } | ||||
| } | ||||
| @ -45,7 +45,7 @@ | ||||
|                 <th>路由地址</th> | ||||
|                 <th nzAlign="center" nzWidth="120px">菜单图标</th> | ||||
|                 <th nzWidth="100px">菜单排序</th> | ||||
|                 <th nzAlign="center">操作</th> | ||||
|                 <th nzWidth="150px" nzAlign="center">操作</th> | ||||
|             </tr> | ||||
|         </thead> | ||||
|         <tbody> | ||||
| @ -64,7 +64,7 @@ | ||||
|                             <i nz-icon [nzType]="item.iconType"></i> | ||||
|                         </td> | ||||
|                         <td nzWidth="100px">{{ item.sorted }}</td> | ||||
|                         <td nzAlign="center"> | ||||
|                         <td nzWidth="150px" nzAlign="center"> | ||||
|                             <a (click)="openDrawer(item)">权限配置</a> | ||||
|                         </td> | ||||
|                     </tr> | ||||
|  | ||||
| @ -76,7 +76,7 @@ export class MenuManagerComponentsIndexComponent implements OnInit { | ||||
|     }); | ||||
|     modal.afterClose.subscribe(res => { | ||||
|       if (res) { | ||||
|         // this.loadMemu(this.selectedPlatform.appId); | ||||
|         this.loadMemu(this.selectedPlatform.appId); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
| @ -28,7 +28,6 @@ const routes: Routes = [ | ||||
|     children: [ | ||||
|       { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, | ||||
|       { path: 'dashboard', component: DashboardComponent }, | ||||
|       { path: 'demo', loadChildren: () => import('./demo/demo.module').then(m => m.DemoModule) }, | ||||
|       { | ||||
|         path: 'account', | ||||
|         loadChildren: () => import('./account/account.module').then(m => m.AccountModule) | ||||
|  | ||||
| @ -1,12 +1,7 @@ | ||||
| import { DatePipe } from '@angular/common'; | ||||
| import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'; | ||||
| import { FormBuilder, FormGroup, Validators } from '@angular/forms'; | ||||
| import { SFComponent, SFSchema, SFUISchema, SFUploadWidgetSchema } from '@delon/form'; | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { SFComponent, SFSchema } from '@delon/form'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { Observable, Observer } from 'rxjs'; | ||||
| import { Router } from '@angular/router'; | ||||
| import { SystemService } from '../../services/system.service'; | ||||
| import { EnvironmentService } from '@env/environment.service'; | ||||
| @Component({ | ||||
|   selector: 'app-agreement-config-components-base', | ||||
|   styleUrls: ['./agreement-config.component.less'], | ||||
|  | ||||
| @ -37,6 +37,8 @@ const routes: Routes = [ | ||||
|   { path: 'system-logs', component: SystemLogsComponent }, | ||||
|   { path: 'user-logs', component: UserLogsComponent }, | ||||
|   { path: 'version-logs', component: VersionLogsComponent }, | ||||
|   { path: 'system-supply-logs', component: SystemSupplyLogsComponent }, | ||||
|   { path: 'system-waybill-logs', component: SystemWaybillLogsComponent }, | ||||
|   { path: 'audit-reason-config', component: AuditReasonConfigComponent }, | ||||
|   { path: 'cart-config', component: CartConfigComponent }, | ||||
|   { path: 'agreement-config', component: AgreementConfigComponentsBaseComponent }, | ||||
| @ -45,11 +47,9 @@ const routes: Routes = [ | ||||
|   { path: 'crm-management', component: CrmManagementComponent }, | ||||
|   { path: 'network-freight', component: NetworkFreightComponent }, | ||||
|   { path: 'close-account', component: CloseAccountComponent }, | ||||
|   { path: 'system-supply-logs', component: SystemSupplyLogsComponent }, | ||||
|   { path: 'system-waybill-logs', component: SystemWaybillLogsComponent }, | ||||
|   { path: 'btn-management', component: BtnManagementComponent }, | ||||
|   { path: 'announcement-message', component: AnnouncementMessageComponent }, | ||||
|   { path: 'insurance-set', component: InsuranceSetComponent }, | ||||
|   { path: 'insurance-set', component: InsuranceSetComponent } | ||||
| ]; | ||||
|  | ||||
| @NgModule({ | ||||
|  | ||||
| @ -1,31 +0,0 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-11-29 20:19:08 | ||||
|  * @LastEditTime: 2021-11-29 20:31:00 | ||||
|  * @LastEditors: your name | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\list\detail\detail.component.spec.ts | ||||
|  */ | ||||
| import { async, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { UserCenterComponentsDriverDetailComponent } from './detail.component'; | ||||
|  | ||||
| describe('UserCenterComponentsDriverDetailComponent', () => { | ||||
|   let component: UserCenterComponentsDriverDetailComponent; | ||||
|   let fixture: ComponentFixture<UserCenterComponentsDriverDetailComponent>; | ||||
|  | ||||
|   beforeEach(async(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [UserCenterComponentsDriverDetailComponent], | ||||
|     }).compileComponents(); | ||||
|   })); | ||||
|  | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(UserCenterComponentsDriverDetailComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
|  | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -298,7 +298,7 @@ export class UserCenterComponentsDriverComponent implements OnInit { | ||||
|         className: 'text-center', | ||||
|         buttons: [ | ||||
|           { | ||||
|             text: '查看  ', | ||||
|             text: '查看', | ||||
|             click: item => { | ||||
|               this.router.navigate(['./detail', item.appUserId], { relativeTo: this.ar }); | ||||
|               // this.router.navigate(['./view', item.id], { relativeTo: this.ar, queryParams: { tenantId: item.tenantId } }); | ||||
| @ -309,7 +309,7 @@ export class UserCenterComponentsDriverComponent implements OnInit { | ||||
|             click: item => this.settingAction(item) | ||||
|           }, | ||||
|           { | ||||
|             text: '资金账户 ', | ||||
|             text: '资金账户', | ||||
|             click: item => this.showAccountDetail(item) | ||||
|           } | ||||
|         ] | ||||
|  | ||||
| @ -1,31 +0,0 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-11-29 20:19:08 | ||||
|  * @LastEditTime: 2021-11-29 20:31:00 | ||||
|  * @LastEditors: your name | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\list\detail\detail.component.spec.ts | ||||
|  */ | ||||
| import { async, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { FreightComponentsListDetailComponent } from './detail.component'; | ||||
|  | ||||
| describe('FreightComponentsListDetailComponent', () => { | ||||
|   let component: FreightComponentsListDetailComponent; | ||||
|   let fixture: ComponentFixture<FreightComponentsListDetailComponent>; | ||||
|  | ||||
|   beforeEach(async(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [FreightComponentsListDetailComponent], | ||||
|     }).compileComponents(); | ||||
|   })); | ||||
|  | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(FreightComponentsListDetailComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
|  | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user