hl-core 0.0.10-beta.37 → 0.0.10-beta.38
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/base.api.ts +10 -0
- package/components/Input/TextAreaField.vue +71 -0
- package/components/Pages/Anketa.vue +2 -2
- package/components/Pages/MemberForm.vue +2 -2
- package/components/Panel/PanelHandler.vue +23 -9
- package/composables/classes.ts +2 -0
- package/composables/index.ts +3 -1
- package/locales/ru.json +1 -0
- package/package.json +1 -1
- package/store/data.store.ts +24 -17
- package/store/rules.ts +1 -0
- package/types/enum.ts +2 -1
package/api/base.api.ts
CHANGED
|
@@ -1039,6 +1039,16 @@ export class ApiClass {
|
|
|
1039
1039
|
});
|
|
1040
1040
|
}
|
|
1041
1041
|
|
|
1042
|
+
async getParentApplication(bin: string) {
|
|
1043
|
+
return await this.axiosCall<any>({
|
|
1044
|
+
method: Methods.GET,
|
|
1045
|
+
url: `/${this.productUrl}/api/Application/GetParentApplication`,
|
|
1046
|
+
params: {
|
|
1047
|
+
bin,
|
|
1048
|
+
},
|
|
1049
|
+
});
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1042
1052
|
pensionannuityNew = {
|
|
1043
1053
|
base: '/pensionannuityNew',
|
|
1044
1054
|
getEnpfRedirectUrl: async (id: string) => {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-textarea
|
|
3
|
+
class="form-input"
|
|
4
|
+
:label="label"
|
|
5
|
+
:model-value="modelValue"
|
|
6
|
+
:disabled="disabled"
|
|
7
|
+
:variant="variant"
|
|
8
|
+
:readonly="props.readonly"
|
|
9
|
+
:color="color"
|
|
10
|
+
:rows="rows"
|
|
11
|
+
@update:modelValue="$emit('update:modelValue', $event)"
|
|
12
|
+
auto-grow
|
|
13
|
+
></v-textarea>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script lang="ts">
|
|
17
|
+
import type { InputVariants } from '../../types';
|
|
18
|
+
|
|
19
|
+
export default defineComponent({
|
|
20
|
+
props: {
|
|
21
|
+
modelValue: {
|
|
22
|
+
required: false,
|
|
23
|
+
},
|
|
24
|
+
label: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: '',
|
|
27
|
+
},
|
|
28
|
+
disabled: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false,
|
|
31
|
+
},
|
|
32
|
+
variant: {
|
|
33
|
+
type: String as PropType<InputVariants>,
|
|
34
|
+
default: 'solo',
|
|
35
|
+
},
|
|
36
|
+
readonly: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: false,
|
|
39
|
+
},
|
|
40
|
+
color: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: '#009c73',
|
|
43
|
+
},
|
|
44
|
+
rows: {
|
|
45
|
+
type: Number,
|
|
46
|
+
default: 5,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
emits: ['update:modelValue'],
|
|
50
|
+
|
|
51
|
+
setup(props, { emit }) {
|
|
52
|
+
return {
|
|
53
|
+
props,
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<style>
|
|
60
|
+
.form-input input:focus {
|
|
61
|
+
border: none !important;
|
|
62
|
+
outline: none !important;
|
|
63
|
+
}
|
|
64
|
+
.form-input .v-field {
|
|
65
|
+
box-shadow: none;
|
|
66
|
+
font-size: 14px;
|
|
67
|
+
}
|
|
68
|
+
.form-input .v-label.v-field-label {
|
|
69
|
+
top: 20px;
|
|
70
|
+
}
|
|
71
|
+
</style>
|
|
@@ -422,7 +422,7 @@ export default defineComponent({
|
|
|
422
422
|
if (firstQuestionList.value) {
|
|
423
423
|
if (answerToAll.value) {
|
|
424
424
|
firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
|
|
425
|
-
if (question.first.answerType === 'T') {
|
|
425
|
+
if (question.first.answerType === 'T' || question.first.answerType === 'D') {
|
|
426
426
|
firstQuestionList.value![index].first.answerName = 'Нет' as AnswerName;
|
|
427
427
|
}
|
|
428
428
|
});
|
|
@@ -432,7 +432,7 @@ export default defineComponent({
|
|
|
432
432
|
}
|
|
433
433
|
} else {
|
|
434
434
|
firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
|
|
435
|
-
if (question.first.answerType === 'T') {
|
|
435
|
+
if (question.first.answerType === 'T' || question.first.answerType === 'D') {
|
|
436
436
|
firstQuestionList.value![index].first.answerName = null;
|
|
437
437
|
}
|
|
438
438
|
});
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
v-if="$dataStore.isPension && (whichForm === formStore.insuredFormKey || $route.query.tab === 'slaveInsuredForm')"
|
|
209
209
|
:title="$dataStore.t('pension.disabilityInfo')"
|
|
210
210
|
>
|
|
211
|
-
<base-form-toggle v-model="member.isDisability" :title="$dataStore.t('pension.
|
|
211
|
+
<base-form-toggle v-model="member.isDisability" :title="$dataStore.t('pension.ifHasDisabilityAlways')" :disabled="isDisabled" :has-border="false" />
|
|
212
212
|
<base-animation>
|
|
213
213
|
<base-panel-input
|
|
214
214
|
v-if="member.isDisability"
|
|
@@ -1676,7 +1676,7 @@ export default {
|
|
|
1676
1676
|
});
|
|
1677
1677
|
if (data.slave)
|
|
1678
1678
|
pensionKeysWithSpace.forEach(key => {
|
|
1679
|
-
if (/\s/g.test(data.slave[key]) === true) data.slave[key] =
|
|
1679
|
+
if (/\s/g.test(data.slave[key]) === true) data.slave[key] = formatSpacedNumber(data.slave[key]);
|
|
1680
1680
|
});
|
|
1681
1681
|
const isApplicationSaved = await dataStore.setApplication(data);
|
|
1682
1682
|
if (!isNewApplication) dataStore.showToaster('info', dataStore.t('toaster.needToRecalculate'), 5000);
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<base-file-input :label="$dataStore.t('labels.attachPowerOfAttorney')" @input.prevent="onFileChangeScans($event, 'attorney')" @onClear="onClearFile('attorney')" />
|
|
59
59
|
</base-form-section>
|
|
60
60
|
</div>
|
|
61
|
-
<base-btn :text="$dataStore.t('buttons.sign')" :loading="$dataStore.isButtonsLoading" @click="isNewSign ? sendFilesNew() : sendFiles()" />
|
|
61
|
+
<base-btn :text="$dataStore.t('buttons.sign')" :loading="$dataStore.isButtonsLoading || loading" @click="isNewSign ? sendFilesNew() : sendFiles()" />
|
|
62
62
|
<base-btn :text="$dataStore.t('buttons.cancel')" :btn="$styles.whiteBtn" @click="isScansDocuments = false" />
|
|
63
63
|
</div>
|
|
64
64
|
<div v-if="isQr" :class="[$styles.flexColNav]">
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
</section>
|
|
124
124
|
<section v-if="choosePayActions">
|
|
125
125
|
<div v-if="!isEpayPay && !isOfflinePay" :class="[$styles.flexColNav]">
|
|
126
|
-
<base-btn :text="$dataStore.t('buttons.payEpay')" :loading="loading" @click="handlePayAction('epay')" />
|
|
126
|
+
<base-btn v-if="hasEpayPay" :text="$dataStore.t('buttons.payEpay')" :loading="loading" @click="handlePayAction('epay')" />
|
|
127
127
|
<base-btn :text="$dataStore.t('buttons.payOffline')" :loading="loading" @click="handlePayAction('offline')" />
|
|
128
128
|
</div>
|
|
129
129
|
<div v-if="isOfflinePay" :class="[$styles.flexColNav]">
|
|
@@ -449,6 +449,7 @@ export default defineComponent({
|
|
|
449
449
|
};
|
|
450
450
|
|
|
451
451
|
const sendFiles = async () => {
|
|
452
|
+
loading.value = true;
|
|
452
453
|
if (scansFiles.value.length !== 4) {
|
|
453
454
|
dataStore.showToaster('warning', dataStore.t('toaster.notAllDocumentsAttached'));
|
|
454
455
|
return;
|
|
@@ -462,6 +463,7 @@ export default defineComponent({
|
|
|
462
463
|
closePanel();
|
|
463
464
|
dataStore.showToaster('success', dataStore.t('toaster.successOperation'));
|
|
464
465
|
await dataStore.handleTask(constants.actions.signed, route.params.taskId as string, 'scans');
|
|
466
|
+
loading.value = false;
|
|
465
467
|
};
|
|
466
468
|
const submitForm = async () => {
|
|
467
469
|
await vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
|
|
@@ -647,6 +649,12 @@ export default defineComponent({
|
|
|
647
649
|
const isSignatureDisabled = computed(() => {
|
|
648
650
|
return true;
|
|
649
651
|
});
|
|
652
|
+
const hasEpayPay = computed(() => {
|
|
653
|
+
if (dataStore.isLifeBusiness || dataStore.isGns) {
|
|
654
|
+
return false;
|
|
655
|
+
}
|
|
656
|
+
return true;
|
|
657
|
+
});
|
|
650
658
|
const downloadTemplate = async (documentType: number, fileType: string) => {
|
|
651
659
|
await dataStore.downloadTemplate(documentType, fileType, formStore.applicationData.processInstanceId);
|
|
652
660
|
};
|
|
@@ -892,14 +900,19 @@ export default defineComponent({
|
|
|
892
900
|
isQr.value = true;
|
|
893
901
|
break;
|
|
894
902
|
case CoreEnums.Sign.Types.nclayer:
|
|
895
|
-
for (let
|
|
896
|
-
const
|
|
897
|
-
if (
|
|
898
|
-
dataStore.
|
|
899
|
-
|
|
903
|
+
for (let each of file.filter((i: any) => i.isSigned !== true)) {
|
|
904
|
+
const signingFile = signOptions.value.signIds.find((i: any) => Number(i.fileType) === Number(each.fileType));
|
|
905
|
+
if (signingFile) {
|
|
906
|
+
const response = await dataStore.nclayerSign(signingFile.id, signType, Number(each.fileType) === 43);
|
|
907
|
+
if (response === null) {
|
|
908
|
+
dataStore.showToaster('error', 'Ошибка при подключении к приложению «NCALayer». Убедитесь, что запустили приложение «NCALayer»', 10000);
|
|
909
|
+
break;
|
|
910
|
+
}
|
|
911
|
+
if (!response) break;
|
|
912
|
+
if (response === true) dataStore.showToaster('success', 'Подписание прошло успешно');
|
|
913
|
+
} else {
|
|
914
|
+
dataStore.showToaster('error', 'Не найдены данные для подписания файла');
|
|
900
915
|
}
|
|
901
|
-
if (!response) break;
|
|
902
|
-
if (response === true) dataStore.showToaster('success', 'Подписание прошло успешно');
|
|
903
916
|
}
|
|
904
917
|
break;
|
|
905
918
|
default:
|
|
@@ -1003,6 +1016,7 @@ export default defineComponent({
|
|
|
1003
1016
|
getFileNew,
|
|
1004
1017
|
inSigningOrder,
|
|
1005
1018
|
isNewSign,
|
|
1019
|
+
hasEpayPay,
|
|
1006
1020
|
};
|
|
1007
1021
|
},
|
|
1008
1022
|
});
|
package/composables/classes.ts
CHANGED
|
@@ -1564,6 +1564,7 @@ export class FormStoreClass {
|
|
|
1564
1564
|
export class Address {
|
|
1565
1565
|
country: Value;
|
|
1566
1566
|
region: Value;
|
|
1567
|
+
state: Value;
|
|
1567
1568
|
regionType: Value;
|
|
1568
1569
|
city: Value;
|
|
1569
1570
|
square: string | null;
|
|
@@ -1577,6 +1578,7 @@ export class Address {
|
|
|
1577
1578
|
constructor() {
|
|
1578
1579
|
this.country = new Value();
|
|
1579
1580
|
this.region = new Value();
|
|
1581
|
+
this.state = new Value();
|
|
1580
1582
|
this.regionType = new Value();
|
|
1581
1583
|
this.city = new Value();
|
|
1582
1584
|
this.square = null;
|
package/composables/index.ts
CHANGED
|
@@ -806,6 +806,9 @@ export class RoleController {
|
|
|
806
806
|
isDsoDirector = () => {
|
|
807
807
|
return this.isRole(constants.roles.DsoDirector);
|
|
808
808
|
};
|
|
809
|
+
isArchivist = () => {
|
|
810
|
+
return this.isRole(constants.roles.Archivist);
|
|
811
|
+
};
|
|
809
812
|
isAccountantDirector = () => {
|
|
810
813
|
return this.isRole(constants.roles.AccountantDirector);
|
|
811
814
|
};
|
|
@@ -826,7 +829,6 @@ export class RoleController {
|
|
|
826
829
|
toUU: this.isServiceManager() || this.isAccountant() || this.isAdjuster() || this.isHeadAdjuster() || baseAccessRoles,
|
|
827
830
|
toDSO:
|
|
828
831
|
this.isDsuio() ||
|
|
829
|
-
this.isManager() ||
|
|
830
832
|
this.isActuary() ||
|
|
831
833
|
this.isHeadOfDso() ||
|
|
832
834
|
this.isAccountant() ||
|
package/locales/ru.json
CHANGED
|
@@ -560,6 +560,7 @@
|
|
|
560
560
|
"paymentsDate": "Дата начала аннуитетных выплат",
|
|
561
561
|
"paymentsPeriod": "Период страховых выплат",
|
|
562
562
|
"ifHasDisability": "Включите, если у Страхователя есть инвалидность",
|
|
563
|
+
"ifHasDisabilityAlways": "Включите, если у Страхователя бессрочная инвалидность",
|
|
563
564
|
"disabilityInfo": "Данные об инвалидности",
|
|
564
565
|
"disabilityGroup": "Группа инвалидности",
|
|
565
566
|
"compulsoryContractAmount": "Обязательные пенсионные взносы, в тенге",
|
package/package.json
CHANGED
package/store/data.store.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { rules } from './rules';
|
|
|
3
3
|
import { i18n } from '../configs/i18n';
|
|
4
4
|
import { Toast, Types as ToastTypes, Positions, ToastOptions } from './toast';
|
|
5
5
|
import { isValidGUID, yearEnding, jwtDecode, ErrorHandler, getKeyWithPattern, getNumber, getAgeByBirthDate, RoleController, ProcessController, sanitize } from '../composables';
|
|
6
|
-
import { DataStoreClass, DocumentItem, Member, Value, CountryValue, PolicyholderActivity, BeneficialOwner, PolicyholderClass } from '../composables/classes';
|
|
6
|
+
import { DataStoreClass, DocumentItem, Member, Value, CountryValue, PolicyholderActivity, BeneficialOwner, PolicyholderClass, GroupMember } from '../composables/classes';
|
|
7
7
|
import { ApiClass } from '../api';
|
|
8
8
|
import { useFormStore } from './form.store';
|
|
9
9
|
import { AxiosError } from 'axios';
|
|
@@ -3689,12 +3689,6 @@ export const useDataStore = defineStore('data', {
|
|
|
3689
3689
|
this.formStore.applicationData = applicationData;
|
|
3690
3690
|
this.formStore.regNumber = applicationData.regNumber;
|
|
3691
3691
|
this.formStore.additionalInsuranceTerms = applicationData.addCoverDto;
|
|
3692
|
-
|
|
3693
|
-
if (localStorage.getItem('add') === 'true' || this.formStore.applicationData.parentPolicyDto !== null) {
|
|
3694
|
-
this.formStore.lfb.add = true;
|
|
3695
|
-
this.formStore.lfb.policyholder.clientData.iin = localStorage.getItem('bin') as string;
|
|
3696
|
-
}
|
|
3697
|
-
|
|
3698
3692
|
this.formStore.canBeClaimed = await this.api.isClaimTask(taskId);
|
|
3699
3693
|
this.formStore.applicationTaskId = taskId;
|
|
3700
3694
|
this.formStore.RegionPolicy.nameRu = applicationData.insisWorkDataApp.regionPolicyName;
|
|
@@ -3715,17 +3709,8 @@ export const useDataStore = defineStore('data', {
|
|
|
3715
3709
|
|
|
3716
3710
|
this.formStore.applicationData.processInstanceId = applicationData.processInstanceId;
|
|
3717
3711
|
this.formStore.lfb.policyholder.isIpdl = applicationData.clientApp.isIpdl;
|
|
3718
|
-
this.formStore.lfb.policyholder.clientData = clientData;
|
|
3719
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson = clientData.authoritedPerson;
|
|
3720
|
-
this.formStore.lfb.policyholder.clientData.iin = reformatIin(clientData.iin);
|
|
3721
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson.iin = reformatIin(clientData.authoritedPerson.iin);
|
|
3722
3712
|
this.formStore.lfb.clientId = clientId;
|
|
3723
|
-
this.
|
|
3724
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson.birthDate = reformatDate(clientData.authoritedPerson.birthDate) ?? '';
|
|
3725
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.issuedOn = reformatDate(clientData.authoritedPerson.identityDocument.issuedOn) ?? '';
|
|
3726
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.validUntil = reformatDate(clientData.authoritedPerson.identityDocument.validUntil) ?? '';
|
|
3727
|
-
const gender = this.gender.find((i: Value) => i.id === clientData.authoritedPerson.gender);
|
|
3728
|
-
this.formStore.lfb.policyholder.clientData.authoritedPerson.gender = gender ? gender : new Value();
|
|
3713
|
+
this.getClientData(clientData);
|
|
3729
3714
|
|
|
3730
3715
|
if (clientData && clientData.activityTypes !== null) {
|
|
3731
3716
|
this.formStore.lfb.policyholderActivities = clientData.activityTypes;
|
|
@@ -4123,6 +4108,28 @@ export const useDataStore = defineStore('data', {
|
|
|
4123
4108
|
return ErrorHandler(err);
|
|
4124
4109
|
}
|
|
4125
4110
|
},
|
|
4111
|
+
getClientData(clientData: GroupMember) {
|
|
4112
|
+
this.formStore.lfb.policyholder.clientData = clientData;
|
|
4113
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson = clientData.authoritedPerson;
|
|
4114
|
+
this.formStore.lfb.policyholder.clientData.iin = reformatIin(clientData.iin);
|
|
4115
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.iin = reformatIin(clientData.authoritedPerson.iin);
|
|
4116
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.authorityDetails.date = reformatDate(clientData.authoritedPerson.authorityDetails.date as string);
|
|
4117
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.birthDate = reformatDate(clientData.authoritedPerson.birthDate) ?? '';
|
|
4118
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.issuedOn = reformatDate(clientData.authoritedPerson.identityDocument.issuedOn) ?? '';
|
|
4119
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.validUntil = reformatDate(clientData.authoritedPerson.identityDocument.validUntil) ?? '';
|
|
4120
|
+
const gender = this.gender.find((i: Value) => i.id === Number(clientData.authoritedPerson.gender));
|
|
4121
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.gender = gender ? gender : new Value();
|
|
4122
|
+
},
|
|
4123
|
+
async getParentApplication(bin: string) {
|
|
4124
|
+
try {
|
|
4125
|
+
const response = await this.api.getParentApplication(bin);
|
|
4126
|
+
if (response) {
|
|
4127
|
+
this.getClientData(response.clientApp.clientData);
|
|
4128
|
+
}
|
|
4129
|
+
} catch (err) {
|
|
4130
|
+
return ErrorHandler(err);
|
|
4131
|
+
}
|
|
4132
|
+
},
|
|
4126
4133
|
hasJobSection(whichForm: keyof typeof StoreMembers) {
|
|
4127
4134
|
if (this.isLifetrip || this.isPension || this.isBalam) return false;
|
|
4128
4135
|
switch (whichForm) {
|
package/store/rules.ts
CHANGED
|
@@ -6,6 +6,7 @@ const t = i18n.t;
|
|
|
6
6
|
export const rules = {
|
|
7
7
|
recalculationMultiply: [(v: any) => (v !== null && v !== '' && v >= 100) || t('toaster.valueShouldBeHigher', { text: '100' })],
|
|
8
8
|
recalculationMultiplyBetween: [(v: any) => (v !== null && v !== '' && v >= 100 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '100', ceil: '200' })],
|
|
9
|
+
recalculationMultiplyBetween50And200: [(v: any) => (v !== null && v !== '' && v >= 50 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '50', ceil: '200' })],
|
|
9
10
|
recalculationAdditive: [(v: any) => (v !== null && v !== '' && v <= 100 && v >= 0) || t('toaster.valueShouldBeBetween', { floor: '0', ceil: '100' })],
|
|
10
11
|
required: [(v: any) => !!v || t('rules.required')],
|
|
11
12
|
notZero: [(v: any) => Number(v) !== 0 || 'Не может быть равно нулю'],
|
package/types/enum.ts
CHANGED
|
@@ -62,7 +62,7 @@ export enum Actions {
|
|
|
62
62
|
annulmentCustom = 'annulmentCustom',
|
|
63
63
|
|
|
64
64
|
otrs = 'otrs',
|
|
65
|
-
otrsCustom = 'otrsCustom'
|
|
65
|
+
otrsCustom = 'otrsCustom',
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export enum PostActions {
|
|
@@ -112,6 +112,7 @@ export enum Roles {
|
|
|
112
112
|
SettlementLosses = 'SettlementLosses',
|
|
113
113
|
HeadSettlementLosses = 'HeadSettlementLosses',
|
|
114
114
|
DsoDirector = 'DsoDirector',
|
|
115
|
+
Archivist = 'Archivist',
|
|
115
116
|
AccountantDirector = 'AccountantDirector',
|
|
116
117
|
ManagerAuletti = 'ManagerAuletti',
|
|
117
118
|
HeadOfDso = 'HeadOfDso',
|