ทะเบียนประวัติ: ประวัติส่วนตัว (แก้การ mock ข้อมูล)
This commit is contained in:
parent
41cc892c91
commit
a8a82ac662
2 changed files with 112 additions and 43 deletions
|
|
@ -10,14 +10,17 @@ import HistoryTable from "@/components/TableHistory.vue";
|
||||||
import DialogHeader from "@/components/DialogHeader.vue";
|
import DialogHeader from "@/components/DialogHeader.vue";
|
||||||
import type {
|
import type {
|
||||||
InformationOps,
|
InformationOps,
|
||||||
|
Information,
|
||||||
DataOption,
|
DataOption,
|
||||||
} from "@/modules/04_registryNew/interface/index/Main";
|
} from "@/modules/04_registryNew/interface/index/Main";
|
||||||
|
import { defaultInformation } from "@/modules/04_registryNew/interface/index/Main";
|
||||||
import type { RequestItemsHistoryObject } from "@/modules/04_registryNew/interface/request/Information";
|
import type { RequestItemsHistoryObject } from "@/modules/04_registryNew/interface/request/Information";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const { showLoader, hideLoader, date2Thai, messageError } = mixin;
|
const { showLoader, hideLoader, date2Thai, messageError } = mixin;
|
||||||
|
|
||||||
|
const informaData = ref<Information>(defaultInformation);
|
||||||
const modal = ref<boolean>(false);
|
const modal = ref<boolean>(false);
|
||||||
const myForm = ref<any>();
|
const myForm = ref<any>();
|
||||||
const rowsHistory = ref<RequestItemsHistoryObject[]>([]);
|
const rowsHistory = ref<RequestItemsHistoryObject[]>([]);
|
||||||
|
|
@ -300,6 +303,26 @@ const visibleColumnsHistory = ref<String[]>([
|
||||||
"createdAt",
|
"createdAt",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
async function fetchData() {
|
||||||
|
informaData.value.cardid = resultData.value.citizenId;
|
||||||
|
informaData.value.prefixId = resultData.value.prefixId;
|
||||||
|
informaData.value.prefix = resultData.value.prefix;
|
||||||
|
informaData.value.firstname = resultData.value.firstName;
|
||||||
|
informaData.value.lastname = resultData.value.lastName;
|
||||||
|
informaData.value.birthDate = resultData.value.birthDate;
|
||||||
|
informaData.value.age = resultData.value.age;
|
||||||
|
informaData.value.genderId = resultData.value.genderId;
|
||||||
|
informaData.value.bloodId = resultData.value.bloodGroupId;
|
||||||
|
informaData.value.nationality = resultData.value.nationality;
|
||||||
|
informaData.value.ethnicity = resultData.value.race;
|
||||||
|
informaData.value.statusId = resultData.value.relationshipId;
|
||||||
|
informaData.value.religionId = resultData.value.religionId;
|
||||||
|
informaData.value.tel = resultData.value.telephoneNumber;
|
||||||
|
informaData.value.employeeType = resultData.value.employeeType;
|
||||||
|
informaData.value.employeeClass = resultData.value.employeeClass;
|
||||||
|
informaData.value.profileType = resultData.value.profileType;
|
||||||
|
}
|
||||||
|
|
||||||
// get person detail list
|
// get person detail list
|
||||||
async function fetchPerson() {
|
async function fetchPerson() {
|
||||||
// showLoader();
|
// showLoader();
|
||||||
|
|
@ -478,6 +501,7 @@ function onSubmit() {
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchPerson();
|
await fetchPerson();
|
||||||
|
await fetchData();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -513,29 +537,35 @@ onMounted(async () => {
|
||||||
<!-- data -->
|
<!-- data -->
|
||||||
<div class="col-md-8 col-7">
|
<div class="col-md-8 col-7">
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ resultData.citizenId }}
|
{{ informaData.cardid }}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{
|
{{
|
||||||
`${resultData.prefix} ${resultData.firstName} ${resultData.lastName}`
|
`${informaData.prefix} ${informaData.firstname} ${informaData.lastname}`
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ date2Thai(resultData.birthDate) }}
|
{{ date2Thai(informaData.birthDate) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ resultData.age ? resultData.age : "-" }}
|
{{ informaData.age ? informaData.age : "-" }}
|
||||||
</div>
|
|
||||||
<div class="q-py-xs">
|
|
||||||
{{ resultData.gender ? resultData.gender : "-" }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{
|
{{
|
||||||
resultData.relationshipId
|
informaData.genderId
|
||||||
? (
|
? (
|
||||||
Ops.statusOps.find(
|
Ops.genderOps.find((r) => r.id === informaData.genderId) ||
|
||||||
(r) => r.id === resultData.relationshipId
|
{}
|
||||||
) || {}
|
).name
|
||||||
|
: "-"
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div class="q-py-xs">
|
||||||
|
{{
|
||||||
|
informaData.statusId
|
||||||
|
? (
|
||||||
|
Ops.statusOps.find((r) => r.id === informaData.statusId) ||
|
||||||
|
{}
|
||||||
).name
|
).name
|
||||||
: "-"
|
: "-"
|
||||||
}}
|
}}
|
||||||
|
|
@ -556,17 +586,17 @@ onMounted(async () => {
|
||||||
<!-- data -->
|
<!-- data -->
|
||||||
<div class="col-md-8 col-7">
|
<div class="col-md-8 col-7">
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ resultData.nationality ? resultData.nationality : "-" }}
|
{{ informaData.nationality ? informaData.nationality : "-" }}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ resultData.race ? resultData.race : "-" }}
|
{{ informaData.ethnicity ? informaData.ethnicity : "-" }}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{
|
{{
|
||||||
resultData.religionId
|
informaData.religionId
|
||||||
? (
|
? (
|
||||||
Ops.religionOps.find(
|
Ops.religionOps.find(
|
||||||
(r) => r.id === resultData.religionId
|
(r) => r.id === informaData.religionId
|
||||||
) || {}
|
) || {}
|
||||||
).name
|
).name
|
||||||
: "-"
|
: "-"
|
||||||
|
|
@ -574,17 +604,14 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{
|
{{
|
||||||
resultData.bloodGroupId
|
informaData.bloodId
|
||||||
? (
|
? (Ops.bloodOps.find((b) => b.id === informaData.bloodId) || {})
|
||||||
Ops.bloodOps.find(
|
.name
|
||||||
(b) => b.id === resultData.bloodGroupId
|
|
||||||
) || {}
|
|
||||||
).name
|
|
||||||
: "-"
|
: "-"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="q-py-xs">
|
<div class="q-py-xs">
|
||||||
{{ resultData.telephoneNumber ? resultData.telephoneNumber : "-" }}
|
{{ informaData.tel ? informaData.tel : "-" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -610,7 +637,7 @@ onMounted(async () => {
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
maxlength="13"
|
maxlength="13"
|
||||||
mask="#############"
|
mask="#############"
|
||||||
v-model="resultData.citizenId"
|
v-model="informaData.cardid"
|
||||||
:label="dataLabel.citizenId"
|
:label="dataLabel.citizenId"
|
||||||
:rules="[
|
:rules="[
|
||||||
(val: string) => !!val || `${'กรุณากรอก เลขประจำตัวประชาชน'}`,
|
(val: string) => !!val || `${'กรุณากรอก เลขประจำตัวประชาชน'}`,
|
||||||
|
|
@ -621,7 +648,7 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<selector
|
<q-select
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
use-input
|
use-input
|
||||||
|
|
@ -632,7 +659,7 @@ onMounted(async () => {
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
v-model="resultData.prefixId"
|
v-model="informaData.prefixId"
|
||||||
:options="Ops.prefixOps"
|
:options="Ops.prefixOps"
|
||||||
:label="dataLabel.prefix"
|
:label="dataLabel.prefix"
|
||||||
:rules="[(val: string) => !!val || `${'กรุณาเลือก คำนำหน้าชื่อ'}`]"
|
:rules="[(val: string) => !!val || `${'กรุณาเลือก คำนำหน้าชื่อ'}`]"
|
||||||
|
|
@ -647,7 +674,7 @@ onMounted(async () => {
|
||||||
outlined
|
outlined
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
v-model="resultData.firstName"
|
v-model="informaData.firstname"
|
||||||
:label="dataLabel.firstName"
|
:label="dataLabel.firstName"
|
||||||
:rules="[(val: string) => !!val || `${'กรุณากรอก ชื่อ'}`]"
|
:rules="[(val: string) => !!val || `${'กรุณากรอก ชื่อ'}`]"
|
||||||
/>
|
/>
|
||||||
|
|
@ -658,7 +685,7 @@ onMounted(async () => {
|
||||||
outlined
|
outlined
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
v-model="resultData.lastName"
|
v-model="informaData.lastname"
|
||||||
:label="dataLabel.lastName"
|
:label="dataLabel.lastName"
|
||||||
:rules="[(val: string) => !!val || `${'กรุณากรอก นามสกุล'}`]"
|
:rules="[(val: string) => !!val || `${'กรุณากรอก นามสกุล'}`]"
|
||||||
/>
|
/>
|
||||||
|
|
@ -669,7 +696,7 @@ onMounted(async () => {
|
||||||
borderless
|
borderless
|
||||||
week-start="0"
|
week-start="0"
|
||||||
menu-class-name="modalfix"
|
menu-class-name="modalfix"
|
||||||
v-model="resultData.birthDate"
|
v-model="informaData.birthDate"
|
||||||
:locale="'th'"
|
:locale="'th'"
|
||||||
>
|
>
|
||||||
<template #year="{ year }">
|
<template #year="{ year }">
|
||||||
|
|
@ -686,8 +713,8 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
:model-value="
|
:model-value="
|
||||||
resultData.birthDate != null
|
informaData.birthDate != null
|
||||||
? date2Thai(resultData.birthDate)
|
? date2Thai(informaData.birthDate)
|
||||||
: null
|
: null
|
||||||
"
|
"
|
||||||
:label="dataLabel.birthDate"
|
:label="dataLabel.birthDate"
|
||||||
|
|
@ -714,12 +741,12 @@ onMounted(async () => {
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
readonly
|
readonly
|
||||||
v-model="resultData.age"
|
v-model="informaData.age"
|
||||||
:label="dataLabel.age"
|
:label="dataLabel.age"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<selector
|
<q-select
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
use-input
|
use-input
|
||||||
|
|
@ -730,7 +757,7 @@ onMounted(async () => {
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
v-model="resultData.genderId"
|
v-model="informaData.genderId"
|
||||||
:options="Ops.genderOps"
|
:options="Ops.genderOps"
|
||||||
:label="dataLabel.gender"
|
:label="dataLabel.gender"
|
||||||
@filter="(inputValue: any,
|
@filter="(inputValue: any,
|
||||||
|
|
@ -739,7 +766,7 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<selector
|
<q-select
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
use-input
|
use-input
|
||||||
|
|
@ -750,7 +777,7 @@ onMounted(async () => {
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
v-model="resultData.relationshipId"
|
v-model="informaData.statusId"
|
||||||
:options="Ops.statusOps"
|
:options="Ops.statusOps"
|
||||||
:label="dataLabel.relationship"
|
:label="dataLabel.relationship"
|
||||||
@filter="(inputValue: any,
|
@filter="(inputValue: any,
|
||||||
|
|
@ -764,7 +791,7 @@ onMounted(async () => {
|
||||||
outlined
|
outlined
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
v-model="resultData.nationality"
|
v-model="informaData.nationality"
|
||||||
:label="dataLabel.nationality"
|
:label="dataLabel.nationality"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -774,12 +801,12 @@ onMounted(async () => {
|
||||||
outlined
|
outlined
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
v-model="resultData.race"
|
v-model="informaData.ethnicity"
|
||||||
:label="dataLabel.race"
|
:label="dataLabel.race"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<selector
|
<q-select
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
use-input
|
use-input
|
||||||
|
|
@ -790,7 +817,7 @@ onMounted(async () => {
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
v-model="resultData.religionId"
|
v-model="informaData.religionId"
|
||||||
:options="Ops.religionOps"
|
:options="Ops.religionOps"
|
||||||
:label="dataLabel.religion"
|
:label="dataLabel.religion"
|
||||||
@filter="(inputValue: any,
|
@filter="(inputValue: any,
|
||||||
|
|
@ -799,7 +826,7 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<selector
|
<q-select
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
use-input
|
use-input
|
||||||
|
|
@ -810,7 +837,7 @@ onMounted(async () => {
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
v-model="resultData.bloodGroupId"
|
v-model="informaData.bloodId"
|
||||||
:options="Ops.bloodOps"
|
:options="Ops.bloodOps"
|
||||||
:label="dataLabel.bloodGroup"
|
:label="dataLabel.bloodGroup"
|
||||||
@filter="(inputValue: any,
|
@filter="(inputValue: any,
|
||||||
|
|
@ -825,7 +852,7 @@ onMounted(async () => {
|
||||||
lazy-rules
|
lazy-rules
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
mask="##########"
|
mask="##########"
|
||||||
v-model="resultData.telephoneNumber"
|
v-model="informaData.tel"
|
||||||
:label="dataLabel.telephoneNumber"
|
:label="dataLabel.telephoneNumber"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,26 @@ interface InformationOps {
|
||||||
employeeTypeOps: DataOption[];
|
employeeTypeOps: DataOption[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface Information {
|
||||||
|
cardid: string | null;
|
||||||
|
prefix: string | null;
|
||||||
|
age: string | null;
|
||||||
|
prefixId: string | null;
|
||||||
|
firstname: string | null;
|
||||||
|
lastname: string | null;
|
||||||
|
birthDate: Date | null;
|
||||||
|
genderId: string | null;
|
||||||
|
bloodId: string | null;
|
||||||
|
nationality: string | null;
|
||||||
|
ethnicity: string | null;
|
||||||
|
statusId: string | null;
|
||||||
|
religionId: string | null;
|
||||||
|
tel: string | null;
|
||||||
|
employeeType: string | null;
|
||||||
|
employeeClass: string | null;
|
||||||
|
profileType: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
interface AddressOps {
|
interface AddressOps {
|
||||||
provinceOps: DataOption[];
|
provinceOps: DataOption[];
|
||||||
districtOps: DataOption[];
|
districtOps: DataOption[];
|
||||||
|
|
@ -50,6 +70,26 @@ interface Address {
|
||||||
codep: string | null;
|
codep: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const defaultInformation: Information = {
|
||||||
|
cardid: null,
|
||||||
|
age: null,
|
||||||
|
prefix: null,
|
||||||
|
prefixId: null,
|
||||||
|
firstname: null,
|
||||||
|
lastname: null,
|
||||||
|
birthDate: null,
|
||||||
|
genderId: null,
|
||||||
|
bloodId: null,
|
||||||
|
nationality: null,
|
||||||
|
ethnicity: null,
|
||||||
|
statusId: null,
|
||||||
|
religionId: null,
|
||||||
|
tel: null,
|
||||||
|
employeeType: null,
|
||||||
|
employeeClass: null,
|
||||||
|
profileType: null,
|
||||||
|
};
|
||||||
|
|
||||||
const defaultAddress: Address = {
|
const defaultAddress: Address = {
|
||||||
address: null,
|
address: null,
|
||||||
provinceId: null,
|
provinceId: null,
|
||||||
|
|
@ -63,13 +103,15 @@ const defaultAddress: Address = {
|
||||||
codep: null,
|
codep: null,
|
||||||
same: "0",
|
same: "0",
|
||||||
};
|
};
|
||||||
export { defaultAddress };
|
|
||||||
|
export { defaultAddress, defaultInformation };
|
||||||
export type {
|
export type {
|
||||||
Pagination,
|
Pagination,
|
||||||
DataOption,
|
DataOption,
|
||||||
DataOption2,
|
DataOption2,
|
||||||
zipCodeOption,
|
zipCodeOption,
|
||||||
InformationOps,
|
InformationOps,
|
||||||
|
Information,
|
||||||
AddressOps,
|
AddressOps,
|
||||||
Address,
|
Address,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue