@coopenomics/desktop 2.2.9 → 2025.4.29

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.
Files changed (366) hide show
  1. package/.env-example +6 -1
  2. package/.env-testnet +8 -0
  3. package/CHANGELOG.md +11 -0
  4. package/Dockerfile +12 -0
  5. package/extensions/market/install.ts +78 -0
  6. package/extensions/market-admin/install.ts +42 -0
  7. package/extensions/participant/install.ts +125 -0
  8. package/extensions/powerup/install.ts +20 -0
  9. package/extensions/soviet/install.ts +83 -0
  10. package/package.json +6 -5
  11. package/quasar.config.cjs +5 -12
  12. package/src/app/App.vue +44 -73
  13. package/src/app/layouts/default.vue +40 -0
  14. package/src/app/layouts/useDefaultLayoutLogic.ts +59 -0
  15. package/src/app/providers/routes/index.ts +19 -34
  16. package/src/app/styles/style.css +4 -0
  17. package/src/boot/init.ts +6 -0
  18. package/src/boot/sentry.ts +1 -2
  19. package/src/desktops/index.ts +0 -6
  20. package/src/entities/Account/api/index.ts +11 -2
  21. package/src/entities/Account/model/index.ts +1 -1
  22. package/src/entities/Account/model/store.ts +15 -5
  23. package/src/entities/Account/types/index.ts +9 -1
  24. package/src/entities/Agenda/api/index.ts +20 -0
  25. package/src/entities/Agenda/index.ts +2 -0
  26. package/src/entities/Agenda/model/index.ts +2 -0
  27. package/src/entities/Agenda/model/store.ts +36 -0
  28. package/src/entities/Agenda/model/types.ts +4 -0
  29. package/src/entities/Branch/model/index.ts +1 -1
  30. package/src/entities/Desktop/api/index.ts +16 -1
  31. package/src/entities/Desktop/model/store.ts +112 -106
  32. package/src/entities/Desktop/model/types.ts +14 -1
  33. package/src/entities/Document/api/index.ts +24 -0
  34. package/src/entities/Document/index.ts +2 -0
  35. package/src/entities/Document/model/store.ts +117 -0
  36. package/src/entities/Document/model/types.ts +18 -0
  37. package/src/entities/Meet/api/index.ts +58 -0
  38. package/src/entities/Meet/index.ts +2 -0
  39. package/src/entities/Meet/model/store.ts +72 -0
  40. package/src/entities/Meet/types/index.ts +7 -0
  41. package/src/entities/Payment/api/index.ts +20 -0
  42. package/src/entities/Payment/model/index.ts +2 -0
  43. package/src/entities/Payment/model/store.ts +62 -0
  44. package/src/entities/Payment/model/types.ts +7 -0
  45. package/src/entities/Session/model/store.ts +5 -6
  46. package/src/entities/System/model/store.ts +1 -1
  47. package/src/entities/User/model/stores.ts +3 -1
  48. package/src/entities/Wallet/api/index.ts +15 -33
  49. package/src/entities/Wallet/model/stores.ts +3 -23
  50. package/src/entities/Wallet/model/types.ts +2 -3
  51. package/src/features/Account/UpdateAccount/api/index.ts +14 -0
  52. package/src/features/Account/UpdateAccount/index.ts +1 -0
  53. package/src/features/Account/UpdateAccount/model/index.ts +16 -0
  54. package/src/features/Agreementer/SignAgreementDialog/ui/SignAgreementDialog.vue +1 -1
  55. package/src/features/Branch/SelectBranch/index.ts +2 -0
  56. package/src/features/Branch/SelectBranch/ui/SelectBranchOverlay.vue +52 -104
  57. package/src/features/Decision/CreateProject/ui/CreateProjectFreeDecisionButton.vue +1 -1
  58. package/src/features/Decision/ParticipantApplication/model/index.ts +38 -0
  59. package/src/features/FreeDecision/CreateProject/model/index.ts +92 -0
  60. package/src/features/FreeDecision/CreateProject/ui/CreateProjectFreeDecisionButton.vue +51 -0
  61. package/src/features/FreeDecision/CreateProject/ui/index.ts +1 -0
  62. package/src/features/FreeDecision/GenerateDecision/index.ts +1 -0
  63. package/src/features/FreeDecision/GenerateDecision/model/index.ts +36 -0
  64. package/src/features/FreeDecision/index.ts +2 -0
  65. package/src/features/Meet/CloseMeetWithDecision/index.ts +1 -0
  66. package/src/features/Meet/CloseMeetWithDecision/model/index.ts +92 -0
  67. package/src/features/Meet/CreateMeet/index.ts +2 -0
  68. package/src/features/Meet/CreateMeet/model/index.ts +65 -0
  69. package/src/features/Meet/CreateMeet/ui/CreateMeet.vue +34 -0
  70. package/src/features/Meet/CreateMeet/ui/CreateMeetForm.vue +136 -0
  71. package/src/features/Meet/CreateMeet/ui/index.ts +2 -0
  72. package/src/features/Meet/GenerateAgenda/index.ts +1 -0
  73. package/src/features/Meet/GenerateAgenda/model/index.ts +18 -0
  74. package/src/features/Meet/GenerateBallot/index.ts +1 -0
  75. package/src/features/Meet/GenerateBallot/model/index.ts +18 -0
  76. package/src/features/Meet/GenerateNotification/index.ts +1 -0
  77. package/src/features/Meet/GenerateNotification/model/index.ts +18 -0
  78. package/src/features/Meet/GenerateSovietDecision/index.ts +1 -0
  79. package/src/features/Meet/GenerateSovietDecision/model/index.ts +48 -0
  80. package/src/features/Meet/MeetDetailsManagement/index.ts +1 -0
  81. package/src/features/Meet/MeetDetailsManagement/model/index.ts +121 -0
  82. package/src/features/Meet/RestartMeet/index.ts +2 -0
  83. package/src/features/Meet/RestartMeet/model/index.ts +54 -0
  84. package/src/features/Meet/RestartMeet/ui/RestartMeet.vue +46 -0
  85. package/src/features/Meet/RestartMeet/ui/RestartMeetForm.vue +92 -0
  86. package/src/features/Meet/RestartMeet/ui/index.ts +2 -0
  87. package/src/features/Meet/VoteOnMeet/index.ts +1 -0
  88. package/src/features/Meet/VoteOnMeet/model/index.ts +18 -0
  89. package/src/features/Payment/SetStatus/api/index.ts +20 -0
  90. package/src/features/Payment/SetStatus/index.ts +1 -0
  91. package/src/features/Payment/SetStatus/model/index.ts +30 -0
  92. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderPaidStatusButton/SetOrderPaidStatusButton.vue +7 -3
  93. package/src/features/PaymentMethod/AddPaymentMethod/model/index.ts +2 -2
  94. package/src/features/PaymentMethod/AddPaymentMethod/ui/AddPaymentButton.vue +1 -1
  95. package/src/features/PaymentMethod/DeletePaymentMethod/model/index.ts +1 -1
  96. package/src/features/PaymentMethod/DeletePaymentMethod/ui/DeletePaymentMethodButton.vue +3 -1
  97. package/src/features/Request/CancelRequest/ui/CancelButton.vue +1 -1
  98. package/src/features/Request/ConfirmRecieveOnRequest/ui/ConfirmRecieveOnRequest.vue +1 -1
  99. package/src/features/Request/CreateParentOffer/ui/CreateParentOfferForm/CreateParentOfferForm.vue +3 -5
  100. package/src/features/Request/CreateParentOffer/ui/ImageUploaderWithPreview/ImageUploaderWithPreview.vue +4 -3
  101. package/src/features/Request/DisputeOnRequest/ui/DisputeOnRequestButton.vue +1 -1
  102. package/src/features/Request/ModerateRequest/ui/ModerateRequestButton.vue +2 -2
  103. package/src/features/Request/PublishRequest/ui/PublishRequestButton.vue +1 -1
  104. package/src/features/Request/RecieveOnRequest/ui/RecieveOnRequestButton.vue +1 -1
  105. package/src/features/Request/UnpublishRequest/ui/UnpublishRequestButton.vue +1 -1
  106. package/src/features/Union/AddCooperative/model/index.ts +4 -5
  107. package/src/features/Union/AddCooperative/ui/AddCooperativeForm.vue +5 -6
  108. package/src/features/User/AddUser/ui/AddUserDialog/AddUserDialog.vue +7 -4
  109. package/src/features/User/LoginUser/model/index.ts +3 -3
  110. package/src/features/User/LoginUser/ui/LoginForm/LoginForm.vue +0 -6
  111. package/src/features/User/Logout/model/index.ts +5 -3
  112. package/src/features/Wallet/DepositToWallet/ui/DepositButton/DepositButton.vue +8 -7
  113. package/src/features/Wallet/WithdrawFromWallet/ui/withdrawButton.vue +6 -7
  114. package/src/pages/Blank/index.ts +1 -0
  115. package/src/pages/Contacts/ContactsPage.vue +64 -0
  116. package/src/{widgets/Cooperative/Contacts → pages/Cooperative/ChangeContacts}/ui/index.ts +0 -1
  117. package/src/{widgets/Cooperative/Contributions/ui/ChangeContributions.vue → pages/Cooperative/ChangeRegisterPayments/ui/ChangeRegisterPayments.vue} +10 -11
  118. package/src/pages/Cooperative/ChangeRegisterPayments/ui/index.ts +1 -0
  119. package/src/pages/Cooperative/ListOfAgenda/index.ts +1 -0
  120. package/src/pages/Cooperative/ListOfAgenda/ui/ListOfAgendaQuestions.vue +118 -0
  121. package/src/pages/Cooperative/ListOfAgenda/ui/index.ts +1 -0
  122. package/src/pages/Cooperative/ListOfDocuments/ListOfDocumentsPage.vue +24 -0
  123. package/src/pages/Cooperative/ListOfMeets/model/index.ts +1 -0
  124. package/src/pages/Cooperative/ListOfMeets/model/model.ts +117 -0
  125. package/src/pages/Cooperative/ListOfMeets/ui/ListOfMeetsPage.vue +90 -0
  126. package/src/pages/Cooperative/ListOfMeets/ui/index.ts +1 -0
  127. package/src/pages/Cooperative/ListOfOrders/index.ts +1 -1
  128. package/src/pages/Cooperative/ListOfOrders/ui/ListOfOrdersPage.vue +0 -4
  129. package/src/pages/Cooperative/ListOfParticipants/ui/ListOfParticipantsPage.vue +61 -10
  130. package/src/pages/Cooperative/ListOfParticipants/ui/index.ts +1 -1
  131. package/src/pages/Cooperative/MeetDetails/ui/MeetDetailsPage.vue +88 -0
  132. package/src/pages/Cooperative/MeetDetails/ui/index.ts +1 -0
  133. package/src/pages/Cooperative/{ListOfBranches/ui/ListOfBranchesPage.vue → MemberBranchList/ui/MemberBranchListPage.vue} +2 -4
  134. package/src/pages/Cooperative/MemberBranchList/ui/index.ts +1 -0
  135. package/src/pages/Cooperative/Payments/index.ts +1 -0
  136. package/src/pages/Cooperative/Payments/ui/PaymentsPage.vue +7 -0
  137. package/src/pages/{ExtStore → ExtensionStore}/ExtensionPage/ExtensionPage.vue +35 -20
  138. package/src/pages/{ExtStore → ExtensionStore}/ExtensionsShowcase/ExtensionsShowcase.vue +2 -2
  139. package/src/pages/{ExtStore → ExtensionStore}/InstalledExtensions/InstalledExtensions.vue +2 -2
  140. package/src/pages/Marketplace/OfferPage/ui/OfferPage.vue +1 -1
  141. package/src/pages/Marketplace/Showcase/ui/ShowcasePage.vue +1 -1
  142. package/src/pages/Marketplace/SuppliesList/ui/SuppliesListPage.vue +1 -1
  143. package/src/pages/Marketplace/UserParentOffers/ui/UserParentOffersPage.vue +1 -1
  144. package/src/pages/Marketplace/UserSuppliesList/ui/UserSuppliesListPage.vue +1 -1
  145. package/src/pages/PermissionDenied/index.ts +1 -0
  146. package/src/pages/Registrator/SignUp/EmailInput.vue +2 -3
  147. package/src/pages/Registrator/SignUp/GenerateAccount.vue +2 -3
  148. package/src/pages/Registrator/SignUp/PayInitial.vue +1 -1
  149. package/src/pages/Registrator/SignUp/ReadStatement.vue +2 -2
  150. package/src/pages/Registrator/SignUp/SelectBranch.vue +2 -2
  151. package/src/pages/Registrator/SignUp/SignStatement.vue +2 -2
  152. package/src/pages/Registrator/SignUp/SignUp.vue +5 -12
  153. package/src/pages/Registrator/SignUp/WaitingRegistration.vue +1 -5
  154. package/src/pages/Registrator/SignUp/Welcome.vue +4 -3
  155. package/src/pages/Union/ConnectionAgreement/index.ts +1 -0
  156. package/src/pages/Union/ListOfCooperatives/ui/UnionPageListOfCooperatives.vue +139 -6
  157. package/src/pages/User/DocumentsPage/UserDocumentsPage.vue +23 -0
  158. package/src/pages/User/DocumentsPage/index.ts +1 -0
  159. package/src/pages/User/PaymentsPage/ui/UserPayments.vue +11 -0
  160. package/src/pages/User/PaymentsPage/ui/index.ts +1 -0
  161. package/src/pages/User/ProfilePage/index.ts +1 -0
  162. package/src/pages/User/ProfilePage/ui/ProfilePage.vue +114 -0
  163. package/src/pages/User/ProfilePage/ui/index.ts +1 -0
  164. package/src/pages/User/SettingsPage/ui/index.ts +1 -1
  165. package/src/pages/User/WalletPage/index.ts +1 -0
  166. package/src/pages/User/WalletPage/ui/WalletPage.vue +72 -0
  167. package/src/pages/User/WalletPage/ui/index.ts +1 -0
  168. package/src/processes/init-app/index.ts +28 -0
  169. package/src/processes/init-installed-extensions/index.ts +25 -0
  170. package/src/processes/init-wallet/index.ts +40 -0
  171. package/src/processes/navigation-guard-setup/index.ts +45 -0
  172. package/src/processes/process-decisions/index.ts +275 -0
  173. package/src/processes/select-branch/index.ts +80 -0
  174. package/src/processes/watch-branch-overlay/index.ts +38 -0
  175. package/src/processes/watch-desktop-health/index.ts +33 -0
  176. package/src/shared/api/alerts.ts +2 -6
  177. package/src/shared/api/axios.ts +4 -5
  178. package/src/shared/api/client.ts +3 -4
  179. package/src/shared/api/eosio.ts +1 -2
  180. package/src/shared/api/utils.ts +1 -3
  181. package/src/shared/config/index.ts +0 -1
  182. package/src/shared/hooks/index.ts +2 -0
  183. package/src/shared/hooks/useAgendaPoints.ts +24 -0
  184. package/src/shared/hooks/useWindowSize.ts +13 -0
  185. package/src/shared/lib/composables/useDisplayName.ts +34 -0
  186. package/src/shared/lib/composables/useEditableData.ts +1 -1
  187. package/src/shared/lib/navigation/index.ts +2 -0
  188. package/src/shared/lib/navigation/routeUtils.ts +51 -0
  189. package/src/shared/lib/navigation/useBackButton.ts +63 -0
  190. package/src/shared/lib/utils/dates/validateDateWithinRange.ts +23 -0
  191. package/src/shared/ui/BaseDocument/BaseDocument.vue +120 -90
  192. package/src/{components/menu/blockchainStatus.vue → shared/ui/BlockchainStatusBar/BlockchainStatusBar.vue} +1 -0
  193. package/src/shared/ui/BlockchainStatusBar/index.ts +1 -0
  194. package/src/shared/ui/CardStyles/index.scss +61 -0
  195. package/src/shared/ui/ComplexDocument/ComplexDocument.vue +31 -8
  196. package/src/shared/ui/CopyableInput/index.ts +1 -0
  197. package/src/shared/ui/CopyableInput/ui/CopyableInput.vue +62 -0
  198. package/src/shared/ui/EditableEntrepreneurCard/EditableEntrepreneurCard.vue +171 -0
  199. package/src/shared/ui/EditableEntrepreneurCard/index.ts +1 -0
  200. package/src/{widgets/IndividualCard/ui/IndividualCard.vue → shared/ui/EditableIndividualCard/EditableIndividualCard.vue} +101 -68
  201. package/src/shared/ui/EditableIndividualCard/index.ts +1 -0
  202. package/src/shared/ui/EditableOrganizationCard/EditableOrganizationCard.vue +225 -0
  203. package/src/shared/ui/EditableOrganizationCard/index.ts +1 -0
  204. package/src/shared/ui/Form/Form.vue +3 -1
  205. package/src/shared/ui/InputStyles/index.scss +29 -0
  206. package/src/shared/ui/TabStyles/index.scss +53 -0
  207. package/src/shared/ui/UserDataForm/OrganizationDataForm/OrganizationDataForm.vue +1 -0
  208. package/src/shared/ui/index.ts +1 -0
  209. package/src/{components/history/AccountEvents.vue → widgets/AccountActions/AccountActionsPage.vue} +2 -2
  210. package/src/widgets/AccountActions/index.ts +1 -0
  211. package/src/widgets/BankDetailsCard/ui/BankDetailsCard.vue +2 -2
  212. package/src/widgets/BranchCard/ui/BranchCard.vue +2 -2
  213. package/src/widgets/Cooperative/Documents/ListOfDocuments/ui/DocumentCard.vue +48 -0
  214. package/src/widgets/Cooperative/Documents/ListOfDocuments/ui/DocumentsTable.vue +162 -0
  215. package/src/widgets/Cooperative/Documents/ListOfDocuments/ui/ListOfDocumentsWidget.vue +77 -120
  216. package/src/widgets/Cooperative/Documents/ListOfDocuments/ui/index.ts +3 -1
  217. package/src/widgets/Cooperative/Orders/ListOfOrders/ui/ListOfOrdersWidget.vue +135 -128
  218. package/src/widgets/Cooperative/Orders/ListOfOrders/ui/OrderCard.vue +74 -0
  219. package/src/widgets/Cooperative/Orders/ListOfOrders/ui/index.ts +2 -1
  220. package/src/widgets/Cooperative/Payments/ListOfPayments/ui/ListOfPaymentsWidget.vue +216 -0
  221. package/src/widgets/Cooperative/Payments/ListOfPayments/ui/PaymentCard.vue +73 -0
  222. package/src/widgets/Cooperative/Payments/ListOfPayments/ui/index.ts +2 -0
  223. package/src/widgets/Cooperative/Payments/index.ts +1 -0
  224. package/src/widgets/Desktop/LeftDrawerMenu/LeftDrawerMenu.vue +3 -2
  225. package/src/widgets/Desktop/SecondLevelMenuList/SecondLevelMenuList.vue +58 -91
  226. package/src/widgets/Desktop/WorkspaceMenu/WorkspaceMenu.vue +114 -59
  227. package/src/widgets/{ExtStore/ExtensionCard → ExtensionCard}/ExtensionCard.vue +12 -7
  228. package/src/widgets/Header/BackButton/BackButton.vue +25 -0
  229. package/src/widgets/Header/BackButton/index.ts +1 -0
  230. package/src/widgets/Header/CommonHeader/CooperativeSettingsHeader.vue +34 -0
  231. package/src/widgets/Header/CommonHeader/ExtstoreHeader.vue +41 -0
  232. package/src/widgets/Header/CommonHeader/Header.vue +33 -198
  233. package/src/widgets/Header/CommonHeader/HeaderStyles.scss +22 -0
  234. package/src/widgets/Header/CommonHeader/MainHeader.vue +87 -0
  235. package/src/widgets/Header/CommonHeader/UserSettingsHeader.vue +29 -0
  236. package/src/widgets/Header/CommonHeader/index.ts +1 -1
  237. package/src/widgets/Header/SettingsDropdown/SettingsDropdown.vue +0 -6
  238. package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Base/Base.vue +1 -2
  239. package/src/widgets/Meets/MeetDetailsActions/MeetDetailsActions.vue +51 -0
  240. package/src/widgets/Meets/MeetDetailsActions/index.ts +1 -0
  241. package/src/widgets/Meets/MeetDetailsActions/model.ts +46 -0
  242. package/src/widgets/Meets/MeetDetailsAgenda/MeetDetailsAgenda.vue +29 -0
  243. package/src/widgets/Meets/MeetDetailsAgenda/index.ts +1 -0
  244. package/src/widgets/Meets/MeetDetailsHeader/MeetDetailsHeader.vue +40 -0
  245. package/src/widgets/Meets/MeetDetailsHeader/index.ts +1 -0
  246. package/src/widgets/Meets/MeetDetailsVoting/MeetDetailsVoting.vue +77 -0
  247. package/src/widgets/Meets/MeetDetailsVoting/index.ts +1 -0
  248. package/src/widgets/Meets/MeetDetailsVoting/model.ts +117 -0
  249. package/src/widgets/Meets/MeetInfoCard/ui/MeetInfoCard.vue +38 -0
  250. package/src/widgets/Meets/MeetInfoCard/ui/index.ts +1 -0
  251. package/src/widgets/Meets/MeetsTable/ui/MeetsTable.vue +118 -0
  252. package/src/widgets/Meets/MeetsTable/ui/index.ts +1 -0
  253. package/src/widgets/Participants/index.ts +1 -0
  254. package/src/widgets/Participants/ui/ParticipantCard.vue +89 -0
  255. package/src/widgets/Participants/ui/ParticipantDetails.vue +79 -0
  256. package/src/widgets/Participants/ui/ParticipantsTable.vue +129 -0
  257. package/src/widgets/Participants/ui/index.ts +4 -0
  258. package/src/widgets/Questions/index.ts +3 -0
  259. package/src/widgets/Questions/ui/QuestionCard/QuestionCard.vue +109 -0
  260. package/src/widgets/Questions/ui/QuestionCard/index.ts +1 -0
  261. package/src/widgets/Questions/ui/QuestionsTable/QuestionsTable.vue +177 -0
  262. package/src/widgets/Questions/ui/QuestionsTable/index.ts +1 -0
  263. package/src/widgets/Questions/ui/VotingButtons/VotingButtons.vue +75 -0
  264. package/src/widgets/Questions/ui/VotingButtons/index.ts +1 -0
  265. package/src/widgets/Questions/ui/index.ts +3 -0
  266. package/src/widgets/RequireAgreements/index.ts +1 -0
  267. package/src/widgets/User/PaymentMethods/ui/PaymentMethods.vue +81 -85
  268. package/tsconfig.json +1 -1
  269. package/extensions/powerup/boot.ts +0 -17
  270. package/src/app/providers/card/store.ts +0 -42
  271. package/src/boot/branch-selector.ts +0 -40
  272. package/src/boot/init-stores.ts +0 -45
  273. package/src/boot/navigation-guards.ts +0 -46
  274. package/src/components/menu/footerMobileMenu.vue +0 -79
  275. package/src/components/soviet/index.vue +0 -76
  276. package/src/components/soviet/staff.vue +0 -274
  277. package/src/desktops/User/index.ts +0 -1
  278. package/src/desktops/User/model/index.ts +0 -328
  279. package/src/entities/Menu/model/store.ts +0 -69
  280. package/src/entities/Menu/model/types.ts +0 -11
  281. package/src/entities/Menu/ui/index.ts +0 -1
  282. package/src/entities/Order/api/index.ts +0 -14
  283. package/src/entities/Order/model/store.ts +0 -87
  284. package/src/features/Order/SetStatus/api/index.ts +0 -7
  285. package/src/features/Order/SetStatus/model/index.ts +0 -23
  286. package/src/pages/Cooperative/Contacts/ui/ContactsPage.vue +0 -7
  287. package/src/pages/Cooperative/ListOfBranches/ui/index.ts +0 -1
  288. package/src/pages/Documentor/ListOfDocuments/ListOfDocumentsPage.vue +0 -12
  289. package/src/pages/Union/Connection/index.ts +0 -1
  290. package/src/pages/_layouts/blank.vue +0 -24
  291. package/src/pages/_layouts/default.vue +0 -79
  292. package/src/types/index.ts +0 -3
  293. package/src/widgets/Commutator/Commutator.vue +0 -7
  294. package/src/widgets/Commutator/index.ts +0 -1
  295. package/src/widgets/Cooperative/Agenda/ListOfQuestions/ui/ListOfQuestions.vue +0 -273
  296. package/src/widgets/Cooperative/Agenda/ListOfQuestions/ui/index.ts +0 -1
  297. package/src/widgets/Cooperative/Contacts/ui/Contacts.vue +0 -52
  298. package/src/widgets/Cooperative/Contributions/ui/index.ts +0 -1
  299. package/src/widgets/Cooperative/Description/ui/SetDescription.vue +0 -4
  300. package/src/widgets/Cooperative/Description/ui/index.ts +0 -1
  301. package/src/widgets/Cooperative/Participants/ListOfParticipants/ui/ListOfParticipantsWidget.vue +0 -103
  302. package/src/widgets/Cooperative/Participants/ListOfParticipants/ui/index.ts +0 -1
  303. package/src/widgets/Desktop/SecondLevelMenu/SecondLevelMenu.vue +0 -59
  304. package/src/widgets/Desktop/SecondLevelMenu/index.ts +0 -1
  305. package/src/widgets/IndividualCard/ui/index.ts +0 -1
  306. package/src/widgets/OrganizationCard/ui/OrganizationCard.vue +0 -44
  307. package/src/widgets/OrganizationCard/ui/index.ts +0 -1
  308. package/src/widgets/Union/ListOfCooperatives/ui/UnionListOfCooperatives.vue +0 -136
  309. package/src/widgets/Union/ListOfCooperatives/ui/index.ts +0 -1
  310. package/src/entities/{Menu → Document}/model/index.ts +0 -0
  311. package/src/entities/{Order → Meet}/model/index.ts +0 -0
  312. package/src/entities/{Order → Payment}/index.ts +0 -0
  313. package/src/features/{Order/SetStatus → Decision/ParticipantApplication}/index.ts +0 -0
  314. package/src/{widgets/Request/SupplyOrderRequestCard → features/FreeDecision/CreateProject}/index.ts +0 -0
  315. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderCompletedStatusButton/SetOrderCompletedStatusButton.vue +0 -0
  316. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderCompletedStatusButton/index.ts +0 -0
  317. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderPaidStatusButton/index.ts +0 -0
  318. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderRefundedStatusButton/SetOrderRefundedStatusButton.vue +0 -0
  319. package/src/features/{Order → Payment}/SetStatus/ui/SetOrderRefundedStatusButton/index.ts +0 -0
  320. package/src/pages/{blank/blank.vue → Blank/BlankPage.vue} +0 -0
  321. package/src/pages/{Cooperative/Contacts/ui → Contacts}/index.ts +0 -0
  322. package/src/pages/Cooperative/{Contacts → ChangeContacts}/index.ts +0 -0
  323. package/src/{widgets/Cooperative/Contacts → pages/Cooperative/ChangeContacts}/ui/ChangeContacts.vue +0 -0
  324. package/src/pages/Cooperative/{ListOfBranches → ChangeRegisterPayments}/index.ts +0 -0
  325. package/src/pages/{Documentor → Cooperative}/ListOfDocuments/index.ts +0 -0
  326. package/src/pages/{Installer → Cooperative/ListOfMeets}/index.ts +0 -0
  327. package/src/{widgets/Cooperative/Agenda/ListOfQuestions → pages/Cooperative/MeetDetails}/index.ts +0 -0
  328. package/src/{widgets/Cooperative/Contacts → pages/Cooperative/MemberBranchList}/index.ts +0 -0
  329. package/src/pages/{ExtStore → ExtensionStore}/BaseRoute/ExtensionStoreBase.vue +0 -0
  330. package/src/pages/{ExtStore → ExtensionStore}/BaseRoute/index.ts +0 -0
  331. package/src/pages/{ExtStore → ExtensionStore}/ExtensionPage/index.ts +0 -0
  332. package/src/pages/{ExtStore → ExtensionStore}/ExtensionsShowcase/index.ts +0 -0
  333. package/src/pages/{ExtStore → ExtensionStore}/InstalledExtensions/index.ts +0 -0
  334. package/src/pages/{_layouts/permissionDenied.vue → PermissionDenied/PermissionDenied.vue} +0 -0
  335. package/src/pages/Union/{Connection/ConnectionPage.vue → ConnectionAgreement/ConnectionAgreementPage.vue} +0 -0
  336. package/src/{widgets/Cooperative/Contributions → pages/Union/InstallCooperative}/index.ts +0 -0
  337. package/src/pages/{Installer → Union/InstallCooperative}/ui/InstallCooperativePage.vue +0 -0
  338. package/src/pages/{Installer → Union/InstallCooperative}/ui/index.ts +0 -0
  339. package/src/{widgets/Cooperative/Participants/ListOfParticipants → pages/User/PaymentsPage}/index.ts +0 -0
  340. package/src/{components/history → widgets/AccountActions}/AccountLink.vue +0 -0
  341. package/src/{components/history → widgets/AccountActions}/ActionCell.vue +0 -0
  342. package/src/{components/history → widgets/AccountActions}/DataCell.vue +0 -0
  343. package/src/widgets/{IndividualCard → Cooperative/Payments/ListOfPayments}/index.ts +0 -0
  344. package/src/widgets/{ExtStore/ExtensionCard → ExtensionCard}/index.ts +0 -0
  345. package/src/widgets/{Request → Marketplace}/CreateChildOrderCard/CreateChildOrderCard.vue +0 -0
  346. package/src/widgets/{Request → Marketplace}/CreateChildOrderCard/index.ts +0 -0
  347. package/src/widgets/{Request → Marketplace}/RequestCard/RequestCard.vue +0 -0
  348. package/src/widgets/{Request → Marketplace}/RequestCard/index.ts +0 -0
  349. package/src/{entities/Menu → widgets/Marketplace/SupplyOrderRequestCard}/index.ts +1 -1
  350. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/model/index.ts +0 -0
  351. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/model/types.ts +0 -0
  352. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Base/index.ts +0 -0
  353. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/EightStep.vue +0 -0
  354. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/FifthStep.vue +0 -0
  355. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/FirstStep.vue +0 -0
  356. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/FourthStep.vue +0 -0
  357. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/SecondStep.vue +0 -0
  358. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/SeventhStep.vue +0 -0
  359. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/SixthStep.vue +0 -0
  360. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/ThirdStep.vue +0 -0
  361. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/Steps/index.ts +0 -0
  362. /package/src/widgets/{Request → Marketplace}/SupplyOrderRequestCard/ui/index.ts +0 -0
  363. /package/src/widgets/{OrganizationCard → Meets/MeetInfoCard}/index.ts +0 -0
  364. /package/src/widgets/{Union/ListOfCooperatives → Meets/MeetsTable}/index.ts +0 -0
  365. /package/src/widgets/{Agreementer/RequireAgreements → RequireAgreements}/ui/RequireAgreements.vue +0 -0
  366. /package/src/widgets/{Agreementer/RequireAgreements → RequireAgreements}/ui/index.ts +0 -0
