使用vuex
This commit is contained in:
parent
3646554e73
commit
bf89968281
@ -154,39 +154,20 @@ class UsersController extends AbstractController
|
||||
* @apiSuccessExample {json} data:
|
||||
{
|
||||
"userid": 1,
|
||||
"agentid":0,
|
||||
"identity":[
|
||||
"admin"
|
||||
],
|
||||
"token":"MUBhZG1pbkAwRWFGSFhAMTYwODY5MjM0MUBXcVJpQ1Q=",
|
||||
"az":"G",
|
||||
"username":"admin",
|
||||
"nickname":"管理员",
|
||||
"userimg":"http://127.0.0.1:6006/images/other/avatar.png",
|
||||
"identity": [ ],
|
||||
"az": "",
|
||||
"email": "admin@admin.com",
|
||||
"username": "admin@admin.com",
|
||||
"nickname": "admin",
|
||||
"userimg": "",
|
||||
"loginnum": 10,
|
||||
"changepass": 0,
|
||||
"lastip":"172.18.0.1",
|
||||
"lastdate":1608692341,
|
||||
"lineip":"172.18.0.1",
|
||||
"linedate":1608704450,
|
||||
"regip":"127.0.0.1",
|
||||
"regdate":1600856611,
|
||||
"setting":null,
|
||||
"time":1608704450,
|
||||
"setpass":1,
|
||||
|
||||
"service":{
|
||||
"id":1,
|
||||
"type":1,
|
||||
"create_id":1,
|
||||
"created_at":"2020-12-23 14:39:51",
|
||||
"expire_at":"2021-01-23 14:39:51",
|
||||
"type_name":"商业版",
|
||||
"member":10,
|
||||
"network":3
|
||||
},
|
||||
"num_member":3,
|
||||
"num_network":2
|
||||
"lastip": "10.22.22.1",
|
||||
"lastdate": 1622468661,
|
||||
"lineip": "10.22.22.1",
|
||||
"linedate": 1622468661,
|
||||
"regip": "",
|
||||
"regdate": 0,
|
||||
}
|
||||
*/
|
||||
public function info()
|
||||
|
@ -61,8 +61,20 @@ class User extends AbstractModel
|
||||
protected $hidden = [
|
||||
'encrypt',
|
||||
'userpass',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
public function getUsernameAttribute($value)
|
||||
{
|
||||
return $value ?: $this->email;
|
||||
}
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
* @param $value
|
||||
@ -84,7 +96,7 @@ class User extends AbstractModel
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
public function getUseringAttribute($value)
|
||||
public function getUserimgAttribute($value)
|
||||
{
|
||||
return self::userimg($value);
|
||||
}
|
||||
@ -96,7 +108,10 @@ class User extends AbstractModel
|
||||
*/
|
||||
public function getIdentityAttribute($value)
|
||||
{
|
||||
return is_array($value) ? $value : explode(",", trim($value, ","));
|
||||
if (empty($value)) {
|
||||
return [];
|
||||
}
|
||||
return array_filter(is_array($value) ? $value : explode(",", trim($value, ",")));
|
||||
}
|
||||
|
||||
|
||||
@ -256,9 +271,6 @@ class User extends AbstractModel
|
||||
if ($authInfo['timestamp'] + $loginValid > time()) {
|
||||
$row = self::whereUserid($authInfo['userid'])->whereUsername($authInfo['username'])->whereEncrypt($authInfo['encrypt'])->first();
|
||||
if ($row) {
|
||||
if ($row->token) {
|
||||
$timestamp = self::authFind('timestamp', $row->token);
|
||||
if ($timestamp + $loginValid > time()) {
|
||||
$upArray = [];
|
||||
if (Base::getIp() && $row->lineip != Base::getIp()) {
|
||||
$upArray['lineip'] = Base::getIp();
|
||||
@ -275,8 +287,6 @@ class User extends AbstractModel
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $_A["__static_auth"] = false;
|
||||
}
|
||||
|
||||
|
@ -19,12 +19,6 @@
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.checkToken();
|
||||
//
|
||||
if ($A.getToken() !== false) {
|
||||
$A.getUserInfo(true);
|
||||
}
|
||||
//
|
||||
let hash = window.location.hash;
|
||||
if (hash.indexOf("#") === 0) {
|
||||
hash = hash.substr(1);
|
||||
@ -56,23 +50,6 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
checkToken() {
|
||||
let token = $A.urlParameter("token");
|
||||
if ($A.count(token) > 10) {
|
||||
$.setToken(decodeURIComponent(token));
|
||||
$A.getUserInfo(true);
|
||||
let path = $A.removeURLParameter(window.location.href, 'token');
|
||||
let uri = document.createElement('a');
|
||||
uri.href = path;
|
||||
if (uri.pathname) {
|
||||
let query = $A.urlParameterAll();
|
||||
if (typeof query['token'] !== "undefined") delete query['token'];
|
||||
this.$nextTick(() => {
|
||||
this.goForward({path: uri.pathname, query}, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
slideType(To, From) {
|
||||
let isBack = this.$router.isBack;
|
||||
this.$router.isBack = false;
|
||||
|
4
resources/assets/js/app.js
vendored
4
resources/assets/js/app.js
vendored
@ -5,17 +5,15 @@ import routes from './routes'
|
||||
import VueRouter from 'vue-router'
|
||||
import ViewUI from 'view-design-hi';
|
||||
import Language from './language/index'
|
||||
import Mixins from './mixins/index'
|
||||
import store from './store/index'
|
||||
|
||||
import './functions/common'
|
||||
import './functions/app'
|
||||
import './functions/web'
|
||||
|
||||
Vue.use(Vuex);
|
||||
Vue.use(ViewUI);
|
||||
Vue.use(VueRouter);
|
||||
Vue.use(Language);
|
||||
Vue.use(Mixins);
|
||||
|
||||
import PageTitle from './components/PageTitle.vue'
|
||||
import Loading from './components/Loading.vue'
|
||||
|
@ -362,7 +362,7 @@
|
||||
return {
|
||||
actionUrl: $A.apiUrl('system/imgupload'),
|
||||
params: {
|
||||
token: $A.getToken(),
|
||||
token: this.$store.state.userToken,
|
||||
width: this.width,
|
||||
height: this.height
|
||||
},
|
||||
@ -518,7 +518,7 @@
|
||||
$A.noticeWarning(this.$L('最多只能上传 ' + this.maxNum + ' 张图片。'));
|
||||
}
|
||||
this.params = {
|
||||
token: $A.getToken(),
|
||||
token: this.$store.state.userToken,
|
||||
width: this.width,
|
||||
height: this.height
|
||||
};
|
||||
|
@ -217,7 +217,7 @@
|
||||
uploadIng: 0,
|
||||
uploadFormat: ['jpg', 'jpeg', 'png', 'gif', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'esp', 'pdf', 'rar', 'zip', 'gz'],
|
||||
actionUrl: $A.apiUrl('system/fileupload'),
|
||||
params: { token: $A.getToken() },
|
||||
params: { token: this.$store.state.userToken },
|
||||
maxSize: 10240
|
||||
};
|
||||
},
|
||||
@ -553,7 +553,7 @@
|
||||
handleBeforeUpload() {
|
||||
//上传前判断
|
||||
this.params = {
|
||||
token: $A.getToken(),
|
||||
token: this.$store.state.userToken,
|
||||
};
|
||||
return true;
|
||||
},
|
||||
|
15
resources/assets/js/functions/common.js
vendored
15
resources/assets/js/functions/common.js
vendored
@ -29,20 +29,6 @@
|
||||
return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && typeof obj.length == "undefined";
|
||||
},
|
||||
|
||||
/**
|
||||
* 身份识别码
|
||||
* @param text
|
||||
* @returns {*|string}
|
||||
*/
|
||||
token: function (text) {
|
||||
let token = this.storage('token') || '';
|
||||
if (typeof text === 'string') {
|
||||
this.storage('token', text);
|
||||
token = text;
|
||||
}
|
||||
return token;
|
||||
},
|
||||
|
||||
/**
|
||||
* 随机获取范围
|
||||
* @param Min
|
||||
@ -1334,7 +1320,6 @@
|
||||
if (typeof params.header !== 'object') params.header = {};
|
||||
params.header['Content-Type'] = 'application/json';
|
||||
params.header['language'] = language;
|
||||
params.header['token'] = $A.token();
|
||||
//
|
||||
params.data['__Access-Control-Allow-Origin'] = true;
|
||||
params.beforeSend();
|
||||
|
@ -39,6 +39,7 @@
|
||||
if (typeof params.success === 'undefined') params.success = () => { };
|
||||
if (typeof params.header !== 'object') params.header = {};
|
||||
params.url = this.apiUrl(params.url);
|
||||
params.header['token'] = $A.app.$store.state.userToken;
|
||||
//
|
||||
let beforeCall = params.beforeSend;
|
||||
params.beforeSend = () => {
|
||||
@ -165,60 +166,6 @@
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取token
|
||||
* @returns {boolean}
|
||||
*/
|
||||
getToken() {
|
||||
let token = $A.token();
|
||||
return $A.count(token) < 10 ? false : token;
|
||||
},
|
||||
|
||||
/**
|
||||
* 设置token
|
||||
* @param token
|
||||
*/
|
||||
setToken(token) {
|
||||
$A.token(token);
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取会员ID
|
||||
* @returns string
|
||||
*/
|
||||
getUserId() {
|
||||
if ($A.getToken() === false) {
|
||||
return "";
|
||||
}
|
||||
let userInfo = $A.getUserInfo();
|
||||
return $A.runNum(userInfo.userid);
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取会员账号
|
||||
* @returns string
|
||||
*/
|
||||
getUserName() {
|
||||
if ($A.getToken() === false) {
|
||||
return "";
|
||||
}
|
||||
let userInfo = $A.getUserInfo();
|
||||
return $A.ishave(userInfo.username) ? userInfo.username : '';
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取会员昵称
|
||||
* @param nullName
|
||||
* @returns {string|*}
|
||||
*/
|
||||
getNickName(nullName = true) {
|
||||
if ($A.getToken() === false) {
|
||||
return "";
|
||||
}
|
||||
let userInfo = $A.getUserInfo();
|
||||
return $A.ishave(userInfo.nickname) ? userInfo.nickname : '';
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取用户信息(并保存)
|
||||
* @param callback 网络请求获取到用户信息回调(监听用户信息发生变化)
|
||||
@ -233,20 +180,18 @@
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.ret === 1) {
|
||||
$A.storage("userInfo", res.data);
|
||||
$A.setToken(res.data.token);
|
||||
$A.triggerUserInfoListener(res.data);
|
||||
$A.app.$store.commit('setUserInfo', res.data);
|
||||
$A.updateUserBasic({
|
||||
username: res.data.username,
|
||||
nickname: res.data.nickname,
|
||||
userimg: res.data.userimg,
|
||||
});
|
||||
typeof callback === "function" && callback(res.data, $A.getToken() !== false);
|
||||
typeof callback === "function" && callback(res.data, $A.app.$store.state.userToken);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
return $A.jsonParse($A.storage("userInfo"));
|
||||
return $A.app.$store.state.userInfo;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -406,15 +351,9 @@
|
||||
* 打开登录页面
|
||||
*/
|
||||
userLogout() {
|
||||
$A.token("");
|
||||
$A.storage("userInfo", {});
|
||||
$A.triggerUserInfoListener({});
|
||||
let from = window.location.pathname == '/' ? '' : encodeURIComponent(window.location.href);
|
||||
if (typeof $A.app === "object") {
|
||||
$A.app.goForward({path: '/users/login', query: from ? {from: from} : {}}, true);
|
||||
} else {
|
||||
window.location.replace($A.webUrl('users/login') + (from ? ('?from=' + from) : ''));
|
||||
}
|
||||
const from = window.location.pathname == '/' ? '' : encodeURIComponent(window.location.href);
|
||||
$A.app.$store.commit('setUserInfo', {});
|
||||
$A.app.goForward({path: '/login', query: from ? {from: from} : {}}, true);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -423,7 +362,7 @@
|
||||
* @returns {boolean}
|
||||
*/
|
||||
identityCheck(role) {
|
||||
let userInfo = $A.getUserInfo();
|
||||
const userInfo = $A.app.$store.state.userInfo;
|
||||
return $A.identityRaw(role, userInfo.identity);
|
||||
},
|
||||
|
||||
@ -442,41 +381,6 @@
|
||||
});
|
||||
return isRole;
|
||||
},
|
||||
|
||||
/**
|
||||
* 监听用户信息发生变化
|
||||
* @param listenerName 监听标识
|
||||
* @param callback 监听回调
|
||||
*/
|
||||
setOnUserInfoListener(listenerName, callback) {
|
||||
if (typeof listenerName != "string") {
|
||||
return;
|
||||
}
|
||||
if (typeof callback === "function") {
|
||||
$A.__userInfoListenerObject[listenerName] = {
|
||||
callback: callback,
|
||||
}
|
||||
}
|
||||
},
|
||||
removeUserInfoListener(listenerName) {
|
||||
if (typeof listenerName != "string") {
|
||||
return;
|
||||
}
|
||||
if (typeof $A.__userInfoListenerObject[listenerName] != "undefined") {
|
||||
delete $A.__userInfoListenerObject[listenerName];
|
||||
}
|
||||
},
|
||||
triggerUserInfoListener(userInfo) {
|
||||
let key, item;
|
||||
for (key in $A.__userInfoListenerObject) {
|
||||
if (!$A.__userInfoListenerObject.hasOwnProperty(key)) continue;
|
||||
item = $A.__userInfoListenerObject[key];
|
||||
if (typeof item.callback === "function") {
|
||||
item.callback(userInfo, $A.getToken() !== false);
|
||||
}
|
||||
}
|
||||
},
|
||||
__userInfoListenerObject: {},
|
||||
});
|
||||
|
||||
/**
|
||||
@ -829,9 +733,9 @@
|
||||
url+= "/ws";
|
||||
}
|
||||
let config = {
|
||||
userid: $A.getUserId(),
|
||||
userid: $A.app.$store.state.userInfo.userid,
|
||||
url: url,
|
||||
token: $A.getToken(),
|
||||
token: $A.app.$store.state.userToken,
|
||||
};
|
||||
if (window.webSocketConfig.DEBUG) {
|
||||
config.logCallback = function (msg) {
|
55
resources/assets/js/mixins/index.js
vendored
55
resources/assets/js/mixins/index.js
vendored
@ -1,55 +0,0 @@
|
||||
export default {
|
||||
install(Vue) {
|
||||
Vue.mixin({
|
||||
data() {
|
||||
return {
|
||||
mixinId: 0,
|
||||
//用户信息
|
||||
userLogin: false,
|
||||
userInfo: {},
|
||||
userName: '',
|
||||
userId: 0,
|
||||
//浏览器宽度≤768返回true
|
||||
windowMax768: window.innerWidth <= 768,
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
if (typeof window.__mixinId != "number") window.__mixinId = 0;
|
||||
this.mixinId = window.__mixinId++;
|
||||
//
|
||||
this.userLogin = $A.getToken() !== false;
|
||||
this.userInfo = $A.getUserInfo();
|
||||
this.userName = this.userInfo.username || '';
|
||||
this.userId = parseInt(this.userInfo.userid);
|
||||
$A.setOnUserInfoListener('mixins_' + this.mixinId, (data, isLogin) => {
|
||||
this.userLogin = isLogin;
|
||||
this.userInfo = data;
|
||||
this.userName = this.userInfo.username || '';
|
||||
this.userId = parseInt(this.userInfo.userid);
|
||||
});
|
||||
//
|
||||
window.addEventListener('resize', this.windowMax768Listener);
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
$A.removeUserInfoListener('mixins_' + this.mixinId);
|
||||
window.removeEventListener('resize', this.windowMax768Listener);
|
||||
},
|
||||
|
||||
methods: {
|
||||
isArray(obj) {
|
||||
return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == '[object array]' && typeof obj.length == "number";
|
||||
},
|
||||
|
||||
isJson(obj) {
|
||||
return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && typeof obj.length == "undefined";
|
||||
},
|
||||
|
||||
windowMax768Listener() {
|
||||
this.windowMax768 = window.innerWidth <= 768
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -173,7 +173,7 @@ export default {
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.ret === 1) {
|
||||
this.$store.commit('userInfo', res.data);
|
||||
this.$store.commit('setUserInfo', res.data);
|
||||
//
|
||||
this.goNext();
|
||||
} else {
|
||||
|
@ -12,7 +12,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<Icon type="md-cog" />
|
||||
<div class="menu-title">Settings</div>
|
||||
<div class="menu-title">Setting</div>
|
||||
</li>
|
||||
<li>
|
||||
<Icon type="md-calendar" />
|
||||
@ -195,7 +195,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
$A.getUserInfo(true);
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
17
resources/assets/js/pages/manage/calendar.vue
Normal file
17
resources/assets/js/pages/manage/calendar.vue
Normal file
@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<div class="calendar">
|
||||
<PageTitle>{{$L('Calendar')}}</PageTitle>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
@ -10,7 +10,7 @@
|
||||
<li class="project-icon">
|
||||
<Icon type="ios-search-outline" />
|
||||
</li>
|
||||
<li class="project-icon" @click="$store.commit('projectChatShowToggle');">
|
||||
<li class="project-icon" @click="$store.commit('toggleProjectChatShow');">
|
||||
<Icon type="ios-chatbubbles-outline" />
|
||||
<Badge :count="999"></Badge>
|
||||
</li>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<div>dashboard</div>
|
||||
<div class="dashboard">
|
||||
<PageTitle>{{$L('Dashboard')}}</PageTitle>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
17
resources/assets/js/pages/manage/setting.vue
Normal file
17
resources/assets/js/pages/manage/setting.vue
Normal file
@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<div class="setting">
|
||||
<PageTitle>{{$L('Setting')}}</PageTitle>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
10
resources/assets/js/routes.js
vendored
10
resources/assets/js/routes.js
vendored
@ -17,6 +17,16 @@ export default [
|
||||
path: 'dashboard',
|
||||
component: () => import('./pages/manage/dashboard.vue'),
|
||||
},
|
||||
{
|
||||
name: 'manage-calendar',
|
||||
path: 'calendar',
|
||||
component: () => import('./pages/manage/calendar.vue'),
|
||||
},
|
||||
{
|
||||
name: 'manage-setting',
|
||||
path: 'setting',
|
||||
component: () => import('./pages/manage/setting.vue'),
|
||||
},
|
||||
{
|
||||
name: 'manage-project-detail',
|
||||
path: 'project/:id',
|
||||
|
13
resources/assets/js/store/mutations.js
vendored
13
resources/assets/js/store/mutations.js
vendored
@ -1,11 +1,14 @@
|
||||
export default {
|
||||
projectChatShowToggle(state) {
|
||||
toggleProjectChatShow(state) {
|
||||
state.projectChatShow = !state.projectChatShow
|
||||
state.setStorage('projectChatShow', state.projectChatShow);
|
||||
},
|
||||
userInfo(state, info) {
|
||||
state.userInfo = info
|
||||
state.setStorage('userInfo', info);
|
||||
state.setStorage('token', state._isJson(info) ? info.token : '');
|
||||
setUserInfo(state, info) {
|
||||
const userInfo = state._cloneJSON(info);
|
||||
userInfo.userid = state._runNum(userInfo.userid);
|
||||
userInfo.token = userInfo.userid > 0 ? (userInfo.token || state.userToken) : '';
|
||||
state.userInfo = userInfo;
|
||||
state.userToken = userInfo.token;
|
||||
state.setStorage('userInfo', state.userInfo);
|
||||
}
|
||||
}
|
||||
|
86
resources/assets/js/store/state.js
vendored
86
resources/assets/js/store/state.js
vendored
@ -1,4 +1,4 @@
|
||||
const state = {
|
||||
const stateCommon = {
|
||||
setStorage(key, value) {
|
||||
return this._storage(key, value);
|
||||
},
|
||||
@ -85,10 +85,86 @@ const state = {
|
||||
return def;
|
||||
}
|
||||
},
|
||||
|
||||
_count(obj) {
|
||||
try {
|
||||
if (typeof obj === "undefined") {
|
||||
return 0;
|
||||
}
|
||||
if (typeof obj === "number") {
|
||||
obj += "";
|
||||
}
|
||||
if (typeof obj.length === 'number') {
|
||||
return obj.length;
|
||||
} else {
|
||||
let i = 0, key;
|
||||
for (key in obj) {
|
||||
i++;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
} catch (e) {
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
|
||||
_runNum(str, fixed) {
|
||||
let _s = Number(str);
|
||||
if (_s + "" === "NaN") {
|
||||
_s = 0;
|
||||
}
|
||||
if (/^[0-9]*[1-9][0-9]*$/.test(fixed)) {
|
||||
_s = _s.toFixed(fixed);
|
||||
let rs = _s.indexOf('.');
|
||||
if (rs < 0) {
|
||||
_s += ".";
|
||||
for (let i = 0; i < fixed; i++) {
|
||||
_s += "0";
|
||||
}
|
||||
}
|
||||
}
|
||||
return _s;
|
||||
},
|
||||
|
||||
_cloneJSON(myObj) {
|
||||
if(typeof(myObj) !== 'object') return myObj;
|
||||
if(myObj === null) return myObj;
|
||||
return this._jsonParse(this._jsonStringify(myObj))
|
||||
},
|
||||
|
||||
_jsonParse(str, defaultVal) {
|
||||
if (str === null) {
|
||||
return defaultVal ? defaultVal : {};
|
||||
}
|
||||
if (typeof str === "object") {
|
||||
return str;
|
||||
}
|
||||
try {
|
||||
return JSON.parse(str.replace(/\n/g,"\\n").replace(/\r/g,"\\r"));
|
||||
} catch (e) {
|
||||
return defaultVal ? defaultVal : {};
|
||||
}
|
||||
},
|
||||
|
||||
_jsonStringify(json, defaultVal) {
|
||||
if (typeof json !== 'object') {
|
||||
return json;
|
||||
}
|
||||
try{
|
||||
return JSON.stringify(json);
|
||||
}catch (e) {
|
||||
return defaultVal ? defaultVal : "";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default Object.assign(state, {
|
||||
projectChatShow: state.getStorageBoolean('projectChatShow', true),
|
||||
userInfo: state.getStorageJson('userInfo'),
|
||||
token: state.getStorageString('token'),
|
||||
const projectChatShow = stateCommon.getStorageBoolean('projectChatShow', true);
|
||||
const userInfo = stateCommon.getStorageJson('userInfo');
|
||||
const userToken = userInfo.token;
|
||||
userInfo.userid = stateCommon._runNum(userInfo.userid);
|
||||
|
||||
export default Object.assign(stateCommon, {
|
||||
projectChatShow,
|
||||
userInfo,
|
||||
userToken,
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user