w-web-api
Version:
A web service for APIs.
114 lines (85 loc) • 2.62 kB
JavaScript
import each from 'lodash-es/each.js'
import set from 'lodash-es/set.js'
import * as types from './types.mjs'
import ds from '../schema/index.mjs'
//state, 全域狀態
let state = {
hostname: `${window.location.origin}`,
webInfor: {},
connState: 'csIng', //'csIng', 'csLogin', 'csLogout', 'csErrConn', 'csErrLogin'
syncState: false,
viewState: 'lists',
loading: false,
settings: {
leftDrawerWidth: 200,
},
heightApp: 0,
heightAppEff: 0,
heightToolbar: 60,
menu: {}, //初始值需為物件, 否則LayoutContent會取menu.key出錯
userToken: '',
user: {
id: '', //id-for-admin
name: '', //測試者
email: '', //admin@example.com
isAdmin: 'n',
},
lang: 'cht', //'eng', 'cht'
kpText: {}, //一定要放在vuex內, 否則無法用broadcast驅動變更語系文字
}
//添加各資料表
each(ds, (v, k) => {
state[k] = null //初始化null
})
//儲存至state
export { state }
//mutations, 同步執行
export let mutations = {
[] (state, webInfor) {
state.webInfor = webInfor
},
[] (state, lang) {
state.lang = lang
},
[] (state, kpText) {
state.kpText = kpText
},
[] (state, connState) {
state.connState = connState
},
[] (state, syncState) {
state.syncState = syncState
},
[] (state, loading) {
state.loading = loading
},
// [types.UpdateViewState] (state, viewState) {
// state.viewState = viewState
// },
[] (state, msg) {
state[msg.tableName] = msg.data
},
[] (state, msg) {
//msg.path內為存取路徑, 需使用set處理
// console.log('UpdateData msg', msg)
set(state, msg.path, msg.data)
},
[] (state, heightApp) {
state.heightApp = heightApp
},
[] (state, heightAppEff) {
state.heightAppEff = heightAppEff
},
[] (state, heightToolbar) {
state.heightToolbar = heightToolbar
},
[] (state, menu) {
state.menu = menu
},
[] (state, userToken) {
state.userToken = userToken
},
[] (state, userSelf) {
state.userSelf = userSelf
},
}