@@ -0,0 +1,62 @@
1
+ <template lang="pug">
2
+ q-input(
3
+ :label="label"
4
+ :model-value="modelValue"
5
+ :readonly="readonly"
6
+ :standout="standout"
7
+ :dense="dense"
8
+ :class="inputClass"
9
+ )
10
+ template(v-slot:append)
11
+ q-btn(
12
+ flat
13
+ round
14
+ dense
15
+ icon="fa fa-copy"
16
+ @click="copyToClipboard"
17
+ )
18
+ q-tooltip Копировать
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import { copyToClipboard as copy } from 'quasar'
23
+ import { FailAlert, SuccessAlert } from 'src/shared/api'
24
+
25
+ const props = defineProps({
26
+ modelValue: {
27
+ type: [String, Number],
28
+ required: true
29
+ },
30
+ label: {
31
+ type: String,
32
+ default: ''
33
+ },
34
+ readonly: {
35
+ type: Boolean,
36
+ default: true
37
+ },
38
+ standout: {
39
+ type: [Boolean, String],
40
+ default: false
41
+ },
42
+ dense: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ inputClass: {
47
+ type: String,
48
+ default: ''
49
+ }
50
+ })
51
+
52
+ const copyToClipboard = () => {
53
+ copy(String(props.modelValue))
54
+ .then(() => {
55
+ SuccessAlert('Скопировано в буфер обмена')
56
+ })
57
+ .catch((e) => {
58
+ console.error(e)
59
+ FailAlert('Не удалось скопировать')
60
+ })
61
+ }
62
+ </script>
@@ -0,0 +1,171 @@
1
+ <template lang="pug">
2
+ q-form(ref="form")
3
+ q-input(
4
+ dense
5
+ v-model="data.last_name"
6
+ standout="bg-teal text-white"
7
+ label="Фамилия"
8
+ :readonly="readonly"
9
+ :rules="[val => notEmpty(val), val => validatePersonalName(val)]"
10
+ autocomplete="off"
11
+ )
12
+ q-input(
13
+ dense
14
+ v-model="data.first_name"
15
+ standout="bg-teal text-white"
16
+ label="Имя"
17
+ :readonly="readonly"
18
+ :rules="[val => notEmpty(val), val => validatePersonalName(val)]"
19
+ autocomplete="off"
20
+ )
21
+ q-input(
22
+ dense
23
+ v-model="data.middle_name"
24
+ standout="bg-teal text-white"
25
+ label="Отчество"
26
+ :readonly="readonly"
27
+ :rules="[val => validatePersonalName(val)]"
28
+ autocomplete="off"
29
+ )
30
+
31
+ q-input(
32
+ dense
33
+ v-model="data.birthdate"
34
+ standout="bg-teal text-white"
35
+ mask="date"
36
+ label="Дата рождения"
37
+ placeholder="Формат: год/месяц/день"
38
+ :readonly="readonly"
39
+ :rules="['date', val => notEmpty(val)]"
40
+ autocomplete="off"
41
+ )
42
+ template(v-slot:append)
43
+ q-icon(name="event" class="cursor-pointer" v-if="!readonly")
44
+ q-popup-proxy(cover transition-show="scale" transition-hide="scale")
45
+ q-date(v-model="data.birthdate")
46
+ .row.items-center.justify-end
47
+ q-btn(v-close-popup label="Закрыть" color="primary" flat)
48
+
49
+ q-input(
50
+ dense
51
+ v-model="data.phone"
52
+ standout="bg-teal text-white"
53
+ label="Номер телефона"
54
+ mask="+7 (###) ###-##-##"
55
+ fill-mask
56
+ :readonly="readonly"
57
+ :rules="[val => notEmpty(val), val => notEmptyPhone(val)]"
58
+ autocomplete="off"
59
+ )
60
+
61
+ q-select(
62
+ dense
63
+ v-model="data.country"
64
+ standout="bg-teal text-white"
65
+ label="Страна"
66
+ :options="[{ label: 'Российская Федерация', value: 'Российская Федерация' }]"
67
+ map-options
68
+ emit-value
69
+ :readonly="readonly"
70
+ :rules="[val => notEmpty(val)]"
71
+ )
72
+
73
+ q-input(
74
+ dense
75
+ v-model="data.city"
76
+ standout="bg-teal text-white"
77
+ label="Город"
78
+ :readonly="readonly"
79
+ :rules="[val => notEmpty(val)]"
80
+ autocomplete="off"
81
+ )
82
+
83
+ q-input(
84
+ dense
85
+ v-model="data.full_address"
86
+ standout="bg-teal text-white"
87
+ label="Адрес регистрации"
88
+ :readonly="readonly"
89
+ :rules="[val => notEmpty(val)]"
90
+ autocomplete="off"
91
+ )
92
+
93
+ q-input(
94
+ dense
95
+ v-model="data.details.inn"
96
+ standout="bg-teal text-white"
97
+ mask="############"
98
+ label="ИНН предпринимателя"
99
+ :readonly="readonly"
100
+ :rules="[val => notEmpty(val), val => (val.length === 10 || val.length === 12) || 'ИНН должен содержать 10 или 12 цифр']"
101
+ autocomplete="off"
102
+ )
103
+
104
+ q-input(
105
+ dense
106
+ v-model="data.details.ogrn"
107
+ standout="bg-teal text-white"
108
+ mask="###############"
109
+ label="ОГРНИП"
110
+ :readonly="readonly"
111
+ :rules="[val => notEmpty(val), val => (val.length === 13 || val.length === 15) || 'ОГРНИП должен содержать 13 или 15 цифр']"
112
+ autocomplete="off"
113
+ )
114
+
115
+ EditableActions(
116
+ v-if="!readonly"
117
+ :isEditing="isEditing"
118
+ :isDisabled="isDisabled"
119
+ @save="saveChanges"
120
+ @cancel="cancelChanges"
121
+ )
122
+ </template>
123
+
124
+ <script setup lang="ts">
125
+ import { ref } from 'vue';
126
+ import { useEditableData } from 'src/shared/lib/composables/useEditableData';
127
+ import { notEmpty, notEmptyPhone, validatePersonalName } from 'src/shared/lib/utils';
128
+ import { FailAlert, SuccessAlert } from 'src/shared/api';
129
+ import { EditableActions } from 'src/shared/ui/EditableActions';
130
+ import { type IUpdateAccountInput, useUpdateAccount } from 'src/features/Account/UpdateAccount/model';
131
+ import { type IEntrepreneurData } from 'src/entities/Account/types';
132
+ import 'src/shared/ui/InputStyles/index.scss';
133
+
134
+ const emit = defineEmits(['update']);
135
+ const { updateAccount } = useUpdateAccount();
136
+
137
+ const props = defineProps({
138
+ participantData: {
139
+ type: Object as () => IEntrepreneurData,
140
+ required: true
141
+ },
142
+ readonly: {
143
+ type: Boolean,
144
+ default: false
145
+ }
146
+ });
147
+
148
+ const localEntrepreneurData = ref(props.participantData);
149
+ const form = ref();
150
+
151
+ const handleSave = async () => {
152
+ try {
153
+ const account_data: IUpdateAccountInput = {
154
+ username: props.participantData.username,
155
+ entrepreneur_data: data.value,
156
+ };
157
+ await updateAccount(account_data);
158
+ emit('update', JSON.parse(JSON.stringify(data.value)));
159
+ SuccessAlert('Данные аккаунта обновлены');
160
+ } catch (e) {
161
+ console.log(e);
162
+ FailAlert(e);
163
+ }
164
+ };
165
+
166
+ const { editableData: data, isEditing, isDisabled, saveChanges, cancelChanges } = useEditableData(
167
+ localEntrepreneurData.value,
168
+ handleSave,
169
+ form
170
+ );
171
+ </script>
@@ -0,0 +1 @@
1
+ export {default as EditableEntrepreneurCard} from './EditableEntrepreneurCard.vue'
@@ -1,170 +1,203 @@
1
1
  <template lang="pug">
