From a5e458ed25721ab597e67cdefb2a1cb06873b4a2 Mon Sep 17 00:00:00 2001 From: safavimohadeseh78 Date: Sun, 14 Jun 2026 10:08:46 +0330 Subject: [PATCH 1/3] Split desktop and mobile layouts with shared page data so APIs fetch once per context. Add layout shells, desktop views, module-level page caches, and UI fixes for auth, home, wallet, transactions, address, and related pages. Co-authored-by: Cursor --- components.d.ts | 2 + index.html | 33 + src/App.vue | 122 +-- src/assets/css/boursecu-theme.less | 5 + src/assets/css/main.less | 47 +- src/components/ListAnim.vue | 11 +- src/components/SupportContactBar.vue | 38 + src/composables/useOnceAsync.ts | 44 ++ src/composables/useProductsCatalog.ts | 32 + src/composables/useWalletAssets.ts | 6 +- src/config-loader.js | 10 + src/layouts/AppLayoutShell.vue | 12 + src/layouts/components/ResponsiveViewPair.vue | 47 ++ src/layouts/composables/useAppLayout.ts | 34 + src/layouts/composables/useAppNavigation.ts | 43 ++ .../composables/useResponsiveLayout.ts | 21 + src/layouts/config/navigation.ts | 29 + src/layouts/constants.ts | 4 + src/layouts/desktop/DesktopAppLayout.vue | 40 + src/layouts/desktop/DesktopNavItem.vue | 25 + src/layouts/desktop/DesktopSidebar.vue | 55 ++ src/layouts/desktop/desktop-layout.less | 157 ++++ .../desktop/styles/desktop-page-common.less | 83 ++ src/layouts/mobile/MobileAppLayout.vue | 57 ++ src/layouts/mobile/MobileBottomNav.vue | 107 +++ src/layouts/mobile/MobileOverflowMenu.vue | 53 ++ src/layouts/mobile/mobile-layout.less | 145 ++++ src/layouts/styles/desktop-shell.less | 126 +++ src/layouts/styles/mobile-frame.less | 84 ++ src/layouts/types.ts | 6 + src/store/settingsStore.ts | 24 +- src/utils/config.ts | 15 +- src/utils/persianDigits.ts | 29 + src/utils/productAssets.ts | 1 + src/utils/productPrice.ts | 28 +- .../about/components/AboutSectionsContent.vue | 67 ++ .../about/components/AboutSupportActions.vue | 41 + .../base/about/composables/useAboutPage.ts | 48 ++ .../base/about/desktop/DesktopAboutView.vue | 50 ++ .../about/desktop/styles/desktop-about.less | 234 ++++++ src/views/base/about/index.vue | 176 +---- .../base/about/mobile/MobileAboutView.vue | 31 + .../components/AboutUsContentPanel.vue | 55 ++ .../aboutUs/composables/useAboutUsPage.ts | 27 + .../aboutUs/desktop/DesktopAboutUsView.vue | 41 + .../desktop/styles/desktop-about-us.less | 168 ++++ src/views/base/aboutUs/index.vue | 66 +- .../base/aboutUs/mobile/MobileAboutUsView.vue | 29 + .../base/address/components/AddressForm.vue | 101 +++ .../address/components/AddressMobileItem.vue | 94 +++ src/views/base/address/components/Item.vue | 221 +++--- .../address/composables/useAddressPage.ts | 145 ++++ .../address/composables/useAddressPageData.ts | 82 ++ .../address/desktop/DesktopAddressView.vue | 86 +++ .../desktop/styles/desktop-address.less | 307 ++++++++ src/views/base/address/index.vue | 275 +------ .../base/address/mobile/MobileAddressView.vue | 72 ++ .../earnMoney/composables/useEarnMoneyPage.ts | 90 +++ .../desktop/DesktopEarnMoneyView.vue | 121 +++ .../desktop/styles/desktop-earn-money.less | 244 ++++++ src/views/base/earnMoney/index.vue | 163 +--- .../earnMoney/mobile/MobileEarnMoneyView.vue | 101 +++ .../components/EducateContentPanel.vue | 103 +++ .../components/EducateSupportActions.vue | 43 ++ .../educate/composables/useEducatePage.ts | 105 +++ .../educate/desktop/DesktopEducateView.vue | 52 ++ .../desktop/styles/desktop-educate.less | 231 ++++++ src/views/base/educate/index.vue | 208 +---- .../base/educate/mobile/MobileEducateView.vue | 27 + src/views/base/fund/components/Item.vue | 11 +- .../base/fund/composables/useFundPage.ts | 119 +++ .../base/fund/desktop/DesktopFundView.vue | 138 ++++ .../fund/desktop/styles/desktop-fund.less | 495 ++++++++++++ src/views/base/fund/index.vue | 171 +---- .../fund/info/components/FundEditActions.vue | 48 ++ .../info/components/FundTransactionForm.vue | 82 ++ .../fund/info/composables/useFundInfoPage.ts | 185 +++++ .../fund/info/desktop/DesktopFundInfoView.vue | 78 ++ src/views/base/fund/info/index.vue | 346 ++------- .../fund/info/mobile/MobileFundInfoView.vue | 63 ++ src/views/base/fund/mobile/MobileFundView.vue | 161 ++++ .../newFund/composables/useFundNewPage.ts | 117 +++ .../newFund/desktop/DesktopFundNewView.vue | 81 ++ src/views/base/fund/newFund/index.vue | 199 +---- .../fund/newFund/mobile/MobileFundNewView.vue | 74 ++ .../base/giftCard/components/GiftCardForm.vue | 52 ++ .../giftCard/composables/useGiftCardPage.ts | 58 ++ .../giftCard/desktop/DesktopGiftCardView.vue | 50 ++ .../desktop/styles/desktop-gift-card.less | 186 +++++ src/views/base/giftCard/index.vue | 80 +- .../giftCard/mobile/MobileGiftCardView.vue | 18 + .../gold/desktop/styles/desktop-gold.less | 79 ++ src/views/base/gold/index.vue | 66 +- src/views/base/home/components/AppHeader.vue | 71 +- .../base/home/components/AssetsSection.vue | 47 +- .../base/home/components/BalanceSheet.vue | 6 +- .../home/components/HomeQuickActionBox.vue | 41 + .../base/home/components/HomeSkeleton.vue | 101 ++- src/views/base/home/components/PriceChart.vue | 259 +++++-- src/views/base/home/components/PriceStats.vue | 22 +- .../base/home/components/ReferralSection.vue | 131 +++- src/views/base/home/components/ShareModal.vue | 13 +- src/views/base/home/composables/useBanners.ts | 95 ++- .../base/home/composables/useHomePage.ts | 237 ++++++ .../base/home/composables/useHomePageData.ts | 76 ++ .../base/home/composables/usePriceChart.ts | 246 +++++- .../base/home/composables/useUserFunds.ts | 64 +- .../base/home/desktop/HomeDesktopView.vue | 17 + .../desktop/components/DesktopAssetsCard.vue | 38 + .../components/DesktopAssetsMetrics.vue | 111 +++ .../components/DesktopBannersPanel.vue | 20 + .../desktop/components/DesktopChartPanel.vue | 27 + .../components/DesktopChartSection.vue | 27 + .../components/DesktopDefaultActions.vue | 32 + .../components/DesktopGaroosiAssets.vue | 30 + .../desktop/components/DesktopHomeAlerts.vue | 36 + .../desktop/components/DesktopHomeCard.vue | 12 + .../desktop/components/DesktopHomeHeader.vue | 49 ++ .../desktop/components/DesktopHomeSection.vue | 15 + .../desktop/components/DesktopHomeShell.vue | 15 + .../desktop/components/DesktopHomeTopbar.vue | 43 ++ .../desktop/components/DesktopLivePrice.vue | 46 ++ .../components/DesktopPriceOverview.vue | 32 + .../desktop/components/DesktopPriceRange.vue | 28 + .../components/DesktopQuickActionsGrid.vue | 40 + .../components/DesktopQuickActionsPanel.vue | 42 + .../components/DesktopReferralPanel.vue | 14 + .../desktop/layouts/BoursecuDesktopHome.vue | 51 ++ .../desktop/layouts/DefaultDesktopHome.vue | 68 ++ .../home/desktop/styles/desktop-home.less | 516 +++++++++++++ src/views/base/home/index.vue | 306 +------- .../base/home/layouts/HomeLayoutRenderer.vue | 56 ++ .../base/home/layouts/configs/boursecu.ts | 21 + .../layouts/configs/boursecuQuickActions.ts | 40 + .../base/home/layouts/configs/default.ts | 19 + src/views/base/home/layouts/registry.ts | 47 ++ .../layouts/sections/AssetsSectionBlock.vue | 16 + .../home/layouts/sections/BannersSection.vue | 15 + .../sections/BoursecuQuickActionsSection.vue | 30 + .../layouts/sections/CurrentPriceSection.vue | 7 + .../layouts/sections/GaroosiAssetsSection.vue | 23 + .../sections/LimitedPriceAlertSection.vue | 28 + .../layouts/sections/MainActionsSection.vue | 20 + .../layouts/sections/MarketClosedSection.vue | 14 + .../layouts/sections/PriceChartSection.vue | 22 + .../layouts/sections/PriceStatsSection.vue | 13 + .../layouts/sections/ReferralSectionBlock.vue | 11 + src/views/base/home/layouts/sections/index.ts | 31 + src/views/base/home/layouts/types.ts | 41 + src/views/base/home/mobile/MobileHomeView.vue | 23 + src/views/base/home/shell/HomePageShell.vue | 17 + src/views/base/index.vue | 450 +---------- .../physicalReceive/components/NewRequest.vue | 226 +----- .../PhysicalReceiveAddressPicker.vue | 51 ++ .../components/PhysicalReceiveCartRow.vue | 78 ++ .../components/RequestItem.vue | 63 +- .../components/RequestList.vue | 38 +- .../composables/useNewPhysicalRequestPage.ts | 153 ++++ .../composables/usePhysicalReceiveList.ts | 37 + .../composables/usePhysicalReceiveShell.ts | 23 + .../desktop/DesktopNewRequestView.vue | 119 +++ .../desktop/DesktopPhysicalReceiveChrome.vue | 32 + .../desktop/DesktopRequestListView.vue | 36 + .../styles/desktop-physical-receive.less | 301 ++++++++ src/views/base/physicalReceive/index.vue | 51 +- .../mobile/MobileNewRequestView.vue | 76 ++ .../mobile/MobilePhysicalReceiveChrome.vue | 21 + .../mobile/MobileRequestListView.vue | 23 + .../base/priceTrigger/components/Item.vue | 212 ++--- .../components/PriceTriggerForm.vue | 63 ++ .../composables/usePriceTriggerPage.ts | 135 ++++ .../desktop/DesktopPriceTriggerView.vue | 78 ++ .../desktop/styles/desktop-price-trigger.less | 273 +++++++ src/views/base/priceTrigger/index.vue | 203 +---- .../mobile/MobilePriceTriggerView.vue | 58 ++ .../products/composables/useProductsPage.ts | 147 ++++ .../composables/useProductsPageData.ts | 152 ++++ .../products/desktop/DesktopProductsView.vue | 64 ++ .../desktop/components/DesktopProductCard.vue | 81 ++ .../desktop/styles/desktop-products.less | 173 +++++ src/views/base/products/index.vue | 351 +++------ .../products/mobile/MobileProductsView.vue | 62 ++ .../rules/components/RulesContentPanel.vue | 68 ++ .../rules/components/RulesSupportActions.vue | 41 + .../base/rules/composables/useRulesPage.ts | 55 ++ .../base/rules/desktop/DesktopRulesView.vue | 50 ++ .../rules/desktop/styles/desktop-rules.less | 212 +++++ src/views/base/rules/index.vue | 193 +---- .../base/rules/mobile/MobileRulesView.vue | 31 + .../composables/usePermissionsPage.ts | 26 + .../desktop/DesktopPermissionsView.vue | 59 ++ .../desktop/styles/desktop-permissions.less | 168 ++++ .../mobile/MobilePermissionsView.vue | 33 + .../base/rules/permissions/permissions.vue | 154 +--- .../transactions/BoursecuTransactionsPage.vue | 202 +++++ .../transactions/DefaultTransactionsPage.vue | 79 ++ .../base/transactions/components/Item.vue | 245 +++--- .../components/TransactionDetailPanel.vue | 131 ++++ .../composables/useTransactionsPage.ts | 188 +++++ .../composables/useTransactionsPageData.ts | 157 ++++ .../base/transactions/config/boursecuTabs.ts | 103 +++ .../DesktopBoursecuTransactionsView.vue | 126 +++ .../DesktopDefaultTransactionsView.vue | 86 +++ .../desktop/styles/desktop-transactions.less | 286 +++++++ src/views/base/transactions/index.vue | 232 +----- .../base/user/components/UserPasswordForm.vue | 56 ++ .../base/user/components/UserProfileForm.vue | 59 ++ .../base/user/composables/useUserPage.ts | 280 +++++++ .../base/user/desktop/DesktopUserView.vue | 105 +++ .../user/desktop/styles/desktop-user.less | 252 ++++++ src/views/base/user/index.vue | 557 ++------------ src/views/base/user/mobile/MobileUserView.vue | 111 +++ .../wallet/components/WalletAddCardForm.vue | 65 ++ .../base/wallet/composables/useWalletPage.ts | 291 +++++++ .../wallet/composables/useWalletPageData.ts | 187 +++++ .../base/wallet/desktop/DesktopWalletView.vue | 192 +++++ .../wallet/desktop/styles/desktop-wallet.less | 296 +++++++ src/views/base/wallet/index.vue | 726 ++---------------- .../base/wallet/mobile/MobileWalletView.vue | 193 +++++ src/views/login/components/Login.vue | 231 ++++-- src/views/login/components/Register.vue | 157 ++-- src/views/login/composables/useLoginForm.ts | 188 +++++ src/views/login/composables/useLoginPage.ts | 45 ++ .../login/composables/useRegisterForm.ts | 60 ++ src/views/login/desktop/DesktopLoginView.vue | 36 + .../desktop/components/DesktopAuthShell.vue | 79 ++ .../desktop/components/DesktopLoginForm.vue | 204 +++++ .../components/DesktopPwaGuideModal.vue | 66 ++ .../components/DesktopRegisterForm.vue | 144 ++++ .../login/desktop/styles/desktop-auth.less | 490 ++++++++++++ src/views/login/index.vue | 83 +- src/views/login/mobile/MobileLoginView.vue | 37 + src/views/login/shell/LoginPageShell.vue | 24 + uno.config.ts | 5 +- 234 files changed, 18425 insertions(+), 5503 deletions(-) create mode 100644 src/components/SupportContactBar.vue create mode 100644 src/composables/useOnceAsync.ts create mode 100644 src/composables/useProductsCatalog.ts create mode 100644 src/layouts/AppLayoutShell.vue create mode 100644 src/layouts/components/ResponsiveViewPair.vue create mode 100644 src/layouts/composables/useAppLayout.ts create mode 100644 src/layouts/composables/useAppNavigation.ts create mode 100644 src/layouts/composables/useResponsiveLayout.ts create mode 100644 src/layouts/config/navigation.ts create mode 100644 src/layouts/constants.ts create mode 100644 src/layouts/desktop/DesktopAppLayout.vue create mode 100644 src/layouts/desktop/DesktopNavItem.vue create mode 100644 src/layouts/desktop/DesktopSidebar.vue create mode 100644 src/layouts/desktop/desktop-layout.less create mode 100644 src/layouts/desktop/styles/desktop-page-common.less create mode 100644 src/layouts/mobile/MobileAppLayout.vue create mode 100644 src/layouts/mobile/MobileBottomNav.vue create mode 100644 src/layouts/mobile/MobileOverflowMenu.vue create mode 100644 src/layouts/mobile/mobile-layout.less create mode 100644 src/layouts/styles/desktop-shell.less create mode 100644 src/layouts/styles/mobile-frame.less create mode 100644 src/layouts/types.ts create mode 100644 src/utils/persianDigits.ts create mode 100644 src/views/base/about/components/AboutSectionsContent.vue create mode 100644 src/views/base/about/components/AboutSupportActions.vue create mode 100644 src/views/base/about/composables/useAboutPage.ts create mode 100644 src/views/base/about/desktop/DesktopAboutView.vue create mode 100644 src/views/base/about/desktop/styles/desktop-about.less create mode 100644 src/views/base/about/mobile/MobileAboutView.vue create mode 100644 src/views/base/aboutUs/components/AboutUsContentPanel.vue create mode 100644 src/views/base/aboutUs/composables/useAboutUsPage.ts create mode 100644 src/views/base/aboutUs/desktop/DesktopAboutUsView.vue create mode 100644 src/views/base/aboutUs/desktop/styles/desktop-about-us.less create mode 100644 src/views/base/aboutUs/mobile/MobileAboutUsView.vue create mode 100644 src/views/base/address/components/AddressForm.vue create mode 100644 src/views/base/address/components/AddressMobileItem.vue create mode 100644 src/views/base/address/composables/useAddressPage.ts create mode 100644 src/views/base/address/composables/useAddressPageData.ts create mode 100644 src/views/base/address/desktop/DesktopAddressView.vue create mode 100644 src/views/base/address/desktop/styles/desktop-address.less create mode 100644 src/views/base/address/mobile/MobileAddressView.vue create mode 100644 src/views/base/earnMoney/composables/useEarnMoneyPage.ts create mode 100644 src/views/base/earnMoney/desktop/DesktopEarnMoneyView.vue create mode 100644 src/views/base/earnMoney/desktop/styles/desktop-earn-money.less create mode 100644 src/views/base/earnMoney/mobile/MobileEarnMoneyView.vue create mode 100644 src/views/base/educate/components/EducateContentPanel.vue create mode 100644 src/views/base/educate/components/EducateSupportActions.vue create mode 100644 src/views/base/educate/composables/useEducatePage.ts create mode 100644 src/views/base/educate/desktop/DesktopEducateView.vue create mode 100644 src/views/base/educate/desktop/styles/desktop-educate.less create mode 100644 src/views/base/educate/mobile/MobileEducateView.vue create mode 100644 src/views/base/fund/composables/useFundPage.ts create mode 100644 src/views/base/fund/desktop/DesktopFundView.vue create mode 100644 src/views/base/fund/desktop/styles/desktop-fund.less create mode 100644 src/views/base/fund/info/components/FundEditActions.vue create mode 100644 src/views/base/fund/info/components/FundTransactionForm.vue create mode 100644 src/views/base/fund/info/composables/useFundInfoPage.ts create mode 100644 src/views/base/fund/info/desktop/DesktopFundInfoView.vue create mode 100644 src/views/base/fund/info/mobile/MobileFundInfoView.vue create mode 100644 src/views/base/fund/mobile/MobileFundView.vue create mode 100644 src/views/base/fund/newFund/composables/useFundNewPage.ts create mode 100644 src/views/base/fund/newFund/desktop/DesktopFundNewView.vue create mode 100644 src/views/base/fund/newFund/mobile/MobileFundNewView.vue create mode 100644 src/views/base/giftCard/components/GiftCardForm.vue create mode 100644 src/views/base/giftCard/composables/useGiftCardPage.ts create mode 100644 src/views/base/giftCard/desktop/DesktopGiftCardView.vue create mode 100644 src/views/base/giftCard/desktop/styles/desktop-gift-card.less create mode 100644 src/views/base/giftCard/mobile/MobileGiftCardView.vue create mode 100644 src/views/base/gold/desktop/styles/desktop-gold.less create mode 100644 src/views/base/home/components/HomeQuickActionBox.vue create mode 100644 src/views/base/home/composables/useHomePage.ts create mode 100644 src/views/base/home/composables/useHomePageData.ts create mode 100644 src/views/base/home/desktop/HomeDesktopView.vue create mode 100644 src/views/base/home/desktop/components/DesktopAssetsCard.vue create mode 100644 src/views/base/home/desktop/components/DesktopAssetsMetrics.vue create mode 100644 src/views/base/home/desktop/components/DesktopBannersPanel.vue create mode 100644 src/views/base/home/desktop/components/DesktopChartPanel.vue create mode 100644 src/views/base/home/desktop/components/DesktopChartSection.vue create mode 100644 src/views/base/home/desktop/components/DesktopDefaultActions.vue create mode 100644 src/views/base/home/desktop/components/DesktopGaroosiAssets.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeAlerts.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeCard.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeHeader.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeSection.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeShell.vue create mode 100644 src/views/base/home/desktop/components/DesktopHomeTopbar.vue create mode 100644 src/views/base/home/desktop/components/DesktopLivePrice.vue create mode 100644 src/views/base/home/desktop/components/DesktopPriceOverview.vue create mode 100644 src/views/base/home/desktop/components/DesktopPriceRange.vue create mode 100644 src/views/base/home/desktop/components/DesktopQuickActionsGrid.vue create mode 100644 src/views/base/home/desktop/components/DesktopQuickActionsPanel.vue create mode 100644 src/views/base/home/desktop/components/DesktopReferralPanel.vue create mode 100644 src/views/base/home/desktop/layouts/BoursecuDesktopHome.vue create mode 100644 src/views/base/home/desktop/layouts/DefaultDesktopHome.vue create mode 100644 src/views/base/home/desktop/styles/desktop-home.less create mode 100644 src/views/base/home/layouts/HomeLayoutRenderer.vue create mode 100644 src/views/base/home/layouts/configs/boursecu.ts create mode 100644 src/views/base/home/layouts/configs/boursecuQuickActions.ts create mode 100644 src/views/base/home/layouts/configs/default.ts create mode 100644 src/views/base/home/layouts/registry.ts create mode 100644 src/views/base/home/layouts/sections/AssetsSectionBlock.vue create mode 100644 src/views/base/home/layouts/sections/BannersSection.vue create mode 100644 src/views/base/home/layouts/sections/BoursecuQuickActionsSection.vue create mode 100644 src/views/base/home/layouts/sections/CurrentPriceSection.vue create mode 100644 src/views/base/home/layouts/sections/GaroosiAssetsSection.vue create mode 100644 src/views/base/home/layouts/sections/LimitedPriceAlertSection.vue create mode 100644 src/views/base/home/layouts/sections/MainActionsSection.vue create mode 100644 src/views/base/home/layouts/sections/MarketClosedSection.vue create mode 100644 src/views/base/home/layouts/sections/PriceChartSection.vue create mode 100644 src/views/base/home/layouts/sections/PriceStatsSection.vue create mode 100644 src/views/base/home/layouts/sections/ReferralSectionBlock.vue create mode 100644 src/views/base/home/layouts/sections/index.ts create mode 100644 src/views/base/home/layouts/types.ts create mode 100644 src/views/base/home/mobile/MobileHomeView.vue create mode 100644 src/views/base/home/shell/HomePageShell.vue create mode 100644 src/views/base/physicalReceive/components/PhysicalReceiveAddressPicker.vue create mode 100644 src/views/base/physicalReceive/components/PhysicalReceiveCartRow.vue create mode 100644 src/views/base/physicalReceive/composables/useNewPhysicalRequestPage.ts create mode 100644 src/views/base/physicalReceive/composables/usePhysicalReceiveList.ts create mode 100644 src/views/base/physicalReceive/composables/usePhysicalReceiveShell.ts create mode 100644 src/views/base/physicalReceive/desktop/DesktopNewRequestView.vue create mode 100644 src/views/base/physicalReceive/desktop/DesktopPhysicalReceiveChrome.vue create mode 100644 src/views/base/physicalReceive/desktop/DesktopRequestListView.vue create mode 100644 src/views/base/physicalReceive/desktop/styles/desktop-physical-receive.less create mode 100644 src/views/base/physicalReceive/mobile/MobileNewRequestView.vue create mode 100644 src/views/base/physicalReceive/mobile/MobilePhysicalReceiveChrome.vue create mode 100644 src/views/base/physicalReceive/mobile/MobileRequestListView.vue create mode 100644 src/views/base/priceTrigger/components/PriceTriggerForm.vue create mode 100644 src/views/base/priceTrigger/composables/usePriceTriggerPage.ts create mode 100644 src/views/base/priceTrigger/desktop/DesktopPriceTriggerView.vue create mode 100644 src/views/base/priceTrigger/desktop/styles/desktop-price-trigger.less create mode 100644 src/views/base/priceTrigger/mobile/MobilePriceTriggerView.vue create mode 100644 src/views/base/products/composables/useProductsPage.ts create mode 100644 src/views/base/products/composables/useProductsPageData.ts create mode 100644 src/views/base/products/desktop/DesktopProductsView.vue create mode 100644 src/views/base/products/desktop/components/DesktopProductCard.vue create mode 100644 src/views/base/products/desktop/styles/desktop-products.less create mode 100644 src/views/base/products/mobile/MobileProductsView.vue create mode 100644 src/views/base/rules/components/RulesContentPanel.vue create mode 100644 src/views/base/rules/components/RulesSupportActions.vue create mode 100644 src/views/base/rules/composables/useRulesPage.ts create mode 100644 src/views/base/rules/desktop/DesktopRulesView.vue create mode 100644 src/views/base/rules/desktop/styles/desktop-rules.less create mode 100644 src/views/base/rules/mobile/MobileRulesView.vue create mode 100644 src/views/base/rules/permissions/composables/usePermissionsPage.ts create mode 100644 src/views/base/rules/permissions/desktop/DesktopPermissionsView.vue create mode 100644 src/views/base/rules/permissions/desktop/styles/desktop-permissions.less create mode 100644 src/views/base/rules/permissions/mobile/MobilePermissionsView.vue create mode 100644 src/views/base/transactions/BoursecuTransactionsPage.vue create mode 100644 src/views/base/transactions/DefaultTransactionsPage.vue create mode 100644 src/views/base/transactions/components/TransactionDetailPanel.vue create mode 100644 src/views/base/transactions/composables/useTransactionsPage.ts create mode 100644 src/views/base/transactions/composables/useTransactionsPageData.ts create mode 100644 src/views/base/transactions/config/boursecuTabs.ts create mode 100644 src/views/base/transactions/desktop/DesktopBoursecuTransactionsView.vue create mode 100644 src/views/base/transactions/desktop/DesktopDefaultTransactionsView.vue create mode 100644 src/views/base/transactions/desktop/styles/desktop-transactions.less create mode 100644 src/views/base/user/components/UserPasswordForm.vue create mode 100644 src/views/base/user/components/UserProfileForm.vue create mode 100644 src/views/base/user/composables/useUserPage.ts create mode 100644 src/views/base/user/desktop/DesktopUserView.vue create mode 100644 src/views/base/user/desktop/styles/desktop-user.less create mode 100644 src/views/base/user/mobile/MobileUserView.vue create mode 100644 src/views/base/wallet/components/WalletAddCardForm.vue create mode 100644 src/views/base/wallet/composables/useWalletPage.ts create mode 100644 src/views/base/wallet/composables/useWalletPageData.ts create mode 100644 src/views/base/wallet/desktop/DesktopWalletView.vue create mode 100644 src/views/base/wallet/desktop/styles/desktop-wallet.less create mode 100644 src/views/base/wallet/mobile/MobileWalletView.vue create mode 100644 src/views/login/composables/useLoginForm.ts create mode 100644 src/views/login/composables/useLoginPage.ts create mode 100644 src/views/login/composables/useRegisterForm.ts create mode 100644 src/views/login/desktop/DesktopLoginView.vue create mode 100644 src/views/login/desktop/components/DesktopAuthShell.vue create mode 100644 src/views/login/desktop/components/DesktopLoginForm.vue create mode 100644 src/views/login/desktop/components/DesktopPwaGuideModal.vue create mode 100644 src/views/login/desktop/components/DesktopRegisterForm.vue create mode 100644 src/views/login/desktop/styles/desktop-auth.less create mode 100644 src/views/login/mobile/MobileLoginView.vue create mode 100644 src/views/login/shell/LoginPageShell.vue diff --git a/components.d.ts b/components.d.ts index 7dd7195..ef35dfd 100644 --- a/components.d.ts +++ b/components.d.ts @@ -62,11 +62,13 @@ declare module 'vue' { Size: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/size.vue')['default'] StartEnd: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/start-end.vue')['default'] Suffix: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/suffix.vue')['default'] + SupportContactBar: typeof import('./src/components/SupportContactBar.vue')['default'] Switchable: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/switchable.vue')['default'] Text: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/text.vue')['default'] Time: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/time.vue')['default'] TransactionSkeleton: typeof import('./src/components/TransactionSkeleton.vue')['default'] VanActionSheet: typeof import('vant/es')['ActionSheet'] VanDialog: typeof import('vant/es')['Dialog'] + VanField: typeof import('vant/es')['Field'] } } diff --git a/index.html b/index.html index 8e95d78..3ffff25 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,39 @@ + + diff --git a/src/App.vue b/src/App.vue index 2738761..ff2a1ad 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,5 @@