From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 28 五月 2025 16:48:52 +0800 Subject: [PATCH] 初始化项目 --- store/index.js | 78 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 0 deletions(-) diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..ef462f7 --- /dev/null +++ b/store/index.js @@ -0,0 +1,78 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + */ +import config from '@/common/config.js'; +import Vue from 'vue' +import Vuex from 'vuex' +Vue.use(Vuex) +//钃濈墮璁剧疆 +import Bluetooth from '@/store/bluetooth/index.js' + +let lifeData = {}; + +try{ + // 灏濊瘯鑾峰彇鏈湴鏄惁瀛樺湪lifeData鍙橀噺锛岀涓�娆″惎鍔ˋPP鏃舵槸涓嶅瓨鍦ㄧ殑 + lifeData = uni.getStorageSync('lifeData'); +}catch(e){ + +} + +// 闇�瑕佹案涔呭瓨鍌紝涓斾笅娆PP鍚姩闇�瑕佸彇鍑虹殑锛屽湪state涓殑鍙橀噺鍚� +let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_remember', 'vuex_locale','vuex_username','vuex_userId','vuex_client_id','vuex_config']; + +// 淇濆瓨鍙橀噺鍒版湰鍦板瓨鍌ㄤ腑 +const saveLifeData = function(key, value){ + // 鍒ゆ柇鍙橀噺鍚嶆槸鍚﹀湪闇�瑕佸瓨鍌ㄧ殑鏁扮粍涓� + if(saveStateKeys.indexOf(key) != -1) { + // 鑾峰彇鏈湴瀛樺偍鐨刲ifeData瀵硅薄锛屽皢鍙橀噺娣诲姞鍒板璞′腑 + let tmp = uni.getStorageSync('lifeData'); + // 绗竴娆℃墦寮�APP锛屼笉瀛樺湪lifeData鍙橀噺锛屾晠鏀句竴涓獅}绌哄璞� + tmp = tmp ? tmp : {}; + tmp[key] = value; + // 鎵ц杩欎竴姝ュ悗锛屾墍鏈夐渶瑕佸瓨鍌ㄧ殑鍙橀噺锛岄兘鎸傝浇鍦ㄦ湰鍦扮殑lifeData瀵硅薄涓� + uni.setStorageSync('lifeData', tmp); + } +} +// 绠�鍖� vuex 鎿嶄綔锛屾枃妗o細https://uviewui.com/components/vuexDetail.html +const store = new Vuex.Store({ + modules: { + Bluetooth + }, + state: { + // 濡傛灉涓婇潰浠庢湰鍦拌幏鍙栫殑lifeData瀵硅薄涓嬫湁瀵瑰簲鐨勫睘鎬э紝灏辫祴鍊肩粰state涓搴旂殑鍙橀噺 + // 鍔犱笂vuex_鍓嶇紑锛屾槸闃叉鍙橀噺鍚嶅啿绐侊紝涔熻浜轰竴鐩簡鐒� + vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {userName: 'pig'}, + vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '', + vuex_remember: lifeData.vuex_remember ? lifeData.vuex_remember : '', + vuex_locale: lifeData.vuex_locale ? lifeData.vuex_locale : '', + vuex_refresh_token:lifeData.vuex_refresh_token ? lifeData.vuex_refresh_token : '', + vuex_username:lifeData.vuex_username ? lifeData.vuex_username : '', + vuex_userId:lifeData.vuex_userId ? lifeData.vuex_userId : '', + vuex_client_id:lifeData.vuex_client_id ? lifeData.vuex_client_id : '', + vuex_config: lifeData.vuex_config ? lifeData.vuex_config : config, + }, + mutations: { + $uStore(state, payload) { + // 鍒ゆ柇鏄惁澶氬眰绾ц皟鐢紝state涓负瀵硅薄瀛樺湪鐨勬儏鍐碉紝璇稿user.info.score = 1 + let nameArr = payload.name.split('.'); + let saveKey = ''; + let len = nameArr.length; + if(len >= 2) { + let obj = state[nameArr[0]]; + for(let i = 1; i < len - 1; i ++) { + obj = obj[nameArr[i]]; + } + obj[nameArr[len - 1]] = payload.value; + saveKey = nameArr[0]; + } else { + // 鍗曞眰绾у彉閲忥紝鍦╯tate灏辨槸涓�涓櫘閫氬彉閲忕殑鎯呭喌 + state[payload.name] = payload.value; + saveKey = payload.name; + } + // 淇濆瓨鍙橀噺鍒版湰鍦帮紝瑙侀《閮ㄥ嚱鏁板畾涔� + saveLifeData(saveKey, state[saveKey]) + } + } +}) + +export default store -- Gitblit v1.9.3