diff --git a/app/components/app/mcu-order/confirmation-info.vue b/app/components/app/mcu-order/confirmation-info.vue new file mode 100644 index 00000000..4f7c9a9d --- /dev/null +++ b/app/components/app/mcu-order/confirmation-info.vue @@ -0,0 +1,20 @@ + + + + + Tanggal + : + {{ recItem.createdAt?.substring(0, 10) }} + + + DPJP + : + {{ recItem.doctor?.employee?.person?.name }} + + \ No newline at end of file diff --git a/app/components/app/mcu-order/detail.vue b/app/components/app/mcu-order/detail.vue index fe161595..8d86a98b 100644 --- a/app/components/app/mcu-order/detail.vue +++ b/app/components/app/mcu-order/detail.vue @@ -10,7 +10,7 @@ const props = defineProps<{ - Order {{ data?.createdAt?.substring(0, 10) }} - {{ data.status_code }} + Order {{ data?.createdAt?.substring(0, 10) }} - {{ data?.status_code }} diff --git a/app/components/content/mcu-order/entry.vue b/app/components/content/mcu-order/entry.vue new file mode 100644 index 00000000..f07310b3 --- /dev/null +++ b/app/components/content/mcu-order/entry.vue @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + pickerDialogOpen = false" class="justify-center" /> + + diff --git a/app/components/content/mcu-order/list.vue b/app/components/content/mcu-order/list.vue new file mode 100644 index 00000000..710a8951 --- /dev/null +++ b/app/components/content/mcu-order/list.vue @@ -0,0 +1,198 @@ + + + + + + + + handleActionRemove(recId, getMyList, toast)" + @cancel="" + > + + + + handleActionSubmit(recId, getMyList, toast)" + @cancel="" + > + + + diff --git a/app/components/content/mcu-order/main.vue b/app/components/content/mcu-order/main.vue new file mode 100644 index 00000000..033d093f --- /dev/null +++ b/app/components/content/mcu-order/main.vue @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/composables/useQueryCRUD.ts b/app/composables/useQueryCRUD.ts index f81649bd..2147b49b 100644 --- a/app/composables/useQueryCRUD.ts +++ b/app/composables/useQueryCRUD.ts @@ -1,6 +1,58 @@ import { computed } from 'vue' import { useRoute, useRouter } from 'vue-router' +export function useQueryCRUD(modeKey: string = 'mode', recordIdKey: string = 'record-id') { + type params = { + mode: string, + recordId: any + } + + const route = useRoute() + const router = useRouter() + + const crudQueryParams = computed ({ + get: () => { + return { + mode: route.query[modeKey] && route.query[modeKey] === 'entry' ? 'entry' : 'list', + recordId: route.query[recordIdKey] + } + }, + set: (val) => { + router.push({ + path: route.path, + query: { + ...route.query, + [modeKey]: val.mode, + [recordIdKey]: val.recordId, + }, + }) + }, + }) + + const goToEntry = (myRecord_id?: any) => { + if(myRecord_id) { + crudQueryParams.value.mode = 'entry' + crudQueryParams.value.recordId = myRecord_id + } else { + crudQueryParams.value.mode = 'entry' + crudQueryParams.value.recordId = undefined + } + } + + const backToList = () => { + delete route.query[recordIdKey] + router.push({ + path: route.path, + query: { + ...route.query, + mode: 'list', + }, + }) + } + + return { crudQueryParams, goToEntry, backToList } +} + export function useQueryCRUDMode(key: string = 'mode') { const route = useRoute() const router = useRouter() @@ -18,7 +70,13 @@ export function useQueryCRUDMode(key: string = 'mode') { }, }) - const goToEntry = () => (mode.value = 'entry') + const goToEntry = (myRecord_id?: any) => { + mode.value = 'entry' + if(myRecord_id) { + myRecord_id.value = myRecord_id + } + } + const backToList = () => { router.push({ path: route.path, @@ -26,7 +84,7 @@ export function useQueryCRUDMode(key: string = 'mode') { ...route.query, mode: 'list', // HAPUS record-id - 'record-id': undefined, + recordIdKey: undefined, }, }) } @@ -54,3 +112,4 @@ export function useQueryCRUDRecordId(key: string = 'record-id') { return { recordId } } + diff --git a/app/models/mcu-order-item.ts b/app/models/mcu-order-item.ts index 67038edf..ece036e4 100644 --- a/app/models/mcu-order-item.ts +++ b/app/models/mcu-order-item.ts @@ -2,16 +2,33 @@ import { type Base, genBase } from "./_base" export interface McuOrderItem extends Base { mcuOrder_id: number - mcuSrc_id: number + mcuSrc_code: string + note?: string examinationDate?: string result?: string status_code?: string } +export interface CreateDto { + mcuOrder_id: number + mcuSrc_code: string + note?: string +} + +export interface ReadList { + 'mcu-order-id'?: number + 'mcu-src-code'?: string + includes?: string +} + +export interface UpdateDto extends CreateDto { + id: number +} + export function genMcuOrderItem(): McuOrderItem { return { ...genBase(), mcuOrder_id: 0, - mcuSrc_id: 0, + mcuSrc_code: '', } } diff --git a/app/models/mcu-order-sub-item.ts b/app/models/mcu-order-sub-item.ts index 271ed424..a64af0d1 100644 --- a/app/models/mcu-order-sub-item.ts +++ b/app/models/mcu-order-sub-item.ts @@ -1,8 +1,8 @@ import { type Base, genBase } from "./_base" export interface McuOrderSubItem extends Base { - mcuSubSrc_id: number mcuOrderItem_id: number + mcuSubSrc_code: string result?: string status_code?: string } @@ -10,7 +10,7 @@ export interface McuOrderSubItem extends Base { export function genMcuOrderSubItem(): McuOrderSubItem { return { ...genBase(), - mcuSubSrc_id: 0, mcuOrderItem_id: 0, + mcuSubSrc_code: '', } } diff --git a/app/services/mcu-order-item.service.ts b/app/services/mcu-order-item.service.ts index b7ffbbfe..4e8c852f 100644 --- a/app/services/mcu-order-item.service.ts +++ b/app/services/mcu-order-item.service.ts @@ -1,13 +1,14 @@ import * as base from './_crud-base' +import * as model from '~/models/mcu-order-item' const path = '/api/v1/mcu-order-item' const name = 'mcu-order-item' -export function create(data: any) { +export function create(data: model.CreateDto) { return base.create(path, data) } -export function getList(params: any = null) { +export function getList(params: model.ReadList | null = null) { return base.getList(path, params) } @@ -15,7 +16,7 @@ export function getDetail(id: number | string, params?: any) { return base.getDetail(path, id, name, params) } -export function update(id: number | string, data: any) { +export function update(id: number | string, data: model.UpdateDto) { return base.update(path, id, data) }