From 55a6e03bcf420f77bb28c46b17e2af6791cbd92d Mon Sep 17 00:00:00 2001 From: Net Date: Wed, 25 Sep 2024 17:34:51 +0700 Subject: [PATCH 01/30] refactor: edit id btn --- src/pages/03_customer-management/MainPage.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index 32faead4..54b057aa 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -45,7 +45,6 @@ import FormEmployeePassport from 'components/03_customer-management/FormEmployee import FormEmployeeVisa from 'components/03_customer-management/FormEmployeeVisa.vue'; import DialogForm from 'components/DialogForm.vue'; import SideMenu from 'components/SideMenu.vue'; -import { AddButton } from 'components/button'; import TableEmpoloyee from 'src/components/03_customer-management/TableEmpoloyee.vue'; import { calculateAge, toISOStringWithTimezone } from 'src/utils/datetime'; import { @@ -71,8 +70,6 @@ import FormEmployeeOther from 'components/03_customer-management/FormEmployeeOth import useOptionStore from 'stores/options'; import { DialogContainer, DialogHeader } from 'components/dialog'; import KebabAction from 'src/components/shared/KebabAction.vue'; -import { group } from 'node:console'; -import { readonly } from 'vue'; const currentSelectedMenu = ref<{ label: string; value: string }>({ label: '', @@ -1336,6 +1333,7 @@ const emptyCreateDialog = ref(false); Date: Wed, 25 Sep 2024 17:47:01 +0700 Subject: [PATCH 02/30] fix(04): service tree view --- .../04_product-service/FormServiceWork.vue | 59 +++++++++++++++- src/components/shared/TreeView.vue | 69 ++++++++++++++++--- src/pages/04_product-service/MainPage.vue | 45 +++++++++++- 3 files changed, 159 insertions(+), 14 deletions(-) diff --git a/src/components/04_product-service/FormServiceWork.vue b/src/components/04_product-service/FormServiceWork.vue index 77b58c25..bbbba391 100644 --- a/src/components/04_product-service/FormServiceWork.vue +++ b/src/components/04_product-service/FormServiceWork.vue @@ -5,17 +5,21 @@ import { moveItemUp, moveItemDown, deleteItem, dialog } from 'stores/utils'; import NoData from 'components/NoData.vue'; import WorkManagementComponent from './WorkManagementComponent.vue'; import AddButton from '../button/AddButton.vue'; -import { WorkItems } from 'stores/product-service/types'; +import { ServiceCreate, WorkItems } from 'stores/product-service/types'; +import TreeView from '../shared/TreeView.vue'; +import { ref } from 'vue'; const { t } = useI18n(); const workItems = defineModel('workItems', { default: [] }); -defineProps<{ +const props = defineProps<{ + service?: ServiceCreate; dense?: boolean; outlined?: boolean; readonly?: boolean; separator?: boolean; + treeView?: boolean; priceDisplay?: { price: boolean; @@ -30,6 +34,22 @@ defineEmits<{ (e: 'workProperties', index: number): void; }>(); +const nodes = ref([ + { + title: props.service?.name, + subtitle: props.service?.code, + selected: false, + children: workItems.value.map((v) => ({ + title: v.name, + subtitle: ' ', + children: v.product.map((x) => ({ + title: x.name, + subtitle: x.code, + })), + })), + }, +]); + function addWork() { workItems.value.push({ id: '', @@ -75,7 +95,7 @@ function confirmDelete(items: unknown[], index: number) { /> -
+
+
+ +
+
import { Icon } from '@iconify/vue'; +import { computed } from 'vue'; type Node = { [key: string]: any; @@ -13,6 +14,8 @@ type Props = { keyTitle?: string; keySubtitle?: string; expandable?: boolean; + hideCheckBox?: boolean; + iconSize?: string; decoration?: { level?: number; bg?: string; @@ -27,6 +30,11 @@ const nodes = defineModel('nodes', { required: true }); const emits = defineEmits<{ (e: 'checked'): void }>(); const dec = props.decoration?.find((v) => v.level === (props.level || 0)); +const maxLevel = computed(() => + props.decoration?.reduce((max, v) => { + return v.level && v.level > max ? v.level : max; + }, 0), +); function recursiveDeselect(node: Node) { if (node.children) { @@ -48,8 +56,22 @@ function toggleExpand(node: Node) { - + -
+
+
+ + +
+ Date: Wed, 25 Sep 2024 17:47:27 +0700 Subject: [PATCH 03/30] refactor: edit id --- src/pages/03_customer-management/MainPage.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index 54b057aa..b7e70296 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -1333,7 +1333,7 @@ const emptyCreateDialog = ref(false); Date: Wed, 25 Sep 2024 17:50:57 +0700 Subject: [PATCH 04/30] refactor: add animation tree view --- src/components/shared/TreeView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/shared/TreeView.vue b/src/components/shared/TreeView.vue index d98a8f99..3db88a5d 100644 --- a/src/components/shared/TreeView.vue +++ b/src/components/shared/TreeView.vue @@ -91,7 +91,7 @@ function toggleExpand(node: Node) {
From 25f11388daf767e08cdaeb0d1832294276c2f326 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 25 Sep 2024 18:01:27 +0700 Subject: [PATCH 05/30] fix: baranch to branch --- src/pages/03_customer-management/MainPage.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index b7e70296..7a34c5aa 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -1333,7 +1333,8 @@ const emptyCreateDialog = ref(false); Date: Wed, 25 Sep 2024 18:05:51 +0700 Subject: [PATCH 06/30] refactor: edit value required --- .../components/employer/EmployerFormAbout.vue | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/pages/03_customer-management/components/employer/EmployerFormAbout.vue b/src/pages/03_customer-management/components/employer/EmployerFormAbout.vue index f74a5025..21256784 100644 --- a/src/pages/03_customer-management/components/employer/EmployerFormAbout.vue +++ b/src/pages/03_customer-management/components/employer/EmployerFormAbout.vue @@ -18,9 +18,7 @@ const props = defineProps<{ const optionStore = useOptionStore(); // PERS -const citizenId = defineModel('citizenId', { - required: true, -}); +const citizenId = defineModel('citizenId', {}); const prefixName = defineModel('prefixName'); const firstName = defineModel('firstName'); const lastName = defineModel('lastName'); @@ -31,18 +29,10 @@ const birthDate = defineModel('birthDate'); // CORP const customerName = defineModel('customerName'); -const legalPersonNo = defineModel('legalPersonNo', { - required: true, -}); -const branchCode = defineModel('branchCode', { - required: true, -}); -const registerName = defineModel('registerName', { - required: true, -}); -const registerNameEN = defineModel('registerNameEN', { - required: true, -}); +const legalPersonNo = defineModel('legalPersonNo', {}); +const branchCode = defineModel('branchCode', {}); +const registerName = defineModel('registerName', {}); +const registerNameEN = defineModel('registerNameEN', {}); const registerDate = defineModel('registerDate'); const authorizedCapital = defineModel('authorizedCapital', { default: '0', @@ -50,9 +40,7 @@ const authorizedCapital = defineModel('authorizedCapital', { // both const telephoneNo = defineModel('telephoneNo'); -const codeCustomer = defineModel('codeCustomer', { - required: true, -}); +const codeCustomer = defineModel('codeCustomer', {}); const prefixNameOptions = ref[]>([]); let prefixNameFilter: ( From 6372ed541840c31d9ee79845a7707d15d342c47e Mon Sep 17 00:00:00 2001 From: Net Date: Wed, 25 Sep 2024 18:06:05 +0700 Subject: [PATCH 07/30] refactor: add form --- src/pages/05_quotation/MainPage.vue | 319 +++++++++++++++++++++++++++- 1 file changed, 316 insertions(+), 3 deletions(-) diff --git a/src/pages/05_quotation/MainPage.vue b/src/pages/05_quotation/MainPage.vue index e1552682..d3bb3c75 100644 --- a/src/pages/05_quotation/MainPage.vue +++ b/src/pages/05_quotation/MainPage.vue @@ -1,22 +1,72 @@