From afcfcfe690ba49baaaf103cac69190c85798c1c7 Mon Sep 17 00:00:00 2001 From: Dhaverd Date: Tue, 17 Jun 2025 23:37:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BD=D0=BE=D0=B2=D1=83=D1=8E=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D1=83=20=D1=81=D0=BE=20=D1=81=D1=81=D1=8B?= =?UTF-8?q?=D0=BB=D0=BA=D0=B0=D0=BC=D0=B8=20=D0=BD=D0=B0=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=BE=D0=B8=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8?= =?UTF-8?q?=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ServiceLinksController.php | 15 ++++++ app/Models/ServicesLink.php | 11 ++++ ..._14_085734_create_services_links_table.php | 29 ++++++++++ resources/service_links.js | 18 +++++++ resources/stores/services_list.js | 21 ++++++++ .../views/ServiceLinks/ServicesLinks.vue | 54 +++++++++++++++++++ resources/views/ServiceLinks/links.blade.php | 13 +++++ routes/api_v1.php | 1 + routes/web.php | 4 ++ vite.config.js | 3 +- 10 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/ServiceLinksController.php create mode 100644 app/Models/ServicesLink.php create mode 100644 database/migrations/2025_06_14_085734_create_services_links_table.php create mode 100644 resources/service_links.js create mode 100644 resources/stores/services_list.js create mode 100644 resources/views/ServiceLinks/ServicesLinks.vue create mode 100644 resources/views/ServiceLinks/links.blade.php diff --git a/app/Http/Controllers/ServiceLinksController.php b/app/Http/Controllers/ServiceLinksController.php new file mode 100644 index 0000000..9ac78de --- /dev/null +++ b/app/Http/Controllers/ServiceLinksController.php @@ -0,0 +1,15 @@ +all(); + } +} diff --git a/app/Models/ServicesLink.php b/app/Models/ServicesLink.php new file mode 100644 index 0000000..e36755d --- /dev/null +++ b/app/Models/ServicesLink.php @@ -0,0 +1,11 @@ +id(); + $table->string('name', 255); + $table->string('link', 255); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('services_links'); + } +}; diff --git a/resources/service_links.js b/resources/service_links.js new file mode 100644 index 0000000..4e83bb2 --- /dev/null +++ b/resources/service_links.js @@ -0,0 +1,18 @@ +import './js/bootstrap'; +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from './views/ServiceLinks/ServicesLinks.vue' +import { createVuetify } from 'vuetify' +import 'vuetify/styles' +import * as components from 'vuetify/components' +import * as directives from 'vuetify/directives' +import '@mdi/font/css/materialdesignicons.css' + +const pinia = createPinia(); + +const vuetify = createVuetify({ + components, + directives +}); + +createApp(App).use(vuetify).use(pinia).mount("#app"); diff --git a/resources/stores/services_list.js b/resources/stores/services_list.js new file mode 100644 index 0000000..46d9a16 --- /dev/null +++ b/resources/stores/services_list.js @@ -0,0 +1,21 @@ +import {defineStore} from "pinia"; +import axios from "axios"; + +export const useServicesList = defineStore('services_list', { + state: () => ({ + links: Object + }), + getters: { + + }, + actions: { + async getList(){ + await axios + .get('/api/v1/services_list') + .then((response) => { + this.links = response.data; + }); + } + + }, +}) diff --git a/resources/views/ServiceLinks/ServicesLinks.vue b/resources/views/ServiceLinks/ServicesLinks.vue new file mode 100644 index 0000000..6682286 --- /dev/null +++ b/resources/views/ServiceLinks/ServicesLinks.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/resources/views/ServiceLinks/links.blade.php b/resources/views/ServiceLinks/links.blade.php new file mode 100644 index 0000000..ed78478 --- /dev/null +++ b/resources/views/ServiceLinks/links.blade.php @@ -0,0 +1,13 @@ + + + + + + Services Links + @vite('resources/service_links.js') + @vite('resources/css/app.css') + + +
+ + diff --git a/routes/api_v1.php b/routes/api_v1.php index c521186..c73445a 100644 --- a/routes/api_v1.php +++ b/routes/api_v1.php @@ -20,3 +20,4 @@ Route::get('/schedules', 'App\Http\Controllers\SchedulesController@index')->name Route::get('/dates', 'App\Http\Controllers\SchedulesController@mmDate')->name('dates'); Route::get('/phrases', 'App\Http\Controllers\BasyaPhrasesController@index')->name('phrases'); Route::post('/rating', 'App\Http\Controllers\RatingController@index')->name('rating'); +Route::get('/services_list', 'App\Http\Controllers\ServiceLinksController@index')->name('services_list'); diff --git a/routes/web.php b/routes/web.php index a7da9c8..2e39981 100644 --- a/routes/web.php +++ b/routes/web.php @@ -33,6 +33,10 @@ Route::get('/friday', function () { return view('friday/friday'); }); +Route::get('/services_list', function () { + return view('ServiceLinks/links'); +}); + Route::get('/download/{file}', 'App\Http\Controllers\DownloadController@download'); diff --git a/vite.config.js b/vite.config.js index ad5b65b..57171e8 100644 --- a/vite.config.js +++ b/vite.config.js @@ -12,7 +12,8 @@ export default defineConfig({ 'resources/welcome.js', 'resources/caesar.js', 'resources/basya.js', - 'resources/friday.js' + 'resources/friday.js', + 'resources/service_links.js' ], refresh: true, }), -- 2.34.1 From 5715c4c6c8013e99608b1aedafa36768d53ce1d1 Mon Sep 17 00:00:00 2001 From: Dhaverd Date: Wed, 18 Jun 2025 14:11:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B0=D0=B4=D0=B0=D0=BF=D1=82=D0=B8=D0=B2=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=BF=D0=BE=D0=B4=20=D0=BC=D0=BE=D0=B1=D0=B8?= =?UTF-8?q?=D0=BB=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/ServiceLinks/ServicesLinks.vue | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/resources/views/ServiceLinks/ServicesLinks.vue b/resources/views/ServiceLinks/ServicesLinks.vue index 6682286..a0e381c 100644 --- a/resources/views/ServiceLinks/ServicesLinks.vue +++ b/resources/views/ServiceLinks/ServicesLinks.vue @@ -8,7 +8,10 @@ export default { data: () => ({ links: ref([]), servicesListStore: useServicesList(), - fetching: true + fetching: true, + windowHeight: document.documentElement.clientHeight, + windowWidth: document.documentElement.clientWidth, + isWide: window.innerWidth >= 654 }), mounted() { this.fetching = true; @@ -16,24 +19,41 @@ export default { this.links = this.servicesListStore.links; this.fetching = false; }); - } + this.myEventHandler(); + window.addEventListener("resize", this.myEventHandler, { passive: true }); + }, + methods: { + myEventHandler(e) { + this.windowHeight = document.documentElement.clientHeight; + this.windowWidth = document.documentElement.clientWidth; + this.isWide = this.windowWidth >= 654; + } + }, + created() { + window.addEventListener("resize", this.myEventHandler); + }, }