diff --git a/src/pages/09_task-order/document_view/MainPage.vue b/src/pages/09_task-order/document_view/MainPage.vue index 7e91b4a2..b3ae7ce5 100644 --- a/src/pages/09_task-order/document_view/MainPage.vue +++ b/src/pages/09_task-order/document_view/MainPage.vue @@ -28,6 +28,7 @@ const route = useRoute(); const taskOrder = useTaskOrderStore(); const configStore = useConfigStore(); const config = storeToRefs(configStore).data; +const viewType = ref<'docOrder' | 'docReceive'>('docOrder'); type Data = TaskOrder; @@ -106,6 +107,7 @@ const STORAGE_KEY = 'task-order-preview'; onMounted(async () => { if (route.params['id'] && typeof route.params['id'] === 'string') { + viewType.value = route.name as 'docOrder' | 'docReceive'; const jsonObject = await taskOrder.getTaskOrderById(route.params['id']); if (!jsonObject) return; @@ -133,7 +135,7 @@ onMounted(async () => { const taskListGroup = data.value?.taskList.reduce< { product: RequestWork['productService']['product']; - list: RequestWork[]; + list: (RequestWork & { _status: TaskStatus })[]; }[] >((acc, curr) => { if ( @@ -143,21 +145,25 @@ onMounted(async () => { return acc; } - const task = curr.requestWorkStep; + const step = curr.requestWorkStep; - if (!task) return acc; + if (!step) return acc; - if (task.requestWork) { + if (step.requestWork) { let exist = acc.find( - (item) => task.requestWork.productService.productId == item.product.id, + (item) => step.requestWork.productService.productId == item.product.id, ); + const requestWork = Object.assign(step.requestWork, { + _status: curr.taskStatus, + }); + if (exist) { - exist.list.push(task.requestWork); + exist.list.push(requestWork); } else { acc.push({ - product: task.requestWork.productService.product, - list: [task.requestWork], + product: step.requestWork.productService.product, + list: [requestWork], }); } } @@ -167,15 +173,23 @@ onMounted(async () => { product.value = []; summaryPrice.value = taskListGroup - .map((v) => ({ - product: v.product, - pricePerUnit: v.product.serviceCharge, - discount: - data.value?.taskProduct.find( - ({ productId }) => productId === v.product.id, - )?.discount || 0, - amount: v.list.length, - })) + .flatMap((v) => { + const list = v.list.filter( + (item) => item._status === TaskStatus.Complete, + ); + if (viewType.value === 'docReceive' && list.length === 0) { + return []; + } + return { + product: v.product, + pricePerUnit: v.product.serviceCharge, + discount: + data.value?.taskProduct.find( + ({ productId }) => productId === v.product.id, + )?.discount || 0, + amount: list.length, + }; + }) .reduce( (a, c) => { const priceNoVat = c.product.vatIncluded @@ -225,10 +239,17 @@ function print() {
-
+
- {{ $t('taskOrder.goodReceipt') }} + {{ + viewType === 'docReceive' + ? $t('taskOrder.goodReceipt') + : $t('preview.taskOrder') + }}
@@ -87,7 +92,11 @@ defineProps<{
- {{ $t('general.itemNo', { msg: `${$t('preview.taskOrder')}` }) }} + {{ + $t('general.itemNo', { + msg: ` ${viewType === 'docReceive' ? $t('taskOrder.goodReceipt') : $t('preview.taskOrder')}`, + }) + }}
{{ details.code }}
diff --git a/src/pages/09_task-order/order_view/MainPage.vue b/src/pages/09_task-order/order_view/MainPage.vue index acb7def2..d15f1320 100644 --- a/src/pages/09_task-order/order_view/MainPage.vue +++ b/src/pages/09_task-order/order_view/MainPage.vue @@ -15,13 +15,7 @@ import AdditionalFileExpansion from '../expansion/AdditionalFileExpansion.vue'; import RemarkExpansion from '../expansion/RemarkExpansion.vue'; import InfoMessengerExpansion from '../expansion/receive/InfoMessengerExpansion.vue'; import TableEmployee from '../TableEmployee.vue'; -import { - SaveButton, - CancelButton, - MainButton, - UndoButton, - EditButton, -} from 'src/components/button'; +import { SaveButton, MainButton, EditButton } from 'src/components/button'; import FormGroupHead from 'src/pages/08_request-list/FormGroupHead.vue'; import FailRemarkDialog from '../receive_view/FailRemarkDialog.vue'; @@ -589,7 +583,7 @@ watch([currentFormData.value.taskStatus], () => { }); function viewDocument(id: string) { - window.open(`/task-order/${id}/doc`, '_blank'); + window.open(`/task-order/${id}/doc-prouct-order`, '_blank'); }