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

View File

@@ -5,7 +5,8 @@
<parent> <parent>
<groupId>org.itprom</groupId> <groupId>org.itprom</groupId>
<artifactId>supp-forms-based-app</artifactId> <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> <relativePath>../pom.xml</relativePath>
</parent> </parent>
@@ -22,7 +23,7 @@
<modules> <modules>
<module>app</module> <module>app</module>
<!-- Add custom new modules here --> <!-- Add custom new modules here -->
</modules> </modules>
<properties> <properties>
@@ -40,6 +41,8 @@
<h2.version>2.2.224</h2.version> <h2.version>2.2.224</h2.version>
<springdoc.version>3.0.0</springdoc.version> <springdoc.version>3.0.0</springdoc.version>
<commons-io.version>2.14.0</commons-io.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> </properties>
<dependencyManagement> <dependencyManagement>

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,9 @@
"@itprom/user": "^1.0.0", "@itprom/user": "^1.0.0",
"@itprom/user-profile": "^1.0.0", "@itprom/user-profile": "^1.0.0",
"@itprom/help": "^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", "@noble/ciphers": "^2.1.1",
"@stomp/stompjs": "^7.2.1", "@stomp/stompjs": "^7.2.1",
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
@@ -73,4 +76,4 @@
"vite-plugin-checker": "^0.12.0", "vite-plugin-checker": "^0.12.0",
"vue-tsc": "^3.1.5" "vue-tsc": "^3.1.5"
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,10 +6,17 @@
"composite": true, "composite": true,
"baseUrl": ".", "baseUrl": ".",
"paths": { "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, "strict": false,
"noUnusedLocals": false, "noUnusedLocals": false,
"noUnusedParameters": false, "noUnusedParameters": false,
@@ -24,6 +31,13 @@
"isolatedModules": true, "isolatedModules": true,
"noEmit": true "noEmit": true
}, },
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"], "include": [
"exclude": ["src/**/__tests__/*", "src/modules/**/dist"] "env.d.ts",
"src/**/*",
"src/**/*.vue"
],
"exclude": [
"src/**/__tests__/*",
"src/modules/**/dist"
]
} }

View File

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

View File

@@ -6,7 +6,8 @@
<!-- Common project info --> <!-- Common project info -->
<groupId>org.itprom</groupId> <groupId>org.itprom</groupId>
<artifactId>supp-forms-based-app</artifactId> <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> <description>supp-forms-based-app</description>
<packaging>pom</packaging> <packaging>pom</packaging>