This commit is contained in:
xulu
2021-08-22 19:42:05 +08:00
parent 21e5fc549a
commit 95f5b46be8
4 changed files with 1325 additions and 0 deletions

480
src/assets/js/emoji.json Normal file
View File

@@ -0,0 +1,480 @@
{
"grinning": {
"keywords": ["face", "smile", "happy", "joy", ":D", "grin"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"grin": {
"keywords": ["face", "happy", "smile", "joy", "kawaii"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"smiley": {
"keywords": ["face", "happy", "joy", "haha", ":D", ":)", "smile", "funny"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"smile": {
"keywords": ["face", "happy", "joy", "funny", "haha", "laugh", "like", ":D", ":)"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sweat_smile": {
"keywords": ["face", "hot", "happy", "laugh", "sweat", "smile", "relief"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"laughing": {
"keywords": ["happy", "joy", "lol", "satisfied", "haha", "face", "glad", "XD", "laugh"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"innocent": {
"keywords": ["face", "angel", "heaven", "halo"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"wink": {
"keywords": ["face", "happy", "mischievous", "secret", ";)", "smile", "eye"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"blush": {
"keywords": ["face", "smile", "happy", "flushed", "crush", "embarrassed", "shy", "joy"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"slightly_smiling_face": {
"keywords": ["face", "smile"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"yum": {
"keywords": ["happy", "joy", "tongue", "smile", "face", "silly", "yummy", "nom", "delicious", "savouring"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"heart_eyes": {
"keywords": ["face", "love", "like", "affection", "valentines", "infatuation", "crush", "heart"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"kissing_heart": {
"keywords": ["face", "love", "like", "affection", "valentines", "infatuation", "kiss"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"kissing": {
"keywords": ["love", "like", "face", "3", "valentines", "infatuation", "kiss"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"kissing_smiling_eyes": {
"keywords": ["face", "affection", "valentines", "infatuation", "kiss"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"kissing_closed_eyes": {
"keywords": ["face", "love", "like", "affection", "valentines", "infatuation", "kiss"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"stuck_out_tongue_winking_eye": {
"keywords": ["face", "prank", "childish", "playful", "mischievous", "smile", "wink", "tongue"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"stuck_out_tongue_closed_eyes": {
"keywords": ["face", "prank", "playful", "mischievous", "smile", "tongue"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"stuck_out_tongue": {
"keywords": ["face", "prank", "childish", "playful", "mischievous", "smile", "tongue"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sunglasses": {
"keywords": ["face", "cool", "smile", "summer", "beach", "sunglass"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"roll_eyes": {
"keywords": ["face", "eyeroll", "frustrated"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"flushed": {
"keywords": ["face", "blush", "shy", "flattered"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"rage": {
"keywords": ["angry", "mad", "hate", "despise"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"confused": {
"keywords": ["face", "indifference", "huh", "weird", "hmmm", ":/"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"tired_face": {
"keywords": ["sick", "whine", "upset", "frustrated"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"triumph": {
"keywords": ["face", "gas", "phew", "proud", "pride"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"fearful": {
"keywords": ["face", "scared", "terrified", "nervous", "oops", "huh"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"disappointed_relieved": {
"keywords": ["face", "phew", "sweat", "nervous"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sleepy": {
"keywords": ["face", "tired", "rest", "nap"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sweat": {
"keywords": ["face", "hot", "sad", "tired", "exercise"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"dizzy_face": {
"keywords": ["spent", "unconscious", "xox", "dizzy"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"astonished": {
"keywords": ["face", "xox", "surprised", "poisoned"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sneezing_face": {
"keywords": ["face", "gesundheit", "sneeze", "sick", "allergy"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"mask": {
"keywords": ["face", "sick", "ill", "disease"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"face_with_thermometer": {
"keywords": ["sick", "temperature", "thermometer", "cold", "fever"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"face_with_head_bandage": {
"keywords": ["injured", "clumsy", "bandage", "hurt"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"sleeping": {
"keywords": ["face", "tired", "sleepy", "night", "zzz"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"zzz": {
"keywords": ["sleepy", "tired", "dream"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"clap": {
"keywords": ["hands", "praise", "applause", "congrats", "yay"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"call_me_hand": {
"keywords": ["hands", "gesture"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"+1": {
"keywords": ["thumbsup", "yes", "awesome", "good", "agree", "accept", "cool", "hand", "like"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"-1": {
"keywords": ["thumbsdown", "no", "dislike", "hand"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"facepunch": {
"keywords": ["angry", "violence", "fist", "hit", "attack", "hand"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"fist": {
"keywords": ["fingers", "hand", "grasp"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"v": {
"keywords": ["fingers", "ohyeah", "hand", "peace", "victory", "two"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"ok_hand": {
"keywords": ["fingers", "limbs", "perfect", "ok", "okay"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"raised_hand": {
"keywords": ["fingers", "stop", "highfive", "palm", "ban"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"raised_back_of_hand": {
"keywords": ["fingers", "raised", "backhand"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"muscle": {
"keywords": ["arm", "flex", "hand", "summer", "strong", "biceps"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"handshake": {
"keywords": ["agreement", "shake"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"point_left": {
"keywords": ["direction", "fingers", "hand", "left"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"point_right": {
"keywords": ["fingers", "hand", "direction", "right"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"fu": {
"keywords": ["hand", "fingers", "rude", "middle", "flipping"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"raised_hand_with_fingers_splayed": {
"keywords": ["hand", "fingers", "palm"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"lips": {
"keywords": ["mouth", "kiss"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"ear": {
"keywords": ["face", "hear", "sound", "listen"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"eyes": {
"keywords": ["look", "watch", "stalk", "peek", "see"],
"char": "",
"fitzpatrick_scale": false,
"category": "people"
},
"santa": {
"keywords": ["festival", "man", "male", "xmas", "father christmas"],
"char": "",
"fitzpatrick_scale": true,
"category": "people"
},
"sun_with_face": {
"keywords": ["nature", "morning", "sky"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"crescent_moon": {
"keywords": ["night", "sleep", "sky", "evening", "magic"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"star": {
"keywords": ["night", "yellow"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"zap": {
"keywords": ["thunder", "weather", "lightning bolt", "fast"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"fire": {
"keywords": ["hot", "cook", "flame"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"snowflake": {
"keywords": ["winter", "season", "cold", "weather", "christmas", "xmas"],
"char": "",
"fitzpatrick_scale": false,
"category": "animals_and_nature"
},
"soccer": {
"keywords": ["sports", "football"],
"char": "",
"fitzpatrick_scale": false,
"category": "activity"
},
"basketball": {
"keywords": ["sports", "balls", "NBA"],
"char": "",
"fitzpatrick_scale": false,
"category": "activity"
},
"football": {
"keywords": ["sports", "balls", "NFL"],
"char": "",
"fitzpatrick_scale": false,
"category": "activity"
},
"baseball": {
"keywords": ["sports", "balls"],
"char": "",
"fitzpatrick_scale": false,
"category": "activity"
},
"gift": {
"keywords": ["present", "birthday", "christmas", "xmas"],
"char": "",
"fitzpatrick_scale": false,
"category": "objects"
},
"tada": {
"keywords": ["party", "congratulations", "birthday", "magic", "circus", "celebration"],
"char": "",
"fitzpatrick_scale": false,
"category": "objects"
},
"black_nib": {
"keywords": ["pen", "stationery", "writing", "write"],
"char": "",
"fitzpatrick_scale": false,
"category": "objects"
},
"memo": {
"keywords": ["write", "documents", "stationery", "pencil", "paper", "writing", "legal", "exam", "quiz", "test", "study", "compose"],
"char": "",
"fitzpatrick_scale": false,
"category": "objects"
},
"heart": {
"keywords": ["love", "like", "valentines"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
},
"yellow_heart": {
"keywords": ["love", "like", "affection", "valentines"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
},
"green_heart": {
"keywords": ["love", "like", "affection", "valentines"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
},
"vs": {
"keywords": ["words", "orange-square"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
},
"speech_balloon": {
"keywords": ["bubble", "words", "message", "talk", "chatting"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
},
"clock1": {
"keywords": ["time", "late", "early", "schedule"],
"char": "",
"fitzpatrick_scale": false,
"category": "symbols"
}
}

57
src/assets/js/mockdata.js Normal file
View File

@@ -0,0 +1,57 @@
//模拟评论数据
const comment = {
status: "成功",
code: 200,
data: [{
id: 'comment0001', //主键id
date: '2018-07-05 08:30', //评论时间
ownerId: 'talents100020', //文章的id
fromId: 'errhefe232213', //评论者id
fromName: '犀利的评论家', //评论者昵称
fromAvatar: 'http://ww4.sinaimg.cn/bmiddle/006DLFVFgy1ft0j2pddjuj30v90uvagf.jpg', //评论者头像
likeNum: 3, //点赞人数
content: '非常靠谱的程序员', //评论内容
reply: [ //回复,或子评论
// {
// id: '34523244545', //主键id
// commentId: 'comment0001', //父评论id即父亲的id
// fromId: 'observer223432', //评论者id
// fromName: '夕阳红', //评论者昵称
// fromAvatar: 'https://wx4.sinaimg.cn/mw690/69e273f8gy1ft1541dmb7j215o0qv7wh.jpg', //评论者头像
// toId: 'errhefe232213', //被评论者id
// toName: '犀利的评论家', //被评论者昵称
// toAvatar: 'http://ww4.sinaimg.cn/bmiddle/006DLFVFgy1ft0j2pddjuj30v90uvagf.jpg', //被评论者头像
// content: '赞同,很靠谱,水平很高', //评论内容
// date: '2018-07-05 08:35' //评论时间
// },
// {
// id: '34523244545',
// commentId: 'comment0001',
// fromId: 'observer567422',
// fromName: '清晨一缕阳光',
// fromAvatar: 'http://imgsrc.baidu.com/imgad/pic/item/c2fdfc039245d688fcba1b80aec27d1ed21b245d.jpg',
// toId: 'observer223432',
// toName: '夕阳红',
// toAvatar: 'https://wx4.sinaimg.cn/mw690/69e273f8gy1ft1541dmb7j215o0qv7wh.jpg',
// content: '大神一个!',
// date: '2018-07-05 08:50'
// }
]
},
{
id: 'comment0002',
date: '2018-07-05 08:30',
ownerId: 'talents100020',
fromId: 'errhefe232213',
fromName: '毒蛇郭德纲',
fromAvatar: 'http://ww1.sinaimg.cn/bmiddle/006DLFVFgy1ft0j2q2p8pj30v90uzmzz.jpg',
likeNum: 0,
content: '从没见过这么优秀的人',
reply: []
}
]
};
export {
comment
}

View File

@@ -0,0 +1,327 @@
<!--评论模块-->
<template>
<div class="container">
<div class="comment" v-for="item in comments">
<div class="info">
<!-- <img class="avatar" :src="item.fromAvatar" width="36" height="36" /> -->
<div class="right">
<div class="name">{{item.user.account}}
<span style="margin: 0 10px;">( {{item.role}} )</span></div>
<div class="date">{{item.ctime}}</div>
</div>
</div>
<div class="content">{{item.content}}</div>
<!-- <div class="control">
<span class="like" :class="{active: item.isLike}" @click="likeClick(item)">
<i class="iconfont icon-like"></i>
<span class="like-num">{{item.likeNum > 0 ? item.likeNum + '人赞' : '赞'}}</span>
</span>
<span class="comment-reply" @click="showCommentInput(item)">
<i class="iconfont icon-comment"></i>
<span>回复</span>
</span>
</div> -->
<!-- <div class="reply">
<div class="item" v-for="reply in item.reply">
<div class="reply-content">
<span class="from-name">{{reply.fromName}}</span><span>: </span>
<span class="to-name">@{{reply.toName}}</span>
<span>{{reply.content}}</span>
</div>
<div class="reply-bottom">
<span>{{reply.date}}</span>
<span class="reply-text" @click="showCommentInput(item, reply)">
<i class="iconfont icon-comment"></i>
<span>回复</span>
</span>
</div>
</div>
<div class="write-reply" v-if="item.reply.length > 0" @click="showCommentInput(item)">
<i class="el-icon-edit"></i>
<span class="add-comment">添加新评论</span>
</div>
<transition name="fade">
<div class="input-wrapper" v-if="showItemId === item.id">
<el-input class="gray-bg-input" v-model="inputComment" type="textarea" :rows="3" autofocus placeholder="写下你的评论">
</el-input>
<div class="btn-control">
<span class="cancel" @click="cancel">取消</span>
<el-button class="btn" type="success" round @click="commitComment">确定</el-button>
</div>
</div>
</transition>
</div> -->
</div>
</div>
</template>
<script>
import Vue from 'vue'
export default {
props: {
comments: {
type: Array,
required: true
}
},
components: {},
data() {
return {
inputComment: '',
showItemId: ''
}
},
computed: {},
methods: {
/**
* 点赞
*/
likeClick(item) {
if (item.isLike === null) {
Vue.$set(item, "isLike", true);
item.likeNum++
} else {
if (item.isLike) {
item.likeNum--
} else {
item.likeNum++
}
item.isLike = !item.isLike;
}
},
/**
* 点击取消按钮
*/
cancel() {
this.showItemId = ''
},
/**
* 提交评论
*/
commitComment() {
console.log(this.inputComment);
},
/**
* 点击评论按钮显示输入框
* item: 当前大评论
* reply: 当前回复的评论
*/
showCommentInput(item, reply) {
if (reply) {
this.inputComment = "@" + reply.fromName + " "
} else {
this.inputComment = ''
}
this.showItemId = item.id
}
},
created() {
// console.log(this.comments)
}
}
</script>
<style scoped>
.container {
padding: 0 10px;
box-sizing: border-box;
border: 1px solid #DCDFE6;
max-height: 500px;
overflow-y: scroll;
}
.container .comment {
display: flex;
flex-direction: column;
padding: 10px;
border-bottom: 1px solid #F2F6FC;
}
.container .comment .info {
display: flex;
align-items: center;
}
.container .comment .info .avatar {
border-radius: 50%;
}
.container .comment .info .right {
display: flex;
flex-direction: column;
/* margin-left: 10px; */
}
.container .comment .info .right .name {
font-size: 16px;
color: #303133;
margin-bottom: 5px;
font-weight: 500;
}
.container .comment .info .right .date {
font-size: 12px;
color: #909399;
}
.content {
font-size: 16px;
color: #303133;
line-height: 20px;
padding: 10px 0;
overflow-y: auto;
}
.control {
display: flex;
align-items: center;
font-size: 14px;
color: #909399;
}
.control .like {
display: flex;
align-items: center;
margin-right: 20px;
cursor: pointer;
}
.control .like.active,
.control .like:hover {
color: #409EFF;
}
.control .like .iconfont {
font-size: 14px;
margin-right: 5px;
}
.control .comment-reply {
display: flex;
align-items: center;
cursor: pointer;
}
.control .comment-reply:hover {
color: #333;
}
.control .comment-reply .iconfont {
font-size: 16px;
margin-right: 5px;
}
.reply {
margin: 10px 0;
border-left: 2px solid #DCDFE6;
}
.reply .item {
margin: 0 10px;
padding: 10px 0;
border-bottom: 1px dashed #EBEEF5;
}
.reply .item .reply-content {
display: flex;
align-items: center;
font-size: 14px;
color: #303133;
}
.reply .item .reply-content .from-name {
color: #409EFF;
}
.reply .item .reply-content .to-name {
color: #409EFF;
margin-left: 5px;
margin-right: 5px;
}
.reply .item .reply-bottom {
display: flex;
align-items: center;
margin-top: 6px;
font-size: 12px;
color: #909399;
}
.reply .item .reply-bottom .reply-text {
display: flex;
align-items: center;
margin-left: 10px;
cursor: pointer;
}
.reply .item .reply-bottom .reply-text:hover {
color: #333;
}
.reply .item .reply-bottom .reply-text .icon-comment {
margin-right: 5px;
}
.reply .write-reply {
display: flex;
align-items: center;
font-size: 14px;
color: #909399;
padding: 10px;
cursor: pointer;
}
.reply .write-reply:hover {
color: #303133;
}
.reply .write-reply .el-icon-edit {
margin-right: 5px;
}
.reply .fade-enter-active,
.reply .fade-leave-active {
transition: opacity 0.5s;
}
.reply .fade-enter,
.fade-leave-to {
opacity: 0;
}
.reply .input-wrapper {
padding: 10px;
}
.reply .input-wrapper .gray-bg-input,
.el-input__inner {
/*background-color: #67C23A;*/
}
.reply .input-wrapper .btn-control {
display: flex;
justify-content: flex-end;
align-items: center;
padding-top: 10px;
}
.reply .input-wrapper .btn-control .cancel {
font-size: 16px;
color: #606266;
margin-right: 20px;
cursor: pointer;
}
.reply .input-wrapper .btn-control .cancel:hover {
color: #333;
}
.reply .input-wrapper .btn-control .confirm {
font-size: 16px;
}
</style>

View File

@@ -0,0 +1,461 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-collection"></i>
<router-link :to="{path:'/managing'}">
<span class="top_dao">{{this.head_line}}</span>
</router-link>
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container container_l">
<el-row :gutter="24">
<el-col :span="16">
<div class="tet_list" :model="txt_mess">
<h4>{{txt_mess.title}}</h4>
<h5>{{this.head_line}}<span style="margin: 0 10px;">>></span> DOI:{{txt_mess.accept_sn}}</h5>
<p>{{txt_mess.author}}</p>
<div class="file_sty" v-for="item in fileList">
<svg t="1629609240510" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3814" width="15" height="15" style="margin: 20px 10px -2px 0;">
<path d="M1024.00906 393.054v548.774c0 45.39-36.776 82.166-82.146 82.166H266.89306c-38.776 0-71.268-26.868-79.9-63.006l-0.33-46.976-1.916-279.754V82.166C184.74506 36.778 221.52306 0 266.89306 0h364.064c32.718 0 138.682 90.346 232.346 185.494C948.76506 272.338 1024.00906 363.178 1024.00906 393.054z"
fill="#DDEAFB" p-id="3815"></path>
<path d="M1024.00906 393.054v201.028c0-0.226-0.02-0.454-0.02-0.7-6.182-246.666-207.106-258.08-272.812-323.784l112.124-84.104C948.76506 272.338 1024.00906 363.178 1024.00906 393.054z"
fill="#CBE2FF" p-id="3816"></path>
<path d="M630.94506 0H429.91706c0.226 0 0.454 0.02 0.7 0.02 246.666 6.182 258.08 207.106 323.784 272.812l84.104-112.124C751.66106 75.244 660.82106 0 630.94506 0z"
fill="#CBE2FF" p-id="3817"></path>
<path d="M1024.00706 393.064v34.754c0-73.17-59.334-132.506-132.506-132.506h-80.648c-45.368 0-82.16-36.794-82.16-82.16V132.506C728.69506 59.334 669.35906 0 596.18906 0h34.754c62.58 0 122.616 24.866 166.866 69.114l157.086 157.086a236.004 236.004 0 0 1 69.112 166.864z"
fill="#BED8FB" p-id="3818"></path>
<path d="M885.28906 480.062H323.45506a15.452 15.452 0 1 1 0-30.904H885.28906a15.452 15.452 0 1 1 0 30.904zM885.28906 562.26H323.45506a15.452 15.452 0 1 1 0-30.904H885.28906a15.452 15.452 0 1 1 0 30.904zM885.28906 644.456H323.45506a15.452 15.452 0 1 1 0-30.904H885.28906a15.452 15.452 0 1 1 0 30.904zM745.13906 726.654H323.45506a15.452 15.452 0 1 1 0-30.904h421.682a15.452 15.452 0 0 1 15.452 15.452 15.448 15.448 0 0 1-15.45 15.452zM529.84306 252.076H323.45506a15.452 15.452 0 1 1 0-30.904h206.388a15.452 15.452 0 1 1 0 30.904z"
fill="#617881" p-id="3819"></path>
<path d="M566.48706 957.136a1159.306 1159.306 0 0 1-1.504 14.568 48.352 48.352 0 0 1-15.658 30.74 47.908 47.908 0 0 1-28.578 12.362 2959.96 2959.96 0 0 1-466.258 0 47.912 47.912 0 0 1-28.578-12.362 48.348 48.348 0 0 1-15.658-30.74 1159.306 1159.306 0 0 1-1.504-14.568c-9.642-96.094-11.312-192.19-4.986-288.264 0.804-12.156 1.73-24.292 2.782-36.448a1705.496 1705.496 0 0 1 3.708-38.116c2.494-23.138 21.036-41.268 44.236-43.102a2960.442 2960.442 0 0 1 466.258 0c23.2 1.834 41.742 19.964 44.236 43.102a1705.496 1705.496 0 0 1 3.708 38.116c1.05 12.156 1.978 24.292 2.782 36.448 6.304 96.074 4.636 192.17-4.986 288.264z"
fill="#80B4FB" p-id="3820"></path>
<path d="M571.47306 668.872c-34.984 85.71-172.286 216.83-283.854 250.146C176.05106 885.704 38.74906 754.584 3.76506 668.872c0.804-12.156 1.73-24.292 2.782-36.448 38.982 85.69 172.266 211.206 281.074 243.698 108.828-32.492 242.132-158.008 281.074-243.698 1.048 12.156 1.974 24.292 2.778 36.448zM566.48706 957.136a1159.306 1159.306 0 0 1-1.504 14.568 48.352 48.352 0 0 1-15.658 30.74c-3.956-31.338-37.642-82.888-87.606-132.914a15.476 15.476 0 0 1 0.02-21.86 15.474 15.474 0 0 1 21.86 0.022c29.216 29.256 53.63 59.4 70.628 87.194 4.72 7.704 8.82 15.12 12.26 22.25zM113.51906 869.53c-49.964 50.026-83.65 101.576-87.606 132.914a48.348 48.348 0 0 1-15.658-30.74 1159.306 1159.306 0 0 1-1.504-14.568c3.44-7.128 7.54-14.546 12.26-22.252 16.998-27.794 41.414-57.938 70.628-87.194a15.474 15.474 0 0 1 21.86-0.022 15.48 15.48 0 0 1 0.02 21.862z"
fill="#5EA5EC" p-id="3821"></path>
</svg>
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Manuscirpt <span style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span></a><br>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="tet_people" :model="txt_peop">
<h4>I want to invite the following editorial board members to get more opinions for the manuscript.</h4>
<ul v-for="item in Editard_list" style="margin-top: 10px;">
<li style="list-style: none;">
{{item.realname==''?item.account:(item.realname!=''?item.account+' ('+item.realname+')':'')}}
<el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(item)"></el-button>
</li>
</ul>
<el-select v-model="select_edit.board_id" filterable placeholder="Please add an editorial board" style="width: 320px;">
<el-option v-for="item in Edit_Chi" :key="item.user_id" :label="item.account" :value="item.user_id"></el-option>
</el-select>
<el-button type="text" @click="add_Editer" style="margin-left: 5px;">Choice</el-button>
</div>
</el-col>
</el-row>
<div>
<h2 style="margin: 30px 0 15px 5px;font-size: 16px;">Add my comment. ( Who joined to review this manuscript can
view this comment: editor, editorial board members, young sciencists, reviewers.)</h2>
<div class="chatIcon">
<el-popover placement="top-start" width="400" trigger="click" class="emoBox">
<div class="emotionList">
<a href="javascript:void(0);" @click="getEmo(index)" v-for="(item,index) in faceList" :key="index" class="emotionItem">{{item}}</a>
</div>
<!-- <el-button class="emotionSelect" slot="reference" style="padding: 7px 10px;border: 0;margin: 3px 5px;position: absolute;z-index: 500;background: 0;">
<svg t="1629607720277" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3396" width="20" height="20">
<path d="M512 1024c282.752 0 512-229.248 512-512S794.752 0 512 0 0 229.248 0 512s229.248 512 512 512z m0-85.333333C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z"
fill="#FFBB20" p-id="3397"></path>
<path d="M512 512m-85.333333 0a85.333333 85.333333 0 1 0 170.666666 0 85.333333 85.333333 0 1 0-170.666666 0Z"
fill="#FFFFFF" p-id="3398"></path>
<path d="M320 405.333333m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#666666" p-id="3399"></path>
<path d="M704 405.333333m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#666666" p-id="3400"></path>
<path d="M234.666667 576c42.666667 170.666667 135.125333 256 277.333333 256s234.666667-85.333333 277.333333-256h-554.666666z"
fill="#E01313" p-id="3401"></path>
</svg>
</el-button> -->
</el-popover>
</div>
<el-input v-model="add_edit.content" class="chatText ping_lun" type="textarea" id='textarea' rows="5" placeholder="Please enter the content..."
@keyup.enter.native="sendInfo"></el-input>
<div style="text-align: right;">
<el-button type="primary" @click="hdSubmit" class="sub_mit">Submit</el-button>
</div>
</div>
<h2 style="margin: 0 0 15px 5px;font-size: 16px;">All comments: editor, editorial board members, young sciencists,
reviewers</h2>
<comment :comments="commentData" v-if="this.commentData!=''"></comment>
<p v-if="this.commentData==''" style="color:#6f6f6f;font-size: 14px;margin: 20px 0 0 10px;">No comment</p>
</div>
</div>
</template>
<script>
import comment from './comment'
// import appData from '../../assets/js/emoji.json'
const appData = require("../../assets/js/emoji.json");
export default {
components: {
comment
},
mounted() {
for (let i in appData) {
this.faceList.push(appData[i].char);
}
},
data() {
return {
mediaUrl: this.Common.mediaUrl,
textarea: '',
commentData: [],
txt_mess: {},
txt_peop: {},
add_edit: {
article_id: this.$route.query.Art_id,
user_id: localStorage.getItem('U_id'),
content: ''
},
select_edit: {
board_id: '',
article_id: this.$route.query.Art_id,
},
head_line: '',
Art_id: this.$route.query.Art_id,
tableData1: [],
fileList: [],
faceList: [],
Editard_list: [],
Edit_Chi: [],
rules: {}
}
},
created() {
this.getData();
},
methods: {
getData() {
// 获取文章信息
this.$api
.post('api/Chief/getArticleDetail ', {
'article_id': this.Art_id
})
.then(res => {
if (res.code == 0) {
this.txt_mess = res.data.article;
if (res.data.article.file != "") {
localStorage.setItem('journal_title', res.data.article.journal.title);
localStorage.setItem('journal_id', res.data.article.journal.journal_id);
this.head_line = localStorage.getItem('journal_title')
let file_down = res.data.article.file;
for (var i = 0; i < file_down.length; i++) {
let date = new Date(parseInt(file_down[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
file_down[i].ctime = Y + M + D;
}
this.fileList = file_down
// 获取文章编委池子
this.$api
.post('api/Chief/getAllArticleBoards', {
'journal_id': localStorage.getItem('journal_id')
})
.then(res => {
if (res.code == 0) {
this.Edit_Chi = res.data.boards;
for (let i = 0; i < this.Edit_Chi.length; i++) {
for (let r = 0; r < this.Editard_list.length; r++) {
if (this.Edit_Chi[i].user_id == this.Editard_list[r].user_id) {
this.Edit_Chi.splice(i, 1);
if (i == 0) {
i = 0
} else {
i = i - 1
}
}
}
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
console.log(err);
});
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
// 获取文章的编委列表
this.$api
.post('api/Chief/getArticleBoard', {
'article_id': this.Art_id
})
.then(res => {
if (res.code == 0) {
this.Editard_list = res.data.boards;
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
// 获取评论内容
this.$api
.post('api/Chief/getAllChiefMsg', {
'article_id': this.Art_id
})
.then(res => {
if (res.code == 0) {
for (var i = 0; i < res.data.msgs.length; i++) {
let date = new Date(parseInt(res.data.msgs[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data.msgs[i].ctime = Y + M + D;
}
this.commentData = res.data.msgs;
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 保存添加编委
add_Editer() {
if (this.select_edit.board_id == '') {
this.$message.error('Please select the editorial board!');
}else{
this.$api
.post('api/Chief/addArticleBoard', this.select_edit)
.then(res => {
if (res.code == 0) {
this.$message.success('Editorial board of newly added articles succeeded!');
this.getdate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
// 删除编委
handleDelete(item) {
// 二次确认删除
this.$confirm('Are you sure you want to delete the editorial board of this article', 'Delete', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Chief/delArticleBoard', item)
.then(res => {
if (res.code == 0) {
this.$message.success('删除成功');
this.getData();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
},
// 获取表情包
getEmo(index) {
var textArea = document.getElementById('textarea');
function changeSelectedText(obj, str) {
if (window.getSelection) {
// 非IE浏览器
textArea.setRangeText(str);
// 在未选中文本的情况下,重新设置光标位置
textArea.selectionStart += str.length;
textArea.focus()
} else if (document.selection) {
// IE浏览器
obj.focus();
var sel = document.selection.createRange();
sel.text = str;
}
}
changeSelectedText(textArea, this.faceList[index]);
this.textarea = textArea.value; // 要同步data中的数据
// console.log(this.faceList[index]);
return;
},
// 添加评论
hdSubmit() {
// console.log(this.add_edit)
if (this.add_edit.content == '') {
this.$message.error('Add message cannot be empty!');
} else {
this.$api
.post('api/Chief/addMsgForArticle', this.add_edit)
.then(res => {
if (res.code == 0) {
this.$message.success('Successfully added message!');
this.add_edit.content = ''
this.getData();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
}
}
}
</script>
<style>
.ma_title {
margin-bottom: 5px;
font-weight: bold;
}
.tet_list {
border: 1px solid #DCDFE6;
background: #fff;
border-radius: 5px;
margin-bottom: 20px;
padding: 20px 20px;
}
.upload-txtc .el-upload-list__item .el-icon-upload-success {
display: none !important;
}
.tet_list h5 {
margin: 20px 0 10px 0;
font-weight: normal;
}
.tet_list p {
font-family: Calibri;
line-height: 22px;
}
.tet_people {
border: 1px solid #DCDFE6;
background: #fff;
border-radius: 5px;
margin-bottom: 20px;
padding: 20px 20px;
}
.tet_people .el-input {
margin-top: 20px;
}
.file_sty {}
.file_sty a {
color: #606266;
font-size: 14px;
}
.file_sty a:hover {
text-decoration: underline;
}
.ping_lun {}
.ping_lun textarea {
/* padding-top: 50px; */
}
.ping_lun textarea:focus {
/* height: 140px; */
-webkit-box-shadow: 0 0 6px 0 #5094d5;
box-shadow: 0 0 6px 0 #5094d5;
border: 1px solid #5094d5;
}
.sub_mit {
margin: 15px 0 0 0;
width: 100px;
}
/* 表情包 */
.el-popover {
height: 200px;
width: 400px;
overflow: scroll;
overflow-x: auto;
}
.chatIcon {
/* padding: 0 10px; */
font-size: 25px;
}
.emotionList {
display: flex;
flex-wrap: wrap;
padding: 5px;
}
.emotionItem {
width: 10%;
font-size: 20px;
text-align: center;
}
/*包含以下四种的链接*/
.emotionItem {
text-decoration: none;
}
/*正常的未被访问过的链接*/
.emotionItem:link {
text-decoration: none;
}
/*已经访问过的链接*/
.emotionItem:visited {
text-decoration: none;
}
/*鼠标划过(停留)的链接*/
.emotionItem:hover {
text-decoration: none;
}
/* 正在点击的链接*/
.emotionItem:active {
text-decoration: none;
}
</style>