Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
8b7a039f
提交
8b7a039f
authored
5月 09, 2020
作者:
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
课程讨论模块提取
上级
fbf2f920
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
205 行增加
和
58 行删除
+205
-58
index.js
client/src/modules/discuss/api/index.js
+37
-0
en.json
client/src/modules/discuss/assets/languages/en.json
+12
-0
zh-CN.json
client/src/modules/discuss/assets/languages/zh-CN.json
+11
-0
answerItem.vue
client/src/modules/discuss/components/answerItem.vue
+68
-0
childAnswer.vue
client/src/modules/discuss/components/childAnswer.vue
+0
-58
replyDetailItem.vue
client/src/modules/discuss/components/replyDetailItem.vue
+37
-0
replyItem.vue
client/src/modules/discuss/components/replyItem.vue
+40
-0
discussDetail.vue
client/src/modules/discuss/src/discussDetail.vue
+0
-0
discussDetail.vue
client/src/pages/learn/discussDetail.vue
+0
-0
没有找到文件。
client/src/modules/discuss/api/index.js
浏览文件 @
8b7a039f
...
@@ -56,3 +56,40 @@ export const callbackComment = (param) => {
...
@@ -56,3 +56,40 @@ export const callbackComment = (param) => {
{
headers
:
{
'Content-Type'
:
'application/json'
}
}
{
headers
:
{
'Content-Type'
:
'application/json'
}
}
)
)
}
}
/**
* 回答问题
*/
export
const
answerQues
=
(
param
)
=>
{
return
httpRequest
.
post
(
'/v2/qa/answers'
,
param
,
{
headers
:
{
'Content-Type'
:
'application/json'
}
}
)
}
/**
* 删除回答
*/
export
const
deleteAnswer
=
(
aid
)
=>
{
return
httpRequest
.
delete
(
`/v2/qa/answers/
${
aid
}
`
)
}
/**
* 取消点赞
*/
export
const
unlike
=
(
tagid
)
=>
{
return
httpRequest
.
delete
(
`/v2/qa/tags/
${
tagid
}
`
)
}
/**
* 点赞
*/
export
const
like
=
(
param
)
=>
{
return
httpRequest
.
post
(
'/v2/qa/tags'
,
param
,
{
headers
:
{
'Content-Type'
:
'application/json'
}
}
)
}
client/src/modules/discuss/assets/languages/en.json
浏览文件 @
8b7a039f
...
@@ -4,6 +4,17 @@
...
@@ -4,6 +4,17 @@
"answers"
:
"Answers"
,
"answers"
:
"Answers"
,
"votes"
:
"Votes"
,
"votes"
:
"Votes"
,
"noData"
:
"No discussion"
"noData"
:
"No discussion"
},
"DiscussDetail"
:
{
"title"
:
"Problem details"
,
"like"
:
"Like"
,
"discuss"
:
"Discuss"
,
"reply"
:
"Reply"
,
"delete"
:
"Delete"
,
"send"
:
"Send"
,
"noAnswer"
:
"No answer"
,
"deleteSuccess"
:
"Delete success"
,
"answering"
:
"Answer"
}
}
}
}
}
}
\ No newline at end of file
client/src/modules/discuss/assets/languages/zh-CN.json
浏览文件 @
8b7a039f
...
@@ -4,6 +4,17 @@
...
@@ -4,6 +4,17 @@
"answers"
:
"回答"
,
"answers"
:
"回答"
,
"votes"
:
"投票"
,
"votes"
:
"投票"
,
"noData"
:
"暂无相关评论"
"noData"
:
"暂无相关评论"
},
"DiscussDetail"
:
{
"title"
:
"问题详情"
,
"like"
:
"点赞"
,
"discuss"
:
"讨论"
,
"reply"
:
"回复"
,
"delete"
:
"删除"
,
"send"
:
"发送"
,
"noAnswer"
:
"暂无回答"
,
"deleteSuccess"
:
"删除成功"
,
"answering"
:
"回答问题"
}
}
}
}
}
}
client/src/modules/discuss/components/answerItem.vue
0 → 100644
浏览文件 @
8b7a039f
<
template
>
<div>
<div
class=
"ask"
>
<div
class=
"user-1"
>
<img
class=
"img-1"
:src=
"avatar"
/>
<div
class=
"right-1"
>
<div
class=
"name-1"
>
{{
data
.
replier
.
nickname
}}
</div>
<div
class=
"time-1"
>
{{
data
.
created_time
}}
</div>
</div>
</div>
<div
class=
"text"
v-html=
"data.contents"
></div>
<div
class=
"user"
>
<template
v-if=
"data.mine"
>
<div
class=
"right-txt"
@
click=
"deleteAnswer(data.id)"
>
{{
$t
(
'pages.learn.discussDetail.delete'
)
}}
</div>
</
template
>
<div
class=
"right-txt"
@
click=
"$emit('reply', {answer_id: data.id})"
>
{{ $t('pages.learn.discussDetail.reply') }}
</div>
<div
class=
"right-txt"
@
click=
"commentVisible = !commentVisible"
>
{{ $t('pages.learn.discussDetail.discuss') }}({{data.comments.length}})
</div>
<div
class=
"right-txt"
@
click=
"$emit('btnlike', {tagId: data.tag ? data.tag.id : null, ansId: data.id})"
>
点赞({{data.tag_count}})
</div>
</div>
<
template
v-if=
"commentVisible"
>
<!-- 评论列表 -->
<template
v-for=
"item in data.comments"
>
<reply-item
:data=
"item"
:dataId=
"data.id"
:key=
"item.id"
></reply-item>
</
template
>
</template>
</div>
</div>
</template>
<
script
>
import
*
as
api
from
'../api/index.js'
import
replyItem
from
'./replyItem.vue'
export
default
{
components
:
{
replyItem
},
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
console
.
log
(
this
.
data
)
return
{
commentVisible
:
false
}
},
computed
:
{
avatar
()
{
return
this
.
data
.
replier
.
avatar
||
'../assets/images/person-default.jpg'
}
},
methods
:
{
deleteAnswer
(
id
)
{
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
''
,
spinner
:
''
,
background
:
'rgba(255, 255, 255, 0.9)'
})
api
.
deleteAnswer
(
id
).
then
(
json
=>
{
this
.
$parent
.
updateList
()
this
.
$message
({
type
:
'success'
,
message
:
this
.
$t
(
'pages.learn.discussDetail.deleteSuccess'
)
})
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{
loading
.
close
()
})
}
}
}
</
script
>
<
style
lang=
"sass"
scoped
>
</
style
>
client/src/modules/discuss/components/childAnswer.vue
deleted
100644 → 0
浏览文件 @
fbf2f920
<
template
>
<div>
<div
class=
'ask'
>
<template
v-for=
'(item, index) in abswerData.comments'
>
<div
v-bind:key=
"index"
class=
'item-list'
:data-id=
'item.id'
>
<div
class=
'user'
>
<div
class=
'name'
>
{{
item
.
user
.
name
}}
</div>
<div
class=
'time'
>
{{
item
.
user
.
time
}}
</div>
<template
v-if=
'item.mine'
><div
class=
'right-txt'
@
click=
'deleteComment'
:data-cid=
'item.cid'
>
{{
$t
(
'pages.learn.discussDetail.delete'
)
}}
</div></
template
>
<div
class=
'right-txt'
@
click=
'callbackComment'
:data-sid=
'abswerData.sid'
:data-qid=
'abswerData.qid'
:data-quesid=
'abswerData.qid'
:data-to=
'item.user.name'
>
{{ $t('pages.learn.discussDetail.reply') }}
</div>
</div>
<div
class=
'text'
>
{{item.text}}
</div>
</div>
</template>
</div>
</div>
</template>
<
script
>
import
*
as
api
from
'../api/index'
export
default
{
data
()
{
return
{
abswerData
:
{}
}
},
props
:
{
dataJson
:
{
type
:
Object
,
require
:
false
}
},
mounted
()
{
},
methods
:
{
deleteComment
(
e
)
{
const
cid
=
e
.
currentTarget
.
dataset
.
cid
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
''
,
spinner
:
''
,
background
:
'rgba(255, 255, 255, 0.9)'
})
api
.
deleteComment
(
cid
).
then
(
json
=>
{
this
.
$emit
(
'updateList'
)
this
.
$message
({
type
:
'success'
,
message
:
this
.
$t
(
'pages.learn.discussDetail.deleteSuccess'
)
})
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{
loading
.
close
()
})
},
callbackComment
()
{
}
},
watch
:
{
dataJson
:
function
(
newVal
,
oldVal
)
{
this
.
abswerData
=
newVal
console
.
log
(
this
.
abswerData
,
'=============='
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
client/src/modules/discuss/components/replyDetailItem.vue
0 → 100644
浏览文件 @
8b7a039f
<
template
>
<div
class=
"item-list"
>
<div
class=
"user"
>
<div
class=
"name"
>
{{
data
.
observer
.
nickname
}}
</div>
<div
class=
"time"
>
{{
data
.
created_time
}}
</div>
<template
v-if=
"data.mine"
>
<div
class=
"right-txt"
@
click=
"deleteComment(data.id)"
>
{{
$t
(
'pages.learn.discussDetail.delete'
)
}}
</div>
</
template
>
<div
class=
"right-txt"
@
click=
"$emit('reply', {to: data.observer.nickname, question_id: dataId})"
>
{{ $t('pages.learn.discussDetail.reply') }}
</div>
</div>
<div
class=
"text"
v-html=
"data.comments"
></div>
</div>
</template>
<
script
>
import
*
as
api
from
'../api/index.js'
export
default
{
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
{}
},
dataId
:
{
type
:
String
,
default
:
()
=>
{}
}
},
data
()
{
return
{}
},
methods
:
{
deleteComment
(
id
)
{
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
''
,
spinner
:
''
,
background
:
'rgba(255, 255, 255, 0.9)'
})
api
.
deleteComment
(
id
).
then
(
json
=>
{
this
.
$parent
.
updateList
()
this
.
$message
({
type
:
'success'
,
message
:
this
.
$t
(
'pages.learn.discussDetail.deleteSuccess'
)
})
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{
loading
.
close
()
})
}
}
}
</
script
>
client/src/modules/discuss/components/replyItem.vue
0 → 100644
浏览文件 @
8b7a039f
<
template
>
<div
class=
"item-list"
>
<div
class=
"user"
>
<div
class=
"name"
>
{{
data
.
observer
.
nickname
}}
</div>
<div
class=
"time"
>
{{
data
.
created_time
}}
</div>
<template
v-if=
"data.mine"
>
<div
class=
"right-txt"
@
click=
"deleteComment(data.id)"
>
{{
$t
(
'pages.learn.discussDetail.delete'
)
}}
</div>
</
template
>
<div
class=
"right-txt"
@
click=
"reply({answer_id: dataId, to: data.observer.nickname})"
>
{{ $t('pages.learn.discussDetail.reply') }}
</div>
</div>
<div
class=
"text"
v-html=
"data.comments"
></div>
</div>
</template>
<
script
>
import
*
as
api
from
'../api/index.js'
export
default
{
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
{}
},
dataId
:
{
type
:
String
,
default
:
()
=>
{}
}
},
data
()
{
return
{}
},
methods
:
{
reply
(
param
)
{
this
.
$parent
.
$parent
.
replyComposeParam
(
param
)
},
deleteComment
(
id
)
{
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
''
,
spinner
:
''
,
background
:
'rgba(255, 255, 255, 0.9)'
})
api
.
deleteComment
(
id
).
then
(
json
=>
{
this
.
$parent
.
$parent
.
updateList
()
this
.
$message
({
type
:
'success'
,
message
:
this
.
$t
(
'pages.learn.discussDetail.deleteSuccess'
)
})
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{
loading
.
close
()
})
}
}
}
</
script
>
client/src/modules/discuss/src/discussDetail.vue
浏览文件 @
8b7a039f
差异被折叠。
点击展开。
client/src/pages/learn/discussDetail.vue
浏览文件 @
8b7a039f
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论