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
0fe1b605
Commit
0fe1b605
authored
Apr 10, 2023
by
Nguyễn Đức Thắng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
48e5e5ad
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
503 additions
and
28 deletions
+503
-28
configurations.example.ts
src/assets/configurations.example.ts
+3
-0
type.ts
src/assets/type.ts
+44
-5
functions.ts
src/boot/functions.ts
+26
-8
listFinedAmount.vue
src/components/booking/listFinedAmount.vue
+1
-0
updateBooking.vue
src/components/booking/updateBooking.vue
+330
-0
index.vue
src/pages/danh-sach-booking/index.vue
+98
-14
index.vue
src/pages/nghe-sy/index.vue
+1
-1
No files found.
src/assets/configurations.example.ts
View file @
0fe1b605
...
@@ -191,4 +191,7 @@ export enum API_PATHS {
...
@@ -191,4 +191,7 @@ export enum API_PATHS {
// xác nhận
// xác nhận
depositUpdateStatus
=
'deposit/updateStatus'
,
depositUpdateStatus
=
'deposit/updateStatus'
,
// cập nhật booking
bookingUpdate
=
'booking/update'
,
}
}
src/assets/type.ts
View file @
0fe1b605
...
@@ -4,10 +4,15 @@ export type PaginationResponse<DataType> = {
...
@@ -4,10 +4,15 @@ export type PaginationResponse<DataType> = {
pageIndex
:
null
|
number
;
pageIndex
:
null
|
number
;
pageSize
:
null
|
number
;
pageSize
:
null
|
number
;
totalPages
:
number
;
totalPages
:
number
;
totalRecords
:
number
;
totalRecords
:
string
;
beginIndex
:
number
;
beginIndex
:
number
;
endIndex
:
number
;
endIndex
:
number
;
data
:
DataType
[];
data
:
DataType
[];
deposit
:
string
;
fineFee
:
string
;
refundAmount
:
string
;
totalDepositRequired
:
string
;
totalExpectedFee
:
string
;
};
};
export
type
FileUploadType
=
{
export
type
FileUploadType
=
{
byteSize
:
number
;
byteSize
:
number
;
...
@@ -362,7 +367,7 @@ export type CustomerType = {
...
@@ -362,7 +367,7 @@ export type CustomerType = {
representative
:
string
;
representative
:
string
;
position
:
string
;
position
:
string
;
level
:
CustomerLevelType
;
level
:
CustomerLevelType
;
representativeEmail
:
string
representativeEmail
:
string
;
};
};
export
type
CustomerLevelType
=
{
export
type
CustomerLevelType
=
{
id
:
number
;
id
:
number
;
...
@@ -533,9 +538,11 @@ export type ListBooking = {
...
@@ -533,9 +538,11 @@ export type ListBooking = {
performStatus
:
number
;
performStatus
:
number
;
fee
:
string
;
fee
:
string
;
bookingRandomCode
:
string
;
bookingRandomCode
:
string
;
expectFee
:
string
expectFee
:
string
;
customerName
:
string
customerName
:
string
;
createTime
:
string
createTime
:
string
;
TotalListBooking
:
TotalListBooking
;
customerDto
:
customerDto
;
};
};
export
type
ListArrayArtist
=
{
export
type
ListArrayArtist
=
{
...
@@ -896,3 +903,35 @@ export type ListFinedAmount = {
...
@@ -896,3 +903,35 @@ export type ListFinedAmount = {
updateTime
:
string
|
null
;
updateTime
:
string
|
null
;
artistBooking
:
ListBooking
;
artistBooking
:
ListBooking
;
};
};
export
type
TotalListBooking
=
{
deposit
:
number
;
fineFee
:
number
;
refundAmount
:
number
;
totalDepositRequired
:
number
;
totalExpectedFee
:
number
;
};
export
type
customerDto
=
{
address
:
string
;
approvalStatus
:
null
;
cccd
:
null
;
code
:
string
;
companyName
:
string
;
email
:
string
;
fullName
:
string
;
guest
:
null
;
id
:
number
;
level
:
string
;
levelId
:
null
;
password
:
string
;
phone
:
string
;
position
:
null
;
representative
:
string
;
representativeEmail
:
null
;
representativePhone
:
null
;
status
:
number
;
taxCode
:
string
;
type
:
null
;
userName
:
string
;
};
src/boot/functions.ts
View file @
0fe1b605
...
@@ -40,15 +40,33 @@ const isHasVietnamese = (str: string) => {
...
@@ -40,15 +40,33 @@ const isHasVietnamese = (str: string) => {
// } catch (e) {}
// } catch (e) {}
// })
// })
const
formatMoney
=
(
str
:
{
amount
:
string
})
=>
{
const
formatMoney
=
(
str
:
{
amount
:
string
})
=>
{
try
{
try
{
return
str
==
null
||
str
.
amount
==
null
const
decimalCount
=
0
;
?
''
const
thousands
=
','
;
:
str
.
amount
const
decimal
=
'.'
;
.
toString
()
.
replace
(
/
\D
/g
,
''
)
const
negativeSign
=
Number
(
str
.
amount
)
<
0
?
'-'
:
''
;
.
replace
(
/
\B(?=(\d{3})
+
(?!\d))
/g
,
'.'
);
}
catch
(
e
)
{}
const
i
=
parseInt
(
(
str
.
amount
=
Math
.
abs
(
Number
(
str
.
amount
)
||
0
).
toFixed
(
decimalCount
))
).
toString
();
const
j
=
i
.
length
>
3
?
i
.
length
%
3
:
0
;
return
(
negativeSign
+
(
j
?
i
.
substr
(
0
,
j
)
+
thousands
:
''
)
+
i
.
substr
(
j
).
replace
(
/
(\d{3})(?=\d)
/g
,
'$1'
+
thousands
)
+
(
decimalCount
?
decimal
+
Math
.
abs
(
Number
(
str
.
amount
)
-
Number
(
i
))
.
toFixed
(
decimalCount
)
.
slice
(
2
)
:
''
)
);
}
catch
(
e
)
{
console
.
log
(
e
);
}
};
};
const
isNullOrEmpty
=
(
str
:
any
)
=>
{
const
isNullOrEmpty
=
(
str
:
any
)
=>
{
...
...
src/components/booking/listFinedAmount.vue
View file @
0fe1b605
...
@@ -46,6 +46,7 @@
...
@@ -46,6 +46,7 @@
<template
v-slot:body-cell-artistName=
"item"
>
<template
v-slot:body-cell-artistName=
"item"
>
<td
style=
"text-align: center"
>
<td
style=
"text-align: center"
>
<div>
{{
item
.
row
.
artistBooking
.
artistName
}}
</div>
<div>
{{
item
.
row
.
artistBooking
.
artistName
}}
</div>
<div>
SĐT:
{{
item
.
row
.
artistBooking
.
artistName
}}
</div>
</td>
</td>
</
template
>
</
template
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
...
...
src/components/booking/updateBooking.vue
0 → 100644
View file @
0fe1b605
This diff is collapsed.
Click to expand it.
src/pages/danh-sach-booking/index.vue
View file @
0fe1b605
...
@@ -141,6 +141,27 @@
...
@@ -141,6 +141,27 @@
</div>
</div>
<div
class=
"col-12 q-mt-sm"
>
<div
class=
"col-12 q-mt-sm"
>
<div
class=
"q-ml-sm"
style=
"font-size: 14px"
>
<span
style=
"font-weight: bold"
></span>
<span
>
Đặt cọc:
<span
style=
"color: red; padding-right: 5px"
>
{{
TotalDeposit
}}
</span></span
>
<span
>
Tiền phạt:
<span
style=
"color: red; padding-right: 5px"
>
{{
TotalFineFee
}}
</span></span
>
<span
>
Tiền hoàn trả:
<span
style=
"padding-right: 5px; color: red"
>
{{
TotalRefundAmount
}}
</span></span
>
</div>
<q-table
<q-table
:rows=
"listBooking"
:rows=
"listBooking"
:columns=
"tableColumns"
:columns=
"tableColumns"
...
@@ -157,23 +178,34 @@
...
@@ -157,23 +178,34 @@
>
>
<
template
v-slot:body-cell-action=
"rowData"
>
<
template
v-slot:body-cell-action=
"rowData"
>
<q-td
style=
"padding: 0; text-align: center"
>
<q-td
style=
"padding: 0; text-align: center"
>
<q-btn
<div
style=
"display: flex;"
>
flat
<q-btn
round
flat
color=
"primary"
round
icon=
"mdi-information-outline"
color=
"primary"
@
click=
"detail(rowData.row.id)"
icon=
"mdi-pencil-outline"
>
@
click=
"openDialogUpdate(rowData.row)"
<q-tooltip
:offset=
"[10, 10]"
>
{{
>
$t
(
'listBooking.toolTipMessage'
)
<q-tooltip
:offset=
"[10, 10]"
>
{{
'Cập nhật'
}}
</q-tooltip>
}}
</q-tooltip>
</q-btn>
</q-btn>
<q-btn
flat
round
color=
"primary"
icon=
"mdi-information-outline"
@
click=
"detail(rowData.row.id)"
>
<q-tooltip
:offset=
"[10, 10]"
>
{{
$t
(
'listBooking.toolTipMessage'
)
}}
</q-tooltip>
</q-btn>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
<
template
v-slot:body-cell-bookingRandomCode=
"item"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
<q-td
:item=
"item"
style=
"text-align: center"
>
<div
style=
"cursor: pointer
;
"
@
click=
"detail(item.row.id)"
>
<div
style=
"cursor: pointer"
@
click=
"detail(item.row.id)"
>
{{
item
.
row
.
bookingRandomCode
}}
{{
item
.
row
.
bookingRandomCode
}}
</div>
</div>
</q-td>
</q-td>
...
@@ -208,7 +240,9 @@
...
@@ -208,7 +240,9 @@
<td
align=
"center"
>
<td
align=
"center"
>
<div>
<div>
{{
item
.
row
.
customerDto
.
fullName
}}
{{
item
.
row
.
customerDto
.
fullName
}}
<span
v-if=
"item.row.customerDto.phone"
>
-
{{
item
.
row
.
customerDto
.
phone
}}
</span>
<span
v-if=
"item.row.customerDto.phone"
>
-
{{
item
.
row
.
customerDto
.
phone
}}
</span
>
</div>
</div>
</td>
</td>
</
template
>
</
template
>
...
@@ -300,6 +334,12 @@
...
@@ -300,6 +334,12 @@
@
toggle=
"closedialogfinedAmount"
@
toggle=
"closedialogfinedAmount"
:data=
"detailInfoBooking"
:data=
"detailInfoBooking"
></listFinedAmount>
></listFinedAmount>
<update
:open=
"openUpdate"
@
toggle=
"openUpdate = !openUpdate"
:data=
"detailInfoBooking"
></update>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -311,9 +351,11 @@ import { AxiosResponse } from 'axios';
...
@@ -311,9 +351,11 @@ import { AxiosResponse } from 'axios';
import
{
i18n
}
from
'src/boot/i18n'
;
import
{
i18n
}
from
'src/boot/i18n'
;
import
{
defineComponent
,
onMounted
,
Ref
,
ref
}
from
'vue'
;
import
{
defineComponent
,
onMounted
,
Ref
,
ref
}
from
'vue'
;
import
Pagination
from
'components/pagination/index.vue'
;
import
Pagination
from
'components/pagination/index.vue'
;
import
update
from
'components/booking/updateBooking.vue'
;
import
{
import
{
PaginationResponse
,
PaginationResponse
,
ListBooking
,
ListBooking
,
TotalListBooking
,
ListArrayArtist
,
ListArrayArtist
,
ListArrayCust
,
ListArrayCust
,
}
from
'src/assets/type'
;
}
from
'src/assets/type'
;
...
@@ -328,6 +370,7 @@ export default defineComponent({
...
@@ -328,6 +370,7 @@ export default defineComponent({
detailBooking
,
detailBooking
,
Pagination
,
Pagination
,
listFinedAmount
,
listFinedAmount
,
update
,
},
},
setup
()
{
setup
()
{
const
tableColumns
=
[
const
tableColumns
=
[
...
@@ -523,11 +566,19 @@ export default defineComponent({
...
@@ -523,11 +566,19 @@ export default defineComponent({
const
showDialog
=
ref
(
false
);
const
showDialog
=
ref
(
false
);
const
detailInfoBooking
:
Ref
<
ListBooking
|
null
>
=
ref
(
null
);
const
detailInfoBooking
:
Ref
<
ListBooking
|
null
>
=
ref
(
null
);
const
listBooking
:
Ref
<
unknown
[]
>
=
ref
([]);
const
listBooking
:
Ref
<
unknown
[]
>
=
ref
([]);
const
TotalDeposit
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
TotalFineFee
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
openUpdate
=
ref
(
false
);
const
pageIndex
=
ref
(
1
);
const
pageIndex
=
ref
(
1
);
const
pageSize
=
ref
(
20
);
const
pageSize
=
ref
(
20
);
const
totalPage
=
ref
(
1
);
const
totalPage
=
ref
(
1
);
const
sreachArtist
:
Ref
<
ListArrayArtist
|
null
>
=
ref
(
null
);
const
sreachArtist
:
Ref
<
ListArrayArtist
|
null
>
=
ref
(
null
);
const
sreachUserName
:
Ref
<
ListArrayArtist
|
null
>
=
ref
(
null
);
const
sreachUserName
:
Ref
<
ListArrayArtist
|
null
>
=
ref
(
null
);
const
totalItem
:
Ref
<
TotalListBooking
|
null
>
=
ref
(
null
);
const
TotalRefundAmount
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
TotalExpectedFee
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
DepositRequiredTotal
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
totalRecords
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
sreachStatus
:
Ref
<
const
sreachStatus
:
Ref
<
{
id
:
number
;
name
:
string
;
color
:
string
}
|
undefined
{
id
:
number
;
name
:
string
;
color
:
string
}
|
undefined
>
=
ref
(
undefined
);
>
=
ref
(
undefined
);
...
@@ -584,6 +635,12 @@ export default defineComponent({
...
@@ -584,6 +635,12 @@ export default defineComponent({
});
});
});
});
};
};
const
openDialogUpdate
=
(
item
:
ListBooking
)
=>
{
openUpdate
.
value
=
true
;
detailInfoBooking
.
value
=
item
;
};
const
getArrayCust
=
async
()
=>
{
const
getArrayCust
=
async
()
=>
{
const
response
=
(
await
api
({
const
response
=
(
await
api
({
url
:
API_PATHS
.
getArrayCust
,
url
:
API_PATHS
.
getArrayCust
,
...
@@ -614,7 +671,6 @@ export default defineComponent({
...
@@ -614,7 +671,6 @@ export default defineComponent({
const
openDialogfinedAmount
=
(
item
:
ListBooking
)
=>
{
const
openDialogfinedAmount
=
(
item
:
ListBooking
)
=>
{
dialogfinedAmount
.
value
=
true
;
dialogfinedAmount
.
value
=
true
;
detailInfoBooking
.
value
=
item
;
detailInfoBooking
.
value
=
item
;
console
.
log
(
2312312
);
};
};
const
getListBooking
=
async
()
=>
{
const
getListBooking
=
async
()
=>
{
...
@@ -643,6 +699,25 @@ export default defineComponent({
...
@@ -643,6 +699,25 @@ export default defineComponent({
if
(
response
.
data
.
error
.
code
===
config
.
API_RES_CODE
.
OK
.
code
)
{
if
(
response
.
data
.
error
.
code
===
config
.
API_RES_CODE
.
OK
.
code
)
{
listBooking
.
value
=
response
.
data
.
data
.
data
;
listBooking
.
value
=
response
.
data
.
data
.
data
;
totalPage
.
value
=
response
.
data
.
data
.
totalPages
;
totalPage
.
value
=
response
.
data
.
data
.
totalPages
;
TotalDeposit
.
value
=
formatMoney
({
amount
:
response
.
data
.
data
.
deposit
,
});
TotalFineFee
.
value
=
formatMoney
({
amount
:
response
.
data
.
data
.
fineFee
,
});
TotalRefundAmount
.
value
=
formatMoney
({
amount
:
response
.
data
.
data
.
refundAmount
,
});
// DepositRequiredTotal = formatMoney({
// amount: response.data.data.totalDepositRequired,
// });
// TotalExpectedFee = formatMoney({
// amount: response.data.data.totalExpectedFee,
// });
// totalRecords = formatMoney({amount: response.data.data.totalRecords})
}
}
}
catch
(
error
)
{}
}
catch
(
error
)
{}
};
};
...
@@ -712,13 +787,22 @@ export default defineComponent({
...
@@ -712,13 +787,22 @@ export default defineComponent({
pageIndex
,
pageIndex
,
pageSize
,
pageSize
,
totalPage
,
totalPage
,
TotalDeposit
,
TotalFineFee
,
TotalRefundAmount
,
TotalExpectedFee
,
DepositRequiredTotal
,
changePageSize
,
changePageSize
,
getListBooking
,
getListBooking
,
isformatMoney
,
isformatMoney
,
openDialogUpdate
,
totalItem
,
ListStatusBooking
,
ListStatusBooking
,
ListPerformStatus
,
ListPerformStatus
,
sreachStatus
,
sreachStatus
,
sreachPerformStatus
,
sreachPerformStatus
,
totalRecords
,
openUpdate
,
};
};
},
},
});
});
...
...
src/pages/nghe-sy/index.vue
View file @
0fe1b605
...
@@ -455,7 +455,7 @@ export default defineComponent({
...
@@ -455,7 +455,7 @@ export default defineComponent({
const
pageIndex
=
ref
(
1
);
const
pageIndex
=
ref
(
1
);
const
pageSize
=
ref
(
20
);
const
pageSize
=
ref
(
20
);
const
totalPage
=
ref
(
0
);
const
totalPage
=
ref
(
0
);
const
totalRecords
=
ref
(
0
);
const
totalRecords
:
Ref
<
string
|
undefined
>
=
ref
(
''
);
const
fullNameKeyword
=
ref
(
''
);
const
fullNameKeyword
=
ref
(
''
);
const
sexOptions
=
ref
([
const
sexOptions
=
ref
([
{
id
:
1
,
name
:
'Nam'
},
{
id
:
1
,
name
:
'Nam'
},
...
...
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