diff --git a/.env.example b/.env.example deleted file mode 100755 index b8ca0df..0000000 --- a/.env.example +++ /dev/null @@ -1 +0,0 @@ -VITE_API_BASE_URL= diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 38ba05d..7d4b75e 100755 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -509,6 +509,7 @@ declare module 'vue' { readonly unrefElement: UnwrapRef readonly until: UnwrapRef readonly urlValidator: UnwrapRef + readonly useAbility: UnwrapRef readonly useAbs: UnwrapRef readonly useActiveElement: UnwrapRef readonly useAnimate: UnwrapRef @@ -852,6 +853,7 @@ declare module '@vue/runtime-core' { readonly unrefElement: UnwrapRef readonly until: UnwrapRef readonly urlValidator: UnwrapRef + readonly useAbility: UnwrapRef readonly useAbs: UnwrapRef readonly useActiveElement: UnwrapRef readonly useAnimate: UnwrapRef diff --git a/index.html b/index.html index 53f9e32..cb7e595 100755 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - Vuexy - Vuejs Admin Dashboard Template + HelpDesk Web POS diff --git a/package.json b/package.json index 7b08a17..f05270a 100755 --- a/package.json +++ b/package.json @@ -31,6 +31,8 @@ "apexcharts-clevision": "^3.28.5", "chart.js": "^4.4.0", "cookie-es": "^1.0.0", + "date-fns": "^3.0.6", + "export-from-json": "^1.7.4", "jwt-decode": "^3.1.2", "mapbox-gl": "2.15.0", "ofetch": "^1.3.3", @@ -133,4 +135,4 @@ "msw": { "workerDirectory": "public" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a2593cd..fc00613 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,6 +67,12 @@ dependencies: cookie-es: specifier: ^1.0.0 version: 1.0.0 + date-fns: + specifier: ^3.0.6 + version: 3.0.6 + export-from-json: + specifier: ^1.7.4 + version: 1.7.4 jwt-decode: specifier: ^3.1.2 version: 3.1.2 @@ -3198,6 +3204,10 @@ packages: /dash-get@1.0.2: resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} + /date-fns@3.0.6: + resolution: {integrity: sha512-W+G99rycpKMMF2/YD064b2lE7jJGUe+EjOES7Q8BIGY8sbNdbgcs9XFTZwvzc9Jx1f3k7LB7gZaZa7f8Agzljg==} + dev: false + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -4109,6 +4119,10 @@ packages: strip-final-newline: 3.0.0 dev: true + /export-from-json@1.7.4: + resolution: {integrity: sha512-FjmpluvZS2PTYyhkoMfQoyEJMfe2bfAyNpa5Apa6C9n7SWUWyJkG/VFnzERuj3q9Jjo3iwBjwVsDQ7Z7sczthA==} + dev: false + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} diff --git a/src/@core/initCore.ts b/src/@core/initCore.ts index 2cf2ecf..2b5d888 100755 --- a/src/@core/initCore.ts +++ b/src/@core/initCore.ts @@ -1,8 +1,10 @@ import { useStorage } from '@vueuse/core' +import flatpickr from 'flatpickr' +import { French } from 'flatpickr/dist/l10n/fr' import { useTheme } from 'vuetify' -import { useConfigStore } from '@core/stores/config' -import { cookieRef, namespaceConfig } from '@layouts/stores/config' import { themeConfig } from '@themeConfig' +import { cookieRef, namespaceConfig } from '@layouts/stores/config' +import { useConfigStore } from '@core/stores/config' const _syncAppRtl = () => { const configStore = useConfigStore() @@ -14,6 +16,15 @@ const _syncAppRtl = () => { if (locale.value !== storedLang.value && storedLang.value) locale.value = storedLang.value + if (locale.value === 'fr') { + if (flatpickr.l10ns.fr) + flatpickr.localize(French) + } + else { + if (flatpickr.l10ns.en) + flatpickr.localize(flatpickr.l10ns.en) + } + // watch and change lang attribute of html on language change watch( locale, @@ -25,6 +36,15 @@ const _syncAppRtl = () => { // Store selected language in cookie storedLang.value = val as string + if (storedLang.value === 'fr') { + if (flatpickr.l10ns.fr) + flatpickr.localize(flatpickr.l10ns.fr) + } + else { + if (flatpickr.l10ns.en) + flatpickr.localize(flatpickr.l10ns.en) + } + // set isAppRtl value based on selected language if (themeConfig.app.i18n.langConfig && themeConfig.app.i18n.langConfig.length) { themeConfig.app.i18n.langConfig.forEach(lang => { diff --git a/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png b/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png deleted file mode 100755 index be1b316..0000000 Binary files a/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png and /dev/null differ diff --git a/src/assets/images/misc/3d-space-rocket-with-smoke.png b/src/assets/images/misc/3d-space-rocket-with-smoke.png deleted file mode 100755 index 6b94475..0000000 Binary files a/src/assets/images/misc/3d-space-rocket-with-smoke.png and /dev/null differ diff --git a/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png b/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png deleted file mode 100755 index 5d1fff3..0000000 Binary files a/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png and /dev/null differ diff --git a/src/assets/images/misc/fleet-car.png b/src/assets/images/misc/fleet-car.png deleted file mode 100755 index b12f177..0000000 Binary files a/src/assets/images/misc/fleet-car.png and /dev/null differ diff --git a/src/assets/images/misc/remote_128.png b/src/assets/images/misc/remote_128.png new file mode 100644 index 0000000..8088b45 Binary files /dev/null and b/src/assets/images/misc/remote_128.png differ diff --git a/src/assets/images/misc/vnc_128.png b/src/assets/images/misc/vnc_128.png new file mode 100644 index 0000000..57f195d Binary files /dev/null and b/src/assets/images/misc/vnc_128.png differ diff --git a/src/assets/images/misc/vnc_256.png b/src/assets/images/misc/vnc_256.png new file mode 100644 index 0000000..4a9c6c5 Binary files /dev/null and b/src/assets/images/misc/vnc_256.png differ diff --git a/src/assets/images/misc/vnc_512.png b/src/assets/images/misc/vnc_512.png new file mode 100644 index 0000000..1dcd2f2 Binary files /dev/null and b/src/assets/images/misc/vnc_512.png differ diff --git a/src/assets/styles/styles.scss b/src/assets/styles/styles.scss index 3118a33..ca6a10c 100755 --- a/src/assets/styles/styles.scss +++ b/src/assets/styles/styles.scss @@ -1 +1,4 @@ // Write your overrides +.dt-row-striped tr:nth-of-type(even) { + background-color: #f6f2f28d; +} diff --git a/src/composables/useApi.ts b/src/composables/useApi.ts index 4ec2f82..af9ab8b 100755 --- a/src/composables/useApi.ts +++ b/src/composables/useApi.ts @@ -2,7 +2,7 @@ import { createFetch } from '@vueuse/core' import { destr } from 'destr' export const useApi = createFetch({ - baseUrl: import.meta.env.VITE_API_BASE_URL || '/api', + baseUrl: import.meta.env.VITE_API_BASE_URL, fetchOptions: { headers: { Accept: 'application/json', diff --git a/src/layouts/components/Footer.vue b/src/layouts/components/Footer.vue index e8c14ca..78f6a16 100755 --- a/src/layouts/components/Footer.vue +++ b/src/layouts/components/Footer.vue @@ -12,26 +12,11 @@ class="mx-1" /> By Pixinvent - - - - License - More Themes - Documentation + >Inetum diff --git a/src/layouts/components/UserProfile.vue b/src/layouts/components/UserProfile.vue index 6f58f09..0d5cfbe 100755 --- a/src/layouts/components/UserProfile.vue +++ b/src/layouts/components/UserProfile.vue @@ -1,5 +1,24 @@ - John Doe + {{ useUserStore.username }} - Admin + {{ useUserStore.role }} - - - - - Profile - - - - - - - Settings - - - - - - - Pricing - - - - - - - FAQ - - - - - - + diff --git a/src/pages/login.vue b/src/pages/login.vue index 7532cd2..2d553bb 100755 --- a/src/pages/login.vue +++ b/src/pages/login.vue @@ -1,5 +1,6 @@ + diff --git a/src/views/pages/store/view/StoreTabAdmin.vue b/src/views/pages/store/view/StoreTabAdmin.vue new file mode 100644 index 0000000..a15257d --- /dev/null +++ b/src/views/pages/store/view/StoreTabAdmin.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/views/pages/store/view/StoreTabAdminH.vue b/src/views/pages/store/view/StoreTabAdminH.vue new file mode 100755 index 0000000..e170f44 --- /dev/null +++ b/src/views/pages/store/view/StoreTabAdminH.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/pages/store/view/StoreTabAdminHsequence.vue b/src/views/pages/store/view/StoreTabAdminHsequence.vue new file mode 100644 index 0000000..a52d500 --- /dev/null +++ b/src/views/pages/store/view/StoreTabAdminHsequence.vue @@ -0,0 +1,171 @@ + + + diff --git a/src/views/pages/store/view/StoreTabAdminHsignature.vue b/src/views/pages/store/view/StoreTabAdminHsignature.vue new file mode 100644 index 0000000..3245bbb --- /dev/null +++ b/src/views/pages/store/view/StoreTabAdminHsignature.vue @@ -0,0 +1,172 @@ + + + diff --git a/src/views/pages/store/view/StoreTabGeneral.vue b/src/views/pages/store/view/StoreTabGeneral.vue new file mode 100644 index 0000000..c4796a1 --- /dev/null +++ b/src/views/pages/store/view/StoreTabGeneral.vue @@ -0,0 +1,231 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItem.vue b/src/views/pages/store/view/StoreTabItem.vue new file mode 100644 index 0000000..2df56e4 --- /dev/null +++ b/src/views/pages/store/view/StoreTabItem.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItemH.vue b/src/views/pages/store/view/StoreTabItemH.vue new file mode 100755 index 0000000..1593783 --- /dev/null +++ b/src/views/pages/store/view/StoreTabItemH.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItemHitem.vue b/src/views/pages/store/view/StoreTabItemHitem.vue new file mode 100644 index 0000000..1f6a28e --- /dev/null +++ b/src/views/pages/store/view/StoreTabItemHitem.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItemHoption.vue b/src/views/pages/store/view/StoreTabItemHoption.vue new file mode 100644 index 0000000..ba5eba8 --- /dev/null +++ b/src/views/pages/store/view/StoreTabItemHoption.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItemHprice.vue b/src/views/pages/store/view/StoreTabItemHprice.vue new file mode 100644 index 0000000..d2f12ea --- /dev/null +++ b/src/views/pages/store/view/StoreTabItemHprice.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/views/pages/store/view/StoreTabItemHstock.vue b/src/views/pages/store/view/StoreTabItemHstock.vue new file mode 100644 index 0000000..5562dfe --- /dev/null +++ b/src/views/pages/store/view/StoreTabItemHstock.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/pages/store/view/StoreTabLog.vue b/src/views/pages/store/view/StoreTabLog.vue new file mode 100644 index 0000000..534af72 --- /dev/null +++ b/src/views/pages/store/view/StoreTabLog.vue @@ -0,0 +1,325 @@ + + + diff --git a/src/views/pages/store/view/StoreTabRemote.vue b/src/views/pages/store/view/StoreTabRemote.vue new file mode 100644 index 0000000..66e2862 --- /dev/null +++ b/src/views/pages/store/view/StoreTabRemote.vue @@ -0,0 +1,136 @@ + + + diff --git a/themeConfig.ts b/themeConfig.ts index 311a4b6..94e36b0 100755 --- a/themeConfig.ts +++ b/themeConfig.ts @@ -10,14 +10,14 @@ import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layo export const { themeConfig, layoutConfig } = defineThemeConfig({ app: { - title: 'vuexy', + title: 'hdpos', logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }), contentWidth: ContentWidth.Boxed, - contentLayoutNav: AppContentLayoutNav.Vertical, + contentLayoutNav: AppContentLayoutNav.Horizontal, overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/ i18n: { - enable: false, - defaultLocale: 'en', + enable: true, + defaultLocale: 'fr', langConfig: [ { label: 'English', diff --git a/tsconfig.json b/tsconfig.json index 5d17563..c257235 100755 --- a/tsconfig.json +++ b/tsconfig.json @@ -45,6 +45,9 @@ ], "@api-utils/*": [ "./src/plugins/fake-api/utils/*" + ], + "@stores/*": [ + "./src/stores/*" ] }, "lib": [ diff --git a/typed-router.d.ts b/typed-router.d.ts index a1cb23b..2c1f502 100755 --- a/typed-router.d.ts +++ b/typed-router.d.ts @@ -41,8 +41,11 @@ declare module 'vue-router/auto/routes' { export interface RouteNamedMap { 'root': RouteRecordInfo<'root', '/', Record, Record>, '$error': RouteRecordInfo<'$error', '/:error(.*)', { error: ParamValue }, { error: ParamValue }>, + 'flux-bl-not-sent': RouteRecordInfo<'flux-bl-not-sent', '/flux/bl/not_sent', Record, Record>, 'login': RouteRecordInfo<'login', '/login', Record, Record>, - 'second-page': RouteRecordInfo<'second-page', '/second-page', Record, Record>, + 'store-details': RouteRecordInfo<'store-details', '/store/details', Record, Record>, + 'store-list': RouteRecordInfo<'store-list', '/store/list', Record, Record>, + 'xadmin-log': RouteRecordInfo<'xadmin-log', '/xadmin/log', Record, Record>, } } diff --git a/vite.config.ts b/vite.config.ts index d8f2a31..ac8766c 100755 --- a/vite.config.ts +++ b/vite.config.ts @@ -89,6 +89,7 @@ export default defineConfig({ 'apexcharts': fileURLToPath(new URL('node_modules/apexcharts-clevision', import.meta.url)), '@db': fileURLToPath(new URL('./src/plugins/fake-api/handlers/', import.meta.url)), '@api-utils': fileURLToPath(new URL('./src/plugins/fake-api/utils/', import.meta.url)), + '@stores': fileURLToPath(new URL('./src/stores/', import.meta.url)), }, }, build: {