2
- div
2
+ q-form(ref="form" v-if="data")
3
3
  q-input(
4
- :readonly="readonly"
5
- dense
6
- v-model="data.phone"
7
- standout="bg-teal text-white"
8
- mask="+7 (###) ###-##-##"
9
- fill-mask
10
- label="Номер телефона"
11
- placeholder="+7 (###) ###-##-##"
12
- :rules="[val => notEmpty(val), val => notEmptyPhone(val)]"
13
- autocomplete="off"
14
- )
15
- q-input(
16
- :readonly="readonly"
17
4
  dense
18
5
  v-model="data.email"
19
6
  standout="bg-teal text-white"
20
7
  label="Email"
21
- placeholder="example@domain.com"
8
+ :readonly="readonly"
22
9
  :rules="[val => validEmail(val)]"
23
10
  autocomplete="off"
24
11
  )
25
12
  q-input(
26
- :readonly="readonly"
27
13
  dense
28
14
  v-model="data.first_name"
29
15
  standout="bg-teal text-white"
30
16
  label="Имя"
31
- placeholder="Иван"
32
- :rules="[val => notEmpty(val), val => validatePersonalName(val)]"
33
- autocomplete="off"
34
- )
35
- q-input(
36
17
  :readonly="readonly"
37
- dense
38
- v-model="data.last_name"
39
- standout="bg-teal text-white"
40
- label="Фамилия"
41
- placeholder="Иванов"
42
- :rules="[val => notEmpty(val), val => validatePersonalName(val)]"
18
+ :rules="[val => notEmpty(val)]"
43
19
  autocomplete="off"
44
20
  )
