adata-ui 2.1.13 → 2.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,133 @@
1
+ <script setup lang="ts">
2
+ import { useUrls } from '#adata-ui/composables/useUrls'
3
+ import { removeTrailingSlash } from '#adata-ui/components/utils/removeTrailingSlash'
4
+
5
+ const props = defineProps<{
6
+ code: string
7
+ balance: number
8
+ }>()
9
+
10
+ const emit = defineEmits<{
11
+ (e: 'closeBanner'): void
12
+ }>()
13
+
14
+ const { $toast } = useNuxtApp()
15
+
16
+ const { t, locale } = useI18n()
17
+ const accessToken = useCookie('accessToken')
18
+
19
+ const { topUpSidePanel } = usePayment()
20
+ const { commonAuth } = useAppConfig()
21
+
22
+ const userApiURL = commonAuth.userApiURL
23
+
24
+ const isLoading = ref(false)
25
+
26
+ const tariffCodes = {
27
+ active_usage_basic: {
28
+ tariff: 'adata',
29
+ },
30
+ regular_usage_basic: {
31
+ tariff: 'adata',
32
+ },
33
+ overpayment_basic: {
34
+ tariff: 'adata',
35
+ },
36
+ regular_usage_adata: {
37
+ tariff: 'adata_year',
38
+ },
39
+ overpayment_adata: {
40
+ tariff: 'adata_year',
41
+ },
42
+ }
43
+
44
+ async function updateUserRate() {
45
+ try {
46
+ isLoading.value = true
47
+ await $fetch(`${removeTrailingSlash(userApiURL)}/user/rate`, {
48
+ method: 'PUT',
49
+ credentials: 'include',
50
+ headers: {
51
+ Authorization: `Bearer ${accessToken.value}`,
52
+ lang: locale.value,
53
+ },
54
+ body: {
55
+ rate_code: tariffCodes[props.code].tariff
56
+ },
57
+ })
58
+ window.location.reload()
59
+ }
60
+ catch (error) {
61
+ $toast.error(error.data.message)
62
+ }
63
+ finally {
64
+ isLoading.value = false
65
+ }
66
+ }
67
+
68
+ function onBuy() {
69
+ const balance = props.balance ?? 0
70
+
71
+ const requiredAmount = ['regular_usage_adata', 'overpayment_adata'].includes(props.code) ? 100000 : 10000
72
+
73
+ if (balance >= requiredAmount) {
74
+ updateUserRate()
75
+ return
76
+ }
77
+
78
+ topUpSidePanel.value = true
79
+ }
80
+ </script>
81
+
82
+ <template>
83
+ <div class="relative gradient flex justify-between rounded-lg p-4 ring-1 ring-inset ring-blue-700/80 dark:bg-gray-800">
84
+ <div class="flex flex-col gap-3">
85
+ <p class="font-semibold">
86
+ {{ t(`payment.upsell.${code}.title`) }}
87
+ </p>
88
+
89
+ <i18n-t
90
+ :keypath="`payment.upsell.${code}.description`"
91
+ tag="p"
92
+ class="text-sm whitespace-pre-line"
93
+ >
94
+ <template #highlight>
95
+ <span class="font-semibold">{{ t(`payment.upsell.${code}.highlight`) }}</span>
96
+ </template>
97
+ </i18n-t>
98
+ </div>
99
+
100
+ <a-icon-x-mark
101
+ class="absolute top-4 right-4 size-4 cursor-pointer"
102
+ @click="emit('closeBanner')"
103
+ />
104
+
105
+ <a-button
106
+ size="md"
107
+ class="self-end"
108
+ @click="onBuy"
109
+ >
110
+ {{ t('payment.upsell.goToAdataPlan') }}
111
+ </a-button>
112
+ </div>
113
+ </template>
114
+
115
+ <style scoped>
116
+ .gradient {
117
+ background: linear-gradient(
118
+ 239.71deg,
119
+ #B3D5F9 -7.48%,
120
+ #E6F1FD 39.62%,
121
+ #CCE2FB 85.82%
122
+ );
123
+ }
124
+
125
+ .dark .gradient {
126
+ background: linear-gradient(
127
+ 239.71deg,
128
+ #17303F -7.48%,
129
+ #161617 39.62%,
130
+ #17303F 85.82%
131
+ );
132
+ }
133
+ </style>
@@ -16,7 +16,7 @@ const props = withDefaults(defineProps<Props>(), {
16
16
  moduleName: 'counterparty'
17
17
  })
