diff --git a/i18n-2.xlsm b/i18n-2.xlsm index 753acfe..ae7e743 100644 Binary files a/i18n-2.xlsm and b/i18n-2.xlsm differ diff --git a/src/App.vue b/src/App.vue index 151711b..64de8e0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,7 +13,6 @@ import { useI18n } from 'vue-i18n' import type { CompanyParams } from 'types/Company' - const authStore = useAuthStore() const settingsStore = useSettingsStore() const sseStore = useSSEStore() @@ -24,7 +23,7 @@ const tg = inject('tg') as WebApp tg.onEvent('settingsButtonClicked', async () => { - await router.push({ name: 'account' }) + await router.push(authStore.isAuth ? { name: 'account' } : { name: 'settings' } ) }) watch(isAuth, async (newVal: boolean) => { diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..a9a609a --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/BaseLogo.vue b/src/components/BaseLogo.vue index 71d46c8..eb87037 100644 --- a/src/components/BaseLogo.vue +++ b/src/components/BaseLogo.vue @@ -2,86 +2,19 @@
- - - - - - - - - - - - + tg - + Crew
diff --git a/src/components/TelegramStar.vue b/src/components/TelegramStar.vue index 702353d..86b43a9 100644 --- a/src/components/TelegramStar.vue +++ b/src/components/TelegramStar.vue @@ -1,25 +1,34 @@ diff --git a/src/components/accountHelper.vue b/src/components/accountHelper.vue index 13596ba..da89910 100644 --- a/src/components/accountHelper.vue +++ b/src/components/accountHelper.vue @@ -72,10 +72,36 @@ + + + + + + + + - - - + + \ No newline at end of file + diff --git a/src/components/agreementBlock.vue b/src/components/agreementBlock.vue new file mode 100644 index 0000000..3697e03 --- /dev/null +++ b/src/components/agreementBlock.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/components/companyBlock.vue b/src/components/companyBlock.vue index 3c09943..d409324 100644 --- a/src/components/companyBlock.vue +++ b/src/components/companyBlock.vue @@ -13,34 +13,39 @@ {{ $t(btnText) }} - -
+
+ -
+ + + -
+
- - - - - diff --git a/src/components/pnBottomSheetDialog.vue b/src/components/pnBottomSheetDialog.vue index 62775d5..ef86220 100644 --- a/src/components/pnBottomSheetDialog.vue +++ b/src/components/pnBottomSheetDialog.vue @@ -11,6 +11,7 @@ style=" border-top-left-radius: var(--top-radius) !important; border-top-right-radius: var(--top-radius) !important; + max-height: calc(100vh - 48px); " >
@@ -36,17 +37,20 @@ :hideShadows="false" :height="bodyHeight" > -
+
- +
+ + +
@@ -54,7 +58,7 @@ diff --git a/src/components/pnChatTypeItem.vue b/src/components/pnChatTypeItem.vue index 2a4ed93..a470cdf 100644 --- a/src/components/pnChatTypeItem.vue +++ b/src/components/pnChatTypeItem.vue @@ -1,45 +1,47 @@ \ No newline at end of file + diff --git a/src/components/pnImageSelector.vue b/src/components/pnImageSelector.vue index 4615312..a39e2dc 100644 --- a/src/components/pnImageSelector.vue +++ b/src/components/pnImageSelector.vue @@ -14,7 +14,7 @@ :style="{ display: 'none' }" @update:model-value="handleUpload()" :filter="checkImgType" - accept="image/*" + :accept="allowedMimeTypes.join(', ')" /> - + + +
+ class="flex no-wrap items-center justify-center q-pb-sm absolute-bottom w100" + > + class="q-mx-sm" + rounded flat + style="background-color: rgba(255, 255, 255, 0.65) !important;" + > + {{ $t(btn.label) }} +
@@ -72,10 +85,10 @@ }>() const compressionOptions = { - maxSizeMB: 0.5, // Максимальный размер ~500 КБ - maxWidthOrHeight: 1200, // Максимальное разрешение - useWebWorker: true, // Для производительности - fileType: 'image/jpeg' // Формат вывода + maxSizeMB: 0.5, // Max size ~500 KB + maxWidthOrHeight: 1200, // Max resolution + useWebWorker: true, // Performance + fileType: 'image/jpeg' // Output format } const imageFile = ref(null) // file-from selector @@ -83,10 +96,10 @@ const size = ref(props.size ? props.size : 100) const iconsize = ref(props.iconsize ? props.iconsize : 75) const showDialog = ref(false) + const menuBtns = [ - { name: 'change', icon: 'mdi-swap-horizontal', f: imgFileSelectorClick }, - { name: 'delete', icon: 'mdi-delete-outline', f: deleteImage }, - { name: 'close', icon: 'mdi-close', f: () => showDialog.value = false } + { name: 'delete', color: 'negative', label: 'image_selector__delete', f: deleteImage }, + { name: 'change', color: 'primary', label: 'image_selector__change', f: imgFileSelectorClick } ] const sizePx = computed(() => { @@ -99,14 +112,14 @@ const compressedFile = await imageCompression( imageFile.value, compressionOptions - ); + ) const img = await imgToBase64(compressedFile); - modelValue.value = typeof img === 'string' ? img : ''; + modelValue.value = typeof img === 'string' ? img : '' } catch (error) { - console.error('Image error compression:', error); - const img = await imgToBase64(imageFile.value); - modelValue.value = typeof img === 'string' ? img : ''; + console.error('Image error compression:', error) + const img = await imgToBase64(imageFile.value) + modelValue.value = typeof img === 'string' ? img : '' } } } @@ -131,21 +144,20 @@ reject(new Error('Something went wrong')) } - reader.onload = () => { - resolve(reader.result) - } + reader.onload = () => resolve(reader.result) }) } - function checkImgType(files: File[]): File[] { - const allowedTypes = [ - 'image/jpeg', - 'image/png', - 'image/webp', - 'image/gif', - 'image/bmp' - ] - return files.filter((file: File) => allowedTypes.includes(file.type)) + const allowedMimeTypes = [ + 'image/jpeg', + 'image/png', + 'image/bmp', + 'image/webp', + 'image/gif' + ] + + function checkImgType (files: File[]): File[] { + return files.filter((file: File) => allowedMimeTypes.includes(file.type)) } diff --git a/src/components/pnInlinePair.vue b/src/components/pnInlinePair.vue new file mode 100644 index 0000000..365e01b --- /dev/null +++ b/src/components/pnInlinePair.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/components/pnMagicOverlay.vue b/src/components/pnMagicOverlay.vue index 9a62db3..2180a20 100644 --- a/src/components/pnMagicOverlay.vue +++ b/src/components/pnMagicOverlay.vue @@ -42,48 +42,48 @@ \ No newline at end of file + diff --git a/src/components/pnScrollList.vue b/src/components/pnScrollList.vue index 475c58d..20f5762 100644 --- a/src/components/pnScrollList.vue +++ b/src/components/pnScrollList.vue @@ -11,17 +11,28 @@
-
-
+
- - + +
+ +
@@ -30,6 +41,9 @@ diff --git a/src/components/projectBlock.vue b/src/components/projectBlock.vue index a2330e8..ae7ca37 100644 --- a/src/components/projectBlock.vue +++ b/src/components/projectBlock.vue @@ -15,7 +15,7 @@ -
+
-
+ + diff --git a/src/components/subscribe/pnSubscribeTariffs.vue b/src/components/subscribe/pnSubscribeTariffs.vue new file mode 100644 index 0000000..9947460 --- /dev/null +++ b/src/components/subscribe/pnSubscribeTariffs.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/src/components/subscribe/subscribeChangeRenew.vue b/src/components/subscribe/subscribeChangeRenew.vue new file mode 100644 index 0000000..9903bfd --- /dev/null +++ b/src/components/subscribe/subscribeChangeRenew.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/components/subscribe/subscribeUpgrade.vue b/src/components/subscribe/subscribeUpgrade.vue new file mode 100644 index 0000000..91f28c9 --- /dev/null +++ b/src/components/subscribe/subscribeUpgrade.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/components/userBlock.vue b/src/components/userBlock.vue index 5385223..24f3cad 100644 --- a/src/components/userBlock.vue +++ b/src/components/userBlock.vue @@ -7,6 +7,7 @@ {{ $t(btnText) }} @@ -38,17 +39,25 @@
{{ tname }}
-
{{ user.username }}
+
{{ user.username }}
-
+