chore: clean

This commit is contained in:
Methapon2001 2024-08-02 13:58:44 +07:00
parent 3bc5823e16
commit 1b489306bf
3 changed files with 316 additions and 2672 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,103 @@
import { QTableProps } from 'quasar';
export const columnsEmployee = [
{
name: 'firstName',
align: 'left',
label: 'nameEmployee',
field: 'firstName',
sortable: true,
},
{
name: 'formDialogInputNationality',
align: 'left',
label: 'formDialogInputNationality',
field: 'nationality',
},
{
name: 'formDialogInputPassportNo',
align: 'left',
label: 'formDialogInputPassportNo',
field: 'passportNumber',
},
{
name: 'formDialogInputAge',
align: 'left',
label: 'formDialogInputAge',
field: 'dateOfBirth',
},
{
name: 'passportExpiryDate',
align: 'left',
label: 'passportExpire',
field: 'passportExpiryDate',
},
{
name: 'formDialogEmployeeNRCNo',
align: 'left',
label: 'formDialogEmployeeNRCNo',
field: 'nrcNo',
},
{
name: 'branchLabel',
align: 'left',
label: 'branchLabel',
field: 'customerBranch',
},
{
name: 'type',
align: 'left',
label: 'type',
field: 'type',
sortable: true,
},
{
name: 'action',
label: '',
field: 'action',
},
] satisfies QTableProps['columns'];
export const columnsCustomer = [
{
name: 'customerName',
align: 'left',
label: 'corporation',
field: 'customerName',
sortable: true,
},
{
name: 'type',
align: 'center',
label: 'type',
field: 'customerType',
sortable: true,
},
{
name: 'personName',
align: 'left',
label: 'name',
field: 'personName',
},
{
name: 'telephoneNo',
align: 'left',
label: 'telephone',
field: 'branch[0].telephoneNo',
},
{
name: 'branchEmail',
align: 'left',
label: 'formDialogInputEmail',
field: 'branch[0].email',
},
] satisfies QTableProps['columns'];

View file

@ -0,0 +1,137 @@
import { ref } from 'vue';
import { defineStore } from 'pinia';
import { CustomerCreate } from 'src/stores/customer/types';
import useMyBranch from 'src/stores/my-branch';
import useCustomerStore from 'src/stores/customer';
export const useCustomerForm = defineStore('form-customer', () => {
const customerStore = useCustomerStore();
const branchStore = useMyBranch();
let defaultFormData: CustomerCreate = {
status: 'CREATED',
personName: '',
customerType: 'CORP',
customerName: '',
customerNameEN: '',
taxNo: '',
registeredBranchId: branchStore.currentMyBranch?.id || '',
customerBranch: [
{
code: '',
branchNo: 1,
address: '',
addressEN: '',
provinceId: '',
districtId: '',
subDistrictId: '',
zipCode: '',
email: '',
telephoneNo: '',
name: '',
status: 'CREATED',
taxNo: '',
nameEN: '',
legalPersonNo: '',
registerName: '',
registerDate: new Date(),
authorizedCapital: '',
employmentOffice: '',
bussinessType: '',
bussinessTypeEN: '',
jobPosition: '',
jobPositionEN: '',
jobDescription: '',
saleEmployee: '',
payDate: new Date(),
wageRate: 0,
},
],
image: null,
};
let resetCustomerData = structuredClone(defaultFormData);
const currentFormData = ref<CustomerCreate>(structuredClone(defaultFormData));
const state = ref<{
dialogType: 'info' | 'edit';
dialogOpen: boolean;
branchIndex: number;
customerType: 'CORP' | "PERS"
}>({
dialogType: 'info',
dialogOpen: false,
branchIndex: 0,
customerType: "CORP"
});
function isFormDataDifferent() {
return (
JSON.stringify(resetCustomerData) !==
JSON.stringify(currentFormData.value)
);
}
function resetFormData(cb?: (...args: any[]) => unknown) {
currentFormData.value = structuredClone(resetCustomerData);
cb?.();
}
async function assignFormData(id: string) {
const data = await customerStore.fetchById(id);
if (!data) return;
resetCustomerData.registeredBranchId = data.registeredBranchId;
resetCustomerData.status = data.status;
resetCustomerData.customerType = data.customerType;
resetCustomerData.customerName = data.customerName;
resetCustomerData.customerNameEN = data.customerNameEN;
resetCustomerData.personName = data.personName;
resetCustomerData.taxNo = data.taxNo;
resetCustomerData.image = null;
resetCustomerData.customerBranch = data.branch.map((v) => ({
id: v.id,
code: v.code,
branchNo: v.branchNo,
address: v.address,
addressEN: v.addressEN,
provinceId: v.province.id,
districtId: v.district.id,
subDistrictId: v.subDistrict.id,
zipCode: v.zipCode,
email: v.email,
telephoneNo: v.telephoneNo,
name: v.name,
status: undefined,
taxNo: v.taxNo,
nameEN: v.nameEN,
legalPersonNo: v.legalPersonNo,
registerName: v.registerName,
registerDate: new Date(v.registerDate),
authorizedCapital: v.authorizedCapital,
employmentOffice: v.employmentOffice,
bussinessType: v.bussinessType,
bussinessTypeEN: v.bussinessTypeEN,
jobPosition: v.jobPosition,
jobPositionEN: v.jobPositionEN,
jobDescription: v.jobDescription,
saleEmployee: v.saleEmployee,
payDate: new Date(v.payDate),
wageRate: v.wageRate,
}));
currentFormData.value = structuredClone(resetCustomerData);
}
return {
state,
currentFormData,
isFormDataDifferent,
resetFormData,
assignFormData,
};
});
export const useEmployeeForm = defineStore('form-employee', () => {
return {};
});