import { getStorage, setStorage, changeTheme } from "@/utils/utis"; import { SET_COIN_LIST, SET_CURRENCY, SET_COIN_SYMBOL_ARR, SET_KEFU, SET_THEME } from '@/store/const.store' import { _getCoins, _getExchangeRate } from '@/API/home.api' import { customer } from '@/API/user.api' export default { namespaced: true, state: { currency: {}, // 当前汇率 coinArr: [], // 解构出来的币种数组 hotArr: [], // 热门币种 coinList: [], // 品种 kefu_url: '', theme: getStorage('theme') || 'dark' }, getters: { coinList: state => state.coinList, coinArr: state => state.coinArr, hotArr: state => state.hotArr, currency: state => state.currency, kefu_url: state => state.kefu_url, theme: state => state.theme }, mutations: { [SET_THEME]: (state, theme) => { state.theme = theme window.document.documentElement.setAttribute('data-theme', theme) changeTheme(theme) setStorage('theme', theme) }, [SET_COIN_LIST](state, list) { state.coinList = list; }, [SET_CURRENCY](state, currency) { state.currency = currency; }, [SET_COIN_SYMBOL_ARR](state, list) { const arr = [] const hots = [] list.map(item => { arr.push(item.symbol) if (item.isTop === '1') { // 热门 hots.push(item.symbol) } }) state.coinArr = arr state.hotArr = hots }, [SET_KEFU](state, url) { state.kefu_url = url; }, }, actions: { async [SET_COIN_LIST]({ commit, state }) { // 获取配置的币种 const list = await _getCoins().catch(err => { Promise.reject(err) }) commit(SET_COIN_SYMBOL_ARR, list) // 原数据 commit(SET_COIN_LIST, list) // 拆分的单个数据 Promise.resolve(list) }, async [SET_CURRENCY]({ commit, state, rootState }) { // 设置汇率 console.log('rootState', rootState) const currency = await _getExchangeRate({ token: rootState.user.userInfo.token }).catch(err => Promise.reject(err)) commit(SET_CURRENCY, currency) }, actionsToken({ commit }, data) { commit("SET_TOKEN", data); }, actionsStatus({ commit }, data) { commit("SET_STATUS", data); }, async [SET_KEFU]({ commit, state, rootState }) { // 设置汇率 const data = await customer().catch(err => Promise.reject(err)) let url = data.customer_service_url commit(SET_KEFU, url) }, }, };