imm-element-ui 1.3.7 → 1.3.9

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.
@@ -75,16 +75,23 @@ const _searchUitls = {
75
75
  }
76
76
  return columnFilters?.filter((columnFilter) => !cascadeClearList.includes(columnFilter.columnField));
77
77
  },
78
- extractSearchItems(columnDefs, searchItems = []) {
78
+ extractSearchItems(columnDefs, i18n, searchItems = []) {
79
79
  columnDefs?.forEach((col) => {
80
80
  if (col.children) {
81
- this.extractSearchItems(col.children, searchItems);
81
+ this.extractSearchItems(col.children, i18n, searchItems);
82
82
  }
83
83
  else {
84
84
  if (!col.search) {
85
85
  return;
86
86
  }
87
- let searchItem = { field: col.field, label: col.headerName || col.field, filterType: col.searchType, filter: true };
87
+ let label;
88
+ if (col.hasOwnProperty('i18nKey')) {
89
+ label = i18n.fanyi(col.i18nKey);
90
+ }
91
+ else {
92
+ label = col.headerName || col.field;
93
+ }
94
+ let searchItem = { field: col.field, label, filterType: col.searchType, filter: true };
88
95
  if (col.searchType == 'date') {
89
96
  searchItem.format = col.searchFormat ?? 'yy-mm-dd';
90
97
  }
@@ -128,4 +135,4 @@ export const searchUtils = {
128
135
  cascadeColumnFilters: _searchUitls.cascadeColumnFilters,
129
136
  translate: _searchUitls.translate,
130
137
  };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sWUFBWSxHQUFHO0lBQ3BCLFdBQVcsRUFBRSxDQUFDLEtBQVksRUFBUyxFQUFFO1FBQ3BDLElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztRQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBQ0QsY0FBYyxFQUFFLENBQUMsSUFBZ0IsRUFBNEIsRUFBRTtRQUM5RCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPO1lBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFVBQVU7WUFDakMsS0FBSyxFQUFFLElB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cmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlYXJjaCwgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSdcclxuY29uc3QgX3NlYXJjaFVpdGxzID0ge1xyXG5cdGZsYXR0ZW5UcmVlOiAobm9kZXM6IGFueVtdKTogYW55W10gPT4ge1xyXG5cdFx0bGV0IHJlc3VsdDogYW55W10gPSBbXTtcclxuXHRcdG5vZGVzPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcblx0XHRcdHJlc3VsdC5wdXNoKG5vZGUpO1xyXG5cclxuXHRcdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0cmVzdWx0ID0gcmVzdWx0LmNvbmNhdChfc2VhcmNoVWl0bHMuZmxhdHRlblRyZWUobm9kZS5jaGlsZHJlbikpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSxcclxuXHR0cmFuc2ZlckZpbHRlcjogKGl0ZW06IFNlYXJjaEl0ZW0pOiBDb2x1bW5GaWx0ZXIgfCB1bmRlZmluZWQgPT4ge1xyXG5cdFx0aWYgKGl0ZW0uZmlsdGVyVHlwZSA9PSAnZGF0ZScpIHtcclxuXHRcdFx0cmV0dXJuIF9zZWFyY2hVaXRscy50cmFuc2ZlckRhdGUoaXRlbSk7XHJcblx0XHR9IGVsc2UgaWYgKGl0ZW0uZmlsdGVyVHlwZSA9PSAnbnVtYmVyJykge1xyXG5cdFx0XHRyZXR1cm4gX3NlYXJjaFVpdGxzLnRyYW5zZmVyTnVtYmVyKGl0ZW0pO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0Y29sdW1uRmllbGQ6IGl0ZW0uZmllbGQsXHJcblx0XHRcdHR5cGU6IGl0ZW0ub3BlcmF0b3IgfHwgJ2NvbnRhaW5zJyxcclxuXHRcdFx0Zml0ZXI6IGl0ZW0udmFsdWUsXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0dHJhbnNmZXJOdW1iZXI6IChpdGVtOiBTZWFyY2hJdGVtKTogQ29sdW1uRmlsdGVyIHwgdW5kZWZpbmVkID0+IHtcclxuXHRcdGlmIChpdGVtLm9wZXJhdG9yID09ICdpblJhbmdlJykge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNvbHVtbkZpZWxkOiBpdGVtLmZpZWxkLFxyXG5cdFx0XHRcdHR5cGU6IGl0ZW0ub3BlcmF0b3IsXHJcblx0XHRcdFx0ZnJvbTogaXRlbS5mcm9tLFxyXG5cdFx0XHRcdHRvOiBpdGVtLnRvLFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0Y29sdW1uRmllbGQ6IGl0ZW0uZmllbGQsXHJcblx0XHRcdHR5cGU6IGl0ZW0ub3BlcmF0b3IsXHJcblx0XHRcdGZpdGVyOiBpdGVtLnZhbHVlLFxyXG5cdFx0fTtcclxuXHR9LFxyXG5cdHRyYW5zZmVyRGF0ZTogKGl0ZW06IFNlYXJjaEl0ZW0pOiBDb2x1bW5GaWx0ZXIgfCB1bmRlZmluZWQgPT4ge1xyXG5cdFx0aWYgKGl0ZW0ub3BlcmF0b3IgPT0gJ2luUmFuZ2UnKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29sdW1uRmllbGQ6IGl0ZW0uZmllbGQsXHJcblx0XHRcdFx0dHlwZTogaXRlbS5vcGVyYXRvcixcclxuXHRcdFx0XHRmcm9tOiBpdGVtLmZyb20sXHJcblx0XHRcdFx0dG86IGl0ZW0udG8sXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRjb2x1bW5GaWVsZDogaXRlbS5maWVsZCxcclxuXHRcdFx0dHlwZTogaXRlbS5vcGVyYXRvcixcclxuXHRcdFx0Zml0ZXI6IGl0ZW0udmFsdWUsXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Y29uY2F0RmlsdGVyOiAoc2VhcmNoOiBTZWFyY2ggPSB7IGNvbHVtbkZpbHRlcnM6IFtdLCBncm91cHM6IFtdIH0sIGZpbHRlcjogQ29sdW1uRmlsdGVyKTogU2VhcmNoID0+IHtcclxuXHRcdHNlYXJjaC5jb2x1bW5GaWx0ZXJzID0gc2VhcmNoLmNvbHVtbkZpbHRlcnM/LmZpbHRlcigoZmlsKSA9PiBmaWx0ZXIuY29sdW1uRmllbGQgIT0gZmlsLmNvbHVtbkZpZWxkKTtcclxuXHRcdGlmICghZmlsdGVyKSB7XHJcblx0XHRcdHJldHVybiBzZWFyY2g7XHJcblx0XHR9XHJcblx0XHRpZiAoZmlsdGVyLnR5cGUgPT0gJ2luJyAmJiAhZmlsdGVyLmZpdGVyLmxlbmd0aCkge1xyXG5cdFx0XHRyZXR1cm4gc2VhcmNoO1xyXG5cdFx0fVxyXG5cdFx0c2VhcmNoLmNvbHVtbkZpbHRlcnM/LnB1c2goZmlsdGVyKTtcclxuXHRcdHJldHVybiBzZWFyY2g7XHJcblx0fSxcclxuXHRjYXNjYWRlQ29sdW1uRmlsdGVycyhzZWFyY2hDbGVhcjogc3RyaW5nLCBjb2x1bW5GaWx0ZXJzOiBDb2x1bW5GaWx0ZXJbXSwgc2VhcmNoSXRlbXM6IFNlYXJjaEl0ZW1bXSk6IENvbHVtbkZpbHRlcltdIHtcclxuXHRcdGNvbnN0IGNhc2NhZGVDbGVhckxpc3Q6IHN0cmluZ1tdID0gW3NlYXJjaENsZWFyXTtcclxuXHRcdGZvciAoY29uc3QgY29sdW1uRmlsdGVyIG9mIGNvbHVtbkZpbHRlcnMpIHtcclxuXHRcdFx0Zm9yIChjb25zdCBzZWFyY2hJdGVtIG9mIHNlYXJjaEl0ZW1zKSB7XHJcblx0XHRcdFx0aWYgKHNlYXJjaEl0ZW0uZmllbGQgPT0gY29sdW1uRmlsdGVyLmNvbHVtbkZpZWxkICYmIHNlYXJjaEl0ZW0uY2FzY2FkZSAmJiBzZWFyY2hJdGVtLmNhc2NhZGVLZXkgPT0gc2VhcmNoQ2xlYXIpIHtcclxuXHRcdFx0XHRcdGNhc2NhZGVDbGVhckxpc3QucHVzaChjb2x1bW5GaWx0ZXIuY29sdW1uRmllbGQhKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGNvbHVtbkZpbHRlcnM/LmZpbHRlcigoY29sdW1uRmlsdGVyKSA9PiAhY2FzY2FkZUNsZWFyTGlzdC5pbmNsdWRlcyhjb2x1bW5GaWx0ZXIuY29sdW1uRmllbGQhKSk7XHJcblx0fSxcclxuXHRleHRyYWN0U2VhcmNoSXRlbXMoY29sdW1uRGVmczogYW55LCBzZWFyY2hJdGVtczogU2VhcmNoSXRlbVtdID0gW10pOiBTZWFyY2hJdGVtW10ge1xyXG5cdFx0Y29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGNvbC5jaGlsZHJlbikge1xyXG5cdFx0XHRcdHRoaXMuZXh0cmFjdFNlYXJjaEl0ZW1zKGNvbC5jaGlsZHJlbiwgc2VhcmNoSXRlbXMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmICghY29sLnNlYXJjaCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgc2VhcmNoSXRlbTogU2VhcmNoSXRlbSA9IHsgZmllbGQ6IGNvbC5maWVsZCwgbGFiZWw6IGNvbC5oZWFkZXJOYW1lIHx8IGNvbC5maWVsZCwgZmlsdGVyVHlwZTogY29sLnNlYXJjaFR5cGUsIGZpbHRlcjogdHJ1ZSB9O1xyXG5cdFx0XHRcdGlmIChjb2wuc2VhcmNoVHlwZSA9PSAnZGF0ZScpIHtcclxuXHRcdFx0XHRcdHNlYXJjaEl0ZW0uZm9ybWF0ID0gY29sLnNlYXJjaEZvcm1hdCA/PyAneXktbW0tZGQnO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoY29sLnNlYXJjaFR5cGUgPT0gJ3NlbGVjdCcpIHtcclxuXHRcdFx0XHRcdGlmIChjb2wuY2FzY2FkZSkge1xyXG5cdFx0XHRcdFx0XHRzZWFyY2hJdGVtLmNhc2NhZGUgPSBjb2wuY2FzY2FkZTtcclxuXHRcdFx0XHRcdFx0c2VhcmNoSXRlbS5jYXNjYWRlS2V5ID0gY29sLmNhc2NhZGVLZXk7XHJcblx0XHRcdFx0XHRcdHNlYXJjaEl0ZW0uY2FzY2FkZUZ1bmMgPSBjb2wuY2FzY2FkZUZ1bmM7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChjb2wuc2VhcmNoT3B0aW9ucykge1xyXG5cdFx0XHRcdFx0Y29sLnNlYXJjaE9wdGlvbnMuc3Vic2NyaWJlKChvcHRpb25zOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0c2VhcmNoSXRlbS5vcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGNvbC5zZWFyY2hHcm91cCkge1xyXG5cdFx0XHRcdFx0c2VhcmNoSXRlbS5ncm91cCA9IGNvbC5zZWFyY2hHcm91cDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGNvbC5tdWx0aXBsZSkge1xyXG5cdFx0XHRcdFx0c2VhcmNoSXRlbS5tdWx0aXBsZSA9IGNvbC5tdWx0aXBsZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0c2VhcmNoSXRlbXMucHVzaChzZWFyY2hJdGVtKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gc2VhcmNoSXRlbXM7XHJcblx0fSxcclxuXHR0cmFuc2xhdGUob3BlcmF0b3JMaXN0OiBhbnlbXSwgaTE4bjogSTE4blNlcnZpY2UpIHtcclxuXHRcdHJldHVybiBvcGVyYXRvckxpc3QubWFwKChvcGVyYXRvcikgPT4ge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdC4uLm9wZXJhdG9yLFxyXG5cdFx0XHRcdGxhYmVsOiBvcGVyYXRvci5pMThuS2V5ID8gaTE4bi5mYW55aShvcGVyYXRvci5pMThuS2V5KSA6IG9wZXJhdG9yLmxhYmVsLFxyXG5cdFx0XHR9O1xyXG5cdFx0fSk7XHJcblx0fSxcclxufTtcclxuZXhwb3J0IGNvbnN0IHNlYXJjaFV0aWxzID0ge1xyXG5cdGZsYXR0ZW5UcmVlOiBfc2VhcmNoVWl0bHMuZmxhdHRlblRyZWUsXHJcblx0dHJhbnNmZXJGaWx0ZXI6IF9zZWFyY2hVaXRscy50cmFuc2ZlckZpbHRlcixcclxuXHRjb25jYXRGaWx0ZXI6IF9zZWFyY2hVaXRscy5jb25jYXRGaWx0ZXIsXHJcblx0ZXh0cmFjdFNlYXJjaEl0ZW1zOiBfc2VhcmNoVWl0bHMuZXh0cmFjdFNlYXJjaEl0ZW1zLFxyXG5cdGNhc2NhZGVDb2x1bW5GaWx0ZXJzOiBfc2VhcmNoVWl0bHMuY2FzY2FkZUNvbHVtbkZpbHRlcnMsXHJcblx0dHJhbnNsYXRlOiBfc2VhcmNoVWl0bHMudHJhbnNsYXRlLFxyXG59O1xyXG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sWUFBWSxHQUFHO0lBQ3BCLFdBQVcsRUFBRSxDQUFDLEtBQVksRUFBUyxFQUFFO1FBQ3BDLElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztRQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBQ0QsY0FBYyxFQUFFLENBQUMsSUFBZ0IsRUFBNEIsRUFBRTtRQUM5RCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPO1lBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFVBQVU7WUFDakMsS0FBSyxFQUFFLElB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QWM7SUFDM0MsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZO0lBQ3ZDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxrQkFBa0I7SUFDbkQsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLG9CQUFvQjtJQUN2RCxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlYXJjaEl0ZW0gfSBmcm9tICcuL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaCwgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xuY29uc3QgX3NlYXJjaFVpdGxzID0ge1xuXHRmbGF0dGVuVHJlZTogKG5vZGVzOiBhbnlbXSk6IGFueVtdID0+IHtcblx0XHRsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXHRcdG5vZGVzPy5mb3JFYWNoKChub2RlKSA9PiB7XG5cdFx0XHRyZXN1bHQucHVzaChub2RlKTtcblxuXHRcdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoX3NlYXJjaFVpdGxzLmZsYXR0ZW5UcmVlKG5vZGUuY2hpbGRyZW4pKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9LFxuXHR0cmFuc2ZlckZpbHRlcjogKGl0ZW06IFNlYXJjaEl0ZW0pOiBDb2x1bW5GaWx0ZXIgfCB1bmRlZmluZWQgPT4ge1xuXHRcdGlmIChpdGVtLmZpbHRlclR5cGUgPT0gJ2RhdGUnKSB7XG5cdFx0XHRyZXR1cm4gX3NlYXJjaFVpdGxzLnRyYW5zZmVyRGF0ZShpdGVtKTtcblx0XHR9IGVsc2UgaWYgKGl0ZW0uZmlsdGVyVHlwZSA9PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIF9zZWFyY2hVaXRscy50cmFuc2Zlck51bWJlcihpdGVtKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvbHVtbkZpZWxkOiBpdGVtLmZpZWxkLFxuXHRcdFx0dHlwZTogaXRlbS5vcGVyYXRvciB8fCAnY29udGFpbnMnLFxuXHRcdFx0Zml0ZXI6IGl0ZW0udmFsdWUsXG5cdFx0fTtcblx0fSxcblx0dHJhbnNmZXJOdW1iZXI6IChpdGVtOiBTZWFyY2hJdGVtKTogQ29sdW1uRmlsdGVyIHwgdW5kZWZpbmVkID0+IHtcblx0XHRpZiAoaXRlbS5vcGVyYXRvciA9PSAnaW5SYW5nZScpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbHVtbkZpZWxkOiBpdGVtLmZpZWxkLFxuXHRcdFx0XHR0eXBlOiBpdGVtLm9wZXJhdG9yLFxuXHRcdFx0XHRmcm9tOiBpdGVtLmZyb20sXG5cdFx0XHRcdHRvOiBpdGVtLnRvLFxuXHRcdFx0fTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvbHVtbkZpZWxkOiBpdGVtLmZpZWxkLFxuXHRcdFx0dHlwZTogaXRlbS5vcGVyYXRvcixcblx0XHRcdGZpdGVyOiBpdGVtLnZhbHVlLFxuXHRcdH07XG5cdH0sXG5cdHRyYW5zZmVyRGF0ZTogKGl0ZW06IFNlYXJjaEl0ZW0pOiBDb2x1bW5GaWx0ZXIgfCB1bmRlZmluZWQgPT4ge1xuXHRcdGlmIChpdGVtLm9wZXJhdG9yID09ICdpblJhbmdlJykge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29sdW1uRmllbGQ6IGl0ZW0uZmllbGQsXG5cdFx0XHRcdHR5cGU6IGl0ZW0ub3BlcmF0b3IsXG5cdFx0XHRcdGZyb206IGl0ZW0uZnJvbSxcblx0XHRcdFx0dG86IGl0ZW0udG8sXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Y29sdW1uRmllbGQ6IGl0ZW0uZmllbGQsXG5cdFx0XHR0eXBlOiBpdGVtLm9wZXJhdG9yLFxuXHRcdFx0Zml0ZXI6IGl0ZW0udmFsdWUsXG5cdFx0fTtcblx0fSxcblx0Y29uY2F0RmlsdGVyOiAoc2VhcmNoOiBTZWFyY2ggPSB7IGNvbHVtbkZpbHRlcnM6IFtdLCBncm91cHM6IFtdIH0sIGZpbHRlcjogQ29sdW1uRmlsdGVyKTogU2VhcmNoID0+IHtcblx0XHRzZWFyY2guY29sdW1uRmlsdGVycyA9IHNlYXJjaC5jb2x1bW5GaWx0ZXJzPy5maWx0ZXIoKGZpbCkgPT4gZmlsdGVyLmNvbHVtbkZpZWxkICE9IGZpbC5jb2x1bW5GaWVsZCk7XG5cdFx0aWYgKCFmaWx0ZXIpIHtcblx0XHRcdHJldHVybiBzZWFyY2g7XG5cdFx0fVxuXHRcdGlmIChmaWx0ZXIudHlwZSA9PSAnaW4nICYmICFmaWx0ZXIuZml0ZXIubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gc2VhcmNoO1xuXHRcdH1cblx0XHRzZWFyY2guY29sdW1uRmlsdGVycz8ucHVzaChmaWx0ZXIpO1xuXHRcdHJldHVybiBzZWFyY2g7XG5cdH0sXG5cdGNhc2NhZGVDb2x1bW5GaWx0ZXJzKHNlYXJjaENsZWFyOiBzdHJpbmcsIGNvbHVtbkZpbHRlcnM6IENvbHVtbkZpbHRlcltdLCBzZWFyY2hJdGVtczogU2VhcmNoSXRlbVtdKTogQ29sdW1uRmlsdGVyW10ge1xuXHRcdGNvbnN0IGNhc2NhZGVDbGVhckxpc3Q6IHN0cmluZ1tdID0gW3NlYXJjaENsZWFyXTtcblx0XHRmb3IgKGNvbnN0IGNvbHVtbkZpbHRlciBvZiBjb2x1bW5GaWx0ZXJzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IHNlYXJjaEl0ZW0gb2Ygc2VhcmNoSXRlbXMpIHtcblx0XHRcdFx0aWYgKHNlYXJjaEl0ZW0uZmllbGQgPT0gY29sdW1uRmlsdGVyLmNvbHVtbkZpZWxkICYmIHNlYXJjaEl0ZW0uY2FzY2FkZSAmJiBzZWFyY2hJdGVtLmNhc2NhZGVLZXkgPT0gc2VhcmNoQ2xlYXIpIHtcblx0XHRcdFx0XHRjYXNjYWRlQ2xlYXJMaXN0LnB1c2goY29sdW1uRmlsdGVyLmNvbHVtbkZpZWxkISk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbHVtbkZpbHRlcnM/LmZpbHRlcigoY29sdW1uRmlsdGVyKSA9PiAhY2FzY2FkZUNsZWFyTGlzdC5pbmNsdWRlcyhjb2x1bW5GaWx0ZXIuY29sdW1uRmllbGQhKSk7XG5cdH0sXG5cdGV4dHJhY3RTZWFyY2hJdGVtcyhjb2x1bW5EZWZzOiBhbnksIGkxOG46IEkxOG5TZXJ2aWNlLCBzZWFyY2hJdGVtczogU2VhcmNoSXRlbVtdID0gW10pOiBTZWFyY2hJdGVtW10ge1xuXHRcdGNvbHVtbkRlZnM/LmZvckVhY2goKGNvbDogYW55KSA9PiB7XG5cdFx0XHRpZiAoY29sLmNoaWxkcmVuKSB7XG5cdFx0XHRcdHRoaXMuZXh0cmFjdFNlYXJjaEl0ZW1zKGNvbC5jaGlsZHJlbiwgaTE4biwgc2VhcmNoSXRlbXMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKCFjb2wuc2VhcmNoKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBsYWJlbDtcblx0XHRcdFx0aWYgKGNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpKSB7XG5cdFx0XHRcdFx0bGFiZWwgPSBpMThuLmZhbnlpKGNvbC5pMThuS2V5KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsYWJlbCA9IGNvbC5oZWFkZXJOYW1lIHx8IGNvbC5maWVsZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgc2VhcmNoSXRlbTogU2VhcmNoSXRlbSA9IHsgZmllbGQ6IGNvbC5maWVsZCwgbGFiZWwsIGZpbHRlclR5cGU6IGNvbC5zZWFyY2hUeXBlLCBmaWx0ZXI6IHRydWUgfTtcblx0XHRcdFx0aWYgKGNvbC5zZWFyY2hUeXBlID09ICdkYXRlJykge1xuXHRcdFx0XHRcdHNlYXJjaEl0ZW0uZm9ybWF0ID0gY29sLnNlYXJjaEZvcm1hdCA/PyAneXktbW0tZGQnO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNvbC5zZWFyY2hUeXBlID09ICdzZWxlY3QnKSB7XG5cdFx0XHRcdFx0aWYgKGNvbC5jYXNjYWRlKSB7XG5cdFx0XHRcdFx0XHRzZWFyY2hJdGVtLmNhc2NhZGUgPSBjb2wuY2FzY2FkZTtcblx0XHRcdFx0XHRcdHNlYXJjaEl0ZW0uY2FzY2FkZUtleSA9IGNvbC5jYXNjYWRlS2V5O1xuXHRcdFx0XHRcdFx0c2VhcmNoSXRlbS5jYXNjYWRlRnVuYyA9IGNvbC5jYXNjYWRlRnVuYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGNvbC5zZWFyY2hPcHRpb25zKSB7XG5cdFx0XHRcdFx0Y29sLnNlYXJjaE9wdGlvbnMuc3Vic2NyaWJlKChvcHRpb25zOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdHNlYXJjaEl0ZW0ub3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjb2wuc2VhcmNoR3JvdXApIHtcblx0XHRcdFx0XHRzZWFyY2hJdGVtLmdyb3VwID0gY29sLnNlYXJjaEdyb3VwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjb2wubXVsdGlwbGUpIHtcblx0XHRcdFx0XHRzZWFyY2hJdGVtLm11bHRpcGxlID0gY29sLm11bHRpcGxlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNlYXJjaEl0ZW1zLnB1c2goc2VhcmNoSXRlbSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHNlYXJjaEl0ZW1zO1xuXHR9LFxuXHR0cmFuc2xhdGUob3BlcmF0b3JMaXN0OiBhbnlbXSwgaTE4bjogSTE4blNlcnZpY2UpIHtcblx0XHRyZXR1cm4gb3BlcmF0b3JMaXN0Lm1hcCgob3BlcmF0b3IpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLm9wZXJhdG9yLFxuXHRcdFx0XHRsYWJlbDogb3BlcmF0b3IuaTE4bktleSA/IGkxOG4uZmFueWkob3BlcmF0b3IuaTE4bktleSkgOiBvcGVyYXRvci5sYWJlbCxcblx0XHRcdH07XG5cdFx0fSk7XG5cdH0sXG59O1xuZXhwb3J0IGNvbnN0IHNlYXJjaFV0aWxzID0ge1xuXHRmbGF0dGVuVHJlZTogX3NlYXJjaFVpdGxzLmZsYXR0ZW5UcmVlLFxuXHR0cmFuc2ZlckZpbHRlcjogX3NlYXJjaFVpdGxzLnRyYW5zZmVyRmlsdGVyLFxuXHRjb25jYXRGaWx0ZXI6IF9zZWFyY2hVaXRscy5jb25jYXRGaWx0ZXIsXG5cdGV4dHJhY3RTZWFyY2hJdGVtczogX3NlYXJjaFVpdGxzLmV4dHJhY3RTZWFyY2hJdGVtcyxcblx0Y2FzY2FkZUNvbHVtbkZpbHRlcnM6IF9zZWFyY2hVaXRscy5jYXNjYWRlQ29sdW1uRmlsdGVycyxcblx0dHJhbnNsYXRlOiBfc2VhcmNoVWl0bHMudHJhbnNsYXRlLFxufTtcbiJdfQ==
@@ -1238,8 +1238,8 @@ const _fieldUtils = {
1238
1238
  return '';
1239
1239
  }
1240
1240
  if (_fieldUtils.isISO8601(raw)) {
1241
- const dateFormat = field.datePickerProps?.showTime ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd';
1242
- return datePipe.transform(raw, dateFormat, 'GMT') || raw;
1241
+ const datePipeFormat = field.datePickerProps?.datePipeFormat ?? 'yyyy-MM-dd';
1242
+ return datePipe.transform(raw, datePipeFormat, 'GMT') || raw;
1243
1243
  }
1244
1244
  if (!stringMode && field?.datePickerProps?.selectionMode == 'range' && raw.includes('~')) {
1245
1245
  const [start, end] = raw.split('~');
@@ -2091,6 +2091,7 @@ class DatePickerComponent {
2091
2091
  this.props = this.field().datePickerProps;
2092
2092
  this.handleHookChange();
2093
2093
  this.handleDisabled();
2094
+ this.handleDatePipeFormat();
2094
2095
  }
2095
2096
  });
2096
2097
  effect(() => {
@@ -2147,6 +2148,47 @@ class DatePickerComponent {
2147
2148
  throw new Error('Invalid date format. Expected yyyy-MM-dd hh:mm:ss');
2148
2149
  }
2149
2150
  }
2151
+ handleDatePipeFormat() {
2152
+ this.props.datePipeFormat = this.convertPrimeNgToDatePipeFormat(this.props.dateFormat);
2153
+ if (!this.props.showTime)
2154
+ return;
2155
+ const timeSeparator = this.props.timeSeparator ?? ':';
2156
+ const timeFormat = `HH${timeSeparator}mm${timeSeparator}ss`;
2157
+ this.props.datePipeFormat += ` ${timeFormat}`;
2158
+ }
2159
+ convertPrimeNgToDatePipeFormat(primeNgFormat) {
2160
+ if (!primeNgFormat)
2161
+ return 'yyyy-MM-dd';
2162
+ const formatMap = {
2163
+ d: 'd',
2164
+ dd: 'dd',
2165
+ m: 'M',
2166
+ mm: 'MM',
2167
+ M: 'MMM',
2168
+ MM: 'MMMM',
2169
+ y: 'yy',
2170
+ yy: 'yyyy',
2171
+ };
2172
+ const commonFormats = {
2173
+ 'mm/dd/yy': 'MM/dd/yyyy',
2174
+ 'dd/mm/yy': 'dd/MM/yyyy',
2175
+ 'yy-mm-dd': 'yyyy-MM-dd',
2176
+ 'dd-mm-yy': 'dd-MM-yyyy',
2177
+ 'mm-dd-yy': 'MM-dd-yyyy',
2178
+ };
2179
+ if (commonFormats[primeNgFormat]) {
2180
+ return commonFormats[primeNgFormat];
2181
+ }
2182
+ // 替换转义字符
2183
+ let result = primeNgFormat.replace(/'([^']*)'/g, (match, p1) => {
2184
+ return `'${p1}'`;
2185
+ });
2186
+ // 替换格式标记
2187
+ result = result.replace(/[a-zA-Z]+/g, (match) => {
2188
+ return formatMap[match] || match;
2189
+ });
2190
+ return result;
2191
+ }
2150
2192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }, { token: i1$2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
2151
2193
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "form-datepicker", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: DatePicker, descendants: true }, { propertyName: "datePickerRef", first: true, predicate: DatePicker, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-datepicker
2152
2194
  [id]="field()?.uuid"
@@ -3252,10 +3294,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3252
3294
  }] } });
