import {login_types,state,mutations,actions,getters} from "./login"; import login from "./login"; import {apiMap, baseUrl} from "../map/apiMap"; import {rCode} from "../map/rcodeMap_esm"; import {handle} from "../until/handle"; import axios from "axios"; import dbField_esm from "../map/dbField_esm"; function _transform(arr){ arr = arr.map(item => { item.en_text = item.type_name; item.icon = item.type_logo; item.text = item.type_name; item.key = item.type_key; item.typeKey = item.type_key; item.href = `/${item.type_key}`; item.value = item.type_key; return item; }) return arr; } export const indexTypes = { mutations: { setProductTypes: 'setProductTypes', setNewsTypes: 'setNewsTypes', setCarousel: 'setCarousel', setPlatform: 'setPlatform' } } export const modules = { index: { state: { // 平台基础信息 platform: {}, // 产品类别 pTypes: [], // 新闻类别 nTypes: [], // 轮播数据 carousel: [], }, mutations: { [indexTypes.mutations.setProductTypes](state, pTypes){ state.pTypes = pTypes; }, [indexTypes.mutations.setNewsTypes](state, nTypes){ state.nTypes = nTypes; }, [indexTypes.mutations.setCarousel](state, carousel){ state.carousel = carousel; }, [indexTypes.mutations.setPlatform](state, platform){ state.platform = platform; } }, actions : { async nuxtServerInit ({ commit }, { req }) { console.log('nuxtServerInit'); if(req.session){ if (req.session.owner) { commit('login/'+login_types.mutations.userLogin, req.session.owner) } // 获取新闻与产品类别信息 let err, res; [err, res] = await handle(axios.get(baseUrl + apiMap.baseDatas.path)); if(err){return console.log(err);} let result = res.data; if(result.code !== rCode.OK){return console.log(result.msg);} let data = result.data; commit(indexTypes.mutations.setPlatform, data.baseInfo); commit(indexTypes.mutations.setProductTypes, data.pType); commit(indexTypes.mutations.setNewsTypes, data.nType); commit(indexTypes.mutations.setCarousel, data.carousel); } }, }, getters: { platform: state => state.platform, pTypes: state => state.pTypes, nTypes: state => state.nTypes, carousel: state => state.carousel, productTypes: state => { let arr = state.pTypes; let res = _transform(arr); // 首位插入一个空选项 res.unshift({ en_text : "全部类型", icon : "/image/all.svg", text : "全部类型", key : "all", typeKey : "all", }) return res }, allNewsTypes: state => { let arr = state.nTypes; return _transform(arr); }, solutionTypes: state => { console.log(state.nTypes); let arr = state.nTypes.filter(item => item.parent_type === dbField_esm.db_base.newsType.solution); let res = _transform(arr); res.unshift({ en_text : "全部类型", icon : "/image/all.svg", text : "全部类型", key : "all", typeKey : "all", }) return res; }, newsTypes: state => { let arr = state.nTypes.filter(item => item.parent_type === dbField_esm.db_base.newsType.news); let res = _transform(arr); res.unshift({ en_text : "全部类型", icon : "/image/all.svg", text : "全部类型", key : "all", typeKey : "all", }) return res; }, } }, login }