From 1d78a3e86410141835b5ccb9bc996ffdf4d642ff Mon Sep 17 00:00:00 2001 From: Vova Date: Sun, 30 Nov 2025 20:10:54 +0300 Subject: [PATCH] Init --- .env.development | 8 + .env.production | 8 + .gitignore | 24 + .vscode/extensions.json | 3 + README.md | 5 + index.html | 13 + package.json | 28 + postbuild.js | 39 + public/vite.svg | 1 + src/App.vue | 57 + src/assets/css/main.css | 2 + src/assets/css/tailwind.css | 8 + src/assets/css/temporary.css | 26 + src/assets/vue.svg | 1 + src/components/HelloWorld.vue | 43 + src/components/deals/DealModal.vue | 1474 +++++++++++++++++ src/components/deals/addEdit/DocAddModal.vue | 139 ++ src/components/deals/addEdit/DocsCard.vue | 142 ++ .../deals/addEdit/EmployeeAddModal.vue | 118 ++ src/components/deals/addEdit/EmployeeCard.vue | 70 + src/components/deals/addEdit/EmployeeList.vue | 26 + .../deals/addEdit/InnerDocAddModal.vue | 245 +++ src/components/deals/addEdit/InnerDocCard.vue | 223 +++ .../deals/addEdit/ObjectDetails.vue | 165 ++ .../deals/addEdit/RequisitionDetails.vue | 422 +++++ src/composables/useDeal.js | 46 + src/composables/useLaravelApi.js | 25 + src/main.js | 52 + src/services/authService.js | 46 + src/services/laravelApiService.js | 75 + src/shared/UI/MyButton.vue | 43 + src/shared/api/core.js | 42 + src/shared/api/deals.js | 67 + src/shared/api/index.js | 3 + src/shared/api/user.js | 7 + src/shared/assets/fonts/Lato-Black.woff | Bin 0 -> 366016 bytes src/shared/assets/fonts/Lato-Black.woff2 | Bin 0 -> 228576 bytes src/shared/assets/fonts/Lato-Bold.woff | Bin 0 -> 364080 bytes src/shared/assets/fonts/Lato-Bold.woff2 | Bin 0 -> 227460 bytes src/shared/assets/fonts/Lato-ExtraBold.woff | Bin 0 -> 346196 bytes src/shared/assets/fonts/Lato-ExtraBold.woff2 | Bin 0 -> 217708 bytes src/shared/assets/fonts/Lato-ExtraLight.woff | Bin 0 -> 350896 bytes src/shared/assets/fonts/Lato-ExtraLight.woff2 | Bin 0 -> 217612 bytes src/shared/assets/fonts/Lato-Light.woff | Bin 0 -> 360236 bytes src/shared/assets/fonts/Lato-Light.woff2 | Bin 0 -> 223384 bytes src/shared/assets/fonts/Lato-Medium.woff | Bin 0 -> 356904 bytes src/shared/assets/fonts/Lato-Medium.woff2 | Bin 0 -> 223020 bytes src/shared/assets/fonts/Lato-Regular.woff | Bin 0 -> 363612 bytes src/shared/assets/fonts/Lato-Regular.woff2 | Bin 0 -> 227260 bytes src/shared/assets/fonts/Lato-SemiBold.woff | Bin 0 -> 368676 bytes src/shared/assets/fonts/Lato-SemiBold.woff2 | Bin 0 -> 229264 bytes src/shared/assets/fonts/Lato-Thin.woff | Bin 0 -> 314564 bytes src/shared/assets/fonts/Lato-Thin.woff2 | Bin 0 -> 196964 bytes src/shared/assets/icons/archive.vue | 5 + src/shared/assets/icons/block.vue | 13 + src/shared/assets/icons/close.svg | 4 + src/shared/assets/icons/doc.svg | 13 + src/shared/assets/icons/dropdown-icon.vue | 5 + src/shared/assets/icons/edit.svg | 9 + src/shared/assets/icons/history-task.svg | 10 + src/shared/assets/icons/homeNav/chess.svg | 3 + src/shared/assets/icons/homeNav/facades.svg | 3 + src/shared/assets/icons/homeNav/floors.svg | 3 + src/shared/assets/icons/homeNav/grid.svg | 3 + src/shared/assets/icons/house.vue | 14 + src/shared/assets/icons/plus-green.svg | 10 + src/shared/assets/icons/plus.vue | 18 + src/shared/assets/icons/search-arrow.vue | 16 + src/shared/assets/icons/send.svg | 6 + src/shared/assets/icons/social/telegram.svg | 11 + src/shared/assets/icons/social/whatsapp.svg | 4 + src/shared/assets/icons/trash.svg | 7 + src/shared/assets/icons/typeNav/list.svg | 10 + src/shared/assets/icons/typeNav/table.svg | 25 + src/shared/assets/icons/typeNav/tile.svg | 33 + src/shared/assets/icons/unarchive.vue | 5 + src/shared/assets/icons/view.svg | 4 + src/shared/assets/icons/viewGrid/facades.svg | 3 + src/shared/assets/icons/viewGrid/floors.svg | 3 + src/shared/assets/icons/viewGrid/grid.svg | 13 + src/shared/assets/icons/viewGrid/layouts.svg | 3 + src/shared/assets/icons/viewGrid/list.svg | 5 + src/shared/assets/icons/viewGrid/tile.svg | 3 + src/shared/assets/images/complexes/close.svg | 5 + .../assets/images/complexes/complex1.jpg | Bin 0 -> 183017 bytes .../assets/images/complexes/complex1.png | Bin 0 -> 1178804 bytes .../assets/images/complexes/dropdown-icon.svg | 20 + src/shared/assets/images/complexes/edit.svg | 12 + .../assets/images/complexes/gallery.svg | 7 + .../assets/images/complexes/settings.svg | 8 + src/shared/assets/images/complexes/trash.svg | 10 + .../assets/images/deal/deal-doc-icon.png | Bin 0 -> 102728 bytes src/shared/assets/images/facades/facade1.png | Bin 0 -> 2477564 bytes src/shared/assets/images/floors/floor25.png | Bin 0 -> 2049325 bytes src/shared/assets/images/homes/home1.png | Bin 0 -> 365144 bytes .../assets/images/icons-bookmark-16-green.png | Bin 0 -> 208 bytes .../images/icons-bookmark-16-orange.png | Bin 0 -> 208 bytes .../assets/images/icons-bookmark-16-red.png | Bin 0 -> 218 bytes .../assets/images/icons-bookmark-22-green.png | Bin 0 -> 236 bytes .../images/icons-bookmark-22-orange.png | Bin 0 -> 237 bytes .../assets/images/icons-bookmark-22-red.png | Bin 0 -> 240 bytes .../assets/images/icons8-bookmark-22.png | Bin 0 -> 235 bytes src/shared/assets/images/info.png | Bin 0 -> 595 bytes .../assets/images/layoutsRoom/layout1.png | Bin 0 -> 59355 bytes .../assets/images/layoutsRoom/layout3d.png | Bin 0 -> 43939 bytes src/shared/assets/images/mark.png | Bin 0 -> 1978 bytes src/shared/assets/images/rocket-spinner.svg | 42 + src/shared/assets/images/said.png | Bin 0 -> 3041 bytes src/shared/assets/images/warning.png | Bin 0 -> 638 bytes tailwind.config.js | 36 + vite.config.js | 17 + yarn.lock | 1235 ++++++++++++++ 112 files changed, 5352 insertions(+) create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 index.html create mode 100644 package.json create mode 100644 postbuild.js create mode 100644 public/vite.svg create mode 100644 src/App.vue create mode 100644 src/assets/css/main.css create mode 100644 src/assets/css/tailwind.css create mode 100644 src/assets/css/temporary.css create mode 100644 src/assets/vue.svg create mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/deals/DealModal.vue create mode 100644 src/components/deals/addEdit/DocAddModal.vue create mode 100644 src/components/deals/addEdit/DocsCard.vue create mode 100644 src/components/deals/addEdit/EmployeeAddModal.vue create mode 100644 src/components/deals/addEdit/EmployeeCard.vue create mode 100644 src/components/deals/addEdit/EmployeeList.vue create mode 100644 src/components/deals/addEdit/InnerDocAddModal.vue create mode 100644 src/components/deals/addEdit/InnerDocCard.vue create mode 100644 src/components/deals/addEdit/ObjectDetails.vue create mode 100644 src/components/deals/addEdit/RequisitionDetails.vue create mode 100644 src/composables/useDeal.js create mode 100644 src/composables/useLaravelApi.js create mode 100644 src/main.js create mode 100644 src/services/authService.js create mode 100644 src/services/laravelApiService.js create mode 100644 src/shared/UI/MyButton.vue create mode 100644 src/shared/api/core.js create mode 100644 src/shared/api/deals.js create mode 100644 src/shared/api/index.js create mode 100644 src/shared/api/user.js create mode 100644 src/shared/assets/fonts/Lato-Black.woff create mode 100644 src/shared/assets/fonts/Lato-Black.woff2 create mode 100644 src/shared/assets/fonts/Lato-Bold.woff create mode 100644 src/shared/assets/fonts/Lato-Bold.woff2 create mode 100644 src/shared/assets/fonts/Lato-ExtraBold.woff create mode 100644 src/shared/assets/fonts/Lato-ExtraBold.woff2 create mode 100644 src/shared/assets/fonts/Lato-ExtraLight.woff create mode 100644 src/shared/assets/fonts/Lato-ExtraLight.woff2 create mode 100644 src/shared/assets/fonts/Lato-Light.woff create mode 100644 src/shared/assets/fonts/Lato-Light.woff2 create mode 100644 src/shared/assets/fonts/Lato-Medium.woff create mode 100644 src/shared/assets/fonts/Lato-Medium.woff2 create mode 100644 src/shared/assets/fonts/Lato-Regular.woff create mode 100644 src/shared/assets/fonts/Lato-Regular.woff2 create mode 100644 src/shared/assets/fonts/Lato-SemiBold.woff create mode 100644 src/shared/assets/fonts/Lato-SemiBold.woff2 create mode 100644 src/shared/assets/fonts/Lato-Thin.woff create mode 100644 src/shared/assets/fonts/Lato-Thin.woff2 create mode 100644 src/shared/assets/icons/archive.vue create mode 100644 src/shared/assets/icons/block.vue create mode 100644 src/shared/assets/icons/close.svg create mode 100644 src/shared/assets/icons/doc.svg create mode 100644 src/shared/assets/icons/dropdown-icon.vue create mode 100644 src/shared/assets/icons/edit.svg create mode 100644 src/shared/assets/icons/history-task.svg create mode 100644 src/shared/assets/icons/homeNav/chess.svg create mode 100644 src/shared/assets/icons/homeNav/facades.svg create mode 100644 src/shared/assets/icons/homeNav/floors.svg create mode 100644 src/shared/assets/icons/homeNav/grid.svg create mode 100644 src/shared/assets/icons/house.vue create mode 100644 src/shared/assets/icons/plus-green.svg create mode 100644 src/shared/assets/icons/plus.vue create mode 100644 src/shared/assets/icons/search-arrow.vue create mode 100644 src/shared/assets/icons/send.svg create mode 100644 src/shared/assets/icons/social/telegram.svg create mode 100644 src/shared/assets/icons/social/whatsapp.svg create mode 100644 src/shared/assets/icons/trash.svg create mode 100644 src/shared/assets/icons/typeNav/list.svg create mode 100644 src/shared/assets/icons/typeNav/table.svg create mode 100644 src/shared/assets/icons/typeNav/tile.svg create mode 100644 src/shared/assets/icons/unarchive.vue create mode 100644 src/shared/assets/icons/view.svg create mode 100644 src/shared/assets/icons/viewGrid/facades.svg create mode 100644 src/shared/assets/icons/viewGrid/floors.svg create mode 100644 src/shared/assets/icons/viewGrid/grid.svg create mode 100644 src/shared/assets/icons/viewGrid/layouts.svg create mode 100644 src/shared/assets/icons/viewGrid/list.svg create mode 100644 src/shared/assets/icons/viewGrid/tile.svg create mode 100644 src/shared/assets/images/complexes/close.svg create mode 100644 src/shared/assets/images/complexes/complex1.jpg create mode 100644 src/shared/assets/images/complexes/complex1.png create mode 100644 src/shared/assets/images/complexes/dropdown-icon.svg create mode 100644 src/shared/assets/images/complexes/edit.svg create mode 100644 src/shared/assets/images/complexes/gallery.svg create mode 100644 src/shared/assets/images/complexes/settings.svg create mode 100644 src/shared/assets/images/complexes/trash.svg create mode 100644 src/shared/assets/images/deal/deal-doc-icon.png create mode 100644 src/shared/assets/images/facades/facade1.png create mode 100644 src/shared/assets/images/floors/floor25.png create mode 100644 src/shared/assets/images/homes/home1.png create mode 100644 src/shared/assets/images/icons-bookmark-16-green.png create mode 100644 src/shared/assets/images/icons-bookmark-16-orange.png create mode 100644 src/shared/assets/images/icons-bookmark-16-red.png create mode 100644 src/shared/assets/images/icons-bookmark-22-green.png create mode 100644 src/shared/assets/images/icons-bookmark-22-orange.png create mode 100644 src/shared/assets/images/icons-bookmark-22-red.png create mode 100644 src/shared/assets/images/icons8-bookmark-22.png create mode 100644 src/shared/assets/images/info.png create mode 100644 src/shared/assets/images/layoutsRoom/layout1.png create mode 100644 src/shared/assets/images/layoutsRoom/layout3d.png create mode 100644 src/shared/assets/images/mark.png create mode 100644 src/shared/assets/images/rocket-spinner.svg create mode 100644 src/shared/assets/images/said.png create mode 100644 src/shared/assets/images/warning.png create mode 100644 tailwind.config.js create mode 100644 vite.config.js create mode 100644 yarn.lock diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..3b3dc67 --- /dev/null +++ b/.env.development @@ -0,0 +1,8 @@ +NODE_ENV=development +VITE_API_URL=https://joyworkdev.ru +VITE_LARAVEL_URL=https://llar.joyworkdev.ru +VITE_LARAVEL_API_URL=https://joyworkdev.ru +VITE_DEV_SESSION_ID=e74fad113507355529accbf75227afb8 +VITE_DEV_REQUISITION_ID=17539 +#VITE_BASIC_AUTH_USER=adminlogin +#VITE_BASIC_AUTH_PASS=adminpassword \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..1a45116 --- /dev/null +++ b/.env.production @@ -0,0 +1,8 @@ +NODE_ENV=production +VITE_API_URL=https://joyworkdev.ru +VITE_LARAVEL_URL=https://llar.joyworkdev.ru +VITE_LARAVEL_API_URL=https://joyworkdev.ru +VITE_DEV_SESSION_ID=e33a6f076567ef9c7c6a9e244f0fd626 +VITE_DEV_REQUISITION_ID=17539 +#VITE_BASIC_AUTH_USER=adminlogin +#VITE_BASIC_AUTH_PASS=adminpassword \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..1511959 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..02c5d90 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "deal", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build:dev": "vite build --mode development && node postbuild.js", + "build:prod": "vite build --mode production && node postbuild.js", + "preview": "vite preview" + }, + "dependencies": { + "@primevue/themes": "^4.4.1", + "axios": "^1.13.2", + "dayjs": "^1.11.19", + "primeicons": "^7.0.0", + "primevue": "^4.4.1", + "vue": "^3.5.24", + "vue-router": "^4.6.3" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.1.17", + "@vitejs/plugin-vue": "^6.0.2", + "sass": "^1.94.2", + "tailwindcss": "^4.1.17", + "vite": "^7.2.4" + } +} diff --git a/postbuild.js b/postbuild.js new file mode 100644 index 0000000..032d4b3 --- /dev/null +++ b/postbuild.js @@ -0,0 +1,39 @@ +// postbuild.js +import { readFile, writeFile } from 'fs/promises'; +import { join } from 'path'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const distPath = join(__dirname, 'dist'); +const assetsPath = join(distPath, 'assets'); + +// Читаем index.html +const indexHtml = await readFile(join(distPath, 'index.html'), 'utf-8'); + +// Обновлённые регулярки — учитывают /deal/assets/ и атрибуты +const jsMatch = indexHtml.match(/]+src="\/deal\/assets\/([^"]+\.js)"/); +const cssMatch = indexHtml.match(/]+href="\/deal\/assets\/([^"]+\.css)"/); + +if (!jsMatch || !cssMatch) { + console.error('❌ Не удалось найти JS/CSS в index.html'); + console.log('Содержимое index.html:', indexHtml.substring(0, 500)); // Для отладки + process.exit(1); +} + +const jsFile = jsMatch[1]; +const cssFile = cssMatch[1]; + +const jsContent = `// Авто-сгенерировано: postbuild.js +import '/deal/assets/${jsFile}';`; + +const cssContent = `/* Авто-сгенерировано: postbuild.js */ +@import '/deal/assets/${cssFile}';`; + +// Записываем прослойки +await writeFile(join(assetsPath, 'app.js'), jsContent); +await writeFile(join(assetsPath, 'app.css'), cssContent); + +console.log('✅ Прослойки созданы: app.js и app.css'); \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..8402f75 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,57 @@ + + + + diff --git a/src/assets/css/main.css b/src/assets/css/main.css new file mode 100644 index 0000000..977a9a2 --- /dev/null +++ b/src/assets/css/main.css @@ -0,0 +1,2 @@ +@import '@/assets/css/temporary.css'; +@import '@/assets/css/tailwind.css'; diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css new file mode 100644 index 0000000..f61ac57 --- /dev/null +++ b/src/assets/css/tailwind.css @@ -0,0 +1,8 @@ +@import "tailwindcss"; + +@source "../../**/*.{vue,js,ts,jsx,tsx}"; +@source "../../../index.html"; + +@theme { + +} \ No newline at end of file diff --git a/src/assets/css/temporary.css b/src/assets/css/temporary.css new file mode 100644 index 0000000..0447026 --- /dev/null +++ b/src/assets/css/temporary.css @@ -0,0 +1,26 @@ +.addDeal { + .p-2 { + padding: calc(var(--spacing) * 2)!important; + } + .p-4 { + padding: calc(var(--spacing) * 4)!important; + } + .mb-3 { + margin-bottom: calc(var(--spacing) * 3)!important; + } + .ml-4 { + margin-left: calc(var(--spacing) * 4)!important; + } + .mr-4 { + margin-right: calc(var(--spacing) * 4)!important; + } + .p-4 { + padding: calc(var(--spacing) * 4)!important; + } + .mt-4 { + margin-top: calc(var(--spacing) * 4)!important; + } + .ml-auto { + margin-left: auto!important; + } +} \ No newline at end of file diff --git a/src/assets/vue.svg b/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..546ebbc --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/deals/DealModal.vue b/src/components/deals/DealModal.vue new file mode 100644 index 0000000..8c7bcad --- /dev/null +++ b/src/components/deals/DealModal.vue @@ -0,0 +1,1474 @@ + + + + + diff --git a/src/components/deals/addEdit/DocAddModal.vue b/src/components/deals/addEdit/DocAddModal.vue new file mode 100644 index 0000000..681edd7 --- /dev/null +++ b/src/components/deals/addEdit/DocAddModal.vue @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/deals/addEdit/DocsCard.vue b/src/components/deals/addEdit/DocsCard.vue new file mode 100644 index 0000000..2082254 --- /dev/null +++ b/src/components/deals/addEdit/DocsCard.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/components/deals/addEdit/EmployeeAddModal.vue b/src/components/deals/addEdit/EmployeeAddModal.vue new file mode 100644 index 0000000..2a16819 --- /dev/null +++ b/src/components/deals/addEdit/EmployeeAddModal.vue @@ -0,0 +1,118 @@ + + + + + \ No newline at end of file diff --git a/src/components/deals/addEdit/EmployeeCard.vue b/src/components/deals/addEdit/EmployeeCard.vue new file mode 100644 index 0000000..13d877e --- /dev/null +++ b/src/components/deals/addEdit/EmployeeCard.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/components/deals/addEdit/EmployeeList.vue b/src/components/deals/addEdit/EmployeeList.vue new file mode 100644 index 0000000..8edea59 --- /dev/null +++ b/src/components/deals/addEdit/EmployeeList.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/deals/addEdit/InnerDocAddModal.vue b/src/components/deals/addEdit/InnerDocAddModal.vue new file mode 100644 index 0000000..72206de --- /dev/null +++ b/src/components/deals/addEdit/InnerDocAddModal.vue @@ -0,0 +1,245 @@ +