Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
thinkApp
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
游洁
thinkApp
Commits
71e1bd89
Commit
71e1bd89
authored
Jun 01, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1111
parent
26f77b1f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
571 additions
and
496 deletions
+571
-496
commentDetails.vue
src/components/setComments/commentDetails.vue
+301
-267
studentsPopu.vue
src/components/setComments/studentsPopu.vue
+161
-151
addComment.vue
src/pages/setComments/addComment.vue
+108
-77
commentDetails.vue
src/pages/setComments/commentDetails.vue
+1
-1
No files found.
src/components/setComments/commentDetails.vue
View file @
71e1bd89
<
template
>
<view
class=
"commentDetailsList-box"
>
<view
class=
"commentDetailsList-add"
@
click=
"goAdd"
>
<van-icon
name=
"plus"
/><text>
增加评论
</text>
</view>
<view
class=
"index-student-information"
>
<view
class=
"commentDetailsList-content"
>
<view
class=
"commentDetailsList-list"
v-for=
"(item,index) in CourseCommentTimesList"
:key=
"index"
>
<!--
<view
class=
"commentDetailsList-cross"
@
click=
"deleteRules"
>
<van-icon
name=
"plus"
/>
<text>
增加评论
</text>
</view>
<view
class=
"index-student-information"
>
<view
class=
"commentDetailsList-content"
>
<view
class=
"commentDetailsList-list"
v-for=
"(item,index) in CourseCommentTimesList"
:key=
"index"
>
<!--
<view
class=
"commentDetailsList-cross"
@
click=
"deleteRules"
>
<van-icon
name=
"cross"
/>
</view>
-->
<view
class=
"commentDetailsList-img flex"
>
<view>
{{
item
.
StuName
}}
</view>
<view
class=
"flex"
>
<text>
{{
item
.
ShowTypeStr
}}
</text>
<van-image
@
click=
"editRules(item)"
class=
"img"
width=
"31rpx"
height=
"30rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653980151000_180.png"
/>
</view>
<view
class=
"Wire"
></view>
</view>
<view
class=
"commentDetailsList-comment"
>
{{
item
.
Info
}}
</view>
</view>
</view>
<view
class=
"noData"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png"
mode=
"widthFix"
></image>
<view>
暂无评论规则数据
</view>
</view>
</view>
<template
v-show=
"show"
>
<commentDetailsPopu
ref=
"getcommentPopup"
@
change=
"changeData"
></commentDetailsPopu>
</
template
>
<view
class=
"commentDetailsList-img flex"
>
<view>
{{
item
.
StuName
}}
</view>
<view
class=
"flex"
>
<text>
{{
item
.
ShowTypeStr
}}
</text>
<van-image
@
click=
"editRules(item)"
class=
"img"
width=
"31rpx"
height=
"30rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653980151000_180.png"
/>
</view>
<view
class=
"Wire"
></view>
</view>
<view
class=
"commentDetailsList-comment"
>
{{
item
.
Info
}}
</view>
</view>
</view>
<view
class=
"noData"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png"
mode=
"widthFix"
></image>
<view>
暂无评论规则数据
</view>
</view>
</view>
<template
v-show=
"show"
>
<commentDetailsPopu
ref=
"getcommentPopup"
@
change=
"changeData"
></commentDetailsPopu>
</
template
>
</view>
</template>
<
script
>
import
commentDetailsPopu
from
'@/components/setComments/commentDetailsPopu'
import
commentDetailsPopu
from
'@/components/setComments/commentDetailsPopu'
import
{
ref
,
ref
,
reactive
,
toRefs
,
onMounted
,
...
...
@@ -46,62 +47,66 @@
}
from
"vue"
;
import
navbar
from
'../../components/navbar.vue'
export
default
{
props
:
[
"CourseCommentTimesList"
],
props
:
[
"CourseCommentTimesList"
,
"qMsg"
],
emits
:
[
'refreshData'
],
components
:
{
navbar
,
commentDetailsPopu
commentDetailsPopu
},
setup
(
props
,
context
)
{
let
{
refs
}
=
getCurrentInstance
();
let
{
refs
}
=
getCurrentInstance
();
let
{
proxy
}
=
getCurrentInstance
();
let
data
=
reactive
({
dataList
:
[],
show
:
false
show
:
false
});
let
methods
=
{
goAdd
(){
uni
.
navigateTo
({
url
:
'/pages/setComments/addComment'
goAdd
()
{
let
url
=
'/pages/setComments/addComment?CourseId='
+
this
.
qMsg
.
CourseId
+
"&CommentTimes="
+
this
.
qMsg
.
CommentTimes
;
console
.
log
(
"url"
,
url
);
uni
.
navigateTo
({
url
:
url
})
},
},
back
()
{
uni
.
navigateBack
({
delta
:
1
})
},
addRules
(){
//添加规则
data
.
show
=
true
refs
.
getcommentPopup
.
$vm
.
showFun
()
},
editRules
(
item
){
//编辑规则
data
.
show
=
true
refs
.
getcommentPopup
.
$vm
.
showFun
(
item
)
},
deleteRules
(){
//删除规则
uni
.
showModal
({
title
:
'提示'
,
content
:
'将删除该评价,是否继续'
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
console
.
log
(
'---'
)
}
else
if
(
res
.
cancel
)
{
uni
.
showToast
({
title
:
'已取消'
,
icon
:
'none'
,
duration
:
500
})
}
}
});
},
addRules
()
{
//添加规则
data
.
show
=
true
refs
.
getcommentPopup
.
$vm
.
showFun
()
},
editRules
(
item
)
{
//编辑规则
data
.
show
=
true
refs
.
getcommentPopup
.
$vm
.
showFun
(
item
)
},
deleteRules
()
{
//删除规则
uni
.
showModal
({
title
:
'提示'
,
content
:
'将删除该评价,是否继续'
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
console
.
log
(
'---'
)
}
else
if
(
res
.
cancel
)
{
uni
.
showToast
({
title
:
'已取消'
,
icon
:
'none'
,
duration
:
500
})
}
}
});
},
clickOptionsShow
(
item
)
{
item
.
optionsShow
=
!
item
.
optionsShow
;
},
//实在评价可见性
clickoptions
(
item
,
subItem
)
{
clickoptions
(
item
,
subItem
)
{
let
showTypeMsg
=
{
CourseId
:
item
.
CourseId
,
Times
:
item
.
Times
,
...
...
@@ -109,24 +114,23 @@
};
proxy
.
$request
(
"/Teacher/SetStuCommentShowTypeByTimes"
,
showTypeMsg
).
then
(
res
=>
{
if
(
res
)
{
}
})
item
.
optionsShow
=
false
;
//调用父组件方法
context
.
emit
(
'refreshData'
);
},
//刷新数据
changeData
()
{
changeData
()
{
//调用父组件方法
context
.
emit
(
'refreshData'
);
}
};
//监听属性数组
watch
(()
=>
props
[
"CourseCommentTimesList"
],
(
newValue
,
oldValue
)
=>
{
if
(
newValue
!=
oldValue
&&
newValue
&&
newValue
.
length
>
0
)
{
data
.
dataList
=
newValue
;
}
...
...
@@ -139,12 +143,12 @@
};
},
onLoad
(
option
)
{
},
};
</
script
>
<
style
scoped
>
.noData
{
.noData
{
text-align
:
center
;
flex
:
1
;
width
:
100%
;
...
...
@@ -160,203 +164,233 @@
color
:
#cecece
;
text-align
:
center
;
}
.Wire
{
width
:
4
rpx
;
height
:
23
rpx
;
background
:
#282828
;
position
:
absolute
;
left
:
0
;
top
:
47
rpx
;
}
.commentDetailsList-comment
{
font-size
:
26
rpx
;
font-weight
:
400
;
color
:
#5E5E5E
;
line-height
:
48
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-img
.img
{
margin-top
:
8
rpx
;
flex-shrink
:
0
;
}
.commentDetailsList-img
view
:first-child
{
flex-grow
:
1
;
margin-right
:
15
rpx
;
}
.commentDetailsList-img
text
{
background
:
#FCEEEF
;
border-radius
:
25
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
padding
:
10
rpx
25
rpx
;
margin-right
:
33
rpx
;
}
.commentDetailsList-img
{
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
font-size
:
26
rpx
;
font-weight
:
500
;
color
:
#282828
;
margin-bottom
:
34
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-cross
{
position
:
absolute
;
right
:
-12
rpx
;
top
:
-12
rpx
;
width
:
44
rpx
;
height
:
44
rpx
;
background
:
#FFFFFF
;
box-shadow
:
0
rpx
0
rpx
21
rpx
0
rpx
rgba
(
165
,
165
,
165
,
0.34
);
border-radius
:
10
rpx
;
font-size
:
26
rpx
;
color
:
#D9868D
;
text-align
:
center
;
line-height
:
44
rpx
;
}
.commentDetailsList-list
{
position
:
relative
;
background
:
#FFFFFF
;
padding
:
31
rpx
40
rpx
37
rpx
22
rpx
;
box-shadow
:
0
rpx
6
rpx
29
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.09
);
border-radius
:
30
rpx
;
}
.commentDetailsList-title
.img
{
flex-shrink
:
0
;
display
:
inline-block
;
margin-top
:
5
rpx
;
}
.commentDetailsList-title
text
{
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#282828
;
margin-left
:
29
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-title
{
align-items
:
center
;
margin-bottom
:
35
rpx
;
}
.commentDetailsList-Evaluation
view
text
:first-child
{
border-right
:
1px
solid
#E5E5E5
;
padding
:
0
16
rpx
0
0
;
}
.commentDetailsList-Evaluation
view
text
:last-child
{
margin-left
:
16
rpx
;
}
.commentDetailsList-Evaluation
view
text
{
display
:
inline-block
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-Evaluation
view
{
float
:
right
;
margin-top
:
25
rpx
;
margin-bottom
:
27
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
}
.commentDetailsList-Evaluation
{
height
:
85
rpx
;
border-top
:
1
rpx
solid
#E5E5E5
;
}
.commentDetailsList-source
{
font-size
:
20
rpx
;
color
:
#C2BCBA
;
font-weight
:
500
;
justify-content
:
space-between
;
padding
:
26
rpx
0
25
rpx
0
;
}
.point
{
width
:
8
rpx
;
height
:
8
rpx
;
background
:
#E64150
;
border-radius
:
50%
;
}
.commentDetailsList-options-title
,
.commentDetailsList-options-text
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
text-align
:
center
;
font-weight
:
bold
;
}
.commentDetailsList-options-text
text
{
padding
:
5
rpx
0
;
}
.commentDetailsList-options-text
{
flex-direction
:
column
;
margin-top
:
10
rpx
;
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
35
rpx
;
background
:
#FCEEEF
;
padding
:
20
rpx
0
20
rpx
0
;
border-radius
:
0
0
25
rpx
25
rpx
;
}
.commentDetailsList-options-title
text
{
margin-right
:
10
rpx
;
margin-left
:
10
rpx
;
}
.commentDetailsList-options-title
{
justify-content
:
center
;
align-items
:
center
;
}
.commentDetailsList-options
{
flex-grow
:
1
;
border-radius
:
25
rpx
;
background
:
#FCEEEF
;
flex-direction
:
column
;
padding
:
14
rpx
17
rpx
15
rpx
17
rpx
;
letter-spacing
:
1
rpx
;
position
:
relative
;
}
.commentDetailsList-title-right
{
width
:
190
rpx
;
flex-shrink
:
0
;
}
.commentDetailsList-title-left
{
letter-spacing
:
1
rpx
;
flex-grow
:
1
;
color
:
#282828
;
font-size
:
26
rpx
;
font-weight
:
bold
;
margin-right
:
20
rpx
;
}
.center-line
{
position
:
absolute
;
left
:
0
;
top
:
30
rpx
;
width
:
4
rpx
;
height
:
23
rpx
;
background
:
#282828
;
}
.commentDetailsList-content
{
}
.commentDetailsList-add
van-icon
{
font-size
:
25
rpx
;
margin-right
:
20
rpx
;
}
.commentDetailsList-add
{
width
:
190
rpx
;
margin
:
auto
;
border-radius
:
27
rpx
;
border
:
1
rpx
solid
#FB6087
;
color
:
#FB6087
;
font-size
:
24
rpx
;
letter-spacing
:
1
rpx
;
padding
:
10
rpx
0
;
margin-bottom
:
47
rpx
;
text-align
:
center
;
}
.index-student-information
{
min-height
:
800
rpx
;
.Wire
{
width
:
4
rpx
;
height
:
23
rpx
;
background
:
#282828
;
position
:
absolute
;
left
:
0
;
top
:
47
rpx
;
}
.commentDetailsList-comment
{
font-size
:
26
rpx
;
font-weight
:
400
;
color
:
#5E5E5E
;
line-height
:
48
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-img
.img
{
margin-top
:
8
rpx
;
flex-shrink
:
0
;
}
.commentDetailsList-img
view
:first-child
{
flex-grow
:
1
;
margin-right
:
15
rpx
;
}
.commentDetailsList-img
text
{
background
:
#FCEEEF
;
border-radius
:
25
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
padding
:
10
rpx
25
rpx
;
margin-right
:
33
rpx
;
}
.commentDetailsList-img
{
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
font-size
:
26
rpx
;
font-weight
:
500
;
color
:
#282828
;
margin-bottom
:
34
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-cross
{
position
:
absolute
;
right
:
-12
rpx
;
top
:
-12
rpx
;
width
:
44
rpx
;
height
:
44
rpx
;
background
:
#FFFFFF
;
box-shadow
:
0
rpx
0
rpx
21
rpx
0
rpx
rgba
(
165
,
165
,
165
,
0.34
);
border-radius
:
10
rpx
;
font-size
:
26
rpx
;
color
:
#D9868D
;
text-align
:
center
;
line-height
:
44
rpx
;
}
.commentDetailsList-list
{
position
:
relative
;
background
:
#FFFFFF
;
padding
:
31
rpx
40
rpx
37
rpx
22
rpx
;
box-shadow
:
0
rpx
6
rpx
29
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.09
);
border-radius
:
30
rpx
;
}
.commentDetailsList-title
.img
{
flex-shrink
:
0
;
display
:
inline-block
;
margin-top
:
5
rpx
;
}
.commentDetailsList-title
text
{
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#282828
;
margin-left
:
29
rpx
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-title
{
align-items
:
center
;
margin-bottom
:
35
rpx
;
}
.commentDetailsList-Evaluation
view
text
:first-child
{
border-right
:
1px
solid
#E5E5E5
;
padding
:
0
16
rpx
0
0
;
}
.commentDetailsList-Evaluation
view
text
:last-child
{
margin-left
:
16
rpx
;
}
.commentDetailsList-Evaluation
view
text
{
display
:
inline-block
;
letter-spacing
:
1
rpx
;
}
.commentDetailsList-Evaluation
view
{
float
:
right
;
margin-top
:
25
rpx
;
margin-bottom
:
27
rpx
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
}
.commentDetailsList-Evaluation
{
height
:
85
rpx
;
border-top
:
1
rpx
solid
#E5E5E5
;
}
.commentDetailsList-source
{
font-size
:
20
rpx
;
color
:
#C2BCBA
;
font-weight
:
500
;
justify-content
:
space-between
;
padding
:
26
rpx
0
25
rpx
0
;
}
.point
{
width
:
8
rpx
;
height
:
8
rpx
;
background
:
#E64150
;
border-radius
:
50%
;
}
.commentDetailsList-options-title
,
.commentDetailsList-options-text
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#CE8086
;
text-align
:
center
;
font-weight
:
bold
;
}
.commentDetailsList-options-text
text
{
padding
:
5
rpx
0
;
}
.commentDetailsList-options-text
{
flex-direction
:
column
;
margin-top
:
10
rpx
;
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
35
rpx
;
background
:
#FCEEEF
;
padding
:
20
rpx
0
20
rpx
0
;
border-radius
:
0
0
25
rpx
25
rpx
;
}
.commentDetailsList-options-title
text
{
margin-right
:
10
rpx
;
margin-left
:
10
rpx
;
}
.commentDetailsList-options-title
{
justify-content
:
center
;
align-items
:
center
;
}
.commentDetailsList-options
{
flex-grow
:
1
;
border-radius
:
25
rpx
;
background
:
#FCEEEF
;
flex-direction
:
column
;
padding
:
14
rpx
17
rpx
15
rpx
17
rpx
;
letter-spacing
:
1
rpx
;
position
:
relative
;
}
.commentDetailsList-title-right
{
width
:
190
rpx
;
flex-shrink
:
0
;
}
.commentDetailsList-title-left
{
letter-spacing
:
1
rpx
;
flex-grow
:
1
;
color
:
#282828
;
font-size
:
26
rpx
;
font-weight
:
bold
;
margin-right
:
20
rpx
;
}
.center-line
{
position
:
absolute
;
left
:
0
;
top
:
30
rpx
;
width
:
4
rpx
;
height
:
23
rpx
;
background
:
#282828
;
}
.commentDetailsList-content
{}
.commentDetailsList-add
van-icon
{
font-size
:
25
rpx
;
margin-right
:
20
rpx
;
}
.commentDetailsList-add
{
width
:
190
rpx
;
margin
:
auto
;
border-radius
:
27
rpx
;
border
:
1
rpx
solid
#FB6087
;
color
:
#FB6087
;
font-size
:
24
rpx
;
letter-spacing
:
1
rpx
;
padding
:
10
rpx
0
;
margin-bottom
:
47
rpx
;
text-align
:
center
;
}
.index-student-information
{
min-height
:
800
rpx
;
background
:
#FFFFFF
;
border-radius
:
50
rpx
50
rpx
0
0
;
padding
:
71
rpx
50
rpx
30
rpx
50
rpx
;
flex-direction
:
column
;
}
flex-direction
:
column
;
}
</
style
>
src/components/setComments/studentsPopu.vue
View file @
71e1bd89
<
template
>
<van-popup
:show=
"show"
:round=
"true"
position=
"bottom"
custom-style=
"height: 80%"
@
close=
"closepopup"
>
<view
class=
"studentsPopu-box flex"
>
<view
class=
"studentsPopu-title"
>
选择学员
<text>
(2/50)
</text></view>
<view
class=
"studentsPopu-search flex"
>
<van-search
:value=
"Keywords"
shape=
"round"
style=
"border-radius: 20rpx;width: 100%;"
input-align=
"center"
background=
"#F6F6F6"
@
change=
"searchKeywords"
placeholder=
"请输入搜索关键词"
/>
</view>
<view
class=
"studentsPopuImg"
>
<view
class=
"studentsPopu-img-box flex"
>
<view
class=
"studentsPopu-img-list active flex"
@
click=
"clickChoose"
>
<view
class=
"studentsPopu-imgbox flex"
>
<view
class=
"studentsPopu-img flex"
>
<view>
<van-image
width=
"119rpx"
height=
"119rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png"
/>
</view>
</view>
</view>
<text
class=
"studentsPopu-text"
>
学员名称
</text>
</view>
<view
class=
"studentsPopu-img-list flex"
@
click=
"clickChoose"
>
<view
class=
"studentsPopu-imgbox flex"
>
<view
class=
"studentsPopu-img flex"
>
<view>
<van-image
width=
"119rpx"
height=
"119rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png"
/>
</view>
</view>
</view>
<text
class=
"studentsPopu-text"
>
学员名称
</text>
</view>
</view>
</view>
<view
class=
"footer"
>
<view
class=
"studentsPopu-save flex"
>
<view
@
click=
"save"
>
确认
</view>
</view>
</view>
</view>
</van-popup>
<van-popup
:show=
"show"
:round=
"true"
position=
"bottom"
custom-style=
"height: 80%"
@
close=
"closepopup"
>
<view
class=
"studentsPopu-box flex"
>
<view
class=
"studentsPopu-title"
>
选择学员
<text>
(
{{
chooseStuArray
?
chooseStuArray
.
length
:
0
}}
/
{{
stuList
?
stuList
.
length
:
0
}}
)
</text>
</view>
<view
class=
"studentsPopu-search flex"
>
<van-search
:value=
"Keywords"
shape=
"round"
style=
"border-radius: 20rpx;width: 100%;"
input-align=
"center"
background=
"#F6F6F6"
@
change=
"searchKeywords"
placeholder=
"请输入搜索关键词"
/>
</view>
<view
class=
"studentsPopuImg"
>
<view
class=
"studentsPopu-img-box flex"
>
<template
v-for=
"(item,index) in stuList"
>
<view
class=
"studentsPopu-img-list active flex"
@
click=
"clickChoose(item)"
>
<view
class=
"studentsPopu-imgbox flex"
>
<view
class=
"studentsPopu-img flex"
>
<view>
<van-image
width=
"119rpx"
height=
"119rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png"
/>
</view>
</view>
</view>
<text
class=
"studentsPopu-text"
>
{{
item
.
StuName
}}
</text>
</view>
</
template
>
</view>
</view>
<view
class=
"footer"
>
<view
class=
"studentsPopu-save flex"
>
<view
@
click=
"save"
>
确认
</view>
</view>
</view>
</view>
</van-popup>
</template>
<
script
>
import
{
ref
,
ref
,
reactive
,
toRefs
,
onMounted
,
getCurrentInstance
,
inject
,
watch
watch
}
from
"vue"
;
import
{
uploadFile
}
from
"@/utils/index"
;
import
{
uploadFile
}
from
"@/utils/index"
;
export
default
{
props
:
{
},
props
:
[
"courseStuList"
],
emits
:
[
'getdata'
],
components
:
{},
setup
(
props
,
ctx
)
{
let
{
setup
(
props
,
ctx
)
{
let
{
proxy
}
=
getCurrentInstance
();
let
data
=
reactive
({
show
:
false
,
loading
:
false
,
Keywords
:
''
show
:
false
,
loading
:
false
,
Keywords
:
''
,
stuList
:
[],
chooseStuArray
:
[]
});
let
methods
=
{
// 选中
clickChoose
(
item
)
{
data
.
chooseStuArray
.
push
(
item
);
},
// 搜索
searchKeywords
()
{
},
showFun
()
{
data
.
show
=
true
},
closepopup
()
{
data
.
show
=
false
},
save
()
{
ctx
.
emit
(
"getdata"
,
data
.
chooseStuArray
);
data
.
show
=
false
}
};
//监听属性数组
watch
(()
=>
props
[
"courseStuList"
],
(
newValue
,
oldValue
)
=>
{
if
(
newValue
!=
oldValue
&&
newValue
&&
newValue
.
length
>
0
)
{
data
.
stuList
=
newValue
;
}
},
{
deep
:
true
,
});
let
methods
=
{
// 选中
clickChoose
(){
},
// 搜索
searchKeywords
(){
},
showFun
(){
data
.
show
=
true
},
closepopup
(){
data
.
show
=
false
},
save
(){
data
.
show
=
false
}
};
let
that
=
methods
;
return
{
...
toRefs
(
data
),
...
methods
...
methods
};
},
onLoad
()
{
},
onShow
()
{
onLoad
()
{
},
onShow
()
{
}
};
</
script
>
<
style
scoped
>
.studentsPopu-text
{
.studentsPopu-text
{
text-align
:
center
;
font-weight
:
500
;
font-size
:
26
rpx
;
...
...
@@ -116,88 +112,102 @@
letter-spacing
:
1
rpx
;
margin-top
:
15
rpx
;
}
.studentsPopu-img
view
{
.studentsPopu-img
view
{
width
:
119
rpx
;
height
:
119
rpx
;
/* border: 1rpx solid #E5E5E5; */
background
:
#E5E5E5
;
background
:
#E5E5E5
;
border-radius
:
50%
;
overflow
:
hidden
;
}
.studentsPopu-img-list.active
.studentsPopu-img
{
background
:
#C91928
;
box-shadow
:
0
rpx
0
rpx
59
rpx
0
rpx
rgba
(
201
,
23
,
39
,
0.34
);
}
.studentsPopu-img
{
.studentsPopu-img-list.active
.studentsPopu-img
{
background
:
#C91928
;
box-shadow
:
0
rpx
0
rpx
59
rpx
0
rpx
rgba
(
201
,
23
,
39
,
0.34
);
}
.studentsPopu-img
{
width
:
130
rpx
;
height
:
130
rpx
;
background
:
#FFFFFF
;
box-shadow
:
0
rpx
6
rpx
29
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.09
);
box-shadow
:
0
rpx
6
rpx
29
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.09
);
border-radius
:
50%
;
justify-content
:
center
;
align-items
:
center
;
justify-content
:
center
;
align-items
:
center
;
}
.studentsPopu-imgbox
{
.studentsPopu-imgbox
{
justify-content
:
center
;
}
.studentsPopu-img-list
{
.studentsPopu-img-list
{
flex
:
0
0
25%
;
flex-direction
:
column
;
}
.studentsPopu-img-box
{
height
:
90%
;
.studentsPopu-img-box
{
height
:
90%
;
padding
:
40
rpx
25
rpx
;
flex-wrap
:
wrap
;
margin-bottom
:
100
rpx
;
overflow-y
:
auto
;
margin-bottom
:
100
rpx
;
overflow-y
:
auto
;
}
.studentsPopuImg
{
max-height
:
670
rpx
;
overflow
:
hidden
;
}
.studentsPopu-search
{
padding
:
30
rpx
27
rpx
5
rpx
27
rpx
;
}
.studentsPopu-title
text
{
font-size
:
26
rpx
;
color
:
#949494
;
font-weight
:
400
;
margin-left
:
20
rpx
;
}
.studentsPopu-title
{
font-size
:
36
rpx
;
font-weight
:
800
;
color
:
#282828
;
letter-spacing
:
1
rpx
;
padding
:
48
rpx
55
rpx
0
55
rpx
;
}
.studentsPopu-save
view
{
background
:
#C91727
;
font-size
:
30
rpx
;
font-weight
:
bold
;
letter-spacing
:
1
rpx
;
width
:
260
rpx
;
line-height
:
88
rpx
;
border-radius
:
44
rpx
;
text-align
:
center
;
color
:
#FFFFFF
;
}
.studentsPopu-save
{
justify-content
:
center
;
margin-top
:
40
rpx
;
margin-bottom
:
40
rpx
;
}
.studentsPopu-box
{
background
:
#f6f6f6
;
/* padding: 48rpx 0 60rpx 0; */
flex-direction
:
column
;
height
:
100%
;
overflow
:
hidden
;
}
.footer
{
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.studentsPopuImg
{
max-height
:
670
rpx
;
overflow
:
hidden
;
}
.studentsPopu-search
{
padding
:
30
rpx
27
rpx
5
rpx
27
rpx
;
}
.studentsPopu-title
text
{
font-size
:
26
rpx
;
color
:
#949494
;
font-weight
:
400
;
margin-left
:
20
rpx
;
}
.studentsPopu-title
{
font-size
:
36
rpx
;
font-weight
:
800
;
color
:
#282828
;
letter-spacing
:
1
rpx
;
padding
:
48
rpx
55
rpx
0
55
rpx
;
}
.studentsPopu-save
view
{
background
:
#C91727
;
font-size
:
30
rpx
;
font-weight
:
bold
;
letter-spacing
:
1
rpx
;
width
:
260
rpx
;
line-height
:
88
rpx
;
border-radius
:
44
rpx
;
text-align
:
center
;
color
:
#FFFFFF
;
}
.studentsPopu-save
{
justify-content
:
center
;
margin-top
:
40
rpx
;
margin-bottom
:
40
rpx
;
}
.studentsPopu-box
{
background
:
#f6f6f6
;
/* padding: 48rpx 0 60rpx 0; */
flex-direction
:
column
;
height
:
100%
;
overflow
:
hidden
;
}
.footer
{
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
</
style
>
src/pages/setComments/addComment.vue
View file @
71e1bd89
...
...
@@ -10,7 +10,7 @@
<view
class=
"addComment-title flex"
>
<van-icon
name=
"friends-o"
/>
<text>
选择学员 (
0
)
选择学员 (
{{
postMsg
.
ChooseStuList
?
postMsg
.
ChooseStuList
.
length
:
0
}}
)
</text>
</view>
<view
class=
"addComment-img-box flex"
>
...
...
@@ -24,30 +24,32 @@
</view>
<text
class=
"addComment-text"
>
添加学员
</text>
</view>
<view
class=
"addComment-img-list flex"
>
<view
class=
"addComment-imgbox flex"
>
<view
class=
"addComment-img"
>
<view>
<van-image
width=
"119rpx"
height=
"119rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png"
/>
<template
v-for=
"(item,index) in postMsg.ChooseStuList"
>
<view
class=
"addComment-img-list flex"
>
<view
class=
"addComment-imgbox flex"
>
<view
class=
"addComment-img"
>
<view>
<van-image
width=
"119rpx"
height=
"119rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png"
/>
</view>
</view>
</view>
<text
class=
"addComment-text"
>
{{
item
.
StuName
}}
</text>
</view>
<text
class=
"addComment-text"
>
学员名称
</text
>
</view>
</
template
>
</view>
<view
class=
"addComment-textarea-box"
>
<view
class=
"content-textarea-box"
>
<textarea
placeholder=
"请填写评论内容"
></textarea>
<textarea
placeholder=
"请填写评论内容"
v-model=
"postMsg.Info"
></textarea>
</view>
<view
class=
"Sure-button flex"
>
<view
v-if=
"clickShow"
@
click=
"clickSure"
>
确定
</view>
<view
v-else
class=
"active"
>
确定
</view>
<view
v-if=
"clickShow"
@
click=
"clickSure"
>
确定
</view>
<view
v-else
class=
"active"
>
确定
</view>
</view>
</view>
<
template
v-show=
"show"
>
<studentsPopu
ref=
"getstudentsPopup"
></studentsPopu>
<studentsPopu
ref=
"getstudentsPopup"
:courseStuList=
"StuList"
@
getdata=
"getChooseStu"
></studentsPopu>
</
template
>
</view>
<view
class=
"addComment-bj"
></view>
...
...
@@ -107,58 +109,67 @@
checked
:
'1'
,
Msg
:
{
CourseId
:
''
,
CommentTimes
:
0
,
//评论次数
},
courseTimeList
:
[],
//课程自动生成评论次数
courseRule
:
{},
//课程评价规则
clickShow
:
true
,
show
:
false
postMsg
:
{
CourseId
:
''
,
ChooseStuList
:
[],
Times
:
0
,
Info
:
""
,
//评论内容
},
StuList
:
[],
//课程学员列表
clickShow
:
true
,
show
:
false
});
let
methods
=
{
back
()
{
uni
.
navigateBack
({
delta
:
1
})
},
// 点击弹出学员列表
selectStudents
(){
selectStudents
()
{
data
.
show
=
true
setTimeout
(()
=>
{
setTimeout
(()
=>
{
refs
.
getstudentsPopup
.
$vm
.
showFun
()
},
500
)
},
500
)
},
// 点击确定
clickSure
(){
data
.
clickShow
=
false
console
.
log
(
data
.
clickShow
)
},
radioChange
(
e
)
{
console
.
log
(
"打印国家名称"
,
e
.
target
.
value
)
},
//获取课程评论次数列表
getCourseCommentTimes
()
{
proxy
.
$request
(
"/Teacher/GetCourseCommentTimes"
,
data
.
Msg
).
then
(
res
=>
{
if
(
res
)
{
data
.
courseTimeList
=
res
.
Data
;
clickSure
()
{
data
.
clickShow
=
false
;
data
.
postMsg
.
Times
=
data
.
Msg
.
CommentTimes
;
data
.
postMsg
.
CourseId
=
data
.
Msg
.
CourseId
;
proxy
.
$request
(
"/Teacher/BatchSetStuComment"
,
data
.
postMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
uni
.
showToast
({
title
:
'操作成功!'
,
icon
:
'none'
,
duration
:
500
})
}
})
},
//获取课程评价规则信息
getCourseRule
()
{
proxy
.
$request
(
"/Teacher/GetCourseComment"
,
data
.
Msg
).
then
(
res
=>
{
//课程学员列表
getChooseStu
(
array
)
{
if
(
array
)
{
data
.
postMsg
.
ChooseStuList
=
array
}
},
//根据课程编号获取课程学员
getCourseStu
()
{
let
stuMsg
=
{
courseId
:
data
.
Msg
.
CourseId
};
proxy
.
$request
(
"/Teacher/GetCourseStu"
,
stuMsg
).
then
(
res
=>
{
console
.
log
(
"res"
,
res
);
if
(
res
)
{
data
.
courseRule
=
res
.
Data
;
data
.
StuList
=
res
.
Data
;
}
})
},
goRules
()
{
uni
.
navigateTo
({
url
:
'/pages/setComments/commentRulesList?CourseId='
+
data
.
Msg
.
CourseId
})
}
};
return
{
...
toRefs
(
data
),
...
methods
...
...
@@ -166,18 +177,19 @@
},
onLoad
(
option
)
{
this
.
Msg
.
CourseId
=
option
.
CourseId
;
this
.
getCourseRule
()
;
this
.
getCourse
CommentTimes
();
this
.
Msg
.
CommentTimes
=
option
.
CommentTimes
;
this
.
getCourse
Stu
();
},
};
</
script
>
<
style
scoped
>
.Sure-button
view
.active
{
.Sure-button
view
.active
{
background-color
:
#F6F6F6
;
color
:
#C91727
;
}
.Sure-button
view
{
.Sure-button
view
{
width
:
359
rpx
;
line-height
:
88
rpx
;
background-color
:
#C91727
;
...
...
@@ -188,27 +200,32 @@
text-align
:
center
;
letter-spacing
:
1
rpx
;
}
.Sure-button
{
.Sure-button
{
justify-content
:
center
;
margin-top
:
67
rpx
;
}
.content-textarea-box
textarea
{
.content-textarea-box
textarea
{
width
:
100%
;
}
.content-textarea-box
{
.content-textarea-box
{
background
:
#F6F6F6
;
border-radius
:
30
rpx
;
padding
:
33
rpx
37
rpx
;
min-height
:
537
rpx
;
}
.addComment-textarea-box
{
.addComment-textarea-box
{
border-radius
:
50
rpx
50
rpx
0
0
;
/* background: #FFFFFF; */
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654049334000_485.png')
no-repeat
top
0
center
#FFFFFF
;
background-size
:
141
rpx
41
rpx
;
padding
:
50
rpx
50
rpx
37
rpx
50
rpx
;
}
.addComment-text
{
.addComment-text
{
text-align
:
center
;
font-weight
:
500
;
font-size
:
26
rpx
;
...
...
@@ -216,14 +233,16 @@
letter-spacing
:
1
rpx
;
margin-top
:
15
rpx
;
}
.addComment-img-list.activeOne
.addComment-img
view
{
.addComment-img-list.activeOne
.addComment-img
view
{
text-align
:
center
;
line-height
:
123
rpx
;
color
:
#DCDCDC
;
font-weight
:
bold
;
font-size
:
50
rpx
;
}
.addComment-img
view
{
.addComment-img
view
{
width
:
119
rpx
;
height
:
119
rpx
;
border
:
1
rpx
solid
#DBDBDB
;
...
...
@@ -231,58 +250,69 @@
margin
:
5
rpx
;
overflow
:
hidden
;
}
.addComment-img
{
.addComment-img
{
width
:
130
rpx
;
height
:
130
rpx
;
background
:
#FFFFFF
;
border-radius
:
50%
;
}
.addComment-imgbox
{
.addComment-imgbox
{
justify-content
:
center
;
}
.addComment-img-list
{
.addComment-img-list
{
flex
:
0
0
25%
;
flex-direction
:
column
;
}
.addComment-img-box
{
.addComment-img-box
{
padding
:
0
20
rpx
;
flex-wrap
:
wrap
;
margin-bottom
:
50
rpx
;
}
.addComment-title
van-icon
{
.addComment-title
van-icon
{
font-size
:
38
rpx
;
margin-right
:
20
rpx
;
}
.addComment-title
{
.addComment-title
{
font-size
:
30
rpx
;
font-weight
:
bold
;
color
:
#282828
;
letter-spacing
:
1
rpx
;
padding
:
54
rpx
50
rpx
42
rpx
50
rpx
;
}
.addComment-header-box
{
padding
:
20
rpx
42
rpx
;
.addComment-header-box
{
padding
:
20
rpx
42
rpx
;
flex-direction
:
row
;
align-items
:
center
;
}
.addComment-header-title
{
font-size
:
32
rpx
;
font-weight
:
500
;
color
:
#282828
;
flex
:
1
;
text-align
:
center
;
padding-right
:
40
rpx
;
.addComment-header-title
{
font-size
:
32
rpx
;
font-weight
:
500
;
color
:
#282828
;
flex
:
1
;
text-align
:
center
;
padding-right
:
40
rpx
;
}
.addComment-header-left
{
font-size
:
40
rpx
;
position
:
relative
;
z-index
:
3
;
.addComment-header-left
{
font-size
:
40
rpx
;
position
:
relative
;
z-index
:
3
;
}
.addComment-content
{
.addComment-content
{
position
:
relative
;
z-index
:
1
;
}
.addComment-bj
{
.addComment-bj
{
position
:
fixed
;
right
:
0
;
left
:
0
;
...
...
@@ -291,6 +321,7 @@
z-index
:
0
;
background
:
#F6F6F6
;
}
.navbarSticky
{
display
:
sticky
;
top
:
0
;
...
...
src/pages/setComments/commentDetails.vue
View file @
71e1bd89
...
...
@@ -25,7 +25,7 @@
</view>
</view>
</view>
<commentDetails
:CourseCommentTimesList=
"courseTimeList"
@
refreshData=
"getStuCommentList"
></commentDetails>
<commentDetails
:
qMsg=
"Msg"
:
CourseCommentTimesList=
"courseTimeList"
@
refreshData=
"getStuCommentList"
></commentDetails>
</view>
...
...
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