Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SwitchRoom
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
fz2907
SwitchRoom
Commits
83562a04
Commit
83562a04
authored
2 years ago
by
fz2907
Browse files
Options
Downloads
Patches
Plain Diff
history main body started
parent
6836f07a
No related branches found
No related tags found
1 merge request
!37
Start AgreedMatchPage to show the ongoing matches and history matches for user...
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
FrontendFolder/switch-room/src/components/AgreedMatchPage.vue
+186
-22
186 additions, 22 deletions
...tendFolder/switch-room/src/components/AgreedMatchPage.vue
with
186 additions
and
22 deletions
FrontendFolder/switch-room/src/components/AgreedMatchPage.vue
+
186
−
22
View file @
83562a04
...
@@ -25,7 +25,100 @@
...
@@ -25,7 +25,100 @@
</el-card>
</el-card>
</el-space>
</el-space>
</el-aside>
</el-aside>
<el-main>
Main
</el-main>
<el-main>
<!-- This is the main body part -->
<el-card
shadow=
"never"
class=
"main-card"
>
<span>
{{
displayPage
}}
Matched Record Detail
</span>
<el-form
ref=
"ruleFormRef"
:model=
"agreedRecord"
:rules=
"rules"
label-width=
"120px"
:label-position=
"'left'"
class=
"demo-ruleForm"
:size=
"formSize"
status-icon
>
<el-form-item></el-form-item>
<el-form-item
label=
"City Name:"
prop=
"city"
>
<el-input
v-model=
"agreedRecord.city"
:readonly=
"true"
/>
</el-form-item>
<el-form-item
label=
"State:"
prop=
"state"
>
<el-select
v-model=
"agreedRecord.state"
placeholder=
"Please select state"
:disabled=
"true"
>
<el-option
v-for=
"(state_item, index) in USA_STATE_INITAL_LIST"
:label=
"state_item"
:value=
"state_item"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"Trip Start Time"
>
<el-form-item
prop=
"startTime"
>
<el-date-picker
v-model=
"agreedRecord.startTime"
type=
"date"
label=
"Pick a date"
placeholder=
"Pick a date"
style=
"width: 100%"
:readonly=
"true"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"Trip End Time"
>
<el-form-item
prop=
"endTime"
>
<el-date-picker
v-model=
"agreedRecord.endTime"
type=
"date"
label=
"Pick a date"
placeholder=
"Pick a date"
style=
"width: 100%"
:readonly=
"true"
/>
</el-form-item>
</el-form-item>
<!-- Rating and comment when the agreement is due -->
<el-form-item
label=
"Rate Your Visitor:"
prop=
"toVisitorStar"
v-if=
"!agreedRecord.onGoing && displayPage==='Offer'"
>
<el-rate
v-model=
"agreedRecord.toVisitorStar"
:texts=
"['oops', 'disappointed', 'normal', 'good', 'great']"
show-text
/>
</el-form-item>
<el-form-item
label=
"Leave Comment:"
prop=
"toVisitorComment"
v-if=
"!agreedRecord.onGoing && displayPage==='Offer'"
>
</el-form-item>
<el-form-item
label=
"Rate Your Host:"
prop=
"toOfferStar"
v-if=
"!agreedRecord.onGoing && displayPage==='Wishlist'"
>
<el-rate
v-model=
"agreedRecord.toOfferStar"
:texts=
"['oops', 'disappointed', 'normal', 'good', 'great']"
show-text
/>
</el-form-item>
<el-form-item
label=
"Leave Comment:"
prop=
"toOfferComment"
v-if=
"!agreedRecord.onGoing && displayPage==='Wishlist'"
>
</el-form-item>
<el-button
type=
"primary"
v-if=
"buttonState === 'edit'"
@
click=
"onEdit()"
>
Edit Comment
</el-button>
<el-button
type=
"success"
v-if=
"buttonState === 'update'"
@
click=
"updateForm(ruleFormRef)"
>
Save
</el-button>
</el-form>
</el-card>
</el-main>
</el-container>
</el-container>
</el-container>
</el-container>
</div>
</div>
...
@@ -37,16 +130,20 @@ import { Calendar } from '@element-plus/icons-vue'
...
@@ -37,16 +130,20 @@ import { Calendar } from '@element-plus/icons-vue'
import
{
reactive
,
ref
,
onMounted
}
from
"
vue
"
;
import
{
reactive
,
ref
,
onMounted
}
from
"
vue
"
;
import
{
AgreedRecordModel
}
from
"
@/models/AgreedRecordModel
"
;
import
{
AgreedRecordModel
}
from
"
@/models/AgreedRecordModel
"
;
import
*
as
AgreedRecordService
from
"
@/services/AgreedMatchService
"
;
import
*
as
AgreedRecordService
from
"
@/services/AgreedMatchService
"
;
import
type
{
FormInstance
,
FormRules
}
from
"
element-plus
"
;
import
{
USA_STATE_INITAL_LIST
}
from
"
@/services/Constans
"
;
let
displayPage
=
null
;
let
displayPage
=
ref
(
""
)
;
const
sideList
=
reactive
({
value
:[]});
const
sideList
=
reactive
({
value
:[]});
const
agreedRecord
=
ref
(
new
AgreedRecordModel
());
const
agreedRecord
=
ref
(
new
AgreedRecordModel
());
const
buttonState
=
ref
(
"
edit
"
);
const
selectItem
=
(
listIdx
)
=>
{
const
selectItem
=
(
listIdx
:
number
)
=>
{
agreedRecord
.
value
=
sideList
[
listIdx
];
agreedRecord
.
value
=
sideList
.
value
[
listIdx
];
console
.
log
(
"
You selected index:
"
+
listIdx
+
"
, and data is:
"
,
agreedRecord
.
value
)
}
}
const
handleTabClick
=
(
tabIdx
)
=>
{
const
handleTabClick
=
(
tabIdx
:
number
)
=>
{
if
(
tabIdx
==
0
){
if
(
tabIdx
==
0
){
clickOnOfferTab
();
clickOnOfferTab
();
}
else
if
(
tabIdx
==
1
){
}
else
if
(
tabIdx
==
1
){
...
@@ -56,7 +153,7 @@ const handleTabClick = (tabIdx) => {
...
@@ -56,7 +153,7 @@ const handleTabClick = (tabIdx) => {
const
clickOnOfferTab
=
async
()
=>
{
const
clickOnOfferTab
=
async
()
=>
{
// Load agreed offers from backend
// Load agreed offers from backend
displayPage
=
"
o
ffer
"
;
displayPage
.
value
=
"
O
ffer
"
;
await
AgreedRecordService
.
getAgreedOfferRecord
().
then
((
response
)
=>
{
await
AgreedRecordService
.
getAgreedOfferRecord
().
then
((
response
)
=>
{
console
.
log
(
"
Receiving offer records from backend:
"
,
response
);
console
.
log
(
"
Receiving offer records from backend:
"
,
response
);
if
(
response
[
"
data
"
]
!==
null
){
if
(
response
[
"
data
"
]
!==
null
){
...
@@ -69,11 +166,10 @@ const clickOnOfferTab = async() =>{
...
@@ -69,11 +166,10 @@ const clickOnOfferTab = async() =>{
const
clickOnWishlistTab
=
async
()
=>
{
const
clickOnWishlistTab
=
async
()
=>
{
// Load agreed Wishlist from backend
// Load agreed Wishlist from backend
displayPage
=
"
wishlist
"
;
displayPage
.
value
=
"
Wishlist
"
;
await
AgreedRecordService
.
getAgreedWishlistRecord
().
then
((
response
)
=>
{
console
.
log
(
"
Receiving wishlist records from backend:
"
,
response
);
// remove it when done
// remove it when done
let
testData
=
{
let
testData
=
{
"
message
"
:
"
Success
"
,
"
message
"
:
"
Success
"
,
"
status
"
:
"
OK
"
,
"
status
"
:
"
OK
"
,
"
data
"
:
[
"
data
"
:
[
...
@@ -95,22 +191,90 @@ const clickOnWishlistTab = async() =>{
...
@@ -95,22 +191,90 @@ const clickOnWishlistTab = async() =>{
}
}
]
]
}
}
if
(
response
===
undefined
){
sideList
.
value
=
testData
[
"
data
"
]
sideList
.
value
=
testData
.
data
}
// remove it when done
if
(
response
[
"
data
"
]
!==
null
){
// await AgreedRecordService.getAgreedWishlistRecord().then((response)=>{
sideList
.
value
=
response
[
"
data
"
];
// console.log("Receiving wishlist records from backend: ", response);
}
else
{
// if(response["data"]!== null){
// TODO: display empty page
// sideList.value = response["data"];
}
// }else{
})
// // TODO: display empty page
// }
// })
}
}
const
formatDate
=
(
dateString
)
=>
{
const
formatDate
=
(
dateString
:
string
)
=>
{
const
date
=
new
Date
(
dateString
);
const
date
=
new
Date
(
dateString
);
return
new
Intl
.
DateTimeFormat
(
'
en-US
'
).
format
(
date
);
return
new
Intl
.
DateTimeFormat
(
'
en-US
'
).
format
(
date
);
}
}
const
rules
=
reactive
<
FormRules
>
({
cityName
:
[
{
required
:
true
,
message
:
"
Please give which city you want to visit.
"
,
trigger
:
"
blur
"
,
},
{
min
:
0
,
max
:
20
,
message
:
"
Length should be 0 to 20
"
,
trigger
:
"
blur
"
},
],
zipCode
:[
{
required
:
true
,
message
:
"
Please give the stat of the city located.
"
,
trigger
:
"
blur
"
,
},
],
state
:
[
{
required
:
true
,
message
:
"
Please give the stat of the city located.
"
,
trigger
:
"
blur
"
,
},
],
startTime
:
[
{
type
:
"
date
"
,
required
:
true
,
message
:
"
Please pick a date
"
,
trigger
:
"
change
"
,
},
],
endTime
:
[
{
type
:
"
date
"
,
required
:
true
,
message
:
"
Please pick a time
"
,
trigger
:
"
change
"
,
},
],
});
const
onEdit
=
()
=>
{
buttonState
.
value
=
"
update
"
;
}
const
updateForm
=
async
(
formEl
:
FormInstance
|
undefined
)
=>
{
if
(
!
formEl
)
return
;
await
formEl
.
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
AgreedRecordService
.
updateRatingInformation
(
agreedRecord
.
value
).
then
((
response
)
=>
{
console
.
log
(
"
Receiving wishlist item data
"
,
response
);
if
(
response
[
"
data
"
]
===
null
){
// TODO: create failed, handle it later
}
else
{
buttonState
.
value
=
"
edit
"
;
}
console
.
log
(
"
submit!
"
);
})
}
else
{
console
.
log
(
"
error submit!
"
,
fields
);
}
console
.
log
(
agreedRecord
.
value
);
});
}
</
script
>
</
script
>
<
style
>
<
style
>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment