Refactoring base files

This commit is contained in:
Sergei_Verbitski
2026-03-23 18:47:49 +03:00
parent 8575fd6db8
commit 76bea61d91
12 changed files with 114 additions and 8194 deletions

39
README.md Normal file
View File

@@ -0,0 +1,39 @@
# Приложение с базовой конфигурацией для создания приложений на основе СУПП-Форм
Приложение содержит базовые модули СУПП, подключенные как внешние зависимости.
Дальнейшая разработка модулей, специфичных для конкретной версии, ведётся по аналогии с СУПП-Формами.
Данный репозиторий предназначен для создания приложений на основе СУПП-Форм путём fork репозитория
и последующей разработки/добавления модулей под конкретного заказчика.
## Базовые настройки
1. Выполнить fork репозитория
2. Создать новый проект из репозитория (Project from Version Control)
3. В модуле `backend/app` внести изменения в конфиги: `application.yaml`, `application-stage.yaml` (порты, БД и т.д.)
4. В корневом POM-файле, см. [pom.xml](pom.xml), указать версию:
```xml
<version>1.0.0-Company</version>
```
Эту же версию указать в дочерних POM (backend, app) в секции parent, чтобы версии новых модулей были согласованы.
5. Указать базовую версию СУПП в POM backend модуля, раздел properties
см. файл [pom.xml](backend/pom.xml) строка 45
```xml
<supp-base.version>1.0.0</supp-base.version>
```
Настройка подключаемых (готовых) модулей может осуществляться более точечно, через указание конкретных версий для каждого модуля.
6. Указать версии frontend-модулей в корневом package.json
7. После настройки необходимо попробовать собрать и запустить приложение. Удостовериться что базовые настройки не вызывают конфликта
и приложения работает как ожидается.
8.
После выполнения этих пунктов можно продолжать добавление/разработку новых модулей.
### PS
Для удобства в проекте оставлены **TODO** комментарии для быстрого поиска необходимых мест настройки
## Добавление новых модулей
Модули в данное приложение могут добавляться 2-мя способами:
1. Через подключение уже существующих версий модулей, совместимых с текущей версией базовых модулей
2. Через добавление новых модулей в приложение (модули добавляются аналогично тому, как это описано в документации базового
репозитория СУПП-Формы)

View File

@@ -10,7 +10,8 @@
<parent>
<groupId>org.itprom</groupId>
<artifactId>backend</artifactId>
<version>1.0.0</version>
<!-- TODO: Указать базовый номер версии приложения, например: 1.0.0-CompanyName -->
<version>1.0.0-CompanyName</version>
</parent>
<developers>
@@ -33,7 +34,7 @@
<dependency>
<groupId>org.itprom</groupId>
<artifactId>backend</artifactId>
<version>1.0.0</version>
<version>customer</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -53,42 +54,63 @@
<dependency>
<groupId>org.itprom</groupId>
<artifactId>base-config</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- Core -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- Log -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>log</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- Menu -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>menu</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- Localization -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>l10n</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- Notification -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>notification</artifactId>
<version>${project.version}</version>
<version>${supp-base.version}</version>
</dependency>
<!-- TableLayout -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>tablelayout</artifactId>
<version>${supp-base.version}</version>
</dependency>
<!-- shift -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>shift</artifactId>
<version>${supp-base.version}</version>
</dependency>
<!-- shiftSeq -->
<dependency>
<groupId>org.itprom</groupId>
<artifactId>shiftseq</artifactId>
<version>${supp-base.version}</version>
</dependency>
</dependencies>

View File

@@ -5,7 +5,8 @@
<parent>
<groupId>org.itprom</groupId>
<artifactId>supp-forms-based-app</artifactId>
<version>1.0.0</version>
<!-- TODO: Указать текущий номер версии приложения, например: 1.0.0-CompanyName -->
<version>1.0.0-CompanyName</version>
<relativePath>../pom.xml</relativePath>
</parent>
@@ -40,6 +41,8 @@
<h2.version>2.2.224</h2.version>
<springdoc.version>3.0.0</springdoc.version>
<commons-io.version>2.14.0</commons-io.version>
<!-- TODO: Указать номер версии базовых модулей приложения, например: 1.0.0 (основные модули будут взяты из базовой версии СУПП-Формы 1.0.0) -->
<supp-base.version>1.0.0</supp-base.version>
</properties>
<dependencyManagement>

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,9 @@
"@itprom/user": "^1.0.0",
"@itprom/user-profile": "^1.0.0",
"@itprom/help": "^1.0.0",
"@itprom/profession": "^1.0.0",
"@itprom/shift-seq": "^1.0.0",
"@itprom/shift": "^1.0.0",
"@noble/ciphers": "^2.1.1",
"@stomp/stompjs": "^7.2.1",
"@vueup/vue-quill": "^1.2.0",

View File

@@ -158,6 +158,11 @@ const pkg = `
"types": "./dist/index.d.ts",
"import": "./dist/index.es.js",
"require": "./dist/index.cjs.js"
},
"./*": {
"types": "./dist/*.d.ts",
"import": "./dist/*.js",
"require": "./dist/*.cjs.js"
}
}
}

View File

@@ -17,6 +17,6 @@
"department",
"shift",
"person",
"shift-seq",
"help"
"help",
"shiftSeq"
]

View File

@@ -17,9 +17,9 @@ const modules: Record<string, () => Promise<any>> = {
role: () => import('@itprom/role'),
help: () => import('@itprom/help'),
message: () => import('@itprom/message'),
// shift: () => import('@itprom/shift'),
// shiftSeq: () => import('@itprom/shift-seq'),
// profession: () => import('@itprom/profession'),
shift: () => import('@itprom/shift'),
shiftSeq: () => import('@itprom/shift-seq'),
profession: () => import('@itprom/profession'),
};
/**

View File

@@ -3,7 +3,10 @@
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@itprom/*": ["./src/modules/*/src/index.ts"]
"@itprom/*": [
"./node_modules/@itprom/*",
"./src/modules/*/src/index.ts"
]
}
}
}

View File

@@ -6,10 +6,17 @@
"composite": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"@itprom/*": ["./src/modules/*/src/index.ts"]
"@/*": [
"./src/*"
],
"@itprom/*": [
"./node_modules/@itprom/*",
"./src/modules/*/src/index.ts"
]
},
"types": ["vite/client"],
"types": [
"vite/client"
],
"strict": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
@@ -24,6 +31,13 @@
"isolatedModules": true,
"noEmit": true
},
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": ["src/**/__tests__/*", "src/modules/**/dist"]
"include": [
"env.d.ts",
"src/**/*",
"src/**/*.vue"
],
"exclude": [
"src/**/__tests__/*",
"src/modules/**/dist"
]
}

View File

@@ -66,7 +66,6 @@ function getModuleAliases() {
if (fs.existsSync(modulesDir)) {
const folders = fs.readdirSync(modulesDir);
folders.forEach((folder) => {
// Проверяем, что это папка и внутри есть src/index.ts
const moduleSrcPath = path.join(modulesDir, folder, 'src', 'index.ts');
if (fs.existsSync(moduleSrcPath)) {
aliases[`@itprom/${folder}`] = moduleSrcPath;

View File

@@ -6,7 +6,8 @@
<!-- Common project info -->
<groupId>org.itprom</groupId>
<artifactId>supp-forms-based-app</artifactId>
<version>1.0.0</version>
<!-- TODO: Указать текущий номер версии приложения, например: 1.0.0-CompanyName -->
<version>1.0.0-CompanyName</version>
<description>supp-forms-based-app</description>
<packaging>pom</packaging>