2025-03-21 16:50:18 +08:00

527 lines
19 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view style="background-color: #F1F2F8;">
<tn-nav-bar :isBack="false" :bottomShadow="false" backgroundColor="#ffffff">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="width: 100%;">
<view
style="text-align: center;font-size: 34rpx;color: #000000;letter-spacing: 1px;font-weight: bold;">
<text>青企圈</text>
</view>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 10rpx;">
<view style="padding: 30rpx;" v-if="!none && quit==0">
<view style="background-color: #ffffff;border-radius: 20rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between" style="padding: 30rpx;">
<view style="font-size: 34rpx;font-weight: bold;">我发布的</view>
<view>
<tn-button @click="tn('/pages/packageB/paper/add')" padding="25rpx 30rpx"
backgroundColor="rgba(48,86,211,0.1)" size="sm" fontColor="#3056D3" shape="round">
<text class="tn-icon-add"></text>
<text>发布</text>
</tn-button>
</view>
</view>
<scroll-view :scroll-x="true" style="padding:0rpx 30rpx;white-space: nowrap;width: 100%">
<view v-for="(item,index) in my_list"
style="width: 185rpx;;display: inline-block;text-align: center;background-color: #FFF;overflow: hidden;margin-right: 20rpx;">
<view style="position: relative;height: 185rpx;width: 185rpx;">
<image v-if="item.files.length>0" :src="apiImgUrl+item.files[0]" mode="aspectFill"
style="border-radius: 20rpx;width: 185rpx;height: 185rpx;position: absolute;left: 0;z-index: 1;">
</image>
<view v-if="item.files.length==0&&index != 0"
style="border-radius: 20rpx;width: 185rpx;height: 185rpx;background-color: rgba(24,24,24,0.3);display: inline-block;">
<text style="color: #FFFFFF;line-height: 185rpx;">暂无图片</text>
</view>
<view @click="tn('/pages/packageA/user/my_add')" v-if="index == 0"
style="border-radius: 20rpx;width: 185rpx;height: 185rpx;background: rgba(24,24,24,0.5);position: absolute;z-index: 1;">
<text style="color: #FFFFFF;line-height: 185rpx;">全部动态</text>
</view>
</view>
<view style="padding:10rpx;font-weight: 400;min-height: 100rpx;">
<view class="tn-text-ellipsis-2"
style="font-weight: 500;text-align: left;font-size: 28rpx">
<text>{{item.title}}</text>
</view>
</view>
</view>
</scroll-view>
</view>
<view style="background-color: #FFFFFF;margin-top: 20rpx;border-radius: 20rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between" style="padding: 30rpx;">
<view style="font-size: 34rpx;font-weight: bold;">圈子动态</view>
</view>
<view v-for="(item,index) in list" style="padding:0rpx 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"
style="width: 100%;">
<view class="tn-flex tn-flex-center tn-flex-col-center" style="width: 100%;">
<view @click="tn('/pages/packageA/user/my_card?id='+item.member.id)">
<image v-if="item.member.photo_image==''||item.member.photo_image==null"
src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;">
</image>
<image v-if="item.member.photo_image!=''&&item.member.photo_image!=null"
:src="apiImgUrl+item.member.photo_image"
style="width: 100rpx;height: 100rpx;border-radius: 50%;"></image>
</view>
<view style="margin-left: 10rpx;width: 100%;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="font-size: 30rpx;color: #181818;font-weight: bold;">
<text
style="vertical-align: middle;margin-right: 10rpx;">{{item.member.nikename}}</text>
</view>
<view>
<tn-button @click="tn('/pages/packageA/user/my_card?id='+item.member.id)"
padding="20rpx 20rpx" backgroundColor="rgba(48,86,211,0.1)" size="sm"
fontColor="#3056D3" shape="round">
<text style="font-size: 24rpx;">联系ta</text>
</tn-button>
</view>
</view>
<view class="tn-text-ellipsis"
style="width: 380rpx;font-size: 26rpx;color: #666666;font-weight: 500;margin-top: 5rpx;">
{{item.member.enterprise_name}}
</view>
</view>
</view>
</view>
<view @click="tn('/pages/packageB/paper/paper_info?id='+item.id)" class="tn-text-ellipsis-2"
style="font-size: 32rpx;font-weight: bold;margin-top: 20rpx;">
{{item.title}}
</view>
<view @click="tn('/pages/packageB/paper/paper_info?id='+item.id)" class="tn-text-ellipsis-2"
style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
{{item.content}}
</view>
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"
style="margin-top: 20rpx;">
<view style="color: #AAAAAA;font-size: 24rpx;">
发布于:{{item.createtime}}
</view>
</view>
<view v-if="item.files.length>0" style="margin-top: 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-wrap">
<view class="tn-flex-basic-xs" v-for="(img,img_i) in item.files"
style="text-align: center;">
<view style="padding-right: 10rpx;">
<image :src="apiImgUrl+img" @click="openImg(item,img_i)" mode="aspectFill"
style="width: 200rpx;height: 200rpx;border-radius:20rpx;">
</image>
</view>
</view>
</view>
</view>
<view style="margin-top: 20rpx;padding:30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="text-align: center;font-size: 28rpx;">
<button :data-item="item" hover-class="none" open-type="share">
<text class="tn-icon-send" style="font-size: 32rpx;"></text>
<text style="margin-left: 10rpx;">分享</text>
</button>
</view>
<view style="text-align: center;font-size: 28rpx;" @click="like(index)">
<text v-if="item.is_like==1" class="tn-icon-praise-fill tn-color-red"
style="font-size: 32rpx;"></text>
<text v-if="item.is_like==0" class="tn-icon-praise"
style="font-size: 32rpx;"></text>
<text style="margin-left: 10rpx;">{{item.like_num>0?item.like_num:'点赞'}}</text>
</view>
<view style="text-align: center;font-size: 28rpx;" @click="favs(index)">
<text v-if="item.is_fav==1" class="tn-icon-star-fill tn-color-orangeyellow"
style="font-size: 32rpx;"></text>
<text v-if="item.is_fav==0" class="tn-icon-star" style="font-size: 32rpx;"></text>
<text style="margin-left: 10rpx;">{{item.fav_num>0?item.fav_num:'收藏'}}</text>
</view>
<view style="text-align: center;font-size: 28rpx;">
<text class="tn-icon-comment" style="font-size: 32rpx;"></text>
<text
style="margin-left: 10rpx;">{{item.comment_num>0?item.comment_num:'评论'}}</text>
</view>
</view>
</view>
<view v-if="index<list.length-1"
style="height: 1px;border-top: #BABDC7 1px dashed;margin: 20rpx 0rpx;"></view>
</view>
</view>
</view>
<view style="padding: 30rpx;" v-if="none || quit==1">
<view
style="background-color: #ffffff;border-radius: 20rpx;padding: 30rpx;text-align: center;font-size: 32rpx;font-weight: 600">
请入会后查看!
</view>
</view>
</view>
<tn-modal v-model="sqMode" :custom="true">
<view>
<view style="text-align: center;color: #181818;font-size: 34rpx;font-weight: bold;">申请联系方式</view>
<view style="color: #777777;font-size: 28rpx;margin-top: 20rpx;">
点击确定按钮将发送联系方式的申请,等待对方同意后方可展示且发送申请时,对方也将看到你的个人名片信息
</view>
<view style="margin-top: 20rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between" style="width: 100%;">
<view class="tn-flex tn-flex-center tn-flex-col-center" style="width: 100%;">
<view>
<image src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;">
</image>
</view>
<view style="margin-left: 10rpx;width: 100%;">
<view style="font-size: 32rpx;color: #181818;font-weight: bold;">
<text style="vertical-align: middle;">石训</text>
<tn-tag size="sm" padding="0px 5px" margin="0 0 0 10rpx" width="auto" shape="radius"
backgroundColor="#F1F2F8" fontColor="#888888">135********
</tn-tag>
</view>
<view class="tn-text-ellipsis"
style="width: 380rpx;font-size: 26rpx;color: #666666;font-weight: 500;margin-top: 10rpx;">
好想你健康食品股份有限公司
</view>
</view>
</view>
</view>
<view class="tn-flex tn-flex-center tn-flex-row-between" style="margin-top: 40rpx;">
<view>
<tn-button @click="sqMode = false" width="250rpx" :plain="true" shape="round" size="lg"
backgroundColor="#BABDC7" fontColor="#999999">取消
</tn-button>
</view>
<view>
<tn-button width="250rpx" shape="round" margin="0rpx 0 0 30rpx" size="lg"
backgroundColor="#3056D3" fontColor="#ffffff">确定
</tn-button>
</view>
</view>
</view>
</view>
</tn-modal>
</view>
<!-- <view style="background-color: #ffffff;">
<tn-nav-bar :isBack="false" :bottomShadow="false" backgroundColor="#ffffff">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="width: 100%;">
<view
style="text-align: center;font-size: 34rpx;color: #000000;letter-spacing: 1px;font-weight: bold;">
<text>规章制度</text>
</view>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 10rpx;">
<view data-v-a2114eee=""
style="overflow-wrap: break-word; overflow: hidden;padding: 30rpx;line-height: 50rpx;">
<view style="text-align: start; text-indent: 2ch;">本会是河南省内的青年企业家自愿组成的全省性联合性非营利性社会团体<br></view>
<view style="text-align: start;"><text style="font-weight: 600;">本会宗旨</text></view>
<view style="text-align: start; text-indent: 2ch;">
坚持以习近平新时代中国特色社会主义思想为指导深入学习贯彻党的十九大精神和习近平总书记调研指导河南时的重要讲话全面落实习近平总书记关于青年工作的重要思想围绕中心服务党政工作大局服务青年企业家成长发展充分履行沟通交流促进发展维护权益等职责引导青年企业家爱党爱国爱人民为全面建成小康社会奋力谱写新时代中原更加出彩新篇章贡献青春智慧和力量
</view>
<view style="text-align: start; text-indent: 2ch;">
本会遵守宪法法律法规和国家政策践行社会主义核心价值观遵守社会道德风尚不损害国家利益社会公共利益以及其他组织和公民的合法权益
</view>
<view style="text-align: start;"><text style="font-weight: 600;">轮值会长制度</text></view>
<view style="text-align: start; text-indent: 2ch;">
本会实行会长办公会议制度理事会闭会期间由会长办公会议领导协会日常工作会长办公会议由本会会长常务副会长副会长和秘书长组成由会长或由会长委托一名副会长召集根据需要副秘书长可以列席会长办公会议会长办公会议须经2/3以上组成人员出席方能召开其决议须经到会人员2/3以上表决通过方为有效会长办公会议原则上每半年至少召开一次情况特殊的可采用通讯形式召开
</view>
<view style="text-align: start;"><text style="font-weight: 600;">行业委员会制度</text></view>
<view style="text-align: start;">本会设立行业委员会</view>
<view style="text-align: start; text-indent: 2ch;">
行业委员会设主任1名副主任若干名人选由本会秘书长提名会长办公会议决定各行业委员会在行业范围内按入会条件积极推荐会员推荐人选由本会秘书处审核报会长办公会批准后入会并自动进入该行业委员会行业委员会围绕协会中心任务依照本章程根据会员需要开展工作
</view>
<view style="text-align: start;"><text style="font-weight: 600;">财务管理制度</text></view>
<view style="text-align: start; text-indent: 2ch;">
本会按照国家统一的会计制度确定财务制度制定财务会计报告健全内控机制规范使用票据接受财政部门的监督财产来源于国家资助或社会捐赠资助的应当接受审计机关监督
</view>
<view style="text-align: start;">本会财务收支全部纳入本会开立的银行账户不使用其他组织或者个人的银行账户</view>
<view style="text-align: start;">本会配备具有专业资格的会计人员会计不得兼任出纳会计人员调动工作或者离职时必须与接管人员办清交接手续</view>
<view style="text-align: start;">本会换届或更换法定代表人之前必须进行财务审计</view>
<view style="text-align: start;">本会的全部资产及其增值为本会所有任何单位个人不得侵占私分和挪用也不得在会员中分配</view>
</view>
</view>
</view> -->
</template>
<script>
import {
tweetsList,
likeDo,
favsDo,
likeRevoke,
favsRevoke
} from '@/util/api.js';
import store from '@/store/index.js'
export default {
data() {
return {
topCurrent: 0,
list: [],
apiImgUrl: this.$store.state.imgUrl,
content: '',
sqMode: false,
page: 1,
none: false,
my_list: [],
quit: 0,
}
},
mounted() {
var quit = uni.getStorageSync('quit');
this.quit = quit;
this.getTweetsList();
this.getMyTweetsList();
},
methods: {
onload() {
var quit = uni.getStorageSync('quit');
this.quit = quit;
},
getMyTweetsList() {
tweetsList({
me: 1,
association_name: 1,
page: this.page,
state: 2,
size: 10
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.my_list = res.data;
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
ReachBottom() {
console.log('home');
this.page = this.page + 1;
this.getTweetsList();
},
openImg(item, index) {
console.log(index);
console.log(item.files);
var img = item.files;
var apiImgUrl = this.apiImgUrl;
const updatedImagePaths = img.map(path => `${apiImgUrl}${path}`);
console.log(updatedImagePaths);
uni.previewImage({
current: index,
urls: updatedImagePaths,
});
},
switchTabbar(d) {
console.log(d);
store.commit('$tStore', {
name: 'Gid',
value: d.id
})
uni.setStorageSync('Gid', d.id);
uni.$emit('getGid', {
gid: d.id
})
uni.$emit('depId', {
index: 0
})
},
onsubmit() {
this.page = 1;
this.list = [];
this.getAssociationIndex();
},
getTweetsList() {
tweetsList({
association_name: 1,
page: this.page,
size: 10
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.none = false;
this.list.push(...res.data);
} else {
this.none = true;
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
like(index) {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
var info = this.list[index];
if (info.is_like == 0) {
likeDo({
member_id: uid,
related_id: info.id,
related_type: 'tweets',
member_b_id: info.member_id,
})
.then(res => {
console.log(res);
uni.showToast({
title: '赞成功!',
icon: 'none',
duration: 2000
});
this.list[index].is_like = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
likeRevoke({
member_id: uid,
related_id: info.id,
related_type: 'tweets',
member_b_id: info.member_id,
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消成功!',
icon: 'none',
duration: 2000
});
this.list[index].is_like = 0;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
favs(index) {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
var info = this.list[index];
console.log(info);
if (info.is_fav == 0) {
favsDo({
member_id: uid,
related_id: info.id,
related_type: 'tweets',
member_b_id: info.member_id,
})
.then(res => {
console.log(res);
uni.showToast({
title: '收藏成功!',
icon: 'none',
duration: 2000
});
this.list[index].is_fav = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
favsRevoke({
member_id: uid,
related_id: info.id,
related_type: 'tweets',
member_b_id: info.member_id,
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消收藏成功!',
icon: 'none',
duration: 2000
});
this.list[index].is_fav = 0;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
tn(e) {
uni.navigateTo({
url: e
})
}
}
}
</script>
<style>
.triangle {
width: 0;
height: 0;
border-top: 20rpx solid #13C296;
border-right: 20rpx solid transparent;
border-left: 20rpx solid transparent;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
bottom: -12rpx;
z-index: 100;
}
button::after {
border: none;
}
button {
position: relative;
display: block;
margin-left: auto;
margin-right: auto;
padding-left: 0px;
padding-right: 0px;
box-sizing: border-box;
text-align: center;
text-decoration: none;
line-height: 1.35;
-webkit-tap-highlight-color: transparent;
overflow: hidden;
background-color: transparent;
font-size: 28rpx;
width: 100%;
height: 100%;
}
</style>