21
+
45
22
  q-input(
46
- :readonly="readonly"
47
23
  dense
48
24
  v-model="data.middle_name"
49
25
  standout="bg-teal text-white"
50
26
  label="Отчество"
51
- placeholder="Иванович"
27
+ :readonly="readonly"
52
28
  :rules="[val => validatePersonalName(val)]"
53
29
  autocomplete="off"
54
30
  )
31
+
55
32
  q-input(
33
+ dense
34
+ v-model="data.last_name"
35
+ standout="bg-teal text-white"
36
+ label="Фамилия"
56
37
  :readonly="readonly"
38
+ :rules="[val => notEmpty(val), val => validatePersonalName(val)]"
39
+ autocomplete="off"
40
+ )
41
+
42
+ q-input(
57
43
  dense
58
44
  v-model="data.birthdate"
59
45
  standout="bg-teal text-white"
60
46
  mask="date"
61
47
  label="Дата рождения"
62
48
  placeholder="Формат: год/месяц/день"
49
+ :readonly="readonly"
63
50
  :rules="['date', val => notEmpty(val)]"
64
51
  autocomplete="off"
65
52
  )
66
53
  template(v-slot:append)
67
- q-icon(name="event" class="cursor-pointer")
54
+ q-icon(name="event" class="cursor-pointer" v-if="!readonly")
68
55
  q-popup-proxy(cover transition-show="scale" transition-hide="scale")
