@coopenomics/desktop 2025.6.14 → 2025.6.24
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/package.json +7 -7
- package/src/entities/Branch/api/index.ts +1 -2
- package/src/entities/Branch/model/types.ts +2 -1
- package/src/entities/Session/model/store.ts +1 -1
- package/src/features/Branch/CreateBranch/ui/CreateBranchButton.vue +85 -33
- package/src/features/Branch/DeleteBranch/api/index.ts +15 -0
- package/src/features/Branch/DeleteBranch/index.ts +1 -0
- package/src/features/Branch/DeleteBranch/model/index.ts +44 -0
- package/src/features/Branch/DeleteBranch/ui/DeleteBranchButton.vue +56 -0
- package/src/features/Cooperative/UpdateBoard/index.ts +1 -0
- package/src/features/Cooperative/UpdateBoard/ui/AddMemberDialog.vue +59 -0
- package/src/features/Cooperative/UpdateBoard/ui/index.ts +1 -0
- package/src/features/Installer/ui/RequestKeyForm/RequestKeyForm.vue +1 -1
- package/src/features/Installer/ui/SetSovietForm/SetSovietForm.vue +1 -1
- package/src/features/Meet/CreateMeet/model/index.ts +4 -2
- package/src/features/Meet/CreateMeet/ui/CreateMeet.vue +8 -0
- package/src/features/Meet/CreateMeet/ui/CreateMeetForm.vue +164 -76
- package/src/features/Meet/GenerateSovietDecision/model/index.ts +1 -1
- package/src/features/Meet/RestartMeet/model/index.ts +16 -3
- package/src/features/Meet/RestartMeet/ui/RestartMeetForm.vue +135 -73
- package/src/features/PaymentMethod/AddPaymentMethod/ui/AddPaymentButton.vue +1 -1
- package/src/features/PaymentMethod/DeletePaymentMethod/ui/DeletePaymentMethodButton.vue +1 -1
- package/src/features/Request/AcceptRequest/ui/AcceptButton.vue +1 -1
- package/src/features/Request/CancelRequest/ui/CancelButton.vue +1 -1
- package/src/features/Request/CompleteOnRequest/ui/CompleteOnRequestButton.vue +1 -1
- package/src/features/Request/ConfirmRecieveOnRequest/ui/ConfirmRecieveOnRequest.vue +1 -1
- package/src/features/Request/ConfirmSupplyOnRequest/ui/ConfirmSupplyOnRequestButton.vue +1 -1
- package/src/features/Request/CreateChildOrder/ui/CreateChildOrderButton/CreateChildOrderButton.vue +1 -1
- package/src/features/Request/CreateParentOffer/ui/CreateParentOfferForm/CreateParentOfferForm.vue +1 -1
- package/src/features/Request/DeliverOnRequest/ui/DeliverOnRequestButton.vue +1 -1
- package/src/features/Request/DisputeOnRequest/ui/DisputeOnRequestButton.vue +1 -1
- package/src/features/Request/PublishRequest/ui/PublishRequestButton.vue +1 -1
- package/src/features/Request/RecieveOnRequest/ui/RecieveOnRequestButton.vue +1 -1
- package/src/features/Request/SupplyOnRequest/ui/SupplyOnRequestButton.vue +1 -1
- package/src/features/Request/UnpublishRequest/ui/UnpublishRequestButton.vue +1 -1
- package/src/features/Union/AddCooperative/ui/AddCooperativeForm.vue +1 -1
- package/src/features/User/LoginUser/ui/LoginForm/LoginForm.vue +1 -1
- package/src/features/Wallet/DepositToWallet/ui/DepositButton/DepositButton.vue +1 -1
- package/src/features/Wallet/WithdrawFromWallet/ui/withdrawButton.vue +1 -1
- package/src/pages/Cooperative/ListOfMeets/ui/ListOfMeetsPage.vue +1 -1
- package/src/pages/Cooperative/MemberBranchList/ui/MemberBranchListPage.vue +3 -0
- package/src/pages/Registrator/SignUp/GenerateAccount.vue +1 -1
- package/src/pages/Registrator/SignUp/ReadStatement.vue +1 -1
- package/src/pages/Registrator/SignUp/SignUp.vue +0 -2
- package/src/pages/Union/ListOfCooperatives/ui/UnionPageListOfCooperatives.vue +2 -2
- package/src/processes/navigation-guard-setup/index.ts +31 -31
- package/src/processes/process-decisions/index.ts +6 -1
- package/src/processes/select-branch/index.ts +11 -4
- package/src/shared/api/errors.ts +2 -1
- package/src/shared/ui/UserSearchSelector/UserSearchSelector.vue +328 -0
- package/src/shared/ui/UserSearchSelector/composables/useUserSearch.ts +70 -0
- package/src/shared/ui/UserSearchSelector/index.ts +3 -0
- package/src/shared/ui/UserSearchSelector/model/types.ts +17 -0
- package/src/shared/ui/index.ts +1 -0
- package/src/widgets/Cooperative/Funds/ui/AccumulationFunds.vue +3 -3
- package/src/widgets/Cooperative/Funds/ui/AddAccumulationFund.vue +1 -1
- package/src/widgets/Cooperative/Funds/ui/AddExpenseFund.vue +1 -1
- package/src/widgets/Cooperative/Funds/ui/ExpenseFunds.vue +3 -3
- package/src/widgets/Cooperative/Members/ui/Members.vue +167 -135
- package/src/widgets/Registrator/LostKey/ui/LostKey.vue +1 -1
- package/src/widgets/Registrator/ResetKey/ui/ResetKey.vue +1 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@coopenomics/desktop",
|
3
|
-
"version": "2025.6.
|
3
|
+
"version": "2025.6.24",
|
4
4
|
"description": "A Desktop Project",
|
5
5
|
"productName": "Desktop App",
|
6
6
|
"author": "Alex Ant <dacom.dark.sun@gmail.com>",
|
@@ -24,8 +24,8 @@
|
|
24
24
|
"start": "node -r ./alias-resolver.js dist/ssr/index.js"
|
25
25
|
},
|
26
26
|
"dependencies": {
|
27
|
-
"@coopenomics/controller": "2025.6.
|
28
|
-
"@coopenomics/sdk": "2025.6.
|
27
|
+
"@coopenomics/controller": "2025.6.24",
|
28
|
+
"@coopenomics/sdk": "2025.6.24",
|
29
29
|
"@dicebear/collection": "^9.0.1",
|
30
30
|
"@dicebear/core": "^9.0.1",
|
31
31
|
"@fortawesome/fontawesome-svg-core": "^6.5.2",
|
@@ -50,7 +50,7 @@
|
|
50
50
|
"@wharfkit/wallet-plugin-privatekey": "^1.1.0",
|
51
51
|
"axios": "^1.2.1",
|
52
52
|
"compression": "^1.7.4",
|
53
|
-
"cooptypes": "2025.6.
|
53
|
+
"cooptypes": "2025.6.24",
|
54
54
|
"dompurify": "^3.1.7",
|
55
55
|
"dotenv": "^16.4.5",
|
56
56
|
"email-regex": "^5.0.0",
|
@@ -80,7 +80,7 @@
|
|
80
80
|
},
|
81
81
|
"devDependencies": {
|
82
82
|
"@intlify/vite-plugin-vue-i18n": "^3.3.1",
|
83
|
-
"@prettier/plugin-pug": "^3.
|
83
|
+
"@prettier/plugin-pug": "^3.2.0",
|
84
84
|
"@quasar/app-vite": "^1.9.3",
|
85
85
|
"@types/node": "^12.20.21",
|
86
86
|
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
@@ -93,7 +93,7 @@
|
|
93
93
|
"eslint-plugin-pug": "^1.2.5",
|
94
94
|
"eslint-plugin-vue": "^9.26.0",
|
95
95
|
"eslint-plugin-vue-pug": "^0.6.2",
|
96
|
-
"prettier": "^
|
96
|
+
"prettier": "^3.6.0",
|
97
97
|
"typescript": "^4.5.4",
|
98
98
|
"vite-plugin-checker": "^0.6.4",
|
99
99
|
"vue-tsc": "^1.8.22"
|
@@ -103,5 +103,5 @@
|
|
103
103
|
"npm": ">= 6.13.4",
|
104
104
|
"yarn": ">= 1.21.1"
|
105
105
|
},
|
106
|
-
"gitHead": "
|
106
|
+
"gitHead": "32e6a45f0597e651c2f3ab787462f7aa723c1732"
|
107
107
|
}
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import type { Queries } from '@coopenomics/sdk';
|
1
|
+
import type { Queries, Mutations } from '@coopenomics/sdk';
|
2
2
|
|
3
3
|
export type IBranch = Queries.Branches.GetBranches.IOutput[typeof Queries.Branches.GetBranches.name][number]
|
4
4
|
export type IPublicBranch = Queries.Branches.GetPublicBranches.IOutput[typeof Queries.Branches.GetPublicBranches.name][number]
|
5
5
|
|
6
6
|
export type IGetBranchesInput = Queries.Branches.GetBranches.IInput['data']
|
7
|
+
export type IDeleteBranchInput = Mutations.Branches.DeleteBranch.IInput['data']
|
7
8
|
|
@@ -1,61 +1,113 @@
|
|
1
1
|
<template lang="pug">
|
2
2
|
div
|
3
|
-
q-btn(@click=
|
4
|
-
q-dialog(v-model=
|
5
|
-
ModalBase(
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
q-btn(@click='show = true', color='primary', size='sm', icon='add') добавить участок
|
4
|
+
q-dialog(v-model='show', persistent, :maximized='false')
|
5
|
+
ModalBase(
|
6
|
+
style='width: 500px; max-width: 100% !important',
|
7
|
+
:title='"Создать кооперативный участок"',
|
8
|
+
:show_close='true'
|
9
|
+
)
|
10
|
+
Form.q-pa-md(
|
11
|
+
:handler-submit='create',
|
12
|
+
:is-submitting='isSubmitting',
|
13
|
+
:showSubmit='!isLoading',
|
14
|
+
:showCancel='true',
|
15
|
+
:button-submit-txt='"Создать"',
|
16
|
+
@cancel='clear'
|
17
|
+
)
|
18
|
+
.q-mb-lg
|
19
|
+
UserSearchSelector(
|
20
|
+
v-model='createBranchInput.trustee',
|
21
|
+
label='Председатель участка',
|
22
|
+
:rules='[(val) => notEmpty(val)]',
|
23
|
+
dense,
|
24
|
+
standout='bg-teal text-white'
|
25
|
+
)
|
9
26
|
|
10
|
-
q-input(dense v-model="createBranchInput.short_name" standout="bg-teal text-white" placeholder="РОМАШКА" label="Наименование участка" :rules="[val => notEmpty(val)]" autocomplete="off")
|
11
|
-
q-input(dense v-model="createBranchInput.phone" standout="bg-teal text-white" label="Номер телефона участка" mask="+7 (###) ###-##-##" fill-mask placeholder="" :rules="[val => notEmpty(val), val => notEmptyPhone(val)]" autocomplete="off")
|
12
|
-
q-input(dense v-model="createBranchInput.fact_address" standout="bg-teal text-white" placeholder="" label="Фактический адрес участка" :rules="[val => notEmpty(val)]" autocomplete="off")
|
13
27
|
q-input(
|
14
|
-
dense
|
15
|
-
|
28
|
+
dense,
|
29
|
+
v-model='createBranchInput.short_name',
|
30
|
+
standout='bg-teal text-white',
|
31
|
+
placeholder='РОМАШКА',
|
32
|
+
label='Наименование участка',
|
33
|
+
:rules='[(val) => notEmpty(val)]',
|
34
|
+
autocomplete='off'
|
35
|
+
)
|
36
|
+
q-input(
|
37
|
+
dense,
|
38
|
+
v-model='createBranchInput.phone',
|
39
|
+
standout='bg-teal text-white',
|
40
|
+
label='Номер телефона участка',
|
41
|
+
mask='+7 (###) ###-##-##',
|
42
|
+
fill-mask,
|
43
|
+
placeholder='',
|
44
|
+
:rules='[(val) => notEmpty(val), (val) => notEmptyPhone(val)]',
|
45
|
+
autocomplete='off'
|
46
|
+
)
|
47
|
+
q-input(
|
48
|
+
dense,
|
49
|
+
v-model='createBranchInput.fact_address',
|
50
|
+
standout='bg-teal text-white',
|
51
|
+
placeholder='',
|
52
|
+
label='Фактический адрес участка',
|
53
|
+
:rules='[(val) => notEmpty(val)]',
|
54
|
+
autocomplete='off'
|
55
|
+
)
|
56
|
+
q-input(
|
57
|
+
dense,
|
58
|
+
v-model='createBranchInput.email',
|
59
|
+
standout='bg-teal text-white',
|
16
60
|
type='email',
|
17
61
|
label='Email-адрес участка',
|
18
62
|
color='primary',
|
19
63
|
:rules='[validEmail, notEmpty]'
|
20
64
|
)
|
21
65
|
|
22
|
-
q-input(
|
23
|
-
|
24
|
-
|
25
|
-
|
66
|
+
q-input(
|
67
|
+
dense,
|
68
|
+
v-model='createBranchInput.based_on',
|
69
|
+
standout='bg-teal text-white',
|
70
|
+
label='Председатель действует на основании',
|
71
|
+
placeholder='решение собрания совета №СС-10-04-2025 от 10 апреля 2025 г',
|
72
|
+
:rules='[(val) => notEmpty(val)]',
|
73
|
+
autocomplete='off'
|
74
|
+
)
|
26
75
|
</template>
|
27
76
|
|
28
77
|
<script lang="ts" setup>
|
29
78
|
import { ModalBase } from 'src/shared/ui/ModalBase';
|
30
79
|
import { Form } from 'src/shared/ui/Form';
|
80
|
+
import { UserSearchSelector } from 'src/shared/ui';
|
31
81
|
import { ref } from 'vue';
|
32
82
|
import { useCreateBranch } from '../model';
|
33
|
-
import {
|
83
|
+
import {
|
84
|
+
extractGraphQLErrorMessages,
|
85
|
+
FailAlert,
|
86
|
+
SuccessAlert,
|
87
|
+
} from 'src/shared/api';
|
34
88
|
import { notEmpty } from 'src/shared/lib/utils';
|
35
89
|
import { validEmail } from 'src/shared/lib/utils/validEmailRule';
|
36
90
|
import { notEmptyPhone } from 'src/shared/lib/utils';
|
37
91
|
|
38
|
-
const show = ref(false)
|
39
|
-
const isSubmitting = ref(false)
|
40
|
-
const isLoading = ref(false)
|
41
|
-
const {createBranchInput, createBranch} = useCreateBranch()
|
92
|
+
const show = ref(false);
|
93
|
+
const isSubmitting = ref(false);
|
94
|
+
const isLoading = ref(false);
|
95
|
+
const { createBranchInput, createBranch } = useCreateBranch();
|
42
96
|
|
43
97
|
const create = async () => {
|
44
98
|
try {
|
45
|
-
isSubmitting.value = true
|
46
|
-
await createBranch(createBranchInput.value)
|
47
|
-
isSubmitting.value = false
|
48
|
-
show.value = false
|
49
|
-
SuccessAlert('Кооперативный участок добавлен')
|
50
|
-
} catch(e){
|
51
|
-
isSubmitting.value = false
|
52
|
-
FailAlert(`Ошибка при создании: ${extractGraphQLErrorMessages(e)}`)
|
99
|
+
isSubmitting.value = true;
|
100
|
+
await createBranch(createBranchInput.value);
|
101
|
+
isSubmitting.value = false;
|
102
|
+
show.value = false;
|
103
|
+
SuccessAlert('Кооперативный участок добавлен');
|
104
|
+
} catch (e) {
|
105
|
+
isSubmitting.value = false;
|
106
|
+
FailAlert(`Ошибка при создании: ${extractGraphQLErrorMessages(e)}`);
|
53
107
|
}
|
54
|
-
|
55
|
-
}
|
108
|
+
};
|
56
109
|
|
57
110
|
const clear = () => {
|
58
|
-
show.value = false
|
59
|
-
}
|
60
|
-
|
111
|
+
show.value = false;
|
112
|
+
};
|
61
113
|
</script>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { client } from 'src/shared/api/client';
|
2
|
+
import { Mutations } from '@coopenomics/sdk';
|
3
|
+
import type { IDeleteBranchInput } from 'src/entities/Branch/model';
|
4
|
+
|
5
|
+
export async function deleteBranch(data: IDeleteBranchInput): Promise<boolean> {
|
6
|
+
const { [Mutations.Branches.DeleteBranch.name]: result } = await client.Mutation(
|
7
|
+
Mutations.Branches.DeleteBranch.mutation,
|
8
|
+
{
|
9
|
+
variables: {
|
10
|
+
data
|
11
|
+
}
|
12
|
+
}
|
13
|
+
);
|
14
|
+
return result;
|
15
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as DeleteBranchButton } from './ui/DeleteBranchButton.vue';
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { useBranchStore } from 'src/entities/Branch/model';
|
2
|
+
import { useSystemStore } from 'src/entities/System/model';
|
3
|
+
import { deleteBranch as apiDeleteBranch } from '../api';
|
4
|
+
import { FailAlert, SuccessAlert } from 'src/shared/api';
|
5
|
+
import { ref } from 'vue';
|
6
|
+
|
7
|
+
export function useDeleteBranch() {
|
8
|
+
const branchStore = useBranchStore();
|
9
|
+
const systemStore = useSystemStore();
|
10
|
+
const loading = ref(false);
|
11
|
+
|
12
|
+
const deleteBranch = async (data: { coopname: string; braname: string; short_name: string }): Promise<boolean> => {
|
13
|
+
try {
|
14
|
+
loading.value = true;
|
15
|
+
const result = await apiDeleteBranch({
|
16
|
+
coopname: data.coopname,
|
17
|
+
braname: data.braname
|
18
|
+
});
|
19
|
+
|
20
|
+
if (result) {
|
21
|
+
SuccessAlert(`Кооперативный участок "${data.short_name}" успешно удален`);
|
22
|
+
|
23
|
+
// После успешного удаления обновляем состояние системы и списка участков
|
24
|
+
await systemStore.loadSystemInfo();
|
25
|
+
await branchStore.loadBranches({
|
26
|
+
coopname: data.coopname
|
27
|
+
});
|
28
|
+
|
29
|
+
return true;
|
30
|
+
}
|
31
|
+
return false;
|
32
|
+
} catch (error: any) {
|
33
|
+
FailAlert(error);
|
34
|
+
return false;
|
35
|
+
} finally {
|
36
|
+
loading.value = false;
|
37
|
+
}
|
38
|
+
};
|
39
|
+
|
40
|
+
return {
|
41
|
+
deleteBranch,
|
42
|
+
loading
|
43
|
+
};
|
44
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<template lang="pug">
|
2
|
+
div
|
3
|
+
q-btn(
|
4
|
+
color="negative"
|
5
|
+
icon="delete"
|
6
|
+
@click="showDialog = true"
|
7
|
+
:loading="loading"
|
8
|
+
:disable="loading"
|
9
|
+
)
|
10
|
+
|
11
|
+
span.q-ml-xs Удалить участок
|
12
|
+
|
13
|
+
q-dialog(v-model="showDialog" @hide="clear")
|
14
|
+
ModalBase(:title='"Удаление кооперативного участка"')
|
15
|
+
Form(
|
16
|
+
:handler-submit="handleDeleteBranch"
|
17
|
+
:is-submitting="loading"
|
18
|
+
:button-cancel-txt="'Отменить'"
|
19
|
+
:button-submit-txt="'Удалить'"
|
20
|
+
@cancel="clear"
|
21
|
+
).q-pa-md
|
22
|
+
div(style="max-width: 500px;")
|
23
|
+
p.text-weight-bold Вы уверены, что хотите удалить кооперативный участок {{ branch?.short_name }}?
|
24
|
+
p Это действие необратимо. Все пайщики будут отключены от участка и увидят приглашение выбрать новый участок.
|
25
|
+
</template>
|
26
|
+
|
27
|
+
<script lang="ts" setup>
|
28
|
+
import { ref } from 'vue';
|
29
|
+
import type { IBranch } from 'src/entities/Branch/model/types';
|
30
|
+
import { ModalBase } from 'src/shared/ui/ModalBase';
|
31
|
+
import { Form } from 'src/shared/ui/Form';
|
32
|
+
import { useDeleteBranch } from '../model';
|
33
|
+
|
34
|
+
const props = defineProps<{
|
35
|
+
branch: IBranch
|
36
|
+
}>();
|
37
|
+
|
38
|
+
const showDialog = ref(false);
|
39
|
+
const { deleteBranch, loading } = useDeleteBranch();
|
40
|
+
|
41
|
+
const clear = (): void => {
|
42
|
+
showDialog.value = false;
|
43
|
+
};
|
44
|
+
|
45
|
+
const handleDeleteBranch = async (): Promise<void> => {
|
46
|
+
const success = await deleteBranch({
|
47
|
+
coopname: props.branch.coopname,
|
48
|
+
braname: props.branch.braname,
|
49
|
+
short_name: props.branch.short_name
|
50
|
+
});
|
51
|
+
|
52
|
+
if (success) {
|
53
|
+
showDialog.value = false;
|
54
|
+
}
|
55
|
+
};
|
56
|
+
</script>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<template lang="pug">
|
2
|
+
q-dialog(v-model='show', persistent, :maximized='false')
|
3
|
+
q-card
|
4
|
+
div
|
5
|
+
q-bar.bg-gradient-dark
|
6
|
+
span Добавить члена совета
|
7
|
+
q-space
|
8
|
+
q-btn(v-close-popup, dense, flat, icon='close')
|
9
|
+
q-tooltip Close
|
10
|
+
|
11
|
+
.q-pa-sm
|
12
|
+
.q-pa-md
|
13
|
+
p Внимание! Вы собираетесь добавить участника в совет кооператива. Выберите участника для добавления:
|
14
|
+
.q-pa-md
|
15
|
+
UserSearchSelector(
|
16
|
+
v-model='selectedUsername',
|
17
|
+
label='Участник для добавления в совет',
|
18
|
+
dense,
|
19
|
+
standout='bg-teal text-white',
|
20
|
+
:rules='[(val) => !!val || "Обязательное поле"]'
|
21
|
+
)
|
22
|
+
div
|
23
|
+
q-btn(flat, @click='cancel') Отменить
|
24
|
+
q-btn(color='primary', @click='add', :loading='loading') Добавить
|
25
|
+
</template>
|
26
|
+
|
27
|
+
<script setup lang="ts">
|
28
|
+
import { ref, computed } from 'vue';
|
29
|
+
import { UserSearchSelector } from 'src/shared/ui';
|
30
|
+
|
31
|
+
const props = defineProps<{
|
32
|
+
modelValue: boolean;
|
33
|
+
loading?: boolean;
|
34
|
+
}>();
|
35
|
+
|
36
|
+
const emit = defineEmits<{
|
37
|
+
(e: 'update:modelValue', value: boolean): void;
|
38
|
+
(e: 'add', username: string): void;
|
39
|
+
}>();
|
40
|
+
|
41
|
+
const selectedUsername = ref('');
|
42
|
+
|
43
|
+
const show = computed({
|
44
|
+
get: () => props.modelValue,
|
45
|
+
set: (value) => emit('update:modelValue', value),
|
46
|
+
});
|
47
|
+
|
48
|
+
const add = () => {
|
49
|
+
if (selectedUsername.value) {
|
50
|
+
emit('add', selectedUsername.value);
|
51
|
+
selectedUsername.value = '';
|
52
|
+
}
|
53
|
+
};
|
54
|
+
|
55
|
+
const cancel = () => {
|
56
|
+
emit('update:modelValue', false);
|
57
|
+
selectedUsername.value = '';
|
58
|
+
};
|
59
|
+
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as AddMemberDialog } from './AddMemberDialog.vue'
|
@@ -18,6 +18,7 @@ export interface ICreateMeetWithAgendaInput {
|
|
18
18
|
open_at: string
|
19
19
|
close_at: string
|
20
20
|
username: string
|
21
|
+
type: 'regular' | 'extra'
|
21
22
|
agenda_points: {
|
22
23
|
title: string
|
23
24
|
context: string
|
@@ -81,11 +82,12 @@ export async function createMeetWithAgenda(data: ICreateMeetWithAgendaInput): Pr
|
|
81
82
|
coopname: data.coopname,
|
82
83
|
username: data.username,
|
83
84
|
meet: {
|
84
|
-
type:
|
85
|
+
type: data.type,
|
85
86
|
open_at_datetime: openAtFormatted,
|
86
87
|
close_at_datetime: closeAtFormatted
|
87
88
|
},
|
88
|
-
questions: questions
|
89
|
+
questions: questions,
|
90
|
+
is_repeated: false
|
89
91
|
})
|
90
92
|
|
91
93
|
|
@@ -5,9 +5,11 @@ div
|
|
5
5
|
label="Создать общее собрание"
|
6
6
|
@click="showCreateMeetDialog = true"
|
7
7
|
)
|
8
|
+
|
8
9
|
CreateMeetForm(
|
9
10
|
v-model="showCreateMeetDialog"
|
10
11
|
:loading="isCreating"
|
12
|
+
:is-chairman="isChairman"
|
11
13
|
@create="handleCreate"
|
12
14
|
)
|
13
15
|
</template>
|
@@ -22,6 +24,11 @@ import { useRoute } from 'vue-router'
|
|
22
24
|
import { Notify } from 'quasar'
|
23
25
|
import { FailAlert } from 'src/shared/api'
|
24
26
|
|
27
|
+
// Определяем пропсы
|
28
|
+
defineProps<{
|
29
|
+
isChairman: boolean
|
30
|
+
}>()
|
31
|
+
|
25
32
|
const route = useRoute()
|
26
33
|
const sessionStore = useSessionStore()
|
27
34
|
const meetStore = useMeetStore()
|
@@ -40,6 +47,7 @@ const handleCreate = async (formData: any) => {
|
|
40
47
|
open_at: formData.open_at,
|
41
48
|
close_at: formData.close_at,
|
42
49
|
username: sessionStore.username,
|
50
|
+
type: formData.type,
|
43
51
|
agenda_points: formData.agenda_points
|
44
52
|
})
|
45
53
|
|