Authored by Tao

modify news && newsDetail

... ... @@ -7,10 +7,9 @@
@pulling-up="onPullingUp"
:data="newsList.list">
<div class="news-content">
<Tab
v-if="newsList.tabList.length > 0" :list="newsList.tabList"></Tab>
<List v-if="newsList.list.length > 0" :list="newsList && newsList.list || []"></List>
<UfoNoItem v-else :tip="`暂无数据`" style="margin-6op: 50px"></UfoNoItem>
<Tab v-if="newsList.tabList.length > 0" :list="newsList.tabList || []"></Tab>
<List v-if="newsList.list && newsList.list.length > 0" :list="newsList.list || []"></List>
<UfoNoItem v-else :tip="`暂无数据`" style="margin-6op: 60px"></UfoNoItem>
</div>
</Scroll>
</div>
... ... @@ -30,39 +29,68 @@ export default {
props: ['hideHeader'],
data() {
return {
msg: '消息',
options: {
pullUpLoad: true
pullUpLoad: {
txt: {
noMore: '~ 已经到底啦 ~'
}
}
},
newsList: {
list: [],
tabList: [],
page: 0,
totalPage: 0,
isMoreData: true,
},
params: {
type: '',
isResetPage: true,
page: 1,
limit: 10,
},
msg: '消息',
};
},
computed: {
...mapState(['newsList']),
},
activated() {
let params = {
type: '',
isPage: true
};
this.fetchNewsList(params);
this.fetchNewsTabList();
this.fetchList();
this.fetchTabList();
},
mounted() {
},
created() {
},
methods: {
...mapActions(['fetchNewsList', 'fetchNewsTabList']),
async fetchList() {
let result = await this.fetchNewsList({ ...this.params });
if (result.code && result.code == 200) {
if (!this.newsList.isMoreData) return;
this.newsList.list = this.newsList.list.concat(result.data.list);
this.params.page = this.params.page + 1;
this.newsList.page = result.data.page;
this.newsList.totalPage = result.data.totalPage;
if (this.newsList.page == this.newsList.totalPage) {
this.newsList.isMoreData = false;
}
}
},
async fetchTabList() {
let result = await this.fetchNewsTabList();
if (result.code && result.code == 200) {
this.newsList.tabList = result.data;
}
},
async onPullingUp() {
if (!this.newsList.isMoreData) {
this.$refs.scroll.forceUpdate();
return false
this.$refs.scroll.forceUpdate()
return;
}
let params = {
type: '',
isPage: false
};
await this.fetchNewsList(params);
this.$refs.scroll.forceUpdate();
this.fetchList(this.params);
},
},
components: {
... ...
... ... @@ -5,11 +5,11 @@
ref="scroll"
:options="options"
@pulling-up="onPullingUp"
:data="newsDeatilList.list">
:data="newsList.list">
<div class="news-content">
<Title :title="title"></Title>
<List v-if="newsDeatilList.list && newsDeatilList.list.length > 0" :list="newsDeatilList && newsDeatilList.list || []" :isTitle="false"></List>
<UfoNoItem v-else :tip="`暂无数据`" style="margin-top: 60px"></UfoNoItem>
<List v-if="newsList.list && newsList.list.length > 0" :list="newsList.list || []"></List>
<UfoNoItem v-else :tip="`暂无数据`" style="margin-6op: 60px"></UfoNoItem>
</div>
</Scroll>
</div>
... ... @@ -28,39 +28,64 @@ export default {
data() {
return {
options: {
pullUpLoad: true
pullUpLoad: {
txt: {
noMore: '~ 已经到底啦 ~'
}
}
},
title: '',
type: '',
newsList: {
list: [],
tabList: [],
page: 0,
totalPage: 0,
isMoreData: true,
},
params: {
type: '',
isResetPage: true,
page: 1,
limit: 10,
},
}
},
computed: {
...mapState(['newsList','newsDeatilList']),
},
activated() {
let params = {
type: this.type,
isPage: true
}
this.fetchNewsList(params);
this.fetchList(this.params);
},
created() {
// this.fetchList(this.params);
this.title = this.$route.query.description;
this.type = this.$route.query.type;
this.params.type = this.$route.query.type;
},
methods: {
...mapActions(['fetchNewsList']),
async fetchList() {
let result = await this.fetchNewsList({ ...this.params });
if (result.code && result.code == 200) {
console.log(result.data);
if (!this.newsList.isMoreData) return;
this.newsList.list = this.newsList.list.concat(result.data.list);
this.params.page = this.params.page + 1;
this.newsList.page = result.data.page;
this.newsList.totalPage = result.data.totalPage;
if (this.newsList.page == this.newsList.totalPage) {
this.newsList.isMoreData = false;
}
}
},
async onPullingUp() {
if (!this.newsDeatilList.isMoreData ) {
this.$refs.scroll.forceUpdate();
return false
};
let params = {
type: this.type,
isPage: false
}
await this.fetchNewsList(params);
this.$refs.scroll.forceUpdate();
if (!this.newsList.isMoreData) {
this.$refs.scroll.forceUpdate()
return;
}
this.fetchList(this.params);
}
},
components: {
... ...
... ... @@ -31,18 +31,16 @@ export default function() {
},
[Types.FETCH_NEWSDETAIL_LIST](state, { list }) {
console.log(list.page);
console.log("list.page");
state.newsDeatilList.list = list.page > 1 ? state.newsDeatilList.list.concat(list.list) : list.list;
state.newsDeatilList.page = list.page;
state.newsDeatilList.totalPage = list.totalPage;
list.page < list.totalPage ? state.newsDeatilList.isMoreData = true : state.newsDeatilList.isMoreData = false;
},
resPages(state, {page, isMoreData}) {
state.newsDeatilList.page = page;
state.newsDeatilList.isMoreData = isMoreData;
},
// resPages(state, {page, isMoreData}) {
// state.newsDeatilList.page = page;
// state.newsDeatilList.isMoreData = isMoreData;
// },
[Types.FETCH_NEWS_TAB_LIST](state, { list }) {
state.newsList.tabList = list;
... ... @@ -50,18 +48,10 @@ export default function() {
},
actions: {
async fetchNewsList({ commit, state }, obj) {
console.log(obj)
console.log("objobj")
let type = obj && obj.type;
let page = type ? state.newsDeatilList.page + 1 : state.newsList.page + 1;
let limit = state.newsList.limit;
let isPage = obj && obj.isPage;
if (isPage) {
page = 1;
}
console.log(obj);
let { isResetPage, limit, page, totalPage, type } = obj;
const result = await this.$api.post('/api/ufo/home/newsList', {
page, type: type || '', limit
page, type: type || '', limit, uid: 500031928,
});
if (result.code === 200) {
... ... @@ -69,18 +59,18 @@ export default function() {
res.createTime = moment(new Date(res.createTime * 1000)).format('YYYY.MM.DD HH:mm');
});
if (type) {
console.log('1');
commit(Types.FETCH_NEWSDETAIL_LIST, {list: result.data});
} else {
console.log('2');
commit(Types.FETCH_NEWS_LIST, {list: result.data});
}
return result;
}
},
async fetchNewsTabList({ commit }) {
const result = await this.$api.post('/api/ufo/home/newsListTab', {});
const result = await this.$api.post('/api/ufo/home/newsListTab', {uid: 500031928});
if (result.code === 200) {
commit(Types.FETCH_NEWS_TAB_LIST, {list: result.data});
return result;
}
},
},
... ...
... ... @@ -100,15 +100,17 @@ module.exports = {
ufo: true,
api: 'ufo.users.listInboxs',
params: {
// uid: {type: Number}
uid: {type: Number}
},
auth: true,
// auth: true,
},
'/api/ufo/home/newsListTab': {
ufo: true,
api: 'ufo.users.listInboxTypeInfo',
params: {},
auth: true,
params: {
uid: {type: Number}
},
// auth: true,
},
'/api/ufo/coupon/list': {
ufo: true,
... ...