69
56
  q-date(v-model="data.birthdate")
70
57
  .row.items-center.justify-end
71
58
  q-btn(v-close-popup label="Закрыть" color="primary" flat)
72
59
 
73
60
  q-input(
74
- :readonly="readonly"
75
61
  dense
76
- v-model="data.full_address"
62
+ v-model="data.phone"
77
63
  standout="bg-teal text-white"
78
- label="Адрес регистрации (как в паспорте)"
79
- placeholder="г. Москва, ул. Арбат, д.12"
64
+ label="Телефон"
65
+ :readonly="readonly"
80
66
  :rules="[val => notEmpty(val)]"
81
67
  autocomplete="off"
82
68
  )
69
+
83
70
  div(v-if="data.passport")
84
71
  q-input(
85
- :readonly="readonly"
86
72
  dense
87
- v-model="data.passport.series"
73
+ v-model="data.passport.code"
88
74
  standout="bg-teal text-white"
89
- label="Серия паспорта"
90
- placeholder="Четыре цифры"
91
- :rules="[val => notEmpty(val), val => val.length === 4 || 'Серия должна состоять из 4 цифр']"
75
+ label="Код подразделения"
76
+ mask="###-###"
77
+ :readonly="readonly"
78
+ :rules="[val => notEmpty(val), val => val.length === 7 || 'Код подразделения состоит из 6 цифр и тире (xxx-xxx)']"
92
79
  autocomplete="off"
93
80
  )
