diff --git a/public/img-table-dark.png b/public/img-table-dark.png new file mode 100644 index 00000000..76bc34c7 Binary files /dev/null and b/public/img-table-dark.png differ diff --git a/public/img-table-light.png b/public/img-table-light.png new file mode 100644 index 00000000..19747e12 Binary files /dev/null and b/public/img-table-light.png differ diff --git a/src/components/01_branch-management/BtnAddComponet.vue b/src/components/01_branch-management/BtnAddComponet.vue index c4f4e699..1a864b1b 100644 --- a/src/components/01_branch-management/BtnAddComponet.vue +++ b/src/components/01_branch-management/BtnAddComponet.vue @@ -8,6 +8,7 @@ defineProps<{
-import { ref } from 'vue'; +import { ref, watch } from 'vue'; import { useRouter } from 'vue-router'; +import { useI18n } from 'vue-i18n'; + +const { t, locale } = useI18n(); const router = useRouter(); const currentRoute = ref(''); -const labelMenu: { - label: string; - icon: string; - route: string; -}[] = [ - { label: 'Dashboard', icon: 'img:/file-account-outline.png', route: '' }, + +const labelMenu = ref<{ label: string; icon: string; route: string }[]>([ { - label: 'จัดการสาขา', + label: 'drawerDashboard', + icon: 'img:/file-account-outline.png', + route: '', + }, + { + label: 'drawerBranchManagement', icon: 'mdi-sitemap-outline', route: '/branch-management', }, { - label: 'จัดการบุคลากร', - icon: 'mdi-account-settings-outline', + label: 'drawerPersonnelManagement', + icon: 'mdi:account-settings-outline', route: '/personnel-management', }, - { label: 'จัดการลูกค้า', icon: 'mdi-account-settings-outline', route: '' }, - { label: 'สินค้าและบริการ', icon: 'mdi-package-variant', route: '' }, - { label: 'ใบเสนอราคา', icon: 'mdi-package-variant', route: '' }, - { label: 'รายการคำขอ', icon: 'mdi-package-variant', route: '' }, - { label: 'ใบสั่งงาน', icon: 'mdi-package-variant', route: '' }, - { label: 'ใบรับสินค้า', icon: 'mdi-package-variant', route: '' }, - { label: 'รายการทางบัญชี', icon: 'mdi-account-cash-outline', route: '' }, - { label: 'รายงาน', icon: 'mdi-file-chart-outline', route: '' }, -]; + { + label: 'drawerCustomerManagement', + icon: 'mdi-account-settings-outline', + route: '', + }, + { + label: 'drawerProductsAndServices', + icon: 'raphael:package', + route: '', + }, + { label: 'drawerQuotation', icon: 'raphael:package', route: '' }, + { label: 'drawerRequestList', icon: 'raphael:package', route: '' }, + { label: 'drawerWorkOrder', icon: 'raphael:package', route: '' }, + { label: 'drawerInvoice', icon: 'raphael:package', route: '' }, + { + label: 'drawerAccountingLedger', + icon: 'mdi-account-cash-outline', + route: '', + }, + { label: 'drawerReport', icon: 'mdi-file-chart-outline', route: '' }, +]); const leftDrawerOpen = defineModel('leftDrawerOpen', { default: false, @@ -70,9 +86,10 @@ function navigateTo(label: string, destination: string) {
- + + - {{ v.label }} + {{ $t(v.label) }} diff --git a/src/css/app.scss b/src/css/app.scss index be2b6fc4..e0c5fb80 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -4,19 +4,24 @@ @import 'open-props/shadows'; @import 'open-props/zindex'; +:root { + --_bg-box-content: var(--blue-5); + --_color-box-content-text: var(--_bg-box-content); + --_bg-box-content-text: white; + --_bg-tooltip-branch: var(--indigo-0); + --_bg-tooltip-branch-arrow: var(--_bg-tooltip-branch); +} + html { --brand-1: #035aa1; --brand-2: #f50000; - --border-color: var(--gray-4); - --foreground: black; --background: var(--gray-1); --surface-0: var(--background); --surface-1: white; --surface-2: var(--gray-1); --surface-3: var(--gray-2); - color: var(--foreground); background-color: var(--background); } @@ -24,9 +29,7 @@ html { :where(.dark, .body--dark) { --brand-1: var(--blue-7); --brand-2: #f50000; - --border-color: var(--gray-8); - --foreground: white; --background: var(--gray-10); --surface-0: var(--background); diff --git a/src/i18n/en-US/drawer-component.ts b/src/i18n/en-US/drawer-component.ts new file mode 100644 index 00000000..b511b0ed --- /dev/null +++ b/src/i18n/en-US/drawer-component.ts @@ -0,0 +1,13 @@ +export default { + drawerDashboard: 'Dashboard', + drawerBranchManagement: 'Branch Management', + drawerPersonnelManagement: 'Personnel Management', + drawerCustomerManagement: 'Customer Management', + drawerProductsAndServices: 'Products and Services', + drawerQuotation: 'Quotation', + drawerRequestList: 'Request List', + drawerWorkOrder: 'Work Order', + drawerInvoice: 'Invoice', + drawerAccountingLedger: 'Accounting Ledger', + drawerReport: 'Report', +}; diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index 64c0e5cf..d7f1fb3c 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -1,5 +1,6 @@ // This is just an example, // so you can safely delete all default props below +import drawerComponent from './drawer-component'; export default { ok: 'Confirm', @@ -9,4 +10,5 @@ export default { search: 'Search', download: 'Download', save: 'Save', + ...drawerComponent, }; diff --git a/src/i18n/th-th/drawer-component.ts b/src/i18n/th-th/drawer-component.ts new file mode 100644 index 00000000..80cb7c46 --- /dev/null +++ b/src/i18n/th-th/drawer-component.ts @@ -0,0 +1,13 @@ +export default { + drawerDashboard: 'Dashboard', + drawerBranchManagement: 'การจัดการสาขา', + drawerPersonnelManagement: 'จัดการบุคลากร', + drawerCustomerManagement: 'จัดการลูกค้า', + drawerProductsAndServices: 'สินค้าและบริการ', + drawerQuotation: 'ใบเสนอราคา', + drawerRequestList: 'รายการคําขอ', + drawerWorkOrder: 'ใบสั่งงาน', + drawerInvoice: 'ใบรับสินค้า', + drawerAccountingLedger: 'รายการทางบัญชี', + drawerReport: 'รายงาน', +}; diff --git a/src/i18n/th-th/index.ts b/src/i18n/th-th/index.ts index 2b72d1bf..75e5d2ea 100644 --- a/src/i18n/th-th/index.ts +++ b/src/i18n/th-th/index.ts @@ -1,3 +1,5 @@ +import drawerComponent from './drawer-component'; + export default { ok: 'ยืนยัน', cancel: 'ยกเลิก', @@ -6,4 +8,5 @@ export default { search: 'ค้นหา', download: 'ดาวน์โหลด', save: 'บันทึก', + ...drawerComponent, }; diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 69a8623c..ed442512 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -3,6 +3,7 @@ import { ref } from 'vue'; import { storeToRefs } from 'pinia'; import { useQuasar } from 'quasar'; import { getName, getRole, logout } from 'src/services/keycloak'; +import { useI18n } from 'vue-i18n'; import useLoader from 'stores/loader'; import DrawerComponent from 'components/DrawerComponent.vue'; @@ -24,10 +25,21 @@ const $q = useQuasar(); const loaderStore = useLoader(); const { visible } = storeToRefs(loaderStore); +const { locale } = useI18n({ useScope: 'global' }); const leftDrawerOpen = ref($q.screen.gt.sm); const filterUnread = ref(false); const unread = ref(1); + +const currentLanguage = ref('ไทย'); +const language: { + value: string; + label: string; +}[] = [ + { value: 'th-th', label: 'ไทย' }, + { value: 'en-US', label: 'English' }, +]; + const notiOpen = ref(false); const notiMenu = ref([ { @@ -255,12 +267,42 @@ function doLogout() { style="color: var(--gray-6)" @click="$q.dark.toggle()" /> + + + + + + + {{ v.label }} + + + + +
- + diff --git a/src/pages/01_branch-management/MainPage.vue b/src/pages/01_branch-management/MainPage.vue index 42ad0978..dc023d8c 100644 --- a/src/pages/01_branch-management/MainPage.vue +++ b/src/pages/01_branch-management/MainPage.vue @@ -9,17 +9,46 @@ import AppBox from 'components/app/AppBox.vue';
- - test - +
+
+ + +
+ +
+
+
ยังไม่มีสำนักงานใหญ่
+
+
+ คลิก + เพื่อสร้างสำนักงานใหญ่ +
+
+
+
+
+
+
+