hl-core 0.0.8-beta.4 → 0.0.8-beta.5
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 +17 -10
- package/components/Form/ManagerAttachment.vue +196 -0
- package/components/Pages/ProductConditions.vue +4 -2
- package/composables/classes.ts +26 -22
- package/composables/constants.ts +1 -0
- package/package.json +1 -1
- package/store/data.store.js +23 -23
- package/store/messages.ts +4 -0
- package/store/rules.js +8 -0
- package/types/index.ts +14 -0
package/api/index.ts
CHANGED
|
@@ -147,21 +147,21 @@ export class ApiClass {
|
|
|
147
147
|
async getQuestionList(surveyType: string, processInstanceId: string, insuredId: number | string): Promise<AnketaFirst> {
|
|
148
148
|
return this.axiosCall({
|
|
149
149
|
method: Methods.GET,
|
|
150
|
-
url:
|
|
150
|
+
url: `/${this.productUrl}/api/Application/Anketa/${surveyType}/${processInstanceId}/${insuredId}`,
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
async getQuestionListSecond(surveyType: string, processInstanceId: string, insuredId: number | string): Promise<AnketaSecond[]> {
|
|
155
155
|
return this.axiosCall({
|
|
156
156
|
method: Methods.GET,
|
|
157
|
-
url:
|
|
157
|
+
url: `/${this.productUrl}/api/Application/Anketa/${surveyType}/${processInstanceId}/${insuredId}`,
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
async definedAnswers(filter: string) {
|
|
162
162
|
return this.axiosCall({
|
|
163
163
|
method: Methods.GET,
|
|
164
|
-
url: `/
|
|
164
|
+
url: `/Ekk/api/Contragentinsis/DictionaryItems/Questionary?filter=${filter}`,
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
|
|
@@ -227,7 +227,7 @@ export class ApiClass {
|
|
|
227
227
|
});
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
async getDicFileTypeList() {
|
|
230
|
+
async getDicFileTypeList(): Promise<Value[]> {
|
|
231
231
|
return this.axiosCall({
|
|
232
232
|
method: Methods.GET,
|
|
233
233
|
url: '/Arm/api/Dictionary/GetDictionaryItems/DicFileType',
|
|
@@ -498,7 +498,7 @@ export class ApiClass {
|
|
|
498
498
|
}
|
|
499
499
|
|
|
500
500
|
async getProcessTariff(code: number | string = 5) {
|
|
501
|
-
return this.axiosCall({ url: `/
|
|
501
|
+
return this.axiosCall({ url: `/Arm/api/Dictionary/ProcessTariff/${code}` });
|
|
502
502
|
}
|
|
503
503
|
|
|
504
504
|
async setConfirmation(data: any) {
|
|
@@ -519,30 +519,37 @@ export class ApiClass {
|
|
|
519
519
|
async sendUnderwritingCouncilTask(data: any) {
|
|
520
520
|
return this.axiosCall({
|
|
521
521
|
method: Methods.POST,
|
|
522
|
-
url: '/
|
|
522
|
+
url: '/Arm/api/UnderwritingCouncil/SendTask',
|
|
523
523
|
data: data,
|
|
524
524
|
});
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
+
async getDictionaryItems(dictName: string): Promise<Value[]> {
|
|
528
|
+
return this.axiosCall({
|
|
529
|
+
method: Methods.GET,
|
|
530
|
+
url: `/Ekk/api/ContragentInsis/DictionaryItems/${dictName}`,
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
|
|
527
534
|
async filterManagerByRegion(dictName: string, filterName: string) {
|
|
528
535
|
return this.axiosCall({
|
|
529
536
|
method: Methods.GET,
|
|
530
|
-
url: `/
|
|
537
|
+
url: `/Ekk/api/ContragentInsis/DictionaryItems/${dictName}?filter=${filterName}`,
|
|
531
538
|
});
|
|
532
539
|
}
|
|
533
540
|
|
|
534
541
|
async setINSISWorkData(data: any) {
|
|
535
542
|
return this.axiosCall({
|
|
536
543
|
method: Methods.POST,
|
|
537
|
-
url: `/
|
|
544
|
+
url: `/Arm/api/Bpm/SetInsisWorkData`,
|
|
538
545
|
data: data,
|
|
539
546
|
});
|
|
540
547
|
}
|
|
541
548
|
|
|
542
|
-
async searchAgentByName(name: string) {
|
|
549
|
+
async searchAgentByName(name: string): Promise<AgentData[]> {
|
|
543
550
|
return this.axiosCall({
|
|
544
551
|
method: Methods.GET,
|
|
545
|
-
url: `/
|
|
552
|
+
url: `/Ekk/api/ContragentInsis/AgentByName?fullName=${name}`,
|
|
546
553
|
});
|
|
547
554
|
}
|
|
548
555
|
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="rounded-lg border-[1px]" :class="[$libStyles.whiteBg, disabled && $libStyles.disabled]">
|
|
3
|
+
<div class="mt-3 ml-5">
|
|
4
|
+
<p :class="[$libStyles.textTitle, $libStyles.greenText]">{{ $t('form.attachManager') }}</p>
|
|
5
|
+
</div>
|
|
6
|
+
<v-form ref="vForm" class="flex flex-col mt-1">
|
|
7
|
+
<base-panel-input
|
|
8
|
+
class="pl-1"
|
|
9
|
+
v-model="formStore.SaleChanellPolicy"
|
|
10
|
+
:value="formStore.SaleChanellPolicy.nameRu"
|
|
11
|
+
:readonly="isReadonly"
|
|
12
|
+
:clearable="!isReadonly"
|
|
13
|
+
:label="$t('form.salesChanell')"
|
|
14
|
+
:rules="$rules.objectRequired"
|
|
15
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
16
|
+
@append="openPanel('SaleChanellPolicy', $t('form.salesChanell'))"
|
|
17
|
+
></base-panel-input>
|
|
18
|
+
<base-panel-input
|
|
19
|
+
class="pl-1"
|
|
20
|
+
v-model="formStore.RegionPolicy"
|
|
21
|
+
:value="formStore.RegionPolicy.nameRu"
|
|
22
|
+
:readonly="isReadonly"
|
|
23
|
+
:clearable="!isReadonly"
|
|
24
|
+
:label="$t('form.Region')"
|
|
25
|
+
:rules="$rules.objectRequired"
|
|
26
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
27
|
+
@append="openPanel('RegionPolicy', $t('form.Region'))"
|
|
28
|
+
></base-panel-input>
|
|
29
|
+
<base-panel-input
|
|
30
|
+
class="pl-1"
|
|
31
|
+
v-model="formStore.ManagerPolicy"
|
|
32
|
+
:value="formStore.ManagerPolicy.nameRu"
|
|
33
|
+
:readonly="isReadonly"
|
|
34
|
+
:clearable="!isReadonly"
|
|
35
|
+
:label="$t('form.manager')"
|
|
36
|
+
:rules="$rules.objectRequired"
|
|
37
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
38
|
+
@append="openPanel('ManagerPolicy', $t('form.manager'))"
|
|
39
|
+
></base-panel-input>
|
|
40
|
+
<base-panel-input
|
|
41
|
+
class="pl-1"
|
|
42
|
+
v-model="formStore.AgentData"
|
|
43
|
+
:value="formStore.AgentData.fullName"
|
|
44
|
+
:readonly="isReadonly"
|
|
45
|
+
:clearable="!isReadonly"
|
|
46
|
+
:label="$t('form.agent')"
|
|
47
|
+
:rules="$rules.agentDataRequired"
|
|
48
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
49
|
+
@append="openPanel('AgentData', $t('form.agent'))"
|
|
50
|
+
></base-panel-input>
|
|
51
|
+
</v-form>
|
|
52
|
+
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
53
|
+
<div :class="[$libStyles.scrollPage]" class="flex flex-col items-center">
|
|
54
|
+
<base-rounded-input
|
|
55
|
+
v-model="searchQuery"
|
|
56
|
+
:label="$t('labels.search')"
|
|
57
|
+
class="w-full p-2"
|
|
58
|
+
:hide-details="true"
|
|
59
|
+
:append-inner-icon="currentDictName === 'AgentData' ? 'mdi mdi-magnify' : ''"
|
|
60
|
+
@append="searchAgent"
|
|
61
|
+
></base-rounded-input>
|
|
62
|
+
<div v-if="dictList && isPanelLoading === false" class="w-full flex flex-col gap-2 p-2">
|
|
63
|
+
<div v-for="(item, index) in dictList" :key="item.id">
|
|
64
|
+
<base-panel-select-item
|
|
65
|
+
:key="index"
|
|
66
|
+
:text="currentDictName === 'AgentData' ? item.fullName : (item.nameRu as string)"
|
|
67
|
+
:selected="currentDictName === 'AgentData' ? item.fullName === panelValue.fullName : item.nameRu === panelValue.nameRu"
|
|
68
|
+
@click="pickPanelValue(item)"
|
|
69
|
+
></base-panel-select-item>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
<base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50"></base-loader>
|
|
73
|
+
</div>
|
|
74
|
+
</Teleport>
|
|
75
|
+
</div>
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<script lang="ts">
|
|
79
|
+
import { Value } from '@/composables/classes';
|
|
80
|
+
|
|
81
|
+
export default defineComponent({
|
|
82
|
+
props: {
|
|
83
|
+
title: {
|
|
84
|
+
type: String,
|
|
85
|
+
default: '',
|
|
86
|
+
},
|
|
87
|
+
disabled: {
|
|
88
|
+
type: Boolean,
|
|
89
|
+
default: false,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
setup(props) {
|
|
93
|
+
const route = useRoute();
|
|
94
|
+
const dataStore = useDataStore();
|
|
95
|
+
const formStore = useFormStore();
|
|
96
|
+
const isPanelOpen = ref<boolean>(false);
|
|
97
|
+
const isPanelLoading = ref<boolean>(false);
|
|
98
|
+
const panelValue = ref<Value & AgentData>(new Value());
|
|
99
|
+
const searchQuery = ref<string>('');
|
|
100
|
+
const currentDictName = ref<string>();
|
|
101
|
+
|
|
102
|
+
const dictList = computed(() => {
|
|
103
|
+
if (!currentDictName.value) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
if (currentDictName.value === 'AgentData') {
|
|
107
|
+
return dataStore[currentDictName.value];
|
|
108
|
+
} else {
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
return dataStore[currentDictName.value].filter((item: Value) => {
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
return item.nameRu ? item.nameRu.toLowerCase().includes(searchQuery.value.toLowerCase()) : item.fullName.toLowerCase().includes(searchQuery.value.toLowerCase());
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const isReadonly = computed(
|
|
117
|
+
() =>
|
|
118
|
+
props.disabled ||
|
|
119
|
+
route.params.taskId === '0' ||
|
|
120
|
+
(route.params.taskId !== '0' && (!dataStore.isProcessEditable(formStore.applicationData.statusCode) || !dataStore.isTask())),
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
const openPanel = async (currentDict: string, title: string) => {
|
|
124
|
+
searchQuery.value = '';
|
|
125
|
+
if (dataStore.isTask() && !props.disabled) {
|
|
126
|
+
dataStore.panelAction = null;
|
|
127
|
+
dataStore.panel.open = true;
|
|
128
|
+
dataStore.panel.title = title;
|
|
129
|
+
currentDictName.value = currentDict;
|
|
130
|
+
|
|
131
|
+
if (currentDict === 'ManagerPolicy') {
|
|
132
|
+
isPanelLoading.value = true;
|
|
133
|
+
await dataStore.filterManagerByRegion(formStore.RegionPolicy?.ids);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
isPanelOpen.value = true;
|
|
137
|
+
panelValue.value = formStore[currentDict as keyof typeof formStore];
|
|
138
|
+
isPanelLoading.value = false;
|
|
139
|
+
} else {
|
|
140
|
+
dataStore.showToaster('error', dataStore.t('toaster.viewErrorText'));
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
const searchAgent = async () => {
|
|
145
|
+
if (searchQuery.value) {
|
|
146
|
+
isPanelLoading.value = true;
|
|
147
|
+
await dataStore.searchAgentByName(searchQuery.value);
|
|
148
|
+
isPanelLoading.value = false;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const pickPanelValue = (answer: any) => {
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
formStore[currentDictName.value] = answer;
|
|
155
|
+
isPanelOpen.value = false;
|
|
156
|
+
dataStore.panel.open = false;
|
|
157
|
+
searchQuery.value = '';
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
watch(searchQuery, () => {
|
|
161
|
+
if (searchQuery.value === null) {
|
|
162
|
+
searchQuery.value = '';
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
watch(
|
|
167
|
+
() => formStore.RegionPolicy,
|
|
168
|
+
(val, oldVal) => {
|
|
169
|
+
if (val.ids !== oldVal.ids) {
|
|
170
|
+
formStore.ManagerPolicy = new Value();
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
return {
|
|
176
|
+
// State
|
|
177
|
+
formStore,
|
|
178
|
+
isPanelOpen,
|
|
179
|
+
isPanelLoading,
|
|
180
|
+
panelValue,
|
|
181
|
+
searchQuery,
|
|
182
|
+
Value,
|
|
183
|
+
currentDictName,
|
|
184
|
+
|
|
185
|
+
// Computed
|
|
186
|
+
dictList,
|
|
187
|
+
isReadonly,
|
|
188
|
+
|
|
189
|
+
// Functions
|
|
190
|
+
openPanel,
|
|
191
|
+
searchAgent,
|
|
192
|
+
pickPanelValue,
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
</script>
|
|
@@ -440,8 +440,10 @@ export default defineComponent({
|
|
|
440
440
|
formStore.additionalInsuranceTermsWithout = defaultData.addCovers;
|
|
441
441
|
productConditionsForm.requestedSumInsured = defaultData.amount;
|
|
442
442
|
productConditionsForm.insurancePremiumPerMonth = defaultData.premium;
|
|
443
|
-
|
|
444
|
-
|
|
443
|
+
const indexRate = dataStore.processIndexRate.find(i => i.id === defaultData.indexRateId);
|
|
444
|
+
if (indexRate) productConditionsForm.processIndexRate = indexRate;
|
|
445
|
+
const paymendPeriod = dataStore.processPaymentPeriod.find(i => i.id == defaultData.paymentPeriodId);
|
|
446
|
+
if (paymendPeriod) productConditionsForm.paymentPeriod = paymendPeriod;
|
|
445
447
|
productConditionsForm.signDate = reformatDate(defaultData.signDate);
|
|
446
448
|
}
|
|
447
449
|
}
|
package/composables/classes.ts
CHANGED
|
@@ -781,6 +781,8 @@ export class DataStoreClass {
|
|
|
781
781
|
hasInsis: boolean;
|
|
782
782
|
// Калькулятор без ввода данных
|
|
783
783
|
hasCalculator: boolean;
|
|
784
|
+
// Блок прикрепления к менеджеру
|
|
785
|
+
hasAttachment: boolean;
|
|
784
786
|
};
|
|
785
787
|
hasLayoutMargins: boolean;
|
|
786
788
|
readonly product: string | null;
|
|
@@ -840,9 +842,9 @@ export class DataStoreClass {
|
|
|
840
842
|
user: User;
|
|
841
843
|
accessToken: string | null = null;
|
|
842
844
|
refreshToken: string | null = null;
|
|
843
|
-
processCoverTypeSum:
|
|
844
|
-
processIndexRate:
|
|
845
|
-
processPaymentPeriod:
|
|
845
|
+
processCoverTypeSum: Value[];
|
|
846
|
+
processIndexRate: Value[];
|
|
847
|
+
processPaymentPeriod: Value[];
|
|
846
848
|
taskList: TaskListItem[];
|
|
847
849
|
processHistory: TaskHistory[];
|
|
848
850
|
contragentList: any[];
|
|
@@ -851,11 +853,11 @@ export class DataStoreClass {
|
|
|
851
853
|
groupCode: string;
|
|
852
854
|
userGroups: Item[];
|
|
853
855
|
onMainPage: boolean;
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
riskGroup:
|
|
856
|
+
SaleChanellPolicy: Value[];
|
|
857
|
+
RegionPolicy: Value[];
|
|
858
|
+
ManagerPolicy: Value[];
|
|
859
|
+
AgentData: AgentData[];
|
|
860
|
+
riskGroup: Value[];
|
|
859
861
|
constructor() {
|
|
860
862
|
this.controls = {
|
|
861
863
|
onAuth: false,
|
|
@@ -865,15 +867,16 @@ export class DataStoreClass {
|
|
|
865
867
|
hasGKB: false,
|
|
866
868
|
hasInsis: false,
|
|
867
869
|
hasCalculator: false,
|
|
870
|
+
hasAttachment: true,
|
|
868
871
|
};
|
|
869
872
|
this.hasLayoutMargins = true;
|
|
870
873
|
this.processIndexRate = [];
|
|
871
874
|
this.processPaymentPeriod = [];
|
|
872
875
|
this.questionRefs = [];
|
|
873
|
-
this.
|
|
874
|
-
this.
|
|
875
|
-
this.
|
|
876
|
-
this.
|
|
876
|
+
this.SaleChanellPolicy = [];
|
|
877
|
+
this.RegionPolicy = [];
|
|
878
|
+
this.ManagerPolicy = [];
|
|
879
|
+
this.AgentData = [];
|
|
877
880
|
this.product = import.meta.env.VITE_PRODUCT ? (import.meta.env.VITE_PRODUCT as string) : null;
|
|
878
881
|
this.showNav = true;
|
|
879
882
|
this.menuItems = [];
|
|
@@ -949,27 +952,36 @@ export class DataStoreClass {
|
|
|
949
952
|
id: '1',
|
|
950
953
|
nameKz: '',
|
|
951
954
|
nameRu: '1',
|
|
952
|
-
|
|
955
|
+
code: '',
|
|
956
|
+
ids: '',
|
|
953
957
|
},
|
|
954
958
|
{
|
|
955
959
|
id: '2',
|
|
956
960
|
nameKz: '',
|
|
957
961
|
nameRu: '2',
|
|
962
|
+
code: '',
|
|
963
|
+
ids: '',
|
|
958
964
|
},
|
|
959
965
|
{
|
|
960
966
|
id: '3',
|
|
961
967
|
nameKz: '',
|
|
962
968
|
nameRu: '3',
|
|
969
|
+
code: '',
|
|
970
|
+
ids: '',
|
|
963
971
|
},
|
|
964
972
|
{
|
|
965
973
|
id: '4',
|
|
966
974
|
nameKz: '',
|
|
967
975
|
nameRu: '4',
|
|
976
|
+
code: '',
|
|
977
|
+
ids: '',
|
|
968
978
|
},
|
|
969
979
|
{
|
|
970
980
|
id: '5',
|
|
971
981
|
nameKz: '',
|
|
972
982
|
nameRu: '5',
|
|
983
|
+
code: '',
|
|
984
|
+
ids: '',
|
|
973
985
|
},
|
|
974
986
|
];
|
|
975
987
|
}
|
|
@@ -997,15 +1009,7 @@ export class FormStoreClass {
|
|
|
997
1009
|
};
|
|
998
1010
|
birthInfos: BirthInfoGKB[];
|
|
999
1011
|
SaleChanellPolicy: Value;
|
|
1000
|
-
AgentData:
|
|
1001
|
-
agentId: null;
|
|
1002
|
-
manId: number;
|
|
1003
|
-
fullName: string;
|
|
1004
|
-
officeId: null;
|
|
1005
|
-
officeCode: null;
|
|
1006
|
-
saleChannel: string;
|
|
1007
|
-
managerName: string;
|
|
1008
|
-
};
|
|
1012
|
+
AgentData: AgentData;
|
|
1009
1013
|
RegionPolicy: Value;
|
|
1010
1014
|
ManagerPolicy: Value;
|
|
1011
1015
|
isDisabled: {
|
package/composables/constants.ts
CHANGED
package/package.json
CHANGED
package/store/data.store.js
CHANGED
|
@@ -38,6 +38,7 @@ export const useDataStore = defineStore('data', {
|
|
|
38
38
|
isLiferenta: state => state.product === 'liferenta',
|
|
39
39
|
isPension: state => state.product === 'pension',
|
|
40
40
|
isGons: state => state.product === 'gons',
|
|
41
|
+
isKazyna: state => state.product === 'halykkazyna',
|
|
41
42
|
isEveryFormDisabled: state => Object.values(state.formStore.isDisabled).every(i => i === true),
|
|
42
43
|
},
|
|
43
44
|
actions: {
|
|
@@ -956,16 +957,23 @@ export const useDataStore = defineStore('data', {
|
|
|
956
957
|
}
|
|
957
958
|
},
|
|
958
959
|
async getFromApi(whichField, whichRequest, parameter, reset = false) {
|
|
960
|
+
if (typeof this[whichField].length === 'number' && !!this[whichField].length) return this[whichField];
|
|
959
961
|
const storageValue = JSON.parse(localStorage.getItem(whichField) || 'null');
|
|
960
962
|
const currentHour = new Date().getHours();
|
|
963
|
+
const currentMinutePart = Math.ceil((new Date().getMinutes() + 1) / 15);
|
|
961
964
|
|
|
962
965
|
const getDataCondition = () => {
|
|
963
966
|
if (!storageValue) return true;
|
|
964
967
|
const hasHourKey = 'hour' in storageValue;
|
|
968
|
+
const hasMiniteKey = 'minute' in storageValue;
|
|
965
969
|
const hasModeKey = 'mode' in storageValue;
|
|
966
970
|
const hasValueKey = 'value' in storageValue;
|
|
967
|
-
if (storageValue && (hasHourKey === false || hasModeKey === false || hasValueKey === false)) return true;
|
|
968
|
-
if (
|
|
971
|
+
if (storageValue && (hasHourKey === false || hasMiniteKey === false || hasModeKey === false || hasValueKey === false)) return true;
|
|
972
|
+
if (
|
|
973
|
+
storageValue &&
|
|
974
|
+
(storageValue.hour !== currentHour || storageValue.minute !== currentMinutePart || storageValue.mode !== import.meta.env.MODE || storageValue.value.length === 0)
|
|
975
|
+
)
|
|
976
|
+
return true;
|
|
969
977
|
};
|
|
970
978
|
if (!!getDataCondition() || reset === true) {
|
|
971
979
|
this[whichField] = [];
|
|
@@ -977,6 +985,7 @@ export const useDataStore = defineStore('data', {
|
|
|
977
985
|
JSON.stringify({
|
|
978
986
|
value: response,
|
|
979
987
|
hour: currentHour,
|
|
988
|
+
minute: currentMinutePart,
|
|
980
989
|
mode: import.meta.env.MODE,
|
|
981
990
|
}),
|
|
982
991
|
);
|
|
@@ -1047,16 +1056,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1047
1056
|
});
|
|
1048
1057
|
},
|
|
1049
1058
|
async getDicFileTypeList() {
|
|
1050
|
-
|
|
1051
|
-
if (this.dicFileTypeList.length) {
|
|
1052
|
-
return this.dicFileTypeList;
|
|
1053
|
-
} else {
|
|
1054
|
-
this.dicFileTypeList = await this.api.getDicFileTypeList();
|
|
1055
|
-
return this.dicFileTypeList;
|
|
1056
|
-
}
|
|
1057
|
-
} catch (err) {
|
|
1058
|
-
console.log(err.response.data);
|
|
1059
|
-
}
|
|
1059
|
+
return await this.getFromApi('dicFileTypeList', 'getDicFileTypeList');
|
|
1060
1060
|
},
|
|
1061
1061
|
async getDocumentIssuers() {
|
|
1062
1062
|
return await this.getFromApi('documentIssuers', 'getDocumentIssuers');
|
|
@@ -1207,6 +1207,9 @@ export const useDataStore = defineStore('data', {
|
|
|
1207
1207
|
this.getProcessIndexRate(),
|
|
1208
1208
|
this.getProcessTariff(),
|
|
1209
1209
|
this.getProcessPaymentPeriod(),
|
|
1210
|
+
this.getDicFileTypeList(),
|
|
1211
|
+
this.getDictionaryItems('RegionPolicy'),
|
|
1212
|
+
this.getDictionaryItems('SaleChanellPolicy'),
|
|
1210
1213
|
]);
|
|
1211
1214
|
},
|
|
1212
1215
|
async getUserGroups() {
|
|
@@ -1254,15 +1257,12 @@ export const useDataStore = defineStore('data', {
|
|
|
1254
1257
|
},
|
|
1255
1258
|
async searchAgentByName(name) {
|
|
1256
1259
|
try {
|
|
1257
|
-
this.
|
|
1258
|
-
|
|
1259
|
-
if (!this.AgentDataList.length) {
|
|
1260
|
+
this.AgentData = await this.api.searchAgentByName(name);
|
|
1261
|
+
if (!this.AgentData.length) {
|
|
1260
1262
|
this.showToaster('error', this.t('toaster.notFound'), 1500);
|
|
1261
1263
|
}
|
|
1262
1264
|
} catch (err) {
|
|
1263
1265
|
console.log(err);
|
|
1264
|
-
} finally {
|
|
1265
|
-
this.isLoading = false;
|
|
1266
1266
|
}
|
|
1267
1267
|
},
|
|
1268
1268
|
async setINSISWorkData() {
|
|
@@ -1291,14 +1291,14 @@ export const useDataStore = defineStore('data', {
|
|
|
1291
1291
|
this.isLoading = false;
|
|
1292
1292
|
}
|
|
1293
1293
|
},
|
|
1294
|
-
async
|
|
1294
|
+
async getDictionaryItems(dictName) {
|
|
1295
|
+
return await this.getFromApi(dictName, 'getDictionaryItems', dictName);
|
|
1296
|
+
},
|
|
1297
|
+
async filterManagerByRegion(filterName) {
|
|
1295
1298
|
try {
|
|
1296
|
-
this.
|
|
1297
|
-
this[`${dictName}List`] = await this.api.filterManagerByRegion(dictName, filterName);
|
|
1299
|
+
this.ManagerPolicy = await this.api.filterManagerByRegion('ManagerPolicy', filterName);
|
|
1298
1300
|
} catch (err) {
|
|
1299
1301
|
console.log(err);
|
|
1300
|
-
} finally {
|
|
1301
|
-
this.isLoading = false;
|
|
1302
1302
|
}
|
|
1303
1303
|
},
|
|
1304
1304
|
async getUnderwritingCouncilData(id) {
|
|
@@ -1981,7 +1981,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1981
1981
|
}
|
|
1982
1982
|
}
|
|
1983
1983
|
}
|
|
1984
|
-
if (
|
|
1984
|
+
if (this.controls.hasAttachment) {
|
|
1985
1985
|
const areValid = this.formStore.SaleChanellPolicy.nameRu && this.formStore.RegionPolicy.nameRu && this.formStore.ManagerPolicy.nameRu && this.formStore.AgentData.fullName;
|
|
1986
1986
|
if (areValid) {
|
|
1987
1987
|
await this.setINSISWorkData();
|
package/store/messages.ts
CHANGED
|
@@ -402,6 +402,10 @@ export const messages = {
|
|
|
402
402
|
homePhone: 'Домашний номер телефон',
|
|
403
403
|
email: 'Email адрес',
|
|
404
404
|
otpCode: 'Код подтверждения',
|
|
405
|
+
salesChanell: ' Канал продаж',
|
|
406
|
+
manager: 'Менеджер',
|
|
407
|
+
attachManager: 'Прикрепление к менеджеру',
|
|
408
|
+
agent: 'Агент',
|
|
405
409
|
},
|
|
406
410
|
agreementBlock: {
|
|
407
411
|
title: 'Согласие на сбор и обработку пресональных данных',
|
package/store/rules.js
CHANGED
|
@@ -13,6 +13,14 @@ export const rules = {
|
|
|
13
13
|
return t('rules.required');
|
|
14
14
|
},
|
|
15
15
|
],
|
|
16
|
+
agentDataRequired: [
|
|
17
|
+
v => {
|
|
18
|
+
if (!!v && 'fullName' in v && v.fullName != null) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return t('rules.required');
|
|
22
|
+
},
|
|
23
|
+
],
|
|
16
24
|
noResident: [
|
|
17
25
|
v => {
|
|
18
26
|
if (!!v && 'nameRu' in v && v.nameRu === 'Нерезидент') {
|
package/types/index.ts
CHANGED
|
@@ -300,4 +300,18 @@ declare global {
|
|
|
300
300
|
taskId: string;
|
|
301
301
|
comment?: string;
|
|
302
302
|
};
|
|
303
|
+
|
|
304
|
+
type AgentData = {
|
|
305
|
+
agentId?: number | null;
|
|
306
|
+
manId?: number;
|
|
307
|
+
fullName?: string;
|
|
308
|
+
officeId?: number | null;
|
|
309
|
+
officeCode?: string | null;
|
|
310
|
+
saleChannel?: string;
|
|
311
|
+
staffId?: number;
|
|
312
|
+
managerName?: string;
|
|
313
|
+
mainAgentId?: string | null;
|
|
314
|
+
agentNo?: string;
|
|
315
|
+
iin?: string | null;
|
|
316
|
+
};
|
|
303
317
|
}
|