Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
app-manage-console
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
ReactNative
app-manage-console
Commits
48734dd4
提交
48734dd4
authored
11月 27, 2017
作者:
vipcxj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加操作历史记录相关api
上级
d8819186
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
152 行增加
和
1 行删除
+152
-1
auth.js
src/utils/auth.js
+92
-0
config.js
src/utils/config.js
+1
-0
db.js
src/utils/db.js
+59
-1
没有找到文件。
src/utils/auth.js
浏览文件 @
48734dd4
/* eslint-disable no-param-reassign */
/**
* Created by yaohx_169 on 2017/6/8.
*/
import
{
cookie
}
from
'./config'
;
import
{
getCookie
,
setCookie
,
delCookie
}
from
'./helper'
;
import
db
from
'./db'
;
export
async
function
getToken
()
{
return
getCookie
(
cookie
.
token
);
...
...
@@ -57,3 +59,93 @@ export async function isAuthed() {
export
async
function
hasDomain
()
{
return
getDomain
().
then
(
result
=>
!!
result
);
}
const
normHistory
=
(
history
)
=>
{
if
(
!
history
)
{
history
=
{};
}
if
(
!
history
.
size
)
{
history
.
size
=
10
;
}
if
(
history
.
size
<
1
)
{
history
.
size
=
1
;
}
if
(
!
history
.
data
)
{
history
.
data
=
[];
history
.
start
=
0
;
history
.
top
=
0
;
history
.
empty
=
true
;
}
return
history
;
};
const
next
=
(
i
,
size
)
=>
{
if
(
i
<
0
||
i
>=
size
)
{
throw
new
Error
(
`out of range:
${
i
}
in
${
size
}
`
);
}
if
(
i
+
1
>=
size
)
{
return
0
;
}
else
{
return
i
+
1
;
}
};
const
prev
=
(
i
,
size
)
=>
{
if
(
i
<
0
||
i
>=
size
)
{
throw
new
Error
(
`out of range:
${
i
}
in
${
size
}
`
);
}
if
(
i
-
i
<
0
)
{
return
size
-
1
;
}
else
{
return
i
-
1
;
}
};
export
const
histories
=
{
async
getLatest
(
name
)
{
let
history
=
await
db
.
get
(
`history.
${
name
}
`
).
value
();
history
=
normHistory
(
history
);
if
(
history
.
empty
)
{
return
null
;
}
return
history
.
data
[
prev
(
history
.
top
,
history
.
size
)];
},
async
getHistory
(
name
)
{
let
history
=
db
.
get
(
`history.
${
name
}
`
).
value
();
history
=
normHistory
(
history
);
if
(
history
.
empty
)
{
return
[];
}
else
if
(
history
.
top
>
history
.
start
)
{
return
history
.
data
.
slice
(
history
.
start
,
history
.
top
);
}
else
{
return
[...
history
.
data
.
slice
(
history
.
start
,
history
.
size
),
...
history
.
data
.
slice
(
0
,
history
.
top
)];
}
},
async
pushHistory
(
name
,
value
)
{
let
history
=
await
db
.
get
(
`history.
${
name
}
`
).
value
();
history
=
normHistory
(
history
);
history
.
data
[
history
.
top
]
=
value
;
const
nextPos
=
next
(
history
.
top
,
history
.
size
);
if
(
!
history
.
empty
&&
history
.
start
===
history
.
top
)
{
history
.
top
=
history
.
start
=
nextPos
;
}
else
{
history
.
top
=
nextPos
;
}
if
(
history
.
empty
)
{
history
.
empty
=
false
;
}
return
db
.
set
(
`history.
${
name
}
`
,
history
).
write
();
},
async
popHistory
(
name
)
{
let
history
=
await
db
.
get
(
`history.
${
name
}
`
).
value
();
history
=
normHistory
(
history
);
if
(
history
.
empty
)
{
return
;
}
history
.
top
=
prev
(
history
.
top
,
history
.
size
);
if
(
history
.
top
===
history
.
start
)
{
history
.
empty
=
true
;
}
return
db
.
set
(
`history.
${
name
}
`
,
history
).
write
();
},
};
src/utils/config.js
浏览文件 @
48734dd4
...
...
@@ -46,6 +46,7 @@ const config = {
contextPath
:
_contextPath
,
apiContextPath
:
_apiContextPath
,
productId
:
'big-machine-web-front'
,
fastNavigationPage
:
''
,
defaultDateFormat
,
defaultTimeFormat
,
defaultDateTimeFormat
,
...
...
src/utils/db.js
浏览文件 @
48734dd4
/** @module utils/db */
import
low
from
'lowdb'
;
import
LocalStorage
from
'lowdb/adapters/LocalStorage'
;
const
adapter
=
new
LocalStorage
(
'db'
);
export
default
low
(
adapter
);
/**
* @typedef {Object} DB
* @template {T}
*/
/**
* @member {Function} DB~get
* @param {Array.<string>|string} path
* @param {*} [defaultValue]
* @return {DB.<*>}
*/
/**
* @member {Function} DB~set
* @template {T}
* @param {Array.<string>|string} path
* @param {T} value
* @return {DB.<T>}
*/
/**
* @member {Function} DB~find
* @template {T}
* @param {Function} [predicate=_.identity]
* @param {number} [fromIndex=0]
* @return {DB.<T>}
*/
/**
* @member {Function} DB~unset
* @param {Array.<string>|string} path
* @return {DB.<boolean>}
*/
/**
* @member {Function} DB~read
* @return {Promise.<*>}
*/
/**
* @member {Function} DB~write
* @return {Promise.<*>}
*/
/**
* @member {Function} DB~value
* @template {T}
* @return {Promise.<T>}
*/
/**
* @type {DB.<*>}
*/
const
db
=
low
(
adapter
);
export
default
db
;
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论