From 972f6ba13ebeb8c4154ab191c84b5ef6ac4bbde8 Mon Sep 17 00:00:00 2001 From: Methapon Metanipat <162551568+Methapon-Frappet@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:02:03 +0700 Subject: [PATCH] feat: menu request list (#75) * feat: i18n * feat: request list * refactor: hide stat transition on app.scss * feat: request list i18n * feat: request list => constants and main page * feat: add store * feat: add fetch data * feat: add utilities fn * feat: add store function / types * refactor: request list type * refactor: request list constants * refactor: quotation card => add customData and badge color props * feat: avatar group components * feat: request list group * refactor: request list => remove tab, add table data * feat: send search query * feat: add parameter * refactor: remove unused function * fix: rename component lits to list * feat: show stats from api * chore: cleanup * refactor: make it type safe * refactor: accept rotate flow id as parameter * feat: use page size component * feat: add component, data display & expansion product * feat: i18n * refactor: constants and request list table * refactor: type code, createdAt, updatedAt * refactor: utils function changThemeMode * feat: request list => view page * refactor: use type instead of infer from value * fix: function getEmployeeName att type * refactor: fetch work list * refactor: loop work list * feat: add i18n duty * feat: add form issue component * feat: add form issue section * fix: store error * refactor: edit by value * refactor: accept basic info from outside instead * feat: add status filter support on fetch * refactor: remove delete button * refactor: wording * feat/fix: request list i18n & constant * feat: document type * feat/refactor: request list => document expansion * refactor: doc expansion use FormGroupHead * refactor: fetch data based on id from route param * refactor: text area disable * feat: properties expansion display (mocking) * refactor: add document at product relation * refactor: edit get value product * feat: get workflow step to show on top * refactor: add type * refactor: add get attachment * refactor: add view attachment * refactor: edit file name * refactor: define props get hide icon * refactor: edit align row * refactor: by value table document * refactor: by value row table * feat: add independent ocr dialog * chore: clean up * refactor: accept more props and small adjustment * fix: error withDefault call * feat: accept default metadata when open * fix: typo * feat: add override hook when finish ocr * feat: reset state on open * feat: detect reader result is actually string * fix: variable name conflict * feat: properties to input component * feat: properties input in properties expansion * feat: properties expansion data (temporary) * refactor: add i18n status work * refactor: edit type work status and add step status * refactor: add edit status work * refactor: edit step work * refactor: properties data type * refactor: filter selected product & specific properties * feat: add emit event * refactor: change variable name for better understanding * refactor: hide step that no properties * refactor: work status type to validate * feat: work status color * refactor: key for filename * refactor: close expansion when change step * refactor: responsive meta data * refactor: product expansion responsive * fix: dark mode step text color * fix: document expansion table no data label * refactor: main page body bordered and overflow hidden * refactor: use utils function instead * refactor: add process * refactor: by value name * refactor: add upload file * refactor: upload file * refactor: by value * fix: option worker type * refactor: fetchRequestAttachment after edit * fix: metadata display * refactor: add class full-height * refactor: edit type * refactor: fetch file * refactor: by value visa * refactor: request list attributes type * fix: properties to input props (placeholder, readonly, disable) * feat: request list properties function * fix: error when no workflow * docs: update comment to fix indent * refactor: step type (attributes) * refactor: add attributes payload on editStatusRequestWork function * feat/refactor: functional form expansion/filter worklist * refactor: set attributes properties after submit * refactor: add request work ready status * feat: request list => form employee component * feat/refactor: form expansion select user/layout * fix: properties readonly --------- Co-authored-by: puriphatt Co-authored-by: Thanaphon Frappet --- public/option/option.json | 6 +- .../FormEmployeePassport.vue | 2 +- src/components/05_quotation/QuotationCard.vue | 35 +- .../08_request-list/DataDisplay.vue | 35 + .../08_request-list/PropertiesToInput.vue | 120 ++++ src/components/BadgeComponent.vue | 14 +- src/components/shared/AvatarGroup.vue | 107 +++ src/components/upload-file/OcrDialog.vue | 140 ++++ .../upload-file/UploadFileGroup.vue | 10 +- src/css/app.scss | 14 + src/css/quasar.variables.scss | 15 +- src/i18n/eng.ts | 53 +- src/i18n/tha.ts | 52 +- src/layouts/DrawerComponent.vue | 18 +- src/pages/03_customer-management/MainPage.vue | 13 - src/pages/03_customer-management/constant.ts | 4 +- src/pages/04_product-service/MainPage.vue | 6 +- .../08_request-list/DocumentExpansion.vue | 608 ++++++++++++++++++ src/pages/08_request-list/FormDuty.vue | 44 ++ src/pages/08_request-list/FormEmployee.vue | 42 ++ src/pages/08_request-list/FormExpansion.vue | 166 +++++ src/pages/08_request-list/FormGroupHead.vue | 12 + src/pages/08_request-list/FormIssue.vue | 61 ++ src/pages/08_request-list/MainPage.vue | 323 ++++++++++ .../08_request-list/ProductExpansion.vue | 241 +++++++ .../08_request-list/PropertiesExpansion.vue | 166 +++++ src/pages/08_request-list/RequestListView.vue | 576 +++++++++++++++++ .../08_request-list/TableRequestList.vue | 270 ++++++++ src/pages/08_request-list/constants.ts | 91 +++ src/pages/08_request-list/form.ts | 17 + src/router/routes.ts | 10 + src/stores/quotations/types.ts | 3 +- src/stores/request-list/index.ts | 273 ++++++++ src/stores/request-list/types.ts | 89 +++ src/stores/utils/index.ts | 37 +- src/utils/mrz.ts | 37 +- 36 files changed, 3653 insertions(+), 57 deletions(-) create mode 100644 src/components/08_request-list/DataDisplay.vue create mode 100644 src/components/08_request-list/PropertiesToInput.vue create mode 100644 src/components/shared/AvatarGroup.vue create mode 100644 src/components/upload-file/OcrDialog.vue create mode 100644 src/pages/08_request-list/DocumentExpansion.vue create mode 100644 src/pages/08_request-list/FormDuty.vue create mode 100644 src/pages/08_request-list/FormEmployee.vue create mode 100644 src/pages/08_request-list/FormExpansion.vue create mode 100644 src/pages/08_request-list/FormGroupHead.vue create mode 100644 src/pages/08_request-list/FormIssue.vue create mode 100644 src/pages/08_request-list/MainPage.vue create mode 100644 src/pages/08_request-list/ProductExpansion.vue create mode 100644 src/pages/08_request-list/PropertiesExpansion.vue create mode 100644 src/pages/08_request-list/RequestListView.vue create mode 100644 src/pages/08_request-list/TableRequestList.vue create mode 100644 src/pages/08_request-list/constants.ts create mode 100644 src/pages/08_request-list/form.ts create mode 100644 src/stores/request-list/index.ts create mode 100644 src/stores/request-list/types.ts diff --git a/public/option/option.json b/public/option/option.json index 2b720eff..200a3a69 100644 --- a/public/option/option.json +++ b/public/option/option.json @@ -38,7 +38,7 @@ }, { "label": "Nationality Verification Group", - "value": "ืืnvg" + "value": "nvg" }, { "label": "Border Pass Group", @@ -1111,10 +1111,10 @@ }, { "label": "กลุ่ม พิสูจน์สัญชาติ", - "value": "ืืnvg" + "value": "nvg" }, { - "label": "กลุ่ม Border pass ", + "label": "กลุ่ม Border pass", "value": "bp" } ], diff --git a/src/components/03_customer-management/FormEmployeePassport.vue b/src/components/03_customer-management/FormEmployeePassport.vue index 090c80dd..8a2830a4 100644 --- a/src/components/03_customer-management/FormEmployeePassport.vue +++ b/src/components/03_customer-management/FormEmployeePassport.vue @@ -423,7 +423,7 @@ watch( class="col-12" :label="$t('customer.table.fullnameEN')" :disable="!readonly" - :model-value="`${(prefixNameOptions.find((v) => v.value === namePrefix) || {}).value || ''} ${firstName || ''} ${lastName || ''}`" + :model-value="`${(prefixNameOptions.find((v) => v.value === namePrefix) || {}).value || ''} ${firstNameEN || ''} ${lastNameEN || ''}`" /> (); defineEmits<{ @@ -52,13 +60,14 @@ const rand = Math.random();