feat: update importNationality to support multiple selections and adjust related logic
This commit is contained in:
parent
5c12bcbab7
commit
dfc17e9623
4 changed files with 18 additions and 13 deletions
|
|
@ -29,7 +29,7 @@ const discountCondition = defineModel<string | null | undefined>(
|
||||||
const sourceNationality = defineModel<string | null | undefined>(
|
const sourceNationality = defineModel<string | null | undefined>(
|
||||||
'sourceNationality',
|
'sourceNationality',
|
||||||
);
|
);
|
||||||
const importNationality = defineModel<string | null | undefined>(
|
const importNationality = defineModel<string[] | null | undefined>(
|
||||||
'importNationality',
|
'importNationality',
|
||||||
);
|
);
|
||||||
const trainingPlace = defineModel<string | null | undefined>('trainingPlace');
|
const trainingPlace = defineModel<string | null | undefined>('trainingPlace');
|
||||||
|
|
@ -179,18 +179,19 @@ function deleteFile(name: string) {
|
||||||
(v) => (typeof v === 'string' ? (sourceNationality = v) : '')
|
(v) => (typeof v === 'string' ? (sourceNationality = v) : '')
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<SelectInput
|
<SelectInput
|
||||||
:model-value="readonly ? importNationality || '-' : importNationality"
|
v-model="importNationality"
|
||||||
id="input-import-nationality"
|
id="input-import-nationality"
|
||||||
for="input-import-nationality"
|
for="input-import-nationality"
|
||||||
:option="optionStore.globalOption.nationality"
|
:option="optionStore.globalOption.nationality"
|
||||||
class="col-md-3 col-6"
|
class="col-md-3 col-6"
|
||||||
:readonly
|
:readonly
|
||||||
|
multiple
|
||||||
|
:hideSelected="false"
|
||||||
clearable
|
clearable
|
||||||
|
fillInput
|
||||||
:label="$t('personnel.form.importNationality')"
|
:label="$t('personnel.form.importNationality')"
|
||||||
@update:model-value="
|
|
||||||
(v) => (typeof v === 'string' ? (importNationality = v) : '')
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<SelectInput
|
<SelectInput
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ watch(
|
||||||
:rules
|
:rules
|
||||||
@clear="
|
@clear="
|
||||||
() => {
|
() => {
|
||||||
model = '';
|
multiple ? (model = []) : (model = '');
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ const userFileList = ref<{ name: string; url: string }[]>([]);
|
||||||
const typeStats = ref<UserTypeStats>();
|
const typeStats = ref<UserTypeStats>();
|
||||||
const userStats = ref<BranchUserStats[]>();
|
const userStats = ref<BranchUserStats[]>();
|
||||||
|
|
||||||
const searchDate = ref<Date[]>([]);
|
const searchDate = ref<[]>([]);
|
||||||
|
|
||||||
const urlProfile = ref<string>();
|
const urlProfile = ref<string>();
|
||||||
const profileFileImg = ref<File | null>(null);
|
const profileFileImg = ref<File | null>(null);
|
||||||
|
|
@ -126,7 +126,7 @@ const defaultFormData = {
|
||||||
streetEN: '',
|
streetEN: '',
|
||||||
street: '',
|
street: '',
|
||||||
trainingPlace: null,
|
trainingPlace: null,
|
||||||
importNationality: null,
|
importNationality: [],
|
||||||
sourceNationality: null,
|
sourceNationality: null,
|
||||||
licenseExpireDate: null,
|
licenseExpireDate: null,
|
||||||
licenseIssueDate: null,
|
licenseIssueDate: null,
|
||||||
|
|
@ -178,7 +178,7 @@ const formData = ref<UserCreate>({
|
||||||
streetEN: '',
|
streetEN: '',
|
||||||
street: '',
|
street: '',
|
||||||
trainingPlace: null,
|
trainingPlace: null,
|
||||||
importNationality: null,
|
importNationality: [],
|
||||||
sourceNationality: null,
|
sourceNationality: null,
|
||||||
licenseExpireDate: null,
|
licenseExpireDate: null,
|
||||||
licenseIssueDate: null,
|
licenseIssueDate: null,
|
||||||
|
|
@ -555,6 +555,7 @@ async function triggerChangeStatus(id: string, status: string) {
|
||||||
async function assignFormData(idEdit: string) {
|
async function assignFormData(idEdit: string) {
|
||||||
if (!userData.value) return;
|
if (!userData.value) return;
|
||||||
const foundUser = userData.value.result.find((user) => user.id === idEdit);
|
const foundUser = userData.value.result.find((user) => user.id === idEdit);
|
||||||
|
console.log(foundUser);
|
||||||
|
|
||||||
if (foundUser) {
|
if (foundUser) {
|
||||||
currentUser.value = foundUser;
|
currentUser.value = foundUser;
|
||||||
|
|
@ -576,7 +577,10 @@ async function assignFormData(idEdit: string) {
|
||||||
street: foundUser.street,
|
street: foundUser.street,
|
||||||
streetEN: foundUser.streetEN,
|
streetEN: foundUser.streetEN,
|
||||||
trainingPlace: foundUser.trainingPlace,
|
trainingPlace: foundUser.trainingPlace,
|
||||||
importNationality: foundUser.importNationality,
|
importNationality:
|
||||||
|
typeof foundUser.importNationality === 'string'
|
||||||
|
? [foundUser.importNationality]
|
||||||
|
: foundUser.importNationality,
|
||||||
sourceNationality: foundUser.sourceNationality,
|
sourceNationality: foundUser.sourceNationality,
|
||||||
licenseNo: foundUser.licenseNo,
|
licenseNo: foundUser.licenseNo,
|
||||||
discountCondition: foundUser.discountCondition,
|
discountCondition: foundUser.discountCondition,
|
||||||
|
|
@ -750,7 +754,7 @@ watch(
|
||||||
formData.value.responsibleArea = null;
|
formData.value.responsibleArea = null;
|
||||||
formData.value.discountCondition = null;
|
formData.value.discountCondition = null;
|
||||||
formData.value.sourceNationality = null;
|
formData.value.sourceNationality = null;
|
||||||
formData.value.importNationality = null;
|
formData.value.importNationality = [];
|
||||||
formData.value.trainingPlace = null;
|
formData.value.trainingPlace = null;
|
||||||
formData.value.checkpoint = null;
|
formData.value.checkpoint = null;
|
||||||
formData.value.checkpointEN = null;
|
formData.value.checkpointEN = null;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ export type User = {
|
||||||
createdBy: string;
|
createdBy: string;
|
||||||
status: Status;
|
status: Status;
|
||||||
trainingPlace: string | null;
|
trainingPlace: string | null;
|
||||||
importNationality: string | null;
|
importNationality: [] | null;
|
||||||
sourceNationality: string | null;
|
sourceNationality: string | null;
|
||||||
licenseExpireDate: Date | null;
|
licenseExpireDate: Date | null;
|
||||||
licenseIssueDate: Date | null;
|
licenseIssueDate: Date | null;
|
||||||
|
|
@ -82,7 +82,7 @@ export type UserCreate = {
|
||||||
streetEN: string;
|
streetEN: string;
|
||||||
street: string;
|
street: string;
|
||||||
trainingPlace?: string | null;
|
trainingPlace?: string | null;
|
||||||
importNationality?: string | null;
|
importNationality?: string[] | null;
|
||||||
sourceNationality?: string | null;
|
sourceNationality?: string | null;
|
||||||
licenseExpireDate?: Date | null;
|
licenseExpireDate?: Date | null;
|
||||||
licenseIssueDate?: Date | null;
|
licenseIssueDate?: Date | null;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue