|
@@ -0,0 +1,604 @@
|
|
|
+<template>
|
|
|
+ <div class="discussion">
|
|
|
+ <Loading v-show="isLoad" bgColor="rgba(0, 0, 0, 0.3)"></Loading>
|
|
|
+ <div style="width: 100%; height: 100%; background-color: #ffffff;">
|
|
|
+ <div style="padding: 15px 30px; margin-bottom: 5px;">
|
|
|
+ <div class="header-box">
|
|
|
+ <div class="searchbox">
|
|
|
+ <Input v-special-char search enter-button :placeholder="$t('jyzx.discuss.placeholder1')" v-model="keyword" @on-search="findTopic(true)" />
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center;">
|
|
|
+ <Dropdown @on-click="metopic">
|
|
|
+ <Button>
|
|
|
+ {{ showType.name }}
|
|
|
+ <Icon type="ios-arrow-down"></Icon>
|
|
|
+ </Button>
|
|
|
+ <DropdownMenu slot="list">
|
|
|
+ <DropdownItem name="allTopic">{{ $t("jyzx.discuss.allTopic") }}</DropdownItem>
|
|
|
+ <DropdownItem name="metopic">{{ $t("jyzx.discuss.myTopic") }}</DropdownItem>
|
|
|
+ <!-- <DropdownItem name="mereply">我的回复</DropdownItem> -->
|
|
|
+ </DropdownMenu>
|
|
|
+ </Dropdown>
|
|
|
+ <div style="padding-left: 10px; cursor: pointer;">
|
|
|
+ <Icon type="md-add-circle" size="25" color="#02b35a" @click="topicShow = true" :title="$t('jyzx.discuss.addTopic')" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="height: 90%;">
|
|
|
+ <vuescroll>
|
|
|
+ <div>
|
|
|
+ <div v-for="(item, index) in discuss" :key="index" class="discuss">
|
|
|
+ <div>
|
|
|
+ <div class="disContent">
|
|
|
+ <span class="disName" :style="{color: item.tmdid == $store.state.userInfo.sub ? '#02B35A' : '',}">
|
|
|
+ {{ item.tmdname }}
|
|
|
+ </span>
|
|
|
+ <span class="tag-style" style="border-color: #6b6ba9;color: #6b6ba9;" v-show="item.identity">老师</span>
|
|
|
+ </div>
|
|
|
+ <p class="title-box">
|
|
|
+ <!-- <span style="color: #02B35A">{{ $t("jyzx.common.theme") }}:</span> -->
|
|
|
+ {{ item.title }}
|
|
|
+ </p>
|
|
|
+ <div>
|
|
|
+ <!-- <span style="color: #2d8cf0">{{ $t("jyzx.common.content") }}:</span> -->
|
|
|
+ <span v-html="item.comment"></span>
|
|
|
+ </div>
|
|
|
+ <div class="disAction">
|
|
|
+ <div>
|
|
|
+ <span v-if="item.tmdid == $store.state.userInfo.sub" @click="editTopic(item)">
|
|
|
+ <Icon custom="iconfont icon-bianji" size="17" />
|
|
|
+ 编辑
|
|
|
+ </span>
|
|
|
+ <span style="margin-left: 20px" :style="{color: activeIn === index ? '#02B35A' : ''}" @click="openDisc(index, item)">
|
|
|
+ <Icon custom="iconfont icon-pinglun" size="17" />
|
|
|
+ 回复
|
|
|
+ {{ item.replyCount ? item.replyCount : '' }}
|
|
|
+ </span>
|
|
|
+ <span style="margin-left: 20px" class="delete-icon" v-if="item.tmdid == $store.state.userInfo.sub" @click="deleteTopic(item, index)">
|
|
|
+ <Icon custom="iconfont icon-shanchu" size="17" />
|
|
|
+ {{ $t("jyzx.common.delete") }}
|
|
|
+ </span>
|
|
|
+ <!-- 先隐藏,课程改版完成后完善 -->
|
|
|
+ <!-- <span style="margin-left: 20px" v-show="item.tmdid != $store.state.userInfo.sub">
|
|
|
+ <Icon custom="iconfont icon-guzhangtousu" size="17" />
|
|
|
+ {{ $t("jyzx.common.report") }}
|
|
|
+ </span> -->
|
|
|
+ </div>
|
|
|
+ <p>{{ item.time | formatDate }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 回复框 -->
|
|
|
+ <div class="replyDisc" v-if="activeIn === index">
|
|
|
+ <Input v-special-char v-model="replyDis" type="textarea" :maxlength="item.wordCount" :autosize="{ minRows: 2, maxRows: 5 }" placeholder="回复该话题"></Input>
|
|
|
+ <div>
|
|
|
+ <Button type="primary" @click="replyTopic(item)">回复</Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 别人的留言 -->
|
|
|
+ <div v-if="replies.length && activeIn === index" class="disChild">
|
|
|
+ <div v-for="(child, no) in replies" :key="no">
|
|
|
+ <div class="disContent">
|
|
|
+ <span class="disName" :style="{color:child.tmdid === $store.state.userInfo.sub ? '#02B35A' : '',}">
|
|
|
+ {{ child.tmdname }}
|
|
|
+ </span>
|
|
|
+ <span class="tag-style" style="border-color: #6b6ba9;color: #6b6ba9;" v-show="child.identity">老师</span>
|
|
|
+ </div>
|
|
|
+ <p v-html="child.comment"></p>
|
|
|
+ <div class="disAction">
|
|
|
+ <div>
|
|
|
+ <span @click="likeTopic(child, no)">
|
|
|
+ <Icon custom="iconfont icon-dianzan" size="17" color="#ff621a" v-show="child.likeit" />
|
|
|
+ <Icon custom="iconfont icon-dianzan1" size="17" v-show="!child.likeit" />
|
|
|
+ 点赞
|
|
|
+ {{ child.likes.length ? child.likes.length : '' }}
|
|
|
+ </span>
|
|
|
+ <span style="margin-left: 20px" class="delete-icon" v-if="child.tmdid === $store.state.userInfo.sub" @click="deleteReply(child, no)">
|
|
|
+ <Icon custom="iconfont icon-shanchu" size="17" />
|
|
|
+ {{ $t("jyzx.common.delete") }}
|
|
|
+ </span>
|
|
|
+ <!-- 先隐藏,课程改版完成后完善 -->
|
|
|
+ <!-- <span style="margin-left: 20px" v-show="child.tmdid != $store.state.userInfo.sub">
|
|
|
+ <Icon custom="iconfont icon-guzhangtousu" size="17" />
|
|
|
+ {{ $t("jyzx.common.report") }}
|
|
|
+ </span> -->
|
|
|
+ </div>
|
|
|
+ <p>{{ child.time | formatDate }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="!discuss.length" style="font-size: 20px; text-align: center; padding-top: 20px;">
|
|
|
+ 暂无讨论话题
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </vuescroll>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <Modal v-model="topicShow" width="50%" class="add-topic" :title="editId ? '编辑话题' : '发布话题'" @on-ok="addTopic" @on-cancel="cancelTopic">
|
|
|
+ <Input v-special-char v-model="topicTitle" :placeholder="$t('jyzx.discuss.placeholder2')"></Input>
|
|
|
+ <div id="releaseBox" style="height: 340px;"></div>
|
|
|
+ </Modal>
|
|
|
+ <Modal v-model="isReport" :title="$t('jyzx.common.report')">
|
|
|
+ <p>{{ $t("jyzx.common.message") }}</p>
|
|
|
+ <CheckboxGroup v-model="checkReport">
|
|
|
+ <Checkbox :label="index" v-for="(item, index) in reportList" :key="index">
|
|
|
+ <span>{{ item }}</span>
|
|
|
+ </Checkbox>
|
|
|
+ </CheckboxGroup>
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { mapGetters } from 'vuex'
|
|
|
+import { formatDate } from "../../utils/time.js"
|
|
|
+import E from "wangeditor"
|
|
|
+export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ MyNo: "14", //接收NavBar 選定的那一頁icon標示
|
|
|
+ MyName: "",
|
|
|
+ isLoad: false,
|
|
|
+ showType: {
|
|
|
+ name: this.$t("jyzx.discuss.allTopic"),
|
|
|
+ value: 0
|
|
|
+ },
|
|
|
+ keyword: '',
|
|
|
+ discuss: [],
|
|
|
+ activeIn: -1, //-1:没有点击回复
|
|
|
+ replyDis: "", //回复框内容
|
|
|
+ replies: [],
|
|
|
+ isReport: false,
|
|
|
+ checkReport: [],
|
|
|
+ reportList: this.$t("jyzx.discuss.report"),
|
|
|
+ // 发布框
|
|
|
+ topicShow: false,
|
|
|
+ topicTitle: '',
|
|
|
+ stemContent: "",
|
|
|
+ stemEditor: null,
|
|
|
+ editId: '', //编辑id
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted () {
|
|
|
+ this.MyName = this.$t("studentWeb.type.discussionBoard")
|
|
|
+ this.$emit("onNavNo", this.MyNo)
|
|
|
+ this.$emit("onNavName", this.MyName)
|
|
|
+ this.stemEditor = new E("#releaseBox")
|
|
|
+ this.stemEditor.config.onchange = (html) => {
|
|
|
+ this.stemContent = html
|
|
|
+ }
|
|
|
+ this.stemEditor.config.uploadImgShowBase64 = true
|
|
|
+ this.stemEditor.config.zIndex = 500
|
|
|
+ this.$editorTools.initMyEditor(this.stemEditor, this)
|
|
|
+ this.stemEditor.create()
|
|
|
+ document.getElementsByClassName("w-e-text-container")[0].style.height = '300px'
|
|
|
+ this.findTopic()
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(['getNowCourse']),
|
|
|
+ courseNow() {
|
|
|
+ return this.getNowCourse || JSON.parse(decodeURIComponent(localStorage.course, "utf-8"))
|
|
|
+ },
|
|
|
+ },
|
|
|
+ filters: {
|
|
|
+ //时间处理
|
|
|
+ formatDate (time) {
|
|
|
+ time = time
|
|
|
+ let date = new Date(time)
|
|
|
+ return formatDate(date, "yyyy-MM-dd hh:mm")
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 话题列表
|
|
|
+ findTopic(search) {
|
|
|
+ this.isLoad = true
|
|
|
+ this.discuss = []
|
|
|
+ this.activeIn = -1
|
|
|
+ let param = {
|
|
|
+ source: 'course',
|
|
|
+ comid: this.getNowCourse.id,
|
|
|
+ code: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId
|
|
|
+ }
|
|
|
+ if(search) {
|
|
|
+ if(this.keyword) {
|
|
|
+ param.keyWord = this.keyword
|
|
|
+ }
|
|
|
+ console.log(this.showType.value);
|
|
|
+ if(this.showType.value) {
|
|
|
+ param.userType = this.$store.state.userInfo.scope === 'student' ? 'student' : 'tmdid'
|
|
|
+ param.tmdid = this.$store.state.userInfo.sub
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.findTopic(param).then(res => {
|
|
|
+ if(res.length) {
|
|
|
+ res.forEach(item => {
|
|
|
+ // 返回的课程的所有话题(未区分名单)
|
|
|
+ // 先前端根据tmdid筛选出当前课程的老师,其他老师不显示
|
|
|
+ if(this.getNowCourse.scope === 'school') {
|
|
|
+ if(item.tmdid === this.getNowCourse.roster.teacherId || item.userType === 'student') {
|
|
|
+ if(item.userType === 'tmdid') item.identity = 'teacher'
|
|
|
+ this.discuss.push(item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if(item.tmdid === this.getNowCourse.creatorId) item.identity = 'teacher'
|
|
|
+ this.discuss.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.isLoad = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 新增/编辑话题
|
|
|
+ addTopic() {
|
|
|
+ let param = {
|
|
|
+ comid: this.getNowCourse.id, // 课程id
|
|
|
+ source: 'course',
|
|
|
+ debate: {
|
|
|
+ // 个人课程传课程创建者
|
|
|
+ code: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId,
|
|
|
+ id: this.editId, //编辑传id
|
|
|
+ title: this.topicTitle,
|
|
|
+ userType: this.$store.state.userInfo.scope === 'student' ? 'student' : 'tmdid',
|
|
|
+ tmdid: this.$store.state.userInfo.sub,
|
|
|
+ tmdname: this.$store.state.userInfo.name,
|
|
|
+ comment: this.stemContent,
|
|
|
+ wordCount: 200,// 允许回复的字数
|
|
|
+ time: (new Date()).getTime(),
|
|
|
+ comid: this.getNowCourse.id,
|
|
|
+ school: this.$store.state.userInfo.azp,
|
|
|
+ tags: [], //话题标签,先不管
|
|
|
+ },
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.addTopic(param).then(res => {
|
|
|
+ if(res.debate) {
|
|
|
+ this.$Message.success(this.editId ? '编辑成功' : "发布成功")
|
|
|
+ this.topicShow = false
|
|
|
+ if(this.editId) {
|
|
|
+ let editContent = this.discuss.findIndex(item => {
|
|
|
+ return item.id === this.editId
|
|
|
+ })
|
|
|
+ res.debate.replyCount = this.discuss[editContent].replyCount
|
|
|
+ this.discuss.splice(editContent, 1)
|
|
|
+ }
|
|
|
+ this.discuss.unshift(res.debate)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除话题
|
|
|
+ deleteTopic(content, index) {
|
|
|
+ this.$Modal.confirm({
|
|
|
+ title: "删除话题",
|
|
|
+ content: `确认删除“${content.title}”?`,
|
|
|
+ onOk: () => {
|
|
|
+ let param = {
|
|
|
+ debateId: content.id,
|
|
|
+ debateCode: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.deleteTopic(param).then(res => {
|
|
|
+ if(res.debate) {
|
|
|
+ this.$Message.success("删除成功")
|
|
|
+ this.discuss.splice(index, 1)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ openDisc(index, content) {
|
|
|
+ this.replies = []
|
|
|
+ if (this.activeIn == -1 || this.activeIn != index) {
|
|
|
+ this.activeIn = index
|
|
|
+ this.replyDis = ""
|
|
|
+ let param = {
|
|
|
+ debateId: content.id,
|
|
|
+ debateCode: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.findReply(param).then(res => {
|
|
|
+ if(res.debate) {
|
|
|
+ res.debate.replies.forEach(item => {
|
|
|
+ let isLike = item.likes.find(likes => {
|
|
|
+ return likes.tmdid === this.$store.state.userInfo.sub
|
|
|
+ })
|
|
|
+
|
|
|
+ if(this.getNowCourse.scope === 'school' && item.userType === 'tmdid' || item.tmdid === this.getNowCourse.creatorId) {
|
|
|
+ item.identity = 'teacher'
|
|
|
+ }
|
|
|
+ item.likeit = isLike ? true : false
|
|
|
+ this.replies.push(item)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else if(this.activeIn === index) {
|
|
|
+ this.activeIn = -1
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 回复话题
|
|
|
+ replyTopic(content, index) {
|
|
|
+ let param = {
|
|
|
+ debateId: content.id,
|
|
|
+ debateCode: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId,
|
|
|
+ opt: 'add', // 课程id
|
|
|
+ reply: {
|
|
|
+ id: '', //编辑传id
|
|
|
+ pid: content.id, //话题的id/或者回复的id
|
|
|
+ userType: this.$store.state.userInfo.scope === 'student' ? 'student' : 'tmdid',
|
|
|
+ tmdid: this.$store.state.userInfo.sub,
|
|
|
+ tmdname: this.$store.state.userInfo.name,
|
|
|
+ picture: '',
|
|
|
+ school: this.$store.state.userInfo.azp,
|
|
|
+ atTmdid: content.tmdid, //被回复者id,醍摩豆id/学生id
|
|
|
+ atPicture: '', //被回复者头像,先不传
|
|
|
+ atTmdname: content.tmdname, //被回复者名称
|
|
|
+ atUserType: '', //被回复者类型
|
|
|
+ comment: this.replyDis,
|
|
|
+ time: (new Date()).getTime(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.replyTopic(param).then(res => {
|
|
|
+ if(res.reply) {
|
|
|
+ this.$Message.success("回复成功")
|
|
|
+ this.replyDis = ''
|
|
|
+ this.replies.unshift(res.reply)
|
|
|
+ this.discuss[index].replyCount++
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 点赞
|
|
|
+ likeTopic(content, index) {
|
|
|
+ console.log(content, index);
|
|
|
+ let param = {
|
|
|
+ debateId: content.pid,
|
|
|
+ debateCode: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId,
|
|
|
+ opt: content.likeit ? 'unlike' : 'like',
|
|
|
+ likeData: {
|
|
|
+ replyId: content.id,
|
|
|
+ userType: this.$store.state.userInfo.scope === 'student' ? 'student' : 'tmdid',
|
|
|
+ tmdid: this.$store.state.userInfo.sub,
|
|
|
+ tmdname: this.$store.state.userInfo.name,
|
|
|
+ picture: '',
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.replyTopic(param).then(res => {
|
|
|
+ if(res) {
|
|
|
+ if(param.opt === 'like') {
|
|
|
+ this.replies[index].likes.push(param.likeData)
|
|
|
+ } else {
|
|
|
+ this.replies[index].likes.splice(index, 1)
|
|
|
+ }
|
|
|
+ this.replies[index].likeit = !content.likeit
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除回复
|
|
|
+ deleteReply(content, childindex, index) {
|
|
|
+ this.$Modal.confirm({
|
|
|
+ title: "删除回复",
|
|
|
+ content: `确认删除这条评论吗?`,
|
|
|
+ onOk: () => {
|
|
|
+ let param = {
|
|
|
+ debateId: content.pid,
|
|
|
+ debateCode: this.getNowCourse.scope === 'school' ? this.getNowCourse.school : this.getNowCourse.creatorId,
|
|
|
+ opt: 'del', // 课程id
|
|
|
+ replyId: content.id,
|
|
|
+ }
|
|
|
+ this.$api.studentWeb.replyTopic(param).then(res => {
|
|
|
+ if(!res.status) {
|
|
|
+ this.$Message.success("删除成功")
|
|
|
+ this.replies.splice(childindex, 1)
|
|
|
+ this.discuss[index].replyCount === 1 ? this.discuss[index].replyCount = 0 : this.discuss[index].replyCount--
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ metopic(name) {
|
|
|
+ // 我的话题
|
|
|
+ if (name === "metopic") {
|
|
|
+ this.showType = {
|
|
|
+ name: this.$t("jyzx.discuss.myTopic"),
|
|
|
+ value: 1
|
|
|
+ }
|
|
|
+ } else if (name === "allTopic") {
|
|
|
+ this.showType = {
|
|
|
+ name: this.$t("jyzx.discuss.allTopic"),
|
|
|
+ value: 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.findTopic(true)
|
|
|
+ },
|
|
|
+ editTopic(content) {
|
|
|
+ this.topicTitle = content.title
|
|
|
+ this.stemEditor.txt.html(content.comment)
|
|
|
+ // this.stemContent = content.comment
|
|
|
+ this.topicShow = true
|
|
|
+ this.editId = content.id
|
|
|
+ },
|
|
|
+ cancelTopic() {
|
|
|
+ if(this.editId) {
|
|
|
+ this.topicTitle = ''
|
|
|
+ this.stemEditor.txt.html('')
|
|
|
+ this.editId = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //时间格式化处理
|
|
|
+ dateFormat(timestamp) {
|
|
|
+ var date = new Date(timestamp)
|
|
|
+ var Y = date.getFullYear() + '-'
|
|
|
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
|
|
|
+ var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '
|
|
|
+ var H = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ":"
|
|
|
+ var Min = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes())
|
|
|
+ var S = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()) + " "
|
|
|
+ return Y + M + D + H + Min;
|
|
|
+ },
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.discussion {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background-color: #f2f2f2;
|
|
|
+ padding: 25px;
|
|
|
+
|
|
|
+ .header-box {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ .searchbox {
|
|
|
+ width: 25%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .discuss {
|
|
|
+ border-bottom: 1px solid var(--border-color);
|
|
|
+ padding: 15px;
|
|
|
+ margin: 0 15px;
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ margin-top: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-bottom: 30px;
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .disContent {
|
|
|
+ .disName {
|
|
|
+ font-size: 20px;
|
|
|
+ // color: #2d8cf0;
|
|
|
+ }
|
|
|
+
|
|
|
+ & > p:nth-of-type(2) {
|
|
|
+ margin: 5px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .title-box {
|
|
|
+ font-weight: bold;
|
|
|
+ margin-top: 10px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .disAction {
|
|
|
+ margin-top: 5px;
|
|
|
+
|
|
|
+ .delete-icon:hover {
|
|
|
+ color: rgb(226, 17, 17);
|
|
|
+ }
|
|
|
+
|
|
|
+ & > p:last-child {
|
|
|
+ color: #878787;
|
|
|
+ }
|
|
|
+
|
|
|
+ div {
|
|
|
+ float: right;
|
|
|
+
|
|
|
+ span {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .inClass {
|
|
|
+ background: #02B35A;
|
|
|
+ color: white;
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 2px 10px;
|
|
|
+ margin: 2px 0;
|
|
|
+ float: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .disChild {
|
|
|
+ padding: 10px 0 10px 5px;
|
|
|
+
|
|
|
+ & > div {
|
|
|
+ padding: 3px 0 7px 10px;
|
|
|
+
|
|
|
+ &:not(:last-child) {
|
|
|
+ border-bottom: 1px solid #ffffff;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .disName {
|
|
|
+ font-size: 16px;
|
|
|
+ // color: #515a6e;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .replyDisc {
|
|
|
+ border-top: 1px dashed var(--border-color);
|
|
|
+ margin-top: 10px;
|
|
|
+ padding-top: 10px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .ivu-input-wrapper {
|
|
|
+ width: 95%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ivu-btn {
|
|
|
+ background-color: #02b35a;
|
|
|
+ border-color: #02b35a;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.add-topic {
|
|
|
+ margin-top: 20px;
|
|
|
+ .ivu-input-wrapper {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ &>p {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+}
|
|
|
+.w-e-text-container {
|
|
|
+ height: 300px !important;
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|
|
|
+<style lang="less">
|
|
|
+.discussion {
|
|
|
+ .header-box {
|
|
|
+ .ivu-input-with-search:hover,
|
|
|
+ .ivu-input-search,
|
|
|
+ .ivu-input-search:hover{
|
|
|
+ background: #02B35A !important;
|
|
|
+ border-color: #02B35A !important;
|
|
|
+ }
|
|
|
+ .ivu-input:hover,
|
|
|
+ .ivu-input:focus {
|
|
|
+ border-color: #02B35A !important;
|
|
|
+ }
|
|
|
+ .ivu-btn:hover {
|
|
|
+ color: #02B35A;
|
|
|
+ border-color: #02B35A;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .add-topic{
|
|
|
+ .ivu-btn-primary{
|
|
|
+ background-color: #02B35A;
|
|
|
+ border-color: #02B35A;
|
|
|
+ }
|
|
|
+ .ivu-btn-text:hover{
|
|
|
+ color: #02B35A;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .header-box,
|
|
|
+ .add-topic,
|
|
|
+ .replyDisc {
|
|
|
+ .ivu-input:hover,
|
|
|
+ .ivu-input:focus {
|
|
|
+ border-color: #02B35A !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|