Skip to content

Commit

Permalink
修复Angular前端的代理类。
Browse files Browse the repository at this point in the history
统一role功能的代码。
  • Loading branch information
ltm0203 committed Oct 24, 2021
1 parent 49e44fc commit c4cc579
Show file tree
Hide file tree
Showing 11 changed files with 941 additions and 762 deletions.
90 changes: 81 additions & 9 deletions src/angular-zorro-free/nswag/service.config.nswag
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
{
{
"runtime": "Default",
"swaggerGenerator": {
"fromSwagger": {
"defaultVariables": null,
"documentGenerator": {
"fromDocument": {
"url": "http://localhost:21021/swagger/v1/swagger.json",
"output": null
}
},
"codeGenerators": {
"swaggerToTypeScriptClient": {
"openApiToTypeScriptClient": {
"className": "{controller}ServiceProxy",
"moduleName": "",
"namespace": "",
"typeScriptVersion": 2.0,
"template": "Angular",
"promiseType": "Promise",
"httpClass": "HttpClient",
"withCredentials": false,
"useSingletonProvider": false,
"injectionTokenType": "InjectionToken",
"rxJsVersion": 6.0,
Expand All @@ -23,35 +25,54 @@
"generateClientClasses": true,
"generateClientInterfaces": false,
"generateOptionalParameters": false,
"exportTypes": true,
"wrapDtoExceptions": false,
"exceptionClass": "ApiException",
"clientBaseClass": null,
"wrapResponses": false,
"wrapResponseMethods": [],
"generateResponseClasses": true,
"responseClass": "SwaggerResponse",
"protectedMethods": [],
"configurationClass": null,
"useTransformOptionsMethod": false,
"useTransformResultMethod": false,
"generateDtoTypes": true,
"operationGenerationMode": "MultipleClientsFromPathSegments",
"markOptionalProperties": false,
"generateCloneMethod": true,
"typeStyle": "Class",
"classTypes": [],
"extendedClasses": [],
"extensionCode": "service.extensions.ts",
"generateDefaultValues": true,
"excludedTypeNames": [],
"excludedParameterNames": [],
"handleReferences": false,
"generateConstructorInterface": true,
"convertConstructorInterfaceData": false,
"importRequiredTypes": true,
"useGetBaseUrlMethod": false,
"baseUrlTokenName": "API_BASE_URL",
"queryNullValue": "",
"inlineNamedDictionaries": false,
"inlineNamedAny": false,
"templateDirectory": null,
"typeNameGeneratorType": null,
"propertyNameGeneratorType": null,
"enumNameGeneratorType": null,
"serviceHost": null,
"serviceSchemes": null,
"output": "../src/shared/service-proxies/service-proxies.ts"
},
"swaggerToCSharpClient": {
"openApiToCSharpClient": {
"clientBaseClass": null,
"configurationClass": null,
"generateClientClasses": true,
"generateClientInterfaces": false,
"generateDtoTypes": true,
"injectHttpClient": false,
"disposeHttpClient": true,
"protectedMethods": [],
"generateExceptionClasses": true,
"exceptionClass": "SwaggerException",
"wrapDtoExceptions": true,
Expand All @@ -65,76 +86,127 @@
"clientClassAccessModifier": "public",
"typeAccessModifier": "public",
"generateContractsOutput": false,
"contractsNamespace": null,
"contractsOutputFilePath": null,
"parameterDateTimeFormat": "s",
"parameterDateFormat": "yyyy-MM-dd",
"generateUpdateJsonSerializerSettingsMethod": true,
"serializeTypeInformation": false,
"queryNullValue": "",
"className": "{controller}Client",
"operationGenerationMode": "MultipleClientsFromOperationId",
"additionalNamespaceUsages": [],
"additionalContractNamespaceUsages": [],
"generateOptionalParameters": false,
"generateJsonMethods": true,
"enforceFlagEnums": false,
"parameterArrayType": "System.Collections.Generic.IEnumerable",
"parameterDictionaryType": "System.Collections.Generic.IDictionary",
"responseArrayType": "System.Collections.ObjectModel.ObservableCollection",
"responseDictionaryType": "System.Collections.Generic.Dictionary",
"wrapResponses": false,
"wrapResponseMethods": [],
"generateResponseClasses": true,
"responseClass": "SwaggerResponse",
"namespace": "MyNamespace",
"requiredPropertiesMustBeDefined": true,
"dateType": "System.DateTime",
"jsonConverters": null,
"anyType": "object",
"dateTimeType": "System.DateTime",
"timeType": "System.TimeSpan",
"timeSpanType": "System.TimeSpan",
"arrayType": "System.Collections.ObjectModel.ObservableCollection",
"arrayInstanceType": "System.Collections.ObjectModel.Collection",
"dictionaryType": "System.Collections.Generic.Dictionary",
"dictionaryInstanceType": "System.Collections.Generic.Dictionary",
"arrayBaseType": "System.Collections.ObjectModel.ObservableCollection",
"dictionaryBaseType": "System.Collections.Generic.Dictionary",
"classStyle": "Inpc",
"generateDefaultValues": true,
"generateDataAnnotations": true,
"excludedTypeNames": [],
"excludedParameterNames": [],
"handleReferences": false,
"generateImmutableArrayProperties": false,
"generateImmutableDictionaryProperties": false,
"jsonSerializerSettingsTransformationMethod": null,
"inlineNamedArrays": false,
"inlineNamedDictionaries": false,
"inlineNamedTuples": true,
"inlineNamedAny": false,
"generateDtoTypes": true,
"generateOptionalPropertiesAsNullable": false,
"templateDirectory": null,
"typeNameGeneratorType": null,
"propertyNameGeneratorType": null,
"enumNameGeneratorType": null,
"serviceHost": null,
"serviceSchemes": null,
"output": null
},
"swaggerToCSharpController": {
"openApiToCSharpController": {
"controllerBaseClass": null,
"controllerStyle": "Partial",
"controllerTarget": "AspNet",
"useCancellationToken": false,
"aspNetNamespace": "System.Web.Http",
"useActionResultType": false,
"generateModelValidationAttributes": false,
"routeNamingStrategy": "None",
"basePath": null,
"className": "{controller}",
"operationGenerationMode": "MultipleClientsFromOperationId",
"additionalNamespaceUsages": [
"System.Web.Http"
],
"additionalContractNamespaceUsages": [],
"generateOptionalParameters": false,
"generateJsonMethods": true,
"enforceFlagEnums": false,
"parameterArrayType": "System.Collections.Generic.IEnumerable",
"parameterDictionaryType": "System.Collections.Generic.IDictionary",
"responseArrayType": "System.Collections.ObjectModel.ObservableCollection",
"responseDictionaryType": "System.Collections.Generic.Dictionary",
"wrapResponses": false,
"wrapResponseMethods": [],
"generateResponseClasses": true,
"responseClass": "SwaggerResponse",
"namespace": "MyNamespace",
"requiredPropertiesMustBeDefined": true,
"dateType": "System.DateTime",
"jsonConverters": null,
"anyType": "object",
"dateTimeType": "System.DateTime",
"timeType": "System.TimeSpan",
"timeSpanType": "System.TimeSpan",
"arrayType": "System.Collections.Generic.IEnumerable",
"arrayInstanceType": "System.Collections.ObjectModel.Collection",
"dictionaryType": "System.Collections.Generic.Dictionary",
"dictionaryInstanceType": "System.Collections.Generic.Dictionary",
"arrayBaseType": "System.Collections.ObjectModel.ObservableCollection",
"dictionaryBaseType": "System.Collections.Generic.Dictionary",
"classStyle": "Inpc",
"generateDefaultValues": true,
"generateDataAnnotations": true,
"excludedTypeNames": [],
"excludedParameterNames": [],
"handleReferences": false,
"generateImmutableArrayProperties": false,
"generateImmutableDictionaryProperties": false,
"jsonSerializerSettingsTransformationMethod": null,
"inlineNamedArrays": false,
"inlineNamedDictionaries": false,
"inlineNamedTuples": true,
"inlineNamedAny": false,
"generateDtoTypes": true,
"generateOptionalPropertiesAsNullable": false,
"templateDirectory": null,
"typeNameGeneratorType": null,
"propertyNameGeneratorType": null,
"enumNameGeneratorType": null,
"serviceHost": null,
"serviceSchemes": null,
"output": null
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,54 +1,83 @@
<div class="padding-bottom-45">

<div class="modal-header">
<div class="modal-title">{{l('CreateNewRole')}}</div>
<div class="modal-title">{{ l('CreateNewRole') }}</div>
</div>


<form nz-form #validateForm="ngForm" (ngSubmit)="save()">

<!-- 角色名称 -->
<nz-form-item>
<nz-form-control nzHasFeedback>
<input nz-input name="name" #name="ngModel" [(ngModel)]="role.name" [placeholder]="l('Name')" required>
<nz-form-explain *ngIf="name.control.dirty&&name.control.errors">
<ng-container *ngIf="name.control.hasError('required')">{{l('CanNotNull')}}</ng-container>
<input
nz-input
name="name"
#name="ngModel"
[(ngModel)]="role.name"
[placeholder]="l('Name')"
required
/>
<nz-form-explain *ngIf="name.control.dirty && name.control.errors">
<ng-container *ngIf="name.control.hasError('required')">{{
l('CanNotNull')
}}</ng-container>
</nz-form-explain>
</nz-form-control>
</nz-form-item>

<!-- 角色展示名称 -->
<nz-form-item>
<nz-form-control nzHasFeedback>
<input nz-input name="displayName" #displayName="ngModel" [(ngModel)]="role.displayName" [placeholder]="l('DisplayName')"
required>
<nz-form-explain *ngIf="displayName.control.dirty&&displayName.control.errors">
<ng-container *ngIf="displayName.control.hasError('required')">{{l('CanNotNull')}}</ng-container>
<input
nz-input
name="displayName"
#displayName="ngModel"
[(ngModel)]="role.displayName"
[placeholder]="l('DisplayName')"
required
/>
<nz-form-explain
*ngIf="displayName.control.dirty && displayName.control.errors"
>
<ng-container *ngIf="displayName.control.hasError('required')">{{
l('CanNotNull')
}}</ng-container>
</nz-form-explain>
</nz-form-control>
</nz-form-item>

<!-- 角色介绍 -->
<nz-form-item>
<nz-form-control>
<input nz-input name="description" [(ngModel)]="role.description" [placeholder]="l('RoleDescription')">
<input
nz-input
name="description"
[(ngModel)]="role.description"
[placeholder]="l('RoleDescription')"
/>
</nz-form-control>
</nz-form-item>

<!-- 权限组 -->
<nz-form-item>
<nz-checkbox-group name="permissions" [(ngModel)]="permissionList" *ngIf="permissionList.length!=0"></nz-checkbox-group>
<nz-checkbox-group
name="grantedPermissions"
[(ngModel)]="permissionList"
*ngIf="permissionList.length != 0"
></nz-checkbox-group>
</nz-form-item>

<!-- 功能按钮 -->
<div class="modal-footer">
<button nz-button type="button" [disabled]="saving" (click)="close()">
{{l("Cancel")}}
{{ l('Cancel') }}
</button>
<button nz-button [nzType]="'primary'" type="submit" [disabled]="!validateForm.valid||saving">
{{l("Save")}}
<button
nz-button
[nzType]="'primary'"
type="submit"
[disabled]="!validateForm.valid || saving"
>
{{ l('Save') }}
</button>
</div>

</form>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -1,55 +1,56 @@
import { Component, OnInit, Injector, Input } from '@angular/core';
import { ListResultDtoOfPermissionDto, CreateRoleDto, RoleServiceProxy } from '@shared/service-proxies/service-proxies';
import {
CreateRoleDto,
PermissionDtoListResultDto,
RoleServiceProxy,
} from '@shared/service-proxies/service-proxies';
import { ModalComponentBase } from '@shared/component-base';
import { Validators } from '@angular/forms';

@Component({
selector: 'app-create-role',
templateUrl: './create-role.component.html',
styles: []
styles: [],
})
export class CreateRoleComponent extends ModalComponentBase implements OnInit {

permissions: ListResultDtoOfPermissionDto = null;
permissions: PermissionDtoListResultDto = null;
role: CreateRoleDto = new CreateRoleDto();
permissionList = [];

constructor(
injector: Injector,
private _roleService: RoleServiceProxy
) {
constructor(injector: Injector, private _roleService: RoleServiceProxy) {
super(injector);
}

ngOnInit() {

this._roleService.getAllPermissions()
.subscribe((permissions: ListResultDtoOfPermissionDto) => {
this._roleService
.getAllPermissions()
.subscribe((permissions: PermissionDtoListResultDto) => {
this.permissions = permissions;

this.permissions.items.forEach((item) => {
this.permissions.items.forEach(item => {
this.permissionList.push({
label: item.displayName, value: item.name, checked: true
label: item.displayName,
value: item.name,
checked: true,
});
});

});

}

save(): void {
this.saving = true;
let tmpPermissions = [];

this.permissionList.forEach((item) => {
this.permissionList.forEach(item => {
if (item.checked) {
tmpPermissions.push(item.value);
}
});

this.role.permissions = tmpPermissions;
this.role.grantedPermissions = tmpPermissions;

this._roleService.create(this.role)
this._roleService
.create(this.role)
.finally(() => {
this.saving = false;
})
Expand All @@ -58,5 +59,4 @@ export class CreateRoleComponent extends ModalComponentBase implements OnInit {
this.success();
});
}

}
Loading

0 comments on commit c4cc579

Please sign in to comment.