Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
f646e377
Commit
f646e377
authored
Dec 15, 2020
by
vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: axios add joinTime field
parent
c774a6d3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
65 additions
and
35 deletions
+65
-35
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+7
-1
useDrawer.ts
src/components/Drawer/src/useDrawer.ts
+1
-1
useModal.ts
src/components/Modal/src/useModal.ts
+1
-1
dateUtil.ts
src/utils/dateUtil.ts
+0
-24
helper.ts
src/utils/http/axios/helper.ts
+45
-0
index.ts
src/utils/http/axios/index.ts
+8
-8
types.ts
src/utils/http/axios/types.ts
+2
-0
vite.config.ts
vite.config.ts
+1
-0
No files found.
CHANGELOG.zh_CN.md
View file @
f646e377
...
...
@@ -3,7 +3,8 @@
### ✨ Features
-
移除左侧菜单搜索,新增顶部菜单搜索功能
-
layout 移动端适配。页面未适配
-
layout 移动端适配。业务页面未适配
-
axios 加入 joinTime 配置。控制响应是否加入时间戳
### ⚡ Performance Improvements
...
...
@@ -19,6 +20,10 @@
-
刷新按钮布局调整
-
`route.meta`
移除
`externalLink`
属性
### ✨ Refactor
-
`openModal`
与
`openDrawer`
第三个参数
`openOnSet`
默认设置为 true
### 🐛 Bug Fixes
-
修复多级路由缓存导致组件渲染多次的问题
...
...
@@ -31,6 +36,7 @@
-
修复
`Modal`
与
`Drawer`
组件在使用 emits 数据传递失效问题
-
修复菜单已知问题
-
修复上传组件 api 失效问题
-
修复菜单权限过滤失效问题
## 2.0.0-rc.13 (2020-12-10)
...
...
src/components/Drawer/src/useDrawer.ts
View file @
f646e377
...
...
@@ -56,7 +56,7 @@ export function useDrawer(): UseDrawerReturnType {
getInstance
().
setDrawerProps
(
props
);
},
openDrawer
:
<
T
=
any
>
(
visible
=
true
,
data
?:
T
,
openOnSet
=
fals
e
):
void
=>
{
openDrawer
:
<
T
=
any
>
(
visible
=
true
,
data
?:
T
,
openOnSet
=
tru
e
):
void
=>
{
getInstance
().
setDrawerProps
({
visible
:
visible
,
});
...
...
src/components/Modal/src/useModal.ts
View file @
f646e377
...
...
@@ -60,7 +60,7 @@ export function useModal(): UseModalReturnType {
getInstance
().
setModalProps
(
props
);
},
openModal
:
<
T
=
any
>
(
visible
=
true
,
data
?:
T
,
openOnSet
=
fals
e
):
void
=>
{
openModal
:
<
T
=
any
>
(
visible
=
true
,
data
?:
T
,
openOnSet
=
tru
e
):
void
=>
{
getInstance
().
setModalProps
({
visible
:
visible
,
});
...
...
src/utils/dateUtil.ts
View file @
f646e377
import
{
isObject
,
isString
}
from
'
/@/utils/is
'
;
import
moment
from
'
moment
'
;
const
DATE_TIME_FORMAT
=
'
YYYY-MM-DD HH:mm
'
;
...
...
@@ -34,28 +33,5 @@ export const formatAgo = (str: string | number) => {
return
parseInt
(
String
(
time
/
31536000000
))
+
'
年前
'
;
}
};
/**
* @description: 格式化请求参数时间
*/
export
function
formatRequestDate
(
params
:
any
)
{
for
(
const
key
in
params
)
{
if
(
params
[
key
]
&&
params
[
key
].
_isAMomentObject
)
{
params
[
key
]
=
params
[
key
].
format
(
DATE_TIME_FORMAT
);
}
if
(
isString
(
key
))
{
const
value
=
params
[
key
];
if
(
value
)
{
try
{
params
[
key
]
=
isString
(
value
)
?
value
.
trim
()
:
value
;
}
catch
(
error
)
{
throw
new
Error
(
error
);
}
}
}
if
(
isObject
(
params
[
key
]))
{
formatRequestDate
(
params
[
key
]);
}
}
}
export
const
dateUtil
=
moment
;
src/utils/http/axios/helper.ts
0 → 100644
View file @
f646e377
import
{
isObject
,
isString
}
from
'
/@/utils/is
'
;
export
function
createNow
<
T
extends
boolean
>
(
join
:
boolean
,
restful
:
T
):
T
extends
true
?
string
:
object
;
export
function
createNow
(
join
:
boolean
,
restful
=
false
):
string
|
object
{
if
(
!
join
)
{
return
restful
?
''
:
{};
}
const
now
=
new
Date
().
getTime
();
if
(
restful
)
{
return
`?_t=
${
now
}
`
;
}
return
{
_t
:
now
,
};
}
const
DATE_TIME_FORMAT
=
'
YYYY-MM-DD HH:mm
'
;
/**
* @description: 格式化请求参数时间
*/
export
function
formatRequestDate
(
params
:
any
)
{
for
(
const
key
in
params
)
{
if
(
params
[
key
]
&&
params
[
key
].
_isAMomentObject
)
{
params
[
key
]
=
params
[
key
].
format
(
DATE_TIME_FORMAT
);
}
if
(
isString
(
key
))
{
const
value
=
params
[
key
];
if
(
value
)
{
try
{
params
[
key
]
=
isString
(
value
)
?
value
.
trim
()
:
value
;
}
catch
(
error
)
{
throw
new
Error
(
error
);
}
}
}
if
(
isObject
(
params
[
key
]))
{
formatRequestDate
(
params
[
key
]);
}
}
}
src/utils/http/axios/index.ts
View file @
f646e377
...
...
@@ -3,7 +3,6 @@
import
type
{
AxiosResponse
}
from
'
axios
'
;
import
type
{
CreateAxiosOptions
,
RequestOptions
,
Result
}
from
'
./types
'
;
import
{
VAxios
}
from
'
./Axios
'
;
import
{
getToken
}
from
'
/@/utils/auth
'
;
import
{
AxiosTransform
}
from
'
./axiosTransform
'
;
...
...
@@ -16,11 +15,11 @@ import { useMessage } from '/@/hooks/web/useMessage';
import
{
RequestEnum
,
ResultEnum
,
ContentTypeEnum
}
from
'
/@/enums/httpEnum
'
;
import
{
isString
}
from
'
/@/utils/is
'
;
import
{
formatRequestDate
}
from
'
/@/utils/dateUtil
'
;
import
{
setObjToUrlParams
,
deepMerge
}
from
'
/@/utils
'
;
import
{
errorStore
}
from
'
/@/store/modules/error
'
;
import
{
errorResult
}
from
'
./const
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
createNow
,
formatRequestDate
}
from
'
./helper
'
;
const
globSetting
=
useGlobSetting
();
const
prefix
=
globSetting
.
urlPrefix
;
...
...
@@ -97,7 +96,7 @@ const transform: AxiosTransform = {
// 请求之前处理config
beforeRequestHook
:
(
config
,
options
)
=>
{
const
{
apiUrl
,
joinPrefix
,
joinParamsToUrl
,
formatDate
}
=
options
;
const
{
apiUrl
,
joinPrefix
,
joinParamsToUrl
,
formatDate
,
joinTime
=
true
}
=
options
;
if
(
joinPrefix
)
{
config
.
url
=
`
${
prefix
}${
config
.
url
}
`
;
...
...
@@ -107,17 +106,14 @@ const transform: AxiosTransform = {
config
.
url
=
`
${
apiUrl
}${
config
.
url
}
`
;
}
if
(
config
.
method
?.
toUpperCase
()
===
RequestEnum
.
GET
)
{
const
now
=
new
Date
().
getTime
();
if
(
!
isString
(
config
.
params
))
{
config
.
data
=
{
// 给 get 请求加上时间戳参数,避免从缓存中拿数据。
params
:
Object
.
assign
(
config
.
params
||
{},
{
_t
:
now
,
}),
params
:
Object
.
assign
(
config
.
params
||
{},
createNow
(
joinTime
,
false
)),
};
}
else
{
// 兼容restful风格
config
.
url
=
config
.
url
+
config
.
params
+
`
?_t=
${
now
}
`
;
config
.
url
=
config
.
url
+
config
.
params
+
`
${
createNow
(
joinTime
,
true
)
}
`
;
config
.
params
=
undefined
;
}
}
else
{
...
...
@@ -187,6 +183,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
// 接口可能会有通用的地址部分,可以统一抽取出来
prefixUrl
:
prefix
,
headers
:
{
'
Content-Type
'
:
ContentTypeEnum
.
JSON
},
// 如果是form-data格式
// headers: { 'Content-Type': ContentTypeEnum.FORM_URLENCODED },
// 数据处理方式
transform
,
// 配置项,下面的选项都可以在独立的接口请求中覆盖
...
...
@@ -203,6 +201,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
errorMessageMode
:
'
message
'
,
// 接口地址
apiUrl
:
globSetting
.
apiUrl
,
// 是否加入时间戳
joinTime
:
true
,
},
},
opt
||
{}
...
...
src/utils/http/axios/types.ts
View file @
f646e377
...
...
@@ -16,6 +16,8 @@ export interface RequestOptions {
apiUrl
?:
string
;
// 错误消息提示类型
errorMessageMode
?:
ErrorMessageMode
;
// 是否加入时间戳
joinTime
?:
boolean
;
}
export
interface
CreateAxiosOptions
extends
AxiosRequestConfig
{
...
...
vite.config.ts
View file @
f646e377
...
...
@@ -78,6 +78,7 @@ const viteConfig: UserConfig = {
// The package will be recompiled using rollup, and the new package compiled into the esm module specification will be put into node_modules/.vite_opt_cache
optimizeDeps
:
{
include
:
[
'
qs
'
,
'
echarts/map/js/china
'
,
'
ant-design-vue/es/locale/zh_CN
'
,
'
ant-design-vue/es/locale/en_US
'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment