@dignite-ng/expand.cms 0.0.53 → 0.0.54

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.
Files changed (36) hide show
  1. package/config/components/domains/domains.component.d.ts +7 -7
  2. package/esm2022/config/components/domains/domains.component.mjs +5 -5
  3. package/esm2022/config/components/site-language/site-language.component.mjs +3 -6
  4. package/esm2022/lib/cms.module.mjs +6 -3
  5. package/esm2022/lib/components/admin/entries/create.component.mjs +3 -2
  6. package/esm2022/lib/components/admin/entries/edit.component.mjs +2 -2
  7. package/esm2022/lib/components/admin/entries/entries.component.mjs +5 -4
  8. package/esm2022/lib/components/admin/fields/create-field.component.mjs +2 -2
  9. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +7 -5
  10. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +6 -6
  11. package/esm2022/lib/components/admin/fields/fields.component.mjs +8 -9
  12. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +2 -2
  13. package/esm2022/lib/components/admin/sections/sections.component.mjs +2 -2
  14. package/esm2022/lib/resolvers/extensions-props-action-token.resolver.mjs +7 -3
  15. package/esm2022/lib/resolvers/table-default-entity-actions.mjs +49 -0
  16. package/esm2022/lib/resolvers/table-default-entity-props.mjs +54 -0
  17. package/esm2022/lib/services/cms-api.service.mjs +4 -12
  18. package/esm2022/lib/services/index.mjs +1 -2
  19. package/esm2022/lib/services/validators.service.mjs +2 -4
  20. package/fesm2022/dignite-ng-expand.cms-config.mjs +6 -8
  21. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
  22. package/fesm2022/dignite-ng-expand.cms.mjs +142 -125
  23. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
  24. package/lib/cms.module.d.ts +2 -1
  25. package/lib/components/admin/fields/edit-field.component.d.ts +9 -9
  26. package/lib/resolvers/extensions-props-action-token.resolver.d.ts +6 -2
  27. package/lib/resolvers/table-default-entity-actions.d.ts +5 -0
  28. package/lib/resolvers/table-default-entity-props.d.ts +5 -0
  29. package/lib/services/cms-api.service.d.ts +1 -5
  30. package/lib/services/index.d.ts +0 -1
  31. package/lib/services/validators.service.d.ts +0 -2
  32. package/package.json +1 -1
  33. package/esm2022/lib/services/simple-reuse-strategy.mjs +0 -64
  34. package/esm2022/lib/services/update-list.service.mjs +0 -19
  35. package/lib/services/simple-reuse-strategy.d.ts +0 -13
  36. package/lib/services/update-list.service.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"dignite-ng-expand.cms.mjs","sources":["../../../projects/cms/src/lib/proxy/admin/settings/site-settings-admin.service.ts","../../../projects/cms/src/lib/proxy/entries/entry-status.enum.ts","../../../projects/cms/src/lib/enums/ecms-component.ts","../../../projects/cms/src/lib/services/update-list.service.ts","../../../projects/cms/src/lib/proxy/admin/entries/entry-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/entry-type-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/section-admin.service.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create-or-update-entry-input-base.ts","../../../projects/cms/src/lib/services/validators.service.ts","../../../projects/cms/src/lib/proxy/admin/fields/field-group-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts","../../../projects/cms/src/lib/services/field-abstracts.service.ts","../../../projects/cms/src/lib/services/cms.service.ts","../../../projects/cms/src/lib/services/cms-api.service.ts","../../../projects/cms/src/lib/services/simple-reuse-strategy.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create.component.ts","../../../projects/cms/src/lib/components/admin/entries/create.component.html","../../../projects/cms/src/lib/components/admin/entries/edit.component.ts","../../../projects/cms/src/lib/components/admin/entries/edit.component.html","../../../projects/cms/src/lib/proxy/admin/fields/field-admin.service.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.html","../../../projects/cms/src/lib/components/admin/fields/fields.component.ts","../../../projects/cms/src/lib/components/admin/fields/fields.component.html","../../../projects/cms/src/lib/components/admin/fields/create-or-update-field-input-base.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.html","../../../projects/cms/src/lib/components/admin/fields/create-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-field.component.html","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.html","../../../projects/cms/src/lib/proxy/sections/section-type.enum.ts","../../../projects/cms/src/lib/components/admin/sections/create-or-update-sections-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.html","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/form-control-group.ts","../../../projects/cms/src/lib/constants/styles.ts","../../../projects/cms/src/lib/services/appent-content.ts","../../../projects/cms/src/lib/resolvers/page-default-toolbar-actions.ts","../../../projects/cms/src/lib/resolvers/extensions-props-action-token.resolver.ts","../../../projects/cms/src/lib/cms-routing.module.ts","../../../projects/cms/src/lib/cms.module.ts","../../../projects/cms/src/public-api.ts","../../../projects/cms/src/dignite-ng-expand.cms.ts"],"sourcesContent":["import { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { BrandDto } from '../../settings/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteSettingsAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getAllLanguages = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string[]>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/all-languages',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getBrand = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, BrandDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/brand',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getDefaultLanguage = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string>({\r\n method: 'GET',\r\n responseType: 'text',\r\n url: '/api/cms-admin/site-settings/default-language',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum EntryStatus {\r\n Draft = 0,\r\n Published = 1,\r\n}\r\n\r\nexport const entryStatusOptions = mapEnumToOptions(EntryStatus);\r\n","export enum ECmsComponent {\n Entries=\"Cms.Entries\",\n Entries_Create=\"Cms.Entries.Create\",\n Entries_Edit=\"Cms.Entries.Edit\",\n Fields=\"Cms.Fields\",\n FieldsCreate=\"Cms.Fields.Create\",\n FieldsEdit=\"Cms.Fields.Edit\",\n Sites=\"Cms.Sites\",\n Sections=\"Cms.Sections\",\n SectionsCreateOrEdit=\"Cms.Sections.Create.Or.Edit\",\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UpdateListService {\n\n public updateListEvent: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n updateList() {\n this.updateListEvent.emit();\n }\n}\n","import type { CreateEntryInput, CultureExistWithSingleSectionInput, EntryDto, GetEntriesInput, MoveEntryInput, SlugExistsInput, UpdateEntryInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto, PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n activate = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/activate/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n create = (input: CreateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entries',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n cultureExistWithSingleSection = (input: CultureExistWithSingleSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/culture-exists-with-single-section',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getAllVersions = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}/all-versions`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetEntriesInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId, startPublishDate: input.startPublishDate, expiryPublishDate: input.expiryPublishDate, filter: input.filter, status: input.status, creatorId: input.creatorId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getListByIds = (sectionId: string, ids: string[], config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/search-by-ids',\r\n params: { sectionId, ids },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n move = (id: string, input: MoveEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/move/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n slugExists = (input: SlugExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/slug-exists',\r\n params: { culture: input.culture, sectionId: input.sectionId, slug: input.slug },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/entries',\r\n params: { id },\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryTypeInput, EntryTypeDto, EntryTypeNameExistsInput, UpdateEntryTypeInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryTypeAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entry-types',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: EntryTypeNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entry-types/name-exists',\r\n params: { sectionId: input.sectionId, name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateSectionInput, GetSectionsInput, SectionDto, SectionNameExistsInput, SectionRouteExistsInput, UpdateSectionInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SectionAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/sections',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetSectionsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<SectionDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections',\r\n params: { filter: input.filter, isActive: input.isActive, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: SectionNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/name-exists',\r\n params: { name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n routeExists = (input: SectionRouteExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/route-exists',\r\n params: { route: input.route },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/sections/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","\nimport { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { ListService, LIST_QUERY_DEBOUNCE_TIME, ConfigStateService, LocalizationService, PagedResultDto, ABP } from \"@abp/ng.core\";\nimport { ToasterService, ConfirmationService, Confirmation } from \"@abp/ng.theme.shared\";\nimport { Component, OnInit, inject } from \"@angular/core\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { EntryAdminService, EntryDto, GetEntriesInput } from \"../../../proxy/admin/entries\";\nimport { SectionAdminService } from \"../../../proxy/admin/sections\";\nimport { SiteSettingsAdminService } from \"../../../proxy/admin/settings\";\nimport { entryStatusOptions } from \"../../../proxy/entries\";\nimport { finalize } from \"rxjs\";\nimport { ECmsComponent } from \"../../../enums\";\nimport { UpdateListService } from \"../../../services/update-list.service\";\n\n\n\n@Component({\n selector: 'cms-entries',\n templateUrl: './entries.component.html',\n styleUrls: ['./entries.component.scss'],\n providers: [\n ListService,\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries,\n },\n ]\n})\nexport class EntriesComponent implements OnInit {\n\n constructor(\n private _EntryAdminService: EntryAdminService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private configState: ConfigStateService,\n private router: Router,\n private _LocalizationService: LocalizationService,\n ) {\n }\n\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n public readonly list = inject(ListService)\n\n\n ngOnInit(): void {\n this.getPageDate()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n\n /**站点列表 */\n // siteList: any[any] = []\n /**选择的站点id */\n // siteId: string = ''\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n\n /**版块下的语言列表 */\n sectionLanguagesList: any[any] = []\n /**版块下的条目类型列表 */\n entryTypeList: any[any] = []\n /**状态编码 */\n _entryStatusOptions = entryStatusOptions\n\n /**获取页面数据 */\n async getPageDate() {\n await this.getSiteOfSectionList()\n await this.getSectionLanguagesList()\n this.filters = this.filtersForm.value\n this.hookToQuery()\n }\n\n\n /**切换板块 */\n async sectionIdChange() {\n this.getSectionOfEntryType()\n await this.getSectionLanguagesList()\n this.resetData()\n }\n /**切换语言 */\n async cultureChange() {\n this.resetData()\n }\n\n\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.filtersForm.get('sectionId').patchValue(res.items[0]?.id || '')\n this.getSectionOfEntryType()\n resolve(res.items)\n })\n })\n }\n\n /**获取版块下的条目类型 */\n getSectionOfEntryType() {\n let sectionId = this.filtersForm.get('sectionId').value\n this.entryTypeList = this.SiteOfSectionList.find(el => el.id == sectionId)?.entryTypes || []\n }\n\n private config = inject(ConfigStateService)\n private _SiteSettingsAdminService = inject(SiteSettingsAdminService)\n /**获取版块下的语言列表 */\n getSectionLanguagesList() {\n return new Promise(async (resolve, rejects) => {\n //获取所有语言 */\n let languagesSystem = this.configState.getDeep('localization.languages')\n //获取系统默认语言 */\n let DefaultLanguage = this.config.getSetting(\"Abp.Localization.DefaultLanguage\");\n const configCmsSiteLanguages = this.config.getSetting(\"Cms.Site.Languages\")\n if(!configCmsSiteLanguages){\n await this.getSiteSettingsLanguages()\n }\n const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages\n let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName))\n //获取当前选择的语言\n let nowculture = this.filtersForm.get('culture').value\n //当前选择的语言,是否在版块的的语言列表中\n let isexist = LanguagesArray.find(el => el.cultureName == nowculture)\n this.filtersForm.get('culture').patchValue(nowculture ? isexist ? nowculture : DefaultLanguage : DefaultLanguage)\n this.sectionLanguagesList = LanguagesArray\n resolve(LanguagesArray)\n })\n }\n\n /**站点设置语言 */\n SiteSettingsAdminLanguages: any[] = []\n /**\n * 获取站点设置语言\n */\n getSiteSettingsLanguages() {\n return new Promise((resolve, rejects) => {\n this._SiteSettingsAdminService.getAllLanguages().subscribe(res => {\n this.SiteSettingsAdminLanguages = res\n resolve(res)\n })\n })\n }\n\n\n\n resetData() {\n this.filters = this.filtersForm.value\n this.list.page = 0\n this.data.items = []\n this.list.get()\n }\n\n /**新增-单个 */\n createEntriesBtn() {\n this.router.navigate(['/cms/admin/entries/create'], {\n queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }\n })\n }\n\n /**列表相关 */\n ColumnMode = ColumnMode;\n data: PagedResultDto<EntryDto> = {\n items: [],\n totalCount: 0,\n };\n\n filters = {} as GetEntriesInput;\n filtersForm: FormGroup = this.fb.group({\n siteId: [''],\n sectionId: [''],\n culture: [''],\n filter: [''],\n })\n\n hookToQuery() {\n\n const getData = (query: ABP.PageQueryParams) => this._EntryAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<EntryDto>) => {\n this.data = list\n };\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n\n /**删除条目 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n\n });\n }\n\n\n}\n","<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\" >\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateEntryInputBase {\r\n /**语言 */\r\n culture: any = ['', [Validators.required]]\r\n /**条目id */\r\n entryTypeId: any = ['']\r\n /**标题 */\r\n title: any = ['', [Validators.required]]\r\n /**别名 */\r\n slug: any = ['', [Validators.required]]\r\n /**是否是草稿 */\r\n draft: any = ['', []]\r\n /**发布时间 */\r\n publishTime: any = ['', [Validators.required]]\r\n /**上级目录 */\r\n parentId:any=[null]\r\n /**修订说明 */\r\n versionNotes:any=[null]\r\n /**版本 */\r\n initialVersionId: any = [null]\r\n extraProperties: FormGroup | undefined = new FormGroup({})\r\n constructor(data?: CreateOrUpdateEntryInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import { LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl, FormBuilder } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidatorsService {\r\n\r\n constructor() { }\r\n\r\n private fb = inject(FormBuilder);\r\n private toaster = inject(ToasterService);\r\n private _LocalizationService = inject(LocalizationService);\r\n\r\n /**检查表单- */\r\n /**检查表单- */\r\n isCheckForm(input: any,module='AbpValidation') {\r\n let keys = Object.keys(input);\r\n for (let i = 0; i < keys.length; i++) {\r\n const element = keys[i];\r\n if (input[element] == false) {\r\n let info = `\"${this._LocalizationService.instant(`${module}::${element}`)}\" `;\r\n if (element.includes('.') && !element.includes('].')) {\r\n let arr = element.split('.');\r\n info=`\"${this._LocalizationService.instant(`CmsKit::${arr[0]}`)}.${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n if (element.includes('].')) {\r\n let arr = element.split('].');\r\n let arrStart = arr[0].split('[');\r\n info=`\"${this._LocalizationService.instant(`CmsKit::${arrStart[0]}`)}[${arrStart[1]}].${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n info+= `${this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid`)}`\r\n //使用abp多语言提示\r\n this.toaster.warn(info);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**获取表单所有字段是否通过验证 */\r\n getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {\r\n let validationStatus: { [key: string]: any } = {};\r\n\r\n // 递归遍历表单组和表单控件集合\r\n const traverseForm = (form: FormGroup | FormArray, prefix = '') => {\r\n if (form instanceof FormGroup) {\r\n Object.keys(form.controls).forEach(key => {\r\n const control = form.controls[key];\r\n let displayName = key.charAt(0).toUpperCase() + key.slice(1);\r\n const fullKey = prefix ? `${prefix}.${displayName}` : displayName;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n } else if (form instanceof FormArray) {\r\n form.controls.forEach((control, index) => {\r\n const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n }\r\n };\r\n\r\n traverseForm(formEntity);\r\n\r\n return validationStatus;\r\n }\r\n\r\n}\r\n","import type { CreateOrUpdateFieldGroupInput, FieldGroupDto, GetFieldGroupsInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldGroupAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/field-groups',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldGroupsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldGroupDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/field-groups',\r\n params: { input },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { FormControlDto } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getFormControls = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<FormControlDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/dynamic-forms/forms',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FieldGroupAdminService } from '../proxy/admin/fields/field-group-admin.service';\nimport { FieldGroupDto } from '../proxy/admin/fields/models';\nimport { FormAdminService } from '../proxy/admin/dynamic-forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldAbstractsService {\n\n constructor(\n private _FieldGroupAdminService: FieldGroupAdminService,\n private _FormAdminService: FormAdminService,\n ) { }\n /**字段分组列表 */\n fieldGroupList: FieldGroupDto[] = []\n /**获取字段分组列表 */\n getfieldGroupList() {\n this._FieldGroupAdminService.getList({}).subscribe(res => {\n this.fieldGroupList = res.items\n })\n }\n\n /**表单控件类型 */\n fromControlList: any[] = []\n /**获取表单控件类型 */\n getFromControlList() {\n return new Promise((resolve, reject) => {\n this._FormAdminService.getFormControls({}).subscribe(res => {\n this.fromControlList = res.items\n resolve(res.items)\n })\n })\n }\n getExcludeAssignControl(typeName?) {\n // return this.fromControlList.filter(el => el.name !== typeName)\n return this.fromControlList\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { RestService } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmsService {\r\n apiName = 'Cms';\r\n\r\n constructor(private restService: RestService) {}\r\n\r\n sample() {\r\n return this.restService.request<void, any>(\r\n { method: 'GET', url: '/api/Cms/sample' },\r\n { apiName: this.apiName }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmsApiService {\n\n constructor(\n private titleService: Title,\n ) { }\n /**动态设置浏览器标题 */\n setBrowserTitle(title:string){\n this.titleService.setTitle(title)\n }\n \n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n // let val = value\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n}\n","\r\n\r\nimport { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport class SimpleReuseStrategy implements RouteReuseStrategy {\r\n static cacheRouters = new Map<string, DetachedRouteHandle>();\r\n\r\n public static deleteRouteCache(url): void {\r\n if (SimpleReuseStrategy.cacheRouters.has(url)) {\r\n const handle: any = SimpleReuseStrategy.cacheRouters.get(url);\r\n try {\r\n handle.componentRef.destory();\r\n } catch (e) { }\r\n SimpleReuseStrategy.cacheRouters.delete(url);\r\n }\r\n }\r\n\r\n public static deleteAllRouteCache(): void {\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n }\r\n\r\n // one 进入路由触发,是否同一路由时复用路由\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot,): boolean {\r\n return future.routeConfig === curr.routeConfig &&\r\n JSON.stringify(future.params) === JSON.stringify(curr.params);\r\n }\r\n\r\n // 获取存储路由\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n const url = this.getFullRouteURL(route);\r\n if (route.data.keep && SimpleReuseStrategy.cacheRouters.has( url) ) {\r\n return SimpleReuseStrategy.cacheRouters.get(url);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // 是否允许复用路由\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return Boolean(route.data.keep);\r\n }\r\n // 当路由离开时会触发,存储路由\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const url = this.getFullRouteURL(route);\r\n // 先把之前缓存的删除,\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n SimpleReuseStrategy.cacheRouters.set(url, handle);\r\n }\r\n // 是否允许还原路由\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n const url = this.getFullRouteURL(route);\r\n return Boolean(route.data.keep) && SimpleReuseStrategy.cacheRouters.has(url);\r\n }\r\n\r\n // 获取当前路由url\r\n private getFullRouteURL(route: ActivatedRouteSnapshot): string {\r\n const { pathFromRoot } = route;\r\n let fullRouteUrlPath: string[] = [];\r\n pathFromRoot.forEach((item: ActivatedRouteSnapshot) => {\r\n fullRouteUrlPath = fullRouteUrlPath.concat( this.getRouteUrlPath(item) );\r\n });\r\n return `/${fullRouteUrlPath.join('/')}`;\r\n\r\n }\r\n private getRouteUrlPath(route: ActivatedRouteSnapshot) {\r\n return route.url.map(urlSegment => urlSegment.path);\r\n }\r\n\r\n \r\n}","import { ConfigStateService, LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { AfterContentInit, Component, inject, Input, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { Observable } from 'rxjs';\nimport { DatePipe, Location } from '@angular/common';\nimport { CmsApiService } from '../../../services';\n\n@Component({\n selector: 'cms-create-or-edit-entries',\n templateUrl: './create-or-edit-entries.component.html',\n styleUrls: ['./create-or-edit-entries.component.scss']\n})\nexport class CreateOrEditEntriesComponent implements AfterContentInit {\n\n\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private configState: ConfigStateService,\n private _SectionAdminService: SectionAdminService,\n private _EntryAdminService: EntryAdminService,\n private datePipe: DatePipe,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) { }\n\n\n /**语言 */\n cultureName: string = ''\n /**条目类型id */\n entryTypeId: string = ''\n\n /**新建版本的版本id,同条目id */\n RevisionEntryId: any = ''\n /**选择的条目项 */\n entryTypesItem: any = ''\n /**版块id */\n sectionId: string = ''\n /**版块详情 */\n SectionSelect: any = ''\n /**语言列表 */\n languagesList: any[] = []\n /**条目类型列表-用于选择上级条目 */\n entryTypesList: any[] = []\n /**版本列表 */\n AllVersionsList: any[] = []\n\n /**是否是编辑 */\n @Input() isEdit = false\n\n /**来自父组件的传值 */\n FromParentQueryParams: any = ''\n @Input()\n public set ParentQueryParams(v: any) {\n if (v) {\n this.FromParentQueryParams = v;\n }\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n }\n }\n /**指定id的条目信息 */\n entrySelect: any = ''\n @Input()\n public set parentEntrySelect(v: any) {\n if (v) {\n let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties))\n v.extraProperties = V_extraProperties\n this.entrySelect = v;\n }\n }\n /**将对象中的ExtraProperties赋值到extraProperties */\n convertExtraProperties(obj) {\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key].forEach(item => {\n if (item.hasOwnProperty('ExtraProperties')) {\n item['extraProperties'] = item['ExtraProperties'];\n }\n });\n }\n }\n return obj;\n }\n\n /**别名表单实体 */\n get sluginput() {\n return this._entity.get('slug')\n }\n /**语言表单实体 */\n get cultureinput() {\n return this._entity.get('culture')\n }\n /**语言表单实体影子 */\n get culture_shadowInput() {\n return this._entity.get('culture_shadow')\n }\n\n /**extraProperties配置表单实体 */\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n async ngAfterContentInit(): Promise<void> {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n let queryParams = this.FromParentQueryParams\n if (this._entity && this.FromParentQueryParams) {\n this._entity.setControl('slug', new FormControl('', {\n validators: Validators.required,\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n }))\n this._entity.setControl('culture_shadow', new FormControl('', {\n validators: [Validators.required],\n asyncValidators: this.cultureAsyncValidator_test(),\n }))\n this._entity.get('culture').disable();\n if (queryParams.RevisionEntryId && this.entrySelect) {\n this.RevisionEntryId = queryParams.RevisionEntryId\n this.setEntryconfig(this.entrySelect);\n } else {\n this.setEntryconfig(queryParams);\n }\n if (this.sectionId) await this.getSectionSelect();\n if (this.RevisionEntryId) await this.getAllVersionsList()\n\n }\n\n\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChildren('FormDynamicontrolRef', { read: ViewContainerRef }) FormDynamicontrolRef: QueryList<ViewContainerRef>;\n\n\n\n\n\n /**定义自定义异步验证 */\n cultureAsyncValidator_test() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subculture = this._entity?.get('culture').value\n if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {\n resolve(null);\n return\n }\n this._EntryAdminService.cultureExistWithSingleSection({\n culture: subculture,\n sectionId: this.sectionId,\n entryTypeId: this.entryTypeId\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n /** \n * 设置条目详情 \n * @param {object} source - 数据源对象 \n */\n setEntryconfig(source: any) {\n this.entryTypeId = source.entryTypeId;\n this.cultureName = source.culture || source.cultureName;\n this.sectionId = source.sectionId;\n }\n time: number = 0\n\n /**定义自定义异步验证 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this._entity?.get('slug').value\n if (subslug == this.entrySelect?.slug) {\n resolve(null);\n return\n }\n this._EntryAdminService.slugExists({\n culture: this.cultureName,\n sectionId: this.sectionId,\n slug: subslug\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n private config = inject(ConfigStateService)\n\n /**获取版块详情 */\n getSectionSelect() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {\n let languages = this.configState.getDeep('localization.languages')\n this.languagesList = languages\n let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId)\n this.SectionSelect = res\n await this.getTypeEntryList()\n this.entryTypesItem = entryTypesItem\n this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId)\n this._entity.patchValue({\n ...this.entrySelect,\n initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',\n culture: this.cultureName,\n culture_shadow: this.cultureName,\n entryTypeId: this.entryTypeId,\n publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),\n })\n resolve(true)\n })\n })\n }\n /**获取条目类型下所有条目列表 */\n getTypeEntryList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n sectionId: this.sectionId,\n maxResultCount: 1000,\n culture: this.cultureName\n }).subscribe((res: any) => {\n let entryTypesList = res.items.filter(el => el.id != this.entrySelect.id)\n let parentList = entryTypesList.filter(el => !el.parentId)\n parentList.forEach(el => {\n let layer: number = 0\n el.layer = new Array(layer)\n el.children = this.groupByParentId(entryTypesList, el.id, (layer + 1))\n })\n this.entryTypesList = parentList\n resolve(res)\n })\n })\n }\n\n /**对数组按照父子关系进行分组 */\n groupByParentId(arr, id = '', layer) {\n let result = [];\n result = arr.filter(el => el.parentId == id)\n result.forEach(el => {\n el.layer = new Array(layer)\n el.children = this.groupByParentId(arr, el.id, (layer + 1))\n })\n return result\n }\n\n\n\n /**获取条目版本列表 */\n getAllVersionsList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {\n this.AllVersionsList = res.items\n resolve(res)\n })\n })\n }\n\n /**标题转化别名 */\n setTitleToSlugBlur(event) {\n let val = event.target.value\n let slug = this._entity.get('slug')\n let pinyinstr = ''\n if (slug.value) return\n pinyinstr = this._CmsApiService.chineseToPinyin(val)\n this._entity.patchValue({\n slug: pinyinstr || val\n })\n }\n /**使用Unicode编码范围判断是否是中文字符 */\n isChinese(str) {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n\n /**激活 */\n ActivatedVersion(VersionId) {\n this._EntryAdminService.activate(VersionId).subscribe((res) => {\n this.AllVersionsList.forEach(el => {\n el.isActivatedVersion = el.id === VersionId\n })\n return\n })\n }\n /**编辑版本 */\n toEditUrl(id) {\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries/${id}/edit`]);\n });\n }\n /**删除版本 */\n delectVersion(vid) {\n this._EntryAdminService.delete(vid).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.getAllVersionsList()\n })\n }\n\n}\n","<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\" *ngIf=\"SectionSelect.type===1\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.title}}</option>\n <ng-container *ngFor=\"let el of item.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n <ng-template #childTemplate let-data>\n <option [value]=\"data.value.id\">\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\n {{data.value.title}}</option>\n <ng-container *ngFor=\"let el of data.value.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n </ng-container>\n\n </ng-template>\n </ng-container>\n\n </ng-container>\n </select>\n\n\n\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd\n HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n@Component({\n selector: 'cms-create',\n templateUrl: './create.component.html',\n styleUrls: ['./create.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Create,\n },\n ]\n})\nexport class CreateComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService,\n ) { }\n private fb=inject(FormBuilder)\n private _updateListService=inject(UpdateListService)\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**是否是草稿 */\n draftType: boolean = false\n /**页面传值用于传递到子组件 */\n queryParams: any = ''\n\n /**指定id的条目信息 */\n entrySelect: any = ''\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n this.queryParams = this.route.snapshot.queryParams\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase())\n if(this.queryParams.RevisionEntryId) await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res\n \n resolve(res)\n })\n })\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft\n })\n this.newEntity.get('culture').enable();\n let input = this.newEntity.value\n input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString()\n input.culture=this.newEntity.get('culture').value\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return\n this._EntryAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._updateListService.updateList();\n })\n }\n isSubmit:boolean=false;\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.isSubmit = true\n this.draftType = type\n this.submitclick.nativeElement.click()\n }\n /**返回上一页 */\n backTo() {\n this._location.back()\n }\n\n\n\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>","/* eslint-disable @angular-eslint/use-lifecycle-interface */\n\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-edit',\n templateUrl: './edit.component.html',\n styleUrls: ['./edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Edit,\n },\n ],\n})\nexport class EditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService\n ) {}\n private fb = inject(FormBuilder);\n private _updateListService = inject(UpdateListService);\n \n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**是否是草稿 */\n draftType: boolean = false;\n\n /**页面传值用于传递到子组件 */\n queryParams: any = {};\n\n /**指定id的条目信息 */\n entrySelect: any = '';\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit() {\n this.queryParams.RevisionEntryId = this.route.snapshot.params.entrieId;\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());\n await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res;\n resolve(res);\n });\n });\n }\n\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft,\n });\n this.newEntity.get('culture').enable();\n let input = this.newEntity.value;\n input.publishTime = new Date(\n new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000\n ).toISOString();\n input.culture = this.newEntity.get('culture').value;\n input.concurrencyStamp = this.entrySelect.concurrencyStamp;\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return;\n this._EntryAdminService.update(this.entrySelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.backTo()\n this._updateListService.updateList();\n });\n }\n isSubmit:boolean=false;\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type;\n this.isSubmit=true;\n this.submitclick.nativeElement.click();\n }\n /**返回上一页 */\n backTo() {\n this._location.back();\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit' | abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" [isEdit]=\"true\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>","import type { CreateFieldInput, FieldDto, GetFieldsInput, UpdateFieldInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/fields',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/fields',\r\n params: { filter: input.filter, groupId: input.groupId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/name-exists/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/fields/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, EventEmitter, inject, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { FieldGroupAdminService } from '../../../proxy/admin/fields';\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\nimport { finalize} from 'rxjs/operators';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n@Component({\n selector: 'cms-field-group',\n templateUrl: './field-group.component.html',\n styleUrls: ['./field-group.component.scss']\n})\nexport class FieldGroupComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n private _FieldGroupAdminService: FieldGroupAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n public _FieldAbstractsService: FieldAbstractsService,\n public _LocalizationService: LocalizationService,\n ) { }\n\n\n /**创建分组表单 */\n createForm: FormGroup | undefined;\n\n /** 编辑分组表单*/\n editGroupForm: FormGroup | undefined;\n\n /**表单已存在的值 */\n selected = {} as any;\n\n /**选择的字段分组id */\n fieldGroupId: string | undefined = ''\n\n /**创建分组模态框状态 */\n createGroupOpen = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**编辑分组模态框状态 */\n editGroupOpen: boolean = false\n\n /**点击分组回调 */\n @Output() OnGroupClickBack = new EventEmitter();\n\n ngOnInit(): void {\n this._FieldAbstractsService.getfieldGroupList()\n }\n\n /**创建字段分组 */\n createGroupBtn() {\n this.createGroupOpen = true;\n this.formValidation='';\n this.createForm = this.fb.group({\n name: ['', [Validators.required]],\n })\n }\n\n /**创建分组模态框状态改变 */\n createGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**编辑字段分组 */\n editGroupBtn(itemName: string) {\n this.editGroupOpen = true;\n this.formValidation='';\n this.editGroupForm = this.fb.group({\n name: [itemName, [Validators.required]],\n })\n }\n\n /**编辑分组模态框状态改变 */\n editGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n\n /**创建字段分组保存 */\n createSave() {\n let input = this.createForm.value;\n this.modalBusy = true;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n this._FieldGroupAdminService.create(input).pipe(finalize(() => {\n this.modalBusy = false;\n this.createGroupOpen = false;\n this.formValidation='';\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**编辑字段分组保存 */\n editSave() {\n let input = this.editGroupForm.value;\n this.modalBusy = true;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n this._FieldGroupAdminService.update(this.fieldGroupId, input).pipe(finalize(() => {\n this.modalBusy = false;\n this.editGroupOpen = false;\n this.formValidation='';\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**删除字段分组1 */\n deleteGroupbtn(fieldGroupitem: any) {\n this.confirmation.warn(\n fieldGroupitem.name,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldGroupAdminService.delete(this.fieldGroupId).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.fieldGroupId = ''\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n });\n }\n\n /**字段分组改变 */\n fieldGroupChange(event) {\n this.fieldGroupId = event\n this.OnGroupClickBack.emit(event)\n }\n\n}\n\n\n","<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","\nimport { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { ListService, LIST_QUERY_DEBOUNCE_TIME, LocalizationService, PagedResultDto, ABP } from \"@abp/ng.core\";\nimport { ToasterService, ConfirmationService, Confirmation } from \"@abp/ng.theme.shared\";\nimport { Component, OnInit, inject } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { FieldAdminService, FieldDto, GetFieldsInput } from \"../../../proxy/admin/fields\";\nimport { finalize } from \"rxjs\";\nimport { ECmsComponent } from \"../../../enums\";\nimport { UpdateListService } from \"../../../services/update-list.service\";\n\n@Component({\n selector: 'cms-fields',\n templateUrl: './fields.component.html',\n styleUrls: ['./fields.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Fields,\n },\n ]\n})\nexport class FieldsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n ) {\n \n }\n private _UpdateListService=inject(UpdateListService)\n /**表格单元格布局类型 */\n ColumnMode = ColumnMode;\n\n /**表格数据 */\n data: PagedResultDto<FieldDto> = {\n items: [],\n totalCount: 0,\n };\n\n /**过滤器 */\n filters = {} as GetFieldsInput;\n\n ngOnInit(): void {\n this.hookToQuery()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n getData(){\n this.list.get()\n }\n\n\n /**字段分组选择回调 */\n fieldGroupChange(event) {\n this.filters.groupId = event\n this.list.page=0\n this.list.get()\n }\n\n\n\n /**使用abp的list获取表格的字段数据列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._FieldAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<FieldDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n /**新建字段按钮 */\n toFieldsCreateBtn() {\n this.router.navigate(['/cms/admin/fields/create'],\n {\n queryParams: {}\n }\n )\n }\n\n /**删除字段 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n });\n }\n}\n","<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value|date:'YYYY/MM/dd HH:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateFieldInputBase {\r\n /**分组id */\r\n groupId: any = ['', []];\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = [undefined, [Validators.required]];\r\n\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: CreateOrUpdateFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n","import { Component, ElementRef, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { LocalizationService } from '@abp/ng.core';\n@Component({\n selector: 'cms-create-or-edit-field',\n templateUrl: './create-or-edit-field.component.html',\n styleUrls: ['./create-or-edit-field.component.scss']\n})\nexport class CreateOrEditFieldComponent {\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormDynamicRef', { read: ViewContainerRef, static: true }) FormDynamicRef: ViewContainerRef;\n \n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n constructor(\n public _FieldAbstractsService: FieldAbstractsService,\n private _CmsApiService: CmsApiService,\n private _FieldAdminService: FieldAdminService,\n private _LocalizationService: LocalizationService,\n \n ) {\n if (this._FieldAbstractsService.fieldGroupList.length == 0) {\n this._FieldAbstractsService.getfieldGroupList()\n }\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup | undefined) {\n if (v) {\n this._Entity = v;\n this.dataLoaded();\n }\n }\n get formControlName() {\n return this._Entity.get('formControlName')\n }\n /**选择的表单信息 */\n _selected_copy:any\n _selected: any\n @Input()\n public set selected(v: any) {\n if(v) {\n this._selected = v || '';\n this._selected_copy=v\n this.dataLoaded()\n }\n \n }\n\n\n async dataLoaded() {\n if (this._FieldAbstractsService.fromControlList.length == 0) {\n await this._FieldAbstractsService.getFromControlList()\n }\n \n if (this._Entity) {\n if (!this.formControlName.value) {\n this._Entity.patchValue({\n formControlName: this._FieldAbstractsService.fromControlList[0]?.name,\n })\n }\n this._Entity.setControl('name', new FormControl(this.nameInput.value||'', {\n validators: Validators.required,\n asyncValidators: [this.repetitionAsyncValidator()] ,\n updateOn: 'change'\n }))\n this.submitclick?.nativeElement?.click()\n }\n }\n\n\n /**name表单控件 */\n get nameInput() {\n return this._Entity.get('name')\n }\n\n nameInputBlur(event){\n let value = event.target.value\n this.nameInput.patchValue(value)\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**定义异步验证方法 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n if (ctrl.value == this._selected?.name||!ctrl.value) {\n resolve(null);\n return\n }\n this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n formControlNameChange(event){\n // this._selected='';\n }\n\n}\n","<form [formGroup]=\"_Entity\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { CmsApiService } from '../../../services';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-create-field',\n templateUrl: './create-field.component.html',\n styleUrls: ['./create-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsCreate,\n },\n ]\n})\nexport class CreateFieldComponent {\n \n constructor(\n private fb: FormBuilder,\n public _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n \n ) { }\n private _UpdateListService=inject(UpdateListService)\n \n /**表单实体 */\n newEntity: FormGroup | undefined \n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n this.newEntity= this.fb.group(new CreateOrUpdateFieldInputBase())\n }\n\n /**触发提交按钮 */\n submitclickBtn(){\n this.isSubmit=true;\n this.submitclick.nativeElement.click()\n }\n isSubmit:boolean=false;\n\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n // if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n\n if (!this.newEntity.valid) return\n this._FieldAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n })\n }\n\n}\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { FieldAbstractsService, CmsApiService } from '../../../services';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n@Component({\n selector: 'cms-edit-field',\n templateUrl: './edit-field.component.html',\n styleUrls: ['./edit-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsEdit,\n },\n ],\n})\nexport class EditFieldComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n public _FieldAbstractsService: FieldAbstractsService,\n public _FieldAdminService: FieldAdminService,\n private route: ActivatedRoute,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**字段id */\n fieldId: string = '';\n\n /**字段详情 */\n fieldDetails: any;\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n const _fieldId = this.route.snapshot.params.id;\n if (_fieldId) {\n this.fieldId = _fieldId;\n this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());\n await Promise.all([this._FieldAbstractsService.getFromControlList(), this.getFieldEdit()]);\n this.newEntity.patchValue({\n ...this.fieldDetails,\n formConfiguration: this.fieldDetails.formConfiguration,\n });\n }\n }\n\n /**获取字段详情 */\n getFieldEdit() {\n return new Promise((resolve, reject) => {\n this._FieldAdminService.get(this.fieldId).subscribe(res => {\n res.groupId = res.groupId ? res.groupId : '';\n this.fieldDetails = res;\n resolve(res);\n });\n });\n }\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.isSubmit = true;\n this.submitclick.nativeElement.click();\n }\n private _UpdateListService = inject(UpdateListService);\n isSubmit: boolean = false;\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n /**保存表单 */\n save() {\n let input = this.newEntity.value;\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return;\n this._FieldAdminService.update(this.fieldId, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <!-- <div class=\"p-3 bg-white rounded-1\"> -->\n <div class=\"card\">\n <div class=\"card-body\">\n <ng-container *ngIf=\"newEntity&&fieldDetails\">\n <cms-create-or-edit-field [Entity]=\"newEntity\"\n [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </ng-container>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum SectionType {\r\n Single = 0,\r\n Structure = 1,\r\n Channel = 2,\r\n}\r\n\r\nexport const sectionTypeOptions = mapEnumToOptions(SectionType);\r\n","\r\nimport {Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateSectionsInputBase {\r\n /**版块类型 */\r\n type: any = [0, [Validators.required]];\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n route: any = ['', [Validators.required]];\r\n /**页面模板 */\r\n template: any = ['', [Validators.required]];\r\n /**是否默认 */\r\n isDefault: any = [false, []];\r\n /**是否激活 */\r\n isActive: any = [true, []];\r\n \r\n\r\n\r\n constructor(data?: CreateOrUpdateSectionsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport {\n ABP,\n LIST_QUERY_DEBOUNCE_TIME,\n ListService,\n LocalizationService,\n PagedResultDto,\n} from '@abp/ng.core';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { ECmsComponent } from '../../../enums';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { SectionAdminService, EntryTypeAdminService, GetSectionsInput, SectionDto } from '../../../proxy/admin/sections';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '../../../services/update-list.service';\n\nimport { ColumnMode } from '@swimlane/ngx-datatable';\nimport { SectionType, sectionTypeOptions } from '../../../proxy/sections';\nimport { finalize, Observable } from 'rxjs';\nimport { CreateOrUpdateSectionsInputBase } from './create-or-update-sections-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-sections',\n templateUrl: './sections.component.html',\n styleUrls: ['./sections.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sections,\n },\n ],\n})\nexport class SectionsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private fb: FormBuilder,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n private _UpdateListService = inject(UpdateListService);\n siteList: any[] = [];\n ColumnMode = ColumnMode;\n data: PagedResultDto<SectionDto> = { items: [], totalCount: 0 };\n filters = {} as GetSectionsInput;\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) =>\n this._SectionAdminService.getList({ ...query, ...this.filters });\n const setData = (list: PagedResultDto<SectionDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n async ngOnInit(): Promise<void> {\n this.hookToQuery();\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get();\n });\n }\n siteIdChange() {\n this.list.page = 0;\n this.list.get();\n }\n visibleOpen: boolean = false;\n modalBusy: boolean = false;\n createOrEditForm: FormGroup | undefined;\n selected: any;\n _SectionType = SectionType;\n _sectionTypeOptions = sectionTypeOptions;\n @ViewChild('createOrEditModalSubmitBtn', { static: false })\n createOrEditModalSubmitBtn: ElementRef;\n VisibleChange(event) {\n if (!event) {\n this.selected = '';\n return;\n }\n }\n createSectionBtn() {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n }\n editSectionBtn(row) {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n this._SectionAdminService.get(row.id).subscribe(res => {\n this.createOrEditForm.patchValue(res);\n this.selected = res;\n });\n }\n deleteEntryType(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryTypeAdminService\n .delete(row.id)\n .pipe(finalize(() => {}))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n createOrEditSave() {\n if (this.selected) {\n return this.EditSave();\n }\n this.createSave();\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n createSave() {\n let input = this.createOrEditForm.value;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createOrEditForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .create(input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n EditSave() {\n setTimeout(() => {\n let input = this.createOrEditForm.value;\n input.concurrencyStamp = this.selected.concurrencyStamp;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createOrEditForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .update(this.selected.id, input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }, 100);\n }\n deletefield(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._SectionAdminService\n .delete(row.id)\n .pipe(finalize(() => {}))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n get displayNameInput() {\n return this.createOrEditForm.get('displayName');\n }\n get nameInput() {\n return this.createOrEditForm.get('name');\n }\n get routeInput() {\n return this.createOrEditForm.get('route');\n }\n get templateInput() {\n return this.createOrEditForm.get('template');\n }\n get typeInput() {\n return this.createOrEditForm.get('type');\n }\n radiochange() {\n this.routeInput.patchValue(this.routeInput.value);\n }\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n let routeInput = this.routeInput;\n let templateInput = this.templateInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n if (routeInput.value) return;\n routeInput.patchValue(pinyin + (this.typeInput.value === 0 ? '' : '/{slug}'));\n if (templateInput.value) return;\n templateInput.patchValue(pinyin + '/index');\n }\n setAsyncValidatorsFn() {\n this.createOrEditForm.setControl(\n 'name',\n new FormControl(this.nameInput.value || '', {\n validators: Validators.required,\n asyncValidators: this.nameRepetitionAsyncValidator(),\n })\n );\n this.createOrEditForm.setControl(\n 'route',\n new FormControl(this.routeInput.value || '', {\n validators: [Validators.required, this.forbiddenNameValidator()],\n asyncValidators: [this.routeRepetitionAsyncValidator()],\n })\n );\n }\n forbiddenNameValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let inputValue = control.value.toLocaleLowerCase();\n let forbidden =\n this.typeInput.value == 0 ? false : inputValue.includes('{slug}') ? false : true;\n return forbidden\n ? {\n repetition: this._LocalizationService.instant(\n `Cms::RouteVerificationTips`,\n this._LocalizationService.instant(\n `Cms::Enum:SectionType:` + SectionType[this.typeInput.value]\n ),\n '{slug}'\n ),\n }\n : null;\n };\n }\n nameRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('name');\n if (subslug.value == this.selected?.name) {\n resolve(null);\n return;\n }\n this._SectionAdminService.nameExists({ name: subslug.value }).subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionName{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n routeRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('route').value;\n if (subslug == this.selected?.route) {\n resolve(null);\n return;\n }\n this._SectionAdminService.routeExists({ route: subslug }).subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionRoute{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n}\n","<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}:</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">是</option>\n <option [value]=\"false\">否</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormArray, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrEditEntryTypeInputBase {\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n fieldTabs: any = new FormArray([])\r\n \r\n constructor(data?: CreateOrEditEntryTypeInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldTabsBase {\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n fields?: any = [[], []]\r\n constructor(data?: fieldTabsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldsBase {\r\n /**字段id Unique Name*/\r\n fieldId: any = ['', [Validators.required]];\r\n /**显示名称 Unique Name*/\r\n displayName: any = ['', [Validators.required]];\r\n /**必填 Unique Name*/\r\n required: any = [false, []];\r\n /**是否在列表中显示 Unique Name*/\r\n showOnList: any = [false, []];\r\n\r\n constructor(data?: fieldsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class fieldsInputBase {\r\n /**字段id */\r\n fieldId = ['', [Validators.required]];\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 Unique Name*/\r\n required: any = [false, []];\r\n /**在列表中展示 Unique Name*/\r\n showOnList: any = [false, []];\r\n constructor(data?: fieldsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n","import { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { LocalizationService } from \"@abp/ng.core\";\nimport { ToasterService } from \"@abp/ng.theme.shared\";\nimport { Component, ElementRef, inject, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormArray } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { FieldGroupAdminService, FieldAdminService } from \"../../../../proxy/admin/fields\";\nimport { EntryTypeAdminService } from \"../../../../proxy/admin/sections\";\nimport { CmsApiService } from \"../../../../services\";\nimport { UpdateListService } from \"../../../../services/update-list.service\";\nimport { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from \"./create-or-edit.-entry-type-input-base\";\nimport { Location } from '@angular/common';\nimport { ECmsComponent } from \"../../../../enums\";\nimport { ValidatorsService } from \"../../../../services/validators.service\";\n@Component({\n selector: 'cms-create-or-edit',\n templateUrl: './create-or-edit.component.html',\n styleUrls: ['./create-or-edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.SectionsCreateOrEdit,\n },\n ],\n})\nexport class CreateOrEditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n public _FieldGroupAdminService: FieldGroupAdminService,\n public _FieldAdminService: FieldAdminService,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n private fb = inject(FormBuilder);\n private _UpdateListService = inject(UpdateListService);\n /**表单实体 */\n newEntity: FormGroup | undefined = this.fb.group(new CreateOrEditEntryTypeInputBase());\n /**版块id */\n sectionId: string = '';\n /**条目类型id */\n entryTypesId: string = '';\n /**条目类型详情 */\n entryTypesSelect: any;\n\n get fieldTabs() {\n return this.newEntity.get('fieldTabs') as FormArray;\n }\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click();\n }\n ngOnInit() {\n let sectionId = this.route.snapshot.params.sectionsId;\n this.entryTypesId = this.route.snapshot.params.entryTypesId || '';\n if (sectionId) {\n this.sectionId = sectionId;\n this.addControlToFieldTabs();\n this.getFieldGroup();\n }\n }\n\n /**给fieldTabs添加新控件 */\n addControlToFieldTabs(nameValue = '') {\n const newFormGroup = this.fb.group(\n new fieldTabsBase({\n name:\n this.fieldTabs.length === 0\n ? this._LocalizationService.instant(`Cms::FieldTab`)\n : nameValue,\n })\n );\n this.fieldTabs.push(newFormGroup);\n this.resultSource.push(newFormGroup.value);\n this.navActive = this.resultSource.length - 1;\n }\n\n /**获取字段分组 */\n getFieldGroup() {\n this._FieldGroupAdminService.getList({}).subscribe(async res => {\n let fieldList: any = await this.getFieldList();\n let fieldGroupList = res.items;\n fieldGroupList.unshift({\n id: null,\n name: 'UngroupedFields',\n });\n fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id);\n });\n this.fieldGroupList = fieldGroupList;\n this.fieldList = this.deepClone(fieldList);\n let entryTypesId = this.entryTypesId;\n if (entryTypesId) {\n this.entryTypesId = entryTypesId;\n this.getEntryTypes();\n }\n });\n }\n /**获取条目类型详情 */\n getEntryTypes() {\n let fieldList: any = this.deepClone(this.fieldList);\n this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {\n res.fieldTabs.forEach(el => {\n el.fields.forEach((eld: any) => {\n eld.id = eld.fieldId;\n eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;\n this.formRightGroup.push(eld);\n let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);\n fieldList.splice(fieldindex, 1);\n });\n });\n this.fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id);\n });\n this.newEntity.patchValue(res);\n this.entryTypesSelect = res;\n this.resultSource = res.fieldTabs;\n });\n }\n /**\n * 深拷贝--方法\n * $api.deepClone() */\n deepClone(obj: any) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n /**\n *\n * @param nameValue 获取所有字段\n */\n getFieldList() {\n return new Promise((resolve, rejects) => {\n this._FieldAdminService\n .getList({\n maxResultCount: 1000,\n })\n .subscribe((res: any) => {\n res.items.forEach(el => {\n el.required = false;\n el.showOnList = false;\n });\n resolve(res.items);\n });\n });\n }\n\n /**\n * 拖拽 功能*/\n /**数据源 */\n /**数据源-字段分组数据-包含字段数据 fields */\n fieldGroupList: any[] = [];\n /**数据源-所有字段列表 */\n fieldList: any[] = [];\n /**数据源拖拽的分组下标 */\n DataSourceGroupIndex: number;\n /**数据源拖拽的字段下标 */\n DataSourceFieldIndex: number;\n /**目标源 结果*/\n resultSource: any[] = [];\n\n /**从数据源拖拽的元素 */\n fromDataSourceDragEl: any;\n /**从目标源拖拽的元素 */\n fromResultSourceDragEl: any;\n\n /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */\n formRightGroup: any[] = [];\n /**从数据源开始拖拽 */\n fromDataSourceDragStart(element, fieldIndex, groupIndex) {\n this.fromDataSourceDragEl = element;\n this.DataSourceFieldIndex = fieldIndex;\n this.DataSourceGroupIndex = groupIndex;\n this.fromResultSourceDragEl = undefined;\n }\n /**从目标源开始拖拽 */\n fromResultSourceDragStart(element) {\n this.fromResultSourceDragEl = element;\n this.fromDataSourceDragEl = undefined;\n this.DataSourceFieldIndex = undefined;\n this.DataSourceGroupIndex = undefined;\n }\n /**拖拽到数据源时触发 */\n dragToDataSourceDropped() {\n //从数据源拖拽到数据源-排序\n if (this.fromDataSourceDragEl) {\n }\n let _fromResultSourceDragEl = this.fromResultSourceDragEl;\n let formRightGroup = this.deepClone(this.formRightGroup);\n let fieldList = this.deepClone(this.fieldList);\n\n if (_fromResultSourceDragEl) {\n //移动\n //从目标源拖拽到数据源\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(\n el => el.id == _fromResultSourceDragEl.id\n );\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);\n formRightGroup.splice(\n formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id),\n 1\n );\n this.fieldGroupList.forEach(el => {\n if (el.id == _fromResultSourceDragEl.groupId) {\n const elFieldsAll = fieldList.filter(els => els.groupId === el.id);\n el.fields = elFieldsAll.filter(\n item => !formRightGroup.some(itemB => item.id === itemB.id)\n );\n }\n });\n this.formRightGroup = formRightGroup;\n }\n\n this.setfieldTabsFrom();\n }\n /**拖拽到目标源时触发\n *\n */\n dragToResultSourceDropped(fieldTabstem: any, fieldTabsIndex) {\n const _fromDataSourceDragEl = this.fromDataSourceDragEl;\n //从数据源拖拽到目标源\n if (_fromDataSourceDragEl) {\n this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1);\n this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl);\n this.formRightGroup.push(_fromDataSourceDragEl);\n }\n\n this.setfieldTabsFrom();\n }\n /** 从目标源拖拽到目标源*/\n dragToResultSourceItemDropped(fieldsIndex) {\n const _fromResultSourceDragEl = this.fromResultSourceDragEl;\n if (_fromResultSourceDragEl) {\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(\n el => el.id == _fromResultSourceDragEl.id\n );\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);\n this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl);\n }\n this.setfieldTabsFrom();\n }\n /**设置formA表单 */\n setfieldTabsFrom() {\n let setArray = [];\n this.resultSource.forEach(el => {\n let fieldsArray = [];\n el.fields.forEach(item => {\n fieldsArray.push({\n fieldId: item.id || item.fieldId,\n displayName: item.displayName,\n required: item?.required,\n showOnList: item?.showOnList,\n });\n });\n setArray.push({\n name: el.name,\n fields: fieldsArray,\n });\n });\n this.newEntity.patchValue({\n fieldTabs: setArray,\n });\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value;\n\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n \n if (this.entryTypesSelect) {\n this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n return;\n }\n input.sectionId = this.sectionId;\n this._EntryTypeAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n }\n /**编辑Tabs表单 */\n editFieldTabsFrom: FormGroup | undefined;\n /**模态框状态 */\n visibleTabsOpen: boolean = false;\n /**是否是忙碌状态 */\n modalBusy: boolean = false;\n /**正在编辑的tabs */\n editFieldTabsSelect: any;\n /**正在选中的nav */\n navActive: any = 0;\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('editFieldTabsModalSubmitBtn', { static: false })\n editFieldTabsModalSubmitBtn: ElementRef;\n\n /**模态框状态改变回调 */\n VisibleTabsChange(event) {\n if (!event) {\n this.editFieldTabsSelect = '';\n return;\n }\n }\n /**新建增加FieldTabs */\n addFieldTabs() {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());\n this.visibleTabsOpen = true;\n }\n /**正在编辑的tab下标 */\n newEditFieldTabsIndex: number;\n /**编辑FieldTabs */\n editFieldTabs(item, i) {\n this.editFieldTabsFrom = this.fb.group(\n new fieldTabsBase({\n name: item.name,\n })\n );\n this.editFieldTabsSelect = item;\n this.visibleTabsOpen = true;\n this.newEditFieldTabsIndex = i;\n }\n\n /**保存编辑tabs表单 */\n editFieldTabsSave() {\n //编辑\n if (this.editFieldTabsSelect) {\n this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name;\n this.navActive = this.newEditFieldTabsIndex;\n } else {\n //新建\n this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);\n }\n this.visibleTabsOpen = false;\n this.setfieldTabsFrom();\n }\n /**删除某个tabs表单 */\n deleteFieldTabs(index) {\n this.fieldTabs.removeAt(index);\n this.resultSource.splice(index, 1);\n }\n\n /**编辑字段模态框状态 */\n visibleEditFieldOpen: boolean = false;\n /**编辑字段模态框表单 */\n editFieldFrom: FormGroup | undefined;\n /**表单控件模板-动态赋值表单控件-编辑字段 */\n @ViewChild('editFieldModalSubmitBtn', { static: false }) editFieldModalSubmitBtn: ElementRef;\n /**正在编辑的字段下标 */\n EditFieldIndex: number;\n /**编辑字段模态框状态状态改变回调 */\n VisibleEditFieldChange(event) {\n if (!event) {\n this.EditFieldIndex = undefined;\n return;\n }\n }\n /**打开编辑字段模态框 */\n EditFieldModalOpen(items, elIndex) {\n this.visibleEditFieldOpen = true;\n this.EditFieldIndex = elIndex;\n this.editFieldFrom = this.fb.group(\n new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex])\n );\n }\n /**保存编辑字段 */\n editFieldSave() {\n let input = this.editFieldFrom.value;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList;\n this.visibleEditFieldOpen = false;\n this.setfieldTabsFrom();\n }\n\n /**name表单控件 */\n get nameInput() {\n return this.newEntity.get('name');\n }\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\" (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\" (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToDataSourceDropped()\" style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}}\n </label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class EntryConfig {\r\n\r\n\r\n /**多选 */\r\n 'Entry.Multiple': any = [false, []];\r\n /**占位符 */\r\n 'Entry.Placeholder': any = ['', []];\r\n /**版块id */\r\n 'Entry.SectionId': any = ['', []];\r\n\r\n constructor(data?: EntryConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { AfterContentInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport { EntryConfig } from './entry-config';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\n@Component({\n selector: 'cms-entry-config',\n templateUrl: './entry-config.component.html',\n styleUrls: ['./entry-config.component.scss']\n})\nexport class EntryConfigComponent implements AfterContentInit{\n constructor(\n private fb: FormBuilder,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n ) {\n }\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n if (v == this._type) return\n\n this._type = v\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**站点列表 */\n siteList: any[any] = []\n\n /**选择的站点id */\n // siteId: string = ''\n siteId: any = new FormControl('')\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n ngAfterContentInit(): void {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n this.dataLoaded(2)\n }\n\n async dataLoaded(val) {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new EntryConfig()))\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n if (this._selected) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n /**获取站点列表 */\n // getsiteList() {\n // return new Promise((resolve, rejects) => {\n // this._SiteAdminService.getList({}).subscribe(res => {\n // this.siteList = res.items\n // this.siteId = res.items[0]?.id || ''\n // resolve(res.items)\n // })\n // })\n // }\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: this.siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.formConfiguration.patchValue({\n 'Entry.SectionId': res.items[0]?.id || ''\n })\n resolve(res.items)\n })\n })\n }\n\n /**切换站点 */\n async siteIdChange() {\n await this.getSiteOfSectionList()\n }\n}\n","<!-- <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div> -->\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EntryStatus } from '../../../proxy/entries/entry-status.enum';\n\n\n@Component({\n selector: 'cms-entry-control',\n templateUrl: './entry-control.component.html',\n styleUrls: ['./entry-control.component.scss']\n})\nexport class EntryControlComponent {\n\n\n constructor(\n ) {\n }\n private fb=inject(FormBuilder)\n private _EntryAdminService=inject(EntryAdminService)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n \n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || [];\n if (v) this.dataLoaded()\n }\n /**语言 */\n_culture: any\n @Input()\n public set culture(v: any) {\n if (v) {\n this._culture = v ;\n this.dataLoaded()\n }\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined\n\n /** */\n listOfOption: any[] = [];\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName&&this._culture) {\n \n await this.AfterInit()\n await this.getEntryAssignList()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n let extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n\n /**获取对应的条目 */\n getEntryAssignList(filter = '') {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n culture: this._culture,\n sectionId: this._fields.field.formConfiguration['Entry.SectionId'],\n skipCount: 0,\n maxResultCount: 30,\n status: EntryStatus.Published,\n filter: filter\n }).subscribe(res => {\n this.listOfOption = res.items\n resolve(true)\n })\n })\n }\n\n /** */\n async SelectChange(event) {\n await this.getEntryAssignList(event)\n }\n}\n","<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class MatrixConfig {\r\n // 矩阵类型\r\n 'MatrixBlockTypes': any = new FormArray([])\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class MatrixItemConfig {\r\n \r\n displayName: any = ['', [Validators.required]];\r\n /**字段名字 */\r\n name: any = ['', [Validators.required]];\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\n\r\n\r\nexport class matrixFieldInputBase {\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = ['TextEdit', [Validators.required]];\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: matrixFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild, } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatrixConfig, MatrixItemConfig } from './matrix-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-matrix-config',\n templateUrl: './matrix-config.component.html',\n styleUrls: ['./matrix-config.component.scss']\n})\nexport class MatrixConfigComponent {\n\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n\n /**表单控件组 */\n _FieldControlGroup: any[]\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n\n\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n\n\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n \n \n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._FieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n this._Entity.setControl('formConfiguration', this.fb.group(new MatrixConfig()))\n await this.setSelectValue()\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n resolve(true)\n })\n }\n\n setSelectValue() {\n return new Promise((resolve, rejects) => {\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['MatrixBlockTypes'].forEach(((el, index) => {\n this.addMatrixBlockTypeItem(el)\n el.fields.forEach((elf, indexf) => {\n this.addMatrixFieldItem(elf, index)\n })\n }))\n resolve(true)\n }\n })\n }\n\n /**获取表单配置 */\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n\n /**获取表单配置下的矩阵块表单数组 */\n get MatrixBlockTypes() {\n return this.formConfiguration.controls['MatrixBlockTypes'] as FormArray\n }\n\n\n /**模态框-状态 */\n matrixModalOpen: boolean = false\n /**模态框-是否正在编辑 */\n isMatrixModalEdit: any = false\n\n /**模态框-用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**模态框-表单 */\n matrixModalForm: FormGroup | undefined;\n\n /**表单控件模板-用于在form外提交submit */\n @ViewChild('matrixModalModalSubmit', { static: false }) matrixModalModalSubmit: ElementRef;\n\n /**矩阵块-选择的下标 */\n selectMatrixBlockIndex: any = 0\n\n /**矩阵块-选择的矩阵下字段的下标 */\n selectMatrixFieldIndex: any = 0\n\n /**模态框-状态改变 */\n matrixModalVisibleChange(event) {\n if (!event) {\n this.isMatrixModalEdit = false\n this.matrixModalForm = undefined\n return\n }\n }\n\n\n /**矩阵块--新增-打开模态框 */\n addMatrixBlockType() {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalOpen = true\n }\n\n\n\n /**模态框--矩阵表单保存提交 */\n createOrEditSave() {\n let input = this.matrixModalForm.value\n if (!this.matrixModalForm.valid) return\n if (this.isMatrixModalEdit) {\n let MatrixBlockTypesItem = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n MatrixBlockTypesItem.patchValue({\n ...input\n })\n } else {\n this.addMatrixBlockTypeItem(input)\n }\n this.matrixModalOpen = false\n }\n /**新增矩阵块-向数组表单中增加项 */\n addMatrixBlockTypeItem(input) {\n this.MatrixBlockTypes.push(new FormGroup({\n displayName: new FormControl(input.displayName, Validators.required),\n name: new FormControl(input.name, Validators.required),\n fields: new FormArray([])\n }))\n }\n /**编辑矩阵块 */\n EditMatrixBlock(input) {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalForm.patchValue({\n ...input\n })\n this.matrixModalOpen = true\n this.isMatrixModalEdit = true\n }\n\n /**删除矩阵块 */\n DeleteMatrixBlock(index) {\n this.MatrixBlockTypes.removeAt(index)\n }\n\n /**矩阵块-选择 */\n selectMatrixBlockChange(index) {\n this.selectMatrixBlockIndex = index\n }\n\n /**矩阵字段-新增 */\n addMatrixField() {\n this.addMatrixFieldItem('', this.selectMatrixBlockIndex)\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n this.selectMatrixFieldChange(0, MatrixFieldItemForm.length - 1)\n\n }\n /**矩阵字段-新增矩阵字段项 */\n addMatrixFieldItem(input: any = '', selectMatrixBlockIndex) {\n /**矩阵下标的矩阵项Form */\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n MatrixFieldItemForm.push(this.fb.group({\n /**字段名称 Display name of this field */\n displayName: [input.displayName, [Validators.required]],\n /**字段唯一名称 Unique Name*/\n name: [input.name, [Validators.required]],\n /**描述 说明 */\n description: [input.description, []],\n /**FieldType字段类型 表单控件名称 */\n formControlName: [input.formControlName || 'TextEdit', [Validators.required]],\n //动态表单配置\n formConfiguration: new FormGroup({}),\n }))\n //\n }\n\n /**删除矩阵字段项 */\n deleteMatrixField(MatrixFieldForm, index) {\n MatrixFieldForm.removeAt(index)\n this.selectMatrixFieldIndex = 0\n }\n\n /**矩阵字段-选择 */\n selectMatrixFieldChange(MatrixBlockIndex, MatrixFieldIndex) {\n this.selectMatrixFieldIndex = MatrixFieldIndex\n }\n\n get nameInput() {\n return this.matrixModalForm?.get('name')\n }\n get FieldnameInput() {\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n return MatrixFieldItemForm.at(this.selectMatrixFieldIndex).get('name')\n }\n\n /**矩阵displayNameInput字段失去焦点 */\n displayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**矩阵displayNameInput字段失去焦点 */\n MatrixFieldDisplayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let FieldnameInput = this.FieldnameInput\n if (FieldnameInput.value) return\n FieldnameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <div class=\"form-text\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" [entity]=\"itemf\"\n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'df-matrix-control',\n templateUrl: './matrix-control.component.html',\n styleUrls: ['./matrix-control.component.scss']\n})\nexport class MatrixControlComponent {\n\n constructor(\n private fb: FormBuilder,\n ) { }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n if (this._selected) this.fieldNameControl.patchValue(this._selected);\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let formConfiguration = this._fields.field.formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addMatrixControl(formConfiguration.MatrixBlockTypes.find(item => item.name == el.matrixBlockTypeName))\n });\n }\n this.MatrixBlockTypesList = formConfiguration.MatrixBlockTypes\n \n resolve(true)\n })\n }\n\n /**矩阵列表 */\n MatrixBlockTypesList: any[] = []\n\n /**增加指定矩阵控件项 */\n addMatrixControl(item) {\n this.fieldNameControl.push(this.fb.group({\n extraProperties: new FormGroup({\n name:new FormControl('')\n }),\n matrixBlockTypeName: [item.name],\n displayName: [item.displayName]\n }))\n }\n /**删除矩阵控件 */\n deleteMatrixControl(index) {\n this.fieldNameControl.removeAt(index)\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic [entity]=\"item\"\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class TableConfig {\r\n\r\n\r\n\r\n // 选项\r\n TableColumns: any = new FormArray([])\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class TableFormControl {\r\n /**列标题 */\r\n displayName: any = ['', [Validators.required]];\r\n /**空间配置 */\r\n formConfiguration: any = new FormGroup({})\r\n /**列名 */\r\n name: any = ['', [Validators.required]];\r\n //控件标识\r\n formControlName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 */\r\n required: any = [false];\r\n /**描述 */\r\n description: any = [''];\r\n\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { TableConfig, TableFormControl } from './table-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-table-config',\n templateUrl: './table-config.component.html',\n styleUrls: ['./table-config.component.scss']\n})\nexport class TableConfigComponent {\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n /**表单控件组 */\n _fieldControlGroup: any[]\n\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n get TableColumns() {\n return this.formConfiguration.controls['TableColumns'] as FormArray\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n /**增加选项 */\n addTableColumns() {\n this.TableColumns.push(this.fb.group({\n ...new TableFormControl(),\n formConfiguration: [{}]\n }))\n }\n /**删除某个选项 */\n deleteTableColumns(index) {\n this.TableColumns.removeAt(index)\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TableConfig()))\n this._fieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['TableColumns'].forEach(el => {\n this.addTableColumns()\n });\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n } else {\n this.addTableColumns()\n }\n resolve(true)\n })\n }\n itemForm: any\n /**选择表格的表单控件 */\n selectTableControl(event, i, item) {\n this.CurrentSelectionTableControlName = event.target.value\n this.tableSelectOpen = true\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.TableColumnsIndex = i\n this.itemForm = item\n }\n\n CurrentSelectionTableControlName: any\n\n /**正在创建或编辑的表格项下标 */\n TableColumnsIndex: any\n /**创建站点模态框状态 */\n tableSelectOpen: boolean = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n /**创建站点表单 */\n tableSelectForm: FormGroup | undefined;\n\n /**表格已选择数据 */\n _tableSelected: any\n\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('tableSelectModalSubmit', { static: false }) tableSelectModalSubmit: ElementRef;\n\n\n /**创建站点模态框状态改变 */\n tableSelectVisibleChange(event) {\n if (!event) {\n this._tableSelected = undefined\n this.tableSelectForm = undefined\n this.CurrentSelectionTableControlName = undefined\n this.TableColumnsIndex = undefined\n return\n }\n }\n /**表单保存提交 */\n createOrEditSave() {\n const formGroup = this.TableColumns.at(this.TableColumnsIndex) as FormGroup;\n let formConfigurationgroup = formGroup.get('formConfiguration') as FormGroup\n\n formConfigurationgroup.setValue({\n ...this.tableSelectForm.value['formConfiguration'],\n });\n this.tableSelectOpen = false\n }\n\n /**编辑站点按钮 */\n EditSitesBtn(rows, i) {\n\n this.CurrentSelectionTableControlName = rows.get('formControlName').value\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.tableSelectForm.patchValue({\n ...rows.value\n })\n this.tableSelectForm.get('formConfiguration').patchValue({\n ...rows.value['formConfiguration']\n })\n this._tableSelected = rows.value\n this.TableColumnsIndex = i\n this.tableSelectOpen = true\n }\n\n\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.TableColumns.at(index)\n this.TableColumns.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.TableColumns.insert(lastindex, controlAt)\n }\n\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event, item) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = item.get('name')\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'df-table-control',\n templateUrl: './table-control.component.html',\n styleUrls: ['./table-control.component.scss']\n})\nexport class TableControlComponent {\n\n constructor(\n // private fb: FormBuilder,\n ) {\n }\n private fb=inject(FormBuilder)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n \n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let formConfiguration = this._fields.field.formConfiguration\n this.formConfiguration = formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addTableControlItem()\n });\n this.fieldNameControl.patchValue(this._selected)\n } else {\n this.addTableControlItem()\n }\n resolve(true)\n })\n }\n /**增加表格项 */\n addTableControlItem(){\n this.fieldNameControl.push(this.fb.group({\n 'extraProperties':this.fb.group({})\n }))\n }\n /**删除表格项 */\n minusTableControlItem(index){\n this.fieldNameControl.removeAt(index)\n }\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.fieldNameControl.at(index)\n this.fieldNameControl.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.fieldNameControl.insert(lastindex, controlAt)\n this._selected=this.fieldNameControl.value\n }\n\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { EntryConfigComponent, EntryControlComponent } from \"./entry\";\r\nimport { MatrixConfigComponent } from \"./matrix/matrix-config.component\";\r\nimport { MatrixControlComponent } from \"./matrix/matrix-control.component\";\r\nimport { TableConfigComponent, TableControlComponent } from \"./table\";\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: any[] = [\r\n {\r\n displayName: '表格',\r\n name: 'Table',\r\n fieldConfigComponent: TableConfigComponent,\r\n fieldComponent: TableControlComponent,\r\n },\r\n {\r\n displayName: '矩阵',\r\n name: 'Matrix',\r\n fieldConfigComponent: MatrixConfigComponent,\r\n fieldComponent: MatrixControlComponent,\r\n },\r\n {\r\n displayName: '条目',\r\n name: 'Entry',\r\n fieldConfigComponent: EntryConfigComponent,\r\n fieldComponent: EntryControlComponent,\r\n },\r\n];\r\n","export default `\r\n.lpx-content-container .lpx-content{min-height:calc(100vh - 34px);padding:1.25em 2em 1.25em}h1,h2,h3,h4,h5,h6{color:inherit}.lpx-settings .lpx-context-menu{overflow:auto}\r\na {\r\n text-decoration: unset;\r\n}\r\n\r\n.form-label{\r\n font-size: 12px;\r\n}\r\n:root select{\r\n cursor: pointer; /* this will show the pointer when hovering */\r\n} \r\n.cdk-global-overlay-wrapper, .cdk-overlay-container {pointer-events: none;top: 0;left: 0;height: 100%;width: 100% }.cdk-overlay-container {position: fixed;z-index: 1000 }.cdk-overlay-container:empty {display: none }.cdk-global-overlay-wrapper, .cdk-overlay-connected-position-bounding-box, .cdk-overlay-pane {position: absolute;z-index: 1000;display: flex }.cdk-overlay-pane {pointer-events: auto;box-sizing: border-box;max-width: 100%;max-height: 100% }.cdk-overlay-backdrop {position: absolute;top: 0;bottom: 0;left: 0;right: 0;z-index: 1000;pointer-events: auto;transition: opacity .4s cubic-bezier(.25, .8, .25, 1);opacity: 0 }.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: 1 }.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: .6 }.cdk-overlay-dark-backdrop {background: rgba(0, 0, 0, .32) }.cdk-overlay-transparent-backdrop {transition: visibility 1ms linear, opacity 1ms linear;visibility: hidden;opacity: 1 }.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0;visibility: visible }.cdk-overlay-backdrop-noop-animation {transition: none }.cdk-overlay-connected-position-bounding-box {flex-direction: column;min-width: 1px;min-height: 1px }.cdk-global-scrollblock {position: fixed;width: 100%;overflow-y: scroll }.cdk-visually-hidden {border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;outline: 0;-webkit-appearance: none;-moz-appearance: none }.nz-overlay-transparent-backdrop, .nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0 }.ant-select, .ant-select-dropdown {margin: 0;line-height: 1.5715;box-sizing: border-box;font-feature-settings: 'tnum';list-style: none }.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight, .ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpIn }.ant-select-dropdown.ant-select-tree-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;overflow: auto }.ant-select-dropdown-hidden, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before {display: none }.ant-select-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;display: block }.ant-select-dropdown .cdk-virtual-scroll-content-wrapper {right: 0 }.ant-select-dropdown .full-width {contain: initial }.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper {position: static }.ant-select-dropdown .full-width .cdk-virtual-scroll-spacer {position: absolute;top: 0;width: 1px }.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownIn }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpOut }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownOut }\r\n\r\n/*** 表单验证样式 start */\r\n.was-validated .form-control:invalid, .form-control.is-invalid{\r\n border-color: #c00d49 !important;\r\n}\r\n/*** 表单验证样式 end */\r\n`;","import { Renderer2, RendererFactory2, inject } from \"@angular/core\";\r\nimport styles from \"../constants/styles\";\r\nlet isAppentStyle = false\r\nexport function appentStyle() {\r\n /**确保该路由守卫只会执行一次 */\r\n if (isAppentStyle) return\r\n isAppentStyle = true\r\n const rendererFactory = inject(RendererFactory2);\r\n let renderer: Renderer2=rendererFactory.createRenderer(null, null)\r\n const style = renderer.createElement('style');\r\n renderer.setProperty(style, 'innerHTML', styles);\r\n renderer.appendChild(document.head, style);\r\n}","import { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport {\r\n SectionsComponent,\r\n CreateOrEditComponent,\r\n FieldsComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n CreateComponent,\r\n EditComponent,\r\n} from '../components';\r\n\r\n/**版块 */\r\nexport const Sections_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(SectionsComponent);\r\n component.createSectionBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**版块-创建-编辑 */\r\nexport const Sections_Create_Or_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateOrEditComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**站点 */\r\n// export const Sites_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n// {\r\n// text: 'Cms::New',\r\n// action: data => {\r\n// const component = data.getInjected(SitesComponent);\r\n// // component.createSitesBtn();\r\n// },\r\n// btnClass: '',\r\n// permission: 'CmsAdmin.Entry.Create',\r\n// icon: 'fa fa-plus',\r\n// },\r\n// ]);\r\n/**字段 */\r\nexport const Fields_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(FieldsComponent);\r\n component.toFieldsCreateBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n\r\n/**条目 */\r\nexport const Entries_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(EntriesComponent);\r\n component.createEntriesBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**条目-创建 */\r\nexport const Entries_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n/**条目编辑 */\r\nexport const Entries_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n","import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from \"@abp/ng.components/extensible\";\r\nimport { ConfigStateService } from \"@abp/ng.core\";\r\nimport { inject, InjectionToken } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { map, tap } from \"rxjs\";\r\nimport { ECmsComponent } from \"../enums\";\r\nimport { Entries_Create_Defaults_Toolbar_Action, Entries_Defaults_Toolbar_Action, Entries_Edit_Defaults_Toolbar_Action, Fields_Create_Defaults_Toolbar_Action, Fields_Defaults_Toolbar_Action, Fields_Edit_Defaults_Toolbar_Action, Sections_Create_Or_Edit_Defaults_Toolbar_Action, Sections_Defaults_Toolbar_Action } from \"./page-default-toolbar-actions\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**默认-实体-操作 */\r\nexport const Default_Entity_Actions = {\r\n // [ModuleComponent.AbpTable]: Abp_Table_Entity_Action,\r\n};\r\n\r\n/**默认实体属性-表格列名 */\r\nexport const Default_Entity_Props = {\r\n // [PageName.Guides]: Guides_Entity_Props,\r\n};\r\n\r\n/**默认-工具栏-操作 */\r\nexport const Default_Toolbar_Actions = {\r\n // [ModuleComponent.Page]: Page_Toolbar_Action,\r\n // [eCmsKitPageName.FaqQuestion]:FaqQuestion_Toolbar_Action\r\n [ECmsComponent.Entries]: Entries_Defaults_Toolbar_Action,\r\n [ECmsComponent.Entries_Create]: Entries_Create_Defaults_Toolbar_Action,\r\n [ECmsComponent.Entries_Edit]: Entries_Edit_Defaults_Toolbar_Action,\r\n [ECmsComponent.Fields]: Fields_Defaults_Toolbar_Action,\r\n [ECmsComponent.FieldsCreate]: Fields_Create_Defaults_Toolbar_Action,\r\n [ECmsComponent.FieldsEdit]: Fields_Edit_Defaults_Toolbar_Action,\r\n [ECmsComponent.Sections]: Sections_Defaults_Toolbar_Action,\r\n [ECmsComponent.SectionsCreateOrEdit]: Sections_Create_Or_Edit_Defaults_Toolbar_Action,\r\n};\r\n\r\n\r\n/**\r\n * \r\n * @param 在Extensions_Props_Action_Token_Resolver方法中使用\r\n * @param 在.module.ts中使用,\r\n export class CmsModule {\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: Toolbar_Action_Contributors,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: Entity_Action_Contributors,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: Entity_Props_Contributors,\r\n useValue: options.entityPropContributors,\r\n },\r\n ]\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n }\r\n * \r\n * \r\n */\r\n/**实体-操作-贡献者 */\r\nexport const Entity_Action_Contributors =\r\n new InjectionToken<any>('Entity_Action_Contributors');\r\n\r\n/**实体-属性-贡献者 */\r\nexport const Entity_Props_Contributors =\r\n new InjectionToken<any>('Entity_Props_Contributors');\r\n\r\nexport const Toolbar_Action_Contributors = new InjectionToken<any>(\r\n 'Toolbar_Action_Contributors'\r\n);\r\n\r\n/**\r\n * 属性-操作-贡献者-解析器\r\n * \r\n * 用于放在-routing.module.ts路由守卫中\r\n * \r\n *\r\n const routes: Routes = [\r\n {\r\n path: 'demo',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [Extensions_Props_Action_Token_Resolver],\r\n children: []\r\n },\r\n ]\r\n * \r\n * \r\n */\r\n\r\nexport const Extensions_Props_Action_Token_Resolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(Entity_Action_Contributors, config) || {};\r\n const propContributors = inject(Entity_Props_Contributors, config) || {};\r\n const toolbarContributors = inject(Toolbar_Action_Contributors, config) || {};\r\n\r\n\r\n return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n // [ModuleComponent.AbpTable]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n //actions\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n Default_Entity_Actions,\r\n actionContributors,\r\n );\r\n //props\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n Default_Entity_Props,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n //Toolbar\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n Default_Toolbar_Actions,\r\n toolbarContributors\r\n );\r\n\r\n }),\r\n );\r\n};\r\n\r\n\r\n// /**\r\n// * @deprecated Use `tenantManagementExtensions_Props_Action_Token_Resolver` *function* instead.\r\n// */\r\n// @Injectable()\r\n// export class TenantManagementExtensionsGuard implements IAbpGuard {\r\n// protected readonly configState = inject(ConfigStateService);\r\n// protected readonly extensions = inject(ExtensionsService);\r\n\r\n// canActivate(): Observable<boolean> {\r\n// const config = { optional: true };\r\n\r\n// const actionContributors = inject(TENANT_MANAGEMENT_Entity_Action_Contributors, config) || {};\r\n// const propContributors = inject(TENANT_MANAGEMENT_Entity_Props_Contributors, config) || {};\r\n\r\n// return getObjectExtensionEntitiesFromStore(this.configState, 'TenantManagement').pipe(\r\n// map(entities => ({\r\n// // [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n// })),\r\n// mapEntitiesToContributors(this.configState, 'TenantManagement'),\r\n// tap(objectExtensionContributors => {\r\n// mergeWithDefaultActions(\r\n// this.extensions.entityActions,\r\n// DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n// actionContributors,\r\n// );\r\n// mergeWithDefaultProps(\r\n// this.extensions.entityProps,\r\n// DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n// objectExtensionContributors.prop,\r\n// propContributors,\r\n// );\r\n// }),\r\n// map(() => true),\r\n// );\r\n// }\r\n// }\r\n\r\n","import { NgModule} from '@angular/core';\r\nimport { Routes, RouterModule} from '@angular/router';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n} from './components';\r\nimport {\r\n AuthGuard,\r\n PermissionGuard,\r\n} from '@abp/ng.core';\r\nimport { appentStyle } from './services/appent-content';\r\nimport { Extensions_Props_Action_Token_Resolver } from './resolvers/extensions-props-action-token.resolver';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'admin',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [Extensions_Props_Action_Token_Resolver, appentStyle],\r\n children: [\r\n { \r\n path: 'entries',\r\n\r\n children: [\r\n {\r\n path: '',\r\n component: EntriesComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateComponent,\r\n },\r\n {\r\n path: ':entrieId/edit',\r\n component: EditComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'fields',\r\n children: [\r\n {\r\n path: '',\r\n component: FieldsComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateFieldComponent,\r\n },\r\n {\r\n path: ':id/edit',\r\n component: EditFieldComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: 'sections',\r\n children: [\r\n {\r\n path: '',\r\n data: { keep: true },\r\n component: SectionsComponent,\r\n },\r\n {\r\n path: ':sectionsId/entry-types',\r\n children: [\r\n {\r\n path: 'create',\r\n component: CreateOrEditComponent,\r\n },\r\n {\r\n path: ':entryTypesId/edit',\r\n component: CreateOrEditComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class CmsRoutingModule {\r\n}\r\n","import { NgModule, NgModuleFactory, ModuleWithProviders, inject } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CmsRoutingModule } from './cms-routing.module';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n CreateOrEditEntriesComponent,\r\n CreateOrEditFieldComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldGroupComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n FieldControlGroup\r\n} from './components';\r\nimport {\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { DynamicFormModule } from '@dignite-ng/expand.dynamic-form';\r\nimport { fielFieldControlGroup } from '@dignite-ng/expand.file-explorer';\r\nimport { ckEditorFieldControlGroup } from '@dignite-ng/expand.ck-editor';\r\nimport { Toolbar_Action_Contributors, Entity_Action_Contributors, Entity_Props_Contributors } from './resolvers/extensions-props-action-token.resolver';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n FieldGroupComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n CreateOrEditFieldComponent,\r\n CreateOrEditComponent,\r\n CreateComponent,\r\n EditComponent,\r\n CreateOrEditEntriesComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n \r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n FormsModule,\r\n CmsRoutingModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n NgbDropdownModule,\r\n PageModule,\r\n NzSelectModule,\r\n DynamicFormModule.forRoot({\r\n cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]\r\n }),\r\n ],\r\n exports: [\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n ],\r\n providers: [\r\n ],\r\n\r\n})\r\nexport class CmsModule {\r\n\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: Toolbar_Action_Contributors,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: Entity_Action_Contributors,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: Entity_Props_Contributors,\r\n useValue: options.entityPropContributors,\r\n },\r\n ],\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of cms\r\n */\r\n\r\nexport * from './lib/cms.module';\r\nexport * from './lib/components/dynamic-form';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryAdminService","i2.SectionAdminService","i4","i5","i6","i7","i11","i1.FieldGroupAdminService","i2.FormAdminService","i1","i3","i4.SectionAdminService","i5.EntryAdminService","i7.CmsApiService","i8","i4.EntryAdminService","i9.CreateOrEditEntriesComponent","finalize","i2.FieldGroupAdminService","i4.FieldAbstractsService","i2.FieldAdminService","i9.FieldGroupComponent","i10","i1.FieldAbstractsService","i2.CmsApiService","i3.FieldAdminService","i6.CmsApiService","i9.CreateOrEditFieldComponent","i2.FieldAbstractsService","i9","i10.CreateOrEditFieldComponent","i2.EntryTypeAdminService","i5.CmsApiService","i4.FieldGroupAdminService","i4.FieldAdminService","i5.EntryTypeAdminService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"dignite-ng-expand.cms.mjs","sources":["../../../projects/cms/src/lib/proxy/admin/settings/site-settings-admin.service.ts","../../../projects/cms/src/lib/proxy/entries/entry-status.enum.ts","../../../projects/cms/src/lib/enums/ecms-component.ts","../../../projects/cms/src/lib/proxy/admin/entries/entry-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/entry-type-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/section-admin.service.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create-or-update-entry-input-base.ts","../../../projects/cms/src/lib/services/validators.service.ts","../../../projects/cms/src/lib/proxy/admin/fields/field-group-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts","../../../projects/cms/src/lib/services/field-abstracts.service.ts","../../../projects/cms/src/lib/services/cms.service.ts","../../../projects/cms/src/lib/services/cms-api.service.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create.component.ts","../../../projects/cms/src/lib/components/admin/entries/create.component.html","../../../projects/cms/src/lib/components/admin/entries/edit.component.ts","../../../projects/cms/src/lib/components/admin/entries/edit.component.html","../../../projects/cms/src/lib/proxy/admin/fields/field-admin.service.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.html","../../../projects/cms/src/lib/components/admin/fields/fields.component.ts","../../../projects/cms/src/lib/components/admin/fields/fields.component.html","../../../projects/cms/src/lib/components/admin/fields/create-or-update-field-input-base.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.html","../../../projects/cms/src/lib/components/admin/fields/create-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-field.component.html","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.html","../../../projects/cms/src/lib/proxy/sections/section-type.enum.ts","../../../projects/cms/src/lib/components/admin/sections/create-or-update-sections-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.html","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/form-control-group.ts","../../../projects/cms/src/lib/constants/styles.ts","../../../projects/cms/src/lib/services/appent-content.ts","../../../projects/cms/src/lib/resolvers/page-default-toolbar-actions.ts","../../../projects/cms/src/lib/resolvers/table-default-entity-props.ts","../../../projects/cms/src/lib/resolvers/table-default-entity-actions.ts","../../../projects/cms/src/lib/resolvers/extensions-props-action-token.resolver.ts","../../../projects/cms/src/lib/cms-routing.module.ts","../../../projects/cms/src/lib/cms.module.ts","../../../projects/cms/src/public-api.ts","../../../projects/cms/src/dignite-ng-expand.cms.ts"],"sourcesContent":["import { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { BrandDto } from '../../settings/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteSettingsAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getAllLanguages = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string[]>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/all-languages',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getBrand = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, BrandDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/brand',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getDefaultLanguage = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string>({\r\n method: 'GET',\r\n responseType: 'text',\r\n url: '/api/cms-admin/site-settings/default-language',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum EntryStatus {\r\n Draft = 0,\r\n Published = 1,\r\n}\r\n\r\nexport const entryStatusOptions = mapEnumToOptions(EntryStatus);\r\n","export enum ECmsComponent {\n Entries=\"Cms.Entries\",\n Entries_Create=\"Cms.Entries.Create\",\n Entries_Edit=\"Cms.Entries.Edit\",\n Fields=\"Cms.Fields\",\n FieldsCreate=\"Cms.Fields.Create\",\n FieldsEdit=\"Cms.Fields.Edit\",\n Sites=\"Cms.Sites\",\n Sections=\"Cms.Sections\",\n SectionsCreateOrEdit=\"Cms.Sections.Create.Or.Edit\",\n}\n","import type { CreateEntryInput, CultureExistWithSingleSectionInput, EntryDto, GetEntriesInput, MoveEntryInput, SlugExistsInput, UpdateEntryInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto, PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n activate = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/activate/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n create = (input: CreateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entries',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n cultureExistWithSingleSection = (input: CultureExistWithSingleSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/culture-exists-with-single-section',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getAllVersions = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}/all-versions`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetEntriesInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId, startPublishDate: input.startPublishDate, expiryPublishDate: input.expiryPublishDate, filter: input.filter, status: input.status, creatorId: input.creatorId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getListByIds = (sectionId: string, ids: string[], config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/search-by-ids',\r\n params: { sectionId, ids },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n move = (id: string, input: MoveEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/move/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n slugExists = (input: SlugExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/slug-exists',\r\n params: { culture: input.culture, sectionId: input.sectionId, slug: input.slug },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/entries',\r\n params: { id },\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryTypeInput, EntryTypeDto, EntryTypeNameExistsInput, UpdateEntryTypeInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryTypeAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entry-types',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: EntryTypeNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entry-types/name-exists',\r\n params: { sectionId: input.sectionId, name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateSectionInput, GetSectionsInput, SectionDto, SectionNameExistsInput, SectionRouteExistsInput, UpdateSectionInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SectionAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/sections',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetSectionsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<SectionDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections',\r\n params: { filter: input.filter, isActive: input.isActive, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: SectionNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/name-exists',\r\n params: { name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n routeExists = (input: SectionRouteExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/route-exists',\r\n params: { route: input.route },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/sections/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","\nimport { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { ListService, LIST_QUERY_DEBOUNCE_TIME, ConfigStateService, LocalizationService, PagedResultDto, ABP } from \"@abp/ng.core\";\nimport { ToasterService, ConfirmationService, Confirmation } from \"@abp/ng.theme.shared\";\nimport { Component, OnInit, inject } from \"@angular/core\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { EntryAdminService, EntryDto, GetEntriesInput } from \"../../../proxy/admin/entries\";\nimport { SectionAdminService } from \"../../../proxy/admin/sections\";\nimport { SiteSettingsAdminService } from \"../../../proxy/admin/settings\";\nimport { entryStatusOptions } from \"../../../proxy/entries\";\nimport { finalize } from \"rxjs\";\nimport { ECmsComponent } from \"../../../enums\";\nimport { UpdateListService } from \"@dignite-ng/expand.core\";\n\n\n\n@Component({\n selector: 'cms-entries',\n templateUrl: './entries.component.html',\n styleUrls: ['./entries.component.scss'],\n providers: [\n ListService,\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries,\n },\n ]\n})\nexport class EntriesComponent implements OnInit {\n\n constructor(\n private _EntryAdminService: EntryAdminService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private configState: ConfigStateService,\n private router: Router,\n private _LocalizationService: LocalizationService,\n ) {\n }\n\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n public readonly list = inject(ListService)\n\n\n ngOnInit(): void {\n this.getPageDate()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n\n /**站点列表 */\n // siteList: any[any] = []\n /**选择的站点id */\n // siteId: string = ''\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n\n /**版块下的语言列表 */\n sectionLanguagesList: any[any] = []\n /**版块下的条目类型列表 */\n entryTypeList: any[any] = []\n /**状态编码 */\n _entryStatusOptions = entryStatusOptions\n\n /**获取页面数据 */\n async getPageDate() {\n await this.getSiteOfSectionList()\n await this.getSectionLanguagesList()\n this.filters = this.filtersForm.value\n this.hookToQuery()\n }\n\n\n /**切换板块 */\n async sectionIdChange() {\n this.getSectionOfEntryType()\n await this.getSectionLanguagesList()\n this.resetData()\n }\n /**切换语言 */\n async cultureChange() {\n this.resetData()\n }\n\n\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.filtersForm.get('sectionId').patchValue(res.items[0]?.id || '')\n this.getSectionOfEntryType()\n resolve(res.items)\n })\n })\n }\n\n /**获取版块下的条目类型 */\n getSectionOfEntryType() {\n let sectionId = this.filtersForm.get('sectionId').value\n this.entryTypeList = this.SiteOfSectionList.find(el => el.id == sectionId)?.entryTypes || []\n }\n\n private config = inject(ConfigStateService)\n private _SiteSettingsAdminService = inject(SiteSettingsAdminService)\n /**获取版块下的语言列表 */\n getSectionLanguagesList() {\n return new Promise(async (resolve, rejects) => {\n //获取所有语言 */\n let languagesSystem = this.configState.getDeep('localization.languages')\n //获取系统默认语言 */\n let DefaultLanguage = this.config.getSetting(\"Abp.Localization.DefaultLanguage\");\n const configCmsSiteLanguages = this.config.getSetting(\"Cms.Site.Languages\")\n if(!configCmsSiteLanguages){\n await this.getSiteSettingsLanguages()\n }\n const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages\n let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName))\n //获取当前选择的语言\n let nowculture = this.filtersForm.get('culture').value\n //当前选择的语言,是否在版块的的语言列表中\n let isexist = LanguagesArray.find(el => el.cultureName == nowculture)\n this.filtersForm.get('culture').patchValue(nowculture ? isexist ? nowculture : DefaultLanguage : DefaultLanguage)\n this.sectionLanguagesList = LanguagesArray\n resolve(LanguagesArray)\n })\n }\n\n /**站点设置语言 */\n SiteSettingsAdminLanguages: any[] = []\n /**\n * 获取站点设置语言\n */\n getSiteSettingsLanguages() {\n return new Promise((resolve, rejects) => {\n this._SiteSettingsAdminService.getAllLanguages().subscribe(res => {\n this.SiteSettingsAdminLanguages = res\n resolve(res)\n })\n })\n }\n\n\n\n resetData() {\n this.filters = this.filtersForm.value\n this.list.page = 0\n this.data.items = []\n this.list.get()\n }\n\n /**新增-单个 */\n createEntriesBtn() {\n this.router.navigate(['/cms/admin/entries/create'], {\n queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }\n })\n }\n\n /**列表相关 */\n ColumnMode = ColumnMode;\n data: PagedResultDto<EntryDto> = {\n items: [],\n totalCount: 0,\n };\n\n filters = {} as GetEntriesInput;\n filtersForm: FormGroup = this.fb.group({\n siteId: [''],\n sectionId: [''],\n culture: [''],\n filter: [''],\n })\n\n hookToQuery() {\n\n const getData = (query: ABP.PageQueryParams) => this._EntryAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<EntryDto>) => {\n this.data = list\n };\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n\n /**删除条目 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n\n });\n }\n\n\n}\n","<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\" >\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateEntryInputBase {\r\n /**语言 */\r\n culture: any = ['', [Validators.required]]\r\n /**条目id */\r\n entryTypeId: any = ['']\r\n /**标题 */\r\n title: any = ['', [Validators.required]]\r\n /**别名 */\r\n slug: any = ['', [Validators.required]]\r\n /**是否是草稿 */\r\n draft: any = ['', []]\r\n /**发布时间 */\r\n publishTime: any = ['', [Validators.required]]\r\n /**上级目录 */\r\n parentId:any=[null]\r\n /**修订说明 */\r\n versionNotes:any=[null]\r\n /**版本 */\r\n initialVersionId: any = [null]\r\n extraProperties: FormGroup | undefined = new FormGroup({})\r\n constructor(data?: CreateOrUpdateEntryInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import { LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl, FormBuilder } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidatorsService {\r\n\r\n constructor() { }\r\n\r\n private toaster = inject(ToasterService);\r\n private _LocalizationService = inject(LocalizationService);\r\n\r\n /**检查表单- */\r\n isCheckForm(input: any, module = 'AbpValidation') {\r\n let keys = Object.keys(input);\r\n for (let i = 0; i < keys.length; i++) {\r\n const element = keys[i];\r\n if (input[element] == false) {\r\n let info = `\"${this._LocalizationService.instant(`${module}::${element}`)}\" `;\r\n if (element.includes('.') && !element.includes('].')) {\r\n let arr = element.split('.');\r\n info = `\"${this._LocalizationService.instant(`CmsKit::${arr[0]}`)}.${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n if (element.includes('].')) {\r\n let arr = element.split('].');\r\n let arrStart = arr[0].split('[');\r\n info = `\"${this._LocalizationService.instant(`CmsKit::${arrStart[0]}`)}[${arrStart[1]}].${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n info += `${this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid`)}`\r\n //使用abp多语言提示\r\n this.toaster.warn(info);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**获取表单所有字段是否通过验证 */\r\n getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {\r\n let validationStatus: { [key: string]: any } = {};\r\n\r\n // 递归遍历表单组和表单控件集合\r\n const traverseForm = (form: FormGroup | FormArray, prefix = '') => {\r\n if (form instanceof FormGroup) {\r\n Object.keys(form.controls).forEach(key => {\r\n const control = form.controls[key];\r\n let displayName = key.charAt(0).toUpperCase() + key.slice(1);\r\n const fullKey = prefix ? `${prefix}.${displayName}` : displayName;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n } else if (form instanceof FormArray) {\r\n form.controls.forEach((control, index) => {\r\n const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n }\r\n };\r\n\r\n traverseForm(formEntity);\r\n\r\n return validationStatus;\r\n }\r\n\r\n}\r\n","import type { CreateOrUpdateFieldGroupInput, FieldGroupDto, GetFieldGroupsInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldGroupAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/field-groups',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldGroupsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldGroupDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/field-groups',\r\n params: { input },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { FormControlDto } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getFormControls = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<FormControlDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/dynamic-forms/forms',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FieldGroupAdminService } from '../proxy/admin/fields/field-group-admin.service';\nimport { FieldGroupDto } from '../proxy/admin/fields/models';\nimport { FormAdminService } from '../proxy/admin/dynamic-forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldAbstractsService {\n\n constructor(\n private _FieldGroupAdminService: FieldGroupAdminService,\n private _FormAdminService: FormAdminService,\n ) { }\n /**字段分组列表 */\n fieldGroupList: FieldGroupDto[] = []\n /**获取字段分组列表 */\n getfieldGroupList() {\n this._FieldGroupAdminService.getList({}).subscribe(res => {\n this.fieldGroupList = res.items\n })\n }\n\n /**表单控件类型 */\n fromControlList: any[] = []\n /**获取表单控件类型 */\n getFromControlList() {\n return new Promise((resolve, reject) => {\n this._FormAdminService.getFormControls({}).subscribe(res => {\n this.fromControlList = res.items\n resolve(res.items)\n })\n })\n }\n getExcludeAssignControl(typeName?) {\n // return this.fromControlList.filter(el => el.name !== typeName)\n return this.fromControlList\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { RestService } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmsService {\r\n apiName = 'Cms';\r\n\r\n constructor(private restService: RestService) {}\r\n\r\n sample() {\r\n return this.restService.request<void, any>(\r\n { method: 'GET', url: '/api/Cms/sample' },\r\n { apiName: this.apiName }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmsApiService {\n\n constructor() { }\n\n \n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n}\n","import { ConfigStateService, LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { AfterContentInit, Component, inject, Input, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { Observable } from 'rxjs';\nimport { DatePipe, Location } from '@angular/common';\nimport { CmsApiService } from '../../../services';\n\n@Component({\n selector: 'cms-create-or-edit-entries',\n templateUrl: './create-or-edit-entries.component.html',\n styleUrls: ['./create-or-edit-entries.component.scss']\n})\nexport class CreateOrEditEntriesComponent implements AfterContentInit {\n\n\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private configState: ConfigStateService,\n private _SectionAdminService: SectionAdminService,\n private _EntryAdminService: EntryAdminService,\n private datePipe: DatePipe,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) { }\n\n\n /**语言 */\n cultureName: string = ''\n /**条目类型id */\n entryTypeId: string = ''\n\n /**新建版本的版本id,同条目id */\n RevisionEntryId: any = ''\n /**选择的条目项 */\n entryTypesItem: any = ''\n /**版块id */\n sectionId: string = ''\n /**版块详情 */\n SectionSelect: any = ''\n /**语言列表 */\n languagesList: any[] = []\n /**条目类型列表-用于选择上级条目 */\n entryTypesList: any[] = []\n /**版本列表 */\n AllVersionsList: any[] = []\n\n /**是否是编辑 */\n @Input() isEdit = false\n\n /**来自父组件的传值 */\n FromParentQueryParams: any = ''\n @Input()\n public set ParentQueryParams(v: any) {\n if (v) {\n this.FromParentQueryParams = v;\n }\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n }\n }\n /**指定id的条目信息 */\n entrySelect: any = ''\n @Input()\n public set parentEntrySelect(v: any) {\n if (v) {\n let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties))\n v.extraProperties = V_extraProperties\n this.entrySelect = v;\n }\n }\n /**将对象中的ExtraProperties赋值到extraProperties */\n convertExtraProperties(obj) {\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key].forEach(item => {\n if (item.hasOwnProperty('ExtraProperties')) {\n item['extraProperties'] = item['ExtraProperties'];\n }\n });\n }\n }\n return obj;\n }\n\n /**别名表单实体 */\n get sluginput() {\n return this._entity.get('slug')\n }\n /**语言表单实体 */\n get cultureinput() {\n return this._entity.get('culture')\n }\n /**语言表单实体影子 */\n get culture_shadowInput() {\n return this._entity.get('culture_shadow')\n }\n\n /**extraProperties配置表单实体 */\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n async ngAfterContentInit(): Promise<void> {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n let queryParams = this.FromParentQueryParams\n if (this._entity && this.FromParentQueryParams) {\n this._entity.setControl('slug', new FormControl('', {\n validators: Validators.required,\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n }))\n this._entity.setControl('culture_shadow', new FormControl('', {\n validators: [Validators.required],\n asyncValidators: this.cultureAsyncValidator_test(),\n }))\n this._entity.get('culture').disable();\n if (queryParams.RevisionEntryId && this.entrySelect) {\n this.RevisionEntryId = queryParams.RevisionEntryId\n this.setEntryconfig(this.entrySelect);\n } else {\n this.setEntryconfig(queryParams);\n }\n if (this.sectionId) await this.getSectionSelect();\n if (this.RevisionEntryId) await this.getAllVersionsList()\n\n }\n\n\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChildren('FormDynamicontrolRef', { read: ViewContainerRef }) FormDynamicontrolRef: QueryList<ViewContainerRef>;\n\n\n\n\n\n /**定义自定义异步验证 */\n cultureAsyncValidator_test() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subculture = this._entity?.get('culture').value\n if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {\n resolve(null);\n return\n }\n this._EntryAdminService.cultureExistWithSingleSection({\n culture: subculture,\n sectionId: this.sectionId,\n entryTypeId: this.entryTypeId\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n /** \n * 设置条目详情 \n * @param {object} source - 数据源对象 \n */\n setEntryconfig(source: any) {\n this.entryTypeId = source.entryTypeId;\n this.cultureName = source.culture || source.cultureName;\n this.sectionId = source.sectionId;\n }\n time: number = 0\n\n /**定义自定义异步验证 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this._entity?.get('slug').value\n if (subslug == this.entrySelect?.slug) {\n resolve(null);\n return\n }\n this._EntryAdminService.slugExists({\n culture: this.cultureName,\n sectionId: this.sectionId,\n slug: subslug\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n private config = inject(ConfigStateService)\n\n /**获取版块详情 */\n getSectionSelect() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {\n let languages = this.configState.getDeep('localization.languages')\n this.languagesList = languages\n let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId)\n this.SectionSelect = res\n await this.getTypeEntryList()\n this.entryTypesItem = entryTypesItem\n this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId)\n this._entity.patchValue({\n ...this.entrySelect,\n initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',\n culture: this.cultureName,\n culture_shadow: this.cultureName,\n entryTypeId: this.entryTypeId,\n publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),\n })\n resolve(true)\n })\n })\n }\n /**获取条目类型下所有条目列表 */\n getTypeEntryList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n sectionId: this.sectionId,\n maxResultCount: 1000,\n culture: this.cultureName\n }).subscribe((res: any) => {\n let entryTypesList = res.items.filter(el => el.id != this.entrySelect.id)\n let parentList = entryTypesList.filter(el => !el.parentId)\n parentList.forEach(el => {\n let layer: number = 0\n el.layer = new Array(layer)\n el.children = this.groupByParentId(entryTypesList, el.id, (layer + 1))\n })\n this.entryTypesList = parentList\n resolve(res)\n })\n })\n }\n\n /**对数组按照父子关系进行分组 */\n groupByParentId(arr, id = '', layer) {\n let result = [];\n result = arr.filter(el => el.parentId == id)\n result.forEach(el => {\n el.layer = new Array(layer)\n el.children = this.groupByParentId(arr, el.id, (layer + 1))\n })\n return result\n }\n\n\n\n /**获取条目版本列表 */\n getAllVersionsList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {\n this.AllVersionsList = res.items\n resolve(res)\n })\n })\n }\n\n /**标题转化别名 */\n setTitleToSlugBlur(event) {\n let val = event.target.value\n let slug = this._entity.get('slug')\n let pinyinstr = ''\n if (slug.value) return\n pinyinstr = this._CmsApiService.chineseToPinyin(val)\n this._entity.patchValue({\n slug: pinyinstr || val\n })\n }\n /**使用Unicode编码范围判断是否是中文字符 */\n isChinese(str) {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n\n /**激活 */\n ActivatedVersion(VersionId) {\n this._EntryAdminService.activate(VersionId).subscribe((res) => {\n this.AllVersionsList.forEach(el => {\n el.isActivatedVersion = el.id === VersionId\n })\n return\n })\n }\n /**编辑版本 */\n toEditUrl(id) {\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries/${id}/edit`]);\n });\n }\n /**删除版本 */\n delectVersion(vid) {\n this._EntryAdminService.delete(vid).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.getAllVersionsList()\n })\n }\n\n}\n","<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\" *ngIf=\"SectionSelect.type===1\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.title}}</option>\n <ng-container *ngFor=\"let el of item.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n <ng-template #childTemplate let-data>\n <option [value]=\"data.value.id\">\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\n {{data.value.title}}</option>\n <ng-container *ngFor=\"let el of data.value.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n </ng-container>\n\n </ng-template>\n </ng-container>\n\n </ng-container>\n </select>\n\n\n\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd\n HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { ECmsComponent } from '../../../enums';\n// import { UpdateListService } from '@dignite-ng/expand.core';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\nimport { UpdateListService } from '@dignite-ng/expand.core';\n\n@Component({\n selector: 'cms-create',\n templateUrl: './create.component.html',\n styleUrls: ['./create.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Create,\n },\n ]\n})\nexport class CreateComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService,\n ) { }\n private fb=inject(FormBuilder)\n private _updateListService=inject(UpdateListService)\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**是否是草稿 */\n draftType: boolean = false\n /**页面传值用于传递到子组件 */\n queryParams: any = ''\n\n /**指定id的条目信息 */\n entrySelect: any = ''\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n this.queryParams = this.route.snapshot.queryParams\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase())\n if(this.queryParams.RevisionEntryId) await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res\n \n resolve(res)\n })\n })\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft\n })\n this.newEntity.get('culture').enable();\n let input = this.newEntity.value\n input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString()\n input.culture=this.newEntity.get('culture').value\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return\n this._EntryAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._updateListService.updateList();\n })\n }\n isSubmit:boolean=false;\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.isSubmit = true\n this.draftType = type\n this.submitclick.nativeElement.click()\n }\n /**返回上一页 */\n backTo() {\n this._location.back()\n }\n\n\n\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>","/* eslint-disable @angular-eslint/use-lifecycle-interface */\n\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '@dignite-ng/expand.core';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-edit',\n templateUrl: './edit.component.html',\n styleUrls: ['./edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Edit,\n },\n ],\n})\nexport class EditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService\n ) {}\n private fb = inject(FormBuilder);\n private _updateListService = inject(UpdateListService);\n \n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**是否是草稿 */\n draftType: boolean = false;\n\n /**页面传值用于传递到子组件 */\n queryParams: any = {};\n\n /**指定id的条目信息 */\n entrySelect: any = '';\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit() {\n this.queryParams.RevisionEntryId = this.route.snapshot.params.entrieId;\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());\n await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res;\n resolve(res);\n });\n });\n }\n\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft,\n });\n this.newEntity.get('culture').enable();\n let input = this.newEntity.value;\n input.publishTime = new Date(\n new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000\n ).toISOString();\n input.culture = this.newEntity.get('culture').value;\n input.concurrencyStamp = this.entrySelect.concurrencyStamp;\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return;\n this._EntryAdminService.update(this.entrySelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.backTo()\n this._updateListService.updateList();\n });\n }\n isSubmit:boolean=false;\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type;\n this.isSubmit=true;\n this.submitclick.nativeElement.click();\n }\n /**返回上一页 */\n backTo() {\n this._location.back();\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit' | abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" [isEdit]=\"true\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>","import type { CreateFieldInput, FieldDto, GetFieldsInput, UpdateFieldInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/fields',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/fields',\r\n params: { filter: input.filter, groupId: input.groupId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/name-exists/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/fields/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, EventEmitter, inject, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { FieldGroupAdminService } from '../../../proxy/admin/fields';\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\nimport { finalize} from 'rxjs/operators';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n@Component({\n selector: 'cms-field-group',\n templateUrl: './field-group.component.html',\n styleUrls: ['./field-group.component.scss']\n})\nexport class FieldGroupComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n private _FieldGroupAdminService: FieldGroupAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n public _FieldAbstractsService: FieldAbstractsService,\n public _LocalizationService: LocalizationService,\n ) { }\n\n\n /**创建分组表单 */\n createForm: FormGroup | undefined;\n\n /** 编辑分组表单*/\n editGroupForm: FormGroup | undefined;\n\n /**表单已存在的值 */\n selected = {} as any;\n\n /**选择的字段分组id */\n fieldGroupId: string | undefined = ''\n\n /**创建分组模态框状态 */\n createGroupOpen = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**编辑分组模态框状态 */\n editGroupOpen: boolean = false\n\n /**点击分组回调 */\n @Output() OnGroupClickBack = new EventEmitter();\n\n ngOnInit(): void {\n this._FieldAbstractsService.getfieldGroupList()\n }\n\n /**创建字段分组 */\n createGroupBtn() {\n this.createGroupOpen = true;\n this.formValidation='';\n this.createForm = this.fb.group({\n name: ['', [Validators.required]],\n })\n }\n\n /**创建分组模态框状态改变 */\n createGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**编辑字段分组 */\n editGroupBtn(itemName: string) {\n this.editGroupOpen = true;\n this.formValidation='';\n this.editGroupForm = this.fb.group({\n name: [itemName, [Validators.required]],\n })\n }\n\n /**编辑分组模态框状态改变 */\n editGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n\n /**创建字段分组保存 */\n createSave() {\n let input = this.createForm.value;\n this.modalBusy = true;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n this._FieldGroupAdminService.create(input).pipe(finalize(() => {\n this.modalBusy = false;\n this.createGroupOpen = false;\n this.formValidation='';\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**编辑字段分组保存 */\n editSave() {\n let input = this.editGroupForm.value;\n this.modalBusy = true;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n this._FieldGroupAdminService.update(this.fieldGroupId, input).pipe(finalize(() => {\n this.modalBusy = false;\n this.editGroupOpen = false;\n this.formValidation='';\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**删除字段分组1 */\n deleteGroupbtn(fieldGroupitem: any) {\n this.confirmation.warn(\n fieldGroupitem.name,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldGroupAdminService.delete(this.fieldGroupId).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.fieldGroupId = ''\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n });\n }\n\n /**字段分组改变 */\n fieldGroupChange(event) {\n this.fieldGroupId = event\n this.OnGroupClickBack.emit(event)\n }\n\n}\n\n\n","<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","\nimport { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { ListService, LIST_QUERY_DEBOUNCE_TIME, LocalizationService, PagedResultDto, ABP } from \"@abp/ng.core\";\nimport { ToasterService, ConfirmationService, Confirmation } from \"@abp/ng.theme.shared\";\nimport { Component, OnInit, inject } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { FieldAdminService, FieldDto, GetFieldsInput } from \"../../../proxy/admin/fields\";\nimport { finalize } from \"rxjs\";\nimport { ECmsComponent } from \"../../../enums\";\nimport { UpdateListService } from \"@dignite-ng/expand.core\";\n// import { UpdateListService } from \"../../../services/update-list.service\";\n\n@Component({\n selector: 'cms-fields',\n templateUrl: './fields.component.html',\n styleUrls: ['./fields.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Fields,\n },\n ]\n})\nexport class FieldsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n ) {\n \n }\n private _UpdateListService=inject(UpdateListService)\n /**表格单元格布局类型 */\n ColumnMode = ColumnMode;\n\n /**表格数据 */\n data: PagedResultDto<FieldDto> = {\n items: [],\n totalCount: 0,\n };\n\n /**过滤器 */\n filters = {} as GetFieldsInput;\n\n ngOnInit(): void {\n this.hookToQuery()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n getData(){\n this.list.get()\n }\n\n\n /**字段分组选择回调 */\n fieldGroupChange(event) {\n this.filters.groupId = event\n this.list.page=0\n this.list.get()\n }\n\n\n\n /**使用abp的list获取表格的字段数据列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._FieldAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<FieldDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n /**新建字段按钮 */\n toFieldsCreateBtn() {\n this.router.navigate(['/cms/admin/fields/create'],\n {\n queryParams: {}\n }\n )\n }\n\n /**删除字段 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n });\n }\n}\n","<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateFieldInputBase {\r\n /**分组id */\r\n groupId: any = ['', []];\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = [undefined, [Validators.required]];\r\n\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: CreateOrUpdateFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n","import { Component, ElementRef, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { LocalizationService } from '@abp/ng.core';\n@Component({\n selector: 'cms-create-or-edit-field',\n templateUrl: './create-or-edit-field.component.html',\n styleUrls: ['./create-or-edit-field.component.scss']\n})\nexport class CreateOrEditFieldComponent {\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormDynamicRef', { read: ViewContainerRef, static: true }) FormDynamicRef: ViewContainerRef;\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n constructor(\n public _FieldAbstractsService: FieldAbstractsService,\n private _CmsApiService: CmsApiService,\n private _FieldAdminService: FieldAdminService,\n private _LocalizationService: LocalizationService,\n\n ) {\n if (this._FieldAbstractsService.fieldGroupList.length == 0) {\n this._FieldAbstractsService.getfieldGroupList()\n }\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup | undefined) {\n if (v) {\n this._Entity = v;\n this.dataLoaded();\n }\n }\n get formControlName() {\n return this._Entity.get('formControlName')\n }\n /**选择的表单信息 */\n _selected_copy: any\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v || '';\n this._selected_copy = v\n // this.dataLoaded()\n }\n }\n\n\n async dataLoaded() {\n if (this._FieldAbstractsService.fromControlList.length == 0) {\n await this._FieldAbstractsService.getFromControlList()\n }\n\n if (this._Entity) {\n if (!this.formControlName.value) {\n this._Entity.patchValue({\n formControlName: this._FieldAbstractsService.fromControlList[0]?.name,\n })\n }\n this._Entity.setControl('name', new FormControl(this.nameInput.value || '', {\n validators: Validators.required,\n asyncValidators: [this.repetitionAsyncValidator()],\n updateOn: 'change'\n }))\n setTimeout(() => {\n this.submitclick.nativeElement.click();\n }, 0)\n }\n }\n\n\n /**name表单控件 */\n get nameInput() {\n return this._Entity.get('name')\n }\n\n nameInputBlur(event) {\n let value = event.target.value\n this.nameInput.patchValue(value)\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**定义异步验证方法 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n if (ctrl.value == this._selected?.name || !ctrl.value) {\n resolve(null);\n return\n }\n this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n formControlNameChange(event) {\n // this._selected='';\n }\n\n}\n","<form [formGroup]=\"_Entity\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n \n</form>","\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, inject, ViewChild, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { CmsApiService } from '../../../services';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '@dignite-ng/expand.core';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-create-field',\n templateUrl: './create-field.component.html',\n styleUrls: ['./create-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsCreate,\n },\n ]\n})\nexport class CreateFieldComponent {\n \n constructor(\n private fb: FormBuilder,\n public _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n \n ) { }\n private _UpdateListService=inject(UpdateListService)\n \n /**表单实体 */\n newEntity: FormGroup | undefined \n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n this.newEntity= this.fb.group(new CreateOrUpdateFieldInputBase())\n }\n\n /**触发提交按钮 */\n submitclickBtn(){\n this.isSubmit=true;\n this.submitclick.nativeElement.click()\n }\n isSubmit:boolean=false;\n\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n // if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n\n if (!this.newEntity.valid) return\n this._FieldAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n })\n }\n\n}\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { FieldAbstractsService, CmsApiService } from '../../../services';\nimport { ECmsComponent } from '../../../enums';\nimport { UpdateListService } from '@dignite-ng/expand.core';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n@Component({\n selector: 'cms-edit-field',\n templateUrl: './edit-field.component.html',\n styleUrls: ['./edit-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsEdit,\n },\n ],\n})\nexport class EditFieldComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n public _FieldAbstractsService: FieldAbstractsService,\n public _FieldAdminService: FieldAdminService,\n private route: ActivatedRoute,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n private _UpdateListService = inject(UpdateListService);\n private _ValidatorsService = inject(ValidatorsService);\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**字段id */\n fieldId: string = '';\n\n /**字段详情 */\n fieldDetails: any;\n\n\n isSubmit: boolean = false;\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n const _fieldId = this.route.snapshot.params.id;\n if (_fieldId) {\n this.fieldId = _fieldId;\n this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());\n await Promise.all([this._FieldAbstractsService.getFromControlList(), this.getFieldEdit()]);\n this.newEntity.patchValue({\n ...this.fieldDetails,\n formConfiguration: this.fieldDetails.formConfiguration,\n });\n }\n }\n\n /**获取字段详情 */\n getFieldEdit() {\n return new Promise((resolve, reject) => {\n this._FieldAdminService.get(this.fieldId).subscribe(res => {\n res.groupId = res.groupId ? res.groupId : '';\n this.fieldDetails = res;\n resolve(res);\n });\n });\n }\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.isSubmit = true;\n this.submitclick.nativeElement.click();\n }\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value;\n if (!this.isSubmit) return;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.newEntity.valid) return;\n this._FieldAdminService.update(this.fieldId, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card\">\n <div class=\"card-body\">\n <ng-container *ngIf=\"newEntity&&fieldDetails\">\n <cms-create-or-edit-field [selected]=\"fieldDetails\" [Entity]=\"newEntity\"></cms-create-or-edit-field>\n </ng-container>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum SectionType {\r\n Single = 0,\r\n Structure = 1,\r\n Channel = 2,\r\n}\r\n\r\nexport const sectionTypeOptions = mapEnumToOptions(SectionType);\r\n","\r\nimport {Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateSectionsInputBase {\r\n /**版块类型 */\r\n type: any = [0, [Validators.required]];\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n route: any = ['', [Validators.required]];\r\n /**页面模板 */\r\n template: any = ['', [Validators.required]];\r\n /**是否默认 */\r\n isDefault: any = [false, []];\r\n /**是否激活 */\r\n isActive: any = [true, []];\r\n \r\n\r\n\r\n constructor(data?: CreateOrUpdateSectionsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\nimport {\n ABP,\n LIST_QUERY_DEBOUNCE_TIME,\n ListService,\n LocalizationService,\n PagedResultDto,\n} from '@abp/ng.core';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { ECmsComponent } from '../../../enums';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { SectionAdminService, EntryTypeAdminService, GetSectionsInput, SectionDto } from '../../../proxy/admin/sections';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '@dignite-ng/expand.core';\n\nimport { ColumnMode } from '@swimlane/ngx-datatable';\nimport { SectionType, sectionTypeOptions } from '../../../proxy/sections';\nimport { finalize, Observable } from 'rxjs';\nimport { CreateOrUpdateSectionsInputBase } from './create-or-update-sections-input-base';\nimport { ValidatorsService } from '../../../services/validators.service';\n\n\n@Component({\n selector: 'cms-sections',\n templateUrl: './sections.component.html',\n styleUrls: ['./sections.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sections,\n },\n ],\n})\nexport class SectionsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private fb: FormBuilder,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n private _UpdateListService = inject(UpdateListService);\n siteList: any[] = [];\n ColumnMode = ColumnMode;\n data: PagedResultDto<SectionDto> = { items: [], totalCount: 0 };\n filters = {} as GetSectionsInput;\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) =>\n this._SectionAdminService.getList({ ...query, ...this.filters });\n const setData = (list: PagedResultDto<SectionDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n async ngOnInit(): Promise<void> {\n this.hookToQuery();\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get();\n });\n }\n siteIdChange() {\n this.list.page = 0;\n this.list.get();\n }\n visibleOpen: boolean = false;\n modalBusy: boolean = false;\n createOrEditForm: FormGroup | undefined;\n selected: any;\n _SectionType = SectionType;\n _sectionTypeOptions = sectionTypeOptions;\n @ViewChild('createOrEditModalSubmitBtn', { static: false })\n createOrEditModalSubmitBtn: ElementRef;\n VisibleChange(event) {\n if (!event) {\n this.selected = '';\n return;\n }\n }\n createSectionBtn() {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n }\n editSectionBtn(row) {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n this._SectionAdminService.get(row.id).subscribe(res => {\n this.createOrEditForm.patchValue(res);\n this.selected = res;\n });\n }\n deleteEntryType(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryTypeAdminService\n .delete(row.id)\n .pipe(finalize(() => {}))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n createOrEditSave() {\n if (this.selected) {\n return this.EditSave();\n }\n this.createSave();\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n createSave() {\n let input = this.createOrEditForm.value;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createOrEditForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .create(input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n EditSave() {\n setTimeout(() => {\n let input = this.createOrEditForm.value;\n input.concurrencyStamp = this.selected.concurrencyStamp;\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.createOrEditForm);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .update(this.selected.id, input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }, 100);\n }\n deletefield(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._SectionAdminService\n .delete(row.id)\n .pipe(finalize(() => {}))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n get displayNameInput() {\n return this.createOrEditForm.get('displayName');\n }\n get nameInput() {\n return this.createOrEditForm.get('name');\n }\n get routeInput() {\n return this.createOrEditForm.get('route');\n }\n get templateInput() {\n return this.createOrEditForm.get('template');\n }\n get typeInput() {\n return this.createOrEditForm.get('type');\n }\n radiochange() {\n this.routeInput.patchValue(this.routeInput.value);\n }\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n let routeInput = this.routeInput;\n let templateInput = this.templateInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n if (routeInput.value) return;\n routeInput.patchValue(pinyin + (this.typeInput.value === 0 ? '' : '/{slug}'));\n if (templateInput.value) return;\n templateInput.patchValue(pinyin + '/index');\n }\n setAsyncValidatorsFn() {\n this.createOrEditForm.setControl(\n 'name',\n new FormControl(this.nameInput.value || '', {\n validators: Validators.required,\n asyncValidators: this.nameRepetitionAsyncValidator(),\n })\n );\n this.createOrEditForm.setControl(\n 'route',\n new FormControl(this.routeInput.value || '', {\n validators: [Validators.required, this.forbiddenNameValidator()],\n asyncValidators: [this.routeRepetitionAsyncValidator()],\n })\n );\n }\n forbiddenNameValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let inputValue = control.value.toLocaleLowerCase();\n let forbidden =\n this.typeInput.value == 0 ? false : inputValue.includes('{slug}') ? false : true;\n return forbidden\n ? {\n repetition: this._LocalizationService.instant(\n `Cms::RouteVerificationTips`,\n this._LocalizationService.instant(\n `Cms::Enum:SectionType:` + SectionType[this.typeInput.value]\n ),\n '{slug}'\n ),\n }\n : null;\n };\n }\n nameRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('name');\n if (subslug.value == this.selected?.name) {\n resolve(null);\n return;\n }\n this._SectionAdminService.nameExists({ name: subslug.value }).subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionName{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n routeRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('route').value;\n if (subslug == this.selected?.route) {\n resolve(null);\n return;\n }\n this._SectionAdminService.routeExists({ route: subslug }).subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionRoute{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n}\n","<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}:</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">是</option>\n <option [value]=\"false\">否</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormArray, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrEditEntryTypeInputBase {\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n fieldTabs: any = new FormArray([])\r\n \r\n constructor(data?: CreateOrEditEntryTypeInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldTabsBase {\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n fields?: any = [[], []]\r\n constructor(data?: fieldTabsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldsBase {\r\n /**字段id Unique Name*/\r\n fieldId: any = ['', [Validators.required]];\r\n /**显示名称 Unique Name*/\r\n displayName: any = ['', [Validators.required]];\r\n /**必填 Unique Name*/\r\n required: any = [false, []];\r\n /**是否在列表中显示 Unique Name*/\r\n showOnList: any = [false, []];\r\n\r\n constructor(data?: fieldsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class fieldsInputBase {\r\n /**字段id */\r\n fieldId = ['', [Validators.required]];\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 Unique Name*/\r\n required: any = [false, []];\r\n /**在列表中展示 Unique Name*/\r\n showOnList: any = [false, []];\r\n constructor(data?: fieldsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n","import { EXTENSIONS_IDENTIFIER } from \"@abp/ng.components/extensible\";\nimport { LocalizationService } from \"@abp/ng.core\";\nimport { ToasterService } from \"@abp/ng.theme.shared\";\nimport { Component, ElementRef, inject, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormArray } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { FieldGroupAdminService, FieldAdminService } from \"../../../../proxy/admin/fields\";\nimport { EntryTypeAdminService } from \"../../../../proxy/admin/sections\";\nimport { CmsApiService } from \"../../../../services\";\nimport { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from \"./create-or-edit.-entry-type-input-base\";\nimport { Location } from '@angular/common';\nimport { ECmsComponent } from \"../../../../enums\";\nimport { ValidatorsService } from \"../../../../services/validators.service\";\nimport { UpdateListService } from \"@dignite-ng/expand.core\";\n@Component({\n selector: 'cms-create-or-edit',\n templateUrl: './create-or-edit.component.html',\n styleUrls: ['./create-or-edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.SectionsCreateOrEdit,\n },\n ],\n})\nexport class CreateOrEditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n public _FieldGroupAdminService: FieldGroupAdminService,\n public _FieldAdminService: FieldAdminService,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService\n ) {}\n private fb = inject(FormBuilder);\n private _UpdateListService = inject(UpdateListService);\n /**表单实体 */\n newEntity: FormGroup | undefined = this.fb.group(new CreateOrEditEntryTypeInputBase());\n /**版块id */\n sectionId: string = '';\n /**条目类型id */\n entryTypesId: string = '';\n /**条目类型详情 */\n entryTypesSelect: any;\n\n get fieldTabs() {\n return this.newEntity.get('fieldTabs') as FormArray;\n }\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click();\n }\n ngOnInit() {\n let sectionId = this.route.snapshot.params.sectionsId;\n this.entryTypesId = this.route.snapshot.params.entryTypesId || '';\n if (sectionId) {\n this.sectionId = sectionId;\n this.addControlToFieldTabs();\n this.getFieldGroup();\n }\n }\n\n /**给fieldTabs添加新控件 */\n addControlToFieldTabs(nameValue = '') {\n const newFormGroup = this.fb.group(\n new fieldTabsBase({\n name:\n this.fieldTabs.length === 0\n ? this._LocalizationService.instant(`Cms::FieldTab`)\n : nameValue,\n })\n );\n this.fieldTabs.push(newFormGroup);\n this.resultSource.push(newFormGroup.value);\n this.navActive = this.resultSource.length - 1;\n }\n\n /**获取字段分组 */\n getFieldGroup() {\n this._FieldGroupAdminService.getList({}).subscribe(async res => {\n let fieldList: any = await this.getFieldList();\n let fieldGroupList = res.items;\n fieldGroupList.unshift({\n id: null,\n name: 'UngroupedFields',\n });\n fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id);\n });\n this.fieldGroupList = fieldGroupList;\n this.fieldList = this.deepClone(fieldList);\n let entryTypesId = this.entryTypesId;\n if (entryTypesId) {\n this.entryTypesId = entryTypesId;\n this.getEntryTypes();\n }\n });\n }\n /**获取条目类型详情 */\n getEntryTypes() {\n let fieldList: any = this.deepClone(this.fieldList);\n this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {\n res.fieldTabs.forEach(el => {\n el.fields.forEach((eld: any) => {\n eld.id = eld.fieldId;\n eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;\n this.formRightGroup.push(eld);\n let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);\n fieldList.splice(fieldindex, 1);\n });\n });\n this.fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id);\n });\n this.newEntity.patchValue(res);\n this.entryTypesSelect = res;\n this.resultSource = res.fieldTabs;\n });\n }\n /**\n * 深拷贝--方法\n * $api.deepClone() */\n deepClone(obj: any) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n /**\n *\n * @param nameValue 获取所有字段\n */\n getFieldList() {\n return new Promise((resolve, rejects) => {\n this._FieldAdminService\n .getList({\n maxResultCount: 1000,\n })\n .subscribe((res: any) => {\n res.items.forEach(el => {\n el.required = false;\n el.showOnList = false;\n });\n resolve(res.items);\n });\n });\n }\n\n /**\n * 拖拽 功能*/\n /**数据源 */\n /**数据源-字段分组数据-包含字段数据 fields */\n fieldGroupList: any[] = [];\n /**数据源-所有字段列表 */\n fieldList: any[] = [];\n /**数据源拖拽的分组下标 */\n DataSourceGroupIndex: number;\n /**数据源拖拽的字段下标 */\n DataSourceFieldIndex: number;\n /**目标源 结果*/\n resultSource: any[] = [];\n\n /**从数据源拖拽的元素 */\n fromDataSourceDragEl: any;\n /**从目标源拖拽的元素 */\n fromResultSourceDragEl: any;\n\n /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */\n formRightGroup: any[] = [];\n /**从数据源开始拖拽 */\n fromDataSourceDragStart(element, fieldIndex, groupIndex) {\n this.fromDataSourceDragEl = element;\n this.DataSourceFieldIndex = fieldIndex;\n this.DataSourceGroupIndex = groupIndex;\n this.fromResultSourceDragEl = undefined;\n }\n /**从目标源开始拖拽 */\n fromResultSourceDragStart(element) {\n this.fromResultSourceDragEl = element;\n this.fromDataSourceDragEl = undefined;\n this.DataSourceFieldIndex = undefined;\n this.DataSourceGroupIndex = undefined;\n }\n /**拖拽到数据源时触发 */\n dragToDataSourceDropped() {\n //从数据源拖拽到数据源-排序\n if (this.fromDataSourceDragEl) {\n }\n let _fromResultSourceDragEl = this.fromResultSourceDragEl;\n let formRightGroup = this.deepClone(this.formRightGroup);\n let fieldList = this.deepClone(this.fieldList);\n\n if (_fromResultSourceDragEl) {\n //移动\n //从目标源拖拽到数据源\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(\n el => el.id == _fromResultSourceDragEl.id\n );\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);\n formRightGroup.splice(\n formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id),\n 1\n );\n this.fieldGroupList.forEach(el => {\n if (el.id == _fromResultSourceDragEl.groupId) {\n const elFieldsAll = fieldList.filter(els => els.groupId === el.id);\n el.fields = elFieldsAll.filter(\n item => !formRightGroup.some(itemB => item.id === itemB.id)\n );\n }\n });\n this.formRightGroup = formRightGroup;\n }\n\n this.setfieldTabsFrom();\n }\n /**拖拽到目标源时触发\n *\n */\n dragToResultSourceDropped(fieldTabstem: any, fieldTabsIndex) {\n const _fromDataSourceDragEl = this.fromDataSourceDragEl;\n //从数据源拖拽到目标源\n if (_fromDataSourceDragEl) {\n this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1);\n this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl);\n this.formRightGroup.push(_fromDataSourceDragEl);\n }\n\n this.setfieldTabsFrom();\n }\n /** 从目标源拖拽到目标源*/\n dragToResultSourceItemDropped(fieldsIndex) {\n const _fromResultSourceDragEl = this.fromResultSourceDragEl;\n if (_fromResultSourceDragEl) {\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(\n el => el.id == _fromResultSourceDragEl.id\n );\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);\n this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl);\n }\n this.setfieldTabsFrom();\n }\n /**设置formA表单 */\n setfieldTabsFrom() {\n let setArray = [];\n this.resultSource.forEach(el => {\n let fieldsArray = [];\n el.fields.forEach(item => {\n fieldsArray.push({\n fieldId: item.id || item.fieldId,\n displayName: item.displayName,\n required: item?.required,\n showOnList: item?.showOnList,\n });\n });\n setArray.push({\n name: el.name,\n fields: fieldsArray,\n });\n });\n this.newEntity.patchValue({\n fieldTabs: setArray,\n });\n }\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value;\n\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n \n if (this.entryTypesSelect) {\n this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n return;\n }\n input.sectionId = this.sectionId;\n this._EntryTypeAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this._location.back();\n this._UpdateListService.updateList();\n });\n }\n /**编辑Tabs表单 */\n editFieldTabsFrom: FormGroup | undefined;\n /**模态框状态 */\n visibleTabsOpen: boolean = false;\n /**是否是忙碌状态 */\n modalBusy: boolean = false;\n /**正在编辑的tabs */\n editFieldTabsSelect: any;\n /**正在选中的nav */\n navActive: any = 0;\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('editFieldTabsModalSubmitBtn', { static: false })\n editFieldTabsModalSubmitBtn: ElementRef;\n\n /**模态框状态改变回调 */\n VisibleTabsChange(event) {\n if (!event) {\n this.editFieldTabsSelect = '';\n return;\n }\n }\n /**新建增加FieldTabs */\n addFieldTabs() {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());\n this.visibleTabsOpen = true;\n }\n /**正在编辑的tab下标 */\n newEditFieldTabsIndex: number;\n /**编辑FieldTabs */\n editFieldTabs(item, i) {\n this.editFieldTabsFrom = this.fb.group(\n new fieldTabsBase({\n name: item.name,\n })\n );\n this.editFieldTabsSelect = item;\n this.visibleTabsOpen = true;\n this.newEditFieldTabsIndex = i;\n }\n\n /**保存编辑tabs表单 */\n editFieldTabsSave() {\n //编辑\n if (this.editFieldTabsSelect) {\n this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name;\n this.navActive = this.newEditFieldTabsIndex;\n } else {\n //新建\n this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);\n }\n this.visibleTabsOpen = false;\n this.setfieldTabsFrom();\n }\n /**删除某个tabs表单 */\n deleteFieldTabs(index) {\n this.fieldTabs.removeAt(index);\n this.resultSource.splice(index, 1);\n }\n\n /**编辑字段模态框状态 */\n visibleEditFieldOpen: boolean = false;\n /**编辑字段模态框表单 */\n editFieldFrom: FormGroup | undefined;\n /**表单控件模板-动态赋值表单控件-编辑字段 */\n @ViewChild('editFieldModalSubmitBtn', { static: false }) editFieldModalSubmitBtn: ElementRef;\n /**正在编辑的字段下标 */\n EditFieldIndex: number;\n /**编辑字段模态框状态状态改变回调 */\n VisibleEditFieldChange(event) {\n if (!event) {\n this.EditFieldIndex = undefined;\n return;\n }\n }\n /**打开编辑字段模态框 */\n EditFieldModalOpen(items, elIndex) {\n this.visibleEditFieldOpen = true;\n this.EditFieldIndex = elIndex;\n this.editFieldFrom = this.fb.group(\n new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex])\n );\n }\n /**保存编辑字段 */\n editFieldSave() {\n let input = this.editFieldFrom.value;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required;\n this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList;\n this.visibleEditFieldOpen = false;\n this.setfieldTabsFrom();\n }\n\n /**name表单控件 */\n get nameInput() {\n return this.newEntity.get('name');\n }\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\" (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n\n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\" (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToDataSourceDropped()\" style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}}\n </label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class EntryConfig {\r\n\r\n\r\n /**多选 */\r\n 'Entry.Multiple': any = [false, []];\r\n /**占位符 */\r\n 'Entry.Placeholder': any = ['', []];\r\n /**版块id */\r\n 'Entry.SectionId': any = ['', []];\r\n\r\n constructor(data?: EntryConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { AfterContentInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport { EntryConfig } from './entry-config';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\n@Component({\n selector: 'cms-entry-config',\n templateUrl: './entry-config.component.html',\n styleUrls: ['./entry-config.component.scss']\n})\nexport class EntryConfigComponent implements AfterContentInit{\n constructor(\n private fb: FormBuilder,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n ) {\n }\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n if (v == this._type) return\n\n this._type = v\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**站点列表 */\n siteList: any[any] = []\n\n /**选择的站点id */\n // siteId: string = ''\n siteId: any = new FormControl('')\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n ngAfterContentInit(): void {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n this.dataLoaded(2)\n }\n\n async dataLoaded(val) {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new EntryConfig()))\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n if (this._selected) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n /**获取站点列表 */\n // getsiteList() {\n // return new Promise((resolve, rejects) => {\n // this._SiteAdminService.getList({}).subscribe(res => {\n // this.siteList = res.items\n // this.siteId = res.items[0]?.id || ''\n // resolve(res.items)\n // })\n // })\n // }\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: this.siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.formConfiguration.patchValue({\n 'Entry.SectionId': res.items[0]?.id || ''\n })\n resolve(res.items)\n })\n })\n }\n\n /**切换站点 */\n async siteIdChange() {\n await this.getSiteOfSectionList()\n }\n}\n","<!-- <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div> -->\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EntryStatus } from '../../../proxy/entries/entry-status.enum';\n\n\n@Component({\n selector: 'cms-entry-control',\n templateUrl: './entry-control.component.html',\n styleUrls: ['./entry-control.component.scss']\n})\nexport class EntryControlComponent {\n\n\n constructor(\n ) {\n }\n private fb=inject(FormBuilder)\n private _EntryAdminService=inject(EntryAdminService)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n \n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || [];\n if (v) this.dataLoaded()\n }\n /**语言 */\n_culture: any\n @Input()\n public set culture(v: any) {\n if (v) {\n this._culture = v ;\n this.dataLoaded()\n }\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined\n\n /** */\n listOfOption: any[] = [];\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName&&this._culture) {\n \n await this.AfterInit()\n await this.getEntryAssignList()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n let extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n\n /**获取对应的条目 */\n getEntryAssignList(filter = '') {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n culture: this._culture,\n sectionId: this._fields.field.formConfiguration['Entry.SectionId'],\n skipCount: 0,\n maxResultCount: 30,\n status: EntryStatus.Published,\n filter: filter\n }).subscribe(res => {\n this.listOfOption = res.items\n resolve(true)\n })\n })\n }\n\n /** */\n async SelectChange(event) {\n await this.getEntryAssignList(event)\n }\n}\n","<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class MatrixConfig {\r\n // 矩阵类型\r\n 'MatrixBlockTypes': any = new FormArray([])\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class MatrixItemConfig {\r\n \r\n displayName: any = ['', [Validators.required]];\r\n /**字段名字 */\r\n name: any = ['', [Validators.required]];\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\n\r\n\r\nexport class matrixFieldInputBase {\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = ['TextEdit', [Validators.required]];\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: matrixFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild, } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatrixConfig, MatrixItemConfig } from './matrix-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-matrix-config',\n templateUrl: './matrix-config.component.html',\n styleUrls: ['./matrix-config.component.scss']\n})\nexport class MatrixConfigComponent {\n\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n\n /**表单控件组 */\n _FieldControlGroup: any[]\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n\n\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n\n\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n \n \n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._FieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n this._Entity.setControl('formConfiguration', this.fb.group(new MatrixConfig()))\n await this.setSelectValue()\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n resolve(true)\n })\n }\n\n setSelectValue() {\n return new Promise((resolve, rejects) => {\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['MatrixBlockTypes'].forEach(((el, index) => {\n this.addMatrixBlockTypeItem(el)\n el.fields.forEach((elf, indexf) => {\n this.addMatrixFieldItem(elf, index)\n })\n }))\n resolve(true)\n }\n })\n }\n\n /**获取表单配置 */\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n\n /**获取表单配置下的矩阵块表单数组 */\n get MatrixBlockTypes() {\n return this.formConfiguration.controls['MatrixBlockTypes'] as FormArray\n }\n\n\n /**模态框-状态 */\n matrixModalOpen: boolean = false\n /**模态框-是否正在编辑 */\n isMatrixModalEdit: any = false\n\n /**模态框-用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**模态框-表单 */\n matrixModalForm: FormGroup | undefined;\n\n /**表单控件模板-用于在form外提交submit */\n @ViewChild('matrixModalModalSubmit', { static: false }) matrixModalModalSubmit: ElementRef;\n\n /**矩阵块-选择的下标 */\n selectMatrixBlockIndex: any = 0\n\n /**矩阵块-选择的矩阵下字段的下标 */\n selectMatrixFieldIndex: any = 0\n\n /**模态框-状态改变 */\n matrixModalVisibleChange(event) {\n if (!event) {\n this.isMatrixModalEdit = false\n this.matrixModalForm = undefined\n return\n }\n }\n\n\n /**矩阵块--新增-打开模态框 */\n addMatrixBlockType() {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalOpen = true\n }\n\n\n\n /**模态框--矩阵表单保存提交 */\n createOrEditSave() {\n let input = this.matrixModalForm.value\n if (!this.matrixModalForm.valid) return\n if (this.isMatrixModalEdit) {\n let MatrixBlockTypesItem = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n MatrixBlockTypesItem.patchValue({\n ...input\n })\n } else {\n this.addMatrixBlockTypeItem(input)\n }\n this.matrixModalOpen = false\n }\n /**新增矩阵块-向数组表单中增加项 */\n addMatrixBlockTypeItem(input) {\n this.MatrixBlockTypes.push(new FormGroup({\n displayName: new FormControl(input.displayName, Validators.required),\n name: new FormControl(input.name, Validators.required),\n fields: new FormArray([])\n }))\n }\n /**编辑矩阵块 */\n EditMatrixBlock(input) {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalForm.patchValue({\n ...input\n })\n this.matrixModalOpen = true\n this.isMatrixModalEdit = true\n }\n\n /**删除矩阵块 */\n DeleteMatrixBlock(index) {\n this.MatrixBlockTypes.removeAt(index)\n }\n\n /**矩阵块-选择 */\n selectMatrixBlockChange(index) {\n this.selectMatrixBlockIndex = index\n }\n\n /**矩阵字段-新增 */\n addMatrixField() {\n this.addMatrixFieldItem('', this.selectMatrixBlockIndex)\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n this.selectMatrixFieldChange(0, MatrixFieldItemForm.length - 1)\n\n }\n /**矩阵字段-新增矩阵字段项 */\n addMatrixFieldItem(input: any = '', selectMatrixBlockIndex) {\n /**矩阵下标的矩阵项Form */\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n MatrixFieldItemForm.push(this.fb.group({\n /**字段名称 Display name of this field */\n displayName: [input.displayName, [Validators.required]],\n /**字段唯一名称 Unique Name*/\n name: [input.name, [Validators.required]],\n /**描述 说明 */\n description: [input.description, []],\n /**FieldType字段类型 表单控件名称 */\n formControlName: [input.formControlName || 'TextEdit', [Validators.required]],\n //动态表单配置\n formConfiguration: new FormGroup({}),\n }))\n //\n }\n\n /**删除矩阵字段项 */\n deleteMatrixField(MatrixFieldForm, index) {\n MatrixFieldForm.removeAt(index)\n this.selectMatrixFieldIndex = 0\n }\n\n /**矩阵字段-选择 */\n selectMatrixFieldChange(MatrixBlockIndex, MatrixFieldIndex) {\n this.selectMatrixFieldIndex = MatrixFieldIndex\n }\n\n get nameInput() {\n return this.matrixModalForm?.get('name')\n }\n get FieldnameInput() {\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n return MatrixFieldItemForm.at(this.selectMatrixFieldIndex).get('name')\n }\n\n /**矩阵displayNameInput字段失去焦点 */\n displayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**矩阵displayNameInput字段失去焦点 */\n MatrixFieldDisplayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let FieldnameInput = this.FieldnameInput\n if (FieldnameInput.value) return\n FieldnameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <div class=\"form-text\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" [entity]=\"itemf\"\n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'df-matrix-control',\n templateUrl: './matrix-control.component.html',\n styleUrls: ['./matrix-control.component.scss']\n})\nexport class MatrixControlComponent {\n\n constructor(\n private fb: FormBuilder,\n ) { }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n if (this._selected) this.fieldNameControl.patchValue(this._selected);\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let formConfiguration = this._fields.field.formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addMatrixControl(formConfiguration.MatrixBlockTypes.find(item => item.name == el.matrixBlockTypeName))\n });\n }\n this.MatrixBlockTypesList = formConfiguration.MatrixBlockTypes\n \n resolve(true)\n })\n }\n\n /**矩阵列表 */\n MatrixBlockTypesList: any[] = []\n\n /**增加指定矩阵控件项 */\n addMatrixControl(item) {\n this.fieldNameControl.push(this.fb.group({\n extraProperties: new FormGroup({\n name:new FormControl('')\n }),\n matrixBlockTypeName: [item.name],\n displayName: [item.displayName]\n }))\n }\n /**删除矩阵控件 */\n deleteMatrixControl(index) {\n this.fieldNameControl.removeAt(index)\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic [entity]=\"item\"\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class TableConfig {\r\n\r\n\r\n\r\n // 选项\r\n TableColumns: any = new FormArray([])\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class TableFormControl {\r\n /**列标题 */\r\n displayName: any = ['', [Validators.required]];\r\n /**空间配置 */\r\n formConfiguration: any = new FormGroup({})\r\n /**列名 */\r\n name: any = ['', [Validators.required]];\r\n //控件标识\r\n formControlName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 */\r\n required: any = [false];\r\n /**描述 */\r\n description: any = [''];\r\n\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { TableConfig, TableFormControl } from './table-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-table-config',\n templateUrl: './table-config.component.html',\n styleUrls: ['./table-config.component.scss']\n})\nexport class TableConfigComponent {\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n /**表单控件组 */\n _fieldControlGroup: any[]\n\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n get TableColumns() {\n return this.formConfiguration.controls['TableColumns'] as FormArray\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n /**增加选项 */\n addTableColumns() {\n this.TableColumns.push(this.fb.group({\n ...new TableFormControl(),\n formConfiguration: [{}]\n }))\n }\n /**删除某个选项 */\n deleteTableColumns(index) {\n this.TableColumns.removeAt(index)\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TableConfig()))\n this._fieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['TableColumns'].forEach(el => {\n this.addTableColumns()\n });\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n } else {\n this.addTableColumns()\n }\n resolve(true)\n })\n }\n itemForm: any\n /**选择表格的表单控件 */\n selectTableControl(event, i, item) {\n this.CurrentSelectionTableControlName = event.target.value\n this.tableSelectOpen = true\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.TableColumnsIndex = i\n this.itemForm = item\n }\n\n CurrentSelectionTableControlName: any\n\n /**正在创建或编辑的表格项下标 */\n TableColumnsIndex: any\n /**创建站点模态框状态 */\n tableSelectOpen: boolean = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n /**创建站点表单 */\n tableSelectForm: FormGroup | undefined;\n\n /**表格已选择数据 */\n _tableSelected: any\n\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('tableSelectModalSubmit', { static: false }) tableSelectModalSubmit: ElementRef;\n\n\n /**创建站点模态框状态改变 */\n tableSelectVisibleChange(event) {\n if (!event) {\n this._tableSelected = undefined\n this.tableSelectForm = undefined\n this.CurrentSelectionTableControlName = undefined\n this.TableColumnsIndex = undefined\n return\n }\n }\n /**表单保存提交 */\n createOrEditSave() {\n const formGroup = this.TableColumns.at(this.TableColumnsIndex) as FormGroup;\n let formConfigurationgroup = formGroup.get('formConfiguration') as FormGroup\n\n formConfigurationgroup.setValue({\n ...this.tableSelectForm.value['formConfiguration'],\n });\n this.tableSelectOpen = false\n }\n\n /**编辑站点按钮 */\n EditSitesBtn(rows, i) {\n\n this.CurrentSelectionTableControlName = rows.get('formControlName').value\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.tableSelectForm.patchValue({\n ...rows.value\n })\n this.tableSelectForm.get('formConfiguration').patchValue({\n ...rows.value['formConfiguration']\n })\n this._tableSelected = rows.value\n this.TableColumnsIndex = i\n this.tableSelectOpen = true\n }\n\n\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.TableColumns.at(index)\n this.TableColumns.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.TableColumns.insert(lastindex, controlAt)\n }\n\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event, item) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = item.get('name')\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'df-table-control',\n templateUrl: './table-control.component.html',\n styleUrls: ['./table-control.component.scss']\n})\nexport class TableControlComponent {\n\n constructor(\n // private fb: FormBuilder,\n ) {\n }\n private fb=inject(FormBuilder)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n \n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let formConfiguration = this._fields.field.formConfiguration\n this.formConfiguration = formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addTableControlItem()\n });\n this.fieldNameControl.patchValue(this._selected)\n } else {\n this.addTableControlItem()\n }\n resolve(true)\n })\n }\n /**增加表格项 */\n addTableControlItem(){\n this.fieldNameControl.push(this.fb.group({\n 'extraProperties':this.fb.group({})\n }))\n }\n /**删除表格项 */\n minusTableControlItem(index){\n this.fieldNameControl.removeAt(index)\n }\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.fieldNameControl.at(index)\n this.fieldNameControl.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.fieldNameControl.insert(lastindex, controlAt)\n this._selected=this.fieldNameControl.value\n }\n\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { EntryConfigComponent, EntryControlComponent } from \"./entry\";\r\nimport { MatrixConfigComponent } from \"./matrix/matrix-config.component\";\r\nimport { MatrixControlComponent } from \"./matrix/matrix-control.component\";\r\nimport { TableConfigComponent, TableControlComponent } from \"./table\";\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: any[] = [\r\n {\r\n displayName: '表格',\r\n name: 'Table',\r\n fieldConfigComponent: TableConfigComponent,\r\n fieldComponent: TableControlComponent,\r\n },\r\n {\r\n displayName: '矩阵',\r\n name: 'Matrix',\r\n fieldConfigComponent: MatrixConfigComponent,\r\n fieldComponent: MatrixControlComponent,\r\n },\r\n {\r\n displayName: '条目',\r\n name: 'Entry',\r\n fieldConfigComponent: EntryConfigComponent,\r\n fieldComponent: EntryControlComponent,\r\n },\r\n];\r\n","export default `\r\n.lpx-content-container .lpx-content{min-height:calc(100vh - 34px);padding:1.25em 2em 1.25em}h1,h2,h3,h4,h5,h6{color:inherit}.lpx-settings .lpx-context-menu{overflow:auto}\r\na {\r\n text-decoration: unset;\r\n}\r\n\r\n.form-label{\r\n font-size: 12px;\r\n}\r\n:root select{\r\n cursor: pointer; /* this will show the pointer when hovering */\r\n} \r\n.cdk-global-overlay-wrapper, .cdk-overlay-container {pointer-events: none;top: 0;left: 0;height: 100%;width: 100% }.cdk-overlay-container {position: fixed;z-index: 1000 }.cdk-overlay-container:empty {display: none }.cdk-global-overlay-wrapper, .cdk-overlay-connected-position-bounding-box, .cdk-overlay-pane {position: absolute;z-index: 1000;display: flex }.cdk-overlay-pane {pointer-events: auto;box-sizing: border-box;max-width: 100%;max-height: 100% }.cdk-overlay-backdrop {position: absolute;top: 0;bottom: 0;left: 0;right: 0;z-index: 1000;pointer-events: auto;transition: opacity .4s cubic-bezier(.25, .8, .25, 1);opacity: 0 }.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: 1 }.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: .6 }.cdk-overlay-dark-backdrop {background: rgba(0, 0, 0, .32) }.cdk-overlay-transparent-backdrop {transition: visibility 1ms linear, opacity 1ms linear;visibility: hidden;opacity: 1 }.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0;visibility: visible }.cdk-overlay-backdrop-noop-animation {transition: none }.cdk-overlay-connected-position-bounding-box {flex-direction: column;min-width: 1px;min-height: 1px }.cdk-global-scrollblock {position: fixed;width: 100%;overflow-y: scroll }.cdk-visually-hidden {border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;outline: 0;-webkit-appearance: none;-moz-appearance: none }.nz-overlay-transparent-backdrop, .nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0 }.ant-select, .ant-select-dropdown {margin: 0;line-height: 1.5715;box-sizing: border-box;font-feature-settings: 'tnum';list-style: none }.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight, .ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpIn }.ant-select-dropdown.ant-select-tree-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;overflow: auto }.ant-select-dropdown-hidden, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before {display: none }.ant-select-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;display: block }.ant-select-dropdown .cdk-virtual-scroll-content-wrapper {right: 0 }.ant-select-dropdown .full-width {contain: initial }.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper {position: static }.ant-select-dropdown .full-width .cdk-virtual-scroll-spacer {position: absolute;top: 0;width: 1px }.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownIn }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpOut }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownOut }\r\n\r\n/*** 表单验证样式 start */\r\n.was-validated .form-control:invalid, .form-control.is-invalid{\r\n border-color: #c00d49 !important;\r\n}\r\n/*** 表单验证样式 end */\r\n`;","import { Renderer2, RendererFactory2, inject } from \"@angular/core\";\r\nimport styles from \"../constants/styles\";\r\nlet isAppentStyle = false\r\nexport function appentStyle() {\r\n /**确保该路由守卫只会执行一次 */\r\n if (isAppentStyle) return\r\n isAppentStyle = true\r\n const rendererFactory = inject(RendererFactory2);\r\n let renderer: Renderer2=rendererFactory.createRenderer(null, null)\r\n const style = renderer.createElement('style');\r\n renderer.setProperty(style, 'innerHTML', styles);\r\n renderer.appendChild(document.head, style);\r\n}","import { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport {\r\n SectionsComponent,\r\n CreateOrEditComponent,\r\n FieldsComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n CreateComponent,\r\n EditComponent,\r\n} from '../components';\r\n\r\n/**版块 */\r\nexport const Sections_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(SectionsComponent);\r\n component.createSectionBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**版块-创建-编辑 */\r\nexport const Sections_Create_Or_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateOrEditComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**站点 */\r\n// export const Sites_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n// {\r\n// text: 'Cms::New',\r\n// action: data => {\r\n// const component = data.getInjected(SitesComponent);\r\n// // component.createSitesBtn();\r\n// },\r\n// btnClass: '',\r\n// permission: 'CmsAdmin.Entry.Create',\r\n// icon: 'fa fa-plus',\r\n// },\r\n// ]);\r\n/**字段 */\r\nexport const Fields_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(FieldsComponent);\r\n component.toFieldsCreateBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n\r\n/**条目 */\r\nexport const Entries_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(EntriesComponent);\r\n component.createEntriesBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**条目-创建 */\r\nexport const Entries_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n/**条目编辑 */\r\nexport const Entries_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n","import { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\n\r\n\r\n\r\n/**\r\n [ECmsComponent.Fields]: Fields_Entity_Props,\r\n*/\r\nexport const Fields_Entity_Props = EntityProp.createMany<any>([\r\n {\r\n type: ePropType.String,\r\n name: 'displayName',\r\n displayName: 'Cms::DisplayName',\r\n sortable: true,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'name',\r\n displayName: 'Cms::Name',\r\n sortable: true,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'formControlName',\r\n displayName: 'Cms::FormControlName',\r\n sortable: true,\r\n },\r\n {\r\n type: ePropType.String,\r\n name: 'groupName',\r\n displayName: 'Cms::Group',\r\n sortable: true,\r\n },\r\n {\r\n type: ePropType.DateTime,\r\n name: 'creationTime',\r\n displayName: 'Cms::CreationTime',\r\n sortable: true,\r\n },\r\n])\r\n\r\n\r\n\r\n\r\n\r\n// PageName.Guides\r\n// export const Guides_Entity_Props = EntityProp.createMany<any>([\r\n// {\r\n// type: ePropType.String,\r\n// name: 'fullName',\r\n// displayName: 'AbpTenantManagement::全称',\r\n// sortable: true,\r\n// // valueResolver: (data: any) => {\r\n// // let sss = `<a href=\"/guides/${data.record.id}\" class=\"underline-animate\" title=\"${data.record.fullName}\">${data.record.fullName}</a>`\r\n// // return of(sss);\r\n// // },\r\n// action: data => {\r\n// //EntriesComponent对应的工具栏页面\r\n// console.log(111111, 'data',data);\r\n\r\n// },\r\n// },\r\n\r\n// ]);\r\n","import { EntityAction } from \"@abp/ng.components/extensible\";\r\nimport { FieldsComponent } from \"../components\";\r\nimport { Router } from \"@angular/router\";\r\n// import { AbpTableComponent } from \"../view/table/abp-table.component\";\r\n\r\n// [PageName.Area]:Area_Entity_Action,\r\n/**\r\n [ECmsComponent.Fields]: Fields_Entity_Action,\r\n */\r\nexport const Fields_Entity_Action = EntityAction.createMany<any>([\r\n {\r\n text: 'AbpUi::Edit',\r\n action: data => {\r\n const router = data.getInjected(Router);\r\n router.navigate([`/cms/admin/fields/${data.record.id}/edit`])\r\n },\r\n permission: 'TravelyAdmin.Area.Update',\r\n },\r\n {\r\n text: 'AbpUi::Delete',\r\n action: data => {\r\n const component = data.getInjected(FieldsComponent);\r\n // component.clickbtn({ data, type: 'delete' })\r\n component.deletefield(data.record)\r\n },\r\n permission: 'TravelyAdmin.Area.Delete',\r\n },\r\n]);\r\n// [PageName.Area]:Area_Entity_Action,\r\n// export const Area_Entity_Action = EntityAction.createMany<any>([\r\n// {\r\n// text: 'AbpUi::Edit',\r\n// action: data => {\r\n// const component = data.getInjected(AreaComponent);\r\n// // component.clickbtn({ data, type: 'edit' })\r\n// component.createOrEditArea(data.record)\r\n// },\r\n// permission: 'TravelyAdmin.Area.Update',\r\n// },\r\n// {\r\n// text: 'AbpUi::Delete',\r\n// action: data => {\r\n// const component = data.getInjected(AreaComponent);\r\n// // component.clickbtn({ data, type: 'delete' })\r\n// component.deleteArea(data.record)\r\n// },\r\n// permission: 'TravelyAdmin.Area.Delete',\r\n// },\r\n// ]);\r\n","import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from \"@abp/ng.components/extensible\";\r\nimport { ConfigStateService } from \"@abp/ng.core\";\r\nimport { inject, InjectionToken } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { map, tap } from \"rxjs\";\r\nimport { ECmsComponent } from \"../enums\";\r\nimport { Entries_Create_Defaults_Toolbar_Action, Entries_Defaults_Toolbar_Action, Entries_Edit_Defaults_Toolbar_Action, Fields_Create_Defaults_Toolbar_Action, Fields_Defaults_Toolbar_Action, Fields_Edit_Defaults_Toolbar_Action, Sections_Create_Or_Edit_Defaults_Toolbar_Action, Sections_Defaults_Toolbar_Action } from \"./page-default-toolbar-actions\";\r\nimport { Fields_Entity_Props } from \"./table-default-entity-props\";\r\nimport { Fields_Entity_Action } from \"./table-default-entity-actions\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**默认-实体-操作 */\r\nexport const Default_Entity_Actions = {\r\n // [ModuleComponent.AbpTable]: Abp_Table_Entity_Action,\r\n [ECmsComponent.Fields]: Fields_Entity_Action,\r\n};\r\n\r\n/**默认实体属性-表格列名 */\r\nexport const Default_Entity_Props = {\r\n // [PageName.Guides]: Guides_Entity_Props,\r\n [ECmsComponent.Fields]: Fields_Entity_Props,\r\n};\r\n\r\n/**默认-工具栏-操作 */\r\nexport const Default_Toolbar_Actions = {\r\n // [ModuleComponent.Page]: Page_Toolbar_Action,\r\n // [eCmsKitPageName.FaqQuestion]:FaqQuestion_Toolbar_Action\r\n [ECmsComponent.Entries]: Entries_Defaults_Toolbar_Action,\r\n [ECmsComponent.Entries_Create]: Entries_Create_Defaults_Toolbar_Action,\r\n [ECmsComponent.Entries_Edit]: Entries_Edit_Defaults_Toolbar_Action,\r\n [ECmsComponent.Fields]: Fields_Defaults_Toolbar_Action,\r\n [ECmsComponent.FieldsCreate]: Fields_Create_Defaults_Toolbar_Action,\r\n [ECmsComponent.FieldsEdit]: Fields_Edit_Defaults_Toolbar_Action,\r\n [ECmsComponent.Sections]: Sections_Defaults_Toolbar_Action,\r\n [ECmsComponent.SectionsCreateOrEdit]: Sections_Create_Or_Edit_Defaults_Toolbar_Action,\r\n};\r\n\r\n\r\n/**\r\n * \r\n * @param 在Extensions_Props_Action_Token_Resolver方法中使用\r\n * @param 在.module.ts中使用,\r\n export class CmsModule {\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: Toolbar_Action_Contributors,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: Entity_Action_Contributors,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: Entity_Props_Contributors,\r\n useValue: options.entityPropContributors,\r\n },\r\n ]\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n }\r\n * \r\n * \r\n */\r\n/**实体-操作-贡献者 */\r\nexport const Entity_Action_Contributors =\r\n new InjectionToken<any>('Entity_Action_Contributors');\r\n\r\n/**实体-属性-贡献者 */\r\nexport const Entity_Props_Contributors =\r\n new InjectionToken<any>('Entity_Props_Contributors');\r\n\r\nexport const Toolbar_Action_Contributors = new InjectionToken<any>(\r\n 'Toolbar_Action_Contributors'\r\n);\r\n\r\n/**\r\n * 属性-操作-贡献者-解析器\r\n * \r\n * 用于放在-routing.module.ts路由守卫中\r\n * \r\n *\r\n const routes: Routes = [\r\n {\r\n path: 'demo',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [Extensions_Props_Action_Token_Resolver],\r\n children: []\r\n },\r\n ]\r\n * \r\n * \r\n */\r\n\r\nexport const Extensions_Props_Action_Token_Resolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n\r\n const config = { optional: true };\r\n\r\n const actionContributors = inject(Entity_Action_Contributors, config) || {};\r\n const propContributors = inject(Entity_Props_Contributors, config) || {};\r\n const toolbarContributors = inject(Toolbar_Action_Contributors, config) || {};\r\n\r\n\r\n return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe(\r\n map(entities => ({\r\n // [ModuleComponent.AbpTable]: entities.Tenant,\r\n })),\r\n mapEntitiesToContributors(configState, 'TenantManagement'),\r\n tap(objectExtensionContributors => {\r\n //actions\r\n mergeWithDefaultActions(\r\n extensions.entityActions,\r\n Default_Entity_Actions,\r\n actionContributors,\r\n );\r\n //props\r\n mergeWithDefaultProps(\r\n extensions.entityProps,\r\n Default_Entity_Props,\r\n objectExtensionContributors.prop,\r\n propContributors,\r\n );\r\n //Toolbar\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n Default_Toolbar_Actions,\r\n toolbarContributors\r\n );\r\n\r\n }),\r\n );\r\n};\r\n\r\n\r\n// /**\r\n// * @deprecated Use `tenantManagementExtensions_Props_Action_Token_Resolver` *function* instead.\r\n// */\r\n// @Injectable()\r\n// export class TenantManagementExtensionsGuard implements IAbpGuard {\r\n// protected readonly configState = inject(ConfigStateService);\r\n// protected readonly extensions = inject(ExtensionsService);\r\n\r\n// canActivate(): Observable<boolean> {\r\n// const config = { optional: true };\r\n\r\n// const actionContributors = inject(TENANT_MANAGEMENT_Entity_Action_Contributors, config) || {};\r\n// const propContributors = inject(TENANT_MANAGEMENT_Entity_Props_Contributors, config) || {};\r\n\r\n// return getObjectExtensionEntitiesFromStore(this.configState, 'TenantManagement').pipe(\r\n// map(entities => ({\r\n// // [eTenantManagementComponents.Tenants]: entities.Tenant,\r\n// })),\r\n// mapEntitiesToContributors(this.configState, 'TenantManagement'),\r\n// tap(objectExtensionContributors => {\r\n// mergeWithDefaultActions(\r\n// this.extensions.entityActions,\r\n// DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,\r\n// actionContributors,\r\n// );\r\n// mergeWithDefaultProps(\r\n// this.extensions.entityProps,\r\n// DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,\r\n// objectExtensionContributors.prop,\r\n// propContributors,\r\n// );\r\n// }),\r\n// map(() => true),\r\n// );\r\n// }\r\n// }\r\n\r\n","import { NgModule} from '@angular/core';\r\nimport { Routes, RouterModule} from '@angular/router';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n} from './components';\r\nimport {\r\n AuthGuard,\r\n PermissionGuard,\r\n} from '@abp/ng.core';\r\nimport { appentStyle } from './services/appent-content';\r\nimport { Extensions_Props_Action_Token_Resolver } from './resolvers/extensions-props-action-token.resolver';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'admin',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [Extensions_Props_Action_Token_Resolver, appentStyle],\r\n children: [\r\n { \r\n path: 'entries',\r\n\r\n children: [\r\n {\r\n path: '',\r\n component: EntriesComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateComponent,\r\n },\r\n {\r\n path: ':entrieId/edit',\r\n component: EditComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'fields',\r\n children: [\r\n {\r\n path: '',\r\n component: FieldsComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateFieldComponent,\r\n },\r\n {\r\n path: ':id/edit',\r\n component: EditFieldComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: 'sections',\r\n children: [\r\n {\r\n path: '',\r\n data: { keep: true },\r\n component: SectionsComponent,\r\n },\r\n {\r\n path: ':sectionsId/entry-types',\r\n children: [\r\n {\r\n path: 'create',\r\n component: CreateOrEditComponent,\r\n },\r\n {\r\n path: ':entryTypesId/edit',\r\n component: CreateOrEditComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class CmsRoutingModule {\r\n}\r\n","import { NgModule, NgModuleFactory, ModuleWithProviders, inject } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CmsRoutingModule } from './cms-routing.module';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n CreateOrEditEntriesComponent,\r\n CreateOrEditFieldComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldGroupComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n FieldControlGroup\r\n} from './components';\r\nimport {\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { DynamicFormModule } from '@dignite-ng/expand.dynamic-form';\r\nimport { fielFieldControlGroup } from '@dignite-ng/expand.file-explorer';\r\nimport { ckEditorFieldControlGroup } from '@dignite-ng/expand.ck-editor';\r\nimport { Toolbar_Action_Contributors, Entity_Action_Contributors, Entity_Props_Contributors } from './resolvers/extensions-props-action-token.resolver';\r\nimport { ExtensibleModule } from '@abp/ng.components/extensible';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n FieldGroupComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n CreateOrEditFieldComponent,\r\n CreateOrEditComponent,\r\n CreateComponent,\r\n EditComponent,\r\n CreateOrEditEntriesComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n \r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n FormsModule,\r\n CmsRoutingModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n NgbDropdownModule,\r\n PageModule,\r\n NzSelectModule,\r\n DynamicFormModule.forRoot({\r\n cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]\r\n }),\r\n ExtensibleModule\r\n ],\r\n exports: [\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n ],\r\n providers: [\r\n ],\r\n\r\n})\r\nexport class CmsModule {\r\n\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: Toolbar_Action_Contributors,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n {\r\n provide: Entity_Action_Contributors,\r\n useValue: options.entityActionContributors,\r\n },\r\n {\r\n provide: Entity_Props_Contributors,\r\n useValue: options.entityPropContributors,\r\n },\r\n ],\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of cms\r\n */\r\n\r\nexport * from './lib/cms.module';\r\nexport * from './lib/components/dynamic-form';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryAdminService","i2.SectionAdminService","i4","i5","i6","i7","i1.FieldGroupAdminService","i2.FormAdminService","i1","i3","i4.SectionAdminService","i5.EntryAdminService","i7.CmsApiService","i8","i11","i4.EntryAdminService","i9.CreateOrEditEntriesComponent","finalize","i2.FieldGroupAdminService","i4.FieldAbstractsService","i2.FieldAdminService","i8.FieldGroupComponent","i1.FieldAbstractsService","i2.CmsApiService","i3.FieldAdminService","i6.CmsApiService","i9.CreateOrEditFieldComponent","i2.FieldAbstractsService","i9","i10.CreateOrEditFieldComponent","i2.EntryTypeAdminService","i5.CmsApiService","i4.FieldGroupAdminService","i4.FieldAdminService","i5.EntryTypeAdminService","i2"],"mappings":"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"}