jws-frontend/src/pages/03_customer-management/constant.ts
Methapon Metanipat 972f6ba13e
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 <puriphat@frappet.com>
Co-authored-by: Thanaphon Frappet <thanaphon@frappet.com>
2024-11-22 18:02:03 +07:00

335 lines
6 KiB
TypeScript

import { QTableProps } from 'quasar';
export const dialogCreateCustomerItem = [
{
icon: 'mdi:office-building',
text: 'customer.employerLegalEntity',
iconColor: '--purple-10',
color: 'var(--purple-8-hsl)',
},
{
icon: 'heroicons:user-solid',
text: 'customer.employerNaturalPerson',
iconColor: '--green-11',
color: 'var(--green-9-hsl)',
},
];
export const formMenuIcon = <
{ icon: string; color: string; bgColor: string }[]
>[
{
icon: 'mdi-office-building-outline',
color: 'hsl(var(--info-bg))',
bgColor: 'var(--surface-1)',
},
{
icon: 'mdi-briefcase-outline',
color: 'hsl(var(--info-bg))',
bgColor: 'var(--surface-1)',
},
];
export const countryCode = [
{
label: 'thai',
value: 'th',
},
{
label: 'myanmar',
value: 'mm',
},
{
label: 'laos',
value: 'lo',
},
{
label: 'cambodian',
value: 'kh',
},
{
label: 'vietnam',
value: 'vn',
},
{
label: 'philippines',
value: 'ph',
},
{
label: 'china',
value: 'cn',
},
];
export const uploadFileListCustomer: {
label: string;
value: string;
group: string;
_meta?: Record<string, any>;
}[] = [
{
label: 'customer.typeFile.citizenId',
value: 'citizen',
group: 'citizen',
},
{
label: 'customer.typeFile.registrationBook',
value: 'attachment',
group: 'houseRegistration',
},
{
label: 'customer.typeFile.houseMap',
value: 'attachment',
group: 'vatRegistration',
},
{
label: 'customer.typeFile.businessRegistration',
group: 'commercialRegistration',
value: 'attachment',
},
{
label: 'customer.typeFile.dbdCertificate',
group: 'powerOfAttorney',
value: 'attachment',
},
{
label: 'customer.typeFile.vatRegistrationCertificate',
group: 'vatRegistrationCertificate',
value: 'attachment',
},
{
label: 'customer.typeFile.powerOfAttorney',
group: 'powerOfAttorney',
value: 'attachment',
},
{
label: 'customer.typeFile.others',
group: 'others',
value: 'attachment',
},
];
export const uploadFileListEmployee: {
label: string;
group: string;
value: string;
_meta?: Record<string, any>;
}[] = [
{
label: 'customerEmployee.fileType.passport',
value: 'passport',
group: 'passport',
},
{
label: 'customerEmployee.fileType.visa',
value: 'visa',
group: 'visa',
_meta: {
number: '',
type: '',
entryCount: 0,
issueCountry: '',
issuePlace: '',
issueDate: new Date(),
expireDate: new Date(),
mrz: '',
remark: '',
},
},
{
label: 'customerEmployee.fileType.tm6',
value: 'attachment',
group: 'tm6',
},
{
label: 'customerEmployee.fileType.workPermit',
value: 'attachment',
group: 'workPermit',
},
{
label: 'customerEmployee.fileType.noticeJobEmployment',
value: 'attachment',
group: 'noticeJobEmployment',
},
{
label: 'customerEmployee.fileType.noticeJobEntry',
value: 'attachment',
group: 'noticeJobEntry',
},
{
label: 'customerEmployee.fileType.historyJob',
value: 'attachment',
group: 'historyJob',
},
{
label: 'customerEmployee.fileType.acceptJob',
value: 'attachment',
group: 'acceptJob',
},
{
label: 'customerEmployee.fileType.receipt',
value: 'attachment',
group: 'receipt',
},
{
label: 'customerEmployee.fileType.other',
value: 'attachment',
group: 'other',
},
];
export const columnsAttachment = [
{
name: 'orderNumber',
align: 'center',
label: 'general.orderNumber',
field: 'branchNo',
},
{
name: 'createdAt',
align: 'left',
label: 'general.uploadDate',
field: 'attachmentName',
},
{
name: 'ัexpireDate',
align: 'left',
label: 'general.expirationDate',
field: 'attachmentName',
},
{
name: 'action',
label: '',
field: 'action',
},
] satisfies QTableProps['columns'];
export const columnsEmployee = [
{
name: 'orderNumber',
align: 'center',
label: 'general.orderNumber',
field: 'branchNo',
},
{
name: 'firstName',
align: 'left',
label: 'general.name',
field: 'firstName',
},
{
name: 'general.age',
align: 'center',
label: 'general.age',
field: 'dateOfBirth',
},
{
name: 'formDialogInputNationality',
align: 'left',
label: 'general.nationality',
field: 'nationality',
},
{
name: 'formDialogInputPassportNo',
align: 'left',
label: 'customerEmployee.form.passportNo',
field: 'passportNumber',
},
{
name: 'passportExpiryDate',
align: 'left',
label: 'customerEmployee.form.passportExpireDate',
field: 'passportExpiryDate',
},
{
name: 'visaExpireDate',
align: 'left',
label: 'customerEmployee.form.visaExpireDate',
field: 'visaExpireDate',
},
{
name: 'beDue',
align: 'left',
label: 'general.beDue',
field: 'beDue',
},
{
name: 'branchLabel',
align: 'center',
label: 'customerEmployee.branch',
field: 'customerBranch',
},
{
name: 'action',
label: '',
field: 'action',
},
] satisfies QTableProps['columns'];
export const columnsCustomer = [
{
name: 'orderNumber',
align: 'center',
label: 'customer.table.orderNumber',
field: 'branchNo',
},
{
name: 'titleName',
align: 'left',
label: 'customer.table.titleName',
field: 'titleName',
},
{
name: 'businessTypePure',
align: 'center',
label: 'customer.table.businessTypePure',
field: 'businessTypePure',
},
{
name: 'jobPosition',
align: 'left',
label: 'customer.table.jobPosition',
field: 'jobPosition',
},
{
name: 'address',
align: 'center',
label: 'customer.table.address',
field: 'address',
},
{
name: 'contactName',
align: 'center',
label: 'customer.table.contactName',
field: 'contactName',
},
{
name: 'officeTel',
align: 'left',
label: 'customer.table.tel',
field: 'officeTel',
},
] satisfies QTableProps['columns'];