81
+
94
82
  q-input(
95
- :readonly="readonly"
96
83
  dense
97
- v-model="data.passport.number"
84
+ :model-value="data.passport.series"
85
+ @update:model-value="val => data.passport.series = Number(val)"
98
86
  standout="bg-teal text-white"
99
- label="Номер паспорта"
100
- placeholder="Шесть цифр"
101
- :rules="[val => notEmpty(val), val => val.length === 6 || 'Номер должен состоять из 6 цифр']"
87
+ label="Серия паспорта"
88
+ mask="####"
89
+ type="text"
90
+ :readonly="readonly"
91
+ :rules="[val => notEmpty(val), val => String(val).length === 4 || 'Серия должна состоять из 4 цифр']"
102
92
  autocomplete="off"
103
93
  )
94
+
104
95
  q-input(
105
- :readonly="readonly"
106
96
  dense
107
- v-model="data.passport.issued_by"
97
+ :model-value="data.passport.number"
98
+ @update:model-value="val => data.passport.number = Number(val)"
108
99
  standout="bg-teal text-white"
109
- label="Паспорт выдан"
110
- placeholder="Например, УФМС России"
111
- :rules="[val => notEmpty(val)]"
100
+ label="Номер паспорта"
101
+ mask="######"
102
+ type="text"
103
+ :readonly="readonly"
104
+ :rules="[val => notEmpty(val), val => String(val).length === 6 || 'Номер паспорта должен состоять из 6 цифр']"
112
105
  autocomplete="off"
113
106
  )