3253
3295
 
3254
3296
  class ImageComponent {
3255
- constructor(http, action, renderer) {
3297
+ constructor(http, action, renderer, datePipe) {
3256
3298
  this.http = http;
3257
3299
  this.action = action;
3258
3300
  this.renderer = renderer;
3301
+ this.datePipe = datePipe;
3259
3302
  this.field = input();
3260
3303
  this.props = {};
3261
3304
  this.imageList = [];
@@ -3304,9 +3347,58 @@ class ImageComponent {
3304
3347
  return this.http.post('imageDelete', { fid: image });
3305
3348
  }
3306
3349
  uploadHandler(field, event, fu) {
3307
- this.uploadImage(event.files[0]).subscribe((response) => {
3308
- this.imageList?.push(response.body.fid);
3309
- this.field()?.fieldControl?.setValue(this.imageList);
3350
+ console.log(event, 'file----events');
3351
+ event.files.forEach(async (v) => {
3352
+ if (this.props.watermark) {
3353
+ let blob = await this.addWatermark(v);
3354
+ const newFile = new File([blob], v.name, { type: v.type });
3355
+ this.uploadImage(newFile).subscribe((response) => {
3356
+ this.imageList?.push(response.body.fid);
3357
+ this.field()?.fieldControl?.setValue(this.imageList);
3358
+ });
3359
+ }
3360
+ else {
3361
+ this.uploadImage(v).subscribe((response) => {
3362
+ this.imageList?.push(response.body.fid);
3363
+ this.field()?.fieldControl?.setValue(this.imageList);
3364
+ });
3365
+ }
3366
+ });
3367
+ }
3368
+ addWatermark(imageFile) {
3369
+ return new Promise((resolve, reject) => {
3370
+ const reader = new FileReader();
3371
+ reader.onload = (event) => {
3372
+ const img = document.createElement('img');
3373
+ img.onload = () => {
3374
+ const canvas = document.createElement('canvas');
3375
+ const ctx = canvas.getContext('2d');
3376
+ // 设置画布大小为图片大小
3377
+ canvas.width = Number(img.width);
3378
+ canvas.height = Number(img.height);
3379
+ // 绘制原始图片
3380
+ ctx.drawImage(img, 0, 0);
3381
+ // 添加水印
3382
+ ctx.font = `italic bold 30px Courier`;
3383
+ ctx.fillStyle = 'red';
3384
+ ctx.textAlign = 'center';
3385
+ ctx.textBaseline = 'middle';
3386
+ const currentTime = this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss') || '';
3387
+ ctx.fillText(currentTime, canvas.width / 2, canvas.height - 50);
3388
+ // 转换为Blob
3389
+ canvas.toBlob((blob) => {
3390
+ if (blob) {
3391
+ resolve(blob);
3392
+ }
3393
+ else {
3394
+ reject(new Error('Canvas to Blob conversion failed'));
3395
+ }
3396
+ }, 'image/jpeg', 0.8);
3397
+ };
3398
+ img.src = event.target?.result;
3399
+ };
3400
+ reader.onerror = (error) => reject(error);
3401
+ reader.readAsDataURL(imageFile);
3310
3402
  });
3311
3403
  }
3312
3404
  deleteHandler(image, index) {
@@ -3347,7 +3439,7 @@ class ImageComponent {
3347
3439
  parentDiv.appendChild(childDiv);
3348
3440
  }
3349
3441
  }
3350
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1$3.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3442
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1$3.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }, { token: i1$2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
3351
3443
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3352
3444
  #fu
3353
3445
  auto
@@ -3363,6 +3455,7 @@ class ImageComponent {
3363
3455
  [headers]="props.headers"
3364
3456
  [fileLimit]="props.fileLimit"
3365
3457
  [customUpload]="props.customUpload ?? true"
3458
+ [multiple]="props.multiple ?? false"
3366
3459
  (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3367
3460
  (onSend)="props.onSend?.(field()!, $event)"
3368
3461
  (onUpload)="props.onUpload?.(field()!, $event)"
@@ -3471,6 +3564,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3471
3564
  [headers]="props.headers"
3472
3565
  [fileLimit]="props.fileLimit"
3473
3566
  [customUpload]="props.customUpload ?? true"
3567
+ [multiple]="props.multiple ?? false"
3474
3568
  (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3475
3569
  (onSend)="props.onSend?.(field()!, $event)"
3476
3570
  (onUpload)="props.onUpload?.(field()!, $event)"
@@ -3561,7 +3655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3561
3655
  </ng-template>
3562
3656
  <ng-template #file> </ng-template>
3563
3657
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"] }]
3564
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }], propDecorators: { imageCompRef: [{
3658
+ }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }, { type: i1$2.DatePipe }], propDecorators: { imageCompRef: [{
3565
3659
  type: ViewChild,
3566
3660
  args: ['imageComp', { read: ElementRef, static: false }]
3567
3661
  }] } });
@@ -4391,7 +4485,7 @@ const _gridUtils = {
4391
4485
  if (item.hasOwnProperty('i18nKey')) {
4392
4486
  let headerName = i18n.fanyi(item.i18nKey);
4393
4487
  cols = { ...item, headerName };
4394
- delete cols.i18nKey;
4488
+ // delete cols.i18nKey;
4395
4489
  }
4396
4490
  else {
4397
4491
  cols = { ...item };
@@ -6339,16 +6433,23 @@ const _searchUitls = {
6339
6433
  }
6340
6434
  return columnFilters?.filter((columnFilter) => !cascadeClearList.includes(columnFilter.columnField));
6341
6435
  },
6342
- extractSearchItems(columnDefs, searchItems = []) {
6436
+ extractSearchItems(columnDefs, i18n, searchItems = []) {
6343
6437
  columnDefs?.forEach((col) => {
6344
6438
  if (col.children) {
6345
- this.extractSearchItems(col.children, searchItems);
6439
+ this.extractSearchItems(col.children, i18n, searchItems);
6346
6440
  }
6347
6441
  else {
6348
6442
  if (!col.search) {
6349
6443
  return;
6350
6444
  }
6351
- let searchItem = { field: col.field, label: col.headerName || col.field, filterType: col.searchType, filter: true };
6445
+ let label;
6446
+ if (col.hasOwnProperty('i18nKey')) {
6447
+ label = i18n.fanyi(col.i18nKey);
6448
+ }
6449
+ else {
6450
+ label = col.headerName || col.field;
6451
+ }
6452
+ let searchItem = { field: col.field, label, filterType: col.searchType, filter: true };
6352
6453
  if (col.searchType == 'date') {
6353
6454
  searchItem.format = col.searchFormat ?? 'yy-mm-dd';
6354
6455
  }
@@ -6803,7 +6904,7 @@ class SearchComponent {
6803
6904
  effect(() => {
6804
6905
  const columnDefs = this.gridOptions()?.columnDefs;
6805
6906
  this.visible = this.gridOptions()?.showSearch ?? true;
6806
- this.searchItems = searchUtils.extractSearchItems(columnDefs);
6907
+ this.searchItems = searchUtils.extractSearchItems(columnDefs, this.i18n);
6807
6908
  this.sortOptions = columnDefs.map((columnDef) => ({ key: columnDef.field, label: columnDef.headerName }));
6808
6909
  }, { allowSignalWrites: true });
6809
6910
  effect(() => {
@@ -8969,7 +9070,7 @@ class PageFormComponent extends AmComponent {
8969
9070
  this.sidebarMode.set(this.sidebarMode() === 'left' ? 'right' : 'left');
8970
9071
  }
8971
9072
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8972
- 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 } }, providers: [], 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[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)\">\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<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\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) {\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) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\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:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.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: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.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"] }] }); }
9073
+ 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 } }, providers: [], 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<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\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) {\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) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\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: ButtonModule }, { kind: "component", type: i2$3.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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.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: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.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"] }] }); }
8973
9074
  }
8974
9075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
8975
9076
  type: Component,
@@ -8985,7 +9086,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8985
9086
  RowSelectorComponent$1,
8986
9087
  TranslatePipe,
8987
9088
  HrefBtnListComponent,
8988
- ], 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[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)\">\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<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\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) {\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) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\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:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
9089
+ ], 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<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\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) {\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) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\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"] }]
8989
9090
  }], ctorParameters: () => [], propDecorators: { cForm: [{
8990
9091
  type: ViewChild,
8991
9092
  args: ['cForm']