hl-core 0.0.8-beta.15 → 0.0.8-beta.17
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.
- package/api/index.ts +8 -0
- package/components/Form/FormBlock.vue +1 -1
- package/components/Input/PanelInput.vue +5 -0
- package/components/Layout/Header.vue +40 -4
- package/components/Pages/Anketa.vue +5 -1
- package/components/Pages/Auth.vue +3 -3
- package/components/Pages/MemberForm.vue +19 -0
- package/components/Pages/ProductConditions.vue +1 -0
- package/composables/classes.ts +24 -1
- package/locales/en.json +123 -1
- package/locales/kz.json +123 -1
- package/locales/ru.json +123 -1
- package/package.json +1 -1
- package/store/data.store.js +64 -11
- package/store/member.store.ts +8 -1
- package/types/index.ts +2 -0
package/api/index.ts
CHANGED
|
@@ -283,6 +283,14 @@ export class ApiClass {
|
|
|
283
283
|
});
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
async registerNumber(data: RegNumberDataType): Promise<string> {
|
|
287
|
+
return this.axiosCall({
|
|
288
|
+
method: Methods.POST,
|
|
289
|
+
url: `/${this.productUrl}/api/Application/FinCenterRegNumberSave`,
|
|
290
|
+
data: data,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
286
294
|
async sendSms(data: SmsDataType): Promise<void> {
|
|
287
295
|
return this.axiosCall({
|
|
288
296
|
method: Methods.POST,
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<div
|
|
62
62
|
v-if="isMultiple && more && !isShort"
|
|
63
63
|
:class="[$libStyles.blueBg, $libStyles.whiteText, $libStyles.textSimple, disabled ? $libStyles.disabled : 'cursor-pointer']"
|
|
64
|
-
class="rounded-b-lg h-[36px] flex items-center font-medium justify-center"
|
|
64
|
+
class="transition-all rounded-b-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90"
|
|
65
65
|
@click="!disabled && memberStore.addMember(whichForm)"
|
|
66
66
|
>
|
|
67
67
|
{{ $t('buttons.add') }}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
:prepend-inner-icon="prependInnerIcon ? prependInnerIcon : ''"
|
|
22
22
|
:append-inner-icon="appendInnerIcon ? appendInnerIcon : ''"
|
|
23
23
|
:bg-color="bgColor ? bgColor : ''"
|
|
24
|
+
:suffix="suffix"
|
|
24
25
|
@keyup.enter.prevent="submitted"
|
|
25
26
|
@click:control="!props.readonly && $emit('append')"
|
|
26
27
|
@click:clear="(props.readonly ? false : clearable) && $emit('update:modelValue', new Value())"
|
|
@@ -115,6 +116,10 @@ export default defineComponent({
|
|
|
115
116
|
bgColor: {
|
|
116
117
|
type: String,
|
|
117
118
|
},
|
|
119
|
+
suffix: {
|
|
120
|
+
type: String,
|
|
121
|
+
default: '',
|
|
122
|
+
},
|
|
118
123
|
},
|
|
119
124
|
emits: ['update:modelValue', 'submitted', 'prepend', 'append', 'prepend-out', 'append-out', 'clear'],
|
|
120
125
|
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<header class="relative w-full h-[70px] text-center font-medium align-middle flex items-center border-b-[1px]" :class="[$libStyles.blueBgLight, $libStyles.textSimple]">
|
|
3
|
-
<i v-if="hasBack" @click="$emit('onBack')" class="absolute left-5 mdi text-xl cursor-pointer" :class="[backIcon]"></i>
|
|
3
|
+
<i v-if="hasBack" @click="$emit('onBack')" class="absolute left-5 mdi text-xl cursor-pointer transition-all" :class="[backIcon, backIconAnim]"></i>
|
|
4
4
|
<span class="mx-10">{{ title }}</span>
|
|
5
|
-
<i
|
|
5
|
+
<i
|
|
6
|
+
v-if="hasMore"
|
|
7
|
+
@click="$emit('onMore')"
|
|
8
|
+
class="mdi absolute right-5 text-xl cursor-pointer transition-all"
|
|
9
|
+
:class="[moreIcon, hideMoreOnLg ? 'lg:!hidden' : '', moreIconAnim]"
|
|
10
|
+
>
|
|
11
|
+
</i>
|
|
6
12
|
</header>
|
|
7
13
|
</template>
|
|
8
14
|
|
|
@@ -35,14 +41,44 @@ export default defineComponent({
|
|
|
35
41
|
},
|
|
36
42
|
},
|
|
37
43
|
emits: ['onBack', 'onMore'],
|
|
38
|
-
setup() {
|
|
44
|
+
setup(props) {
|
|
39
45
|
const dataStore = useDataStore();
|
|
40
46
|
|
|
41
47
|
const onClickOutside = () => {
|
|
42
48
|
dataStore.settings.open = false;
|
|
43
49
|
};
|
|
44
50
|
|
|
45
|
-
|
|
51
|
+
const backIconAnim = computed(() => {
|
|
52
|
+
const icon = props.backIcon;
|
|
53
|
+
switch (icon) {
|
|
54
|
+
case 'mdi-arrow-left':
|
|
55
|
+
case 'mdi-account-arrow-left':
|
|
56
|
+
return 'hover:-translate-x-[2px]';
|
|
57
|
+
case 'mdi-close':
|
|
58
|
+
return 'hover:scale-110';
|
|
59
|
+
default:
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const moreIconAnim = computed(() => {
|
|
65
|
+
const icon = props.moreIcon;
|
|
66
|
+
switch (icon) {
|
|
67
|
+
case 'mdi-cog-outline':
|
|
68
|
+
return 'hover:rotate-[30deg]';
|
|
69
|
+
default:
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
// Computed
|
|
76
|
+
backIconAnim,
|
|
77
|
+
moreIconAnim,
|
|
78
|
+
|
|
79
|
+
// Functions
|
|
80
|
+
onClickOutside,
|
|
81
|
+
};
|
|
46
82
|
},
|
|
47
83
|
});
|
|
48
84
|
</script>
|
|
@@ -45,7 +45,11 @@
|
|
|
45
45
|
<span :class="[$libStyles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between">
|
|
46
46
|
{{ question.first.name }}
|
|
47
47
|
<base-fade-transition>
|
|
48
|
-
<i
|
|
48
|
+
<i
|
|
49
|
+
v-if="question.first.answerName === 'Да' && secondQuestionList && secondQuestionList.length"
|
|
50
|
+
class="mdi mdi-chevron-right text-2xl cursor-pointer"
|
|
51
|
+
@click="openFirstPanel(question)"
|
|
52
|
+
></i>
|
|
49
53
|
</base-fade-transition>
|
|
50
54
|
</span>
|
|
51
55
|
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$libStyles.textSimple]">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</aside>
|
|
18
18
|
<section v-if="isLogin" class="w-full lg:w-3/4 flex flex-col justify-center">
|
|
19
19
|
<img :class="{ '!block': !$display().lgAndUp.value }" draggable="false" class="hidden w-2/4 sm:w-1/3 mb-10 self-center" src="~/assets/auth-logo.svg" />
|
|
20
|
-
<div class="flex flex-col items-center mb-8">
|
|
20
|
+
<div class="flex flex-col items-center mb-8 text-center">
|
|
21
21
|
<h1 class="text-[28px] font-medium mb-1">{{ $t('labels.welcomeHL') }}</h1>
|
|
22
22
|
<span :class="[$libStyles.greyTextDark]" class="text-[16px]">{{ $t('labels.needAuth') }}</span>
|
|
23
23
|
</div>
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
<h1 class="text-[28px] font-medium mb-1">{{ $t('labels.resetPassword') }}</h1>
|
|
54
54
|
<span :class="[$libStyles.greyTextDark]" class="text-[16px]">{{ $t('labels.resetType') }}</span>
|
|
55
55
|
</div>
|
|
56
|
-
<div class="p-[2px] mb-8 rounded-[12px] border-[1px]" :class="[$libStyles.whiteBg]">
|
|
57
|
-
<v-tabs v-model="resetPasswordType" density="compact" slider-color="#009c73" class="base-reset-password rounded-[12px]
|
|
56
|
+
<div class="p-[2px] mb-8 rounded-[12px] border-[1px] w-2/3 lg:w-[25vw]" :class="[$libStyles.whiteBg]">
|
|
57
|
+
<v-tabs v-model="resetPasswordType" density="compact" slider-color="#009c73" class="w-full base-reset-password rounded-[12px]" :class="[$libStyles.whiteBg]">
|
|
58
58
|
<v-tab :ripple="false" value="phone"> {{ $t('form.phoneNumber') }} </v-tab>
|
|
59
59
|
<v-tab :ripple="false" value="email"> {{ $t('form.email') }} </v-tab>
|
|
60
60
|
</v-tabs>
|
|
@@ -968,6 +968,9 @@ export default {
|
|
|
968
968
|
}
|
|
969
969
|
}
|
|
970
970
|
const memberFromApplicaiton = memberStore.getMemberFromApplication(whichForm.value as MemberKeys, whichIndex.value ? Number(whichIndex.value) : undefined);
|
|
971
|
+
if (typeof member.value.id !== 'number' || (typeof member.value.id === 'number' && member.value.id > 0 === false)) {
|
|
972
|
+
return false;
|
|
973
|
+
}
|
|
971
974
|
const isSaved = await dataStore.saveMember(member.value, memberStore.getMemberCode(whichForm.value as MemberKeys), memberFromApplicaiton);
|
|
972
975
|
if (!isSaved) return false;
|
|
973
976
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
@@ -1086,6 +1089,21 @@ export default {
|
|
|
1086
1089
|
}
|
|
1087
1090
|
};
|
|
1088
1091
|
|
|
1092
|
+
const setDefaultValues = async () => {
|
|
1093
|
+
const setDefaults = dataStore.controls.setDefaults;
|
|
1094
|
+
if (setDefaults.sectorCode) {
|
|
1095
|
+
await setSectorCode();
|
|
1096
|
+
}
|
|
1097
|
+
};
|
|
1098
|
+
|
|
1099
|
+
const setSectorCode = async () => {
|
|
1100
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1101
|
+
const sectorList = await dataStore.getSectorCodeList();
|
|
1102
|
+
const defaultValue = sectorList.find(item => item.ids === '500003.9') as Value;
|
|
1103
|
+
member.value.economySectorCode = defaultValue ? defaultValue : new Value();
|
|
1104
|
+
}
|
|
1105
|
+
};
|
|
1106
|
+
|
|
1089
1107
|
const onInit = async () => {
|
|
1090
1108
|
if (route.params.taskId === '0' || (route.params.taskId !== '0' && dataStore.isProcessEditable(formStore.applicationData.statusCode))) {
|
|
1091
1109
|
await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
|
|
@@ -1108,6 +1126,7 @@ export default {
|
|
|
1108
1126
|
const filteredDocuments: DocumentItem[] = dataStore.getFilesByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
|
|
1109
1127
|
if (filteredDocuments && filteredDocuments.length) memberDocument.value = filteredDocuments[0];
|
|
1110
1128
|
}
|
|
1129
|
+
await setDefaultValues();
|
|
1111
1130
|
};
|
|
1112
1131
|
|
|
1113
1132
|
onMounted(async () => {
|
|
@@ -198,6 +198,7 @@
|
|
|
198
198
|
:clearable="!isDisabled"
|
|
199
199
|
:label="term.coverTypeName"
|
|
200
200
|
append-inner-icon="mdi mdi-chevron-right"
|
|
201
|
+
:suffix="!!term.amount ? `${$dataStore.getNumberWithSpaces(term.amount)} ${$constants.currencySymbols.kzt}` : ''"
|
|
201
202
|
@append="openTermPanel(term.coverTypeName, $dataStore.getAdditionalInsuranceTermsAnswers, term.coverTypeId, index)"
|
|
202
203
|
></base-panel-input>
|
|
203
204
|
</div>
|
package/composables/classes.ts
CHANGED
|
@@ -780,10 +780,16 @@ export class ProductConditions {
|
|
|
780
780
|
export class MemberSettings {
|
|
781
781
|
has?: boolean;
|
|
782
782
|
isMultiple?: boolean;
|
|
783
|
-
|
|
783
|
+
required?: boolean;
|
|
784
|
+
constructor(options?: { has?: boolean; isMultiple?: boolean; required?: boolean }) {
|
|
784
785
|
if (options) {
|
|
785
786
|
this.has = options.has;
|
|
786
787
|
this.isMultiple = options.isMultiple;
|
|
788
|
+
if (this.has === true) {
|
|
789
|
+
this.required = options.required;
|
|
790
|
+
} else {
|
|
791
|
+
this.required = false;
|
|
792
|
+
}
|
|
787
793
|
}
|
|
788
794
|
}
|
|
789
795
|
}
|
|
@@ -791,6 +797,10 @@ export class MemberSettings {
|
|
|
791
797
|
export class DataStoreClass {
|
|
792
798
|
// IMP Контроллер фич
|
|
793
799
|
controls: {
|
|
800
|
+
// Cтавит значения по дефолту полям
|
|
801
|
+
setDefaults: {
|
|
802
|
+
sectorCode: boolean;
|
|
803
|
+
};
|
|
794
804
|
// Проверка на роль при авторизации
|
|
795
805
|
onAuth: boolean;
|
|
796
806
|
// Согласие на главной странице
|
|
@@ -926,6 +936,9 @@ export class DataStoreClass {
|
|
|
926
936
|
spokesmanApp: new MemberSettings(),
|
|
927
937
|
};
|
|
928
938
|
this.controls = {
|
|
939
|
+
setDefaults: {
|
|
940
|
+
sectorCode: true,
|
|
941
|
+
},
|
|
929
942
|
onAuth: false,
|
|
930
943
|
hasAnketa: true,
|
|
931
944
|
hasAgreement: true,
|
|
@@ -1066,6 +1079,11 @@ export class FormStoreClass {
|
|
|
1066
1079
|
number: string | number | null;
|
|
1067
1080
|
date: string | number | null;
|
|
1068
1081
|
};
|
|
1082
|
+
finCenterData: {
|
|
1083
|
+
processInstanceId: string | number | null;
|
|
1084
|
+
regNumber: string | number | null;
|
|
1085
|
+
date: string | number | null;
|
|
1086
|
+
};
|
|
1069
1087
|
signedDocumentList: IDocument[];
|
|
1070
1088
|
surveyByHealthBase: AnketaFirst | null;
|
|
1071
1089
|
surveyByCriticalBase: AnketaFirst | null;
|
|
@@ -1141,6 +1159,11 @@ export class FormStoreClass {
|
|
|
1141
1159
|
number: null,
|
|
1142
1160
|
date: null,
|
|
1143
1161
|
};
|
|
1162
|
+
this.finCenterData = {
|
|
1163
|
+
processInstanceId: null,
|
|
1164
|
+
regNumber: null,
|
|
1165
|
+
date: null,
|
|
1166
|
+
};
|
|
1144
1167
|
this.signedDocumentList = [];
|
|
1145
1168
|
this.surveyByHealthBase = null;
|
|
1146
1169
|
this.surveyByCriticalBase = null;
|
package/locales/en.json
CHANGED
|
@@ -89,7 +89,13 @@
|
|
|
89
89
|
"needToRecalculate": "You need to recalculate the product conditions",
|
|
90
90
|
"noUrl": "No link available",
|
|
91
91
|
"pickFamilyMember": "Pick a family member",
|
|
92
|
-
"numberRegistered": "Регистрационный номер успешно записан в реестр"
|
|
92
|
+
"numberRegistered": "Регистрационный номер успешно записан в реестр",
|
|
93
|
+
"requiredMember": "В заявке должен присутствовать {text}",
|
|
94
|
+
"client": "страхователь",
|
|
95
|
+
"insured": "застрахованный",
|
|
96
|
+
"beneficiary": "выгодоприобретатель",
|
|
97
|
+
"beneficialOwner": "бенефициарный собственник",
|
|
98
|
+
"spokesman": "представитель страхователя"
|
|
93
99
|
},
|
|
94
100
|
"buttons": {
|
|
95
101
|
"createStatement": "Create Statement",
|
|
@@ -271,7 +277,123 @@
|
|
|
271
277
|
"decision": "Status",
|
|
272
278
|
"userFullName": "Assignee"
|
|
273
279
|
},
|
|
280
|
+
"agent": {
|
|
281
|
+
"menu": "Меню",
|
|
282
|
+
"main": "Главное",
|
|
283
|
+
"reports": "Отчеты",
|
|
284
|
+
"report": "Отчет",
|
|
285
|
+
"notifications": "Уведомления",
|
|
286
|
+
"support": "Тех. поддержка",
|
|
287
|
+
"agentsInfo": "Сведения о страховых агентах",
|
|
288
|
+
"info": "Данные об агенте",
|
|
289
|
+
"about": "Сведения об Агенте",
|
|
290
|
+
"level": "Уровень",
|
|
291
|
+
"subAgents": "Суб-агенты",
|
|
292
|
+
"done": "Оформлено договоров",
|
|
293
|
+
"myContracts": "Оформлено договоров",
|
|
294
|
+
"nextLevel": "Следующий уровень {text}",
|
|
295
|
+
"leftMy": "Осталось оформить лично",
|
|
296
|
+
"leftAll": "Осталось оформить всего",
|
|
297
|
+
"donePolicies": "Оформлено полисов",
|
|
298
|
+
"successStat": "Статистика успешных сделок",
|
|
299
|
+
"doneMy": "Оформлено лично",
|
|
300
|
+
"doneAll": "Всего оформлено",
|
|
301
|
+
"progressAll": "Прогресс за все время работы",
|
|
302
|
+
"subagentsCalled": "Привлечено суб-агентов",
|
|
303
|
+
"myActivity": "Моя активность",
|
|
304
|
+
"teamActivity": "Активность команды",
|
|
305
|
+
"careerUp": "Карьерная лестница",
|
|
306
|
+
"direction": "Дирекция",
|
|
307
|
+
"leader": "Руководитель",
|
|
308
|
+
"agentic": "Агенство",
|
|
309
|
+
"agentCurator": "Куратор агента",
|
|
310
|
+
"agentId": "ID агента",
|
|
311
|
+
"reportType": "Тип отчета",
|
|
312
|
+
"reportFile": "Файл отчета",
|
|
313
|
+
"reportDate": "Отчетная дата",
|
|
314
|
+
"paymentJournal": "Журнал оплаты",
|
|
315
|
+
"journal": {
|
|
316
|
+
"incomeKz": "Приходы KZT",
|
|
317
|
+
"outcomeKz": "Расходы KZT",
|
|
318
|
+
"leftKz": "Остаток KZT",
|
|
319
|
+
"description": "Описание",
|
|
320
|
+
"delayMonth": "Месяц просрочки"
|
|
321
|
+
},
|
|
322
|
+
"unallocatedPayments": "Нераспределенные платежи",
|
|
323
|
+
"unallocation": {
|
|
324
|
+
"paymentId": "ID платежа",
|
|
325
|
+
"voucherNumber": "Номер ваучера",
|
|
326
|
+
"voucherDate": "Дата ваучера",
|
|
327
|
+
"voucherStatus": "Статус ваучера"
|
|
328
|
+
},
|
|
329
|
+
"unpaidPremiums": "Неоплаченные премии",
|
|
330
|
+
"unpaidDelay": "Просрочка",
|
|
331
|
+
"reportText": {
|
|
332
|
+
"reward": "Награда",
|
|
333
|
+
"cuWith": "Общие единицы с",
|
|
334
|
+
"cuBy": "Общие единицы по",
|
|
335
|
+
"puWith": "Личные единицы с",
|
|
336
|
+
"puBy": "Личные единицы по",
|
|
337
|
+
"minLevel": "Минимальный уровень",
|
|
338
|
+
"minNumOfSubs": "Мин. количество подчиненных",
|
|
339
|
+
"subsLevel": "Уровни подчиненных",
|
|
340
|
+
"daysAfter": "Дни после договора"
|
|
341
|
+
},
|
|
342
|
+
"supportText": {
|
|
343
|
+
"toChat": "Чат с тех. поддержкой"
|
|
344
|
+
},
|
|
345
|
+
"test": {
|
|
346
|
+
"testing": "Тестирование",
|
|
347
|
+
"results": "Результаты тестирования",
|
|
348
|
+
"type": "Вид тестирования",
|
|
349
|
+
"date": "Дата прохождения тестирования",
|
|
350
|
+
"resultInProcents": "Результат тестирования в процентах"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"jobApplication": {
|
|
354
|
+
"title": "Заявление на трудоустройсво",
|
|
355
|
+
"sent": "Заявление отправлено в страховую компанию",
|
|
356
|
+
"whichRegion": "Агентом какого региона вы хотите стать",
|
|
357
|
+
"requisites": "Реквизиты",
|
|
358
|
+
"conductReport": "Справка о несудимости",
|
|
359
|
+
"diplom": "Диплом",
|
|
360
|
+
"new": "Подать заявление"
|
|
361
|
+
},
|
|
274
362
|
"labels": {
|
|
363
|
+
"photo": "Фото",
|
|
364
|
+
"attachPhoto": "Вложить фото",
|
|
365
|
+
"form": "Форма",
|
|
366
|
+
"toSign": "Отправить на подпись",
|
|
367
|
+
"contract": "Договор",
|
|
368
|
+
"sections": "Разделы",
|
|
369
|
+
"chat": "Чат",
|
|
370
|
+
"today": "Сегодня",
|
|
371
|
+
"message": "Сообщение",
|
|
372
|
+
"category": "Категория",
|
|
373
|
+
"debt": "Долг",
|
|
374
|
+
"premiumDate": "Дата премии",
|
|
375
|
+
"delayDays": "Дни просрочки",
|
|
376
|
+
"dischargeDate": "Дата выписки",
|
|
377
|
+
"covering": "Покрытие",
|
|
378
|
+
"agentsContacts": "Контакты агента",
|
|
379
|
+
"clientsContacts": "Контакты страхователя",
|
|
380
|
+
"agentNumber": "Номер агента",
|
|
381
|
+
"additionalStatus": "Дополнительный статус",
|
|
382
|
+
"activeTime": "Время действия",
|
|
383
|
+
"statementNumber": "Номер заявления",
|
|
384
|
+
"dogovorDate": "Дата договора",
|
|
385
|
+
"dateCreated": "Дата создания",
|
|
386
|
+
"fileName": "Имя файла",
|
|
387
|
+
"reset": "Сбросить",
|
|
388
|
+
"toExcel": "Экспорт в Excel",
|
|
389
|
+
"condition": "Условие",
|
|
390
|
+
"bet": "Ставка",
|
|
391
|
+
"statistics": "Статистика",
|
|
392
|
+
"progressBar": "Шкала прогресса",
|
|
393
|
+
"toAgent": "Оформить",
|
|
394
|
+
"notification": "Уведомление",
|
|
395
|
+
"news": "Новости",
|
|
396
|
+
"profile": "Профиль",
|
|
275
397
|
"needAuth": "You are required to authorize",
|
|
276
398
|
"welcomeHL": "Welcome to Halyk Life",
|
|
277
399
|
"resetType": "Pick resetting method",
|
package/locales/kz.json
CHANGED
|
@@ -89,7 +89,13 @@
|
|
|
89
89
|
"needToRecalculate": "Необходимо пересчитать условия продукта",
|
|
90
90
|
"noUrl": "Отсутствует ссылка",
|
|
91
91
|
"pickFamilyMember": "Выберите члена семьи",
|
|
92
|
-
"numberRegistered": "Регистрационный номер успешно записан в реестр"
|
|
92
|
+
"numberRegistered": "Регистрационный номер успешно записан в реестр",
|
|
93
|
+
"requiredMember": "В заявке должен присутствовать {text}",
|
|
94
|
+
"client": "страхователь",
|
|
95
|
+
"insured": "застрахованный",
|
|
96
|
+
"beneficiary": "выгодоприобретатель",
|
|
97
|
+
"beneficialOwner": "бенефициарный собственник",
|
|
98
|
+
"spokesman": "представитель страхователя"
|
|
93
99
|
},
|
|
94
100
|
"buttons": {
|
|
95
101
|
"createStatement": "Создать заявку",
|
|
@@ -271,7 +277,123 @@
|
|
|
271
277
|
"decision": "Статус",
|
|
272
278
|
"userFullName": "Исполнитель"
|
|
273
279
|
},
|
|
280
|
+
"agent": {
|
|
281
|
+
"menu": "Меню",
|
|
282
|
+
"main": "Главное",
|
|
283
|
+
"reports": "Отчеты",
|
|
284
|
+
"report": "Отчет",
|
|
285
|
+
"notifications": "Уведомления",
|
|
286
|
+
"support": "Тех. поддержка",
|
|
287
|
+
"agentsInfo": "Сведения о страховых агентах",
|
|
288
|
+
"info": "Данные об агенте",
|
|
289
|
+
"about": "Сведения об Агенте",
|
|
290
|
+
"level": "Уровень",
|
|
291
|
+
"subAgents": "Суб-агенты",
|
|
292
|
+
"done": "Оформлено договоров",
|
|
293
|
+
"myContracts": "Оформлено договоров",
|
|
294
|
+
"nextLevel": "Следующий уровень {text}",
|
|
295
|
+
"leftMy": "Осталось оформить лично",
|
|
296
|
+
"leftAll": "Осталось оформить всего",
|
|
297
|
+
"donePolicies": "Оформлено полисов",
|
|
298
|
+
"successStat": "Статистика успешных сделок",
|
|
299
|
+
"doneMy": "Оформлено лично",
|
|
300
|
+
"doneAll": "Всего оформлено",
|
|
301
|
+
"progressAll": "Прогресс за все время работы",
|
|
302
|
+
"subagentsCalled": "Привлечено суб-агентов",
|
|
303
|
+
"myActivity": "Моя активность",
|
|
304
|
+
"teamActivity": "Активность команды",
|
|
305
|
+
"careerUp": "Карьерная лестница",
|
|
306
|
+
"direction": "Дирекция",
|
|
307
|
+
"leader": "Руководитель",
|
|
308
|
+
"agentic": "Агенство",
|
|
309
|
+
"agentCurator": "Куратор агента",
|
|
310
|
+
"agentId": "ID агента",
|
|
311
|
+
"reportType": "Тип отчета",
|
|
312
|
+
"reportFile": "Файл отчета",
|
|
313
|
+
"reportDate": "Отчетная дата",
|
|
314
|
+
"paymentJournal": "Журнал оплаты",
|
|
315
|
+
"journal": {
|
|
316
|
+
"incomeKz": "Приходы KZT",
|
|
317
|
+
"outcomeKz": "Расходы KZT",
|
|
318
|
+
"leftKz": "Остаток KZT",
|
|
319
|
+
"description": "Описание",
|
|
320
|
+
"delayMonth": "Месяц просрочки"
|
|
321
|
+
},
|
|
322
|
+
"unallocatedPayments": "Нераспределенные платежи",
|
|
323
|
+
"unallocation": {
|
|
324
|
+
"paymentId": "ID платежа",
|
|
325
|
+
"voucherNumber": "Номер ваучера",
|
|
326
|
+
"voucherDate": "Дата ваучера",
|
|
327
|
+
"voucherStatus": "Статус ваучера"
|
|
328
|
+
},
|
|
329
|
+
"unpaidPremiums": "Неоплаченные премии",
|
|
330
|
+
"unpaidDelay": "Просрочка",
|
|
331
|
+
"reportText": {
|
|
332
|
+
"reward": "Награда",
|
|
333
|
+
"cuWith": "Общие единицы с",
|
|
334
|
+
"cuBy": "Общие единицы по",
|
|
335
|
+
"puWith": "Личные единицы с",
|
|
336
|
+
"puBy": "Личные единицы по",
|
|
337
|
+
"minLevel": "Минимальный уровень",
|
|
338
|
+
"minNumOfSubs": "Мин. количество подчиненных",
|
|
339
|
+
"subsLevel": "Уровни подчиненных",
|
|
340
|
+
"daysAfter": "Дни после договора"
|
|
341
|
+
},
|
|
342
|
+
"supportText": {
|
|
343
|
+
"toChat": "Чат с тех. поддержкой"
|
|
344
|
+
},
|
|
345
|
+
"test": {
|
|
346
|
+
"testing": "Тестирование",
|
|
347
|
+
"results": "Результаты тестирования",
|
|
348
|
+
"type": "Вид тестирования",
|
|
349
|
+
"date": "Дата прохождения тестирования",
|
|
350
|
+
"resultInProcents": "Результат тестирования в процентах"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"jobApplication": {
|
|
354
|
+
"title": "Заявление на трудоустройсво",
|
|
355
|
+
"sent": "Заявление отправлено в страховую компанию",
|
|
356
|
+
"whichRegion": "Агентом какого региона вы хотите стать",
|
|
357
|
+
"requisites": "Реквизиты",
|
|
358
|
+
"conductReport": "Справка о несудимости",
|
|
359
|
+
"diplom": "Диплом",
|
|
360
|
+
"new": "Подать заявление"
|
|
361
|
+
},
|
|
274
362
|
"labels": {
|
|
363
|
+
"photo": "Фото",
|
|
364
|
+
"attachPhoto": "Вложить фото",
|
|
365
|
+
"form": "Форма",
|
|
366
|
+
"toSign": "Отправить на подпись",
|
|
367
|
+
"contract": "Договор",
|
|
368
|
+
"sections": "Разделы",
|
|
369
|
+
"chat": "Чат",
|
|
370
|
+
"today": "Сегодня",
|
|
371
|
+
"message": "Сообщение",
|
|
372
|
+
"category": "Категория",
|
|
373
|
+
"debt": "Долг",
|
|
374
|
+
"premiumDate": "Дата премии",
|
|
375
|
+
"delayDays": "Дни просрочки",
|
|
376
|
+
"dischargeDate": "Дата выписки",
|
|
377
|
+
"covering": "Покрытие",
|
|
378
|
+
"agentsContacts": "Контакты агента",
|
|
379
|
+
"clientsContacts": "Контакты страхователя",
|
|
380
|
+
"agentNumber": "Номер агента",
|
|
381
|
+
"additionalStatus": "Дополнительный статус",
|
|
382
|
+
"activeTime": "Время действия",
|
|
383
|
+
"statementNumber": "Номер заявления",
|
|
384
|
+
"dogovorDate": "Дата договора",
|
|
385
|
+
"dateCreated": "Дата создания",
|
|
386
|
+
"fileName": "Имя файла",
|
|
387
|
+
"reset": "Сбросить",
|
|
388
|
+
"toExcel": "Экспорт в Excel",
|
|
389
|
+
"condition": "Условие",
|
|
390
|
+
"bet": "Ставка",
|
|
391
|
+
"statistics": "Статистика",
|
|
392
|
+
"progressBar": "Шкала прогресса",
|
|
393
|
+
"toAgent": "Оформить",
|
|
394
|
+
"notification": "Уведомление",
|
|
395
|
+
"news": "Новости",
|
|
396
|
+
"profile": "Профиль",
|
|
275
397
|
"needAuth": "Для получения доступа Вам необходимо авторизоваться",
|
|
276
398
|
"welcomeHL": "Добро пожаловать в Halyk Life",
|
|
277
399
|
"resetType": "Выберите способ восстановление пароля",
|
package/locales/ru.json
CHANGED
|
@@ -89,7 +89,13 @@
|
|
|
89
89
|
"needToRecalculate": "Необходимо пересчитать условия продукта",
|
|
90
90
|
"noUrl": "Отсутствует ссылка",
|
|
91
91
|
"pickFamilyMember": "Выберите члена семьи",
|
|
92
|
-
"numberRegistered": "Регистрационный номер успешно записан в реестр"
|
|
92
|
+
"numberRegistered": "Регистрационный номер успешно записан в реестр",
|
|
93
|
+
"requiredMember": "В заявке должен присутствовать {text}",
|
|
94
|
+
"client": "страхователь",
|
|
95
|
+
"insured": "застрахованный",
|
|
96
|
+
"beneficiary": "выгодоприобретатель",
|
|
97
|
+
"beneficialOwner": "бенефициарный собственник",
|
|
98
|
+
"spokesman": "представитель страхователя"
|
|
93
99
|
},
|
|
94
100
|
"buttons": {
|
|
95
101
|
"createStatement": "Создать заявку",
|
|
@@ -271,7 +277,123 @@
|
|
|
271
277
|
"decision": "Статус",
|
|
272
278
|
"userFullName": "Исполнитель"
|
|
273
279
|
},
|
|
280
|
+
"agent": {
|
|
281
|
+
"menu": "Меню",
|
|
282
|
+
"main": "Главное",
|
|
283
|
+
"reports": "Отчеты",
|
|
284
|
+
"report": "Отчет",
|
|
285
|
+
"notifications": "Уведомления",
|
|
286
|
+
"support": "Тех. поддержка",
|
|
287
|
+
"agentsInfo": "Сведения о страховых агентах",
|
|
288
|
+
"info": "Данные об агенте",
|
|
289
|
+
"about": "Сведения об Агенте",
|
|
290
|
+
"level": "Уровень",
|
|
291
|
+
"subAgents": "Суб-агенты",
|
|
292
|
+
"done": "Оформлено договоров",
|
|
293
|
+
"myContracts": "Оформлено договоров",
|
|
294
|
+
"nextLevel": "Следующий уровень {text}",
|
|
295
|
+
"leftMy": "Осталось оформить лично",
|
|
296
|
+
"leftAll": "Осталось оформить всего",
|
|
297
|
+
"donePolicies": "Оформлено полисов",
|
|
298
|
+
"successStat": "Статистика успешных сделок",
|
|
299
|
+
"doneMy": "Оформлено лично",
|
|
300
|
+
"doneAll": "Всего оформлено",
|
|
301
|
+
"progressAll": "Прогресс за все время работы",
|
|
302
|
+
"subagentsCalled": "Привлечено суб-агентов",
|
|
303
|
+
"myActivity": "Моя активность",
|
|
304
|
+
"teamActivity": "Активность команды",
|
|
305
|
+
"careerUp": "Карьерная лестница",
|
|
306
|
+
"direction": "Дирекция",
|
|
307
|
+
"leader": "Руководитель",
|
|
308
|
+
"agentic": "Агенство",
|
|
309
|
+
"agentCurator": "Куратор агента",
|
|
310
|
+
"agentId": "ID агента",
|
|
311
|
+
"reportType": "Тип отчета",
|
|
312
|
+
"reportFile": "Файл отчета",
|
|
313
|
+
"reportDate": "Отчетная дата",
|
|
314
|
+
"paymentJournal": "Журнал оплаты",
|
|
315
|
+
"journal": {
|
|
316
|
+
"incomeKz": "Приходы KZT",
|
|
317
|
+
"outcomeKz": "Расходы KZT",
|
|
318
|
+
"leftKz": "Остаток KZT",
|
|
319
|
+
"description": "Описание",
|
|
320
|
+
"delayMonth": "Месяц просрочки"
|
|
321
|
+
},
|
|
322
|
+
"unallocatedPayments": "Нераспределенные платежи",
|
|
323
|
+
"unallocation": {
|
|
324
|
+
"paymentId": "ID платежа",
|
|
325
|
+
"voucherNumber": "Номер ваучера",
|
|
326
|
+
"voucherDate": "Дата ваучера",
|
|
327
|
+
"voucherStatus": "Статус ваучера"
|
|
328
|
+
},
|
|
329
|
+
"unpaidPremiums": "Неоплаченные премии",
|
|
330
|
+
"unpaidDelay": "Просрочка",
|
|
331
|
+
"reportText": {
|
|
332
|
+
"reward": "Награда",
|
|
333
|
+
"cuWith": "Общие единицы с",
|
|
334
|
+
"cuBy": "Общие единицы по",
|
|
335
|
+
"puWith": "Личные единицы с",
|
|
336
|
+
"puBy": "Личные единицы по",
|
|
337
|
+
"minLevel": "Минимальный уровень",
|
|
338
|
+
"minNumOfSubs": "Мин. количество подчиненных",
|
|
339
|
+
"subsLevel": "Уровни подчиненных",
|
|
340
|
+
"daysAfter": "Дни после договора"
|
|
341
|
+
},
|
|
342
|
+
"supportText": {
|
|
343
|
+
"toChat": "Чат с тех. поддержкой"
|
|
344
|
+
},
|
|
345
|
+
"test": {
|
|
346
|
+
"testing": "Тестирование",
|
|
347
|
+
"results": "Результаты тестирования",
|
|
348
|
+
"type": "Вид тестирования",
|
|
349
|
+
"date": "Дата прохождения тестирования",
|
|
350
|
+
"resultInProcents": "Результат тестирования в процентах"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"jobApplication": {
|
|
354
|
+
"title": "Заявление на трудоустройсво",
|
|
355
|
+
"sent": "Заявление отправлено в страховую компанию",
|
|
356
|
+
"whichRegion": "Агентом какого региона вы хотите стать",
|
|
357
|
+
"requisites": "Реквизиты",
|
|
358
|
+
"conductReport": "Справка о несудимости",
|
|
359
|
+
"diplom": "Диплом",
|
|
360
|
+
"new": "Подать заявление"
|
|
361
|
+
},
|
|
274
362
|
"labels": {
|
|
363
|
+
"photo": "Фото",
|
|
364
|
+
"attachPhoto": "Вложить фото",
|
|
365
|
+
"form": "Форма",
|
|
366
|
+
"toSign": "Отправить на подпись",
|
|
367
|
+
"contract": "Договор",
|
|
368
|
+
"sections": "Разделы",
|
|
369
|
+
"chat": "Чат",
|
|
370
|
+
"today": "Сегодня",
|
|
371
|
+
"message": "Сообщение",
|
|
372
|
+
"category": "Категория",
|
|
373
|
+
"debt": "Долг",
|
|
374
|
+
"premiumDate": "Дата премии",
|
|
375
|
+
"delayDays": "Дни просрочки",
|
|
376
|
+
"dischargeDate": "Дата выписки",
|
|
377
|
+
"covering": "Покрытие",
|
|
378
|
+
"agentsContacts": "Контакты агента",
|
|
379
|
+
"clientsContacts": "Контакты страхователя",
|
|
380
|
+
"agentNumber": "Номер агента",
|
|
381
|
+
"additionalStatus": "Дополнительный статус",
|
|
382
|
+
"activeTime": "Время действия",
|
|
383
|
+
"statementNumber": "Номер заявления",
|
|
384
|
+
"dogovorDate": "Дата договора",
|
|
385
|
+
"dateCreated": "Дата создания",
|
|
386
|
+
"fileName": "Имя файла",
|
|
387
|
+
"reset": "Сбросить",
|
|
388
|
+
"toExcel": "Экспорт в Excel",
|
|
389
|
+
"condition": "Условие",
|
|
390
|
+
"bet": "Ставка",
|
|
391
|
+
"statistics": "Статистика",
|
|
392
|
+
"progressBar": "Шкала прогресса",
|
|
393
|
+
"toAgent": "Оформить",
|
|
394
|
+
"notification": "Уведомление",
|
|
395
|
+
"news": "Новости",
|
|
396
|
+
"profile": "Профиль",
|
|
275
397
|
"needAuth": "Для получения доступа Вам необходимо авторизоваться",
|
|
276
398
|
"welcomeHL": "Добро пожаловать в Halyk Life",
|
|
277
399
|
"resetType": "Выберите способ восстановление пароля",
|
package/package.json
CHANGED
package/store/data.store.js
CHANGED
|
@@ -712,8 +712,8 @@ export const useDataStore = defineStore('data', {
|
|
|
712
712
|
addressData.push({
|
|
713
713
|
id: 'response' in user && user.response && 'addresses' in user.response ? user.response.addresses[0].id : 0,
|
|
714
714
|
contragentId: user.id,
|
|
715
|
-
countryCode: user.
|
|
716
|
-
countryName: user.
|
|
715
|
+
countryCode: user.registrationCountry.ids,
|
|
716
|
+
countryName: user.registrationCountry.nameRu,
|
|
717
717
|
stateCode: user.registrationProvince.ids,
|
|
718
718
|
stateName: user.registrationProvince.nameRu,
|
|
719
719
|
cityCode: user.registrationCity.code,
|
|
@@ -727,7 +727,7 @@ export const useDataStore = defineStore('data', {
|
|
|
727
727
|
cityTypeName: user.registrationRegionType.nameRu,
|
|
728
728
|
blockNumber: user.registrationNumberHouse,
|
|
729
729
|
apartmentNumber: user.registrationNumberApartment,
|
|
730
|
-
address: `${checkForNull(user.
|
|
730
|
+
address: `${checkForNull(user.registrationCountry.nameRu)}, ${checkForNull(user.registrationRegionType.nameRu)} ${checkForNull(user.registrationCity.nameRu)}, ул. ${checkForNull(
|
|
731
731
|
user.registrationStreet,
|
|
732
732
|
)}, д. ${checkForNull(user.registrationNumberHouse)} кв. ${checkForNull(user.registrationNumberApartment)}`,
|
|
733
733
|
type: 'H',
|
|
@@ -742,9 +742,11 @@ export const useDataStore = defineStore('data', {
|
|
|
742
742
|
};
|
|
743
743
|
|
|
744
744
|
const personId = await this.api.saveContragent(data);
|
|
745
|
-
if (personId) {
|
|
745
|
+
if (personId > 0) {
|
|
746
746
|
await this.getContragentById(personId, whichForm, false, whichIndex);
|
|
747
747
|
user.otpTokenId = null;
|
|
748
|
+
} else {
|
|
749
|
+
return false;
|
|
748
750
|
}
|
|
749
751
|
} catch (err) {
|
|
750
752
|
this.isLoading = false;
|
|
@@ -1277,8 +1279,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1277
1279
|
this.showToaster('success', this.t('toaster.successSaved'));
|
|
1278
1280
|
return true;
|
|
1279
1281
|
} catch (err) {
|
|
1280
|
-
|
|
1281
|
-
return false;
|
|
1282
|
+
return ErrorHandler(err);
|
|
1282
1283
|
} finally {
|
|
1283
1284
|
this.isLoading = false;
|
|
1284
1285
|
}
|
|
@@ -1485,6 +1486,12 @@ export const useDataStore = defineStore('data', {
|
|
|
1485
1486
|
const beneficiaryPolicyholderIndex = beneficiaryData.findIndex(i => i.insisId === clientData.insisId);
|
|
1486
1487
|
this.formStore.isPolicyholderBeneficiary = beneficiaryPolicyholderIndex !== -1;
|
|
1487
1488
|
|
|
1489
|
+
if ('finCenterData' in applicationData && !!applicationData.finCenterData) {
|
|
1490
|
+
this.formStore.finCenterData = applicationData.finCenterData;
|
|
1491
|
+
this.formStore.finCenterData.regNumber = applicationData.finCenterData.regNumber;
|
|
1492
|
+
this.formStore.finCenterData.date = reformatDate(applicationData.finCenterData.date);
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1488
1495
|
if (fetchMembers) {
|
|
1489
1496
|
let allMembers = [
|
|
1490
1497
|
{
|
|
@@ -1832,6 +1839,22 @@ export const useDataStore = defineStore('data', {
|
|
|
1832
1839
|
ErrorHandler(err);
|
|
1833
1840
|
}
|
|
1834
1841
|
},
|
|
1842
|
+
async registerNumber() {
|
|
1843
|
+
try {
|
|
1844
|
+
this.isLoading = true;
|
|
1845
|
+
const data = {
|
|
1846
|
+
processInstanceId: this.formStore.applicationData.processInstanceId,
|
|
1847
|
+
regNumber: this.formStore.finCenterData.regNumber,
|
|
1848
|
+
date: this.formStore.finCenterData.date,
|
|
1849
|
+
};
|
|
1850
|
+
const result = await this.api.registerNumber(data);
|
|
1851
|
+
return result;
|
|
1852
|
+
} catch (err) {
|
|
1853
|
+
return ErrorHandler(err);
|
|
1854
|
+
} finally {
|
|
1855
|
+
this.isLoading = false;
|
|
1856
|
+
}
|
|
1857
|
+
},
|
|
1835
1858
|
async sendSMS(type, phoneNumber, text) {
|
|
1836
1859
|
if (!type || !phoneNumber || !text) return;
|
|
1837
1860
|
const smsData = {
|
|
@@ -1951,22 +1974,45 @@ export const useDataStore = defineStore('data', {
|
|
|
1951
1974
|
this.showToaster('error', this.t('toaster.notSavedMember', { text: 'страхователя' }), 3000);
|
|
1952
1975
|
return false;
|
|
1953
1976
|
}
|
|
1954
|
-
if (
|
|
1977
|
+
if (this.members.insuredApp.has) {
|
|
1955
1978
|
if (this.validateMultipleMembers(this.formStore.insuredFormKey, 'insuredApp', 'застрахованных') === false) {
|
|
1956
1979
|
return false;
|
|
1957
1980
|
}
|
|
1981
|
+
if (this.members.insuredApp.required) {
|
|
1982
|
+
const inStatement = this.formStore.insuredForm.every(i => i.id > 0);
|
|
1983
|
+
if (inStatement === false) {
|
|
1984
|
+
this.showToaster('error', this.t('toaster.requiredMember', { text: this.t('toaster.insured') }));
|
|
1985
|
+
return false;
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1958
1988
|
}
|
|
1959
|
-
if (this.
|
|
1960
|
-
|
|
1989
|
+
if (this.members.beneficiaryApp.has) {
|
|
1990
|
+
if (this.validateMultipleMembers(this.formStore.beneficiaryFormKey, 'beneficiaryApp', 'выгодоприобретателей') === false) {
|
|
1991
|
+
return false;
|
|
1992
|
+
}
|
|
1993
|
+
if (this.members.beneficiaryApp.required) {
|
|
1994
|
+
const inStatement = this.formStore.beneficiaryForm.every(i => i.id > 0);
|
|
1995
|
+
if (inStatement === false) {
|
|
1996
|
+
this.showToaster('error', this.t('toaster.requiredMember', { text: this.t('toaster.beneficiary') }));
|
|
1997
|
+
return false;
|
|
1998
|
+
}
|
|
1999
|
+
}
|
|
1961
2000
|
}
|
|
1962
|
-
if (
|
|
2001
|
+
if (this.members.beneficialOwnerApp.has) {
|
|
1963
2002
|
if (this.formStore.isActOwnBehalf === false) {
|
|
1964
2003
|
if (this.validateMultipleMembers(this.formStore.beneficialOwnerFormKey, 'beneficialOwnerApp', 'бенефициарных собственников') === false) {
|
|
1965
2004
|
return false;
|
|
1966
2005
|
}
|
|
1967
2006
|
}
|
|
2007
|
+
if (this.members.beneficialOwnerApp.required) {
|
|
2008
|
+
const inStatement = this.formStore.beneficialOwnerForm.every(i => i.id > 0);
|
|
2009
|
+
if (inStatement === false) {
|
|
2010
|
+
this.showToaster('error', this.t('toaster.requiredMember', { text: this.t('toaster.beneficialOwner') }));
|
|
2011
|
+
return false;
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
1968
2014
|
}
|
|
1969
|
-
if (
|
|
2015
|
+
if (this.members.spokesmanApp.has) {
|
|
1970
2016
|
if (this.formStore.hasRepresentative) {
|
|
1971
2017
|
if (this.formStore.applicationData.spokesmanApp && this.formStore.policyholdersRepresentativeForm.id !== this.formStore.applicationData.spokesmanApp.insisId) {
|
|
1972
2018
|
this.showToaster(
|
|
@@ -1979,6 +2025,13 @@ export const useDataStore = defineStore('data', {
|
|
|
1979
2025
|
return false;
|
|
1980
2026
|
}
|
|
1981
2027
|
}
|
|
2028
|
+
if (this.members.spokesmanApp.required) {
|
|
2029
|
+
const inStatement = this.formStore.policyholdersRepresentativeForm.id > 0;
|
|
2030
|
+
if (inStatement === false) {
|
|
2031
|
+
this.showToaster('error', this.t('toaster.requiredMember', { text: this.t('toaster.spokesman') }));
|
|
2032
|
+
return false;
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
1982
2035
|
}
|
|
1983
2036
|
if (this.controls.hasAttachment) {
|
|
1984
2037
|
const areValid = this.formStore.SaleChanellPolicy.nameRu && this.formStore.RegionPolicy.nameRu && this.formStore.ManagerPolicy.nameRu && this.formStore.AgentData.fullName;
|
package/store/member.store.ts
CHANGED
|
@@ -159,8 +159,9 @@ export const useMemberStore = defineStore('members', {
|
|
|
159
159
|
} else {
|
|
160
160
|
if (memberData) await this.dataStore.api.deleteMember(memberCode, memberData.id as number);
|
|
161
161
|
}
|
|
162
|
+
const cleared = this.clearMember(whichForm, whichIndex);
|
|
162
163
|
if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true, false);
|
|
163
|
-
return
|
|
164
|
+
return cleared;
|
|
164
165
|
} catch (err) {
|
|
165
166
|
console.log(err);
|
|
166
167
|
return ErrorHandler(err);
|
|
@@ -202,6 +203,12 @@ export const useMemberStore = defineStore('members', {
|
|
|
202
203
|
|
|
203
204
|
if (successTranser.value === true) {
|
|
204
205
|
if (toIndex.value !== null && taskId !== '0' && this.formStore.applicationData.processInstanceId !== 0) {
|
|
206
|
+
if (
|
|
207
|
+
typeof this.formStore[to][toIndex.value].id !== 'number' ||
|
|
208
|
+
(typeof this.formStore[to][toIndex.value].id === 'number' && this.formStore[to][toIndex.value].id > 0 === false)
|
|
209
|
+
) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
205
212
|
const hasSaved = await this.dataStore.saveMember(this.formStore[to][toIndex.value], this.getMemberCode(to), this.getMemberFromApplication(to, toIndex.value));
|
|
206
213
|
if (hasSaved) {
|
|
207
214
|
await this.dataStore.getApplicationData(taskId, false, true, true, false);
|