356 lines
8.5 KiB
Vue
Raw Permalink Normal View History

2025-07-09 09:13:08 +08:00
<template>
<view style="background-color: rgb(235, 244, 247);">
<view style="padding:0rpx 28rpx;margin-top: 20rpx;">
<view style="background-color: #ffffff;border-radius: 15rpx 15rpx 0px 0px;padding:20rpx;">
<tn-tabs :list="goryList" :isScroll="true" :activeItemStyle="{fontSize:'30rpx',fontWeight:'600'}"
activeColor="#3377FF" :current="current" name="name" @change="change" :fontSize="28"></tn-tabs>
</view>
</view>
<view style="padding:0px 28rpx;padding-bottom: 20rpx;min-height:1000rpx">
<view v-for="(item,index) in news_list" :class="{ 'rounded_corner': index === 0 }"
style="background-color: #ffffff;">
<view class="tn-flex" @click="openNewUrl(item)" style="padding: 20rpx;min-height: 200rpx;">
<view v-if="item.news_image">
<image :src="apiImgUrl+item.news_image" mode="aspectFill"
style="width: 230rpx;height: 180rpx;border-radius: 8rpx;"></image>
</view>
<view style="position:relative;padding:0rpx 10rpx 10rpx 15rpx;margin-left: 10rpx;">
<view class="tn-text-ellipsis-3" style="font-size: 28rpx;">{{ item.news_title }}</view>
<view class="tn-flex tn-flex-row-between"
style="font-size:24rpx;width: 95%;color: rgb(171, 171, 171);position: absolute; bottom: 0rpx; min-width: 380rpx;overflow: hidden">
<view>{{ item.name }}</view>
<view>{{ formatTime(item.showtime) }}</view>
<view>
<text class="tn-icon-eye" style="vertical-align: middle;"></text>
<text style="vertical-align: middle;">{{ item.news_hits }}</text>
</view>
</view>
</view>
</view>
<view v-if="news_list.length-1>index"
style="background: rgba(217, 217, 217, 0.5);width: 90%;margin: 0 auto;height: 2rpx;"></view>
</view>
</view>
</view>
</template>
<script>
import {
newsGoryList,
newsList,
associationIndex,
Mailcoent,
getArticlePolicyList,
} from '@/util/api.js';
import store from '@/store/index.js'
export default {
data() {
return {
list: [],
selectShow: false,
selectList: [],
topCurrent: 0,
searlist: [{
article_title: '会员名称/协会名称/活动/新闻'
}],
cardCur: 0,
isAndroid: true,
goryList: [],
news_list: [],
current: 0,
page: 1,
size: 10,
gory_id: 0,
type: 1,
HomeTitle: '',
apiImgUrl: this.$store.state.imgUrl,
association_id: this.$store.state.Gid,
}
},
mounted() {
getApp().getUserLogin((r) => {
console.log('---Login---', r);
})
this.registerGetGidListener();
this.getNewsGoryList();
this.getAssociationIndex();
this.getMsg();
//this.getArticlePolicyListAll();
},
beforeDestroy() {
// 移除事件监听器
this.unregisterGetGidListener();
},
methods: {
itemClick(item) {
console.log(item);
uni.navigateTo({
url: "/pages/packageB/news/notice_info?id=" + item.id
})
},
registerGetGidListener() {
const that = this;
uni.$on('getGid', function(data) {
console.log('-----', data);
that.page = 1;
that.goryList = [];
that.news_list = [];
that.association_id = data.gid;
that.getNewsGoryList();
that.getAssociationIndex();
});
},
unregisterGetGidListener() {
uni.$off('getGid');
},
openNewUrl(item) {
//'/pages/packageB/news/new_info?id='+item.news_id
console.log(item);
if (item.wx_url == '') {
uni.navigateTo({
url: '/pages/packageB/news/new_info?id=' + item.news_id
})
} else {
uni.navigateTo({
url: '/pages/index/web?url=' + encodeURIComponent(item.wx_url),
})
}
},
callPhone() {
uni.makePhoneCall({
phoneNumber: '15503791530', // 电话号码
success: function() {
console.log('拨打电话成功');
},
fail: function() {
console.log('拨打电话失败');
}
});
},
msg() {
return this.$store.state.msgCount;
},
getArticlePolicyListAll() {
getArticlePolicyList({
cid: 22
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.list = res.data.ret;
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
openInfo(d) {
uni.navigateTo({
url: '/pages/packageA/info/policy_info?id=' + d.id,
})
},
openRight() {
uni.navigateTo({
url: '/pages/packageA/info/policy',
})
},
async getMsg() {
var uid = uni.getStorageSync('uid');
const res = await Mailcoent({
member_id: uid
});
console.log(res);
if (res.code == 1) {
this.$store.commit('$tStore', {
name: 'msgCount',
value: res.data
})
} else {
this.$store.commit('$tStore', {
name: 'msgCount',
value: 0
})
}
console.log(store.state.msgCount);
},
confirm(d) {
var info = d[0];
console.log(info);
store.commit('$tStore', {
name: 'Gid',
value: info.value
})
uni.setStorageSync('Gid', info.value);
this.association_id = info.value;
this.page = 1;
this.goryList = [];
this.news_list = [];
this.getNewsGoryList();
this.getAssociationIndex();
//this.$emit('childEvent', '修改后的数据');
},
getAssociationIndex() {
associationIndex({
page: 1,
size: 200
})
.then(res => {
console.log(res);
if (res.code == 1) {
var key = res.data;
key.push({
id: 61,
association_name: '洛阳市总商会'
});
const transformedSelectList = key.map(item => ({
value: item.id,
label: item.association_name,
icon: item.association_image
}));
const foundNumber = transformedSelectList.find((element) => element.value == store.state
.Gid);
this.HomeTitle = foundNumber.label;
this.selectList = transformedSelectList;
//#ifdef MP-WEIXIN
this.$parent.childEvent(foundNumber);
//#endif
// #ifdef H5
console.log('H5');
this.$parent.$parent.$parent.$parent.childEvent(foundNumber);
// #endif
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getNewsGoryList() {
newsGoryList({
association_id: this.association_id
})
.then(res => {
console.log(res);
if (res.code == 1) {
var key = res.data;
key.unshift({
id: 0,
name: '最新'
});
this.goryList = key;
this.type = 1;
this.gory_id = 0;
this.getNewsList();
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getNewsList() {
newsList({
association_id: store.state.Gid,
type: this.type,
gory_id: this.gory_id,
page: this.page,
size: this.size
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.news_list.push(...res.data.ret);
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
cardSwiper(d) {
this.cardCur = d.detail.current;
},
ReachBottom() {
console.log('home');
//this.page = this.page + 1;
//this.getNewsList();
//this.getIndex();
},
change(e) {
this.current = e;
var info = this.goryList[e];
this.gory_id = info.id;
this.type = e === 0 ? 1 : 0;
this.page = 1;
this.news_list = [];
this.getNewsList();
},
openUrl(url) {
uni.navigateTo({
url: url
})
},
openApply() {
var uid = uni.getStorageSync('uid');
var userInfo = uni.getStorageSync('userInfo');
if (!uid || !userInfo) {
uni.showToast({
title: '请登陆后查看',
icon: 'none',
duration: 2000
});
return;
}
uni.navigateTo({
url: '/pages/packageA/user/apply_in?association_id=' + this.association_id
})
},
opentab() {
uni.$emit('depId', {
index: 1
})
},
videoErrorCallback(e) {
uni.showModal({
content: e.target.errMsg,
showCancel: false
})
},
formatTime(time) {
const [year, month, day] = time.split(' ')[0].split('-');
return `${year}-${month}-${day}`;
},
}
}
</script>
<style lang="scss" scoped>
.my_tag {
padding: 8rpx 15rpx;
font-size: 20rpx;
color: rgba(255, 255, 255, 1);
border-radius: 0rpx 0rpx 22rpx 0rpx;
}
</style>