Compare commits

...

3 Commits

Author SHA1 Message Date
shimingxy
e715bca178 优化 2025-10-17 10:01:02 +08:00
shimingxy
1459f0fc8b 合并 用户编辑 机构信息和机构扩展信息 2025-10-17 09:17:44 +08:00
shimingxy
1005df51b8 tableHasCheckedItem() 2025-10-17 08:49:41 +08:00
32 changed files with 1005 additions and 459 deletions

View File

@ -8,23 +8,39 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label> <nz-form-label nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="groupQuery.params.groupName" [ngModelOptions]="{ standalone: true }" <input
name="groupName" placeholder="" id="groupName" /> nz-input
[(ngModel)]="groupQuery.params.groupName"
[ngModelOptions]="{ standalone: true }"
name="groupName"
placeholder=""
id="groupName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="8" [class.text-right]="groupQuery.expandForm"> <div nz-col [nzSpan]="8" [class.text-right]="groupQuery.expandForm">
<button nz-button type="submit" [nzType]="'primary'" [nzLoading]="groupQuery.submitLoading">{{ <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="groupQuery.submitLoading">{{
'mxk.text.query' | i18n 'mxk.text.query' | i18n
}}</button> }}</button>
</div> </div>
</form> </form>
</nz-card> </nz-card>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="groupQuery.results.rows" [nzFrontPagination]="false" [nzTotal]="groupQuery.results.records" #dynamicTable
[nzPageSizeOptions]="groupQuery.params.pageSizeOptions" [nzPageSize]="groupQuery.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="groupQuery.params.pageNumber" [nzLoading]="this.groupQuery.tableLoading" nzSize="small"
(nzQueryParams)="onGroupQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="groupQuery.results.rows"
[nzFrontPagination]="false"
[nzTotal]="groupQuery.results.records"
[nzPageSizeOptions]="groupQuery.params.pageSizeOptions"
[nzPageSize]="groupQuery.params.pageSize"
[nzPageIndex]="groupQuery.params.pageNumber"
[nzLoading]="this.groupQuery.tableLoading"
(nzQueryParams)="onGroupQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th></th> <th></th>
@ -35,8 +51,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of groupQuery.results.rows"> <tr *ngFor="let data of groupQuery.results.rows">
<td [nzChecked]="groupQuery.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onGroupTableItemChecked(data.id, data.groupName, $event)"></td> [nzChecked]="groupQuery.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onGroupTableItemChecked(data.id, data.groupName, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -55,26 +74,37 @@
<div nz-col nzMd="10" nzSm="24"> <div nz-col nzMd="10" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label> <nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<input nz-input [(ngModel)]="query.params.groupName" [ngModelOptions]="{ standalone: true }" readonly <input
placeholder="" disabled /> nz-input
[(ngModel)]="query.params.groupName"
[ngModelOptions]="{ standalone: true }"
readonly
placeholder=""
disabled
/>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="10" nzSm="24"> <div nz-col nzMd="10" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" <input
name="appName" placeholder="" id="appName" /> nz-input
[(ngModel)]="query.params.appName"
[ngModelOptions]="{ standalone: true }"
name="appName"
placeholder=""
id="appName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
| i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset'
| i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -82,25 +112,47 @@
<nz-card [nzBordered]="false"> <nz-card [nzBordered]="false">
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }"> <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
}}</button> <button
<button nz-button type="button" nz-popconfirm nz-button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" type="button"
[disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
[nzType]="'primary'" nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> (nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<div nz-col nzMd="24" nzSm="24"> <div nz-col nzMd="24" nzSm="24">
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="query.results.rows" [nzFrontPagination]="false" [nzTotal]="query.results.records" #dynamicTable
[nzPageSizeOptions]="query.params.pageSizeOptions" [nzPageSize]="query.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzSize="small"
(nzQueryParams)="onQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th
(nzCheckedChange)="onTableAllChecked($event)"></th> [nzChecked]="query.checked"
[nzIndeterminate]="query.indeterminate"
(nzCheckedChange)="onTableAllChecked($event)"
></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.apps.icon' | i18n }}</th> <th nzAlign="center">{{ 'mxk.apps.icon' | i18n }}</th>
@ -111,8 +163,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left"> {{ data.groupName }}</td> <td nzAlign="left"> {{ data.groupName }}</td>
<td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td> <td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
<td nzAlign="left"> {{ data.appName }}</td> <td nzAlign="left"> {{ data.appName }}</td>
@ -148,11 +203,18 @@
</td> </td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
nzDanger>{{ 'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
@ -163,4 +225,4 @@
</nz-card> </nz-card>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -242,6 +242,10 @@ export class AccessComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
//group list //group list
groupQuery: { groupQuery: {
params: { params: {

View File

@ -25,20 +25,6 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm">
<nz-form-item>
<nz-form-label nzFor="employeeNumber">{{ 'mxk.users.employeeNumber' | i18n }}</nz-form-label>
<nz-form-control>
<input
nz-input
[(ngModel)]="query.params.employeeNumber"
[ngModelOptions]="{ standalone: true }"
id="employeeNumber"
name="employeeNumber"
/>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm"> <div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="startDatePicker">{{ 'mxk.text.startDate' | i18n }}</nz-form-label> <nz-form-label nzFor="startDatePicker">{{ 'mxk.text.startDate' | i18n }}</nz-form-label>
@ -71,7 +57,7 @@
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | i18n }}</button> <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
@ -82,9 +68,16 @@
</nz-card> </nz-card>
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" (click)="onTerminate($event)" [nzType]="'primary'" nzDanger class="mx-sm">{{ <button
'mxk.text.terminate' | i18n nz-button
}}</button> type="button"
[disabled]="tableHasCheckedItem()"
(click)="onTerminate($event)"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.terminate' | i18n }}</button
>
</div> </div>
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<nz-table <nz-table

View File

@ -162,4 +162,8 @@ export class SessionsComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -8,12 +8,18 @@
<nz-form-label nzFor="appName">{{ 'mxk.accounts.appName' | i18n }}</nz-form-label> <nz-form-label nzFor="appName">{{ 'mxk.accounts.appName' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<nz-input-group nzSearch [nzAddOnAfter]="suffixButton"> <nz-input-group nzSearch [nzAddOnAfter]="suffixButton">
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName" <input
readonly placeholder="" id="appName" /> nz-input
[(ngModel)]="query.params.appName"
[ngModelOptions]="{ standalone: true }"
name="appName"
readonly
placeholder=""
id="appName"
/>
</nz-input-group> </nz-input-group>
<ng-template #suffixButton> <ng-template #suffixButton>
<button nz-button nzType="primary" (click)="onSelect($event)" nzSearch>{{ 'mxk.text.select' | i18n <button nz-button nzType="primary" (click)="onSelect($event)" nzSearch>{{ 'mxk.text.select' | i18n }}</button>
}}</button>
</ng-template> </ng-template>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
@ -22,18 +28,24 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.accounts.username' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.accounts.username' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.username" [ngModelOptions]="{ standalone: true }" name="username" <input
placeholder="" id="username" /> nz-input
[(ngModel)]="query.params.username"
[ngModelOptions]="{ standalone: true }"
name="username"
placeholder=""
id="username"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -41,19 +53,40 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.accounts.username' | i18n }}</th> <th nzAlign="center">{{ 'mxk.accounts.username' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.accounts.displayName' | i18n }}</th> <th nzAlign="center">{{ 'mxk.accounts.displayName' | i18n }}</th>
@ -64,8 +97,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -76,14 +112,21 @@
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -248,4 +248,8 @@ export class AccountsComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -7,8 +7,14 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label> <nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName" <input
placeholder="" id="appName" /> nz-input
[(ngModel)]="query.params.appName"
[ngModelOptions]="{ standalone: true }"
name="appName"
placeholder=""
id="appName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
@ -34,12 +40,11 @@
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm">
<nz-form-item> <nz-form-item>
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</nz-form-item> </nz-form-item>
</div> </div>
</div> </div>
@ -49,21 +54,43 @@
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" (click)="onAddSelectProtocol($event)" [nzType]="'primary'" class="mx-sm">{{ <button nz-button type="button" (click)="onAddSelectProtocol($event)" [nzType]="'primary'" class="mx-sm">{{
'mxk.text.add' | i18n 'mxk.text.add' | i18n
}}</button> }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center">{{ 'mxk.apps.icon' | i18n }}</th> <th nzAlign="center">{{ 'mxk.apps.icon' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.text.id' | i18n }}</th> <th nzAlign="center">{{ 'mxk.text.id' | i18n }}</th>
@ -77,8 +104,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td> <td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
<td nzAlign="left"> {{ data.id }} </td> <td nzAlign="left"> {{ data.id }} </td>
@ -115,18 +145,15 @@
<div *ngIf="data.category == '1912'">{{ 'mxk.apps.category.1912' | i18n }}</div> <div *ngIf="data.category == '1912'">{{ 'mxk.apps.category.1912' | i18n }}</div>
</td> </td>
<td nzAlign="left"> {{ data.sortIndex }}</td> <td nzAlign="left"> {{ data.sortIndex }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id, data.protocol)">{{ 'mxk.text.edit' | i18n <button nz-button type="button" (click)="onEdit($event, data.id, data.protocol)">{{ 'mxk.text.edit' | i18n }}</button>
}}</button>
<button nz-button type="button" (click)="onDelete($event, data.id)" nzDanger>{{ 'mxk.text.delete' | i18n <button nz-button type="button" (click)="onDelete($event, data.id)" nzDanger>{{ 'mxk.text.delete' | i18n }}</button>
}}</button>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -300,4 +300,8 @@ export class AppsComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -25,20 +25,6 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm">
<nz-form-item>
<nz-form-label nzFor="employeeNumber">{{ 'mxk.users.employeeNumber' | i18n }}</nz-form-label>
<nz-form-control>
<input
nz-input
[(ngModel)]="query.params.employeeNumber"
[ngModelOptions]="{ standalone: true }"
id="employeeNumber"
name="employeeNumber"
/>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm"> <div nz-col nzMd="8" nzSm="24" *ngIf="query.expandForm">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="startDatePicker">{{ 'mxk.text.startDate' | i18n }}</nz-form-label> <nz-form-label nzFor="startDatePicker">{{ 'mxk.text.startDate' | i18n }}</nz-form-label>
@ -73,7 +59,7 @@
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | i18n }}</button> <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button