107
+
108
+
109
+
114
110
  q-input(
115
- :readonly="readonly"
116
111
  dense
117
112
  v-model="data.passport.issued_at"
118
113
  standout="bg-teal text-white"
119
- label="Дата выдачи"
120
- placeholder="Формат: год/месяц/день"
121
114
  mask="date"
115
+ label="Дата выдачи"
116
+ :readonly="readonly"
122
117
  :rules="['date', val => notEmpty(val)]"
123
118
  autocomplete="off"
124
119
  )
120
+ template(v-slot:append)
121
+ q-icon(name="event" class="cursor-pointer" v-if="!readonly")
122
+ q-popup-proxy(cover transition-show="scale" transition-hide="scale")
123
+ q-date(v-model="data.passport.issued_at")
124
+ .row.items-center.justify-end
125
+ q-btn(v-close-popup label="Закрыть" color="primary" flat)
126
+
125
127
  q-input(
128
+ dense
129
+ v-model="data.passport.issued_by"
130
+ standout="bg-teal text-white"
131
+ label="Кем выдан"
126
132
  :readonly="readonly"
133
+ :rules="[val => notEmpty(val)]"
134
+ autocomplete="off"
135
+ )
136
+
137
+ q-input(
127
138
  dense
128
- v-model="data.passport.code"
139
+ v-model="data.full_address"
129
140
  standout="bg-teal text-white"
130
- label="Код подразделения"
131
- placeholder="Три цифры - три цифры"
132
- mask="###-###"
133
- :rules="[val => notEmpty(val), val => val.match(/^\d{3}-\d{3}$/) || 'Формат должен быть 000-000']"
141
+ label="Адрес регистрации"
142
+ :readonly="readonly"
143
+ :rules="[val => notEmpty(val)]"
134
144
  autocomplete="off"
135
145
  )
