This commit is contained in:
王创世 2024-07-30 18:16:46 +08:00
parent 796d0a1396
commit 36e7ca6ce1
49 changed files with 2515 additions and 631 deletions

View File

@ -52,7 +52,7 @@
"quickapp" : {}, "quickapp" : {},
/* */ /* */
"mp-weixin" : { "mp-weixin" : {
"appid" : "wx51c40ff1c6337652", "appid" : "wxd01d4f0be53a283a",
"setting" : { "setting" : {
"urlCheck" : true, "urlCheck" : true,
"minified" : true, "minified" : true,

View File

@ -202,6 +202,18 @@
"style": { "style": {
"navigationBarTitleText": "河南省青年企业家协会" "navigationBarTitleText": "河南省青年企业家协会"
} }
},
{
"path": "user/my_collection",
"style": {
"navigationBarTitleText": "河南省青年企业家协会"
}
},
{
"path": "user/my_add",
"style": {
"navigationBarTitleText": "河南省青年企业家协会"
}
} }
] ]
}, { }, {
@ -221,7 +233,20 @@
"style": { "style": {
"navigationBarTitleText": "河南省青年企业家协会" "navigationBarTitleText": "河南省青年企业家协会"
} }
}] },
{
"path": "paper/add",
"style": {
"navigationBarTitleText": "河南省青年企业家协会"
}
},
{
"path": "paper/paper_info",
"style": {
"navigationBarTitleText": "河南省青年企业家协会"
}
}
]
}], }],
"globalStyle": { "globalStyle": {
"navigationStyle": "custom", "navigationStyle": "custom",

View File

@ -36,17 +36,19 @@
:style="{top:isFixed?vuex_custom_bar_height+'px':'auto'}"> :style="{top:isFixed?vuex_custom_bar_height+'px':'auto'}">
<view class="tn-flex tn-flex-col-center" style="padding: 30rpx;background-color: #ffffff;"> <view class="tn-flex tn-flex-col-center" style="padding: 30rpx;background-color: #ffffff;">
<view @click="openDqShow = !openDqShow" style="margin-right: 40rpx;"> <view @click="openDqShow = !openDqShow" style="margin-right: 40rpx;">
<text :class="openDqShow?'textThis':'textNo'">地区</text> <text :class="openDqShow?'textThis':'textNo'">
{{dq_name=='全部'?'地区':dq_name}}
</text>
<text style="color: #BABDC7;" <text style="color: #BABDC7;"
:class="openDqShow?'tn-icon-up-triangle':'tn-icon-down-triangle'"></text> :class="openDqShow?'tn-icon-up-triangle':'tn-icon-down-triangle'"></text>
</view> </view>
<view @click="openDqShow = !openDqShow" style="margin-right: 40rpx;"> <view @click="openHyShow = !openHyShow" style="margin-right: 40rpx;">
<view :class="openDqShow?'textThis tn-text-ellipsis':'textNo tn-text-ellipsis'" <view :class="openHyShow?'textThis tn-text-ellipsis':'textNo tn-text-ellipsis'"
style="max-width: 120rpx;display: inline-block;vertical-align: middle;"> style="max-width: 120rpx;display: inline-block;vertical-align: middle;">
{{hy_name=='全部'?'行业':hy_name}} {{hy_name=='全部'?'行业':hy_name}}
</view> </view>
<text style="color: #BABDC7;vertical-align: middle;" <text style="color: #BABDC7;vertical-align: middle;"
:class="openDqShow?'tn-icon-up-triangle':'tn-icon-down-triangle'"></text> :class="openHyShow?'tn-icon-up-triangle':'tn-icon-down-triangle'"></text>
</view> </view>
<view @click="openDqShow = !openDqShow" style="margin-right: 40rpx;"> <view @click="openDqShow = !openDqShow" style="margin-right: 40rpx;">
<text :class="openDqShow?'textThis':'textNo'">届数</text> <text :class="openDqShow?'textThis':'textNo'">届数</text>
@ -62,9 +64,21 @@
<view v-if="openDqShow"> <view v-if="openDqShow">
<view style="border-radius: 0 0 20rpx 20rpx;background-color: #ffffff;padding-bottom: 30rpx;"> <view style="border-radius: 0 0 20rpx 20rpx;background-color: #ffffff;padding-bottom: 30rpx;">
<scroll-view scroll-y="" style="height: 500rpx;"> <scroll-view scroll-y="" style="height: 500rpx;">
<view v-for="(item,index) in industry_list" @click="clickClassifyNav(index)" <view v-for="(item,index) in region_list" @click="clickClassifyDq(index)"
style="padding: 20rpx 30rpx;font-size: 28rpx;"> style="padding: 20rpx 30rpx;font-size: 28rpx;">
<view :class="item.id==leftId?'textThis':'textNo'">{{item.industry_name}}</view> <view :class="item.value==leftDqId?'textThis':'textNo'">{{item.label}}</view>
<view v-if="index<region_list.length-1"
style="width: 100%;height: 1px;background-color: #F1F2F8;margin-top: 30rpx;"></view>
</view>
</scroll-view>
</view>
</view>
<view v-if="openHyShow">
<view style="border-radius: 0 0 20rpx 20rpx;background-color: #ffffff;padding-bottom: 30rpx;">
<scroll-view scroll-y="" style="height: 500rpx;">
<view v-for="(item,index) in industry_list" @click="clickClassifyHy(index)"
style="padding: 20rpx 30rpx;font-size: 28rpx;">
<view :class="item.id==leftHyId?'textThis':'textNo'">{{item.industry_name}}</view>
<view v-if="index<industry_list.length-1" <view v-if="index<industry_list.length-1"
style="width: 100%;height: 1px;background-color: #F1F2F8;margin-top: 30rpx;"></view> style="width: 100%;height: 1px;background-color: #F1F2F8;margin-top: 30rpx;"></view>
</view> </view>
@ -72,7 +86,7 @@
</view> </view>
</view> </view>
</view> </view>
<view v-if="openDqShow" @click="openDqShow = false" @touchmove.stop.prevent="() => {}" <view v-if="openHyShow" @click="openHyShow = false" @touchmove.stop.prevent="() => {}"
style="position: absolute;width: 100%;height:100%;background-color: rgba(0, 0,0, 0.3);z-index: 100;"></view> style="position: absolute;width: 100%;height:100%;background-color: rgba(0, 0,0, 0.3);z-index: 100;"></view>
<view style="padding:120rpx 30rpx 100rpx 30rpx;"> <view style="padding:120rpx 30rpx 100rpx 30rpx;">
<view style="overflow: hidden;"> <view style="overflow: hidden;">
@ -119,7 +133,8 @@
import { import {
addressList, addressList,
associationIndex, associationIndex,
newIndustryIndex newIndustryIndex,
getRegion
} from '@/util/api.js'; } from '@/util/api.js';
import store from "@/store"; import store from "@/store";
export default { export default {
@ -137,15 +152,19 @@
currentTabbarIndex: 0, currentTabbarIndex: 0,
apiImgUrl: this.$store.state.imgUrl, apiImgUrl: this.$store.state.imgUrl,
industry_list: [], industry_list: [],
leftId: 0, leftHyId: 0,
selectShow: false, selectShow: false,
HomeTitle: '', HomeTitle: '',
selectList: [], selectList: [],
gid: store.state.Gid, gid: store.state.Gid,
top: 0, top: 0,
openDqShow: false, openHyShow: false,
selectTopNumber: 220, selectTopNumber: 220,
hy_name: '全部', hy_name: '全部',
openDqShow: false,
region_list: [],
dq_name: '全部',
leftDqId: 0,
} }
}, },
onLoad(d) { onLoad(d) {
@ -155,6 +174,7 @@
} }
this.getIndustryList(); this.getIndustryList();
this.getAssociationIndex(); this.getAssociationIndex();
this.getRegionList();
}, },
methods: { methods: {
serach_do() { serach_do() {
@ -168,6 +188,7 @@
this.gid = store.state.Gid; this.gid = store.state.Gid;
this.getIndustryList(); this.getIndustryList();
this.getAssociationIndex(); this.getAssociationIndex();
this.getRegionList();
}, },
confirm(d) { confirm(d) {
var info = d[0]; var info = d[0];
@ -215,7 +236,7 @@
id: 0, id: 0,
industry_name: '全部' industry_name: '全部'
}); });
this.leftId = res.data[0].id; this.leftHyId = res.data[0].id;
uni.showLoading({ uni.showLoading({
title: '加载中...' title: '加载中...'
}); });
@ -233,8 +254,9 @@
getAddressList() { getAddressList() {
addressList({ addressList({
position_id: 0, position_id: 0,
region_id:this.leftDqId,
association_id: this.gid, association_id: this.gid,
industry_id: this.leftId, industry_id: this.leftHyId,
nikename: this.serach_content nikename: this.serach_content
}) })
.then(res => { .then(res => {
@ -256,7 +278,42 @@
}); });
}) })
}, },
clickClassifyNav(index) { getRegionList() {
getRegion({
association_id: 1,
})
.then(res => {
if (res.code == 1) {
var key = res.data;
const transformedSelectList = key.map(item => ({
value: item.id,
label: item.region_name
}));
this.region_list = transformedSelectList;
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
clickClassifyHy(index) {
uni.showLoading({
title: '加载中...'
});
this.isFixed = false;
this.showNo = false;
this.openHyShow = false;
this.currentTabbarIndex = index;
this.leftHyId = this.industry_list[index].id;
this.hy_name = this.industry_list[index].industry_name;
this.list = [];
this.getAddressList();
},
clickClassifyDq(index) {
uni.showLoading({ uni.showLoading({
title: '加载中...' title: '加载中...'
}); });
@ -264,8 +321,8 @@
this.showNo = false; this.showNo = false;
this.openDqShow = false; this.openDqShow = false;
this.currentTabbarIndex = index; this.currentTabbarIndex = index;
this.leftId = this.industry_list[index].id; this.leftDqId = this.region_list[index].value;
this.hy_name = this.industry_list[index].industry_name; this.dq_name = this.region_list[index].label;
this.list = []; this.list = [];
this.getAddressList(); this.getAddressList();
}, },

View File

@ -132,20 +132,39 @@
mounted() { mounted() {
//this.wxshare(); //this.wxshare();
}, },
onShareAppMessage() { // onShareAppMessage: async function(data) {
// console.log(data);
if (data.from == 'button') {
var info = data.target.dataset.item;
return {
title: info.title,
path: '/pages/packageB/paper/paper_info?id=' + info.id,
imageUrl: this.icon,
}
} else {
return { return {
title: this.name, title: this.name,
path: '/pages/index/index?gid=' + store.state.Gid, path: '/pages/index/index?gid=' + store.state.Gid,
imageUrl: this.icon, imageUrl: this.icon,
} }
}
}, },
onShareTimeline() { // onShareTimeline: async function(data) { //
if (data.from == 'button') {
var info = data.target.dataset.item;
return {
title: info.title,
path: '/pages/packageB/paper/paper_info?id=' + info.id,
imageUrl: this.icon,
}
} else {
return { return {
title: this.name, title: this.name,
path: '/pages/index/index?gid=' + store.state.Gid, path: '/pages/index/index?gid=' + store.state.Gid,
imageUrl: this.icon, imageUrl: this.icon,
} }
}
}, },
methods: { methods: {
parseQuery(queryStr) { parseQuery(queryStr) {
@ -188,6 +207,9 @@
if (this.currentIndex === 0) { if (this.currentIndex === 0) {
this.$refs.home.ReachBottom(); this.$refs.home.ReachBottom();
} }
if (this.currentIndex === 2) {
this.$refs.pizz.ReachBottom();
}
// if (this.currentIndex === 1) { // if (this.currentIndex === 1) {
// this.$refs.service.ReachBottom(); // this.$refs.service.ReachBottom();
// } // }

View File

@ -1,5 +1,5 @@
<template> <template>
<view style="background-color: #F1F2F8;letter-spacing: 1rpx;min-height: 100vh;"> <view style="background-color: #F1F2F8;">
<tn-nav-bar :isBack="false" :bottomShadow="false" backgroundColor="#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 class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="width: 100%;"> <view style="width: 100%;">
@ -10,31 +10,239 @@
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" <view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 10rpx;">
style="background-color: #ffffff;padding-bottom: 10rpx;"> <view style="padding: 30rpx;" v-if="!none">
<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 5"
style="width: 185rpx;;display: inline-block;text-align: center;background-color: #FFF;overflow: hidden;margin-right: 20rpx;">
<view style="position: relative;">
<image
src="https://hnyea.0rui.cn/uploads/1/20240722/0e105ad4f14a0eae03410c565ffe3a26.png"
mode="aspectFill" style="border-radius: 20rpx;width: 185rpx;height: 185rpx;">
</image>
<view @click="tn('/pages/packageA/user/my_add')" v-if="index == 0"
style="position: absolute;top: 0;border-radius: 20rpx;width: 185rpx;height: 185rpx;background: rgba(24,24,24,0.6);">
<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>我的全部动态中青企协党委书记秘书长许...</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 style="color: #666666;">
<text style="font-size: 28rpx;">全部资源</text>
<text class="tn-icon-down-triangle"></text>
</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>
<!-- <tn-tag width="80rpx" shape="radius" size="sm" backgroundColor="#66B5FF"
fontColor="#FFFFFF">供给
</tn-tag> -->
</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>
<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 style="color: #3056D3;font-size: 28rpx;font-weight: 500;">
全文
</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)"
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">
<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>
</template> </template>
<script> <script>
import { import {
associationIndex tweetsList,
likeDo,
favsDo,
likeRevoke,
favsRevoke
} from '@/util/api.js'; } from '@/util/api.js';
import store from '@/store/index.js' import store from '@/store/index.js'
export default { export default {
data() { data() {
return { return {
topCurrent: 0, topCurrent: 0,
list: [], list: [],
apiImgUrl: this.$store.state.imgUrl, apiImgUrl: this.$store.state.imgUrl,
content: '' content: '',
sqMode: false,
page: 1,
none: false,
} }
}, },
mounted() { mounted() {
this.getAssociationIndex(); this.getTweetsList();
}, },
methods: { methods: {
ReachBottom() {
console.log('home');
this.page = this.page + 1;
this.getTweetsList();
},
openImg(item, index) {
console.log(index);
console.log(item.files);
uni.previewImage({
current: index,
urls: item.files,
});
},
switchTabbar(d) { switchTabbar(d) {
console.log(d); console.log(d);
store.commit('$tStore', { store.commit('$tStore', {
@ -54,14 +262,19 @@
this.list = []; this.list = [];
this.getAssociationIndex(); this.getAssociationIndex();
}, },
getAssociationIndex() { getTweetsList() {
associationIndex({ tweetsList({
association_name: this.content association_name: 1,
page: this.page,
size: 10
}) })
.then(res => { .then(res => {
console.log(res); console.log(res);
if (res.code == 1) { if (res.code == 1) {
this.list.push(...res.data); this.none = false;
this.list.push(...res.data.data);
} else {
this.none = true;
} }
}) })
.catch(error => { .catch(error => {
@ -72,6 +285,124 @@
}); });
}) })
}, },
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',
})
.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',
})
.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',
})
.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',
})
.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) { tn(e) {
uni.navigateTo({ uni.navigateTo({
url: e url: e
@ -95,4 +426,27 @@
bottom: -12rpx; bottom: -12rpx;
z-index: 100; 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> </style>

View File

@ -1,218 +1,98 @@
<template> <template>
<view style="background-color: #EBF4F7;letter-spacing: 1rpx;"> <view style="background: #F1F2F8;">
<view :style="{paddingTop: vuex_custom_bar_height +40+ 'rpx'}" <view
style="background: linear-gradient(50deg, #034EF9 0%, #05ACFF 99%);height: 400rpx;"> style="background: url('https://hnyea.0rui.cn/uploads/1/20240722/7f5a72050b9cbc409fb60fa8d32db76a.png');background-repeat: no-repeat;background-size: 100% 555rpx;">
<tn-nav-bar :isBack="false" :bottomShadow="false" backgroundColor="transparent">
<view class="tn-flex tn-flex-center tn-flex-col-center" style="padding: 30rpx;width: 100%;"> <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'}">
<view style="padding: 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view>
<view v-if="login && userInfo.photo_image"> <view v-if="login && userInfo.photo_image">
<image :src="apiImgUrl+userInfo.photo_image" <image :src="apiImgUrl+userInfo.photo_image"
@click="tn_ru('/pages/packageA/user/my_card?id='+userInfo.member_id)" @click="tn_ru('/pages/packageA/user/my_card?id='+userInfo.member_id)"
style="width: 100rpx;height: 100rpx;border-radius: 50%;"></image> style="width: 120rpx;height: 120rpx;border-radius: 50%;"></image>
</view> </view>
<view v-if="!login || !userInfo.photo_image"> <view v-if="!login || !userInfo.photo_image">
<image src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;"></image> <image src="/static/def.png" style="width: 120rpx;height: 120rpx;border-radius: 50%;">
</view> </image>
<view style="width: 100%;">
<view v-if="login" class="tn-flex tn-flex-col-center tn-flex-row-between">
<view style="margin-left: 20rpx;color: #fff"
@click="tn_ru('/pages/packageA/user/my_card?id='+userInfo.member_id)">
<view style="font-size: 35rpx;">{{ userInfo.nikename }}</view>
<view v-if="userInfo.position_name!=null" style="font-size: 24rpx;margin-top: 10rpx;">
{{userInfo.position_name}}
</view>
</view>
<view @click="tn('/pages/packageA/user/my_edit')">
<image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image>
</view>
</view>
<view v-if="!login" class="tn-flex tn-flex-col-center tn-flex-row-between">
<view style="margin-left: 20rpx;color: #fff">
<!-- <tn-button @click="loginMod = true">点击登陆</tn-button> -->
<tn-button open-type="getPhoneNumber" @getphonenumber="PhoneLogin">点击登陆</tn-button>
</view>
<!-- <view @click="tn('/pages/index/my_edit')">-->
<!-- <image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image>-->
<!-- </view>-->
</view> </view>
</view> </view>
<view style="margin-left: 20rpx;font-size: 34rpx;color: #181818;font-weight: bold;">
{{login ? userInfo.nikename:'' }}
<tn-button v-if="!login " open-type="getPhoneNumber"
@getphonenumber="PhoneLogin">点击登陆</tn-button>
</view> </view>
</view> </view>
<view style="margin-top: 30rpx;">
<view style="background-color: #ffffff;padding: 30rpx 0rpx;border-radius: 20rpx;">
<tn-grid align="center" :col="col">
<tn-grid-item style="width: 25%" @click="tn('/pages/packageA/user/my_add')">
<view> <view>
<view style="padding: 30rpx;margin-top:-115rpx;background-color: transparent;"> <image class="no-img" src="/static/ico1.png" style="width: 150rpx;"
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between" mode="widthFix"></image>
style="text-align: center;padding: 30rpx;background-color: #FFF;border-radius: 20rpx;box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(12,0,5,0.1);"> </view>
<view @click="tn('/pages/index/pizz_info?id='+userInfo.association_id)"> <view style="margin-top: -20rpx;font-size: 30rpx;font-weight: 500;">
我的发布
</view>
</tn-grid-item>
<tn-grid-item style="width: 25%" @click="tn('/pages/packageA/user/events_my')">
<view> <view>
<image src="/static/ico5.png" style="width: 50rpx;height: 50rpx;"></image> <image class="no-img" src="/static/ico2.png" style="width: 150rpx;"
mode="widthFix"></image>
</view> </view>
<view style="margin-top: 10rpx;"> <view style="margin-top: -20rpx;font-size: 30rpx;font-weight: 500;">
<text>所在商/协会</text> 我的活动
</view> </view>
</view> </tn-grid-item>
<view @click="tn('/pages/packageA/user/events_my')"> <tn-grid-item style="width: 25%" @click="tn('/pages/packageA/user/my_collection')">
<view> <view>
<image src="/static/ico1.png" style="width: 50rpx;height: 50rpx;"></image> <image class="no-img" src="/static/ico3.png" style="width: 150rpx;"
mode="widthFix"></image>
</view> </view>
<view style="margin-top: 10rpx;"> <view style="margin-top: -20rpx;font-size: 30rpx;font-weight: 500;">
<text>参与活动</text> 我的收藏
</view> </view>
</view> </tn-grid-item>
<view @click="tn('/pages/packageA/user/my_desc')"> <tn-grid-item style="width: 25%"
@click="tn('/pages/packageA/user/apply_in?association_id=1')">
<view> <view>
<image src="/static/02_2.png" style="width: 50rpx;height: 50rpx;"></image> <image class="no-img" src="/static/ico4.png" style="width: 150rpx;"
mode="widthFix"></image>
</view> </view>
<view style="margin-top: 10rpx;"> <view style="margin-top: -20rpx;font-size: 30rpx;font-weight: 500;">
<text>协会服务</text> 入会申请
</view>
</tn-grid-item>
</tn-grid>
</view> </view>
</view> </view>
<view @click="tn('/pages/packageA/user/my_card?id='+userInfo.member_id)"> <view style="margin-top: 30rpx;">
<view> <view style="background-color: #ffffff;border-radius: 20rpx;padding: 20rpx;">
<image src="/static/ico6.png" style="width: 50rpx;height: 50rpx;"></image> <tn-list-view>
</view> <tn-list-cell padding="35rpx 30rpx" @click="tn('/pages/packageA/user/my_msg')"
<view style="margin-top: 10rpx;"> fontColor="#181818" fontSize="30rpx" :arrow="true">站内信</tn-list-cell>
<text>我的名片</text> <!-- <tn-list-cell padding="35rpx 30rpx" @click="tn('/pages/packageA/user/my_card_holder')"
fontColor="#181818" fontSize="30rpx" :arrow="true">好友申请</tn-list-cell> -->
<tn-list-cell padding="35rpx 30rpx" @click="tn('/pages/packageA/user/my_invoice')"
fontColor="#181818" fontSize="30rpx" :arrow="true">发票开取</tn-list-cell>
<tn-list-cell padding="35rpx 30rpx" fontColor="#181818" fontSize="30rpx"
:arrow="true">数据资料导出</tn-list-cell>
<tn-list-cell @click="loginAut" padding="35rpx 30rpx" fontColor="#181818"
fontSize="30rpx" :arrow="true" :unlined="true">退出账号</tn-list-cell>
</tn-list-view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view style="background-color: #fff;padding-bottom: 0rpx;">
<view style="padding:0px 20rpx;">
<tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/packageA/user/my_card_holder')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon13.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">名片夹</view>
</view>
</tn-list-cell>
<tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/packageA/user/my_edit')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon14.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">信息修改</view>
</view>
</tn-list-cell>
<!-- <tn-list-cell :arrow="true" @click="tn('/pages/index/my_pizz')">-->
<!-- <view class="tn-flex tn-flex-center tn-flex-col-center">-->
<!-- <image src="/static/ico7.png" style="width: 50rpx;height: 50rpx"></image>-->
<!-- <view style="margin-left: 20rpx;">所在商/协会</view>-->
<!-- </view>-->
<!-- </tn-list-cell>-->
<tn-list-cell :arrow="true" v-if="userInfo.if_xianshi!=1 || !login"
@click="tn_ru('/pages/packageA/user/apply_in?association_id='+loginData.association_id)">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico8.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">入会申请</view>
</view>
</tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/packageA/user/my_msg')">
<view class="tn-flex tn-flex-center tn-flex-col-center" style="position: relative;">
<image src="/static/ico9.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">我的消息</view>
<tn-badge v-if="msg()>0" style="position: absolute;right: 40rpx;" backgroundColor="#E83A30"
fontColor="#ffffff">{{msg()}}</tn-badge>
</view>
</tn-list-cell>
<tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/packageA/user/my_invite')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico10.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">邀请入会</view>
</view>
</tn-list-cell>
<!-- <tn-list-cell :arrow="true" @click="tn('/pages/index/my_assist')">-->
<!-- <view class="tn-flex tn-flex-center tn-flex-col-center">-->
<!-- <image src="/static/ico10.png" style="width: 50rpx;height: 50rpx"></image>-->
<!-- <view style="margin-left: 20rpx;">常见问题</view>-->
<!-- </view>-->
<!-- </tn-list-cell>-->
<tn-list-cell v-if="userInfo.shenhe==1&&login" :arrow="true"
@click="tn('/pages/packageA/user/user_auditing')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon15.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">内容审核</view>
</view>
</tn-list-cell>
<tn-list-cell v-if="userInfo.shenhe==1&&login" :arrow="true"
@click="tn('/pages/packageA/user/user_activity')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico16.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">发布活动</view>
</view>
</tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/packageA/user/my_idea')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">意见反馈</view>
</view>
</tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/packageA/user/my_invoice')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">发票申请</view>
</view>
</tn-list-cell>
<!-- <tn-list-cell v-if="userInfo.if_business==1" :arrow="true"
@click="tn('/pages/packageA/user/my_vip')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">会员卡</view>
</view>
</tn-list-cell> -->
<!-- <tn-list-cell v-if="userInfo.business==1" :arrow="true"
@click="tn('/pages/packageA/user/my_vip_clerk')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">店员管理</view>
</view>
</tn-list-cell> -->
<tn-list-cell :arrow="true" @click="loginAut">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico11.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">退出帐号</view>
</view>
</tn-list-cell>
</view>
</view>
</view>
<tn-popup v-model="loginMod" mode="bottom" :safeAreaInsetBottom="true">
<view class="custom-modal-content">
<view style="font-size: 30rpx;padding: 30rpx 30rpx 0rpx 30rpx;font-weight: 600;letter-spacing: 2rpx">
会员登陆</view>
<view class="text" style="padding: 40rpx;">
<tn-form ref="form" :labelWidth="120">
<tn-form-item prop="phone">
<tn-input placeholder="手机号" :customStyle="{width: '660rpx'}" v-model="loginData.phone" />
</tn-form-item>
<view style="height: 20rpx;"></view>
<tn-form-item prop="password">
<tn-input placeholder="密码" :customStyle="{width: '660rpx'}" :passwordIcon="false"
v-model="loginData.password" type="password" />
</tn-form-item>
<tn-form-item prop="code">
<tn-input v-model="code" :customStyle="{width: '400rpx'}" type="text"
placeholder="请输入验证码"></tn-input>
<view slot="right">
<view @click="getcheckCode"
style="letter-spacing: 2px; font-size: 42rpx; background-color: antiquewhite; padding: 5rpx 15rpx;">
<text v-for="(item,index) in identifyCode" :style="{color:colors[index]}">
{{ item }}
</text>
</view>
</view>
</tn-form-item>
</tn-form>
<view style="text-align: center;margin-top: 50rpx;">
<!-- <tn-button backgroundColor="#E6E6E6" fontColor="#ffffff"
@click="loginMod = false">取消</tn-button> -->
<tn-button style="border-radius: 0px;" height="80rpx" backgroundColor="#EEF0F2" width="100%"
fontColor="#000000" @click="submitLogin">确定</tn-button>
</view>
</view>
</view>
<view style="height: 120rpx;"></view>
</tn-popup>
<view @click="callPhone"
style="text-align: center;padding-bottom: 100rpx;font-size: 24rpx;color: rgba(153,153,153,0.5);letter-spacing: 2rpx;padding-top: 40rpx;">
<view>技术支持洛阳灵睿网络</view>
<view>电话15503791530</view>
</view> </view>
</view> </view>
</template> </template>
@ -449,6 +329,12 @@
}); });
return; return;
} }
if (e.includes("/pages/packageA/user/my_card_holder")) {
uni.navigateTo({
url: e
})
return;
}
if (e.includes("/pages/packageA/user/my_card")) { if (e.includes("/pages/packageA/user/my_card")) {
uni.showToast({ uni.showToast({
title: '请入会后查看', title: '请入会后查看',

View File

@ -1,86 +1,80 @@
<template> <template>
<view class="template-edit tn-safe-area-inset-bottom"> <view style="background-color: #F1F2F8;min-height: 100vh;">
<!-- 顶部自定义导航 --> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()"> <view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style=";text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>入会申请</text>
<tn-tabs :list="[{name:'申请入会'}]" :current="topCurrent" activeColor="#000" :bold="false"
:fontSize="36"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view class="tn-safe-area-inset-bottom" :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view class="tn-safe-area-inset-bottom" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="margin-top: 40rpx"> <view style="background-color: #ffffff;padding: 30rpx 0rpx;">
<tn-steps :list="tab_list" :current="current"></tn-steps> <tn-steps activeColor="#18E0A4" mode="number" :list="tab_list" :current="current"></tn-steps>
</view> </view>
<view v-if="current==1" style="padding: 30rpx"> <view v-if="current==0">
<view style="padding: 30rpx">
<view style="background-color: #ffffff;padding: 30rpx;border-radius: 20rpx;">
<view v-html="info.ruhuixizhu"></view> <view v-html="info.ruhuixizhu"></view>
<view style="text-align: center;margin-top: 60rpx"> <view style="text-align: center;margin-top: 60rpx">
<tn-checkbox v-model="checked1">同意入会协议</tn-checkbox> <tn-checkbox activeColor="#3056D3" v-model="checked1">同意入会协议</tn-checkbox>
<view style="margin-top: 20rpx"> </view>
<tn-button backgroundColor="#01BEFF" fontColor="#ffffff" @click="one_next()">下一步</tn-button>
</view>
</view>
<view
style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 40rpx 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-center">
<view @click="one_next()"
style="line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 90rpx;">
<text>下一步</text>
</view> </view>
</view> </view>
</view> </view>
<view v-if="current==2">
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin">
<view class="tn-flex justify-content-item">
<view class="tn-padding-right-xs tn-text-bold">推荐人</view>
</view> </view>
</view>
<view class="tn-margin tn-bg-gray--light" style="border-radius: 10rpx;padding: 20rpx 30rpx;"> <view v-if="current==1" style="padding: 30rpx;">
<input v-model="new_info.recommendation_name" placeholder="选填" :showRightIcon="false" <view style="padding: 30rpx;background-color: #FFFFFF;border-radius: 20rpx;">
:disabled="true" @click="tuijian_show = true" /> <tn-form ref="form" :labelWidth="150">
<tn-form-item label="推荐人">
<tn-input placeholder="推荐人(选填)" :disabled="true" @click="tuijian_show = true"
v-model="new_info.recommendation_name" inputAlign="right"
:customStyle="{width: '470rpx'}" />
<tn-select v-model="tuijian_show" mode="single" :list="member_list" <tn-select v-model="tuijian_show" mode="single" :list="member_list"
@confirm="getTuiJianId"></tn-select> @confirm="getTuiJianId"></tn-select>
</view> </tn-form-item>
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin"> <tn-form-item label="姓名">
<view class="tn-flex justify-content-item"> <tn-input placeholder="真实姓名" inputAlign="right" :customStyle="{width: '470rpx'}"
<view class="tn-padding-right-xs tn-text-bold">手机号</view> v-model="new_info.nikename" />
</view> </tn-form-item>
</view> <tn-form-item label="性别">
<view class="tn-margin tn-bg-gray--light" style="border-radius: 10rpx;padding: 20rpx 30rpx;"> <tn-input placeholder="性别" :disabled="true" @click="tuijian_show = true"
<input placeholder="填写手机号" v-model="new_info.phone" placeholder-style="color:#AAAAAA"></input> v-model="new_info.gender_name" inputAlign="right" :customStyle="{width: '470rpx'}" />
</view>
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin">
<view class="tn-flex justify-content-item">
<view class="tn-padding-right-xs tn-text-bold">真实姓名</view>
</view>
</view>
<view class="tn-margin tn-bg-gray--light" style="border-radius: 10rpx;padding: 20rpx 30rpx;">
<input placeholder="请输入真实姓名" v-model="new_info.nikename" placeholder-style="color:#AAAAAA"></input>
</view>
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin">
<view class="tn-flex justify-content-item">
<view class="tn-padding-right-xs tn-text-bold">性别</view>
</view>
</view>
<view class="tn-margin tn-bg-gray--light" style="border-radius: 10rpx;padding: 20rpx 30rpx;">
<input v-model="new_info.gender_name" :showRightIcon="false" :disabled="true"
@click="gender_show = true" />
<tn-select v-model="gender_show" mode="single" :list="genderList" <tn-select v-model="gender_show" mode="single" :list="genderList"
@confirm="getGenderId"></tn-select> @confirm="getGenderId"></tn-select>
</tn-form-item>
<tn-form-item label="企业名称" prop="unit_address">
<tn-input placeholder="企业名称" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="new_info.enterprise_name" />
</tn-form-item>
<tn-form-item label="手机号">
<tn-input placeholder="填写手机号" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="new_info.phone" />
</tn-form-item>
</tn-form>
</view> </view>
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin"> <view
<view class="tn-flex justify-content-item"> style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 40rpx 30rpx;">
<view class="tn-padding-right-xs tn-text-bold">企业名称</view> <view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-center">
<view @click="newSubmit()"
style="line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 90rpx;">
<text>提交申请</text>
</view> </view>
</view> </view>
<view class="tn-margin tn-bg-gray--light" style="border-radius: 10rpx;padding: 20rpx 30rpx;">
<input placeholder="请输入企业名称" v-model="new_info.enterprise_name"
placeholder-style="color:#AAAAAA"></input>
</view> </view>
<div style="text-align: center;margin-top: 40px">
<tn-button @click="current=1" backgroundColor="#E6E6E6" fontColor="#000000">上一步</tn-button>
<tn-button backgroundColor="#01BEFF" fontColor="#ffffff" style="margin-left: 40rpx"
@click="newSubmit">提交申请
</tn-button>
</div>
</view> </view>
<!-- <view v-if="current==2" style="padding: 30rpx">--> <!-- <view v-if="current==2" style="padding: 30rpx">-->
<!-- <view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin">--> <!-- <view class="tn-flex tn-flex-row-between tn-flex-col-center tn-padding-top tn-margin">-->
@ -627,7 +621,13 @@
tab_list: [{ tab_list: [{
name: '入会须知' name: '入会须知'
}, { }, {
name: '人员信息' name: '填写资料'
}, {
name: '入会审核'
}, {
name: '缴纳会费'
}, {
name: '入会成功'
}], }],
new_info: { new_info: {
recommendation_id: 0, recommendation_id: 0,
@ -635,7 +635,7 @@
phone: '', phone: '',
nikename: '', nikename: '',
enterprise_name: '', enterprise_name: '',
gender_name: '请选择', gender_name: '',
gender: 0, gender: 0,
}, },
formData: { formData: {
@ -1058,7 +1058,7 @@
}); });
return; return;
} }
this.current = 2; this.current = 1;
}, },
getPlan() { getPlan() {
positionList({ positionList({

View File

@ -1,41 +1,45 @@
<template> <template>
<view style="letter-spacing: 1rpx;"> <view style="background-color: #F1F2F8;letter-spacing: 1rpx;min-height: 100vh;">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()"> <view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style=";text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>我的活动</text>
<tn-tabs :list="[{name:'我参与的活动'}]" :current="topCurrent" activeColor="#000" :bold="false"
:fontSize="36"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="padding:10px 30rpx;"> <view style="padding: 30rpx;">
<view v-for="(item,index) in list" class="tn-flex tn-flex-row-between" <view v-for="(item,index) in 5"
@click="openUrl('/pages/index/event_info?id='+item.activity_id)" style="background-color: #FFF;border-radius: 20rpx;margin-bottom: 20rpx;">
style="background-color: #ffffff;padding: 20rpx;border-radius: 10rpx;margin-bottom: 30rpx;box-shadow: rgba(12, 0, 5, 0.1) 0px 0px 5px 0px;"> <view style="padding: 20rpx">
<view style="position:relative;"> <view>
<view class="tn-text-ellipsis-2" style="font-size: 28rpx;">{{item.activity_name}}</view> <view @click="openUrl('/pages/packageB/event/event_info?id='+item.id)"
style="background-color: #FFF;border-radius: 20rpx;">
<view class="tn-flex tn-flex-row-between" <view class="tn-flex tn-flex-row-between"
style="position: absolute;bottom: 0rpx;width:420rpx;color: #808080;"> style="padding:20rpx 20rpx 10rpx 10rpx;position: relative;">
<view style="font-size: 24rpx;padding-top: 8rpx;">{{item.application_time}}</view> <view style="margin-left: 10rpx;">
<view style="margin-left: 10rpx"> <image src="/static/my.png" mode="aspectFill"
<tn-button v-if="item.type=='未开始'" padding="0px" width="100rpx" height="40rpx" size="sm" style="width: 250rpx;height: 180rpx;border-radius: 20rpx;"></image>
backgroundColor="#6BC7F0 " fontColor="tn-color-white">未开始</tn-button> </view>
<tn-button v-if="item.type=='进行中'" padding="0px" width="100rpx" height="40rpx" size="sm" <view style="margin-left: 20rpx;width: 54%;">
backgroundColor="#EE9556 " fontColor="tn-color-white">进行中</tn-button> <view class="tn-text-ellipsis-2" style="font-size: 32rpx;font-weight: bold;">
<tn-button v-if="item.type=='已结束'" padding="0px" width="100rpx" height="40rpx" size="sm" 河南省青年企业家协会走进省团校开展党史学...
backgroundColor="#E12B33 " fontColor="tn-color-white">已结束</tn-button> </view>
<view style="font-size: 24rpx;margin: 20rpx 0rpx;color: #888888;">
<text class="tn-icon-time"></text>
<text>2024.07.02-2024.07.05</text>
</view>
<view class="tn-text-ellipsis" style="font-size:26rpx;color: #888888;">
<text class="tn-icon-location" style="vertical-align: middle;"></text>
<text style="vertical-align: middle;">郑州市中原区世贸中心</text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<view style="margin-left: 20rpx;">
<image :src="apiImgUrl+item.activity_image"
style="width: 200rpx;height: 135rpx;border-radius: 10rpx;">
</image>
</view> </view>
</view> </view>
</view> </view>

View File

@ -0,0 +1,248 @@
<template>
<view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>我的发布</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 10rpx;">
<view style="background-color: #FFFFFF;">
<tn-tabs :list="tab_list" :current="current" :isScroll="false" name="name" activeColor="#000000"
inactiveColor="#E6E6E6" :barWidth="25" @change="change"></tn-tabs>
</view>
<view style="padding: 30rpx;">
<view style="background-color: #FFFFFF;border-radius: 20rpx;">
<view v-for="(item,index) in list">
<view v-if="current==1"
style="padding-left: 20rpx;border-radius: 20rpx 20rpx 0rpx 0rpx;color: #FF6D66;background: rgba(255,109,102,0.1);height: 100rpx;line-height: 100rpx">
拒绝原因{{item.remark}}</view>
<view style="padding:30rpx;">
<view class="tn-text-ellipsis-2"
style="font-size: 32rpx;font-weight: bold;margin-top: 20rpx;">
{{item.title}}
</view>
<view 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)"
style="width: 200rpx;height: 200rpx;border-radius:20rpx;">
</image>
</view>
</view>
</view>
</view>
<view style="margin-top: 30rpx;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;">
<text class="tn-icon-send" style="font-size: 32rpx;"></text>
<text style="margin-left: 10rpx;">分享</text>
</view>
<view style="text-align: center;font-size: 28rpx;">
<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;">
<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;">评论</text>
</view>
</view>
</view>
<view @click="del(item)" style="text-align: right;font-size: 24rpx;color: #AAAAAA">删除
</view>
</view>
<view v-if="index<list.length-1" style="height: 1px;border-top: #BABDC7 1px dashed;"></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
tweetsList,
tweetsDel
} from '@/util/api.js';
import store from '@/store/index.js'
export default {
data() {
return {
list: [],
apiImgUrl: this.$store.state.imgUrl,
current: 0,
tab_list: [{
name: '发布成功'
}, {
name: '发布失败'
}],
page: 1,
}
},
mounted() {
this.getTweetsList();
},
methods: {
del(item) {
var that = this;
uni.showModal({
title: '提示',
content: '确定要删除吗?',
success: function(res) {
if (res.confirm) {
that.delShow(item);
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
delShow(item) {
tweetsDel({
id: item.id
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '删除成功!',
icon: 'none',
duration: 2000
});
this.page = 1;
this.list = [];
this.getTweetsList();
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
change(index) {
this.current = index;
this.page = 1;
this.list = [];
this.getTweetsList();
},
openImg(item, index) {
console.log(index);
console.log(item.files);
uni.previewImage({
current: index,
urls: item.files,
});
},
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({
me: 1,
association_name: 1,
page: this.page,
state: this.current == 0 ? 2 : 3,
size: 10
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.list.push(...res.data.data);
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
tn(e) {
uni.navigateTo({
url: e
})
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
}
}
}
</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;
}
</style>

View File

@ -72,16 +72,61 @@
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-center"> <view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-center">
<view <view
style="line-height: 80rpx;height: 80rpx;text-align: center;width: 40%;;border-radius: 90rpx 0rpx 0rpx 90rpx;background: #FFFFFF;border: 1rpx solid #BABDC7;"> style="line-height: 80rpx;height: 80rpx;text-align: center;width: 40%;;border-radius: 90rpx 0rpx 0rpx 90rpx;background: #FFFFFF;border: 1rpx solid #BABDC7;">
<button open-type="share">
<text class="tn-icon-send"></text> <text class="tn-icon-send"></text>
<text style="margin-left: 10rpx;">分享</text> <text style="margin-left: 10rpx;">分享</text>
</button>
</view> </view>
<view <view @click="sqMode= true"
style="line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 0rpx 90rpx 90rpx 0rpx;"> style="line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 0rpx 90rpx 90rpx 0rpx;">
<text>申请查看联系方式</text> <text>申请查看联系方式</text>
</view> </view>
</view> </view>
</view> </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="apiImgUrl+photo_image"
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;">{{userThisInfo.nikename}}</text>
<tn-tag size="sm" padding="0px 5px" margin="0 0 0 10rpx" width="auto" shape="radius"
backgroundColor="#F1F2F8" fontColor="#888888">{{userThisInfo.phone}}
</tn-tag>
</view>
<view class="tn-text-ellipsis"
style="width: 380rpx;font-size: 26rpx;color: #666666;font-weight: 500;margin-top: 10rpx;">
{{userThisInfo.enterprise_name}}
</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 @click="add_log" width="250rpx" shape="round" margin="0rpx 0 0 30rpx" size="lg"
backgroundColor="#3056D3" fontColor="#ffffff">确定
</tn-button>
</view>
</view>
</view>
</view>
</tn-modal>
<!-- <view style="height: 550rpx;"> <!-- <view style="height: 550rpx;">
<view style="width: 100%;height: 450rpx;position: absolute;top: 0;"> <view style="width: 100%;height: 450rpx;position: absolute;top: 0;">
<image v-if="userThisInfo.background_image==''" src="/static/my.png" <image v-if="userThisInfo.background_image==''" src="/static/my.png"
@ -228,6 +273,7 @@
export default { export default {
data() { data() {
return { return {
sqMode: false,
addMod: false, addMod: false,
topCurrent: 0, topCurrent: 0,
uid: 0, uid: 0,
@ -656,4 +702,27 @@
-webkit-line-clamp: 10; -webkit-line-clamp: 10;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
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: 80rpx;
-webkit-tap-highlight-color: transparent;
overflow: hidden;
background-color: transparent;
font-size: 28rpx;
width: 100%;
height: 100%;
}
</style> </style>

View File

@ -1,67 +1,244 @@
<template> <template>
<view class="template-edit tn-safe-area-inset-bottom"> <view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<!-- 顶部自定义导航 -->
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()"> <view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style=";text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>好友验证</text>
<tn-tabs :list="[{name:'名片夹'}]" :current="topCurrent" activeColor="#000" :bold="false"
:fontSize="36"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view class="" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view v-for="(item,index) in list" :key="index" class="wallpaper-shadow tn-margin tn-padding"> <view style="padding: 30rpx;">
<view @click="tn('/pages/packageA/user/my_card?id='+item.id)" <view style="background-color: #ffffff;border-radius: 20rpx;padding-bottom: 20rpx;">
class="tn-classify__content__sub-classify__content__item tn-flex tn-flex-center tn-flex-col-center"> <view style="font-size: 34rpx;font-weight: bold;padding:30rpx 0rpx 20rpx 30rpx;">近三天</view>
<!-- 标题有需要可以显示出来 --> <view v-for="(item,index) in list">
<view class="tn-flex tn-flex-center tn-flex-col-center" style="padding: 30rpx 20rpx;">
<view style="width: 100rpx;height: 100rpx"> <view style="width: 100rpx;height: 100rpx">
<image :src="apiImgUrl+item.photo_image" <image src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius:50%;">
style="width: 100rpx;height: 100rpx;border-radius:50%;">
</image> </image>
</view> </view>
<view style="margin-left: 20rpx;"> <view style="margin-left: 20rpx;width: 100%;">
<view style="font-size: 28rpx;"> <view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<text>{{item.nikename}}</text> <view style="font-size: 32rpx;color: #181818;font-weight: bold;">
<text style="margin-left: 50rpx;">{{item.phone}}</text> <text style="vertical-align: middle;margin-right: 10rpx;">石训</text>
</view> </view>
<view class="tn-text-ellipsis-2" style="font-size: 24rpx;margin-top: 10rpx;"> <view>
<text>{{item.enterprise_name}}</text> <tn-button @click="textModal= true" padding="20rpx 20rpx"
backgroundColor="rgba(48,86,211,0.1)" size="sm" fontColor="#3056D3"
shape="round">
<text style="font-size: 24rpx;">查看</text>
</tn-button>
</view>
</view>
<view class="tn-text-ellipsis"
style="font-size: 28rpx;margin-top: 10rpx;color: #666666;">
<text>好想你健康食品股份有限公司</text>
</view>
</view>
</view>
<view v-if="index<list.length-1"
style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 10rpx 40rpx;"></view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="tn-tabbar-height"></view>
<!-- <tn-modal v-model="showMode.show" :title="showMode.title" :content="showMode.content" :button="showMode.button"
@click="modeClick"></tn-modal> -->
<tn-modal v-model="textModal" :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>
<view style="margin-top: 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>
<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>
</template> </template>
<script> <script>
import { import {
businessCard MaillogIndex,
MaillogUpdate,
MaillogUpdateState
} from "@/util/api"; } from "@/util/api";
import store from "@/store"; import store from "@/store";
export default { export default {
name: 'Message',
data() { data() {
return { return {
textModal: false,
uid: 0, uid: 0,
apiImgUrl: this.$store.state.imgUrl, page: 1,
list: [] size: 10,
list: [],
id: 0,
if_tongyi: 0,
} }
}, },
onLoad() { onLoad() {
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
this.uid = uid; this.uid = uid;
this.getBusinessCard(); this.getMaillogIndex();
},
onReachBottom() {
this.page = this.page + 1;
this.getMaillogIndex();
}, },
methods: { methods: {
all_upadte_do() {
MaillogUpdateState({
member_b_id: this.uid
})
.then(res => {
console.log(res);
if (res.code == 1) {
store.state.msgCount = 0;
uni.showToast({
title: '操作成功!',
icon: 'none',
duration: 2000
});
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
this.showMode.show = false;
this.page = 1;
this.list = [];
this.getMaillogIndex();
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
all_upadte() {
this.showMode.show = true;
this.showMode.content = '确定修改为全部已读吗?';
this.showMode.title = '操作提示';
this.showMode.key = 2;
},
updateType(type, id) {
this.showMode.show = true;
this.showMode.content = type == 0 ? '确定要通过申请吗?' : '确定要拒绝申请吗?';
this.showMode.title = '操作提示';
this.showMode.key = 1;
this.id = id;
this.if_tongyi = type;
},
setMaillogUpdate() {
MaillogUpdate({
id: this.id,
if_tongyi: this.if_tongyi,
state: 1, //
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '操作成功!',
icon: 'none',
duration: 2000
});
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
this.showMode.show = false;
this.page = 1;
this.list = [];
this.getMaillogIndex();
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getMaillogIndex() {
MaillogIndex({
member_b_id: this.uid,
page: this.page,
size: this.size,
})
.then(res => {
console.log(res.data.length);
this.list.push(...res.data);
if (res.data.length == 0 || this.list.length < 5) {
this.loadingIn = 'nomore';
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
modeClick(i) {
if (i.index == 0) {
this.showMode.show = false;
}
if (this.showMode.key == 1 && i.index == 1) {
this.setMaillogUpdate();
}
if (this.showMode.key == 2 && i.index == 1) {
this.all_upadte_do();
}
},
//
tn(e) { tn(e) {
uni.navigateTo({ uni.navigateTo({
url: e url: e,
}) });
}, },
goBack() { goBack() {
if (getCurrentPages().length > 1) { if (getCurrentPages().length > 1) {
@ -73,26 +250,93 @@
} }
}, },
getBusinessCard() {
businessCard({
member_id: this.uid
})
.then(res => {
console.log(res);
this.list = res.data;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
} }
} }
</script> </script>
<style> <style lang="scss" scoped>
.message {
max-height: 100vh;
}
/* 自定义导航栏内容 end */
/* 底部安全边距 start*/
.tn-tabbar-height {
min-height: 20rpx;
height: calc(40rpx + env(safe-area-inset-bottom) / 2);
height: calc(40rpx + constant(safe-area-inset-bottom));
}
.tn-color-wallpaper {
color: #1D2541;
}
/* 页面阴影 start*/
.wallpaper-shadow {
border-radius: 15rpx;
box-shadow: 0rpx 0rpx 50rpx 0rpx rgba(0, 0, 0, 0.07);
}
/* 图标容器15 start */
.icon15 {
&__item {
width: 30%;
background-color: #FFFFFF;
border-radius: 10rpx;
padding: 30rpx;
margin: 20rpx 10rpx;
transform: scale(1);
transition: transform 0.3s linear;
transform-origin: center center;
&--icon {
width: 105rpx;
height: 105rpx;
font-size: 60rpx;
border-radius: 50%;
margin-bottom: 18rpx;
position: relative;
z-index: 1;
&::after {
content: " ";
position: absolute;
z-index: -1;
width: 100%;
height: 100%;
left: 0;
bottom: 0;
border-radius: inherit;
opacity: 1;
transform: scale(1, 1);
background-size: 100% 100%;
}
}
}
}
/* 用户头像 start */
.logo-image {
width: 100rpx;
height: 100rpx;
position: relative;
}
.logo-pic {
background-size: cover;
background-repeat: no-repeat;
// background-attachment:fixed;
background-position: top;
border: 1rpx solid rgba(255, 255, 255, 0.05);
box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 50%;
overflow: hidden;
// background-color: #FFFFFF;
}
</style> </style>

View File

@ -0,0 +1,126 @@
<template>
<view style="background-color: #F1F2F8;letter-spacing: 1rpx;min-height: 100vh;">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>我的收藏</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="background-color: #FFFFFF;">
<tn-tabs :list="tab_list" :current="current" :isScroll="false" name="name" activeColor="#000000"
inactiveColor="#999999" :barWidth="25" @change="change"></tn-tabs>
</view>
<view style="padding: 30rpx;">
<view v-for="(item,index) in list"
style="background-color: #FFF;border-radius: 20rpx;margin-bottom: 20rpx;">
<view style="padding: 20rpx">
<view>
<view @click="openUrl('/pages/packageB/event/event_info?id='+item.id)"
style="background-color: #FFF;border-radius: 20rpx;">
<view class="tn-flex" style="position: relative;">
<view style="margin-left: 10rpx;" v-if="item.related_object.cover!=''">
<image :src="apiImgUrl+item.related_object.cover" mode="aspectFill"
style="width: 250rpx;height: 180rpx;border-radius: 10rpx;"></image>
</view>
<view style="margin-left: 20rpx;">
<view class="tn-text-ellipsis-2" style="font-size: 32rpx;font-weight: bold;">
{{item.related_object.title}}
</view>
<view class="tn-text-ellipsis-2" style="font-size: 24rpx;margin-top: 20rpx;">
{{item.related_object.content}}
</view>
<view style="font-size: 24rpx;margin-top: 20rpx;color: #999999;">
{{item.createtime}}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
associationInfo,
favsIndex,
} from "@/util/api";
import store from "@/store";
export default {
data() {
return {
current: 0,
tab_list: [{
type: 'article',
name: '活动'
}, {
type: 'tweets',
name: '动态'
}],
list: [],
page: 1,
apiImgUrl: this.$store.state.imgUrl
}
},
onLoad() {
this.getList();
},
methods: {
change(d) {
this.page = 1;
this.list = [];
this.current = d;
this.getList();
},
getList() {
var uid = uni.getStorageSync('uid');
var nw_type = this.tab_list[this.current].type;
favsIndex({
association_id: 1,
page: this.page,
size: 10,
type: nw_type
})
.then(res => {
console.log(res);
this.list.push(...res.data.data);
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
openUrl(ulr) {
uni.navigateTo({
url: ulr
})
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
}
}
}
</script>
<style>
</style>

View File

@ -1,20 +1,56 @@
<template> <template>
<view class="template-edit tn-safe-area-inset-bottom"> <view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<!-- 顶部自定义导航 -->
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()"> <view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style=";text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>发票开取</text>
<tn-tabs :list="[{name:'发票申请'}]" :current="topCurrent" activeColor="#000" :bold="false"
:fontSize="36"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view class="tn-safe-area-inset-bottom" :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view class="tn-safe-area-inset-bottom" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="padding:40rpx;"> <view v-if="allList.length==0" style="text-align: center;padding-top: 200rpx;">
<image class="no-img" src="/static/_6@2x.png" style="width: 250rpx;" mode="widthFix"></image>
<view style="font-size: 34rpx;font-weight: bold;margin-top: 40rpx;">暂无发票数据</view>
<view style="font-size: 28rpx;color: #BABDC7;margin-top: 20rpx;">未查找到您的发票信息赶快去申请</view>
<view style="margin-top: 80rpx;">
<tn-button width="450rpx" height="85rpx" backgroundColor="#3056D3" shape="round"
fontColor="#ffffff">去申请发票</tn-button>
</view>
</view>
<view style="padding: 30rpx;">
<view v-for="item in 5"
style="margin-bottom: 30rpx;background-color: #FFF;border-radius: 20rpx;padding: 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="font-size: 32rpx;font-weight: bold;">好想你健康食品股份有限公司</view>
<view style="color: #FF9847;">
<text>待审核</text>
<text class="tn-icon-right"></text>
</view>
</view>
<view class="view_text" style="color: #666666;">
<view>
<text>上官绪波 / 2024.07.12</text>
</view>
<view>
<text>发票金额</text>
<text>¥1385</text>
</view>
</view>
<view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 30rpx 0rpx;"></view>
<view style="text-align: right;">
<tn-button @click="infoMod = true" height="70rpx" width="200rpx" fontColor="#999999"
shape="round" backgroundColor="#999999" :plain="true">查看</tn-button>
</view>
</view>
<view @click="addMod = true"
style="position: fixed;bottom: 10%;right: 0;box-shadow: 0rpx 4rpx 25rpx 0rpx rgba(48,86,211,0.25);text-align: center;color: #FFF;;background-color: #3056D3;border-radius: 80rpx 0 0rpx 80rpx;width: 180rpx;;height: 70rpx;line-height: 70rpx;">
申请发票
</view>
</view>
<!-- <view style="padding:40rpx;">
<view class="tn-flex tn-flex-center tn-flex-row-between "> <view class="tn-flex tn-flex-center tn-flex-row-between ">
<view> <view>
已有发票 {{count}} 已有发票 {{count}}
@ -49,145 +85,133 @@
</view> </view>
</view> </view>
<view style="width: 100%;height: 1px;background-color: #F8F7F8;margin: 40rpx 0rpx;"></view> <view style="width: 100%;height: 1px;background-color: #F8F7F8;margin: 40rpx 0rpx;"></view>
</view> </view> -->
</view> </view>
<tn-popup v-model="addMod" mode="right" :safeAreaInsetBottom="true" width="100%"> <tn-popup v-model="addMod" mode="right" :safeAreaInsetBottom="true" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="addMod = false"> <view style="padding-left: 15rpx;" @click="addMod = false">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>申请发票</text>
<tn-tabs :list="[{name:'信息填写'}]" activeColor="#000" :bold="false" :fontSize="34"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height+'px'}" class="custom-modal-content"> <view :style="{paddingTop: vuex_custom_bar_height+'px'}"
<view style="padding: 30rpx;"> style="background-color: #F1F2F8;min-height: 100vh;">
<view @click="tt_show_do" class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"> <view class="text" style="padding:30rpx;">
<view> <view style="background-color: #FFF;border-radius: 20rpx;padding:10rpx 30rpx;">
<view v-if="header_id_name == ''">请选择开票信息</view> <tn-form ref="form" :labelWidth="150">
<view v-if="header_id_name != ''"> <tn-form-item label="申请人" prop="name">
<view style="padding: 30rpx 0rpx;"> <tn-input placeholder="申请人" inputAlign="right" :customStyle="{width: '470rpx'}"
<view>申请人{{header_id_name.name}}</view> v-model="addForm.name" />
<view>公司名称{{header_id_name.unit}}</view>
<view>纳税人识别号{{header_id_name.taxpayer_identification_number}}</view>
<view>单位地址{{header_id_name.unit_address}}</view>
<view>单位电话{{header_id_name.telephone}}</view>
<view>银行基本户账号{{header_id_name.bank_basic_account_number}}</view>
<view>开户行{{header_id_name.bank}}</view>
</view>
</view>
</view>
<view>
<!-- <tn-button @click="tt_add_show = true" backgroundColor="#3D7EFF" size="sm"
fontColor="#ffffff">添加开票信息</tn-button> -->
<text style="margin-left: 20rpx;" class="tn-icon-right"></text>
</view>
</view>
<!-- <tn-select v-model="tt_show" mode="single" :list="tt_list" @confirm="tt_confirm"></tn-select> -->
</view>
<view class="text" style="padding:20rpx 40rpx;">
<view style="text-align: center;font-size: 32rpx;font-weight: 600;">申请发票</view>
<tn-form ref="form" :labelWidth="180">
<tn-form-item prop="name" label="发票类型">
<tn-input v-model="invoice_type_name" :customStyle="{width: '450rpx'}"
@click="invoice_type_show = true" inputAlign="right" :disabled="true" />
<tn-action-sheet :list="actionSheetList" v-model="invoice_type_show"
@click="actionSheetCallback"></tn-action-sheet>
</tn-form-item> </tn-form-item>
<tn-form-item prop="name"> <tn-form-item label="公司名称" prop="unit">
<tn-input placeholder="开票金额" :customStyle="{width: '600rpx'}" v-model="money" /> <tn-input placeholder="公司名称" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="addForm.unit" />
</tn-form-item>
<tn-form-item label="纳税人识别号" :labelWidth="200" prop="taxpayer_identification_number">
<tn-input placeholder="纳税人识别号" inputAlign="right" :customStyle="{width: '420rpx'}"
v-model="addForm.taxpayer_identification_number" />
</tn-form-item>
<tn-form-item label="单位地址" prop="unit_address">
<tn-input placeholder="单位地址" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="addForm.unit_address" />
</tn-form-item>
<tn-form-item label="单位电话" prop="telephone">
<tn-input placeholder="单位电话" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="addForm.telephone" />
</tn-form-item>
<tn-form-item label="银行基本户账号" :labelWidth="220" prop="bank_basic_account_number">
<tn-input placeholder="银行基本户账号" inputAlign="right" :customStyle="{width: '410rpx'}"
v-model="addForm.bank_basic_account_number" />
</tn-form-item>
<tn-form-item label="开户行" prop="bank">
<tn-input placeholder="开户行" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="addForm.bank" />
</tn-form-item>
<tn-form-item label="发票金额" prop="bank" :borderBottom="false">
<tn-input placeholder="发票金额" inputAlign="right" :customStyle="{width: '470rpx'}"
v-model="addForm.money" />
</tn-form-item> </tn-form-item>
</tn-form> </tn-form>
<view style="text-align: center;margin-top: 50rpx;"> </view>
<tn-button backgroundColor="#E6E6E6" height="70rpx" fontColor="#ffffff" @click="addMod = false" </view>
width="40%">取消</tn-button> <view
<tn-button backgroundColor="#3D7EFF" height="70rpx" width="40%" fontColor="#ffffff" style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 40rpx 30rpx;">
style="margin-left: 30rpx;" @click="kp_add_do">提交</tn-button> <view
style="margin: 0 auto;line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius:90rpx;">
<text>申请发票</text>
</view> </view>
</view> </view>
</view> </view>
</tn-popup> </tn-popup>
<tn-popup v-model="infoMod" mode="right" :safeAreaInsetBottom="true" width="100%"> <tn-popup v-model="infoMod" mode="right" :safeAreaInsetBottom="true" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="infoMod = false"> <view style="padding-left: 15rpx;" @click="addMod = false">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>发票开取</text>
<tn-tabs :list="[{name:'发票信息查看'}]" activeColor="#000" :bold="false" :fontSize="34"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height+'px'}" class="custom-modal-content"> <view :style="{paddingTop: vuex_custom_bar_height+'px'}"
<view class="info_text" style="padding:20rpx 40rpx;"> style="background-color: #F1F2F8;min-height: 100vh;">
<view style="padding: 30rpx;">
<view style="background-color: #FFF;border-radius: 20rpx;padding: 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="font-size: 32rpx;font-weight: bold;">好想你健康食品股份有限公司</view>
<view style="color: #FF9847;">待审核</view>
</view>
<view class="view_text" style="font-size: 28rpx;color: #666666;margin-top: 30rpx;">
<view> <view>
<text>申请人</text> <text>申请人</text>
<text>{{info.header.name}}</text> <text>上官绪波</text>
</view> </view>
<view> <view>
<text>公司名称</text> <text>申请时间</text>
<text>{{info.header.unit}}</text> <text>2024.07.16</text>
</view>
<view>
<text>纳税人识别号</text>
<text>{{info.header.taxpayer_identification_number}}</text>
</view>
<view>
<text>单位地址</text>
<text>{{info.header.unit_address}}</text>
</view> </view>
<view> <view>
<text>单位电话</text> <text>单位电话</text>
<text>{{info.header.telephone}}</text> <text>0371-65560130</text>
</view> </view>
<view> <view>
<text>银行基本账户</text> <text>单位地址</text>
<text>{{info.header.bank_basic_account_number}}</text> <text>河南省新郑市中华北路199号</text>
</view>
<view>
<text>银行基本户账号</text>
<text>130701012000564</text>
</view>
<view>
<text>纳税人识别号</text>
<text>310227687656440</text>
</view> </view>
<view> <view>
<text>开户行</text> <text>开户行</text>
<text>{{info.header.bank}}</text> <text>郑州市金水区建设银行黄河路支行</text>
</view> </view>
<view> <view>
<text>发票金额</text> <text>发票金额</text>
<text>{{info.money}}</text> <text>¥680</text>
</view> </view>
<view>
<text>发票类别</text>
<text>{{info.invoice_type==1?'普票':'专票'}}</text>
</view> </view>
<view>
<text>申请状态</text>
<tn-tag v-if="info.if_ssue==1" backgroundColor="#31E749" fontColor="#ffffff"
shape="radius">已通过</tn-tag>
<tn-tag v-if="info.if_ssue==2" backgroundColor="#E83A30" fontColor="#ffffff"
shape="radius">被拒绝</tn-tag>
<tn-tag v-if="info.if_ssue==3" backgroundColor="#FF7043" fontColor="#ffffff"
shape="radius">审核中</tn-tag>
</view> </view>
<view v-if="info.if_ssue==2">
<text>拒绝原因</text>
<text>{{info.reason}}</text>
</view> </view>
<view>
<text>发票图片</text>
<text v-if="info.invoice_image==''||info.invoice_image==null">待上传</text>
<image @click="openImg" v-if="info.invoice_image!=''&&info.invoice_image!=null"
:src="apiImgUrl+info.invoice_image" style="width: 100%;margin-top: 20rpx;" mode="widthFix">
</image>
</view>
<view style="text-align: center;margin-top: 50rpx;">
<tn-button backgroundColor="#E6E6E6" height="70rpx" fontColor="#ffffff" @click="infoMod = false"
width="40%">关闭</tn-button>
</view> </view>
<view
style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 40rpx 30rpx;">
<view
style="margin: 0 auto;line-height: 80rpx;height: 80rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius:90rpx;">
<text>下载发票</text>
</view> </view>
</view> </view>
</tn-popup> </tn-popup>
<tn-popup v-model="tt_add_show" mode="right" :safeAreaInsetBottom="true" width="100%"> <!-- <tn-popup v-model="tt_add_show" mode="right" :safeAreaInsetBottom="true" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false"> <tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="tt_add_show = false"> <view style="padding-left: 15rpx;" @click="tt_add_show = false">
@ -261,7 +285,7 @@
</view> </view>
</view> </view>
</view> </view>
</tn-popup> </tn-popup> -->
</view> </view>
</template> </template>
@ -290,7 +314,7 @@
bank_basic_account_number: '', bank_basic_account_number: '',
bank: '', bank: '',
association_id: 0, association_id: 0,
money: '',
}, },
invoice_type_show: false, invoice_type_show: false,
actionSheetList: [{ actionSheetList: [{
@ -309,7 +333,6 @@
tt_add_show: false, tt_add_show: false,
tt_show: false, tt_show: false,
tt_list: [], tt_list: [],
money: '',
page: 1, page: 1,
allList: [], allList: [],
info: {}, info: {},
@ -513,4 +536,8 @@
.info_text view { .info_text view {
margin-bottom: 40rpx; margin-bottom: 40rpx;
} }
.view_text view {
margin-top: 20rpx;
}
</style> </style>

View File

@ -1,91 +1,156 @@
<template> <template>
<view class="message tn-safe-area-inset-bottom"> <view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF"> <tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left"> <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()"> <view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text> <text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view> </view>
<view class="tn-margin-top" <view style="width: 83%;font-weight: bold;">
style=";text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;"> <text>消息通知</text>
<tn-tabs :list="[{name:'我的消息'}]" :current="topCurrent" activeColor="#000" :bold="false"
:fontSize="36"></tn-tabs>
</view> </view>
</view> </view>
</tn-nav-bar> </tn-nav-bar>
<view class="" :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="text-align: right;padding: 30rpx 30rpx 0rpx 0;"> <view style="padding: 30rpx;">
<tn-button @click="all_upadte" backgroundColor="tn-bg-blue" size="sm" fontColor="tn-color-white" <view style="background-color: #ffffff;padding: 35rpx;border-radius: 20rpx;">
shape="round">全部已读</tn-button> <view @click="tn('/pages/packageA/user/my_card_holder')"
</view> class="tn-flex tn-flex-center tn-flex-col-center">
<view v-for="item in list" class="tn-margin tn-padding" @click="tn('/pageB/chat/chatGPT')"> <view style="width: 110rpx;height: 110rpx;position: relative;">
<view class="tn-flex tn-flex-col-top"> <image src="/static/msg1.png" style="width: 110rpx;height: 110rpx;border-radius:50%;">
<!-- 这个是图标形式 --> </image>
<view class=""> <view
<view class="icon15__item--icon tn-flex tn-flex-row-center tn-flex-col-center tn-shadow-blur" style="right: -4rpx;top: -5rpx;position: absolute;color: #ffffff;line-height: 40rpx;text-align: center;width: 40rpx;height: 40rpx;border-radius: 50%;border: 1px #ffffff solid;background-color: red;">
style="background-color: #F3F2F7;color: #7C8191;"> 5
<view class="tn-icon-notice-fill"></view>
</view> </view>
</view> </view>
<view class="tn-padding-left-sm" style="width: 100%;"> <view style="margin-left: 20rpx;">
<view class="tn-flex tn-flex-col-center ">
<view class="justify-content-item">
<text class="tn-color-wallpaper tn-text-lg tn-text-bold">系统消息</text>
</view>
<view style="margin-left: 10rpx;">
<tn-tag padding="0rpx 0rpx" width="80rpx" v-if="item.state==0" size="sm" shape="circle"
backgroundColor="#E83A30" fontColor="#ffffff">未读</tn-tag>
<tn-tag padding="0rpx 0rpx" width="80rpx" v-if="item.state==1" size="sm" shape="circle"
backgroundColor="#28B93D" fontColor="#ffffff">已读</tn-tag>
</view>
</view>
<view v-if="item.type==1" class="tn-padding-top-xs tn-text-ellipsis-2 tn-color-gray">
<view>{{item.member_q_id_name}}申请查看您的联系方式</view>
<view v-if="item.content!=''" style="margin-top: 10rpx;">申请信息{{item.content}}</view>
</view>
<view v-if="item.type==0" class="tn-padding-top-xs tn-text-ellipsis-2 tn-color-gray">
<view style="margin-top: 10rpx;">{{item.content}}</view>
</view>
</view>
</view>
<view class="tn-flex tn-flex-row-between tn-flex-col-between tn-margin-top-sm tn-flex-col-center">
<view class="justify-content-item tn-color-gray tn-text-center tn-color-gray">
<text class="tn-icon-time tn-padding-right-xs tn-padding-left-xs tn-text-df"></text>
<text class="tn-text-sm">{{item.mail_time}}</text>
</view>
<block v-if="item.type==1 && item.if_tongyi==2">
<view @click="updateType(0,item.mail_id)"
class="justify-content-item tn-round tn-text tn-bg-blue--light tn-color-blue"
style="padding: 5rpx 15rpx;">
<text class="tn-padding-xs">通过申请</text>
</view>
<view @click="updateType(1,item.mail_id)"
class="justify-content-item tn-round tn-text tn-bg-orangered--light tn-color-orangered"
style="padding: 5rpx 15rpx;">
<text class="tn-padding-xs">拒绝申请</text>
</view>
</block>
<block v-if="item.type==1 && item.if_tongyi==1">
<view> <view>
<tn-tag padding="0rpx 0rpx" width="80rpx" size="sm" shape="circle" backgroundColor="#E83A30" <text style="font-size: 32rpx;font-weight: bold;vertical-align: middle;">好友验证</text>
fontColor="#ffffff">已拒绝</tn-tag>
</view> </view>
</block> <view class="tn-text-ellipsis-2" style="font-size: 28rpx;margin-top: 10rpx;color: #666666;">
<block v-if="item.type==1 && item.if_tongyi==0"> <text>您有好友验证消息</text>
</view>
</view>
</view>
<view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 40rpx 0rpx;"></view>
<view class="tn-flex tn-flex-center tn-flex-col-center" @click="hdModel= true">
<view style="width: 110rpx;height: 110rpx">
<image src="/static/msg2.png" style="width: 110rpx;height: 110rpx;border-radius:50%;">
</image>
</view>
<view style="margin-left: 20rpx;">
<view> <view>
<tn-tag padding="0rpx 0rpx" width="80rpx" size="sm" shape="circle" backgroundColor="#28B93D" <text style="font-size: 32rpx;font-weight: bold;vertical-align: middle;">互动消息</text>
fontColor="#ffffff">已同意</tn-tag>
</view> </view>
</block> <view class="tn-text-ellipsis-2" style="font-size: 28rpx;margin-top: 10rpx;color: #666666;">
<text>有用户对您发布的圈子进行了点赞</text>
</view> </view>
</view> </view>
</view> </view>
<view style="margin-top: 40rpx;"> <view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 40rpx 0rpx;"></view>
<tn-load-more :status="loadingIn" :loadText="{nomore:'没有消息'}"></tn-load-more> <view class="tn-flex tn-flex-center tn-flex-col-center" @click="xtModel = true">
<view style="width: 110rpx;height: 110rpx">
<image src="/static/msg3.png" style="width: 110rpx;height: 110rpx;border-radius:50%;">
</image>
</view> </view>
<view class="tn-tabbar-height"></view> <view style="margin-left: 20rpx;">
<tn-modal v-model="showMode.show" :title="showMode.title" :content="showMode.content" :button="showMode.button" <view>
@click="modeClick"></tn-modal> <text style="font-size: 32rpx;font-weight: bold;vertical-align: middle;">系统通知</text>
</view>
<view class="tn-text-ellipsis-2" style="font-size: 28rpx;margin-top: 10rpx;color: #666666;">
<text>管理员审核了你发布的动态</text>
</view>
</view>
</view>
</view>
</view>
</view>
<tn-popup v-model="hdModel" mode="right" :safeAreaInsetBottom="false" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="hdModel = false">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>互动消息</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height+'px'}"
style="background-color: #F1F2F8;min-height: 100vh;">
<view class="text" style="padding:30rpx;">
<view style="background-color: #FFF;padding: 30rpx;border-radius: 20rpx;">
<view v-for="item in 5">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view style="width: 110rpx;height: 110rpx">
<image src="/static/def.png"
style="width: 110rpx;height: 110rpx;border-radius:50%;">
</image>
</view>
<view style="margin-left: 20rpx;">
<view>
<text
style="font-size: 32rpx;font-weight: bold;vertical-align: middle;">李杨</text>
</view>
<view class="tn-text-ellipsis-2"
style="font-size: 28rpx;margin-top: 10rpx;color: #666666;">
<text class="tn-icon-praise-fill"
style="color: #3056D3;font-size: 30rpx;"></text>
<text>省青企协团信阳市委新县人民政府 助力大别山干部学院举行</text>
</view>
</view>
</view>
<view style="font-size: 24rpx;color: #AAAAAA;padding-left: 120rpx;margin-top: 20rpx;">
2024-07-18
09:45</view>
<view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 30rpx 0rpx;"></view>
</view>
</view>
</view>
</view>
</tn-popup>
<tn-popup v-model="xtModel" mode="right" :safeAreaInsetBottom="false" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="xtModel = false">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>系统通知</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height+'px'}"
style="background-color: #F1F2F8;min-height: 100vh;">
<view class="text" style="padding:30rpx;">
<view style="background-color: #FFF;border-radius: 20rpx;padding:30rpx;margin-bottom: 30rpx;">
<view style="font-size: 32rpx;font-weight: bold;">
管理员<text style="color: green;">审核通过</text>了你发布的动态:
</view>
<view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
省青企协团信阳市委新县人民政府
助力大别山干部学院举行
</view>
<view style="font-size: 24rpx;color: #AAAAAA;margin-top: 30rpx;">2024-07-18 09:45</view>
<view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 30rpx 0rpx;"></view>
<view style="font-size: 24rpx;color: #AAAAAA;margin-top: 30rpx;">拒绝理由: 图片信息不足,请完善图片内容</view>
</view>
<view style="background-color: #FFF;border-radius: 20rpx;padding:30rpx;margin-bottom: 30rpx;">
<view style="font-size: 32rpx;font-weight: bold;">
管理员<text style="color: green;">审核通过</text>了你的发票申请
</view>
<view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
<view>好想你健康食品股份有限公司</view>
<view style="margin:10rpx 0rpx;">上官绪波 / 2024.07.10</view>
<view>发票金额: ¥680</view>
</view>
<view style="font-size: 24rpx;color: #AAAAAA;margin-top: 30rpx;">2024-07-18 09:45</view>
<view style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 30rpx 0rpx;"></view>
<view style="font-size: 24rpx;color: #AAAAAA;margin-top: 30rpx;">拒绝理由: 图片信息不足,请完善图片内容</view>
</view>
</view>
</view>
</tn-popup>
</view> </view>
</template> </template>
@ -100,6 +165,8 @@
name: 'Message', name: 'Message',
data() { data() {
return { return {
hdModel: false,
xtModel: false,
loadingIn: 'loading', loadingIn: 'loading',
uid: 0, uid: 0,
page: 1, page: 1,

View File

@ -18,7 +18,7 @@
<view style="font-size: 34rpx;font-weight: bold;">{{ info.activity_name }}</view> <view style="font-size: 34rpx;font-weight: bold;">{{ info.activity_name }}</view>
<view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;"> <view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
<text class="tn-icon-time"></text> <text class="tn-icon-time"></text>
<text>{{formatTime(info.activity_end_time)}}-{{formatTime(info.activity_start_time)}}</text> <text>{{info.activity_end_time}}-{{info.activity_start_time}}</text>
</view> </view>
<view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;"> <view style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
<text class="tn-icon-location" style="vertical-align: middle;"></text> <text class="tn-icon-location" style="vertical-align: middle;"></text>
@ -38,6 +38,32 @@
</view> </view>
</view> </view>
<view style="height: 330rpx;"></view> <view style="height: 330rpx;"></view>
<view v-if="info.activity_type==2" style="padding-bottom: 180rpx;">
<view style="margin-top: 60rpx;font-size: 32rpx;font-weight: 600;">问卷问题</view>
<tn-form labelPosition="top" :model="form" ref="form">
<template v-for="(item,index) in questionnaireList">
<tn-form-item v-if="item.type==2" :label="(index+1)+'、'+item.title+'(多选题)'" prop="hobby">
<tn-checkbox-group v-model="questionnaireList[index].topic" size="40" activeColor="#82B2FF"
wrap>
<tn-checkbox :name="op.name" v-for="(op,opi) in item.option">
{{ op.name }}{{ op.val }}
</tn-checkbox>
</tn-checkbox-group>
</tn-form-item>
<tn-form-item v-if="item.type==1" :label="(index+1)+'、'+item.title+'(单选题)'" prop="danxuan">
<tn-radio-group v-model="questionnaireList[index].topic" size="40" activeColor="#82B2FF"
wrap>
<tn-radio :name="op.name" v-for="(op,opi) in item.option">
{{ op.name }}{{ op.val }}
</tn-radio>
</tn-radio-group>
</tn-form-item>
<tn-form-item v-if="item.type==3" :label="(index+1)+'、'+item.title+'(问答题)'" prop="wenda">
<tn-input placeholder="请填写答案" v-model="questionnaireList[index].topic" type="textarea" />
</tn-form-item>
</template>
</tn-form>
</view>
<view <view
style="border-radius: 200rpx;background: #FFFFFF;position: fixed;bottom: 260rpx;right: 30rpx;padding: 30rpx 50rpx;box-shadow: 0rpx 4rpx 25rpx 0rpx rgba(48,86,211,0.15);"> style="border-radius: 200rpx;background: #FFFFFF;position: fixed;bottom: 260rpx;right: 30rpx;padding: 30rpx 50rpx;box-shadow: 0rpx 4rpx 25rpx 0rpx rgba(48,86,211,0.15);">
<view style="text-align: center;" class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"> <view style="text-align: center;" class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
@ -51,17 +77,19 @@
</view> </view>
</button> </button>
</view> </view>
<view style="margin: 0px 40rpx;"> <view style="margin: 0px 40rpx;" @click="like">
<view style="font-size: 42rpx;"> <view style="font-size: 42rpx;">
<text class="tn-icon-praise"></text> <text v-if="info.like==1" class="tn-icon-praise-fill tn-color-red"></text>
<text v-if="info.like==2" class="tn-icon-praise"></text>
</view> </view>
<view style="color: #666666;"> <view style="color: #666666;">
点赞 点赞
</view> </view>
</view> </view>
<view> <view @click="favs">
<view style="font-size: 42rpx;"> <view style="font-size: 42rpx;">
<text class="tn-icon-star"></text> <text v-if="info.fav==1" class="tn-icon-star-fill tn-color-orangeyellow"></text>
<text v-if="info.fav==2" class="tn-icon-star"></text>
</view> </view>
<view style="color: #666666;"> <view style="color: #666666;">
收藏 收藏
@ -194,36 +222,7 @@
</view> </view>
</view> </view>
<view v-if="info.activity_type==1||info.activity_type==3" style="height: 180rpx;"></view> <view v-if="info.activity_type==1||info.activity_type==3" style="height: 180rpx;"></view>
<view v-if="info.activity_type==2" style="padding-bottom: 180rpx;">
<view style="margin-top: 60rpx;font-size: 32rpx;font-weight: 600;">问卷问题</view>
<tn-form labelPosition="top" :model="form" ref="form">
<template v-for="(item,index) in questionnaireList">
<tn-form-item v-if="item.type==2" :label="(index+1)+'、'+item.title+'(多选题)'"
prop="hobby">
<tn-checkbox-group v-model="questionnaireList[index].topic" size="40"
activeColor="#82B2FF" wrap>
<tn-checkbox :name="op.name" v-for="(op,opi) in item.option">
{{ op.name }}{{ op.val }}
</tn-checkbox>
</tn-checkbox-group>
</tn-form-item>
<tn-form-item v-if="item.type==1" :label="(index+1)+'、'+item.title+'(单选题)'"
prop="danxuan">
<tn-radio-group v-model="questionnaireList[index].topic" size="40"
activeColor="#82B2FF" wrap>
<tn-radio :name="op.name" v-for="(op,opi) in item.option">
{{ op.name }}{{ op.val }}
</tn-radio>
</tn-radio-group>
</tn-form-item>
<tn-form-item v-if="item.type==3" :label="(index+1)+'、'+item.title+'(问答题)'"
prop="wenda">
<tn-input placeholder="请填写答案" v-model="questionnaireList[index].topic"
type="textarea" />
</tn-form-item>
</template>
</tn-form>
</view>
</view> </view>
</view> --> </view> -->
</view> </view>
@ -333,7 +332,11 @@
applicationAdd, applicationAdd,
questionnaireAdd, questionnaireAdd,
moneyLogAdd, moneyLogAdd,
wxphoneLogin wxphoneLogin,
likeDo,
favsDo,
likeRevoke,
favsRevoke
} from '@/util/api.js'; } from '@/util/api.js';
import store from '@/store/index.js' import store from '@/store/index.js'
@ -387,6 +390,7 @@
// var id = this.$route.query.id; // var id = this.$route.query.id;
// this.id = id; // this.id = id;
// this.getEventInfo(); // this.getEventInfo();
//12
}, },
onShareAppMessage() { // onShareAppMessage() { //
// //
@ -424,6 +428,120 @@
this.getEventInfo(); this.getEventInfo();
}, },
methods: { methods: {
like() {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
if (this.info.like == 2) {
likeDo({
member_id: uid,
related_id: this.id,
related_type: 'article',
})
.then(res => {
console.log(res);
uni.showToast({
title: '赞成功!',
icon: 'none',
duration: 2000
});
this.info.like = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
likeRevoke({
member_id: uid,
related_id: this.id,
related_type: 'article',
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消成功!',
icon: 'none',
duration: 2000
});
this.info.like = 2;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
favs() {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
if (this.info.fav == 2) {
favsDo({
member_id: uid,
related_id: this.id,
related_type: 'article',
})
.then(res => {
console.log(res);
uni.showToast({
title: '收藏成功!',
icon: 'none',
duration: 2000
});
this.info.fav = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
favsRevoke({
member_id: uid,
related_id: this.id,
related_type: 'article',
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消收藏成功!',
icon: 'none',
duration: 2000
});
this.info.fav = 2;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
PhoneLogin(d) { PhoneLogin(d) {
console.log(d); console.log(d);
this.showLogin = false; this.showLogin = false;

View File

@ -0,0 +1,160 @@
<template>
<view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>发布动态</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="padding: 30rpx;">
<view style="background-color: #ffffff;border-radius: 20rpx;">
<view style="padding: 20rpx;">
<view style="width: 100%;">
<tn-input :clearable="false"
placeholderStyle="font-size: 34rpx;font-weight: bold;color:#BABDC7"
:customStyle="{width:'650rpx',padding:'20rpx'}" :height="100"
placeholder="填写吸引人的标题,更容易收获赞哦" v-model="title" />
</view>
<view style="border-top: #BABDC7 1rpx dashed;padding-top: 20rpx;margin-top: 20rpx;">
<tn-input :clearable="false" :customStyle="{padding:'20rpx'}" :height="200" type="textarea"
placeholder="在这里发布内容吧..." v-model="content" />
</view>
<!-- <view style="padding: 20rpx;">-->
<!-- <text style="color: #666666;font-size: 28rpx;font-weight: 500;">活动分类</text>-->
<!-- <text style="color: #BABDC7;" class="tn-icon-down-triangle"></text>-->
<!-- </view>-->
<view style="margin-top: 20rpx;">
<view>
<view class="tn-flex" style=" flex-wrap: wrap;" slot="addBtn"
hover-class="tn-hover-class" hover-stay-time="150">
<view v-for="(item,index) in images" style="margin: 5rpx;position: relative">
<image :src="apiImgUrl+item"
style="width: 200rpx;height: 200rpx;border-radius: 20rpx;" mode="aspectFit">
</image>
<view style="position:absolute;right: -5rpx;top: -5rpx;"
@click="del_img(index)">
<text class="tn-icon-delete-fill"
style="color: red;font-size: 40rpx"></text>
</view>
</view>
<view v-if="images.length<9" @click="upload_img"
style="margin: 5rpx 5rpx;background: #F1F2F8;border-radius: 20rpx;width: 200rpx;height: 200rpx;text-align: center;line-height: 200rpx;">
<text style="color: #BABDC7;font-size: 100rpx;" class="tn-icon-add"></text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view
style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 40rpx 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-center">
<view
style="line-height: 90rpx;height: 90rpx;text-align: center;width: 40%;;border-radius: 90rpx 0rpx 0rpx 90rpx;background: #FFFFFF;border: 1rpx solid #BABDC7;">
<text style="margin-left: 10rpx;color: #999999;">取消</text>
</view>
<view @click="addSubmit()"
style="line-height: 90rpx;height: 90rpx;font-size: 32rpx;font-weight: bold;text-align: center;width: 80%;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 0rpx 90rpx 90rpx 0rpx;">
<text>发布</text>
</view>
</view>
</view>
</view>
</template>
<script>
import {
tweetsPostAdd,
} from '@/util/api.js';
import store from '@/store/index.js'
export default {
data() {
return {
title: '',
content: '',
images: [],
apiImgUrl: this.$store.state.imgUrl,
apiUpUrl: this.$store.state.apiUrl,
}
},
methods: {
addSubmit() {
tweetsPostAdd({
association_id: 1,
title: this.title,
content: this.content,
images: this.images
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showModal({
title: '提示',
content: '发布成功,审核通过后显示!',
success: function(res) {
uni.navigateBack()
}
});
}
})
.catch(error => {
uni.showToast({
title: error,
duration: 2000
});
})
},
del_img(index) {
this.images.splice(index, 1);
},
upload_img() {
var user_info = uni.getStorageSync('userInfo');
var that = this;
uni.chooseMedia({
count: 9, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: function(res) {
console.log(res);
var url = res.tempFiles[0].tempFilePath;
uni.uploadFile({
url: that.apiUpUrl + '/common/upload', //
filePath: url,
name: 'file',
formData: {
association_id: 1,
},
success: (uploadFileRes) => {
var data = JSON.parse(uploadFileRes.data);
console.log(data);
that.images.push(data.data.url);
}
});
}
});
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
}
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,452 @@
<template>
<view style="background: #F1F2F8;min-height: 100vh;" v-cloak>
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="true" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="width: 83%;font-weight: bold;">
<text>动态详情</text>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 200rpx;">
<view style="background-color: #FFFFFF;margin: 20rpx;border-radius: 20rpx;">
<view style="padding: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='+info.member.id)">
<image v-if="info.member.photo_image==''||info.member.photo_image==null"
src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;">
</image>
<image v-if="info.member.photo_image!=''&&info.member.photo_image!=null"
:src="apiImgUrl+info.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;">{{info.member.nikename}}</text>
<!-- <tn-tag width="80rpx" shape="radius" size="sm" backgroundColor="#66B5FF"
fontColor="#FFFFFF">供给
</tn-tag> -->
</view>
<view>
<tn-button @click="tn('/pages/packageA/user/my_card?id='+info.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;">
{{info.member.enterprise_name}}
</view>
</view>
</view>
</view>
<view class="tn-text-ellipsis-2" style="font-size: 32rpx;font-weight: bold;margin-top: 20rpx;">
{{info.title}}
</view>
<view class="tn-text-ellipsis-2" style="font-size: 28rpx;color: #666666;margin-top: 20rpx;">
{{info.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;">
发布于:{{info.createtime}}
</view>
<!-- <view style="color: #3056D3;font-size: 28rpx;font-weight: 500;">
全文
</view> -->
</view>
<view v-if="info.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 info.files"
style="text-align: center;">
<view style="padding-right: 10rpx;">
<image :src="apiImgUrl+img" @click="openImg(info,img_i)"
style="width: 200rpx;height: 200rpx;border-radius:20rpx;">
</image>
</view>
</view>
</view>
</view>
<view style="padding:30rpx;width: 80%;margin: 0 auto;padding-top: 40rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="text-align: center;font-size: 28rpx;">
<button hover-class="none" open-type="share">
<text class="tn-icon-send" style="font-size: 32rpx;"></text>
<view>分享</view>
</button>
</view>
<view style="text-align: center;font-size: 28rpx;" @click="like(index)">
<text v-if="info.is_like==1" class="tn-icon-praise-fill tn-color-red"
style="font-size: 32rpx;"></text>
<text v-if="info.is_like==0" class="tn-icon-praise" style="font-size: 32rpx;"></text>
<view>{{info.like_num>0?info.like_num:'点赞'}}</view>
</view>
<view style="text-align: center;font-size: 28rpx;" @click="favs(index)">
<text v-if="info.is_fav==1" class="tn-icon-star-fill tn-color-orangeyellow"
style="font-size: 32rpx;"></text>
<text v-if="info.is_fav==0" class="tn-icon-star" style="font-size: 32rpx;"></text>
<view>{{info.fav_num>0?info.fav_num:'收藏'}}</view>
</view>
</view>
</view>
<view style="margin-top: 40rpx;">
<view style="color: #181818;font-size: 34rpx;font-weight: bold;">评论{{com_info.total}})</view>
<view style="padding-top: 30rpx;">
<view v-for="(item,index) in com_list" style="width: 100%;margin: 50rpx 0rpx;">
<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 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>
<!-- <tn-tag width="80rpx" shape="radius" size="sm" backgroundColor="#66B5FF"
fontColor="#FFFFFF">供给
</tn-tag> -->
</view>
<view v-if="item.member_id==uid || uid==info.member_id"
style="text-align: center;font-size: 28rpx;" @click="del(item)">
<!-- <text class="tn-icon-praise" style="font-size: 32rpx;"></text>
<view>21</view> -->
<view style="color: #AAAAAA;font-size: 24rpx;">删除</view>
</view>
</view>
<view class="tn-text-ellipsis"
style="width: 380rpx;font-size: 26rpx;color: #666666;font-weight: 500;margin-top: 5rpx;">
{{item.createtime}}
</view>
</view>
</view>
<view style="color: #666666;padding-top: 30rpx;">
{{item.content}}
</view>
<view v-if="index<com_list.length-1"
style="height: 1rpx;border-top: #BABDC7 1rpx dashed;margin: 50rpx 0rpx;"></view>
</view>
</view>
</view>
</view>
</view>
</view>
<view
style="position: fixed;bottom:0px;width: 100%;background-color: #FFFFFF;box-shadow: 0rpx -2rpx 4rpx 0rpx rgba(186,189,199,0.2);padding:30rpx 30rpx 50rpx 30rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view style="background: #F1F2F8;border-radius: 60rpx;padding:0rpx 20rpx;height: 80rpx;width: 75%;">
<tn-input :maxLength="100" :height="80" v-model="content" placeholder="输入发表评论"
:customStyle="{width:'450rpx'}" :clearable="false" />
</view>
<view @click="submitDo"
style="line-height: 80rpx;height: 80rpx;font-size: 28rpx;font-weight: bold;text-align: center;width: 150rpx;color: #ffffff;;background: #3056D3;border: 1rpx solid #3056D3;border-radius: 90rpx;">
<text>发布</text>
</view>
</view>
</view>
</view>
</template>
<script>
import {
tweetsInfo,
likeDo,
favsDo,
likeRevoke,
favsRevoke,
postComment,
commentList,
addComment,
removeComment
} from '@/util/api.js';
import store from '@/store/index.js'
export default {
data() {
return {
id: 0,
info: {},
apiImgUrl: this.$store.state.imgUrl,
content: '',
com_list: [],
com_info: {},
page: 1,
uid: 0,
}
},
onLoad(d) {
var uid = uni.getStorageSync('uid');
this.uid = uid;
this.id = d.id;
this.getTweets();
this.getCommentList();
},
onReachBottom() {
this.page += 1;
this.getCommentList();
},
methods: {
submitDo() {
addComment({
tweet_id: this.id,
content: this.content
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '评论成功!',
icon: 'none',
duration: 2000
});
} else {
uni.showToast({
title: '评论失败!',
icon: 'none',
duration: 2000
});
}
this.content = '';
this.page = 1;
this.com_list = [];
this.getCommentList();
//this.com_list = res.data;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getCommentList() {
commentList({
tweet_id: this.id,
page: this.page,
size: 15,
})
.then(res => {
console.log(res);
this.com_list.push(...res.data.data);
this.com_info = res.data;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getTweets() {
tweetsInfo({
id: this.id
})
.then(res => {
console.log(res);
this.info = res.data;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
like() {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
if (this.info.is_like == 0) {
likeDo({
member_id: uid,
related_id: this.id,
related_type: 'tweets',
})
.then(res => {
console.log(res);
uni.showToast({
title: '赞成功!',
icon: 'none',
duration: 2000
});
this.info.is_like = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
likeRevoke({
member_id: uid,
related_id: this.id,
related_type: 'tweets',
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消成功!',
icon: 'none',
duration: 2000
});
this.info.is_like = 0;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
favs() {
var uid = uni.getStorageSync('uid');
if (!uid) {
uni.showToast({
title: '请先登录',
icon: 'none',
duration: 2000
});
return;
}
if (this.info.is_fav == 0) {
favsDo({
member_id: uid,
related_id: this.id,
related_type: 'tweets',
})
.then(res => {
console.log(res);
uni.showToast({
title: '收藏成功!',
icon: 'none',
duration: 2000
});
this.info.is_fav = 1;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
} else {
favsRevoke({
member_id: uid,
related_id: this.id,
related_type: 'tweets',
})
.then(res => {
console.log(res);
uni.showToast({
title: '取消收藏成功!',
icon: 'none',
duration: 2000
});
this.info.is_fav = 0;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
}
},
del(item) {
removeComment({
id: item.id,
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '删除成功!',
icon: 'none',
duration: 2000
});
this.page = 1;
this.com_list = [];
this.getCommentList();
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
}
}
}
</script>
<style>
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>

BIN
static/_6@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

BIN
static/msg1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
static/msg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
static/msg3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -92,3 +92,28 @@ export const someMethod = data => request.post('/move/invoice_header/someMethod'
export const getInvoiceLogWithHeader = data => request.post('/move/invoice_header/getInvoiceLogWithHeader', data, export const getInvoiceLogWithHeader = data => request.post('/move/invoice_header/getInvoiceLogWithHeader', data,
false); false);
export const likeDo = data => request.post('/move/like/do', data, false);
export const likeRevoke = data => request.post('/move/like/revoke', data, false);
export const favsDo = data => request.post('/move/favs/do', data, false);
export const favsRevoke = data => request.post('/move/favs/revoke', data, false);
export const favsIndex = data => request.post('/move/favs/index', data, false);
export const tweetsPostAdd = data => request.post('/move/tweets/post', data, false);
export const tweetsList = data => request.post('/move/tweets/plaza', data, false);
export const tweetsInfo = data => request.post('/move/tweets/detail', data, false);
export const postComment = data => request.post('/move/tweets/post_comment', data, false);
export const commentList = data => request.post('/move/tweets/comments', data, false);
export const addComment = data => request.post('/move/tweets/post_comment', data, false);
export const removeComment = data => request.post('/move/tweets/remove_comment', data, false);
export const tweetsDel = data => request.post('/move/tweets/destroy', data, false);