View File

@ -7,19 +7,17 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.adapters.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.adapters.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name" <input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name" placeholder="" id="name" />
placeholder="" id="name" />
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,31 +25,58 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.adapters.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.adapters.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.adapters.protocol' | i18n }}</th> <th nzAlign="center">{{ 'mxk.adapters.protocol' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.text.sortIndex' | i18n }}</th> <th nzAlign="center">{{ 'mxk.text.sortIndex' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.text.description' | i18n }}</th> <th nzAlign="center">{{ 'mxk.text.description' | i18n }}</th>
<th nzAlign="center"><a>{{ 'mxk.text.action' | i18n }}</a></th> <th nzAlign="center"
><a>{{ 'mxk.text.action' | i18n }}</a></th
>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -61,16 +86,22 @@
<td nzAlign="left">{{ data.description }}</td> <td nzAlign="left">{{ data.description }}</td>
<td nzAlign="left" nzBreakWord="false"> <td nzAlign="left" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id)" style="float: left">{{ 'mxk.text.edit' | <button nz-button type="button" (click)="onEdit($event, data.id)" style="float: left">{{ 'mxk.text.edit' | i18n }}</button>
i18n }}</button> <button
<button nz-button type="button" nz-popconfirm nz-button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -217,4 +217,8 @@ export class AdaptersComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -7,19 +7,24 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="connName">{{ 'mxk.connectors.connName' | i18n }}</nz-form-label> <nz-form-label nzFor="connName">{{ 'mxk.connectors.connName' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.connName" [ngModelOptions]="{ standalone: true }" name="connName" <input
placeholder="" id="connName" /> nz-input
[(ngModel)]="query.params.connName"
[ngModelOptions]="{ standalone: true }"
name="connName"
placeholder=""
id="connName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,19 +32,41 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.connectors.connName' | i18n }}</th> <th nzAlign="center">{{ 'mxk.connectors.connName' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.connectors.justInTime' | i18n }}</th> <th nzAlign="center">{{ 'mxk.connectors.justInTime' | i18n }}</th>
@ -49,8 +76,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -58,19 +88,25 @@
<td nzAlign="left"> {{ data.connName }}</td> <td nzAlign="left"> {{ data.connName }}</td>
<td nzAlign="center" *ngIf="data.justInTime == 1">{{ 'mxk.text.yes' | i18n }}</td> <td nzAlign="center" *ngIf="data.justInTime == 1">{{ 'mxk.text.yes' | i18n }}</td>
<td nzAlign="center" *ngIf="data.justInTime == 0">{{ 'mxk.text.no' | i18n }}</td> <td nzAlign="center" *ngIf="data.justInTime == 0">{{ 'mxk.text.no' | i18n }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button> <button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -214,4 +214,8 @@ export class ConnectorsComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -7,19 +7,24 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.socialsproviders.providerName' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.socialsproviders.providerName' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.providerName" [ngModelOptions]="{ standalone: true }" <input
name="providerName" placeholder="" id="providerName" /> nz-input
[(ngModel)]="query.params.providerName"
[ngModelOptions]="{ standalone: true }"
name="providerName"
placeholder=""
id="providerName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,19 +32,41 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.socialsproviders.icon' | i18n }}</th> <th nzAlign="center">{{ 'mxk.socialsproviders.icon' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.socialsproviders.provider' | i18n }}</th> <th nzAlign="center">{{ 'mxk.socialsproviders.provider' | i18n }}</th>
@ -54,8 +81,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -63,24 +93,28 @@
<td nzAlign="left"> {{ data.provider }}</td> <td nzAlign="left"> {{ data.provider }}</td>
<td nzAlign="left"> {{ data.providerName }}</td> <td nzAlign="left"> {{ data.providerName }}</td>
<td nzAlign="center"> {{ data.sortIndex }}</td> <td nzAlign="center"> {{ data.sortIndex }}</td>
<td nzAlign="center"> <i *ngIf="data.display == 'true'" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.display == 'true'" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td> <td nzAlign="center"> <i *ngIf="data.scanCode == 'true'" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
<td nzAlign="center"> <i *ngIf="data.scanCode == 'true'" nz-icon nzType="check-circle" nzTheme="fill"
style="color: green"></i></td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button> <button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -214,4 +214,8 @@ export class SocialsProviderComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -7,19 +7,17 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.synchronizers.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.synchronizers.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name" <input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name" placeholder="" id="name" />
placeholder="" id="name" />
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,53 +25,71 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center">{{ 'mxk.synchronizers.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.synchronizers.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.synchronizers.scheduler' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.synchronizers.scheduler' | i18n }}</th> <th nzAlign="center">{{ 'mxk.text.status' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.text.status' | i18n }}</th> <th nzAlign="center" class="table_cell_action_5">{{ 'mxk.text.action' | i18n }}</th>
<th nzAlign="center" class="table_cell_action_5">{{ 'mxk.text.action' | i18n }}</th> </tr>
</tr>
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
<td nzAlign="left"> {{ data.name }}</td> <td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.scheduler }}</td> <td nzAlign="left"> {{ data.scheduler }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td> <td nzAlign="center" nzBreakWord="false">
<td nzAlign="center" nzBreakWord="false"> <div nz-col>
<div nz-col> <button nz-button type="button" (click)="onSynchr($event, data.id)">{{ 'mxk.text.synchr' | i18n }}</button>
<button nz-button type="button" (click)="onSynchr($event, data.id)">{{ 'mxk.text.synchr' <button nz-button type="button" (click)="onConfigFeild($event, data.id)">{{ 'mxk.text.mapping' | i18n }}</button>
| i18n }}</button> <button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button>
<button nz-button type="button" (click)="onConfigFeild($event, data.id)">{{ 'mxk.text.mapping' <button nz-button type="button" (click)="onDelete(data.id)" nzDanger>{{ 'mxk.text.delete' | i18n }}</button>
| i18n }}</button> </div>
<button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | </td>
i18n }}</button> </tr>
<button nz-button type="button" (click)="onDelete(data.id)" nzDanger>{{ 'mxk.text.delete' | i18n
}}</button>
</div>
</td>
</tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -26,8 +26,8 @@ import { NzTableQueryParams } from 'ng-zorro-antd/table';
import { SynchronizersService } from '../../../service/synchronizers.service'; import { SynchronizersService } from '../../../service/synchronizers.service';
import { set2String } from '../../../shared/index'; import { set2String } from '../../../shared/index';
import { SynchronizerEditerComponent } from './synchronizer-editer/synchronizer-editer.component';
import { SynchronizerConfigFieldComponent } from './synchronizer-config-field/synchronizer-config-field.component'; import { SynchronizerConfigFieldComponent } from './synchronizer-config-field/synchronizer-config-field.component';
import { SynchronizerEditerComponent } from './synchronizer-editer/synchronizer-editer.component';
@Component({ @Component({
selector: 'app-synchronizers', selector: 'app-synchronizers',
templateUrl: './synchronizers.component.html', templateUrl: './synchronizers.component.html',
@ -150,7 +150,6 @@ export class SynchronizersComponent implements OnInit {
}); });
} }
onEdit(e: MouseEvent, editId: String): void { onEdit(e: MouseEvent, editId: String): void {
e.preventDefault(); e.preventDefault();
const modal = this.modalService.create({ const modal = this.modalService.create({
@ -190,8 +189,7 @@ export class SynchronizersComponent implements OnInit {
}); });
} }
onDelete(deleteId: String): void {
onDelete( deleteId: String): void {
this.synchronizersService.delete(deleteId).subscribe(res => { this.synchronizersService.delete(deleteId).subscribe(res => {
if (res.code == 0) { if (res.code == 0) {
this.msg.success(this.i18n.fanyi('mxk.alert.delete.success')); this.msg.success(this.i18n.fanyi('mxk.alert.delete.success'));
@ -247,4 +245,8 @@ export class SynchronizersComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -8,23 +8,39 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label> <nz-form-label nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="groupQuery.params.groupName" [ngModelOptions]="{ standalone: true }" <input
name="groupName" placeholder="" id="groupName" /> nz-input
[(ngModel)]="groupQuery.params.groupName"
[ngModelOptions]="{ standalone: true }"
name="groupName"
placeholder=""
id="groupName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="8" [class.text-right]="groupQuery.expandForm"> <div nz-col [nzSpan]="8" [class.text-right]="groupQuery.expandForm">
<button nz-button type="submit" [nzType]="'primary'" [nzLoading]="groupQuery.submitLoading">{{ <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="groupQuery.submitLoading">{{
'mxk.text.query' | i18n 'mxk.text.query' | i18n
}}</button> }}</button>
</div> </div>
</form> </form>
</nz-card> </nz-card>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="groupQuery.results.rows" [nzFrontPagination]="false" [nzTotal]="groupQuery.results.records" #dynamicTable
[nzPageSizeOptions]="groupQuery.params.pageSizeOptions" [nzPageSize]="groupQuery.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="groupQuery.params.pageNumber" [nzLoading]="this.groupQuery.tableLoading" nzSize="small"
(nzQueryParams)="onGroupQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="groupQuery.results.rows"
[nzFrontPagination]="false"
[nzTotal]="groupQuery.results.records"
[nzPageSizeOptions]="groupQuery.params.pageSizeOptions"
[nzPageSize]="groupQuery.params.pageSize"
[nzPageIndex]="groupQuery.params.pageNumber"
[nzLoading]="this.groupQuery.tableLoading"
(nzQueryParams)="onGroupQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th></th> <th></th>
@ -35,8 +51,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of groupQuery.results.rows"> <tr *ngFor="let data of groupQuery.results.rows">
<td [nzChecked]="groupQuery.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onGroupTableItemChecked(data.id, data.groupName, $event)"></td> [nzChecked]="groupQuery.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onGroupTableItemChecked(data.id, data.groupName, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -55,25 +74,37 @@
<div nz-col nzMd="8" nzSm="24"> <div nz-col nzMd="8" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="groupName">{{ 'mxk.roles.name' | i18n }}</nz-form-label> <nz-form-label nzFor="groupName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<input nz-input [(ngModel)]="query.params.groupName" [ngModelOptions]="{ standalone: true }" readonly <input
disabled placeholder="" /> nz-input
[(ngModel)]="query.params.groupName"
[ngModelOptions]="{ standalone: true }"
readonly
disabled
placeholder=""
/>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="8" nzSm="24"> <div nz-col nzMd="8" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.users.username' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.users.username' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.username" [ngModelOptions]="{ standalone: true }" <input
name="username" placeholder="" id="username" /> nz-input
[(ngModel)]="query.params.username"
[ngModelOptions]="{ standalone: true }"
name="username"
placeholder=""
id="username"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
| i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -81,25 +112,47 @@
<nz-card [nzBordered]="false"> <nz-card [nzBordered]="false">
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }"> <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
}}</button> <button
<button nz-button type="button" nz-popconfirm nz-button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" type="button"
[disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
[nzType]="'primary'" nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> (nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<div nz-col nzMd="24" nzSm="24"> <div nz-col nzMd="24" nzSm="24">
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="query.results.rows" [nzFrontPagination]="false" [nzTotal]="query.results.records" #dynamicTable
[nzPageSizeOptions]="query.params.pageSizeOptions" [nzPageSize]="query.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzSize="small"
(nzQueryParams)="onQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th
(nzCheckedChange)="onTableAllChecked($event)"></th> [nzChecked]="query.checked"
[nzIndeterminate]="query.indeterminate"
(nzCheckedChange)="onTableAllChecked($event)"
></th>
<th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.users.username' | i18n }}</th> <th nzAlign="center">{{ 'mxk.users.username' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.users.displayName' | i18n }}</th> <th nzAlign="center">{{ 'mxk.users.displayName' | i18n }}</th>
@ -111,22 +164,32 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left"> {{ data.groupName }}</td> <td nzAlign="left"> {{ data.groupName }}</td>
<td nzAlign="left"> {{ data.username }}</td> <td nzAlign="left"> {{ data.username }}</td>
<td nzAlign="left"> {{ data.displayName }}</td> <td nzAlign="left"> {{ data.displayName }}</td>
<td nzAlign="left"> {{ data.department }}</td> <td nzAlign="left"> {{ data.department }}</td>
<td nzAlign="left"> {{ data.jobTitle }}</td> <td nzAlign="left"> {{ data.jobTitle }}</td>
<td nzAlign="center"> {{ data.gender == 1 ? ('mxk.users.gender.female' | i18n) : <td nzAlign="center"> {{ data.gender == 1 ? ('mxk.users.gender.female' | i18n) : ('mxk.users.gender.male' | i18n) }}</td>
('mxk.users.gender.male' | i18n) }}</td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button *ngIf="data.category == 'static'" nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" *ngIf="data.category == 'static'"
nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
nzDanger>{{ 'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
@ -137,4 +200,4 @@
</nz-card> </nz-card>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -267,6 +267,10 @@ export class GroupMembersComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
//group list //group list
groupQuery: { groupQuery: {
params: { params: {

View File

@ -7,19 +7,24 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.groups.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.groupName" [ngModelOptions]="{ standalone: true }" <input
name="groupName" placeholder="" id="groupName" /> nz-input
[(ngModel)]="query.params.groupName"
[ngModelOptions]="{ standalone: true }"
name="groupName"
placeholder=""
id="groupName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,19 +32,41 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.groups.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.groups.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.groups.category' | i18n }}</th> <th nzAlign="center">{{ 'mxk.groups.category' | i18n }}</th>
@ -49,8 +76,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -69,16 +99,20 @@
<nz-dropdown-menu #menuMoreAction="nzDropdownMenu"> <nz-dropdown-menu #menuMoreAction="nzDropdownMenu">
<ul nz-menu> <ul nz-menu>
<li nz-menu-item (click)="onMembers($event, data.id, data.groupName)">{{ 'mxk.groups.member' | i18n }} <li nz-menu-item (click)="onMembers($event, data.id, data.groupName)">{{ 'mxk.groups.member' | i18n }} </li>
</li> <li nz-menu-item (click)="onPermissions($event, data.id, data.groupName)">{{ 'mxk.groups.permissions' | i18n }}</li>
<li nz-menu-item (click)="onPermissions($event, data.id, data.groupName)">{{ 'mxk.groups.permissions' | <li
i18n }}</li> nz-menu-item
<li nz-menu-item
*ngIf="data.roleCode != 'ROLE_ADMINISTRATORS' && data.roleCode != 'ROLE_ALL_USER' && data.roleCode != 'ROLE_MANAGERS'" *ngIf="data.roleCode != 'ROLE_ADMINISTRATORS' && data.roleCode != 'ROLE_ALL_USER' && data.roleCode != 'ROLE_MANAGERS'"
nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nz-popconfirm
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ nzPopconfirmPlacement="left"
'mxk.text.delete' | i18n }}</li> [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</li
>
</ul> </ul>
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>
@ -86,4 +120,4 @@
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -225,4 +225,8 @@ export class GroupsComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }

View File

@ -7,18 +7,23 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="orgName">{{ 'mxk.organizations.name' | i18n }}</nz-form-label> <nz-form-label nzFor="orgName">{{ 'mxk.organizations.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.orgName" [ngModelOptions]="{ standalone: true }" name="orgName" <input
placeholder="" id="orgName" /> nz-input
[(ngModel)]="query.params.orgName"
[ngModelOptions]="{ standalone: true }"
name="orgName"
placeholder=""
id="orgName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,14 +32,32 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }"> <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<div nz-col nzMd="6" nzSm="24" class="grid-border"> <div nz-col nzMd="6" nzSm="24" class="grid-border">
<nz-tree nzShowLine="false" [nzCheckable]="treeNodes.checkable" nzBlockNode [nzData]="treeNodes.nodes" <nz-tree
(nzClick)="activeNode($event)" (nzDblClick)="openFolder($event)" [nzTreeTemplate]="nzTreeTemplate"></nz-tree> nzShowLine="false"
[nzCheckable]="treeNodes.checkable"
nzBlockNode
[nzData]="treeNodes.nodes"
(nzClick)="activeNode($event)"
(nzDblClick)="openFolder($event)"
[nzTreeTemplate]="nzTreeTemplate"
></nz-tree>
<ng-template #nzTreeTemplate let-node let-origin="origin"> <ng-template #nzTreeTemplate let-node let-origin="origin">
<span class="custom-node"> <span class="custom-node">
<span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)"> <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)">
@ -55,14 +78,24 @@
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>
<div nz-col nzMd="18" nzSm="24" class="grid-border"> <div nz-col nzMd="18" nzSm="24" class="grid-border">
<nz-table #dynamicTable nzBordered nzShowSizeChanger nzSize="small" [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" nzBordered
[nzLoading]="this.query.tableLoading" (nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzShowSizeChanger
nzSize="small"
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" class="table_cell_action_2">{{ 'mxk.organizations.code' | i18n }}</th> <th nzAlign="center" class="table_cell_action_2">{{ 'mxk.organizations.code' | i18n }}</th>
<th nzAlign="center" class="table_cell_action_2">{{ 'mxk.organizations.name' | i18n }}</th> <th nzAlign="center" class="table_cell_action_2">{{ 'mxk.organizations.name' | i18n }}</th>
<th nzAlign="center" class="table_cell_action_1">{{ 'mxk.organizations.type' | i18n }}</th> <th nzAlign="center" class="table_cell_action_1">{{ 'mxk.organizations.type' | i18n }}</th>
@ -73,21 +106,22 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left"> <td nzAlign="left">
<span>{{ data.orgCode }}</span> <span>{{ data.orgCode }}</span>
</td> </td>
<td nzAlign="left"> {{ data.orgName }}</td> <td nzAlign="left"> {{ data.orgName }}</td>
<td nzAlign="center" *ngIf="data.type == 'company'"> {{ 'mxk.organizations.type.company' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'company'"> {{ 'mxk.organizations.type.company' | i18n }}</td>
<td nzAlign="center" *ngIf="data.type == 'division'"> {{ 'mxk.organizations.type.division' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'division'"> {{ 'mxk.organizations.type.division' | i18n }}</td>
<td nzAlign="center" *ngIf="data.type == 'department'"> {{ 'mxk.organizations.type.department' | i18n }} <td nzAlign="center" *ngIf="data.type == 'department'"> {{ 'mxk.organizations.type.department' | i18n }} </td>
</td>
<td nzAlign="center" *ngIf="data.type == 'entity'"> {{ 'mxk.organizations.type.entity' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'entity'"> {{ 'mxk.organizations.type.entity' | i18n }}</td>
<td nzAlign="center" *ngIf="data.type == 'virtual'"> {{ 'mxk.organizations.type.virtual' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'virtual'"> {{ 'mxk.organizations.type.virtual' | i18n }}</td>
<td nzAlign="center"> {{ data.sortIndex }}</td> <td nzAlign="center"> {{ data.sortIndex }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id)"> <button nz-button type="button" (click)="onEdit($event, data.id)">
@ -95,11 +129,17 @@
</button> </button>
<button <button
*ngIf="data.parentId != null && data.parentId != '-1' && data.parentId != '0' && data.id != data.instId" *ngIf="data.parentId != null && data.parentId != '-1' && data.parentId != '0' && data.id != data.instId"
nz-button type="button" nz-popconfirm nz-button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
@ -107,4 +147,4 @@
</nz-table> </nz-table>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -263,6 +263,10 @@ export class OrganizationsComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
openFolder(data: NzTreeNode | NzFormatEmitEvent): void { openFolder(data: NzTreeNode | NzFormatEmitEvent): void {
// do something if u want // do something if u want
if (data instanceof NzTreeNode) { if (data instanceof NzTreeNode) {

View File

@ -468,8 +468,6 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
</nz-tab>
<nz-tab nzTitle="{{ 'mxk.users.tab.business.extra' | i18n }}">
<div nz-row> <div nz-row>
<nz-form-item> <nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="workPhoneNumber">{{ 'mxk.users.workPhoneNumber' | i18n }} </nz-form-label> <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="workPhoneNumber">{{ 'mxk.users.workPhoneNumber' | i18n }} </nz-form-label>

View File

@ -37,6 +37,7 @@
<button <button
nz-button nz-button
type="button" type="button"
[disabled]="tableHasCheckedItem()"
nz-popconfirm nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left" nzPopconfirmPlacement="left"

View File

@ -325,6 +325,10 @@ export class UsersComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
openFolder(data: NzTreeNode | NzFormatEmitEvent): void { openFolder(data: NzTreeNode | NzFormatEmitEvent): void {
// do something if u want // do something if u want
if (data instanceof NzTreeNode) { if (data instanceof NzTreeNode) {

View File

@ -6,26 +6,30 @@
<div nz-col nzMd="10" nzSm="24"> <div nz-col nzMd="10" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.resources.appName' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.resources.appName' | i18n }}</nz-form-label>
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" disabled <input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" disabled placeholder="" />
placeholder="" />
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="10" nzSm="24"> <div nz-col nzMd="10" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="resourceName">{{ 'mxk.resources.name' | i18n }}</nz-form-label> <nz-form-label nzFor="resourceName">{{ 'mxk.resources.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.resourceName" [ngModelOptions]="{ standalone: true }" <input
name="resourceName" placeholder="" id="resourceName" /> nz-input
[(ngModel)]="query.params.resourceName"
[ngModelOptions]="{ standalone: true }"
name="resourceName"
placeholder=""
id="resourceName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -34,14 +38,32 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }"> <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<div nz-col nzMd="6" nzSm="24" class="grid-border"> <div nz-col nzMd="6" nzSm="24" class="grid-border">
<nz-tree nzShowLine="false" [nzCheckable]="treeNodes.checkable" nzBlockNode [nzData]="treeNodes.nodes" <nz-tree
(nzClick)="activeNode($event)" (nzDblClick)="openFolder($event)" [nzTreeTemplate]="nzTreeTemplate"></nz-tree> nzShowLine="false"
[nzCheckable]="treeNodes.checkable"
nzBlockNode
[nzData]="treeNodes.nodes"
(nzClick)="activeNode($event)"
(nzDblClick)="openFolder($event)"
[nzTreeTemplate]="nzTreeTemplate"
></nz-tree>
<ng-template #nzTreeTemplate let-node let-origin="origin"> <ng-template #nzTreeTemplate let-node let-origin="origin">
<span class="custom-node"> <span class="custom-node">
<span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)"> <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)">
@ -62,15 +84,25 @@
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>
<div nz-col nzMd="18" nzSm="24" class="grid-border"> <div nz-col nzMd="18" nzSm="24" class="grid-border">
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="query.results.rows" [nzFrontPagination]="false" [nzTotal]="query.results.records" #dynamicTable
[nzPageSizeOptions]="query.params.pageSizeOptions" [nzPageSize]="query.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzSize="small"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center">{{ 'mxk.resources.appName' | i18n }}</th> <th nzAlign="center">{{ 'mxk.resources.appName' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.resources.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.resources.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.resources.resourceType' | i18n }}</th> <th nzAlign="center">{{ 'mxk.resources.resourceType' | i18n }}</th>
@ -81,24 +113,33 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="center"> <td nzAlign="center">
{{ data.appName }} {{ data.appName }}
</td> </td>
<td nzAlign="left"> {{ data.resourceName }}</td> <td nzAlign="left"> {{ data.resourceName }}</td>
<td nzAlign="left"> {{ data.resourceType }}</td> <td nzAlign="left"> {{ data.resourceType }}</td>
<td nzAlign="center"> {{ data.sortIndex }}</td> <td nzAlign="center"> {{ data.sortIndex }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill" style="color: green"></i></td>
style="color: green"></i></td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button> <button nz-button type="button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" nzDanger>{{ [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
@ -106,4 +147,4 @@
</nz-table> </nz-table>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -269,6 +269,10 @@ export class ResourcesComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
openFolder(data: NzTreeNode | NzFormatEmitEvent): void { openFolder(data: NzTreeNode | NzFormatEmitEvent): void {
// do something if u want // do something if u want
if (data instanceof NzTreeNode) { if (data instanceof NzTreeNode) {

View File

@ -18,16 +18,26 @@
<div nz-col [nzSpan]="leftQuery.expandForm ? 24 : 6" [class.text-right]="leftQuery.expandForm"> <div nz-col [nzSpan]="leftQuery.expandForm ? 24 : 6" [class.text-right]="leftQuery.expandForm">
<button nz-button type="submit" [nzType]="'primary'" [nzLoading]="leftQuery.submitLoading">{{ <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="leftQuery.submitLoading">{{
'mxk.text.query' | i18n 'mxk.text.query' | i18n
}}</button> }}</button>
</div> </div>
</div> </div>
</form> </form>
</nz-card> </nz-card>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="leftQuery.results.rows" [nzFrontPagination]="false" [nzTotal]="leftQuery.results.records" #dynamicTable
[nzPageSizeOptions]="leftQuery.params.pageSizeOptions" [nzPageSize]="leftQuery.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="leftQuery.params.pageNumber" [nzLoading]="this.leftQuery.tableLoading" nzSize="small"
(nzQueryParams)="onLeftQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="leftQuery.results.rows"
[nzFrontPagination]="false"
[nzTotal]="leftQuery.results.records"
[nzPageSizeOptions]="leftQuery.params.pageSizeOptions"
[nzPageSize]="leftQuery.params.pageSize"
[nzPageIndex]="leftQuery.params.pageNumber"
[nzLoading]="this.leftQuery.tableLoading"
(nzQueryParams)="onLeftQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<!--<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th> <!--<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
@ -39,8 +49,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of leftQuery.results.rows"> <tr *ngFor="let data of leftQuery.results.rows">
<td [nzChecked]="leftQuery.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onLeftTableItemChecked(data.id, data.roleName, $event)"></td> [nzChecked]="leftQuery.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onLeftTableItemChecked(data.id, data.roleName, $event)"
></td>
<td nzAlign="left" style="width: 300px">{{ data.id }}</td> <td nzAlign="left" style="width: 300px">{{ data.id }}</td>
<td nzAlign="left" nzBreakWord="false">{{ data.roleName }}</td> <td nzAlign="left" nzBreakWord="false">{{ data.roleName }}</td>
</tr> </tr>
@ -54,25 +67,29 @@
<div nz-col nzMd="8" nzSm="24"> <div nz-col nzMd="8" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<input nz-input [(ngModel)]="query.params.selectRoleName" [ngModelOptions]="{ standalone: true }" <input nz-input [(ngModel)]="query.params.selectRoleName" [ngModelOptions]="{ standalone: true }" disabled />
disabled />
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col nzMd="8" nzSm="24"> <div nz-col nzMd="8" nzSm="24">
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.member' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.roles.member' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.memberName" [ngModelOptions]="{ standalone: true }" <input
name="memberName" placeholder="" /> nz-input
[(ngModel)]="query.params.memberName"
[ngModelOptions]="{ standalone: true }"
name="memberName"
placeholder=""
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
| i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -80,25 +97,47 @@
<nz-card [nzBordered]="false"> <nz-card [nzBordered]="false">
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }"> <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
}}</button> <button
<button nz-button type="button" nz-popconfirm nz-button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" type="button"
[disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
[nzType]="'primary'" nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> (nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<div nz-col nzMd="24" nzSm="24"> <div nz-col nzMd="24" nzSm="24">
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger <nz-table
[nzData]="query.results.rows" [nzFrontPagination]="false" [nzTotal]="query.results.records" #dynamicTable
[nzPageSizeOptions]="query.params.pageSizeOptions" [nzPageSize]="query.params.pageSize" nzTableLayout="auto"
[nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzSize="small"
(nzQueryParams)="onQueryParamsChange($event)"> nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th
(nzCheckedChange)="onTableAllChecked($event)"></th> [nzChecked]="query.checked"
[nzIndeterminate]="query.indeterminate"
(nzCheckedChange)="onTableAllChecked($event)"
></th>
<th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.roles.type' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.type' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.roles.member' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.member' | i18n }}</th>
@ -110,12 +149,14 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left"> {{ data.roleName }}</td> <td nzAlign="left"> {{ data.roleName }}</td>
<td nzAlign="center" *ngIf="data.type == 'USER'"> {{ 'mxk.roles.type.user' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'USER'"> {{ 'mxk.roles.type.user' | i18n }}</td>
<td nzAlign="center" *ngIf="data.type == 'USER-DYNAMIC'"> {{ 'mxk.roles.type.user-dynamic' | i18n }} <td nzAlign="center" *ngIf="data.type == 'USER-DYNAMIC'"> {{ 'mxk.roles.type.user-dynamic' | i18n }} </td>
</td>
<td nzAlign="center" *ngIf="data.type == 'POST'"> {{ 'mxk.roles.type.post' | i18n }}</td> <td nzAlign="center" *ngIf="data.type == 'POST'"> {{ 'mxk.roles.type.post' | i18n }}</td>
<td nzAlign="left"> {{ data.memberName }}</td> <td nzAlign="left"> {{ data.memberName }}</td>
<td nzAlign="left"> {{ data.jobTitle }}</td> <td nzAlign="left"> {{ data.jobTitle }}</td>
@ -126,11 +167,19 @@
<td nzAlign="left"> {{ data.department }}</td> <td nzAlign="left"> {{ data.department }}</td>
<td nzAlign="center" nzBreakWord="false"> <td nzAlign="center" nzBreakWord="false">
<div nz-col> <div nz-col>
<button *ngIf="data.type != 'USER-DYNAMIC'" nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" *ngIf="data.type != 'USER-DYNAMIC'"
nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
nzDanger>{{ 'mxk.text.delete' | i18n }}</button> (nzOnConfirm)="onDelete(data.id)"
nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
@ -141,4 +190,4 @@
</nz-card> </nz-card>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -1,19 +1,18 @@
/* /*
* Copyright [2024] [MaxKey of copyright http://www.maxkey.top] * Copyright [2024] [MaxKey of copyright http://www.maxkey.top]
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core'; import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@ -280,6 +279,10 @@ export class RoleMembersComponent implements OnInit {
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
leftQuery: { leftQuery: {
params: { params: {
id: String; id: String;

View File

@ -7,19 +7,24 @@
<nz-form-item> <nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label> <nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control> <nz-form-control>
<input nz-input [(ngModel)]="query.params.roleName" [ngModelOptions]="{ standalone: true }" name="roleName" <input
placeholder="" id="roleName" /> nz-input
[(ngModel)]="query.params.roleName"
[ngModelOptions]="{ standalone: true }"
name="roleName"
placeholder=""
id="roleName"
/>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm"> <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
<button nz-button type="submit" [nzType]="'primary'" >{{ 'mxk.text.query' | <button nz-button type="submit" [nzType]="'primary'">{{ 'mxk.text.query' | i18n }}</button>
i18n }}</button> <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
<button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
i18n }}</button>
<button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none"> <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
{{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button> {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
>
</div> </div>
</div> </div>
</form> </form>
@ -27,19 +32,41 @@
<nz-card> <nz-card>
<div nz-col [nzSpan]="24" class="table-list-toolbar"> <div nz-col [nzSpan]="24" class="table-list-toolbar">
<button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button> <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
<button nz-button type="button" nz-popconfirm nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" <button
nzPopconfirmPlacement="left" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" nz-button
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onBatchDelete()" [nzType]="'primary'" type="button"
nzDanger class="mx-sm">{{ 'mxk.text.batchDelete' | i18n }}</button> [disabled]="tableHasCheckedItem()"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onBatchDelete()"
[nzType]="'primary'"
nzDanger
class="mx-sm"
>{{ 'mxk.text.batchDelete' | i18n }}</button
>
</div> </div>
<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows" <nz-table
[nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions" #dynamicTable
[nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading" nzTableLayout="auto"
(nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%"> nzSize="small"
nzBordered
nzShowSizeChanger
[nzData]="query.results.rows"
[nzFrontPagination]="false"
[nzTotal]="query.results.records"
[nzPageSizeOptions]="query.params.pageSizeOptions"
[nzPageSize]="query.params.pageSize"
[nzPageIndex]="query.params.pageNumber"
[nzLoading]="this.query.tableLoading"
(nzQueryParams)="onQueryParamsChange($event)"
nzWidth="100%"
>
<thead> <thead>
<tr> <tr>
<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
(nzCheckedChange)="onTableAllChecked($event)"></th>
<th nzAlign="center" style="display: none">Id</th> <th nzAlign="center" style="display: none">Id</th>
<th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
<th nzAlign="center">{{ 'mxk.roles.category' | i18n }}</th> <th nzAlign="center">{{ 'mxk.roles.category' | i18n }}</th>
@ -49,8 +76,11 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let data of query.results.rows"> <tr *ngFor="let data of query.results.rows">
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled" <td
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td> [nzChecked]="query.tableCheckedId.has(data.id)"
[nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"
></td>
<td nzAlign="left" style="display: none"> <td nzAlign="left" style="display: none">
<span>{{ data.id }}</span> <span>{{ data.id }}</span>
</td> </td>
@ -62,20 +92,26 @@
<td nzAlign="center" nzBreakWord="false" width="350px"> <td nzAlign="center" nzBreakWord="false" width="350px">
<div nz-col> <div nz-col>
<button nz-button type=" button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button> <button nz-button type=" button" (click)="onEdit($event, data.id)">{{ 'mxk.text.edit' | i18n }}</button>
<button nz-button type="button" (click)="onMembers($event, data.id, data.roleName)">{{ 'mxk.roles.member' | <button nz-button type="button" (click)="onMembers($event, data.id, data.roleName)">{{ 'mxk.roles.member' | i18n }}</button>
i18n }}</button>
<button nz-button type="button" (click)="onPermissions($event, data.id, data.roleName)">{{ <button nz-button type="button" (click)="onPermissions($event, data.id, data.roleName)">{{
'mxk.roles.permissions' | i18n 'mxk.roles.permissions' | i18n
}}</button> }}</button>
<button nz-button type="button" nz-popconfirm <button
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}" nzPopconfirmPlacement="left" nz-button
type="button"
nz-popconfirm
nzPopconfirmTitle="{{ 'mxk.text.delete.popconfirm.title' | i18n }}"
nzPopconfirmPlacement="left"
[nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n" [nzCancelText]="'mxk.text.delete.popconfirm.cancelText' | i18n"
[nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n" (nzOnConfirm)="onDelete(data.id)" [nzOkText]="'mxk.text.delete.popconfirm.okText' | i18n"
(nzOnConfirm)="onDelete(data.id)"
*ngIf="data.roleCode != 'ROLE_ADMINISTRATORS' && data.roleCode != 'ROLE_ALL_USER' && data.roleCode != 'ROLE_MANAGERS'" *ngIf="data.roleCode != 'ROLE_ADMINISTRATORS' && data.roleCode != 'ROLE_ALL_USER' && data.roleCode != 'ROLE_MANAGERS'"
nzDanger>{{ 'mxk.text.delete' | i18n }}</button> nzDanger
>{{ 'mxk.text.delete' | i18n }}</button
>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
</nz-card> </nz-card>

View File

@ -1,19 +1,18 @@
/* /*
* Copyright [2024] [MaxKey of copyright http://www.maxkey.top] * Copyright [2024] [MaxKey of copyright http://www.maxkey.top]
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core'; import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@ -255,4 +254,8 @@ export class RolesComponent implements OnInit {
this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked)); this.query.results.rows.filter(({ disabled }) => !disabled).forEach(({ id }) => this.updateTableCheckedSet(id, checked));
this.refreshTableCheckedStatus(); this.refreshTableCheckedStatus();
} }
tableHasCheckedItem(): boolean {
return this.query.tableCheckedId.size <= 0;
}
} }