136
146
 
137
147
  EditableActions(
138
148
  v-if="!readonly"
139
149
  :isEditing="isEditing"
150
+ :isDisabled="isDisabled"
140
151
  @save="saveChanges"
141
152
  @cancel="cancelChanges"
142
153
  )
143
- </template>
154
+ </template>
144
155
 
145
156
  <script lang="ts" setup>
157
+ import { ref } from 'vue';
146
158
  import { useEditableData } from 'src/shared/lib/composables/useEditableData';
147
- import { notEmpty, notEmptyPhone } from 'src/shared/lib/utils';
148
159
  import { validEmail } from 'src/shared/lib/utils/validEmailRule';
149
- import { validatePersonalName } from 'src/shared/lib/utils';
160
+ import { validatePersonalName, notEmpty } from 'src/shared/lib/utils';
161
+ import { FailAlert, SuccessAlert } from 'src/shared/api';
162
+ import { type IUpdateAccountInput, useUpdateAccount } from 'src/features/Account/UpdateAccount/model';
150
163
  import { EditableActions } from 'src/shared/ui/EditableActions';
151
- import { Cooperative } from 'cooptypes';
164
+ import { type IIndividualData } from 'src/entities/Account/types';
165
+ import 'src/shared/ui/InputStyles/index.scss';
166
+
167
+ const { updateAccount } = useUpdateAccount()
152
168
 
153
169
  const props = defineProps({
154
- individual: {
155
- type: Object as () => Cooperative.Users.IIndividualData,
170
+ participantData: {
171
+ type: Object as () => IIndividualData,
156
172
  required: true
157
173
  },
158
174
  readonly: {
159
175
  type: Boolean,
160
- required: false,
161
- default: true
176
+ default: false
162
177
  }
163
178
  });
164
179
 
165
- const handleSave = (updatedIndividual: Cooperative.Users.IIndividualData) => {
166
- console.log('Сохранено:', updatedIndividual);
180
+ const localParticipantData = ref(props.participantData);
181
+ const form = ref();
182
+ const emit = defineEmits(['update']);
183
+
184
+ const handleSave = async () => {
185
+ try {
186
+ const account_data: IUpdateAccountInput = {
187
+ username: props.participantData.username,
188
+ individual_data: data.value,
189
+ }
190
+ await updateAccount(account_data);
191
+ emit('update', JSON.parse(JSON.stringify(data.value)))
192
+ SuccessAlert('Данные аккаунта обновлены')
193
+ } catch (e: any) {
194
+ FailAlert(e);
195
+ }
167
196
  };
168
197
 
169
- const { editableData: data, isEditing, saveChanges, cancelChanges } = useEditableData(props.individual, handleSave);
198
+ const { editableData: data, isEditing, isDisabled, saveChanges, cancelChanges } = useEditableData(
199
+ localParticipantData.value,
200
+ handleSave,
201
+ form
202
+ );
170
203
  </script>
@@ -0,0 +1 @@
1
+ export {default as EditableIndividualCard} from './EditableIndividualCard.vue'