| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import { defineStore } from "pinia";
- import verConfig from "@/ver.config";
- import { GTE_BANNER, RATE_LIST, OTHER_CONFIG, CONTENT_WINNOTICE, CONTENT_COUPON, CONTENT_BOXES } from "@/api";
- import { getStorage, setStorage } from "@/utils";
- import { nextTick } from "vue"
- import { openUrl } from "@/utils"
- import { setLan } from "@/locale"
- import { useShopStore } from "./shop"
- const state = () => ({
- banner: [],
- rateList: [],
- langeuageList: [],
- countryCodesList: [],
- currency: getStorage(verConfig.symbol).code || verConfig.currency,
- lang: getStorage(verConfig.langName) || verConfig.lang,
- symbol: getStorage(verConfig.symbol) || {},
- winnotice: {},
- coupon: {},
- count: 0,
- networkStatus: true,
- isConnected: true,
- isFirstConnectNetwork: true,
- isHomeFirstConnect: false,
- appinfo: {
- update: 0
- }
- })
- export const useSystemStore = defineStore('system', {
- state,
- getters: {
- getBanner() {
- // if (!this.banner.length) {
- // this.setBanner()
- // }
- return this.banner || []
- },
- getRateList() {
- return this.rateList;
- },
- getLangeuage() {
- return this.langeuageList
- },
- getCountryCodes() {
- return this.countryCodesList
- },
- getCurrency() {
- return this.currency
- },
- getLang() {
- return this.lang
- },
- getSymbol() {
- return this.symbol
- },
- getWinnotice() {
- return this.winnotice
- },
- getCoupon() {
- return this.coupon
- },
- getAppinfo() {
- return this.appinfo
- },
- getCount() {
- return this.count
- }
- },
- actions: {
- // 检查网络状态
- checkNetworkStatus() {
- uni.getNetworkType({
- success: (result) => {
- const { networkType, errMsg } = result
- if (networkType != 'none') {
- if (this.isFirstConnectNetwork) {
- this.setFirstConnectStatus(false)
- }
- this.setNetworkStatus(true)
- }
- else {
- this.setNetworkStatus(false)
- }
- }
- })
- },
- // 设置网络和连接状态
- setNetworkStatus(status) {
- this.networkStatus = status
- this.isConnected = status
- },
- setFirstConnectStatus(flag) {
- this.isFirstConnectNetwork = flag
- },
- setIsHomeFirstConnect(flag) {
- this.isHomeFirstConnect = flag
- },
- setBanner() {
- return new Promise(async (resolve, reject) => {
- try {
- const res = await GTE_BANNER();
- this.banner = res.data || []
- } catch (error) { }
- })
- },
- setLan(_lan_) {
- this.lang = _lan_
- },
- setCurrency(currency) {
- this.currency = currency;
- this.setSymbol();
- },
- setAppinfo(info) {
- this.appinfo = info
- },
- async setRateList() {
- try {
- const res = await RATE_LIST();
- this.rateList = res.data.currencys;
- this.langeuageList = res.data.langs;
- this.countryCodesList = res.data.countryCodes
- nextTick(() => {
- const lang = res.data.language
- this.initLanguage(lang)
- !getStorage(verConfig.symbol) && this.setSymbol();
- })
- } catch (error) { }
- },
- initLanguage(lang) {
- const useShop = useShopStore();
- const savedLang = getStorage('userLanguage');
- if (!savedLang) {
- setStorage(verConfig.langName, lang);
- this.setLan(lang)
- setLan(lang, () => {
- useShop.setHotLink();
- });
- setStorage('userLanguage', lang);
- }
- },
- setSymbol() {
- let findItem = this.rateList.find((item) => item.code == this.currency);
- setStorage(verConfig.symbol, findItem);
- this.currency = findItem.code;
- this.symbol = findItem
- },
- async service() {
- try {
- const res = await OTHER_CONFIG('system');
- if (!res.data.service_url) return;
- openUrl(res.data.service_url);
- } catch (error) { }
- },
- async setWinnotice() {
- try {
- const res = await CONTENT_WINNOTICE();
- this.winnotice = res.data && res.data[0]
- } catch (error) { }
- },
- async setCoupon(params = {}, other = {}) {
- try {
- const res = await CONTENT_COUPON(params, other);
- this.coupon = res.data && res.data[0]
- } catch (error) { }
- },
- async setBoxes(params = {}) {
- try {
- const res = await CONTENT_BOXES(params);
- this.count = res.data && res.data.count || 0
- } catch (error) { }
- },
- }
- })
|