语言适配
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
<div class="newScaleImage_right">
|
||||
<div class="newScaleImage_right_content">
|
||||
<div class="newScaleImage_right_content_type">
|
||||
<div class="generate_item_title_left scaleImage_chunk_title">type:{{ scaleImageData?.portfolioType=='History'? 'collection' : 'generate' }}</div>
|
||||
<div class="generate_item_title_left scaleImage_chunk_title">{{$t('newScaleImage.Type')}}:{{ scaleImageData?.portfolioType=='History'? 'Collection' : 'Printboard' }}</div>
|
||||
</div>
|
||||
<div v-if="true" class="newScaleImage_right_content_collection">
|
||||
<div class="scaleImage_chunk_item content_left_collection_detail">
|
||||
@@ -53,7 +53,7 @@
|
||||
<img v-for="item in scaleImageData?.designPythonOutfitList" v-lazy="item.designUrl">
|
||||
</div>
|
||||
</div>
|
||||
<div class="started_btn" @click="setChoose" :title="systemUser.value != 1?'请先登录或者升级为正式用户': scaleImageData.openSource == 0?'作者不允许二次创作':''" :class="{active:systemUser.value != 1?true:scaleImageData.openSource == 0}">二创</div>
|
||||
<div class="started_btn" @click="setChoose" :title="systemUser.value != 1?$t('newScaleImage.jsContent1'): scaleImageData.openSource == 0?$t('newScaleImage.jsContent2'):''" :class="{active:systemUser.value != 1?true:scaleImageData.openSource == 0}">{{$t('newScaleImage.SecondaryCreation')}}</div>
|
||||
</div>
|
||||
<div v-else class="newScaleImage_right_content_generate">
|
||||
<div class="scaleImage_chunk_item content_left_generate_item">
|
||||
@@ -93,11 +93,11 @@
|
||||
</div>
|
||||
<div class="detail_right_date detail_left_right_item">
|
||||
<div class="detail_right_date_setUp">
|
||||
<div>创建时间</div>
|
||||
<div>{{$t('newScaleImage.CreationTime')}}</div>
|
||||
<span>{{ scaleImageData.createDate }}</span>
|
||||
</div>
|
||||
<div class="detail_right_date_upData">
|
||||
<div>更新时间</div>
|
||||
<div>{{$t('newScaleImage.UpdateTime')}}</div>
|
||||
<span>{{ scaleImageData.updateDate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -145,12 +145,12 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="newScaleImage_right_comment scaleImage_chunk_item">
|
||||
<div class="scaleImage_chunk_title">Comment</div>
|
||||
<div v-if="commentList.length === 0" class="newScaleImage_right_comment_null">
|
||||
<div class="scaleImage_chunk_title">No Comments</div>
|
||||
<div class="scaleImage_chunk_title">You can be the first!</div>
|
||||
<div class="scaleImage_chunk_title">{{$t('newScaleImage.Comment')}}</div>
|
||||
<div v-show="commentList.length === 0" class="newScaleImage_right_comment_null">
|
||||
<div class="scaleImage_chunk_title">{{$t('newScaleImage.NoComments')}}</div>
|
||||
<div class="scaleImage_chunk_title">{{$t('newScaleImage.first')}}</div>
|
||||
</div>
|
||||
<div v-else class="newScaleImage_right_comment_content">
|
||||
<div v-show="commentList.length !== 0" class="newScaleImage_right_comment_content">
|
||||
<div class="detail_left_content_item" v-for="item in commentList" :key="item.id">
|
||||
<!-- <div class="detail_left_content_item_img">
|
||||
<img v-lazy="scaleImageData?.imgUrl">
|
||||
@@ -158,45 +158,62 @@
|
||||
<div class="detail_left_content_item_content">
|
||||
<div class="scaleImage_chunk_title_intro">{{ item?.userName }}</div>
|
||||
<!-- <div class="scaleImage_chunk_title_intro">个性签名</div> -->
|
||||
<div class="scaleImage_chunk_title" :class="[item.unfold?'':'active']">{{ item.comment }}</div>
|
||||
<div v-commentUnfold="item" class="scaleImage_chunk_title" :class="[item.detailUnfold?'active':'']"><div>{{ item.comment }}</div></div>
|
||||
<div class="scaleImage_chunk_title_intro" style="font-size: 1.2rem;" v>{{ item.createTimes }}</div>
|
||||
<div class="detail_left_content_item_btn">
|
||||
<div class="left_content_item_reply" @click.stop="setCommentReply(item,'parent')">
|
||||
<i class="fi fi-rr-comment-alt-dots"></i>
|
||||
回复
|
||||
{{$t('newScaleImage.reply')}}
|
||||
</div>
|
||||
<!-- <div class="left_content_item_thumbs">
|
||||
<i class="fi fi-sr-thumbs-up" :adminSix="!!true" style="color: rgb(158, 158, 167);"></i>
|
||||
<span>123</span>
|
||||
</div> -->
|
||||
|
||||
<!-- <div v-show="true" class="left_content_item_unfold" @click="()=>item.unfold = !item.unfold">展开</div> -->
|
||||
</div>
|
||||
<div class="detail_left_content_item_replyContent" v-for="children in item.childCommentVOList" :key="children.id">
|
||||
<div class="detail_left_content_item_img">
|
||||
<!-- <img v-lazy="scaleImageData?.imgUrl"> -->
|
||||
<div class="left_content_item_btn">
|
||||
<div class="left_content_item_delete" v-if="userInfo.userName === item.userName" @click="setDelete(item)">删除</div>
|
||||
<div class="left_content_item_unfold" @click="()=>item.detailUnfold = !item.detailUnfold">{{item.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
||||
</div>
|
||||
<div class="detail_left_content_item_content">
|
||||
<div class="scaleImage_chunk_title">{{ children?.userName }}<span v-if="children?.replyTo" class="replyIcon"></span>{{ children?.replyTo }}</div>
|
||||
<!-- <div class="scaleImage_chunk_title_intro">个性签名</div> -->
|
||||
<div class="scaleImage_chunk_title" :class="[item.unfold?'':'active']">{{ children.comment }}</div>
|
||||
<div class="scaleImage_chunk_title_intro" style="font-size: 1.2rem;" v>{{ children.createTimes }}</div>
|
||||
</div>
|
||||
<div v-if="item.childCommentVOList" class="detail_left_content_item_replyContent_box" :class="[item.unfold?'':'active']">
|
||||
<div class="detail_left_content_item_replyContent" v-for="children in item.childCommentVOList" :key="children.id">
|
||||
<div class="detail_left_content_item_img">
|
||||
<!-- <img v-lazy="scaleImageData?.imgUrl"> -->
|
||||
</div>
|
||||
<div class="detail_left_content_item_content">
|
||||
<div class="scaleImage_chunk_title_intro">{{ children?.userName }}<span v-if="children?.replyTo" class="replyIcon"></span>{{ children?.replyTo }}</div>
|
||||
<!-- <div class="scaleImage_chunk_title_intro">个性签名</div> -->
|
||||
<div v-commentUnfold="children" class="scaleImage_chunk_title" :class="[children.detailUnfold?'active':'']"><div>{{ children.comment }}</div></div>
|
||||
<div class="scaleImage_chunk_title_intro" style="font-size: 1.2rem;" v>{{ children.createTimes }}</div>
|
||||
|
||||
<div class="detail_left_content_item_btn">
|
||||
<div class="left_content_item_reply" @click.stop="setCommentReply(children,'son')">
|
||||
<i class="fi fi-rr-comment-alt-dots"></i>
|
||||
回复
|
||||
</div>
|
||||
<!-- <div class="left_content_item_thumbs">
|
||||
<i class="fi fi-sr-thumbs-up" :adminSix="!!true" style="color: rgb(158, 158, 167);"></i>
|
||||
<span>123</span>
|
||||
</div> -->
|
||||
<div v-show="false" class="left_content_item_unfold">展开</div>
|
||||
<div class="detail_left_content_item_btn">
|
||||
<div class="left_content_item_reply" @click.stop="setCommentReply(children,'son')">
|
||||
<i class="fi fi-rr-comment-alt-dots"></i>
|
||||
{{$t('newScaleImage.reply')}}
|
||||
</div>
|
||||
<!-- <div class="left_content_item_thumbs">
|
||||
<i class="fi fi-sr-thumbs-up" :adminSix="!!true" style="color: rgb(158, 158, 167);"></i>
|
||||
<span>123</span>
|
||||
</div> -->
|
||||
<div class="left_content_item_btn">
|
||||
<div class="left_content_item_delete" v-if="userInfo.userName === children.userName" @click="setDelete(children)">删除</div>
|
||||
<div class="left_content_item_unfold" @click="()=>children.detailUnfold = !children.detailUnfold">{{children.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="item.childCommentVOList" @click.stop="()=>item.unfold = !item.unfold" class="detail_left_content_item_replyContent_box_btn">
|
||||
{{$t('newScaleImage.replyAll')}}
|
||||
<div class="icon iconfont icon-xiala" :class="{active:item.unfold}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="newScaleImage_right_comment_loading" v-show="!isNoData">
|
||||
<span class="page_loading" v-show="!isShowMark"></span>
|
||||
<span v-show="isShowMark">
|
||||
<a-spin size="large" />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="newScaleImage_right_comment_setComment" @click.stop="">
|
||||
<input type="text" ref="commentInputFocus" v-model="commentText" :placeholder="commentInput">
|
||||
@@ -214,16 +231,20 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent,watch,getCurrentInstance, h, ref ,toRefs,computed,reactive,triggerRef, nextTick, onMounted} from "vue";
|
||||
import { Https } from "@/tool/https";
|
||||
// import { getCookie } from "@/tool/cookie";
|
||||
import { getCookie } from "@/tool/cookie";
|
||||
// import domTurnImg from '@/tool/domTurnImg'
|
||||
import { useStore } from "vuex";
|
||||
import { useRouter } from 'vue-router'
|
||||
import { downloadIamge,setPubDate } from "@/tool/util";
|
||||
import { message } from "ant-design-vue";
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
let {t} = useI18n()
|
||||
//首先在setup中定义
|
||||
console.log(getCookie('userInfo'));
|
||||
let userInfo = ref({});
|
||||
const store = useStore();
|
||||
const router = useRouter()
|
||||
let scaleImage: any = ref(false);//弹窗
|
||||
@@ -248,6 +269,8 @@ export default defineComponent({
|
||||
commentText:'',
|
||||
commentInput:'',//评论框提示词
|
||||
commentList:[],
|
||||
isNoData:false,
|
||||
isShowMark:false,
|
||||
})
|
||||
let systemUser = computed(()=>{
|
||||
return store.state.UserHabit.systemUser
|
||||
@@ -271,6 +294,8 @@ export default defineComponent({
|
||||
imgData.scaleImageData = {}
|
||||
imgData.commentText = ''
|
||||
imgData.scaleImageList = []
|
||||
imgData.getCommentData.page = 1
|
||||
imgData.getCommentData.size = 10
|
||||
document.removeEventListener('click',removeCommentReply)
|
||||
}
|
||||
let download = ()=>{
|
||||
@@ -309,7 +334,22 @@ export default defineComponent({
|
||||
if(str == 'zan'){
|
||||
|
||||
}else{
|
||||
getCommentPage()
|
||||
getCommentPage('')
|
||||
nextTick(()=>{
|
||||
let imgParent:any = document.querySelector('.newScaleImage_modal .page_loading')
|
||||
new IntersectionObserver(
|
||||
(entries, observer) => {
|
||||
// 如果不是相交,则直接返回
|
||||
// console.log(entries[0]);
|
||||
|
||||
if (!entries[0].intersectionRatio) return;
|
||||
imgData.getCommentData.size += 10
|
||||
getCommentPage('')
|
||||
},
|
||||
// { root:worksPage }
|
||||
).observe(imgParent);
|
||||
})
|
||||
|
||||
}
|
||||
}).catch((res)=>{
|
||||
imgData.loadingShow = false
|
||||
@@ -319,13 +359,11 @@ export default defineComponent({
|
||||
|
||||
let setChoose = () =>{
|
||||
if(systemUser.value.value !== 1){
|
||||
return message.info('请先登录或者升级为正式用户')
|
||||
return message.info(t('newScaleImage.jsContent1'))
|
||||
}
|
||||
if(imgData.scaleImageData.openSource == 0){
|
||||
return message.info('作者不允许二次创作哦')
|
||||
return message.info(t('newScaleImage.jsContent2'))
|
||||
}
|
||||
console.log(imgData.scaleImageData);
|
||||
|
||||
router.push({name:'homePage',params: {id:imgData.scaleImageData.id,type:'Works'}})
|
||||
// router.push({name:'homePage',params: {id:imgData.scaleImageData.userLikeGroupSourceId,type:'Works'}})
|
||||
}
|
||||
@@ -337,14 +375,14 @@ export default defineComponent({
|
||||
imgData.commentReply.leve2Id = value.id
|
||||
}
|
||||
imgData.commentReply.name = value.userName
|
||||
imgData.commentInput = `回复${imgData.commentReply.name}的评论`
|
||||
imgData.commentInput = `${t('newScaleImage.reply')} ${imgData.commentReply.name}`
|
||||
commentInputFocus.value.focus()
|
||||
}
|
||||
let removeCommentReply = ()=>{
|
||||
imgData.commentReply.leve1Id = null
|
||||
imgData.commentReply.leve2Id = null
|
||||
imgData.commentReply.name = ''
|
||||
imgData.commentInput = '请输入评论内容'
|
||||
imgData.commentInput = t('newScaleImage.jsContent3')
|
||||
}
|
||||
let setComment = ()=>{
|
||||
let data = {
|
||||
@@ -360,17 +398,21 @@ export default defineComponent({
|
||||
Https.axiosPost(Https.httpUrls.portfolioComment, data)
|
||||
.then((rv) => {
|
||||
imgData.commentText = ''
|
||||
getCommentPage()
|
||||
getCommentPage('comment')
|
||||
})
|
||||
.catch((rv) => {
|
||||
});
|
||||
}
|
||||
let getCommentPage = ()=>{
|
||||
let getCommentPage = (str:any)=>{
|
||||
let data = imgData.getCommentData
|
||||
imgData.isShowMark = true
|
||||
Https.axiosPost(Https.httpUrls.portfolioCommentPage,data).then(
|
||||
(rv: any) => {
|
||||
imgData.commentList = rv.content
|
||||
imgData.commentList.forEach((item:any)=>{
|
||||
if(rv.content.length == imgData.commentList.length&&str != 'comment'){
|
||||
imgData.isNoData = true
|
||||
return
|
||||
}
|
||||
rv.content.forEach((item:any)=>{
|
||||
item.createTimes = setPubDate(item.createTime)
|
||||
if (item.childCommentVOList) {
|
||||
item.childCommentVOList.forEach((obj:any)=>{
|
||||
@@ -378,8 +420,13 @@ export default defineComponent({
|
||||
})
|
||||
}
|
||||
})
|
||||
// imgData.commentList.push(...rv.content)
|
||||
imgData.commentList = rv.content
|
||||
|
||||
imgData.isShowMark = false
|
||||
}
|
||||
).catch((res)=>{
|
||||
imgData.isShowMark = false
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -398,6 +445,9 @@ export default defineComponent({
|
||||
})
|
||||
.catch((rv) => {
|
||||
});
|
||||
}
|
||||
let setDelete = (value:any)=>{
|
||||
|
||||
}
|
||||
watch(()=>imgData.scaleImageIndex,
|
||||
(newVal,oldVal)=>{
|
||||
@@ -407,7 +457,12 @@ export default defineComponent({
|
||||
imgData.scaleImageMarginTop = `${contentItemHeight*-(newVal) - contentItemHeight/2}rem`
|
||||
}
|
||||
)
|
||||
onMounted(()=>{
|
||||
let user:any = getCookie('userInfo')
|
||||
userInfo = JSON.parse(user)
|
||||
})
|
||||
return {
|
||||
userInfo,
|
||||
scaleImage,
|
||||
scaleImageMask,
|
||||
...toRefs(imgData),
|
||||
@@ -424,9 +479,25 @@ export default defineComponent({
|
||||
setCommentReply,
|
||||
setComment,
|
||||
setPortfolioLike,
|
||||
setDelete,
|
||||
};
|
||||
},
|
||||
directives:{
|
||||
commentUnfold:{
|
||||
updated (el,binding) {
|
||||
let parent = el.parentNode
|
||||
let commentBtn = parent.querySelector('.left_content_item_unfold')
|
||||
let commentDomSon = el.querySelector('div')
|
||||
let maxHeight = Number((window.getComputedStyle(el).maxHeight).split('px')[0])
|
||||
if(commentDomSon.offsetHeight > maxHeight){
|
||||
commentBtn.style.display = 'block'
|
||||
}else if(!binding.value.detailUnfold){
|
||||
commentBtn.style.display = 'none'
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
mousewheel:{
|
||||
mounted (el,binding:any) {
|
||||
// let contentHeight = Number(getComputedStyle(el).getPropertyValue('--content-height').split('rem')[0]);
|
||||
@@ -504,11 +575,17 @@ export default defineComponent({
|
||||
border: .2rem solid var(--border-color);
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
.scaleImage_chunk_title{
|
||||
font-size: 2.2rem;
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
overflow: hidden;
|
||||
max-height: 100px;
|
||||
&.active{
|
||||
max-height: max-content;
|
||||
}
|
||||
}
|
||||
.scaleImage_chunk_title_comment{
|
||||
font-size: 1.6rem;
|
||||
@@ -754,6 +831,7 @@ export default defineComponent({
|
||||
.newScaleImage_right_comment{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-bottom: 0;
|
||||
>.scaleImage_chunk_title{
|
||||
text-align: center;
|
||||
}
|
||||
@@ -771,8 +849,8 @@ export default defineComponent({
|
||||
|
||||
}
|
||||
.newScaleImage_right_comment_content{
|
||||
max-height: 60rem;
|
||||
overflow-y: auto;
|
||||
// max-height: 60rem;
|
||||
// overflow-y: auto;
|
||||
.detail_left_content_item{
|
||||
display: flex;
|
||||
margin-bottom: var(--margin);
|
||||
@@ -812,7 +890,7 @@ export default defineComponent({
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 1rem;
|
||||
.left_content_item_reply,.left_content_item_thumbs,.left_content_item_unfold{
|
||||
.left_content_item_reply,.left_content_item_thumbs,.left_content_item_unfold,.left_content_item_delete{
|
||||
cursor: pointer;
|
||||
}
|
||||
.left_content_item_reply:hover{
|
||||
@@ -827,9 +905,36 @@ export default defineComponent({
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
.left_content_item_unfold{
|
||||
.left_content_item_btn{
|
||||
margin-left: auto;
|
||||
margin-right: 1rem;
|
||||
display: flex;
|
||||
.left_content_item_delete{
|
||||
}
|
||||
.left_content_item_unfold{
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.detail_left_content_item_replyContent_box{
|
||||
overflow: hidden;
|
||||
transition: all .3s;
|
||||
&.active{
|
||||
height: 0;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
.detail_left_content_item_replyContent_box_btn{
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
div{
|
||||
transition: all .3s;
|
||||
}
|
||||
.active{
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
.detail_left_content_item_replyContent{
|
||||
@@ -839,12 +944,27 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
}
|
||||
.newScaleImage_right_comment_loading{
|
||||
text-align: center;
|
||||
>span{
|
||||
height: 7rem;
|
||||
width: 6rem;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
.newScaleImage_right_comment_setComment{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 4rem;
|
||||
height: 8rem;
|
||||
justify-content: center;
|
||||
margin-top: var(--padding);
|
||||
margin-top: 5rem;
|
||||
position: sticky;
|
||||
z-index: 2;
|
||||
padding-bottom: var(--padding);
|
||||
padding-top: var(--padding);
|
||||
bottom: 0;
|
||||
background: #f5f5f5;
|
||||
input,.detail_left_setComment_btn{
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user