update

parent 1c90e72f
......@@ -128,4 +128,6 @@ export enum API_PATHS {
getListRegister = 'artist/getListRegister',
accountArtistBrowsing = 'customer/accountArtistBrowsing',
detailRegisterArtist = 'artist/detailRegister',
listBookingNotApproval = 'booking/notApproval',
bookingBrowsing = 'booking/bookingBrowsing'
}
<template>
<q-dialog persistent :model-value="openDialogRefusedBrowser">
<q-card style="min-width: 900px" bordered>
<q-form greedy @submit.prevent="confirmRefusedCustomer">
<q-card-section style="padding-bottom: 10px">
<q-item style="padding-left: 10px">
<q-item-section>
<q-item-label class="text-h6 text-weight-regular"
>Lý do</q-item-label
>
</q-item-section>
</q-item>
</q-card-section>
<q-card-section style="padding-top: 0px">
<q-input
outlined
hide-bottom-space
:rules="contentRules"
v-model="content"
label="Nội dung"
type="textarea"
/>
</q-card-section>
<q-card-actions align="right">
<q-btn
color="grey"
no-caps
style="width: 90px"
label="Hủy"
@click="$emit('click:CloseBtn')"
/>
<q-btn
type="submit"
color="primary"
no-caps
style="width: 90px"
label="Ok"
/>
</q-card-actions>
</q-form>
</q-card>
</q-dialog>
</template>
<script lang="ts">
import { defineComponent, PropType, Ref, ref, watch } from 'vue';
import { Dialog, Notify } from 'quasar';
import { API_PATHS, config } from 'src/assets/configurations.example';
import { AxiosResponse } from 'axios';
import { api, BaseResponseBody } from 'src/boot/axios';
import { emit } from 'cluster';
export default defineComponent({
props: {
openDialogRefusedBrowser: {
type: Boolean,
required: true,
},
id: {
type: Number,
required: true,
},
},
setup(props, context) {
watch(
() => props.openDialogRefusedBrowser,
(value) => {
if (value) {
content.value = null;
}
}
);
const content: Ref<string | null> = ref(null);
const contentRules = [
(val?: string) => (val && val.trim().length) || 'Vui lòng nhập nội dung',
];
const confirmRefusedCustomer = async () => {
try {
const browserResult = (await api({
url: API_PATHS.bookingBrowsing,
method: 'POST',
data: {
id: props.id,
approvalStatus: 2,
reason: content.value,
},
})) as AxiosResponse<BaseResponseBody<unknown>>;
if (browserResult.data.error.code === config.API_RES_CODE.OK.code) {
Notify.create({
type: 'positive',
message: 'Từ chối duyệt thành công',
actions: [{ icon: 'close', color: 'white' }],
});
context.emit('editReCustomer');
context.emit('click:CloseBtn');
}
} catch (error) {}
};
return {
contentRules,
content,
confirmRefusedCustomer,
};
},
emits: ['click:CloseBtn', 'editReCustomer'],
});
</script>
......@@ -56,7 +56,7 @@ export default defineComponent({
type: Boolean,
required: true,
},
customerId: {
id: {
type: Number,
required: true,
},
......@@ -78,11 +78,11 @@ export default defineComponent({
const confirmRefusedCustomer = async () => {
try {
const browserResult = (await api({
url: API_PATHS.customerNotBrowsing,
url: API_PATHS.bookingBrowsing,
method: 'POST',
data: {
id: props.customerId,
isCustomer: 1,
id: props.id,
approvalStatus: 2,
reason: content.value,
},
......
This diff is collapsed.
......@@ -89,7 +89,7 @@
$t('customer.toolTipMessage.updateCustomerInfo')
}}</q-tooltip>
</q-btn> -->
<q-btn
<q-btn
flat
round
color="primary"
......@@ -98,7 +98,7 @@
>
<q-tooltip :offset="[20, 10]">Duyệt</q-tooltip>
</q-btn>
<q-btn
<q-btn
v-if="rowData.row.approvalStatus === 0"
flat
round
......@@ -107,7 +107,7 @@
icon="mdi-block-helper"
@click="confirmRefusedBrowserCustomer(rowData.row.id)"
>
<q-tooltip >Từ chối</q-tooltip>
<q-tooltip>Từ chối</q-tooltip>
</q-btn>
<!-- <q-btn
flat
......@@ -143,23 +143,23 @@
<template v-slot:body-cell-approvalStatus="rowData">
<q-td>
<div align="center">
<q-chip
v-if="rowData.value === 0"
color='orange'
<q-chip
v-if="rowData.value === 0"
color="orange"
text-color="white"
size="sm"
>
Chưa duyệt
Chưa duyệt
</q-chip>
<q-chip
v-if="rowData.value === 2"
color="red"
text-color="white"
size="sm"
>
Từ chối duyệt
</q-chip>
<q-chip
v-if="rowData.value === 2"
color="red"
text-color="white"
size="sm"
>
Từ chối duyệt
</q-chip>
</div>
</q-td>
</template>
......@@ -189,14 +189,13 @@
@editCustomer="updateCustomer"
></UpdateNewCustomerDialogComponent>
<RefusedBrowserCustomer
:customer-id="customerId"
v-model:open-dialog-refused-browser="openDialogRefusedBrowser"
<RefusedBrowserCustomer
:customer-id="customerId"
v-model:open-dialog-refused-browser="openDialogRefusedBrowser"
@click:CloseBtn="openDialogRefusedBrowser = false"
@editReCustomer="getListCustomers"
>
@editReCustomer="getListCustomers"
>
</RefusedBrowserCustomer>
</div>
</div>
</div>
......@@ -208,7 +207,7 @@ import { defineComponent, onMounted, Ref, ref } from 'vue';
import Pagination from 'components/pagination/index.vue';
// import AddNewCustomerDialogComponent from '../../components/customer/add-new-customer-dialog/index.vue';
import UpdateNewCustomerDialogComponent from '../../components/customer/browser-new-customer-dialog.vue';
import RefusedBrowserCustomer from '../../components/customer/openDialogRefusedBrowser.vue'
import RefusedBrowserCustomer from '../../components/customer/openDialogRefusedBrowser.vue';
import { API_PATHS, config } from 'src/assets/configurations.example';
import { AxiosResponse } from 'axios';
import { api, BaseResponseBody } from 'src/boot/axios';
......@@ -307,11 +306,11 @@ export default defineComponent({
align: 'center',
sortable: false,
},
{
{
name: 'approvalStatus',
field: 'approvalStatus',
required: true,
label: 'T.thái duyệt',
label: 'T.T Duyệt',
align: 'center',
sortable: false,
},
......@@ -399,11 +398,10 @@ export default defineComponent({
// });
// };
const confirmRefusedBrowserCustomer = (id:number) => {
customerId.value = id
openDialogRefusedBrowser.value = true
}
const confirmRefusedBrowserCustomer = (id: number) => {
customerId.value = id;
openDialogRefusedBrowser.value = true;
};
// const deleteCustomer = async (id: number) => {
// try {
......@@ -539,12 +537,12 @@ export default defineComponent({
void getCustomerLevelOptions();
});
return {
// openUpdateCustomerDialog,
// openUpdateCustomerDialog,
updateCustomer,
// openAddCustomerDialog,
// addCustomer,
// openAddCustomerDialog,
// addCustomer,
showDialogUpdate,
// showDialog,
// showDialog,
openDialogRefusedBrowser,
id,
userName,
......@@ -574,11 +572,11 @@ export default defineComponent({
totalPage,
changePageSize,
getCustomerLevelOptions,
// confirmDeleteCustomer,
// confirmDeleteCustomer,
confirmBrowserCustomer,
customerInfo,
customerId,
confirmRefusedBrowserCustomer
confirmRefusedBrowserCustomer,
};
},
});
......
......@@ -89,7 +89,7 @@
$t('customer.toolTipMessage.updateCustomerInfo')
}}</q-tooltip>
</q-btn>
<!-- <q-btn
<!-- <q-btn
flat
round
color="primary"
......@@ -98,7 +98,7 @@
>
<q-tooltip :offset="[20, 10]">Duyệt tài khoản</q-tooltip>
</q-btn> -->
<!-- <q-btn
<!-- <q-btn
flat
round
color="primary"
......@@ -137,7 +137,20 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-approvalStatus="rowData">
<q-td>
<div align="center">
<q-chip
v-if="rowData.value === 1"
color="positive"
text-color="white"
size="sm"
>
Duyệt
</q-chip>
</div>
</q-td>
</template>
<!-- <template v-slot:body-cell-approvalStatus="rowData">
<q-td>
<div align="center">
......@@ -188,7 +201,6 @@
@editReCustomer="getListCustomers"
>
</RefusedBrowserCustomer> -->
</div>
</div>
</div>
......@@ -299,7 +311,7 @@ export default defineComponent({
align: 'center',
sortable: false,
},
{
{
name: 'approvalStatus',
field: 'approvalStatus',
required: true,
......@@ -391,8 +403,8 @@ export default defineComponent({
void deleteCustomer(id);
});
};
const confirmBrowserCustomer = (id: number) => {
Dialog.create({
const confirmBrowserCustomer = (id: number) => {
Dialog.create({
title: i18n.global.t(
'customer.confirmActionsTitle.confirmDeleteUserTitle'
),
......@@ -400,29 +412,29 @@ export default defineComponent({
// i18n.global.t(
// 'customer.confirmActionsTitle.confirmDeleteUserContent'
// ),
cancel: i18n.global.t(
'customer.confirmActionsTitle.confirmDeleteUserCancelBtnLabel'
),
color: 'secondary',
}).onOk(() => {
// void deleteCustomer(id);
void browserCustomer(id);
void browserCustomer(id);
});
};
const confirmRefusedBrowserCustomer = (id:number) => {
customerId.value = id
openDialogRefusedBrowser.value = true
}
const browserCustomer = async (id:number) => {
try {
const browserResult = (await api({
};
const confirmRefusedBrowserCustomer = (id: number) => {
customerId.value = id;
openDialogRefusedBrowser.value = true;
};
const browserCustomer = async (id: number) => {
try {
const browserResult = (await api({
url: API_PATHS.browserCustomer,
method: 'POST',
data: {
id: id,
isCustomer: 1,
approvalStatus:1
approvalStatus: 1,
},
})) as AxiosResponse<BaseResponseBody<unknown>>;
......@@ -433,11 +445,9 @@ export default defineComponent({
actions: [{ icon: 'close', color: 'white' }],
});
void getListCustomers();
}
} catch (error) {
}
}
}
} catch (error) {}
};
const deleteCustomer = async (id: number) => {
try {
......@@ -612,7 +622,7 @@ export default defineComponent({
confirmBrowserCustomer,
customerInfo,
customerId,
confirmRefusedBrowserCustomer
confirmRefusedBrowserCustomer,
};
},
});
......
......@@ -374,7 +374,7 @@ export default defineComponent({
name: 'approvalStatus',
field: 'approvalStatus',
required: true,
label: 'T.Thái chờ duyệt',
label: 'T.T Duyệt',
headerStyle: 'text-align: center !important;',
align: 'center',
sortable: false,
......
......@@ -22,6 +22,7 @@ export enum Pages {
infoVAB = 'thong-tin-chung',
menu = 'menu',
listBooking = 'danh-sach-booking',
listBookingBrowsing = 'danh-sach-booking-cho-duyet',
work = 'cong-viec',
configSystem = 'cau-hinh-trang-tinh',
news = 'cau-hinh-tin-tuc',
......@@ -134,6 +135,11 @@ const routes: RouteRecordRaw[] = [
component: () => import('pages/danh-sach-booking/index.vue'),
name: Pages.listBooking,
},
{
path: 'danh-sach-booking-cho-duyet',
component: () => import('pages/danh-sach-booking-cho-duyet/index.vue'),
name: Pages.listBookingBrowsing,
},
{
path: 'cong-viec',
component: () => import('pages/cong-viec/index.vue'),
......
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