diff --git a/src/components/04_product-service/FormServiceWork.vue b/src/components/04_product-service/FormServiceWork.vue index a07c7654..49b4f96c 100644 --- a/src/components/04_product-service/FormServiceWork.vue +++ b/src/components/04_product-service/FormServiceWork.vue @@ -58,8 +58,8 @@ defineProps<{ defineEmits<{ (e: 'addProduct'): void; - (e: 'deleteWork'): void; - (e: 'deleteProduct'): void; + (e: 'manageWorkName'): void; + (e: 'workProperties'): void; }>(); function addWork() { @@ -116,6 +116,8 @@ function confirmDelete(items: unknown[], index: number) { @move-product-up="moveItemUp" @move-product-down="moveItemDown" @delete-product="confirmDelete" + @manage-work-name="$emit('manageWorkName')" + @work-properties="$emit('workProperties')" > diff --git a/src/components/04_product-service/WorkManagementComponent.vue b/src/components/04_product-service/WorkManagementComponent.vue index 49f282d9..1ad50078 100644 --- a/src/components/04_product-service/WorkManagementComponent.vue +++ b/src/components/04_product-service/WorkManagementComponent.vue @@ -28,6 +28,9 @@ defineEmits<{ (e: 'moveProductUp', items: unknown[], index: number): void; (e: 'moveProductDown', items: unknown[], index: number): void; (e: 'deleteProduct', items: unknown[], index: number): void; + + (e: 'manageWorkName'): void; + (e: 'workProperties'): void; }>(); @@ -61,37 +64,72 @@ defineEmits<{ style="color: hsl(var(--text-mute-2))" @click.stop="$emit('moveWorkDown')" /> - - - - - - - {{ $t('workNo') }} {{ index + 1 }} : - - - + + + + + {{ $t('workNo') }} {{ index + 1 }} : + {{ $t('workName') }} + + + + + + ชื่องาน + + + จัดการ + + + + + + + + {{ 'asd' }} + + + + +import { ref } from 'vue'; + +const text = 'demo text'; +const isEdit = ref(false); + + + + + + + + + + + + + + + + + + + เพิ่มงานใหม่ + + + + + + + + + diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index d99a8cf4..11797881 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -16,6 +16,7 @@ import ProfileUpload from 'src/components/ProfileUpload.vue'; import TotalProductCardComponent from 'components/04_product-service/TotalProductCardComponent.vue'; import FormServiceWork from 'src/components/04_product-service/FormServiceWork.vue'; import ServiceProperties from 'src/components/04_product-service/ServiceProperties.vue'; +import WorkNameManagement from 'src/components/04_product-service/WorkNameManagement.vue'; import useOptionStore from 'src/stores/options'; import { Status } from 'src/stores/types'; @@ -110,8 +111,11 @@ const product = ref(); const service = ref(); const productAndServiceTab = ref('all'); +const manageWorkNameDialog = ref(false); const previousValue = ref(); +const propertiesOption = ref(); + const formDataGroup = ref({ remark: '', detail: '', @@ -528,6 +532,18 @@ async function submitGroup() { clearFormGroup(); } +function openPropertiesDialog(type: 'service' | 'work') { + if (type === 'service') { + propertiesOption.value = + optionStore.globalOption.tha.servicePropertiesField; + } + + if (type === 'work') { + propertiesOption.value = optionStore.globalOption.tha.workPropertiesField; + } + propertiesDialog.value = true; +} + onMounted(async () => { const resStatsGroup = await fetchStatsProductGroup(); const resStatsType = await fetchStatsProductType(); @@ -1378,12 +1394,14 @@ watch(currentStatus, async () => { v-if="currentServiceTab === 'serviceInformation'" dense service - @service-properties="propertiesDialog = true" + @service-properties="openPropertiesDialog('service')" /> @@ -1394,18 +1412,26 @@ watch(currentStatus, async () => { no-footer no-app-box width="75%" - height="1000px" title="Properties" v-model:modal="propertiesDialog" > + + + + +