| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- // Actions
- const FETCH_NEWS_DATA = 'yapi/news/FETCH_NEWS_DATA';
- const FETCH_MORE_NEWS = 'yapi/news/FETCH_MORE_NEWS';
- // Reducer
- const initialState = {
- newsData: {
- list: [],
- total: 0
- },
- curpage: 1
- };
- export default (state = initialState, action) => {
- switch (action.type) {
- case FETCH_NEWS_DATA: {
- const list = action.payload.data.data.list;
- state.newsData.list = list;
- state.curpage = 1;
- state.newsData.list.sort(function(a, b) {
- return b.add_time - a.add_time;
- });
- return {
- ...state,
- newsData: {
- total: action.payload.data.data.total,
- list: state.newsData.list
- }
- };
- }
- case FETCH_MORE_NEWS: {
- const list = action.payload.data.data.list;
- state.newsData.list.push(...list);
- state.newsData.list.sort(function(a, b) {
- return b.add_time - a.add_time;
- });
- if (list && list.length) {
- state.curpage++;
- }
- return {
- ...state,
- newsData: {
- total: action.payload.data.data.total,
- list: state.newsData.list
- }
- };
- }
- default:
- return state;
- }
- };
- // Action Creators
- import axios from 'axios';
- import variable from '../../constants/variable';
- export function fetchNewsData(typeid, type, page, limit, selectValue) {
- let param = {
- typeid: typeid,
- type: type,
- page: page,
- limit: limit ? limit : variable.PAGE_LIMIT,
- selectValue
- }
- return {
- type: FETCH_NEWS_DATA,
- payload: axios.get('/api/log/list', {
- params: param
- })
- };
- }
- export function fetchMoreNews(typeid, type, page, limit, selectValue) {
- const param = {
- typeid: typeid,
- type: type,
- page: page,
- limit: limit ? limit : variable.PAGE_LIMIT,
- selectValue
- }
- return {
- type: FETCH_MORE_NEWS,
- payload: axios.get('/api/log/list', {
- params: param
- })
- };
- }
- export function getMockUrl(project_id) {
- const params = { id: project_id };
- return {
- type: '',
- payload: axios.get('/api/project/get', { params: params })
- };
- }
- export function fetchUpdateLogData(params) {
- return {
- type: '',
- payload: axios.post('/api/log/list_by_update', params)
- };
- }
|