update

parent 04ae26a1
export const config = { export const config = {
// lấy động theo url web
API_ENDPOINT: '/api/',
API_IMAGE_ENDPOINT: '/file/upload/',
// pro // pro
API_ENDPOINT: 'https://cms.vab.vn/api/', // API_ENDPOINT: 'https://cms.vab.vn/api/',
API_IMAGE_ENDPOINT: 'https://cms.vab.vn/file/upload/', // API_IMAGE_ENDPOINT: 'https://cms.vab.vn/file/upload/',
// dev // dev
// API_ENDPOINT: 'http://103.147.34.20:10700/api/', // API_ENDPOINT: 'http://103.147.34.20:10700/api/',
// API_IMAGE_ENDPOINT: 'http://103.147.34.20:10705/file/upload/', // API_IMAGE_ENDPOINT: 'http://103.147.34.20:10705/file/upload/',
......
...@@ -4,11 +4,27 @@ ...@@ -4,11 +4,27 @@
<q-form greedy @submit.prevent="handleConfirmAdd"> <q-form greedy @submit.prevent="handleConfirmAdd">
<q-card-section style="padding-bottom: 10px"> <q-card-section style="padding-bottom: 10px">
<q-item style="padding-left: 10px"> <q-item style="padding-left: 10px">
<q-item-section> <q-item-section
<q-item-label class="text-h6 text-weight-regular" ><q-item-label class="text-h6 text-weight-regular">
>Danh sách sản phẩm</q-item-label Danh sách sản phẩm
</q-item-label></q-item-section
> >
<q-item-section style="padding-right: 10px">
<q-input
dense
clearable
outlined
v-model="keyWord"
label="Tìm kiếm"
/>
</q-item-section> </q-item-section>
<q-btn
flat
rounded
@click="search"
color="primary"
icon="mdi-magnify"
/>
</q-item> </q-item>
</q-card-section> </q-card-section>
<div class="col-12 q-mt-sm"> <div class="col-12 q-mt-sm">
...@@ -103,6 +119,7 @@ export default defineComponent({ ...@@ -103,6 +119,7 @@ export default defineComponent({
(value) => { (value) => {
if (value) { if (value) {
selected.value = []; selected.value = [];
keyWord.value = '';
void listProductNotActive(); void listProductNotActive();
} }
} }
...@@ -158,6 +175,8 @@ export default defineComponent({ ...@@ -158,6 +175,8 @@ export default defineComponent({
]; ];
const configImg = config; const configImg = config;
const keyWord = ref('');
const selected: Ref<listProductNotActives[]> = ref([]); const selected: Ref<listProductNotActives[]> = ref([]);
const getSelectedString = () => { const getSelectedString = () => {
return selected.value.length === 0 return selected.value.length === 0
...@@ -169,12 +188,14 @@ export default defineComponent({ ...@@ -169,12 +188,14 @@ export default defineComponent({
pageIndex.value = 1; pageIndex.value = 1;
void listProductNotActive(); void listProductNotActive();
}; };
const search = () => {
pageIndex.value = 1;
void listProductNotActive();
};
const handleConfirmAdd = async () => { const handleConfirmAdd = async () => {
const data = [] as any[] const data = [] as any[];
for (let i = 0; i < selected.value.length; i++) { for (let i = 0; i < selected.value.length; i++) {
data.push(selected.value[i]?.id) data.push(selected.value[i]?.id);
} }
try { try {
const response = (await api({ const response = (await api({
...@@ -194,7 +215,7 @@ export default defineComponent({ ...@@ -194,7 +215,7 @@ export default defineComponent({
message: 'Thêm sản phẩm nổi bật thành công', message: 'Thêm sản phẩm nổi bật thành công',
actions: [{ icon: 'close', color: 'white' }], actions: [{ icon: 'close', color: 'white' }],
}); });
context.emit('saveBannerInfo') context.emit('saveBannerInfo');
context.emit('update:isOpened', false); context.emit('update:isOpened', false);
} }
} catch (error) {} } catch (error) {}
...@@ -218,6 +239,7 @@ export default defineComponent({ ...@@ -218,6 +239,7 @@ export default defineComponent({
pageSize: pageSize.value, pageSize: pageSize.value,
name: '', name: '',
artistName: '', artistName: '',
keyWord: keyWord.value === '' ? '' : keyWord.value.trim(),
}, },
})) as AxiosResponse< })) as AxiosResponse<
BaseResponseBody< BaseResponseBody<
...@@ -239,6 +261,7 @@ export default defineComponent({ ...@@ -239,6 +261,7 @@ export default defineComponent({
totalPage, totalPage,
configImg, configImg,
selected, selected,
keyWord,
changePageSize, changePageSize,
// hàm // hàm
// handleConfim, // handleConfim,
...@@ -246,6 +269,7 @@ export default defineComponent({ ...@@ -246,6 +269,7 @@ export default defineComponent({
getSelectedString, getSelectedString,
handleConfirmAdd, handleConfirmAdd,
handleTogle, handleTogle,
search,
}; };
}, },
emits: ['update:isOpened', 'saveBannerInfo'], emits: ['update:isOpened', 'saveBannerInfo'],
......
...@@ -412,10 +412,7 @@ export default defineComponent({ ...@@ -412,10 +412,7 @@ export default defineComponent({
void getListBooking(); void getListBooking();
}; };
const date = ref([ const date = ref(['', '']);
moment(new Date()).format('DD/MM/YYYY'),
moment(new Date()).add(7, 'days').format('DD/MM/YYYY'),
]);
const changeTime = () => { const changeTime = () => {
const startTime = Number( const startTime = Number(
moment(date.value[0], 'DD/MM/YYYY').format('YYYYMMDD') moment(date.value[0], 'DD/MM/YYYY').format('YYYYMMDD')
...@@ -429,9 +426,9 @@ export default defineComponent({ ...@@ -429,9 +426,9 @@ export default defineComponent({
}; };
const artistOptions: Ref<ListArrayArtist[]> = ref([]); const artistOptions: Ref<ListArrayArtist[]> = ref([]);
const customerOptions: Ref<ListArrayCust[] > = ref([]); const customerOptions: Ref<ListArrayCust[]> = ref([]);
const filteredOptions: Ref<ListArrayArtist[] > = ref([]); const filteredOptions: Ref<ListArrayArtist[]> = ref([]);
const customerFiltereOption: Ref<ListArrayCust[] > = ref([]); const customerFiltereOption: Ref<ListArrayCust[]> = ref([]);
const getArrayArtist = async () => { const getArrayArtist = async () => {
const response = (await api({ const response = (await api({
...@@ -450,11 +447,11 @@ export default defineComponent({ ...@@ -450,11 +447,11 @@ export default defineComponent({
}); });
} }
update(() => { update(() => {
const needle = val.toLowerCase() const needle = val.toLowerCase();
filteredOptions.value = artistOptions?.value.filter(option => { filteredOptions.value = artistOptions?.value.filter((option) => {
return option.artistName.toLowerCase().includes(needle) return option.artistName.toLowerCase().includes(needle);
}) });
}) });
}; };
const getArrayCust = async () => { const getArrayCust = async () => {
const response = (await api({ const response = (await api({
...@@ -474,13 +471,14 @@ export default defineComponent({ ...@@ -474,13 +471,14 @@ export default defineComponent({
}); });
} }
update(() => { update(() => {
const needle = val.toLowerCase() const needle = val.toLowerCase();
customerFiltereOption.value = customerOptions?.value.filter(option => { customerFiltereOption.value = customerOptions?.value.filter(
return option.fullName.toLowerCase().includes(needle) (option) => {
}) return option.fullName.toLowerCase().includes(needle);
})
} }
);
});
};
const getListBooking = async () => { const getListBooking = async () => {
try { try {
...@@ -494,8 +492,15 @@ export default defineComponent({ ...@@ -494,8 +492,15 @@ export default defineComponent({
custId: sreachUserName.value?.id, custId: sreachUserName.value?.id,
status: sreachStatus.value?.id, status: sreachStatus.value?.id,
performStatus: sreachPerformStatus.value?.id, performStatus: sreachPerformStatus.value?.id,
fromTime: moment(date.value[0], 'DD/MM/YYYY').format('DD/MM/YYYY'),
toTime: moment(date.value[1], 'DD/MM/YYYY').format('DD/MM/YYYY'), fromTime:
date.value[0] === ''
? ''
: moment(date.value[0], 'DD/MM/YYYY').format('DD/MM/YYYY'),
toTime:
date.value[1] === ''
? ''
: moment(date.value[1], 'DD/MM/YYYY').format('DD/MM/YYYY'),
}, },
})) as AxiosResponse<BaseResponseBody<PaginationResponse<ListBooking>>>; })) as AxiosResponse<BaseResponseBody<PaginationResponse<ListBooking>>>;
if (response.data.error.code === config.API_RES_CODE.OK.code) { if (response.data.error.code === config.API_RES_CODE.OK.code) {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<q-separator vertical spaced /> <q-separator vertical spaced />
</div> </div>
<q-space></q-space> <q-space></q-space>
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="codeCustomerRank" v-model="codeCustomerRank"
type="text" type="text"
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
label="Mã xếp hạng" label="Mã xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="nameCustomerRank" v-model="nameCustomerRank"
type="text" type="text"
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
label="Tên xếp hạng" label="Tên xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="levelCustomerRank" v-model="levelCustomerRank"
type="number" type="number"
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
label="Loại xếp hạng" label="Loại xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-auto"> <div class="col-auto">
<q-btn <q-btn
color="primary" color="primary"
...@@ -122,6 +122,10 @@ ...@@ -122,6 +122,10 @@
</div> </div>
</q-td> </q-td>
</template> </template>
<!-- <template v-slot:body-cell-code="rowData">
<q-td> </q-td>
</template> -->
</q-table> </q-table>
</div> </div>
...@@ -178,32 +182,15 @@ export default defineComponent({ ...@@ -178,32 +182,15 @@ export default defineComponent({
sortable: false, sortable: false,
}, },
{ {
name: 'code', name: '',
field: 'code', field: '',
required: true, required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.code'), label: 'Đánh giá sao',
headerStyle: 'text-align: center !important;',
align: 'left',
sortable: false,
},
{
name: 'name',
field: 'name',
required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.name'),
headerStyle: 'text-align: center !important;',
align: 'left',
sortable: false,
},
{
name: 'level',
field: 'level',
required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.level'),
headerStyle: 'text-align: center !important;', headerStyle: 'text-align: center !important;',
align: 'left', align: 'left',
sortable: false, sortable: false,
}, },
{ {
name: 'status', name: 'status',
field: 'status', field: 'status',
......
<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">
<div class="col-auto text-h6 text-weight-regular flex flex-center q-mr-md"> <div class="col-auto text-h6 text-weight-regular flex flex-center q-mr-md">
{{ $t('customerRank.title') }} Xếp hạng nghệ sĩ
<q-separator vertical spaced /> <q-separator vertical spaced />
</div> </div>
<q-space></q-space> <q-space></q-space>
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="codeCustomerRank" v-model="codeCustomerRank"
type="text" type="text"
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
label="Mã xếp hạng" label="Mã xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="nameCustomerRank" v-model="nameCustomerRank"
type="text" type="text"
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
label="Tên xếp hạng" label="Tên xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-2"> <!-- <div class="col-2">
<q-input <q-input
v-model="levelCustomerRank" v-model="levelCustomerRank"
type="number" type="number"
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
label="Loại xếp hạng" label="Loại xếp hạng"
clearable clearable
></q-input> ></q-input>
</div> </div> -->
<div class="col-auto"> <div class="col-auto">
<q-btn <q-btn
color="primary" color="primary"
...@@ -177,33 +177,17 @@ export default defineComponent({ ...@@ -177,33 +177,17 @@ export default defineComponent({
align: 'center', align: 'center',
sortable: false, sortable: false,
}, },
{ {
name: 'code', name: '',
field: 'code', field: '',
required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.code'),
headerStyle: 'text-align: center !important;',
align: 'left',
sortable: false,
},
{
name: 'name',
field: 'name',
required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.name'),
headerStyle: 'text-align: center !important;',
align: 'left',
sortable: false,
},
{
name: 'level',
field: 'level',
required: true, required: true,
label: i18n.global.t('customerRank.tableColumnsCustomerRank.level'), label: 'Đánh giá sao',
headerStyle: 'text-align: center !important;', headerStyle: 'text-align: center !important;',
align: 'left', align: 'left',
sortable: false, sortable: false,
}, },
{ {
name: 'status', name: 'status',
field: 'status', field: 'status',
......
...@@ -95,7 +95,7 @@ const routes: RouteRecordRaw[] = [ ...@@ -95,7 +95,7 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
path: '/xep-hang-nghe-sy', path: '/xep-hang-nghe-sy',
component: () => import('pages/xep-hang-nghe-sy/index.vue'), component: () => import('pages/nghe-sy/xep-hang-nghe-sy/index.vue'),
name: Pages.artistRank, name: Pages.artistRank,
}, },
{ {
...@@ -110,7 +110,8 @@ const routes: RouteRecordRaw[] = [ ...@@ -110,7 +110,8 @@ const routes: RouteRecordRaw[] = [
}, },
{ {
path: 'xep-hang-khach-hang', path: 'xep-hang-khach-hang',
component: () => import('pages/xep-hang-khach-hang/index.vue'), component: () =>
import('pages/khach-hang/xep-hang-khach-hang/index.vue'),
name: Pages.customerRank, name: Pages.customerRank,
}, },
{ {
......
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