imm-element-ui 2.3.5 → 2.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,4 +13,4 @@ export const formTypeToProps = {
13
13
  codemirror: 'codeMirrorProps',
14
14
  rowselector: 'rowSelectorProps',
15
15
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0RBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBUTtJQUNuQyxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsTUFBTSxFQUFFLGFBQWE7SUFDckIsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQixLQUFLLEVBQUUsWUFBWTtJQUNuQixRQUFRLEVBQUUsZUFBZTtJQUN6QixNQUFNLEVBQUUsYUFBYTtJQUNyQixLQUFLLEVBQUUsWUFBWTtJQUNuQixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFdBQVcsRUFBRSxrQkFBa0I7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgdHlwZSB7IFBhZ2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICdpbW0tYmknO1xuZXhwb3J0IGludGVyZmFjZSBIcmVmQnRuTGlzdCBleHRlbmRzIFBhcnRpYWw8QnV0dG9uPiB7XG5cdHVybD86IHN0cmluZztcblx0aTE4bktleT86IHN0cmluZztcblx0aWRLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbkJ0biBleHRlbmRzIFBhcnRpYWw8QnV0dG9uPiB7XG5cdGF1dGg6IG51bWJlcjtcblx0b25DbGljaz86IGFueTtcblx0YnRuRGlzYWJsZWQ/OiBGdW5jdGlvbjtcblx0YnRuSGlkZGVuPzogRnVuY3Rpb247XG5cdGkxOG5LZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZExpc3Qge1xuXHRncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG5cdHN1YlRhYmxlOiBzdHJpbmc7XG5cdHN1YlRhYmxlU291cmNlPzogJ2hhbmRsZScgfCAnc2VsZWN0Jztcblx0c2VsZWN0T3B0aW9ucz86IEdyaWRPcHRpb25zO1xuXHRzdWJEYXRhS2V5OiBzdHJpbmc7XG5cdHNsb3RLZXk/OiBzdHJpbmc7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHRzZWxlY3REYXRhQ2I/OiBGdW5jdGlvbjtcblx0c2VhcmNoUHJtPzogU2VhcmNoO1xuXHRkZWxldGVGdW5jPzogRnVuY3Rpb247XG5cdHNlbGVjdERhdGE/OiBhbnlbXTtcblx0dW5pcXVlRmllbGQ/OiBzdHJpbmc7XG5cdFtwcm9wTmFtZTpzdHJpbmddOmFueSxcblx0dHlwZT86c3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUZvcm1TbG90Q29udGV4dCB7XG5cdCRpbXBsaWNpdDogUGFnZUZvcm1TbG90Q29udGV4dDtcblx0c2xvdEtleTogc3RyaW5nO1xuXHRncmlkOiBHcmlkTGlzdDtcblx0aW5kZXg6IG51bWJlcjtcblx0cGFnZUZvcm06IFBhZ2VGb3JtQ29tcG9uZW50O1xuXHRkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0bW9kZWw6IHVua25vd247XG5cdHVwc2VydDogdW5rbm93bjtcblx0YWN0aXZlOiBib29sZWFuO1xuXHRncmlkRGlzYWJsZTpib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBmb3JtVHlwZVRvUHJvcHM6IGFueSA9IHtcblx0aW5wdXR0ZXh0OiAnaW5wdXRUZXh0UHJvcHMnLFxuXHRpbnB1dG51bWJlcjogJ2lucHV0TnVtYmVyUHJvcHMnLFxuXHRzZWxlY3Q6ICdzZWxlY3RQcm9wcycsXG5cdHRyZWVzZWxlY3Q6ICd0cmVlU2VsZWN0UHJvcHMnLFxuXHRkYXRlcGlja2VyOiAnZGF0ZVBpY2tlclByb3BzJyxcblx0YXV0b2NvbXBsZXRlOiAnYXV0b0NvbXBsZXRlUHJvcHMnLFxuXHRtdWx0aXNlbGVjdDogJ211bHRpU2VsZWN0UHJvcHMnLFxuXHRyYWRpbzogJ3JhZGlvUHJvcHMnLFxuXHR0ZXh0YXJlYTogJ3RleHRBcmVhUHJvcHMnLFxuXHR1cGxvYWQ6ICd1cGxvYWRQcm9wcycsXG5cdGltYWdlOiAnaW1hZ2VQcm9wcycsXG5cdGNvZGVtaXJyb3I6ICdjb2RlTWlycm9yUHJvcHMnLFxuXHRyb3dzZWxlY3RvcjogJ3Jvd1NlbGVjdG9yUHJvcHMnLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRm9ybVNsb3Qge1xuXHRoYW5kbGVBZGQ6IChhY3Rpb24/OiB1bmtub3duKSA9PiB2b2lkO1xuXHRoYW5kbGVSZW1vdmU6IChhY3Rpb24/OiB1bmtub3duKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRVcHNlcnQge1xuXHRhY3Rpb246J2FkZCd8J2VkaXQnfCdkZWxldGUnO1xuXHRmaWVsZDogc3RyaW5nO1xuXHRoZWFkZXJOYW1lOnN0cmluZztcblx0bmV3VmFsdWU6IFNhZmVBbnk7XG5cdG9sZFZhbHVlOiBTYWZlQW55O1xuXHRyZWNvcmRJbmRleDogbnVtYmVyO1xuXHRpbmRleDpudW1iZXIsXG5cdGRhdGE6IFJlY29yZDxzdHJpbmcsIFNhZmVBbnk+XG59XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0RBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBUTtJQUNuQyxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsTUFBTSxFQUFFLGFBQWE7SUFDckIsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQixLQUFLLEVBQUUsWUFBWTtJQUNuQixRQUFRLEVBQUUsZUFBZTtJQUN6QixNQUFNLEVBQUUsYUFBYTtJQUNyQixLQUFLLEVBQUUsWUFBWTtJQUNuQixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFdBQVcsRUFBRSxrQkFBa0I7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgdHlwZSB7IFBhZ2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICdpbW0tYmknO1xuZXhwb3J0IGludGVyZmFjZSBIcmVmQnRuTGlzdCBleHRlbmRzIFBhcnRpYWw8QnV0dG9uPiB7XG5cdHVybD86IHN0cmluZztcblx0aTE4bktleT86IHN0cmluZztcblx0aWRLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbkJ0biBleHRlbmRzIFBhcnRpYWw8QnV0dG9uPiB7XG5cdGF1dGg6IG51bWJlcjtcblx0b25DbGljaz86IGFueTtcblx0YnRuRGlzYWJsZWQ/OiBGdW5jdGlvbjtcblx0YnRuSGlkZGVuPzogRnVuY3Rpb247XG5cdGkxOG5LZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZExpc3Qge1xuXHRncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG5cdHN1YlRhYmxlOiBzdHJpbmc7XG5cdHN1YlRhYmxlU291cmNlPzogJ2hhbmRsZScgfCAnc2VsZWN0Jztcblx0c2VsZWN0T3B0aW9ucz86IEdyaWRPcHRpb25zO1xuXHRzdWJEYXRhS2V5OiBzdHJpbmc7XG5cdHNsb3RLZXk/OiBzdHJpbmc7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHRzZWxlY3REYXRhQ2I/OiBGdW5jdGlvbjtcblx0c2VhcmNoUHJtPzogU2VhcmNoO1xuXHRkZWxldGVGdW5jPzogRnVuY3Rpb247XG5cdHNlbGVjdERhdGE/OiBhbnlbXTtcblx0dW5pcXVlRmllbGQ/OiBzdHJpbmc7XG5cdFtwcm9wTmFtZTpzdHJpbmddOmFueSxcblx0dHlwZT86c3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUZvcm1TbG90Q29udGV4dCB7XG5cdCRpbXBsaWNpdDogUGFnZUZvcm1TbG90Q29udGV4dDtcblx0c2xvdEtleTogc3RyaW5nO1xuXHRncmlkOiBHcmlkTGlzdDtcblx0aW5kZXg6IG51bWJlcjtcblx0cGFnZUZvcm06IFBhZ2VGb3JtQ29tcG9uZW50O1xuXHRkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0bW9kZWw6IHVua25vd247XG5cdHVwc2VydDogdW5rbm93bjtcblx0YWN0aXZlOiBib29sZWFuO1xuXHRncmlkRGlzYWJsZTpib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBmb3JtVHlwZVRvUHJvcHM6IGFueSA9IHtcblx0aW5wdXR0ZXh0OiAnaW5wdXRUZXh0UHJvcHMnLFxuXHRpbnB1dG51bWJlcjogJ2lucHV0TnVtYmVyUHJvcHMnLFxuXHRzZWxlY3Q6ICdzZWxlY3RQcm9wcycsXG5cdHRyZWVzZWxlY3Q6ICd0cmVlU2VsZWN0UHJvcHMnLFxuXHRkYXRlcGlja2VyOiAnZGF0ZVBpY2tlclByb3BzJyxcblx0YXV0b2NvbXBsZXRlOiAnYXV0b0NvbXBsZXRlUHJvcHMnLFxuXHRtdWx0aXNlbGVjdDogJ211bHRpU2VsZWN0UHJvcHMnLFxuXHRyYWRpbzogJ3JhZGlvUHJvcHMnLFxuXHR0ZXh0YXJlYTogJ3RleHRBcmVhUHJvcHMnLFxuXHR1cGxvYWQ6ICd1cGxvYWRQcm9wcycsXG5cdGltYWdlOiAnaW1hZ2VQcm9wcycsXG5cdGNvZGVtaXJyb3I6ICdjb2RlTWlycm9yUHJvcHMnLFxuXHRyb3dzZWxlY3RvcjogJ3Jvd1NlbGVjdG9yUHJvcHMnLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRm9ybVNsb3Qge1xuXHRoYW5kbGVBZGQ6IChhY3Rpb24/OiB1bmtub3duKSA9PiB2b2lkO1xuXHRoYW5kbGVSZW1vdmU6IChhY3Rpb24/OiB1bmtub3duKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRVcHNlcnQge1xuXHRhY3Rpb246J2FkZCd8J2VkaXQnfCdkZWxldGUnO1xuXHRmaWVsZDogc3RyaW5nO1xuXHRoZWFkZXJOYW1lOnN0cmluZztcblx0bmV3VmFsdWU6IFNhZmVBbnk7XG5cdG9sZFZhbHVlOiBTYWZlQW55O1xuXHRyZWNvcmRJbmRleDogbnVtYmVyO1xuXHRpbmRleDpudW1iZXI7XG5cdGRhdGE6IFJlY29yZDxzdHJpbmcsIFNhZmVBbnk+O1xuXHRzZWxlY3ROYW1lPzpzdHJpbmd8dW5kZWZpbmVkXG59XG4iXX0=
@@ -78,7 +78,6 @@ import * as i4 from 'primeng/tabs';
78
78
  import { TabsModule } from 'primeng/tabs';
79
79
  import * as i1$9 from 'primeng/styleclass';
80
80
  import { StyleClassModule } from 'primeng/styleclass';
81
- import { isEqual } from 'lodash';
82
81
  import * as i2$b from 'primeng/progressspinner';
83
82
  import { ProgressSpinnerModule } from 'primeng/progressspinner';
84
83
  import Aura from '@primeng/themes/aura';
@@ -5085,6 +5084,8 @@ class CellEditSelectFieldComponent {
5085
5084
  boxShadow: 'none',
5086
5085
  width: `${cellWidth}px`,
5087
5086
  background: 'var(--ag-background-color)',
5087
+ height: '40px',
5088
+ alignItems: 'center'
5088
5089
  };
5089
5090
  this.params.panelStyle = {
5090
5091
  width: `${cellWidth}px`,
@@ -9216,6 +9217,9 @@ class PageFormComponent extends AmComponent {
9216
9217
  this.formDetail = input();
9217
9218
  this.saveFunc = input();
9218
9219
  this.configNewPath = input();
9220
+ this.customLeftPanel = input(null);
9221
+ this.selectedId = input();
9222
+ this.currentIdAndModelName = {};
9219
9223
  this.userHistoryService = inject(UserHistoryService);
9220
9224
  this.pageFormService = inject(PageFormService);
9221
9225
  this.cdr = inject(ChangeDetectorRef);
@@ -9237,8 +9241,7 @@ class PageFormComponent extends AmComponent {
9237
9241
  this.slotMap = new Map();
9238
9242
  this.slotContextMap = new Map();
9239
9243
  this.slotRenderStates = [];
9240
- console.log(`PageFormComponent`);
9241
- this.id = Number(this.route.snapshot.paramMap.get('id'));
9244
+ this.id = this.selectedId() ?? Number(this.route.snapshot.paramMap.get('id'));
9242
9245
  this.pageUrl = this.route.snapshot.url
9243
9246
  .map((segment) => segment.path)
9244
9247
  .join('/')
@@ -9247,9 +9250,8 @@ class PageFormComponent extends AmComponent {
9247
9250
  effect(() => {
9248
9251
  this.modelName = this.getPrmInput().modelName;
9249
9252
  this.getPrm = { ...this.getPrmInput() };
9250
- this.id && (this.getPrm.id = this.id);
9251
- if (this.id) {
9252
- // console.log(typeof this.formDetail(), 'form----');
9253
+ this.id && (this.getPrm.id = this.selectedId() ?? this.id);
9254
+ if (this.id && this.modelName) {
9253
9255
  typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
9254
9256
  }
9255
9257
  else {
@@ -9311,26 +9313,15 @@ class PageFormComponent extends AmComponent {
9311
9313
  }
9312
9314
  bindPageFormService() {
9313
9315
  this.pageFormService.updateData$.pipe(takeUntil(this.destroy$)).subscribe((data) => {
9314
- this.mergePageFormData(data);
9316
+ this.refreshSlotRenderStates();
9315
9317
  });
9316
9318
  this.pageFormService.updateDataByKey$.pipe(takeUntil(this.destroy$)).subscribe(({ key, value }) => {
9319
+ console.log(key, value);
9317
9320
  this.mergeUpsert(value);
9318
9321
  this.refreshSlotRenderStates();
9319
9322
  this.cdr.markForCheck();
9320
9323
  });
9321
9324
  }
9322
- mergePageFormData(data) {
9323
- console.log(`mergePageFormData`, data, this.getPrm.data);
9324
- if (!isEqual(this.getPrm.data, data)) {
9325
- this.getPrm.data = {
9326
- ...(this.getPrm.data ?? {}),
9327
- ...data,
9328
- };
9329
- this.syncSubFormModelFromData();
9330
- this.refreshSlotRenderStates();
9331
- this.cdr.markForCheck();
9332
- }
9333
- }
9334
9325
  syncSubFormModelFromData() {
9335
9326
  this.gridList().forEach((grid) => {
9336
9327
  if (grid.type == 'form') {
@@ -9349,7 +9340,7 @@ class PageFormComponent extends AmComponent {
9349
9340
  }
9350
9341
  // 插槽组件 更新upsert
9351
9342
  mergeUpsert(payload) {
9352
- const { action, field, headerName, newValue, oldValue, recordIndex, index, data } = payload;
9343
+ const { action, field, headerName, newValue, oldValue, recordIndex, index, data, selectName } = payload;
9353
9344
  let sub = this.upsertPrm.subsert[index];
9354
9345
  if (action == 'add') {
9355
9346
  let mainField = this.gridList()[index]['gridOptions']['mainField'];
@@ -9368,6 +9359,9 @@ class PageFormComponent extends AmComponent {
9368
9359
  else {
9369
9360
  o = { id: data['id'], [field]: newValue };
9370
9361
  }
9362
+ if (selectName) {
9363
+ o[selectName] = data[selectName];
9364
+ }
9371
9365
  sub['maptmp']?.set(recordIndex, o);
9372
9366
  sub['logtmp']?.set(recordIndex + field, {
9373
9367
  newValue: newValue,
@@ -9379,9 +9373,9 @@ class PageFormComponent extends AmComponent {
9379
9373
  else if (action === 'delete') {
9380
9374
  if (sub['maptmp']?.has(recordIndex)) {
9381
9375
  let data = sub['maptmp']?.get(recordIndex);
9382
- data[field] && (delete data[field]);
9376
+ data[field] && delete data[field];
9383
9377
  let keys = Object.keys(data);
9384
- (keys.length == 0) && (sub['maptmp']?.delete(recordIndex));
9378
+ keys.length == 0 && sub['maptmp']?.delete(recordIndex);
9385
9379
  }
9386
9380
  if (sub['logtmp']?.get(recordIndex + field)) {
9387
9381
  sub['logtmp']?.delete(recordIndex + field);
@@ -9684,7 +9678,7 @@ class PageFormComponent extends AmComponent {
9684
9678
  this.saveBtnDisable = data;
9685
9679
  this.gridDisable = data;
9686
9680
  this.disableForm(data);
9687
- this.disabeldChild(data);
9681
+ this.disabledChild(data);
9688
9682
  }
9689
9683
  if (typeof data === 'object') {
9690
9684
  const disabeld = data.disabled;
@@ -9694,7 +9688,7 @@ class PageFormComponent extends AmComponent {
9694
9688
  }
9695
9689
  if (!filters.includes('grid')) {
9696
9690
  this.gridDisable = disabeld;
9697
- this.disabeldChild(disabeld);
9691
+ this.disabledChild(disabeld);
9698
9692
  }
9699
9693
  }
9700
9694
  }
@@ -9712,15 +9706,15 @@ class PageFormComponent extends AmComponent {
9712
9706
  });
9713
9707
  });
9714
9708
  }
9715
- disabeldChild(disabeld) {
9709
+ disabledChild(disabled) {
9716
9710
  this.gridList().forEach((v, index) => {
9717
9711
  if (v.type == 'grid') {
9718
9712
  v.gridOptions.columnDefs.forEach((item) => {
9719
- if (disabeld && item.hasOwnProperty('editable')) {
9713
+ if (disabled && item.hasOwnProperty('editable')) {
9720
9714
  item.editable = false;
9721
9715
  }
9722
9716
  // 同一个页面disabled false => true
9723
- if (!disabeld && item.hasOwnProperty('editable') && !item.editable && typeof item.editable === 'boolean') {
9717
+ if (!disabled && item.hasOwnProperty('editable') && !item.editable && typeof item.editable === 'boolean') {
9724
9718
  item.editable = true;
9725
9719
  }
9726
9720
  });
@@ -9730,7 +9724,7 @@ class PageFormComponent extends AmComponent {
9730
9724
  v.fields?.forEach((item) => {
9731
9725
  item.group?.forEach((g) => {
9732
9726
  let fieldDisabled = g[formTypeToProps[g.type]].disabled || false;
9733
- if (disabeld) {
9727
+ if (disabled) {
9734
9728
  this.tabForm.get(index).getField(g.key)?.fieldControl.markAsPristine({ emitEvent: false });
9735
9729
  this.tabForm.get(index).getField(g.key)?.fieldControl.disable({ emitEvent: false });
9736
9730
  }
@@ -9827,7 +9821,7 @@ class PageFormComponent extends AmComponent {
9827
9821
  ids = selectItem.filter((v) => v.id).map((v) => v.id);
9828
9822
  }
9829
9823
  if (ids.length > 0) {
9830
- this.web_remove({ modelName: grid.gridOptions.modelName, ids }).subscribe(res => {
9824
+ this.web_remove({ modelName: grid.gridOptions.modelName, ids }).subscribe((res) => {
9831
9825
  this.pageFormService.removeData(grid.subDataKey, this.pageFormService.getSelectedRows(), grid);
9832
9826
  this.pageFormService.setSelectedRows([]);
9833
9827
  });
@@ -9838,7 +9832,7 @@ class PageFormComponent extends AmComponent {
9838
9832
  }
9839
9833
  }
9840
9834
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9841
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, providers: [], queries: [{ propertyName: "pageFormSlots", predicate: PageFormSlotDirective, descendants: true }], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + sidebarMode()\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data, action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if (stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild.gridOptions?.modelName || fchild.subDataKey || fchild.slotKey || $index) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid.gridOptions?.modelName || grid.subDataKey || grid.slotKey || $index) {\n\t\t\t\t\t@let slotState = slotRenderStates[i];\n\t\t\t\t\t@let slot = slotState?.slot;\n\t\t\t\t\t<div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n\t\t\t\t\t\t@if (slot && indexValue === i) {\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n\t\t\t\t\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t\t\t\t\t@if (grid.subTableSource != 'none') {\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t\t\t\t\t[disabled]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t\t(onClick)=\"addRowClickHandler(grid)\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if (grid.showDelete) {\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t\t\t\t\t[disabled]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t\t(onClick)=\"delRowClickHandler(grid)\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i4.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i4.TabList, selector: "p-tablist" }, { kind: "component", type: i4.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9835
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, customLeftPanel: { classPropertyName: "customLeftPanel", publicName: "customLeftPanel", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, providers: [], queries: [{ propertyName: "pageFormSlots", predicate: PageFormSlotDirective, descendants: true }], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + sidebarMode()\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data, action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if (stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (gridList() && gridList().length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of gridList(); let i = $index; track fchild.gridOptions?.modelName || fchild.subDataKey || fchild.slotKey || $index) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of gridList(); let i = $index; track grid.gridOptions?.modelName || grid.subDataKey || grid.slotKey || $index) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot && indexValue === i) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (grid.subTableSource != 'none') {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"gridDisable\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\">\n </custom-grid>\n } @else {\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i4.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i4.TabList, selector: "p-tablist" }, { kind: "component", type: i4.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9842
9836
  }
9843
9837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
9844
9838
  type: Component,
@@ -9855,7 +9849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
9855
9849
  RowSelectorComponent$1,
9856
9850
  TranslatePipe,
9857
9851
  HrefBtnListComponent,
9858
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + sidebarMode()\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data, action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if (stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild.gridOptions?.modelName || fchild.subDataKey || fchild.slotKey || $index) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid.gridOptions?.modelName || grid.subDataKey || grid.slotKey || $index) {\n\t\t\t\t\t@let slotState = slotRenderStates[i];\n\t\t\t\t\t@let slot = slotState?.slot;\n\t\t\t\t\t<div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n\t\t\t\t\t\t@if (slot && indexValue === i) {\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n\t\t\t\t\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t\t\t\t\t@if (grid.subTableSource != 'none') {\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t\t\t\t\t[disabled]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t\t(onClick)=\"addRowClickHandler(grid)\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if (grid.showDelete) {\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t\t\t\t\t[disabled]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t\t(onClick)=\"delRowClickHandler(grid)\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
9852
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [], template: "<div class=\"md:overflow-hidden\">\n <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + sidebarMode()\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data, action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if (stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (gridList() && gridList().length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of gridList(); let i = $index; track fchild.gridOptions?.modelName || fchild.subDataKey || fchild.slotKey || $index) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of gridList(); let i = $index; track grid.gridOptions?.modelName || grid.subDataKey || grid.slotKey || $index) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot && indexValue === i) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (grid.subTableSource != 'none') {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"gridDisable\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\">\n </custom-grid>\n } @else {\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
9859
9853
  }], ctorParameters: () => [], propDecorators: { cForm: [{
9860
9854
  type: ViewChild,
9861
9855
  args: ['cForm']