18
18
 
19
- const { t } = useI18n()
19
+ const { t, locale } = useI18n()
20
20
 
21
21
  interface ResponseData<DataResult> {
22
22
  success: boolean
@@ -43,6 +43,9 @@ const systemMessage = ref(null)
43
43
  const isOpenNotification = ref(false)
44
44
  const message = useCookie('message')
45
45
 
46
+ const { myLayer } = useAppConfig()
47
+ const env = myLayer.mode
48
+
46
49
  const mode = computed(() => {
47
50
  if (props.moduleName === 'pk') {
48
51
  return 'counterparty'
@@ -77,12 +80,22 @@ const computedClass = (state: string) =>
77
80
  const fetchNotification = async () => {
78
81
  try {
79
82
  if (message.value === undefined) {
80
- const link = `https://users.adata.kz/api/v1/system-messages/active-list/?module_name=${mode.value}`
83
+ const link = `https://users.${env}.kz/api/v1/system-messages/active-list/?module_name=${mode.value}`
81
84
  const response = await fetch(link)
82
85
  const { data } = await response.json()
83
86
 
84
- if (data.details.length) {
85
- systemMessage.value = data.details[0].message
87
+ if (data.details?.length) {
88
+ switch (locale.value) {
89
+ case 'ru':
90
+ systemMessage.value = data.details[0].message
91
+ break
92
+ case 'en':
93
+ systemMessage.value = data.details[0].message_en
94
+ break
95
+ case 'kk':
96
+ systemMessage.value = data.details[0].message_kz
97
+ break
98
+ }
86
99
  isOpenNotification.value = true
87
100
  }
88
101
  }
package/lang/en.ts CHANGED
@@ -757,45 +757,80 @@ const EnLocale: RuLocale = {
757
757
  info: {
758
758
  userAgreement: 'I, the user of the information system "Adata", continuing to work on the portal, confirm my agreement that I bear responsibility for all actions taken in accordance with the legislation of the Republic of Kazakhstan',
759
759
  },
760
- "payment": {
761
- "bank": {
762
- "description": "Account top-up on Adata service",
763
- "payError": "Payment failed. Please try again later.",
764
- "paySuccess": "Your account has been successfully topped up"
765
- },
766
- "banner": {
767
- "title": "Access to extended information in a paid plan",
768
- "subtitle": "Buy one-time access or {tariffs}",
769
- "tariffs": "view tariffs"
770
- },
771
- "topUp": {
772
- "title": "Top up balance",
773
- "balance": "Balance:",
774
- "info": "Funds will be credited in tenge!",
775
- "enterAmount": "Enter amount"
776
- },
777
- "method": {
778
- "title": "Payment method",
779
- "description": "Choose a payment system to complete the transaction",
780
- "note": "Will be credited:",
781
- "kaspi": "Kaspi",
782
- "other": "Other bank"
783
- },
784
- "kaspi": {
785
- "title": "Kaspi.kz",
786
- "description": "Choose a payment system to complete the transaction",
787
- "qr": "Kaspi QR",
788
- "scan": "Scan and pay",
789
- "changeMethod": "Change payment method",
790
- "adata": "Adata.kz - Search and verification of counterparties"
791
- },
792
- "redirect": {
793
- "title": "You will now be redirected to Kaspi.kz",
794
- "paymentId": "Your order number:",
795
- "description": "After completing the payment, you can close the widget or return",
796
- "goKaspi": "Go to Kaspi.kz",
797
- "changeMethod": "Change payment method"
798
- }
760
+ payment: {
761
+ bank: {
762
+ description: "Account top-up on Adata service",
763
+ payError: "Payment failed. Please try again later.",
764
+ paySuccess: "Your account has been successfully topped up"
765
+ },
766
+ banner: {
767
+ title: "Access to extended information in a paid plan",
768
+ subtitle: "Buy one-time access or {tariffs}",
769
+ tariffs: "view tariffs"
770
+ },
771
+ topUp: {
772
+ title: "Top up balance",
773
+ balance: "Balance:",
774
+ info: "Funds will be credited in tenge!",
775
+ enterAmount: "Enter amount"
776
+ },
777
+ method: {
778
+ title: "Payment method",
779
+ description: "Choose a payment system to complete the transaction",
780
+ note: "Will be credited:",
781
+ kaspi: "Kaspi",
782
+ other: "Other bank"
783
+ },
784
+ kaspi: {
785
+ title: "Kaspi.kz",
786
+ description: "Choose a payment system to complete the transaction",
787
+ qr: "Kaspi QR",
788
+ scan: "Scan and pay",
789
+ changeMethod: "Change payment method",
790
+ adata: "Adata.kz - Search and verification of counterparties"
791
+ },
792
+ redirect: {
793
+ title: "You will now be redirected to Kaspi.kz",
794
+ paymentId: "Your order number:",
795
+ description: "After completing the payment, you can close the widget or return",
796
+ goKaspi: "Go to Kaspi.kz",
797
+ changeMethod: "Change payment method"
798
+ },
799
+ upsell: {
800
+ active_usage_basic: {
801
+ title: 'Active use of the service',
802
+ description: 'You make 10+ requests per day.\n' +
803
+ '{highlight} suited for this volume.',
804
+ highlight: 'A monthly subscription is better',
805
+ },
806
+ regular_usage_basic: {
807
+ title: 'The one-time plan has become unprofitable',
808
+ description: 'You have been using the 2,000 ₸ plan for 5 consecutive days.\n' +
809
+ '{highlight} for regular requests.',
810
+ highlight: 'A monthly subscription is more cost-effective',
811
+ },
812
+ overpayment_basic: {
813
+ title: 'You are paying more than you could',
814
+ description: 'You have used the 2,000 ₸ plan more than 5 times in a month.\n' +
815
+ '{highlight}',
816
+ highlight: 'A monthly subscription is more cost-effective.',
817
+ },
818
+ regular_usage_adata: {
819
+ title: 'Active service usage',
820
+ description:
821
+ 'You have subscribed to the 10,000 ₸ plan several times.\n' +
822
+ 'An annual subscription {highlight} and allow you to work without limits.',
823
+ highlight: 'will help you save 17%',
824
+ },
825
+ overpayment_adata: {
826
+ title: 'Active service usage',
827
+ description:
828
+ 'You have subscribed to the 10,000 ₸ plan several times.\n' +
829
+ 'An annual subscription {highlight} and allow you to work without limits.',
830
+ highlight: 'will help you save 17%',
831
+ },
832
+ goToAdataPlan: 'Switch to the Adata plan',
833
+ },
799
834
  }
800
835
  }
801
836
 
package/lang/kk.ts CHANGED
@@ -758,45 +758,81 @@ const KkLocale: RuLocale = {
758
758
  info: {
759
759
  userAgreement: 'Мен, "Adata" ақпараттық жүйесінің пайдаланушысы, порталдағы жұмысымды жалғастыра отырып, Қазақстан Республикасының заңнамасына сәйкес жүзеге асырылған барлық әрекеттер үшін жауапкершілікті өз мойныма алатынымды растаймын',
760
760
  },
761
- "payment": {
762
- "bank": {
763
- "description": "Adata сервисінде шотты толықтыру",
764
- "payError": "Төлем жасалмады. Кейінірек қайталап көріңіз.",
765
- "paySuccess": "Шотыңыз сәтті толықтырылды"
766
- },
767
- "banner": {
768
- "title": "Ақылы тарифте кеңейтілген ақпаратқа қол жеткізу",
769
- "subtitle": "Бір реттік қол жеткізу сатып алыңыз немесе {tariffs}",
770
- "tariffs": "тарифтерді қарау"
771
- },
772
- "topUp": {
773
- "title": "Балансты толықтыру",
774
- "balance": "Баланс:",
775
- "info": "Қаражат теңгемен түседі!",
776
- "enterAmount": "Соманы енгізіңіз"
777
- },
778
- "method": {
779
- "title": "Төлем әдісі",
780
- "description": "Транзакция жасау үшін төлем жүйесін таңдаңыз",
781
- "note": "Түсетін сома:",
782
- "kaspi": "Kaspi",
783
- "other": "Басқа банк"
784
- },
785
- "kaspi": {
786
- "title": "Kaspi.kz",
787
- "description": "Транзакция жасау үшін төлем жүйесін таңдаңыз",
788
- "qr": "Kaspi QR",
789
- "scan": "Сканерлеп төлеңіз",
790
- "changeMethod": "Төлем әдісін өзгерту",
791
- "adata": "Adata.kz - Контрагенттерді іздеу және тексеру"
792
- },
793
- "redirect": {
794
- "title": "Сіз қазір Kaspi.kz сайтына қайта бағытталасыз",
795
- "paymentId": "Тапсырыс нөміріңіз:",
796
- "description": "Төлемді аяқтағаннан кейін виджетті жабуға немесе қайтуға болады",
797
- "goKaspi": "Kaspi.kz сайтына өту",
798
- "changeMethod": "Төлем әдісін өзгерту"
799
- }
761
+ payment: {
762
+ bank: {
763
+ description: "Adata сервисінде шотты толықтыру",
764
+ payError: "Төлем жасалмады. Кейінірек қайталап көріңіз.",
765
+ paySuccess: "Шотыңыз сәтті толықтырылды"
766
+ },
767
+ banner: {
768
+ title: "Ақылы тарифте кеңейтілген ақпаратқа қол жеткізу",
769
+ subtitle: "Бір реттік қол жеткізу сатып алыңыз немесе {tariffs}",
770
+ tariffs: "тарифтерді қарау"
771
+ },
772
+ topUp: {
773
+ title: "Балансты толықтыру",
774
+ balance: "Баланс:",
775
+ info: "Қаражат теңгемен түседі!",
776
+ enterAmount: "Соманы енгізіңіз"
777
+ },
778
+ method: {
779
+ title: "Төлем әдісі",
780
+ description: "Транзакция жасау үшін төлем жүйесін таңдаңыз",
781
+ note: "Түсетін сома:",
782
+ kaspi: "Kaspi",
783
+ other: "Басқа банк"
784
+ },
785
+ kaspi: {
786
+ title: "Kaspi.kz",
787
+ description: "Транзакция жасау үшін төлем жүйесін таңдаңыз",
788
+ qr: "Kaspi QR",
789
+ scan: "Сканерлеп төлеңіз",
790
+ changeMethod: "Төлем әдісін өзгерту",
791
+ adata: "Adata.kz - Контрагенттерді іздеу және тексеру"
792
+ },
793
+ redirect: {
794
+ title: "Сіз қазір Kaspi.kz сайтына қайта бағытталасыз",
795
+ paymentId: "Тапсырыс нөміріңіз:",
796
+ description: "Төлемді аяқтағаннан кейін виджетті жабуға немесе қайтуға болады",
797
+ goKaspi: "Kaspi.kz сайтына өту",
798
+ changeMethod: "Төлем әдісін өзгерту"
799
+ },
800
+ upsell: {
801
+ active_usage_basic: {
802
+ title: 'Қызметті белсенді пайдалану',
803
+ description: 'Сіз күніне 10+ сұрау жасайсыз.\n' +
804
+ 'Мұндай көлем үшін {highlight}.',
805
+ highlight: 'айлық жазылым тиімдірек',
806
+ },
807
+ regular_usage_basic: {
808
+ title: 'Бір реттік тариф тиімсіз бола бастады',
809
+ description: 'Сіз 2 000 ₸ тарифін қатарынан 5 күн қолданып жүрсіз.\n' +
810
+ 'Тұрақты сұраулар үшін {highlight}.',
811
+ highlight: 'айлық жазылым тиімдірек',
812
+ },
813
+ overpayment_basic: {
814
+ title: 'Сіз мүмкін болғаннан көп төлеп жүрсіз',
815
+ description: 'Сіз 2 000 ₸ тарифін ай ішінде 5 реттен көп қолдандыңыз.\n' +
816
+ 'highlight',
817
+ highlight: 'Айлық тарифке жазылу тиімдірек.',
818
+ },
819
+ regular_usage_adata: {
820
+ title: 'Қызметті белсенді пайдалану',
821
+ description:
822
+ 'Сіз 10 000 ₸ тарифін бірнеше рет қостыңыз.\n' +
823
+ 'Жылдық жазылым {highlight} және шектеусіз жұмыс істеуге мүмкіндік береді.',
824
+ highlight: '17% үнемдеуге',
825
+ },
826
+ overpayment_adata: {
827
+ title: 'Қызметті белсенді пайдалану',
828
+ description:
829
+ 'Сіз 10 000 ₸ тарифін бірнеше рет қостыңыз.\n' +
830
+ 'Жылдық жазылым {highlight} және шектеусіз жұмыс істеуге мүмкіндік береді.',
831
+ highlight: '17% үнемдеуге',
832
+
833
+ },
834
+ goToAdataPlan: 'Adata тарифіне ауысу',
835
+ },
800
836
  }
801
837
  }
802
838
 
package/lang/ru.ts CHANGED
@@ -801,6 +801,39 @@ const RuLocale = {
801
801
  goKaspi: 'Перейти на Kaspi.kz',
802
802
  changeMethod: 'Сменить способ оплаты',
803
803
  },
804
+ upsell: {
805
+ active_usage_basic: {
806
+ title: 'Активное использование сервиса',
807
+ description: 'Вы выполняете 10+ запросов в сутки.\n' +
808
+ '{highlight} подходит для такого объёма.',
809
+ highlight: 'Подписка на месяц лучше',
810
+ },
811
+ regular_usage_basic: {
812
+ title: 'Разовый тариф стал невыгодным',
813
+ description: 'Вы используете тариф 2 000 ₸ 5 дней подряд.\n' +
814
+ '{highlight} при регулярных запросах.',
815
+ highlight: 'Подписка на месяц выгоднее',
816
+ },
817
+ overpayment_basic: {
818
+ title: 'Вы платите больше, чем могли бы',
819
+ description: 'Вы использовали тариф 2 000 ₸ больше 5 раз за месяц.\n' +
820
+ '{highlight}',
821
+ highlight: 'Подписка на месячный тариф выгоднее.',
822
+ },
823
+ regular_usage_adata: {
824
+ title: 'Активное использование сервиса',
825
+ description: 'Вы подключили тариф за 10 000 ₸ уже несколько раз.\n' +
826
+ 'Годовая подписка {highlight} и работать без ограничений.',
827
+ highlight: 'позволит сэкономить 17%',
828
+ },
829
+ overpayment_adata: {
830
+ title: 'Активное использование сервиса',
831
+ description: 'Вы подключили тариф за 10 000 ₸ уже несколько раз.\n' +
832
+ 'Годовая подписка {highlight} и работать без ограничений.',
833
+ highlight: 'позволит сэкономить 17%',
834
+ },
835
+ goToAdataPlan: 'Перейти на тариф Adata',
836
+ },
804
837
  },
805
838
  }
806
839
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adata-ui",
3
3
  "type": "module",
4
- "version": "2.1.13",
4
+ "version": "2.1.15",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",