update

parent 97f2f68f
...@@ -67,7 +67,7 @@ export type ArtistInfoType = { ...@@ -67,7 +67,7 @@ export type ArtistInfoType = {
banners: BannerType[]; banners: BannerType[];
products: ProductType[]; products: ProductType[];
schedules: SchedulesType[]; schedules: SchedulesType[];
musicTypeDto:MusicType[]; musicTypeDto: MusicType[];
provinceDto: ProvinceType[]; provinceDto: ProvinceType[];
stories: StoriesType[]; stories: StoriesType[];
mnName: string | null; mnName: string | null;
...@@ -79,21 +79,24 @@ export type ArtistInfoType = { ...@@ -79,21 +79,24 @@ export type ArtistInfoType = {
mnIns: string | null; mnIns: string | null;
mnWhatsapp: string | null; mnWhatsapp: string | null;
favoriteScore: number; favoriteScore: number;
artistOwner: {
name: string;
};
};
export type ProvinceType = {
name: string;
fullname: string;
code: string;
level: string;
};
export type MusicType = {
id: number;
name: string;
status: number;
code: string;
numIndex: number;
}; };
export type ProvinceType = {
name: string,
fullname: string,
code: string,
level: string,
};
export type MusicType = {
id:number,
name: string,
status: number,
code: string,
numIndex: number,
};
export type FieldType = { export type FieldType = {
id: number; id: number;
name: string; name: string;
...@@ -102,16 +105,14 @@ export type FieldType = { ...@@ -102,16 +105,14 @@ export type FieldType = {
numIndex: number; numIndex: number;
}; };
export type ClassificationOptions = { export type ClassificationOptions = {
id: number; id: number;
name: string; name: string;
status:number | null; status: number | null;
description: string | null; description: string | null;
numIndex: number; numIndex: number;
}; };
export type NationalityType = { export type NationalityType = {
id: number; id: number;
name: string; name: string;
...@@ -268,11 +269,9 @@ export type DetailUnit = { ...@@ -268,11 +269,9 @@ export type DetailUnit = {
password: string; password: string;
fields: Array<FieldType>; fields: Array<FieldType>;
contracts: Array<Contract>; contracts: Array<Contract>;
classification: Array<ClassificationOptions> classification: Array<ClassificationOptions>;
}; };
export type CustomerType = { export type CustomerType = {
id: number; id: number;
code: string | null; code: string | null;
...@@ -463,11 +462,9 @@ export type ListArrayArtist = { ...@@ -463,11 +462,9 @@ export type ListArrayArtist = {
artistName: string; artistName: string;
}; };
export type ListDeposit = { export type ListDeposit = {
artistBookingDepositDtos: [] artistBookingDepositDtos: [];
}; };
export type ListArrayCust = { export type ListArrayCust = {
id: number; id: number;
fullName: string; fullName: string;
...@@ -620,18 +617,18 @@ export type ListBannerConfig = { ...@@ -620,18 +617,18 @@ export type ListBannerConfig = {
updateTime: string; updateTime: string;
}; };
export type ListHomeConfig = { export type ListHomeConfig = {
artistId: number, artistId: number;
artistName: { artistName: {
artistName: string, artistName: string;
id: number id: number;
}, };
code: string, code: string;
embeddedUrl: string, embeddedUrl: string;
id: number, id: number;
imageUrl: string, imageUrl: string;
name: string name: string;
} };
export type DetailBannerConfig = { export type DetailBannerConfig = {
id: number; id: number;
...@@ -675,8 +672,8 @@ export type AddBannerConfig = { ...@@ -675,8 +672,8 @@ export type AddBannerConfig = {
}; };
export type listTypeFormalityDeposit = { export type listTypeFormalityDeposit = {
id: number; id: number;
name:string name: string;
} };
export type ListConfigPartner = { export type ListConfigPartner = {
id: number; id: number;
name: string; name: string;
......
...@@ -70,36 +70,35 @@ ...@@ -70,36 +70,35 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium" > <div class="col-3 text-weight-medium">
<div>Tên đăng nhập <span style="color: red">*</span></div> <div>Tên đăng nhập <span style="color: red">*</span></div>
</div> </div>
<div class="col-8"> <div class="col-8">
<q-input <q-input
v-if="id" v-if="id"
:model-value="account" :model-value="account"
@update:model-value="$emit('update:account', $event)" @update:model-value="$emit('update:account', $event)"
readonly readonly
class="q-my-sm" class="q-my-sm"
dense dense
hide-bottom-space hide-bottom-space
outlined outlined
></q-input> ></q-input>
<q-input <q-input
v-else v-else
:model-value="account" :model-value="account"
@update:model-value="$emit('update:account', $event)" @update:model-value="$emit('update:account', $event)"
:error="accountRules" :error="accountRules"
:error-message="errorMessAccount" :error-message="errorMessAccount"
class="q-my-sm" class="q-my-sm"
dense dense
hide-bottom-space hide-bottom-space
outlined outlined
></q-input> ></q-input>
</div> </div>
</div>
</div> <!-- <div class="col-auto" style="margin-top: 2px">
<!-- <div class="col-auto" style="margin-top: 2px">
<q-btn color="primary" no-caps label="Reset Pass"></q-btn> <q-btn color="primary" no-caps label="Reset Pass"></q-btn>
</div> --> </div> -->
...@@ -110,7 +109,6 @@ ...@@ -110,7 +109,6 @@
</div> </div>
<div class="col-8"> <div class="col-8">
<q-input <q-input
:model-value="artistCode" :model-value="artistCode"
@update:model-value="$emit('update:artistCode', $event)" @update:model-value="$emit('update:artistCode', $event)"
...@@ -147,13 +145,11 @@ ...@@ -147,13 +145,11 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error-message="errorMessArtistName" --> <!-- :error-message="errorMessArtistName" -->
<!-- :error="artistNameRules" --> <!-- :error="artistNameRules" -->
<q-input <q-input
:model-value="artistName" :model-value="artistName"
@update:model-value="$emit('update:artistName', $event)" @update:model-value="$emit('update:artistName', $event)"
class="q-my-sm" class="q-my-sm"
outlined outlined
dense dense
...@@ -168,11 +164,10 @@ ...@@ -168,11 +164,10 @@
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="birthdayRules" --> <!-- :error="birthdayRules" -->
<!-- :error-message="errorMessBirthday" --> <!-- :error-message="errorMessBirthday" -->
<q-input <q-input
:model-value="birthday" :model-value="birthday"
@update:model-value="$emit('update:birthday', $event)" @update:model-value="$emit('update:birthday', $event)"
class="q-my-sm" class="q-my-sm"
outlined outlined
@click="openDialog = true" @click="openDialog = true"
...@@ -186,7 +181,7 @@ ...@@ -186,7 +181,7 @@
style="width: 100%" style="width: 100%"
v-model="BirthdayDatePicker" v-model="BirthdayDatePicker"
first-day-of-week="1" first-day-of-week="1"
locale="vi" locale="vi"
></q-date> ></q-date>
<q-card-actions align="right"> <q-card-actions align="right">
...@@ -209,13 +204,12 @@ ...@@ -209,13 +204,12 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="sexRules" <!-- :error="sexRules"
:error-message="errorMessSex" --> :error-message="errorMessSex" -->
<q-select <q-select
:model-value="sex" :model-value="sex"
@update:model-value="$emit('update:sex', $event)" @update:model-value="$emit('update:sex', $event)"
:options="sexOptions" :options="sexOptions"
emit-value emit-value
map-options map-options
option-value="id" option-value="id"
...@@ -237,12 +231,11 @@ ...@@ -237,12 +231,11 @@
<div class="col-8"> <div class="col-8">
<!-- :error="nationalityRules" <!-- :error="nationalityRules"
:error-message="errorMessNationality" --> :error-message="errorMessNationality" -->
<q-select <q-select
:model-value="nationality" :model-value="nationality"
@update:model-value="$emit('update:nationality', $event)" @update:model-value="$emit('update:nationality', $event)"
:options="nationalityOptions" :options="nationalityOptions"
map-options map-options
option-value="id" option-value="id"
option-label="name" option-label="name"
...@@ -254,7 +247,7 @@ ...@@ -254,7 +247,7 @@
></q-select> ></q-select>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.address') }} {{ $t('artist.artistInformation.titleDataField.address') }}
...@@ -263,12 +256,11 @@ ...@@ -263,12 +256,11 @@
<div class="col-8"> <div class="col-8">
<!-- {{address}} --> <!-- {{address}} -->
<!-- :error="addressRules" <!-- :error="addressRules"
:error-message="errorMessAddress" --> :error-message="errorMessAddress" -->
<q-select <q-select
:model-value="address" :model-value="address"
@update:model-value="$emit('update:address', $event)" @update:model-value="$emit('update:address', $event)"
:options="provinceOptions1" :options="provinceOptions1"
option-value="fullName" option-value="fullName"
option-label="fullName" option-label="fullName"
...@@ -283,32 +275,29 @@ ...@@ -283,32 +275,29 @@
map-options map-options
@filter="filterFn" @filter="filterFn"
> >
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
Không có dữ liệu Không có dữ liệu
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.field') }} {{ $t('artist.artistInformation.titleDataField.field') }}
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="fieldRules" <!-- :error="fieldRules"
:error-message="errorMessFields" --> :error-message="errorMessFields" -->
<q-select <q-select
:model-value="fields" :model-value="fields"
@update:model-value="$emit('update:fields', $event)" @update:model-value="$emit('update:fields', $event)"
:options="fieldOptions" :options="fieldOptions"
multiple multiple
map-options map-options
...@@ -325,20 +314,19 @@ ...@@ -325,20 +314,19 @@
></q-select> ></q-select>
</div> </div>
</div> </div>
<!-- thể loại --> <!-- thể loại -->
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.type') }} {{ $t('artist.artistInformation.titleDataField.type') }}
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<!-- :error="musicsRules" <!-- :error="musicsRules"
:error-message="errorMessTypes" --> :error-message="errorMessTypes" -->
<div class="col-8"> <div class="col-8">
<q-select <q-select
:model-value="musics" :model-value="musics"
@update:model-value="$emit('update:musics', $event)" @update:model-value="$emit('update:musics', $event)"
:options="musicOptions" :options="musicOptions"
multiple multiple
...@@ -356,7 +344,7 @@ ...@@ -356,7 +344,7 @@
></q-select> ></q-select>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.work') }} {{ $t('artist.artistInformation.titleDataField.work') }}
...@@ -366,7 +354,6 @@ ...@@ -366,7 +354,6 @@
<q-select <q-select
:model-value="works" :model-value="works"
@update:model-value="$emit('update:works', $event)" @update:model-value="$emit('update:works', $event)"
:options="workOptions" :options="workOptions"
map-options map-options
option-value="id" option-value="id"
...@@ -383,20 +370,19 @@ ...@@ -383,20 +370,19 @@
></q-select> ></q-select>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.qualification') }} {{ $t('artist.artistInformation.titleDataField.qualification') }}
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="qualificationRules" <!-- :error="qualificationRules"
:error-message="errorMessQualification" --> :error-message="errorMessQualification" -->
<q-select <q-select
:model-value="qualification" :model-value="qualification"
@update:model-value="$emit('update:qualification', $event)" @update:model-value="$emit('update:qualification', $event)"
:options="professionOptions" :options="professionOptions"
map-options map-options
option-value="id" option-value="id"
option-label="name" option-label="name"
...@@ -409,7 +395,7 @@ ...@@ -409,7 +395,7 @@
></q-select> ></q-select>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.favoriteScore') }} {{ $t('artist.artistInformation.titleDataField.favoriteScore') }}
...@@ -427,7 +413,7 @@ ...@@ -427,7 +413,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-5 q-ml-xl"> <div class="col-5 q-ml-xl">
<!-- <div class="row flex-center"> <!-- <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
...@@ -456,12 +442,11 @@ ...@@ -456,12 +442,11 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="phoneNumberRules" <!-- :error="phoneNumberRules"
:error-message="errorMessPhoneNumber" --> :error-message="errorMessPhoneNumber" -->
<q-input <q-input
:model-value="phoneNumber" :model-value="phoneNumber"
@update:model-value="$emit('update:phoneNumber', $event)" @update:model-value="$emit('update:phoneNumber', $event)"
mask="##########" mask="##########"
class="q-my-sm" class="q-my-sm"
outlined outlined
...@@ -476,12 +461,11 @@ ...@@ -476,12 +461,11 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="emailRules" <!-- :error="emailRules"
:error-message="errorMessEmail" --> :error-message="errorMessEmail" -->
<q-input <q-input
:model-value="email" :model-value="email"
@update:model-value="$emit('update:email', $event)" @update:model-value="$emit('update:email', $event)"
outlined outlined
class="q-my-sm" class="q-my-sm"
dense dense
...@@ -546,6 +530,20 @@ ...@@ -546,6 +530,20 @@
></q-input> ></q-input>
</div> </div>
</div> </div>
<div class="row flex-center">
<div class="col-3 text-weight-medium">Đơn vị chủ quản</div>
<div class="col-8">
<q-input
:model-value="unitName"
class="q-my-sm"
outlined
dense
disable
></q-input>
</div>
</div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ $t('artist.artistInformation.titleDataField.userAdminister') }} {{ $t('artist.artistInformation.titleDataField.userAdminister') }}
...@@ -560,6 +558,7 @@ ...@@ -560,6 +558,7 @@
></q-input> ></q-input>
</div> </div>
</div> </div>
<div class="row flex-center"> <div class="row flex-center">
<div class="col-3 text-weight-medium"> <div class="col-3 text-weight-medium">
{{ {{
...@@ -611,14 +610,13 @@ ...@@ -611,14 +610,13 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="mnBookingPhoneRules" <!-- :error="mnBookingPhoneRules"
:error-message="errorMessmnBookingPhone" --> :error-message="errorMessmnBookingPhone" -->
<q-input <q-input
:model-value="mnBookingPhone" :model-value="mnBookingPhone"
@update:model-value="$emit('update:mnBookingPhone', $event)" @update:model-value="$emit('update:mnBookingPhone', $event)"
mask="##########" mask="##########"
class="q-my-sm" class="q-my-sm"
outlined outlined
dense dense
hide-bottom-space hide-bottom-space
...@@ -631,12 +629,11 @@ ...@@ -631,12 +629,11 @@
<!-- <span style="color: red">*</span> --> <!-- <span style="color: red">*</span> -->
</div> </div>
<div class="col-8"> <div class="col-8">
<!-- :error="mnBookingEmailRules" <!-- :error="mnBookingEmailRules"
:error-message="errorMessmnBookingEmail" --> :error-message="errorMessmnBookingEmail" -->
<q-input <q-input
:model-value="mnBookingEmail" :model-value="mnBookingEmail"
@update:model-value="$emit('update:mnBookingEmail', $event)" @update:model-value="$emit('update:mnBookingEmail', $event)"
outlined outlined
class="q-my-sm" class="q-my-sm"
dense dense
...@@ -691,8 +688,8 @@ ...@@ -691,8 +688,8 @@
</div> </div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted ,PropType, ref, Ref } from 'vue'; import { defineComponent, onMounted, PropType, ref, Ref } from 'vue';
import { i18n } from 'src/boot/i18n'; import { i18n } from 'src/boot/i18n';
// import UploadImage from '../../upload-image/index.vue'; // import UploadImage from '../../upload-image/index.vue';
import moment from 'moment'; import moment from 'moment';
...@@ -700,11 +697,8 @@ import { FieldType, NationalityType } from 'src/assets/type'; ...@@ -700,11 +697,8 @@ import { FieldType, NationalityType } from 'src/assets/type';
import { API_PATHS, config } from 'src/assets/configurations.example'; import { API_PATHS, config } from 'src/assets/configurations.example';
import { api, BaseResponseBody } from 'src/boot/axios'; import { api, BaseResponseBody } from 'src/boot/axios';
import { AxiosResponse } from 'axios'; import { AxiosResponse } from 'axios';
import { import { ProvinceType } from 'src/assets/type';
ProvinceType,
} from 'src/assets/type'
export default defineComponent({ export default defineComponent({
props: { props: {
mnBookingPhone: { type: String, required: true }, mnBookingPhone: { type: String, required: true },
mnBookingEmail: { type: String, required: true }, mnBookingEmail: { type: String, required: true },
...@@ -712,6 +706,7 @@ export default defineComponent({ ...@@ -712,6 +706,7 @@ export default defineComponent({
mnIns: { type: String, required: true }, mnIns: { type: String, required: true },
mnWhatsapp: { type: String, required: true }, mnWhatsapp: { type: String, required: true },
mnName: { type: String, required: true }, mnName: { type: String, required: true },
unitName: { type: String, required: true },
mnPhone: { type: String, required: true }, mnPhone: { type: String, required: true },
mnEmail: { type: String, required: true }, mnEmail: { type: String, required: true },
hidden_img: { type: Boolean, required: true }, hidden_img: { type: Boolean, required: true },
...@@ -724,9 +719,9 @@ export default defineComponent({ ...@@ -724,9 +719,9 @@ export default defineComponent({
sex: { type: Number, required: true }, sex: { type: Number, required: true },
nationality: { type: Object as PropType<NationalityType>, required: true }, nationality: { type: Object as PropType<NationalityType>, required: true },
status: { type: Number, required: true }, status: { type: Number, required: true },
address: { type: String ,required: true }, address: { type: String, required: true },
fields: { type: Object as PropType<FieldType>, required: true }, fields: { type: Object as PropType<FieldType>, required: true },
musics: {type: String, required: true }, musics: { type: String, required: true },
works: { type: Number, required: true }, works: { type: Number, required: true },
qualification: { type: Number, required: true }, qualification: { type: Number, required: true },
artistLevel: { type: Number, required: true }, artistLevel: { type: Number, required: true },
...@@ -745,7 +740,7 @@ export default defineComponent({ ...@@ -745,7 +740,7 @@ export default defineComponent({
professionOptions: { type: Array, required: true }, professionOptions: { type: Array, required: true },
artistLevelOptions: { type: Array, required: true }, artistLevelOptions: { type: Array, required: true },
workOptions: { type: Array, required: true }, workOptions: { type: Array, required: true },
musicOptions: { type:Array, required: true}, musicOptions: { type: Array, required: true },
favoriteScore: { type: Number, required: true }, favoriteScore: { type: Number, required: true },
artistCodeRules: { type: Boolean, required: true }, artistCodeRules: { type: Boolean, required: true },
fullNameRules: { type: Boolean, required: true }, fullNameRules: { type: Boolean, required: true },
...@@ -756,7 +751,7 @@ export default defineComponent({ ...@@ -756,7 +751,7 @@ export default defineComponent({
phoneNumberAdministerRules: { type: Boolean, required: true }, phoneNumberAdministerRules: { type: Boolean, required: true },
// addressRules: { type: Boolean, required: true }, // addressRules: { type: Boolean, required: true },
account: { type: String, required: true }, account: { type: String, required: true },
accountRules:{type:Boolean, required: true}, accountRules: { type: Boolean, required: true },
// phoneNumberRules: { type: Boolean, required: true }, // phoneNumberRules: { type: Boolean, required: true },
// sexRules: { type: Boolean, required: true }, // sexRules: { type: Boolean, required: true },
// nationalityRules: { type: Boolean, required: true }, // nationalityRules: { type: Boolean, required: true },
...@@ -771,16 +766,13 @@ export default defineComponent({ ...@@ -771,16 +766,13 @@ export default defineComponent({
// errorMessmnBookingEmail: { type: String, required: true }, // errorMessmnBookingEmail: { type: String, required: true },
// mnBookingEmailRules: { type: Boolean, required: true }, // mnBookingEmailRules: { type: Boolean, required: true },
// mnBookingPhoneRules: { type: Boolean, required: true }, // mnBookingPhoneRules: { type: Boolean, required: true },
// options: { type: String, required: true }, // options: { type: String, required: true },
provinceOptions: {type: Array, provinceOptions: { type: Array, required: true },
required: true,},
}, },
// components: { // components: {
// UploadImage, // UploadImage,
// }, // },
setup(_, context) { setup(_, context) {
const BirthdayDatePicker = ref(moment().format('YYYY/MM/DD')); const BirthdayDatePicker = ref(moment().format('YYYY/MM/DD'));
...@@ -793,42 +785,37 @@ export default defineComponent({ ...@@ -793,42 +785,37 @@ export default defineComponent({
context.emit('update:hidden_img', false); context.emit('update:hidden_img', false);
} }
}; };
const provinceOptions1:Ref<ProvinceType[]> = ref([]);
const provinceOptions1: Ref<ProvinceType[]> = ref([]);
const getProvinceOptions = async () => {
const response = (await api ({ const getProvinceOptions = async () => {
url : API_PATHS.getProvinceOptions, const response = (await api({
url: API_PATHS.getProvinceOptions,
method: 'GET', method: 'GET',
params: {}, params: {},
})) as AxiosResponse<BaseResponseBody<ProvinceType[]>>; })) as AxiosResponse<BaseResponseBody<ProvinceType[]>>;
if(response.data.error.code === config.API_RES_CODE.OK.code){ if (response.data.error.code === config.API_RES_CODE.OK.code) {
provinceOptions1.value = response.data.data provinceOptions1.value = response.data.data;
} }
} };
const options = ref(provinceOptions1);
const options = ref(provinceOptions1) const filterFn = (val: string, update: (fn: () => void) => void) => {
const filterFn = (val:string, update:(fn: () => void) => void) => {
if (!val) { if (!val) {
update(() => { update(() => {
options.value = [...provinceOptions1.value] options.value = [...provinceOptions1.value];
}); });
return ; return;
} } else {
else { update(() => {
update(() => {
const needle = val.toLowerCase(); const needle = val.toLowerCase();
options.value = provinceOptions1.value.filter( options.value = provinceOptions1.value.filter(
(v: { name: string }) => (v: { name: string }) => v.name.toLowerCase().indexOf(needle) > 1
v.name.toLowerCase().indexOf(needle) > 1 );
);
}); });
} }
} };
const upload = ref(null); const upload = ref(null);
const uploadBanner = () => { const uploadBanner = () => {
...@@ -855,10 +842,10 @@ export default defineComponent({ ...@@ -855,10 +842,10 @@ export default defineComponent({
const onCancelClick = () => { const onCancelClick = () => {
openDialog.value = false; openDialog.value = false;
}; };
const errorMessAccount = i18n.global.t(
const errorMessAccount = i18n.global.t( 'artist.artistInformation.validateMessages.requireAccount' 'artist.artistInformation.validateMessages.requireAccount'
); );
const errorMessArtistCode = i18n.global.t( const errorMessArtistCode = i18n.global.t(
'artist.artistInformation.validateMessages.requireArtistCode' 'artist.artistInformation.validateMessages.requireArtistCode'
); );
...@@ -871,7 +858,7 @@ export default defineComponent({ ...@@ -871,7 +858,7 @@ export default defineComponent({
// const errorMessBirthday = i18n.global.t( // const errorMessBirthday = i18n.global.t(
// 'artist.artistInformation.validateMessages.requireBirthday' // 'artist.artistInformation.validateMessages.requireBirthday'
// ); // );
// const errorMessSex = i18n.global.t( // const errorMessSex = i18n.global.t(
// 'artist.artistInformation.validateMessages.requireSex' // 'artist.artistInformation.validateMessages.requireSex'
// ); // );
...@@ -894,7 +881,7 @@ export default defineComponent({ ...@@ -894,7 +881,7 @@ export default defineComponent({
'artist.artistInformation.validateMessages.requireArtistLevel' 'artist.artistInformation.validateMessages.requireArtistLevel'
); );
onMounted(() => { onMounted(() => {
void getProvinceOptions() void getProvinceOptions();
}); });
return { return {
check_infoBooking: ref(false), check_infoBooking: ref(false),
...@@ -916,7 +903,7 @@ export default defineComponent({ ...@@ -916,7 +903,7 @@ export default defineComponent({
// errorMessBirthday, // errorMessBirthday,
// errorMessSex, // errorMessSex,
// errorMessNationality, // errorMessNationality,
// errorMessAddress, // errorMessAddress,
// errorMessFields, // errorMessFields,
errorMessWorks, errorMessWorks,
...@@ -924,9 +911,9 @@ export default defineComponent({ ...@@ -924,9 +911,9 @@ export default defineComponent({
errorMessArtistLevel, errorMessArtistLevel,
provinceOptions1, provinceOptions1,
options, options,
// filterArrayOrganizational, // filterArrayOrganizational,
getProvinceOptions getProvinceOptions,
}; };
}, },
...@@ -956,6 +943,7 @@ export default defineComponent({ ...@@ -956,6 +943,7 @@ export default defineComponent({
'update:hidden_img', 'update:hidden_img',
'update:status', 'update:status',
'update:mnName', 'update:mnName',
'update:unitName',
'update:mnPhone', 'update:mnPhone',
'update:mnEmail', 'update:mnEmail',
'update:mnBookingPhone', 'update:mnBookingPhone',
...@@ -969,15 +957,6 @@ export default defineComponent({ ...@@ -969,15 +957,6 @@ export default defineComponent({
'SetAvatar', 'SetAvatar',
'deleteAvatar', 'deleteAvatar',
'UpdateBirtday', 'UpdateBirtday',
], ],
}); });
</script> </script>
...@@ -165,8 +165,7 @@ ...@@ -165,8 +165,7 @@
<!-- nghệ sỹ --> <!-- nghệ sỹ -->
<div class="row"> <div class="row">
<div class="col-auto text-h6 text-weight-regular flex q-ml-md"> <div class="col-auto text-h6 text-weight-regular flex q-ml-md">
{{ $t('managingUnitAdd.titleAdd') {{ $t('managingUnitAdd.titleAdd') }}
}}
</div> </div>
<q-space></q-space> <q-space></q-space>
<div class="col-auto"> <div class="col-auto">
...@@ -836,8 +835,8 @@ export default defineComponent({ ...@@ -836,8 +835,8 @@ export default defineComponent({
const newArtistList = [...props.artistList]; const newArtistList = [...props.artistList];
if (selectedContract.value) { if (selectedContract.value) {
newArtistList[selectedContract.value.index] = { newArtistList[selectedContract.value.index] = {
contractFrom: contractTimeFrom.value, contractFrom: `${contractTimeFrom.value} 00:00:00`,
contractTo: contractTimeTo.value, contractTo: `${contractTimeTo.value} 00:00:00`,
timeAdd: `${contractTimeFrom.value} - ${contractTimeTo.value}`, timeAdd: `${contractTimeFrom.value} - ${contractTimeTo.value}`,
status: artistStatus.value, status: artistStatus.value,
artistId: artistName.value?.id, artistId: artistName.value?.id,
......
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
@update:model-value="$emit('update:birthday', $event)" @update:model-value="$emit('update:birthday', $event)"
:label="$t('userPage.dialogLabel.fieldLabels.birthday')" :label="$t('userPage.dialogLabel.fieldLabels.birthday')"
outlined outlined
readonly
hide-bottom-space hide-bottom-space
> >
<template v-slot:append> <template v-slot:append>
......
...@@ -75,7 +75,6 @@ ...@@ -75,7 +75,6 @@
type="text" type="text"
class="q-my-sm" class="q-my-sm"
outlined outlined
hide-bottom-space hide-bottom-space
></q-input> ></q-input>
...@@ -98,7 +97,7 @@ ...@@ -98,7 +97,7 @@
@update:model-value="$emit('update:birthday', $event)" @update:model-value="$emit('update:birthday', $event)"
:label="$t('userPage.dialogLabel.fieldLabels.birthday')" :label="$t('userPage.dialogLabel.fieldLabels.birthday')"
outlined outlined
readonly
hide-bottom-space hide-bottom-space
> >
<template v-slot:append> <template v-slot:append>
......
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
v-model:mn-whatsapp="mnWhatsapp" v-model:mn-whatsapp="mnWhatsapp"
v-model:favorite-score="favoriteScore" v-model:favorite-score="favoriteScore"
v-model:check_infoBooking="check_infoBooking" v-model:check_infoBooking="check_infoBooking"
v-model:unitName="unitName"
:accountRules="accountRules" :accountRules="accountRules"
:errorMessmnBookingPhone="errorMessmnBookingPhone" :errorMessmnBookingPhone="errorMessmnBookingPhone"
:errorMessmnBookingEmail="errorMessmnBookingEmail" :errorMessmnBookingEmail="errorMessmnBookingEmail"
......
...@@ -103,6 +103,7 @@ export default defineComponent({ ...@@ -103,6 +103,7 @@ export default defineComponent({
const artistName: Ref<string | null> = ref(null); const artistName: Ref<string | null> = ref(null);
const birthday: Ref<string | null> = ref(null); const birthday: Ref<string | null> = ref(null);
const sex: Ref<number | null> = ref(null); const sex: Ref<number | null> = ref(null);
const unitName: Ref<string | null> = ref(null);
const nationality: Ref<NationalityType> = ref({ const nationality: Ref<NationalityType> = ref({
id: 1, id: 1,
name: 'Việt Nam', name: 'Việt Nam',
...@@ -377,6 +378,7 @@ export default defineComponent({ ...@@ -377,6 +378,7 @@ export default defineComponent({
email.value = ArtistInformation.email; email.value = ArtistInformation.email;
facebook.value = ArtistInformation.facebook; facebook.value = ArtistInformation.facebook;
facebookMessage.value = ArtistInformation.facebookMessage; facebookMessage.value = ArtistInformation.facebookMessage;
unitName.value = ArtistInformation.artistOwner?.name
instagram.value = ArtistInformation.instagram; instagram.value = ArtistInformation.instagram;
whatsapp.value = ArtistInformation.whatsapp; whatsapp.value = ArtistInformation.whatsapp;
mnName.value = ArtistInformation.mnName; mnName.value = ArtistInformation.mnName;
...@@ -995,7 +997,7 @@ export default defineComponent({ ...@@ -995,7 +997,7 @@ export default defineComponent({
sex, sex,
nationality, nationality,
address, address,
unitName,
status, status,
fields, fields,
works, works,
......
...@@ -458,7 +458,7 @@ export default defineComponent({ ...@@ -458,7 +458,7 @@ export default defineComponent({
email: unitEmail.value, email: unitEmail.value,
phoneNumber: unitPhoneNumber.value, phoneNumber: unitPhoneNumber.value,
status: unitStatus.value, status: unitStatus.value,
classification: unitField.value, classification: unitField.value === null ? null : unitField.value,
userName: unitUserName.value, userName: unitUserName.value,
password: unitPassword.value, password: unitPassword.value,
contracts: unitArtistList.value, contracts: unitArtistList.value,
......
...@@ -367,6 +367,8 @@ export default defineComponent({ ...@@ -367,6 +367,8 @@ export default defineComponent({
pageIndex: pageIndex.value, pageIndex: pageIndex.value,
pageSize: pageSize.value, pageSize: pageSize.value,
customerLevel: levelSelected.value?.id, customerLevel: levelSelected.value?.id,
companyName: companyNameSelected.value,
taxCode: taxCodeSelected.value,
}, },
})) as AxiosResponse< })) as AxiosResponse<
BaseResponseBody<PaginationResponse<CustomerType>> BaseResponseBody<PaginationResponse<CustomerType>>
......
<template> <template>
<div class="row q-col-gutter-sm flex-center q-mt-sm"> <div class="row q-col-gutter-sm flex-center q-mt-sm">
<q-space></q-space> <q-space></q-space>
<div class="col-2"> <div class="col-2">
<q-input <q-input
v-model="fullNameKeyword" v-model="fullNameKeyword"
dense dense
outlined outlined
:label="$t('artist.tableColumnsArtist.artistName')" label="Tên nghệ sỹ/nghệ danh"
clearable clearable
></q-input> ></q-input>
</div> </div>
...@@ -57,6 +58,16 @@ ...@@ -57,6 +58,16 @@
> >
</q-btn> </q-btn>
</div> </div>
<div class="col-auto">
<q-btn
@click="openDialogFilter = true"
square
color="primary"
icon="mdi-plus"
>
<q-tooltip :offset="[20, 10]">Bộ lọc nâng cao</q-tooltip>
</q-btn>
</div>
<div class="col-auto"> <div class="col-auto">
<q-btn <q-btn
class="q-mr-md" class="q-mr-md"
...@@ -130,6 +141,108 @@ ...@@ -130,6 +141,108 @@
</template> </template>
</q-table> </q-table>
</div> </div>
<q-dialog v-model="openDialogFilter" persistent>
<q-card style="min-width: 550px">
<q-card-section style="border-bottom: 1px solid #5d319e">
<div style="font-size: 20px">Bộ lọc nâng cao</div>
</q-card-section>
<!-- <div class="row">
<div class="col-6 px-4" >
<q-input
v-model="fullNameKeyword"
dense
outlined
label="Chi phí từ"
clearable
></q-input>
</div>
<div class="col-6">
<q-input
v-model="fullNameKeyword"
dense
outlined
label="Chi phí đến"
clearable
></q-input>
</div>
<div class="col-6">
<q-input
v-model="fullNameKeyword"
dense
outlined
label="Cấp độ"
clearable
></q-input>
</div>
<div class="col-6"></div>
<div class="col-6"></div>
<div class="col-6"></div>
<div class="col-12"></div>
</div> -->
<q-card-section
class="overflow-auto"
style="max-height: calc(100vh - 15rem)"
>
<div class="row q-col-gutter-sm">
<div class="col-6" style="padding: 12px">
<q-input
v-model="costFrom"
dense
outlined
label="Chi phí từ"
clearable
></q-input>
</div>
<div class="col-6" style="padding: 12px">
<q-input
v-model="costTo"
dense
outlined
label="Chi phí đến"
clearable
></q-input>
</div>
<!-- <div class="col-6" style="padding: 12px">
<q-input
v-model="level"
dense
outlined
label="Cấp độ"
clearable
></q-input>
</div> -->
<div class="col-12" style="padding: 8px 12px 8px 12px">
<q-select
v-model="musics"
:options="musicOptions"
option-value="id"
option-label="name"
label="Thể loại"
outlined
hide-bottom-space
clearable
dense
map-options
use-input
use-chips
type="text"
></q-select>
</div>
</div>
</q-card-section>
<q-card-actions align="right">
<q-btn flat color="primary" v-close-popup>Đóng</q-btn>
<q-btn flat color="primary" v-close-popup @click="filter">Lưu</q-btn>
</q-card-actions>
</q-card>
</q-dialog>
<div class="col-12 q-mt-sm"> <div class="col-12 q-mt-sm">
<Pagination <Pagination
v-model:currentPage="pageIndex" v-model:currentPage="pageIndex"
...@@ -172,7 +285,6 @@ ...@@ -172,7 +285,6 @@
:nationality-options="nationalityOptions" :nationality-options="nationalityOptions"
:profession-options="professionOptions" :profession-options="professionOptions"
:artist-level-options="artistLevelOptions" :artist-level-options="artistLevelOptions"
:work-options="workOptions" :work-options="workOptions"
@click:CloseBtn="isOpenNewArtistDialog = false" @click:CloseBtn="isOpenNewArtistDialog = false"
></AddNewArtistDialog> ></AddNewArtistDialog>
...@@ -192,8 +304,7 @@ import { ...@@ -192,8 +304,7 @@ import {
QualificationType, QualificationType,
WorkType, WorkType,
ProvinceType, ProvinceType,
MusicType MusicType,
} from 'src/assets/type'; } from 'src/assets/type';
import Pagination from 'components/pagination/index.vue'; import Pagination from 'components/pagination/index.vue';
import { api, BaseResponseBody } from 'src/boot/axios'; import { api, BaseResponseBody } from 'src/boot/axios';
...@@ -223,7 +334,7 @@ export default defineComponent({ ...@@ -223,7 +334,7 @@ export default defineComponent({
align: 'left', align: 'left',
sortable: false, sortable: false,
}, },
{ {
name: 'accountName', name: 'accountName',
field: 'accountName', field: 'accountName',
required: true, required: true,
...@@ -315,6 +426,7 @@ export default defineComponent({ ...@@ -315,6 +426,7 @@ export default defineComponent({
}, },
]; ];
const openDialogFilter = ref(false);
const userTableRowsArtist: Ref<unknown[]> = ref([]); const userTableRowsArtist: Ref<unknown[]> = ref([]);
const pageIndex = ref(1); const pageIndex = ref(1);
const pageSize = ref(20); const pageSize = ref(20);
...@@ -326,6 +438,8 @@ export default defineComponent({ ...@@ -326,6 +438,8 @@ export default defineComponent({
{ id: 3, name: 'Khác' }, { id: 3, name: 'Khác' },
]); ]);
const configImg = config; const configImg = config;
const musics: Ref<MusicType | null> = ref(null);
const fieldOptions: Ref<FieldType[]> = ref([]); const fieldOptions: Ref<FieldType[]> = ref([]);
const nationalityOptions: Ref<NationalityType[]> = ref([]); const nationalityOptions: Ref<NationalityType[]> = ref([]);
const professionOptions: Ref<QualificationType[]> = ref([]); const professionOptions: Ref<QualificationType[]> = ref([]);
...@@ -365,7 +479,14 @@ export default defineComponent({ ...@@ -365,7 +479,14 @@ export default defineComponent({
const mnFbmess: Ref<string | null> = ref(null); const mnFbmess: Ref<string | null> = ref(null);
const mnIns: Ref<string | null> = ref(null); const mnIns: Ref<string | null> = ref(null);
const mnWhatsapp: Ref<string | null> = ref(null); const mnWhatsapp: Ref<string | null> = ref(null);
const costFrom = ref(0);
const costTo = ref(100000000);
// const level: Ref<string | null> = ref(null);
const filter = () => {
void getListArtists();
};
const getListArtists = async () => { const getListArtists = async () => {
try { try {
...@@ -378,7 +499,10 @@ export default defineComponent({ ...@@ -378,7 +499,10 @@ export default defineComponent({
name: fullNameKeyword.value, name: fullNameKeyword.value,
field: fieldSelected.value?.id, field: fieldSelected.value?.id,
qualification: professionSelected.value?.id, qualification: professionSelected.value?.id,
address: provinceSelected.value?.name address: provinceSelected.value?.name,
musicTypeDto: musics.value?.id,
fromMoney: costFrom.value,
toMoney: costTo.value,
}, },
})) as AxiosResponse< })) as AxiosResponse<
BaseResponseBody<PaginationResponse<ArtistInfoType>> BaseResponseBody<PaginationResponse<ArtistInfoType>>
...@@ -414,7 +538,7 @@ export default defineComponent({ ...@@ -414,7 +538,7 @@ export default defineComponent({
} }
}; };
/// xếp hạng /// xếp hạng
const getArtistLevelOptions = async () => { const getArtistLevelOptions = async () => {
const response = (await api({ const response = (await api({
...@@ -426,33 +550,29 @@ export default defineComponent({ ...@@ -426,33 +550,29 @@ export default defineComponent({
artistLevelOptions.value = response.data.data; artistLevelOptions.value = response.data.data;
} }
}; };
// thể loại
const getMusicTypeOptions = async () => {
const response = (await api ({
url: API_PATHS.getMusicTypeOptions,
method: 'GET',
params: {},
})) as AxiosResponse<BaseResponseBody<MusicType[]>>;
if(response.data.error.code === config.API_RES_CODE.OK.code) {
musicOptions.value = response.data.data
}
}; // thể loại
const getMusicTypeOptions = async () => {
const getProvinceOptions = async () => { const response = (await api({
const response = (await api ({ url: API_PATHS.getMusicTypeOptions,
url : API_PATHS.getProvinceOptions,
method: 'GET', method: 'GET',
params: {}, params: {},
})) as AxiosResponse<BaseResponseBody<ProvinceType[]>>; })) as AxiosResponse<BaseResponseBody<MusicType[]>>;
if(response.data.error.code === config.API_RES_CODE.OK.code){ if (response.data.error.code === config.API_RES_CODE.OK.code) {
musicOptions.value = response.data.data;
provinceOptions.value = response.data.data
} }
} };
const getProvinceOptions = async () => {
const response = (await api({
url: API_PATHS.getProvinceOptions,
method: 'GET',
params: {},
})) as AxiosResponse<BaseResponseBody<ProvinceType[]>>;
if (response.data.error.code === config.API_RES_CODE.OK.code) {
provinceOptions.value = response.data.data;
}
};
const getQualificationOptions = async () => { const getQualificationOptions = async () => {
const response = (await api({ const response = (await api({
...@@ -520,9 +640,9 @@ export default defineComponent({ ...@@ -520,9 +640,9 @@ export default defineComponent({
void getWorkOptions(); void getWorkOptions();
void getProvinceOptions(); void getProvinceOptions();
void getMusicTypeOptions(); void getMusicTypeOptions();
}); });
return { return {
openDialogFilter,
configImg, configImg,
userTableColumnsArtist, userTableColumnsArtist,
userTableRowsArtist, userTableRowsArtist,
...@@ -546,6 +666,7 @@ export default defineComponent({ ...@@ -546,6 +666,7 @@ export default defineComponent({
phoneNumber, phoneNumber,
email, email,
facebook, facebook,
musics,
facebookMessage, facebookMessage,
instagram, instagram,
whatsapp, whatsapp,
...@@ -569,18 +690,22 @@ export default defineComponent({ ...@@ -569,18 +690,22 @@ export default defineComponent({
provinceSelected, provinceSelected,
artistLevelOptions, artistLevelOptions,
provinceOptions, provinceOptions,
costFrom,
costTo,
// level,
getProvinceOptions, getProvinceOptions,
getMusicTypeOptions, getMusicTypeOptions,
getFieldOptions, getFieldOptions,
nationalityOptions, nationalityOptions,
getNationalityOptions, getNationalityOptions,
workOptions, workOptions,
musicOptions, musicOptions,
getArtistLevelOptions, getArtistLevelOptions,
getQualificationOptions, getQualificationOptions,
getWorkOptions, getWorkOptions,
confirmDeleteArtist, confirmDeleteArtist,
deleteArtist, deleteArtist,
filter,
}; };
}, },
}); });
......
...@@ -89,7 +89,7 @@ export default defineComponent({ ...@@ -89,7 +89,7 @@ export default defineComponent({
}, },
]; ];
const userTableRows: Ref<UserObject[]> = ref([]); const userTableRows: Ref<UserObject[]> = ref([]);
const keyword = ref(''); const keyword:Ref<string | null> = ref(null);
const showDialog = ref(false); const showDialog = ref(false);
const showDialogUpdate = ref(false); const showDialogUpdate = ref(false);
...@@ -116,6 +116,10 @@ export default defineComponent({ ...@@ -116,6 +116,10 @@ export default defineComponent({
const listScheduleAccess = ref(['Chưa có lịch truy cập']); const listScheduleAccess = ref(['Chưa có lịch truy cập']);
const $store = useStore(); const $store = useStore();
const searchItem = () =>{
void getListUsers()
}
const getListUsers = async () => { const getListUsers = async () => {
try { try {
const response = (await api({ const response = (await api({
...@@ -124,7 +128,7 @@ export default defineComponent({ ...@@ -124,7 +128,7 @@ export default defineComponent({
params: { params: {
pageIndex: pageIndex.value, pageIndex: pageIndex.value,
pageSize: pageSize.value, pageSize: pageSize.value,
name: keyword.value.trim(), name: keyword.value?.trim(),
}, },
})) as AxiosResponse<BaseResponseBody<PaginationResponse<UserObject>>>; })) as AxiosResponse<BaseResponseBody<PaginationResponse<UserObject>>>;
if (response.data.error.code === config.API_RES_CODE.OK.code) { if (response.data.error.code === config.API_RES_CODE.OK.code) {
...@@ -424,6 +428,7 @@ export default defineComponent({ ...@@ -424,6 +428,7 @@ export default defineComponent({
openAddUserDialog, openAddUserDialog,
getListUsers, getListUsers,
changePageSize, changePageSize,
searchItem
}; };
}, },
}); });
...@@ -12,15 +12,16 @@ ...@@ -12,15 +12,16 @@
outlined outlined
:label="$t('userPage.tableColumns.keywordSearch')" :label="$t('userPage.tableColumns.keywordSearch')"
clearable clearable
></q-input> ></q-input>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<q-btn <q-btn
color="primary" color="primary"
no-caps
:label="$t('crudActions.search')" :label="$t('crudActions.search')"
style="width: 100px" style="width: 100px"
@click="getListUsers" @click="searchItem"
> >
</q-btn> </q-btn>
</div> </div>
......
...@@ -810,7 +810,7 @@ export default defineComponent({ ...@@ -810,7 +810,7 @@ export default defineComponent({
url: API_PATHS.addArtist, url: API_PATHS.addArtist,
method: 'POST', method: 'POST',
data: { data: {
musicTypeDto:musics.value , musicTypeDto: musics.value,
id: route.params.id, id: route.params.id,
avatar: avatarUploaded.value, avatar: avatarUploaded.value,
artistCode: artistCode.value, artistCode: artistCode.value,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment