Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
quasar-web-base
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyễn Hải Sơn
quasar-web-base
Commits
48e5e5ad
Commit
48e5e5ad
authored
Apr 08, 2023
by
Nguyễn Đức Thắng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UPDATE
parent
4515b843
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
197 additions
and
140 deletions
+197
-140
type.ts
src/assets/type.ts
+2
-0
listFinedAmount.vue
src/components/booking/listFinedAmount.vue
+21
-7
index.vue
src/components/detailBooking/index.vue
+121
-116
index.vue
src/pages/danh-sach-booking/index.vue
+53
-17
No files found.
src/assets/type.ts
View file @
48e5e5ad
...
@@ -534,6 +534,8 @@ export type ListBooking = {
...
@@ -534,6 +534,8 @@ export type ListBooking = {
fee
:
string
;
fee
:
string
;
bookingRandomCode
:
string
;
bookingRandomCode
:
string
;
expectFee
:
string
expectFee
:
string
customerName
:
string
createTime
:
string
};
};
export
type
ListArrayArtist
=
{
export
type
ListArrayArtist
=
{
...
...
src/components/booking/listFinedAmount.vue
View file @
48e5e5ad
...
@@ -48,6 +48,12 @@
...
@@ -48,6 +48,12 @@
<div>
{{
item
.
row
.
artistBooking
.
artistName
}}
</div>
<div>
{{
item
.
row
.
artistBooking
.
artistName
}}
</div>
</td>
</td>
</
template
>
</
template
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
<td
style=
"text-align: center"
>
<div>
{{
item
.
row
.
artistBooking
.
bookingRandomCode
}}
</div>
</td>
</
template
>
<
template
v-slot:body-cell-customerName=
"item"
>
<
template
v-slot:body-cell-customerName=
"item"
>
<td
style=
"text-align: center"
>
<td
style=
"text-align: center"
>
<div>
{{
item
.
row
.
artistBooking
.
customerName
}}
</div>
<div>
{{
item
.
row
.
artistBooking
.
customerName
}}
</div>
...
@@ -159,17 +165,16 @@ export default defineComponent({
...
@@ -159,17 +165,16 @@ export default defineComponent({
align
:
'center'
,
align
:
'center'
,
sortable
:
false
,
sortable
:
false
,
},
},
{
{
name
:
'bookingRandomCode'
,
name
:
'artistName'
,
field
:
'bookingRandomCode'
,
field
:
'artistName'
,
required
:
true
,
required
:
true
,
label
:
'
Tên nghệ sĩ
'
,
label
:
'
Mã booking
'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
align
:
'left'
,
align
:
'left'
,
sortable
:
false
,
sortable
:
false
,
},
},
{
{
name
:
'customerName'
,
name
:
'customerName'
,
field
:
'customerName'
,
field
:
'customerName'
,
required
:
true
,
required
:
true
,
...
@@ -179,6 +184,15 @@ export default defineComponent({
...
@@ -179,6 +184,15 @@ export default defineComponent({
sortable
:
false
,
sortable
:
false
,
},
},
{
name
:
'artistName'
,
field
:
'artistName'
,
required
:
true
,
label
:
'Tên nghệ sĩ'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
align
:
'left'
,
sortable
:
false
,
},
{
{
name
:
'fee'
,
name
:
'fee'
,
field
:
'fee'
,
field
:
'fee'
,
...
@@ -192,7 +206,7 @@ export default defineComponent({
...
@@ -192,7 +206,7 @@ export default defineComponent({
name
:
'reason'
,
name
:
'reason'
,
field
:
'reason'
,
field
:
'reason'
,
required
:
true
,
required
:
true
,
label
:
'
Nội dung
'
,
label
:
'
Lý do phạt
'
,
headerStyle
:
'text-align: center !important; width: 13%'
,
headerStyle
:
'text-align: center !important; width: 13%'
,
align
:
'left'
,
align
:
'left'
,
sortable
:
false
,
sortable
:
false
,
...
...
src/components/detailBooking/index.vue
View file @
48e5e5ad
...
@@ -3,7 +3,6 @@
...
@@ -3,7 +3,6 @@
persistent
persistent
:model-value=
"showDialog"
:model-value=
"showDialog"
@
update:model-value=
"$emit('update:showDialog', $event)"
@
update:model-value=
"$emit('update:showDialog', $event)"
>
>
<q-card
style=
"min-width: 60rem"
bordered
>
<q-card
style=
"min-width: 60rem"
bordered
>
<q-form
greedy
>
<q-form
greedy
>
...
@@ -13,8 +12,8 @@
...
@@ -13,8 +12,8 @@
<q-item-label
<q-item-label
class=
"text-h6 text-weight-regular"
class=
"text-h6 text-weight-regular"
style=
"text-align: center"
style=
"text-align: center"
>
{{
$t
(
'listBooking.dialogLabel.title'
)
}}
</q-item-label
>
{{
$t
(
'listBooking.dialogLabel.title'
)
}}
>
</q-item-label
>
</q-item-section>
</q-item-section>
</q-item>
</q-item>
</q-card-section>
</q-card-section>
...
@@ -23,118 +22,124 @@
...
@@ -23,118 +22,124 @@
<q-card-section>
<q-card-section>
<div
class=
"col-12 q-px-xl"
>
<div
class=
"col-12 q-px-xl"
>
<div
class=
"row q-col-gutter-sm"
>
<div
class=
"row q-col-gutter-sm"
>
<div
class=
"col-4 fs-14 color"
>
<div
class=
"col-6"
>
{{
$t
(
'listBooking.titleColumnsTable.bookingCode'
)
}}
:
<div
class=
"row q-col-gutter-sm"
>
</div>
<div
class=
"col-5 fs-14 color"
>
Mã booking:
</div>
<div
class=
"col-8 fs-14"
>
<div
class=
"col-7 fs-14"
>
{{
detailInfoBooking
.
bookingRandomCode
}}
{{
detailInfoBooking
.
bookingRandomCode
}}
</div>
</div>
<div
class=
"col-4 fs-14 color"
>
{{
$t
(
'listBooking.titleColumnsTable.artistName'
)
}}
:
<div
class=
"col-5 fs-14 color"
>
</div>
{{
$t
(
'listBooking.titleColumnsTable.artistName'
)
}}
:
<div
class=
"col-8 fs-14"
>
</div>
{{
detailInfoBooking
.
artistName
}}
<div
class=
"col-7 fs-14"
>
</div>
{{
detailInfoBooking
.
artistName
}}
</div>
<div
class=
"col-4 fs-14 color"
>
{{
$t
(
'listBooking.titleColumnsTable.userName'
)
}}
:
</div>
<div
class=
"col-5 fs-14 color"
>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
userName
}}
</div>
{{
$t
(
'listBooking.titleColumnsTable.userName'
)
}}
:
</div>
<div
class=
"col-4 fs-14 color"
>
<div
class=
"col-7 fs-14"
>
{{
$t
(
'listBooking.titleColumnsTable.address'
)
}}
:
{{
detailInfoBooking
.
customerName
}}
</div>
</div>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
address
}}
</div>
<div
class=
"col-5 fs-14 color"
>
<div
class=
"col-4 fs-14 color"
>
{{
$t
(
'listBooking.titleColumnsTable.content'
)
}}
:
{{
$t
(
'listBooking.titleColumnsTable.fromTime'
)
}}
:
</div>
</div>
<div
class=
"col-7 fs-14"
>
{{
detailInfoBooking
.
content
}}
</div>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
fromTime
}}
</div>
<div
class=
"col-5 fs-14 color"
>
<div
class=
"col-4 fs-14 color"
>
{{
$t
(
'listBooking.titleColumnsTable.address'
)
}}
:
{{
$t
(
'listBooking.titleColumnsTable.toTime'
)
}}
:
</div>
</div>
<div
class=
"col-7 fs-14"
>
{{
detailInfoBooking
.
address
}}
</div>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
toTime
}}
</div>
</div>
</div>
<div
class=
"col-4 fs-14 color"
>
<div
class=
"col-6"
>
{{
$t
(
'listBooking.titleColumnsTable.fee'
)
}}
:
<div
class=
"row q-col-gutter-sm"
>
</div>
<div
class=
"col-6 fs-14 color"
>
<div
class=
"col-8 fs-14"
>
{{
isformatMoney
(
detailInfoBooking
.
expectFee
)
}}
</div>
{{
'Thời gian đặt booking'
}}
:
</div>
<div
class=
"col-4 fs-14 color"
>
<div
class=
"col-6 fs-14"
>
{{
$t
(
'listBooking.titleColumnsTable.favoriteScore'
)
}}
:
{{
detailInfoBooking
.
createTime
}}
</div>
</div>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
favoriteScore
}}
<div
class=
"col-6 fs-14 color"
>
</div>
{{
$t
(
'listBooking.titleColumnsTable.fromTime'
)
}}
:
</div>
<div
class=
"col-4 fs-14 color"
>
<div
class=
"col-6 fs-14"
>
{{
$t
(
'listBooking.titleColumnsTable.status'
)
}}
:
{{
detailInfoBooking
.
fromTime
}}
</div>
</div>
<div
class=
"col-8 fs-14"
>
<q-chip
<div
class=
"col-6 fs-14 color"
>
size=
"sm"
{{
$t
(
'listBooking.titleColumnsTable.toTime'
)
}}
:
color=
"secondary"
</div>
v-if=
"detailInfoBooking.status === 0"
<div
class=
"col-6 fs-14"
>
{{
detailInfoBooking
.
toTime
}}
</div>
>
Chưa hoàn thành
</q-chip
>
<div
class=
"col-6 fs-14 color"
>
<q-chip
{{
$t
(
'listBooking.titleColumnsTable.fee'
)
}}
:
size=
"sm"
</div>
color=
"info"
<div
class=
"col-6 fs-14"
>
v-else-if=
"detailInfoBooking.status === 1"
{{
isformatMoney
(
detailInfoBooking
.
expectFee
)
}}
>
Đã hoàn thành
</q-chip
</div>
>
<q-chip
<div
class=
"col-6 fs-14 color"
>
size=
"sm"
{{
$t
(
'listBooking.titleColumnsTable.status'
)
}}
:
color=
"warning"
</div>
v-else-if=
"detailInfoBooking.status === 2"
<div
class=
"col-6 fs-14"
>
>
Đã hủy
</q-chip
<q-chip
>
size=
"sm"
<q-chip
color=
"secondary"
size=
"sm"
v-if=
"detailInfoBooking.status === 0"
color=
"warning"
>
Chưa hoàn thành
</q-chip
v-else-if=
"detailInfoBooking.status === 3"
>
>
Hết hạn
</q-chip
<q-chip
>
size=
"sm"
<q-chip
color=
"info"
size=
"sm"
v-else-if=
"detailInfoBooking.status === 1"
color=
"warning"
>
Đã hoàn thành
</q-chip
v-else-if=
"detailInfoBooking.status === 4"
>
>
Chờ hủy
</q-chip
<q-chip
>
size=
"sm"
color=
"warning"
</div>
v-else-if=
"detailInfoBooking.status === 2"
>
Đã hủy
</q-chip
>
<q-chip
size=
"sm"
color=
"warning"
v-else-if=
"detailInfoBooking.status === 3"
>
Hết hạn
</q-chip
<div
class=
"col-4 fs-14 color"
>
>
{{
$t
(
'listBooking.titleColumnsTable.performStatus'
)
}}
:
<q-chip
</div>
size=
"sm"
<div
class=
"col-8 fs-14"
>
color=
"warning"
<q-chip
v-else-if=
"detailInfoBooking.status === 4"
size=
"sm"
>
Chờ hủy
</q-chip
color=
"secondary"
>
v-if=
"detailInfoBooking.performStatus === 0"
</div>
>
Chưa xác nhận
</q-chip
>
<div
class=
"col-6 fs-14 color"
>
<q-chip
{{
$t
(
'listBooking.titleColumnsTable.performStatus'
)
}}
:
size=
"sm"
</div>
color=
"info"
<div
class=
"col-6 fs-14"
>
v-else-if=
"detailInfoBooking.performStatus === 1"
<q-chip
>
Đã xác nhận
</q-chip
size=
"sm"
>
color=
"secondary"
<q-chip
size=
"sm"
color=
"warning"
v-else
>
Từ chối
</q-chip>
v-if=
"detailInfoBooking.performStatus === 0"
</div>
>
Chưa xác nhận
</q-chip
>
<div
class=
"col-4 fs-14 color"
>
<q-chip
{{
$t
(
'listBooking.titleColumnsTable.content'
)
}}
:
size=
"sm"
color=
"info"
v-else-if=
"detailInfoBooking.performStatus === 1"
>
Đã xác nhận
</q-chip
>
<q-chip
size=
"sm"
color=
"warning"
v-else
>
Từ chối
</q-chip>
</div>
</div>
</div>
</div>
<div
class=
"col-8 fs-14"
>
{{
detailInfoBooking
.
content
}}
</div>
</div>
</div>
</div>
</div>
...
@@ -187,12 +192,12 @@ export default defineComponent({
...
@@ -187,12 +192,12 @@ export default defineComponent({
}
}
);
);
const
isformatMoney
=
(
value
:
string
)
=>
{
const
isformatMoney
=
(
value
:
string
)
=>
{
return
formatMoney
({
amount
:
value
});
return
formatMoney
({
amount
:
value
});
};
};
return
{
return
{
isformatMoney
,
isformatMoney
,
};
};
},
},
emits
:
[
'update:showDialog'
,
'click:CloseBtn'
],
emits
:
[
'update:showDialog'
,
'click:CloseBtn'
],
...
...
src/pages/danh-sach-booking/index.vue
View file @
48e5e5ad
...
@@ -170,6 +170,14 @@
...
@@ -170,6 +170,14 @@
</q-btn>
</q-btn>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
<div
style=
"cursor: pointer;"
@
click=
"detail(item.row.id)"
>
{{
item
.
row
.
bookingRandomCode
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-stt=
"item"
>
<
template
v-slot:body-cell-stt=
"item"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
{{
1
+
item
.
rowIndex
+
pageSize
*
(
pageIndex
-
1
)
}}
{{
1
+
item
.
rowIndex
+
pageSize
*
(
pageIndex
-
1
)
}}
...
@@ -190,6 +198,20 @@
...
@@ -190,6 +198,20 @@
</
template
>
</
template
>
</q-td>
</q-td>
</template>
</template>
<
template
v-slot:body-cell-time=
"item"
>
<td
align=
"center"
>
<div>
{{
item
.
row
.
fromTime
}}
-
{{
item
.
row
.
toTime
}}
</div>
</td>
</
template
>
<
template
v-slot:body-cell-info=
"item"
>
<td
align=
"center"
>
<div>
{{
item
.
row
.
customerDto
.
fullName
}}
<span
v-if=
"item.row.customerDto.phone"
>
-
{{
item
.
row
.
customerDto
.
phone
}}
</span>
</div>
</td>
</
template
>
<
template
v-slot:body-cell-performStatus=
"item"
>
<
template
v-slot:body-cell-performStatus=
"item"
>
<q-td
align=
"center"
>
<q-td
align=
"center"
>
...
@@ -231,7 +253,10 @@
...
@@ -231,7 +253,10 @@
<
template
v-slot:body-cell-finedAmount=
"item"
>
<
template
v-slot:body-cell-finedAmount=
"item"
>
<q-td
style=
"cursor: pointer"
align=
"center"
>
<q-td
style=
"cursor: pointer"
align=
"center"
>
<div
style=
"color: blue; text-decoration:underline;"
@
click=
"openDialogfinedAmount(item.row)"
>
<div
style=
"color: blue; text-decoration: underline"
@
click=
"openDialogfinedAmount(item.row)"
>
{{
isformatMoney
(
item
.
row
.
finedAmount
)
}}
{{
isformatMoney
(
item
.
row
.
finedAmount
)
}}
</div>
</div>
</q-td>
</q-td>
...
@@ -316,7 +341,7 @@ export default defineComponent({
...
@@ -316,7 +341,7 @@ export default defineComponent({
sortable
:
false
,
sortable
:
false
,
},
},
{
{
name
:
'bookingCode'
,
name
:
'booking
Random
Code'
,
field
:
'bookingRandomCode'
,
field
:
'bookingRandomCode'
,
required
:
true
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.bookingCode'
),
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.bookingCode'
),
...
@@ -334,8 +359,8 @@ export default defineComponent({
...
@@ -334,8 +359,8 @@ export default defineComponent({
sortable
:
false
,
sortable
:
false
,
},
},
{
{
name
:
'
customerName
'
,
name
:
'
info
'
,
field
:
'
customerName
'
,
field
:
'
info
'
,
required
:
true
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.userName'
),
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.userName'
),
headerStyle
:
'text-align: center !important; width: 9%'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
...
@@ -348,7 +373,7 @@ export default defineComponent({
...
@@ -348,7 +373,7 @@ export default defineComponent({
required
:
true
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.address'
),
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.address'
),
headerStyle
:
'text-align: center !important; width: 13%'
,
headerStyle
:
'text-align: center !important; width: 13%'
,
align
:
'
left
'
,
align
:
'
center
'
,
sortable
:
false
,
sortable
:
false
,
},
},
// {
// {
...
@@ -360,24 +385,35 @@ export default defineComponent({
...
@@ -360,24 +385,35 @@ export default defineComponent({
// align: 'left',
// align: 'left',
// sortable: false,
// sortable: false,
// },
// },
// {
// name: 'fromTime',
// field: 'fromTime',
// required: true,
// label: i18n.global.t('listBooking.titleColumnsTable.fromTime'),
// headerStyle: 'text-align: center !important; width: 9%',
// align: 'left',
// sortable: false,
// },
// {
// name: 'toTime',
// field: 'toTime',
// required: true,
// label: i18n.global.t('listBooking.titleColumnsTable.toTime'),
// headerStyle: 'text-align: center !important; width: 9%',
// align: 'left',
// sortable: false,
// },
{
{
name
:
'fromTime'
,
name
:
'time'
,
field
:
'fromTime'
,
field
:
'time'
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.fromTime'
),
headerStyle
:
'text-align: center !important; width: 9%'
,
align
:
'left'
,
sortable
:
false
,
},
{
name
:
'toTime'
,
field
:
'toTime'
,
required
:
true
,
required
:
true
,
label
:
i18n
.
global
.
t
(
'listBooking.titleColumnsTable.toTime'
)
,
label
:
'Bắt đầu - Kết thúc'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
headerStyle
:
'text-align: center !important; width: 9%'
,
align
:
'left'
,
align
:
'left'
,
sortable
:
false
,
sortable
:
false
,
},
},
// {
// {
// name: 'fee',
// name: 'fee',
// field: 'fee',
// field: 'fee',
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment