tian-yan-yan
Version:
一套不算好用的组件
115 lines (103 loc) • 3.31 kB
JavaScript
/*
* 产品依赖的全局基础数据
* @author: 张文
* @date 2022-05-05
* */
import {at, set} from "lodash/object";
import {isArray} from "lodash/lang";
import {DeepCopy} from "./DeepCopy";
export function tyWindowGlobalData(){
let tyGlobalData = {
// 条码解析规则
barcodeResolveRule: {},
// 字典数据
dict: {},
// token
token: null,
// 仓库信息
warehouse: {},
// 平台请求接口的路径地址
apiUrl: '',
// 已经配置的打印机列表
printList: [],
// 权限列表
permissions: {
// 获取权限的额外参数
query:[],
// 权限数据
data:[]
},
// 输入框DOM
input:{},
// 底部导航栏数据
tabBar:{},
// 菜单数据
menu:[],
// 语言
language: {
key:'',
data:{}
},
// app返回的路由
appBackRoute:[],
// 时区
timezone: {
'UTC': {timezone: 'UTC', offset: 0},
'UTC+1': {timezone: 'UTC+1', offset: 60},
'UTC+2': {timezone: 'UTC+2', offset: 120},
'UTC+3': {timezone: 'UTC+3', offset: 180},
'UTC+4': {timezone: 'UTC+4', offset: 240},
'UTC+5': {timezone: 'UTC+5', offset: 300},
'UTC+6': {timezone: 'UTC+6', offset: 360},
'UTC+7': {timezone: 'UTC+7', offset: 420},
'UTC+8': {timezone: 'UTC+8', offset: 480},
'UTC+9': {timezone: 'UTC+9', offset: 540},
'UTC+10': {timezone: 'UTC+10', offset: 600},
'UTC+11': {timezone: 'UTC+11', offset: 660},
'UTC-1': {timezone: 'UTC-1', offset: -60},
'UTC-2': {timezone: 'UTC-2', offset: -120},
'UTC-3': {timezone: 'UTC-3', offset: -180},
'UTC-4': {timezone: 'UTC-4', offset: -240},
'UTC-5': {timezone: 'UTC-5', offset: -300},
'UTC-6': {timezone: 'UTC-6', offset: -360},
'UTC-7': {timezone: 'UTC-7', offset: -420},
'UTC-8': {timezone: 'UTC-8', offset: -480},
'UTC-9': {timezone: 'UTC-9', offset: -540},
'UTC-10': {timezone: 'UTC-10', offset: -600},
'UTC-11': {timezone: 'UTC-11', offset: -660},
}
}
// 初始化时获取本地储存的仓库信息
tyGlobalData.warehouse = JSON.parse(window.sessionStorage.getItem('tyWarehouse')) || {}
return {
/**
* 设置全局数据的某一项数据
* @author 张文
* @param key 需要设置的数据key
* @param data 需要设置的数据
* */
set(key, data) {
// 文档:https://www.lodashjs.com/docs/lodash.set
set(tyGlobalData, key, data)
},
/**
* 获取全局数据的某一项数据
* @author 张文
* @param {String|Array} key 需要获取数据的key,为空时候返回全部数据
* @param {Boolean} isDeep 获取的结果是否需要深拷贝
* @return {*} 获取到的数据
* */
get(key = null, isDeep = true) {
let data = null
if (key) {
// 文档:https://www.lodashjs.com/docs/lodash.at
let aData = at(tyGlobalData, key)
// 文档:https://www.lodashjs.com/docs/lodash.isArray
data = isArray(key) ? aData : aData[0]
} else {
data = tyGlobalData
}
return isDeep ? DeepCopy(data) : data
},
}
}