Commit e6f9fb92 authored by 华国豪's avatar 华国豪 🙄

朋友圈

parent 1caed191
......@@ -5,8 +5,8 @@
</div>
</template>
<script>
import searchBox from '../team/CollectionSearchBox'
import contentList from '../team/CollectionContentList'
import searchBox from '../tools/CollectionSearchBox'
import contentList from './CollectionContentList'
export default {
components: {
searchBox,
......
......@@ -5,8 +5,8 @@
</div>
</template>
<script>
import searchBox from '../team/CollectionSearchBox'
import contentList from '../team/CloudDiskList'
import searchBox from '../tools/CollectionSearchBox'
import contentList from './CloudDiskList'
export default {
components: {
searchBox,
......@@ -28,7 +28,7 @@ export default {
icon: 'icontupian3'
},
{
id: 2,
id: 4,
name: '文档',
icon: 'iconwendang2'
},
......@@ -39,7 +39,7 @@ export default {
}
,
{
id: 4,
id: 2,
name: '音乐',
icon: 'iconyinle1'
}
......
......@@ -273,12 +273,11 @@ export default {
0,
lpath.lastIndexOf("\\") + 1
);
// that.apipost('user_cloud_DelPackageFile',{Path: url},res=>{},err=>{})
that.apipost('user_cloud_DelPackageFile',{Path: url},res=>{},err=>{})
});
},
downloadFun(msg){
event.preventDefault();
// event.preventDefault();
let dPath = msg.url;
let crt = this;
this.$electron.remote.dialog.showSaveDialog(
......@@ -300,21 +299,36 @@ export default {
if(this.picLyanzhengma.toLocaleUpperCase()==this.checkCode){
this.yzmVisible=false
this.$message.info('文件压缩中,请等待..')
this.apipost('user_cloud_GetPackageFile', {
FolderIdStr: this.fileList,
FileIdStr: this.notFileList
}, res => {
if(res.data.resultCode == 1) {
let url = this.domainManager().DomainUrl
this.$http({
headers: {
'Content-Type': 'application/json'
},
method: 'post',
url: url + '/api/file/GetPackageFile',
data: {
msg: {
"FolderIdStr": this.fileList,
"FileIdStr": this.notFileList
}
}
}).then(res => {
if (res.data.resultCode === 1) {
console.log(res.data)
let msg = {
url: "http://reborn.oytour.com" + res.data.data,
url: res.data.data,
name: this.list[this.clickIndex].FolderName,
ext: 'zip'
}
this.downloadFun(msg)
}else{
this.$message.error(res.data.message)
setTimeout(() => {
this.downloadFun(msg)
}, 1000)
} else {
this.$message.error('下载失败');
}
}, err => {})
}).catch(err => {
})
}else{
this.$message.error('验证码错误!')
}
......@@ -655,7 +669,7 @@ export default {
}
if(item.DataType == 2) {
this.WjId.push(item.Id)
let fileType=item.FolderName.substring(item.FolderName.lastIndexOf('.')+1,item.FolderName.length).toLowerCase()
let fileType=item.FolderName ? item.FolderName.substring(item.FolderName.lastIndexOf('.')+1,item.FolderName.length).toLowerCase() : 'jpg'
item.icons=this.loadFileICON(fileType)
}
})
......
<template>
<div class="friendsEdit">
<div>
<el-input
type="textarea"
:rows="3"
placeholder="请输入内容"
v-model="content">
</el-input>
</div>
<div class="friendsEdit-ctrl">
<i class="iconfont icontupian2"></i>
<div class="">发表</div>
</div>
</div>
</template>
<script>
export default {
data(){
return{
content: ''
}
},mounted() {
},methods: {
}
}
</script>
<style>
.friendsEdit{
padding: 20px;
margin-bottom: 10px;
background-color: #fff;
}
.friendsEdit-ctrl{
display: flex;
justify-content: space-between;
padding: 10px 0;
}
.friendsEdit-ctrl i{
color: #BBBBBB;
cursor: pointer;
}
.friendsEdit-ctrl i:hover{
color: #47A5FF;
}
.friendsEdit-ctrl div{
cursor: pointer;
padding: 6px 16px;
background:linear-gradient(60deg,rgba(71,121,255,1),rgba(71,165,255,1));
color:rgba(255,254,254,1);
font-size: 12px;
}
</style>
\ No newline at end of file
<template>
<div class="friendsFynamic">
<friendsEdit v-if="editShow"/>
<ul v-loading="loading">
<friendsItem v-for="item in list" :item="item"/>
</ul>
</div>
</template>
<script>
import friendsEdit from './friendsEdit'
import friendsItem from './friendsItem'
export default {
components: {
friendsEdit,
friendsItem
},props: {
editShow: {
type: Boolean,
default: false
}
},
data(){
return{
loading: false,
list: [],
dynamicMsg: {
groupId: "",
pageIndex: 1,
pageSize: 3
},
}
},created () {
},mounted() {
let userInfo = JSON.parse(localStorage.user)
this.dynamicMsg.groupId = userInfo.RB_Group_id;
this.getList()
let _this = this
this.MsgBus.$on('get-list', function () {
_this.getList(1)
})
setTimeout(() => {
document
.getElementById("friendsQuanContent")
.addEventListener("scroll", function() {
if (this.scrollHeight - this.scrollTop === this.clientHeight) {
_this.dynamicMsg.pageIndex = _this.dynamicMsg.pageIndex + 1;
_this.getList();
}
});
}, 2000);
},methods: {
getList: function (params) {
this.loading = true
if (params) {
this.dynamicMsg.pageSize = this.dynamicMsg.pageSize * this.dynamicMsg.pageIndex
this.dynamicMsg.pageIndex = 1
}
this.apipost("dynamic_list", this.dynamicMsg, res => {
if (res.data.resultCode == 1) {
if (params) {
this.list = res.data.data.pageData
} else {
this.list = this.list.concat(
res.data.data.pageData
);
}
this.loading = false
}
},err => {});
}
}
}
</script>
<style>
.friendsFynamic{
background-color: #F1F1F1;
}
</style>
\ No newline at end of file
<template>
<li class="f-item">
<div class="f-item-top">
<div>
<img :src="items.crearteEmPhoto">
</div>
<div>
<p class="name">{{items.createEmName}}</p>
<p class="time">{{items.createTime | diaplayTime(items.createTime)}}</p>
</div>
</div>
<div class="f-item-content">
{{items.content | decodeURIComponent(items.content)}}
</div>
<div class="f-item-img" v-if="items.fileType === 1">
<div v-for="subItem in items.files" @click="showImg(subItem)" :style="`background-image: url(${subItem})`"></div>
</div>
<div class="dianzan">
<div class="left">
<div class="praise" v-if='items.likeList.length>0'>
<i class="iconfont icondianzan like-blue"></i>
<span v-for="(i, ix) in items.likeList" v-if="ix<6">{{i.empName}} <i v-if="ix !== items.likeList.length-1"></i></span>
<i v-if="items.likeList > 5"></i>觉得很赞
</div>
<i v-else style="color: #fff">.</i>
</div>
<div class="right">
<i class="iconfont icondianzan" :style="{color: items.hasLike ? '#4780FF' : ''}" @click="LikeArticleFun"></i>
<i class="iconfont iconpinglunbiao" :style="{color: msgBox ? '#4780FF' : ''}" @click="msgBox = !msgBox, reviewMsgId = 0"></i>
</div>
</div>
<div class="review" v-if="item.commentList.length>0">
<span class="reviewIcon">
<span class="sjx"></span>
</span>
<ul>
<li v-for="(i,index) in item.commentList" class="review-list-item">
<p v-if="i.byReplayEmpName==null">
<span>{{i.empName}}</span>{{i.content|decodeURIComponent(i.content)}}
<i class="iconfont iconpinglunbiao" @click="reviewMsgId=i.commentId, msgBox = true"></i>
<i v-show='userId==i.empId' class='el-icon-delete' @click="deleteComments(i.commentId)"></i>
</p>
<p v-if="i.byReplayEmpName!=null">
<span>{{i.empName}}</span>&nbsp;回复&nbsp; <span>{{i.byReplayEmpName}}</span>{{i.content|decodeURIComponent(i.content)}}
<i class="iconfont iconpinglunbiao" @click="reviewMsgId=i.commentId, msgBox = true"></i>
<i v-show='userId==i.empId' class='el-icon-delete' @click="deleteComments(i.commentId)"></i>
</p>
</li>
</ul>
</div>
<div v-if="msgBox" class="msgBox">
<el-input
type="textarea"
:rows="2"
placeholder="老铁,说点什么吧"
v-model="content">
</el-input>
<div class="send" @click="reviewArticle">发表</div>
</div>
</li>
</template>
<script>
export default {
components: {
},props: {
item: {
type: Object,
default: {}
}
},
filters : {
decodeURIComponent(val) {
return decodeURIComponent(val);
},
diaplayTime(data) {
var str = data;
// 将字符串转换成时间格式
var timePublish = new Date(str);
var timeNow = new Date();
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var diffValue = timeNow - timePublish;
var diffMonth = diffValue / month;
var diffWeek = diffValue / (7 * day);
var diffDay = diffValue / day;
var diffHour = diffValue / hour;
var diffMinute = diffValue / minute;
var result = "";
if (diffValue < 0) {
} else if (diffMonth > 3) {
result = timePublish.getFullYear() + "-";
result += timePublish.getMonth() + "-";
result += timePublish.getDate();
} else if (diffMonth > 1) {
result = parseInt(diffMonth) + "月前";
} else if (diffWeek > 1) {
result = parseInt(diffWeek) + "周前";
} else if (diffDay > 1) {
result = parseInt(diffDay) + "天前";
} else if (diffHour > 1) {
result = parseInt(diffHour) + "小时前";
} else if (diffMinute > 1) {
result = parseInt(diffMinute) + "分钟前";
} else {
result = "刚刚";
}
return result;
}
},
data(){
return{
items: {},
content: "",
msgBox: false,
userId: '',
reviewMsgId: 0
}
}, watch: {
item(newVal, oldVal){
this.items = this.item
}
}, created () {
let userInfo = JSON.parse(localStorage.user)
this.userId = userInfo.EmployeeId;
this.items = this.item
},mounted() {
},methods: {
deleteComments(id) {
//从全部动态删除评论
this.apipost(
"user_dynamic_delete_comment",
{ commentId: id },
res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.MsgBus.$emit('get-list')
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
},
reviewArticle() {
//从全部动态回复
let msg = {};
msg.articleId = this.items.id;
msg.commentId = this.reviewMsgId;
msg.content = encodeURIComponent(this.content); //编码
this.apipost("user_dynamic_comment", msg, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.MsgBus.$emit('get-list')
this.msgBox = false;
this.reviewMsgId = 0;
}
},
err => {}
);
},
//喜欢
LikeArticleFun(){
let url = this.items.hasLike ? 'user_dynamic_cancel_like' : 'user_dynamic_like'
this.apipost(url, {articleId: this.items.id}, res => {
if (res.data.resultCode == 1) {
this.MsgBus.$emit('get-list')
} else {
this.$message.error(res.data.message);
}
}, err => {});
},
showImg: function (params) {
this.$electron.ipcRenderer.send("addPrevImgs", params);
this.$electron.ipcRenderer.send("openPreviwerImg", params);
}
}
}
</script>
<style>
.f-item{
padding: 20px;
background-color: #fff;
margin-bottom: 10px;
}
.f-item-top{
display: flex;
align-items: center;
height: 40px;
}
.f-item-top img{
width: 38px;
height: 38px;
margin-right: 10px;
}
.f-item-top .name,.f-item-top .time {
font-size:12px;
font-family:PingFang SC;
color: #000;
}
.f-item-top .time {
color:rgba(136,136,136,1);
}
.f-item-content{
margin-top: 10px;
line-height: 20px;
font-size: 14px;
color: #000;
}
.f-item-img{
display: flex;
flex-wrap: wrap;
padding: 10px 0 0 0;
}
.f-item-img div{
background-size: cover;
height: 175px;
width: 175px;
margin-bottom: 10px;
margin-right: 10px;
cursor: pointer;
}
.dianzan{
display: flex;
justify-content: space-between;
}
.dianzan .left{
font-size: 12px;
display: flex;
}
.dianzan .left i{
color: #4780FF;
}
.dianzan .right{
color: #9195A0;
}
.dianzan .right i{
cursor: pointer;
}
.dianzan .right .iconpinglunbiao:hover{
color: #4780FF;
}
.praise span{
color: #4780FF;
}
.msgBox{
position: relative;
margin-top: 10px;
}
.msgBox textarea{
padding:5px 75px 5px 5px;
border-radius:0;
}
.msgBox .send{
cursor: pointer;
padding: 3px 16px;
background:linear-gradient(60deg,rgba(71,121,255,1),rgba(71,165,255,1));
color:rgba(255,254,254,1);
font-size: 12px;
position:absolute;
right: 10px;
bottom: 5px;
}
.f-item .review{width: 100%; background: #C8D8DF; padding: 10px; position: relative;}
.f-item .review .reviewIcon{width: 18px; height: 12px; background: #73BFFF; position: absolute; top: 16px; border-radius: 4px;}
.f-item .review .reviewIcon .sjx{
position: absolute;
left: 5px;
top: 11px;
width: 0;
height: 0;
border-width: 4px;
border-style: solid;
border-color: #73BFFF transparent transparent transparent;
}
.f-item .review ul{padding-left: 25px;}
.f-item .review ul li{font-size: 12px; color: #333; line-height: 20px;margin: 2px 0;}
.f-item .review ul li p .iconfont{display:none; font-size: 12px; color: #666; cursor: pointer; margin-left: 5px;}
.f-item .review ul li:hover p .iconfont{display: inline-block; line-height: 18px;}
.f-item .review ul li span{color:#4C6C99;}
.review-list-item i{
display: none;
cursor:pointer;
}
.review-list-item:hover i{
display: inline-block;
color: #9195A0;
}
.review-list-item i:hover {
color: rgb(71, 128, 255);
}
</style>
\ No newline at end of file
<template>
<div>
<searchBox :list="list" :activeID="activeID" @changeType="changeType" :hideSearch="true" />
<friendsQuanContent :activeName="activeName" :activeID="activeID" />
</div>
</template>
<script>
import searchBox from '../tools/CollectionSearchBox'
import friendsQuanContent from './friendsQuanContent'
export default {
components: {
searchBox,
friendsQuanContent
},
data(){
return{
activeID: 0,
activeName: '圈友动态',
list: [
{
id: 0,
name: '圈友动态',
icon: 'iconkongjian-icon'
},
{
id: 1,
name: '与我相关',
icon: 'iconyuwoxiangguan'
},
{
id: 2,
name: '我的发布',
icon: 'iconicon-wodefabu'
}
],
}
},mounted() {
},methods: {
// 改变收藏类型
changeType: function (id){
this.showData = []
this.activeID = id;
this.activeName = this.list[id].name;
}
}
}
</script>
<style>
@import url("../../assets/css/icon.css");
</style>
\ No newline at end of file
<template>
<div class="friendsQuanContent" id="friendsQuanContent">
<div class="F-top">
<span>{{activeName}}</span>
<i class="iconfont iconzhongmingming" v-if="activeID === 0" @click="editShow = true"></i>
</div>
<div>
<friendsFynamic v-if="activeID === 0" :editShow="editShow"/>
<friendsRelatedme v-if="activeID === 1"/>
<friendsReleased v-if="activeID === 2"/>
</div>
</div>
</template>
<script>
import friendsFynamic from './friendsFynamic'
import friendsRelatedme from './friendsRelatedme'
import friendsReleased from './friendsReleased'
export default {
components: {
friendsFynamic,
friendsRelatedme,
friendsReleased
},
props:{
activeName: {
type: String,
default: ''
},
activeID: {
type: Number,
default: 0
}
},
data(){
return{
editShow: false,
}
},mounted() {
},methods: {
}
}
</script>
<style>
.friendsQuanContent *{
margin: 0;
padding: 0;
list-style: none;
}
.flex{
display: flex;
}
.text-row1{
overflow: hidden;
white-space: normal;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.friendsQuanContent{
position: absolute;
top: 0px;
left: 240px;
right: 0;
bottom: 0px;
cursor: default;
overflow: auto;
}
.F-top{
padding: 8px 20px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 12px;
border-bottom: 1px solid rgba(221,221,221,1);
}
.F-top>span{
font-size: 16px;
font-weight: 400;
color: rgba(51,51,51,1);
}
.F-top>i{
cursor: pointer;
color: #bbb;
}
.F-top>i:hover{
color: #459bfb;
}
</style>
\ No newline at end of file
<template>
<div class="friendsRelatedme">
与我相关
</div>
</template>
<script>
export default {
components: {
},
data(){
return{
}
},mounted() {
},methods: {
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="friendsReleased">
<friendsEdit/>
</div>
</template>
<script>
import friendsEdit from './friendsEdit'
export default {
components: {
friendsEdit
},
data(){
return{
}
},mounted() {
},methods: {
}
}
</script>
<style>
</style>
\ No newline at end of file
......@@ -67,7 +67,7 @@
<div class="contentarea">
<msg :user="user" v-show="chosenState.val==0"></msg>
<mail v-show="chosenState.val==1"></mail>
<empty v-show="chosenState.val==2"></empty>
<friendsQuan v-if="chosenState.val==2"></friendsQuan>
<Collection v-if="chosenState.val==3"></Collection>
<CloudDisk v-if="chosenState.val==4" />
</div>
......@@ -87,8 +87,9 @@ import msg from "./msssage/index";
import mail from "./team/maillist";
import userCard from "./team/usercard";
import empty from "./tools/emptyPage";
import Collection from "./tools/Collection";
import CloudDisk from "./tools/CloudDisk";
import Collection from "./Collection/Collection";
import CloudDisk from "./cloudDisk/CloudDisk";
import friendsQuan from "./friends/friendsQuan";
import { setInterval } from "timers";
export default {
components: {
......@@ -97,14 +98,15 @@ export default {
userCard,
empty,
Collection,
CloudDisk
CloudDisk,
friendsQuan
},
data() {
return {
user: {},
chosenMenu: 4,
chosenState: {
val: 4,
val: 0,
name: "云盘"
},
atInfo: {
......
<template>
<div class="CollectionSearchBox">
<div class="search__session__box">
<div class="search__session__box" v-if="!hideSearch">
<div class="seach_ctr">
<span class="seach__item__icon">
<i class="iconfont iconsearch"></i>
......@@ -28,6 +28,10 @@ export default {
activeID: {
type: Number,
default: 0
},
hideSearch: {
type: Boolean,
default: false
}
},
data(){
......
......@@ -71,12 +71,12 @@ export default new Router({
{
path: '/CollectionContentList',
name: 'CollectionContentList',
component: require('@/components/team/CollectionContentList')
component: require('@/components/Collection/CollectionContentList')
},
{
path: '/CollectionSearchBox',
name: 'CollectionSearchBox',
component: require('@/components/team/CollectionSearchBox')
component: require('@/components/tools/CollectionSearchBox')
}
]
})
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment