diff --git a/src/pages/11_credit-note/FormPage.vue b/src/pages/11_credit-note/FormPage.vue index ae336397..98e08ac7 100644 --- a/src/pages/11_credit-note/FormPage.vue +++ b/src/pages/11_credit-note/FormPage.vue @@ -31,6 +31,7 @@ import useOptionStore from 'src/stores/options'; import { dialogWarningClose } from 'src/stores/utils'; import { useI18n } from 'vue-i18n'; import { QForm } from 'quasar'; +import { getName } from 'src/services/keycloak'; const route = useRoute(); const router = useRouter(); @@ -89,13 +90,13 @@ const pageState = reactive({ const formData = ref({ quotationId: '', requestWorkId: [], - remark: '', reason: '', detail: '', paybackType: 'Cash', paybackBank: '', paybackAccount: '', paybackAccountName: '', + remark: '#[quotation-labor]

#[quotation-payment]', }); const formTaskList = ref< @@ -494,6 +495,44 @@ function fileToUrl(file: File) { return URL.createObjectURL(file); } +function storeDataLocal() { + localStorage.setItem( + 'credit-note-preview', + JSON.stringify({ + data: { + ...formData.value, + id: + route.name === 'CreditNoteNew' ? undefined : creditNoteData.value?.id, + customerBranchId: quotationData.value?.customerBranchId, + registeredBranchId: quotationData.value?.registeredBranchId, + }, + meta: { + source: { + code: + route.name === 'CreditNoteNew' ? '-' : creditNoteData.value?.code, + createAt: + route.name === 'CreditNoteNew' + ? Date.now() + : creditNoteData.value?.createdAt, + createBy: creditNoteData.value?.createdBy, + contactName: quotationData.value?.contactName, + contactTel: quotationData.value?.contactTel, + workName: quotationData.value?.workName, + }, + summaryPrice: summaryPrice.value, + taskListGroup: { ...taskListGroup.value }, + agentPrice: quotationData.value?.agentPrice, + + createdBy: getName(), + }, + }), + ); + + const url = new URL('/credit-note/document-view', window.location.origin); + + window.open(url, '_blank'); +} + onMounted(async () => { initTheme(); initLang(); @@ -757,7 +796,7 @@ onMounted(async () => { outlined icon="mdi-play-box-outline" color="207 96% 32%" - @click="console.log('view example')" + @click="storeDataLocal()" > {{ $t('general.view', { msg: $t('general.example') }) }} diff --git a/src/pages/11_credit-note/document-view/BankComponents.vue b/src/pages/11_credit-note/document-view/BankComponents.vue new file mode 100644 index 00000000..3f6396c4 --- /dev/null +++ b/src/pages/11_credit-note/document-view/BankComponents.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/pages/11_credit-note/document-view/MainPage.vue b/src/pages/11_credit-note/document-view/MainPage.vue new file mode 100644 index 00000000..5c2aae4d --- /dev/null +++ b/src/pages/11_credit-note/document-view/MainPage.vue @@ -0,0 +1,638 @@ + + + + + diff --git a/src/pages/11_credit-note/document-view/ViewFooter.vue b/src/pages/11_credit-note/document-view/ViewFooter.vue new file mode 100644 index 00000000..fc9a34a5 --- /dev/null +++ b/src/pages/11_credit-note/document-view/ViewFooter.vue @@ -0,0 +1,98 @@ + + + + diff --git a/src/pages/11_credit-note/document-view/ViewHeader.vue b/src/pages/11_credit-note/document-view/ViewHeader.vue new file mode 100644 index 00000000..71cce1cc --- /dev/null +++ b/src/pages/11_credit-note/document-view/ViewHeader.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/src/pages/11_credit-note/document-view/ViewPdf.vue b/src/pages/11_credit-note/document-view/ViewPdf.vue new file mode 100644 index 00000000..f800e790 --- /dev/null +++ b/src/pages/11_credit-note/document-view/ViewPdf.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/pages/11_credit-note/expansion/RemarkExpansion.vue b/src/pages/11_credit-note/expansion/RemarkExpansion.vue new file mode 100644 index 00000000..d33fcf73 --- /dev/null +++ b/src/pages/11_credit-note/expansion/RemarkExpansion.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/router/routes.ts b/src/router/routes.ts index cc44863b..dee71a15 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -173,6 +173,11 @@ const routes: RouteRecordRaw[] = [ name: 'CreditNoteView', component: () => import('pages/11_credit-note/FormPage.vue'), }, + { + path: '/credit-note/document-view', + name: 'CreditNoteDocumentView', + component: () => import('pages/11_credit-note/document-view/MainPage.vue'), + }, { path: '/receipt/:id', name: 'receiptform', diff --git a/src/stores/credit-note/types.ts b/src/stores/credit-note/types.ts index f1480c94..46267c36 100644 --- a/src/stores/credit-note/types.ts +++ b/src/stores/credit-note/types.ts @@ -5,7 +5,6 @@ import { CreatedBy } from '../types'; export type CreditNotePayload = { quotationId: string; requestWorkId: string[]; - remark?: string; reason: string; detail: string; paybackType: 'BankTransfer' | 'Cash'; @@ -23,7 +22,6 @@ export type CreditNote = { quotationId: string; quotation: QuotationFull; requestWork: RequestWork[]; - remark?: string; reason: string; detail: string; paybackType: 'BankTransfer' | 'Cash';