Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-book
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-book
Commits
d53f1387
提交
d53f1387
authored
5月 11, 2024
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
6b5fa412
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
164 行增加
和
0 行删除
+164
-0
AppList.jsx
src/components/AppList.jsx
+57
-0
api.js
src/pages/setting/feedback/api.js
+6
-0
axios.js
src/utils/axios.js
+101
-0
没有找到文件。
src/components/AppList.jsx
0 → 100644
浏览文件 @
d53f1387
import
{
useState
,
useEffect
}
from
'react'
;
import
{
Table
}
from
'antd'
;
export
default
function
AppList
(
props
)
{
const
{
remote
=
{},
filters
=
[],
...
reset
}
=
props
;
const
[
data
,
setData
]
=
useState
({
total
:
0
,
list
:
[]
});
const
[
page
,
setPage
]
=
useState
({
current
:
1
,
pageSize
:
10
});
// 分页配置
const
pagination
=
{
total
:
100
,
showSizeChanger
:
true
,
showQuickJumper
:
true
,
showTotal
:
(
total
)
=>
`共
${
total
}
条数据`
,
onChange
:
handlePageChange
,
};
// 获取列表数据
async
function
fetchList
()
{
let
{
httpRequest
,
beforeRequest
,
callback
,
params
}
=
remote
;
if
(
!
httpRequest
)
return
;
if
(
beforeRequest
)
{
params
=
beforeRequest
(
params
);
}
const
res
=
await
httpRequest
(
params
);
const
{
list
=
[],
total
=
0
}
=
callback
?
callback
(
res
.
data
,
params
)
:
res
.
data
||
{};
setData
({
list
,
total
});
}
// 筛选
async
function
handleSearch
()
{
setPage
({
...
page
,
current
:
1
});
await
fetchList
();
}
// 重置
async
function
handleReset
()
{
// 清空筛选条件
setPage
({
...
page
,
current
:
1
});
await
fetchList
();
}
// 刷新
async
function
handleRefresh
()
{
await
fetchList
();
}
// 分页改变
async
function
handlePageChange
(
current
,
pageSize
)
{
setPage
({
current
,
pageSize
});
await
handleRefresh
();
}
// useEffect(async () => {
// const res = await fetchList(remote);
// setDataSource(res.data.list || []);
// }, []);
return
<
Table
bordered
dataSource=
{
data
.
list
}
pagination=
{
pagination
}
{
...
reset
}
></
Table
>;
}
src/pages/setting/feedback/api.js
0 → 100644
浏览文件 @
d53f1387
import
axios
from
'@/utils/axios'
;
// 获取意见反馈列表
export
function
getList
(
data
)
{
return
axios
.
post
(
'/api/system/proposal/getList'
,
data
);
}
src/utils/axios.js
0 → 100644
浏览文件 @
d53f1387
import
axios
from
'axios'
;
import
md5
from
'js-md5'
;
import
qs
from
'qs'
;
import
{
Modal
,
notification
}
from
'antd'
;
function
getToken
()
{
return
window
.
localStorage
.
getItem
(
'kiwi.token'
)
?
window
.
localStorage
.
getItem
(
'kiwi.token'
)
:
''
;
}
function
showLoginModal
()
{
Modal
.
warning
({
title
:
'登录状态已过期,请重新登录'
,
onOk
()
{
localStorage
.
removeItem
(
'kiwi.gpt.token'
);
location
.
href
=
'/user/login'
;
},
});
}
// 排序
function
alphabeticalSort
(
a
,
b
)
{
return
a
.
localeCompare
(
b
);
}
const
httpRequest
=
axios
.
create
({
// timeout: 60000,
withCredentials
:
true
,
});
// 请求拦截器
httpRequest
.
interceptors
.
request
.
use
(
(
config
)
=>
{
const
token
=
getToken
();
// 应用设置
const
appId
=
'TzEU5jPk2tu80266'
;
const
appSecret
=
'0a006048a4480481b18fef1405120b83'
;
const
timestamp
=
Math
.
floor
(
Date
.
now
()
/
1000
);
const
signData
=
{
...
config
.
data
,
appId
,
appSecret
,
timestamp
,
token
,
url
:
config
.
url
,
};
const
signStr
=
qs
.
stringify
(
signData
,
{
sort
:
alphabeticalSort
});
const
salt
=
'&4F6g4Y6b5L4R9'
;
const
sign
=
md5
(
md5
(
signStr
+
salt
));
const
defaultHeaders
=
{
Authorization
:
token
,
AppId
:
appId
,
AppSecret
:
appSecret
,
Timestamp
:
timestamp
,
Sign
:
sign
,
};
config
.
headers
=
{
...
config
.
headers
,
...
defaultHeaders
};
return
config
;
},
(
error
)
=>
{
return
Promise
.
reject
(
error
);
},
);
// 响应拦截器
httpRequest
.
interceptors
.
response
.
use
(
(
response
)
=>
{
const
{
data
}
=
response
;
if
(
data
.
code
===
401
||
data
.
code
===
403
)
{
if
(
location
.
pathname
!==
'/user/login'
)
{
showLoginModal
();
}
return
Promise
.
reject
(
data
);
}
if
(
data
.
code
!==
200
)
{
notification
.
error
({
message
:
data
.
message
||
'请求错误'
});
return
Promise
.
reject
(
data
);
}
return
data
.
data
;
},
(
error
)
=>
{
if
(
error
.
response
)
{
const
{
status
,
data
=
{}
}
=
error
.
response
;
if
(
status
===
401
||
status
===
403
)
{
showLoginModal
();
}
else
{
notification
.
error
({
message
:
data
.
message
||
'请求错误'
});
console
.
error
(
`
${
status
}
:
${
data
.
message
}
`
);
}
}
else
{
console
.
log
(
error
);
}
return
Promise
.
reject
(
error
.
response
||
error
);
},
);
export
default
httpRequest
;
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论