Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
admin-ci-test
Commits
78099ab9
提交
78099ab9
authored
6月 05, 2023
作者:
ZhangLingKun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能:用户列表
上级
3b21602d
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
393 行增加
和
28 行删除
+393
-28
index.ts
src/api/index.ts
+2
-0
systemManageType.ts
src/api/interface/systemManageType.ts
+96
-0
systemManage.ts
src/api/modules/systemManage.ts
+30
-0
request.ts
src/api/request.ts
+2
-1
App.scss
src/assets/style/App.scss
+5
-0
index.tsx
src/components/layout/title/index.tsx
+1
-1
index.tsx
src/components/search-box/index.tsx
+4
-4
index.tsx
src/pages/common/login/index.tsx
+1
-1
index.tsx
src/pages/systemManage/accountManage/index.tsx
+205
-0
privateRouter.tsx
src/router/privateRouter.tsx
+1
-1
router.tsx
src/router/router.tsx
+46
-20
没有找到文件。
src/api/index.ts
浏览文件 @
78099ab9
...
...
@@ -6,6 +6,7 @@ import { CouponManageAPI } from './modules/couponManage';
import
{
CommonAPI
}
from
'./modules/common'
;
import
{
MakeManageAPI
}
from
'./modules/makeManage'
;
import
{
CategoryManageAPI
}
from
'./modules/categoryManage'
;
import
{
SystemManageAPI
}
from
'./modules/systemManage'
;
export
{
PointManageAPI
,
...
...
@@ -16,4 +17,5 @@ export {
CouponManageAPI
,
MakeManageAPI
,
CategoryManageAPI
,
SystemManageAPI
,
};
src/api/interface/systemManageType.ts
0 → 100644
浏览文件 @
78099ab9
import
{
InterFunction
,
InterListFunction
}
from
'~/api/interface'
;
// 账号-列表
export
type
listBAccountPageType
=
InterListFunction
<
{
accountStatus
?:
number
;
area
?:
string
;
cityCode
?:
number
;
districtCode
?:
number
;
keyword
?:
string
;
provinceCode
?:
number
;
rcdCompanyId
?:
number
;
roleId
?:
number
;
userIds
?:
Array
<
number
>
;
userType
?:
number
;
},
{
id
:
number
;
accountType
:
number
;
uid
:
string
;
accountNo
:
string
;
phoneNum
:
string
;
userName
:
string
;
nickName
:
string
;
userImg
:
string
;
userSex
:
number
;
email
:
string
;
source
:
number
;
accountStatus
:
number
;
remark
:
string
;
portType
:
number
;
createTime
:
string
;
companyAuthStatus
:
null
;
cooperationTagId
:
null
;
}
>
;
// 账号-新增
export
type
insertBAccountType
=
InterFunction
<
{
accountNo
:
string
;
accountStatus
:
number
;
alertPwd
:
number
;
cityCode
?:
number
;
districtCode
?:
number
;
email
?:
string
;
id
:
number
;
passWord
:
number
;
phoneNum
:
number
;
provinceCode
?:
number
;
remark
?:
string
;
userName
:
string
;
},
NonNullable
<
unknown
>
>
;
// 账号-删除
export
type
removeBAccountType
=
InterFunction
<
{
userAccountId
:
number
;
},
NonNullable
<
unknown
>
>
;
// 账号-修改
export
type
updateBAccountType
=
InterFunction
<
{
accountNo
:
string
;
accountStatus
:
number
;
alertPwd
:
number
;
cityCode
?:
number
;
districtCode
?:
number
;
email
?:
string
;
id
:
number
;
passWord
:
number
;
phoneNum
:
number
;
provinceCode
?:
number
;
remark
?:
string
;
userName
:
string
;
},
NonNullable
<
unknown
>
>
;
// 账号-修改密码
export
type
updatePasswordType
=
InterFunction
<
{
accountNo
:
string
;
accountStatus
:
number
;
alertPwd
:
number
;
cityCode
?:
number
;
districtCode
?:
number
;
email
?:
string
;
id
:
number
;
passWord
:
number
;
phoneNum
:
number
;
provinceCode
?:
number
;
remark
?:
string
;
userName
:
string
;
},
NonNullable
<
unknown
>
>
;
src/api/modules/systemManage.ts
0 → 100644
浏览文件 @
78099ab9
import
{
insertBAccountType
,
listBAccountPageType
,
removeBAccountType
,
updateBAccountType
,
updatePasswordType
,
}
from
'../interface/systemManageType'
;
import
axios
from
'../request'
;
export
class
SystemManageAPI
{
// 账号-列表
static
listBAccountPage
:
listBAccountPageType
=
(
params
)
=>
axios
.
post
(
'/userapp/back-user/listBAccountPage'
,
params
);
// 账号-新增
static
insertBAccount
:
insertBAccountType
=
(
params
)
=>
axios
.
post
(
'/userapp/back-user/insertBAccount'
,
params
);
// 账号-删除
static
removeBAccount
:
removeBAccountType
=
(
params
)
=>
axios
.
post
(
'/userapp/back-user/removeBAccount'
,
params
);
// 账号-修改
static
updateBAccount
:
updateBAccountType
=
(
params
)
=>
axios
.
post
(
'/userapp/back-user/updateBAccount'
,
params
);
// 账号-修改密码
static
updatePassword
:
updatePasswordType
=
(
params
)
=>
axios
.
post
(
'/userapp/back-user/updatePassword'
,
params
);
}
src/api/request.ts
浏览文件 @
78099ab9
...
...
@@ -13,7 +13,8 @@ const service = axios.create({
});
service
.
interceptors
.
request
.
use
(
(
config
:
any
)
=>
{
const
token
=
Cookies
.
get
(
'SXTB-TOKEN'
);
const
token
=
Cookies
.
get
(
'SHAREFLY-TOKEN'
);
console
.
log
(
'token --->'
,
token
);
if
(
token
)
{
config
.
headers
.
token
=
token
;
}
...
...
src/assets/style/App.scss
浏览文件 @
78099ab9
...
...
@@ -30,6 +30,11 @@
.ant-table-row
:nth-child
(
odd
)
>
td
{
background
:
#fcfcfc
;
}
.ant-table-cell-fix-right
{
.ant-btn
{
padding
:
0
8px
!
important
;
}
}
::-webkit-scrollbar
{
background-color
:
transparent
;
...
...
src/components/layout/title/index.tsx
浏览文件 @
78099ab9
...
...
@@ -38,7 +38,7 @@ export function TitleView() {
content
:
'退出后未保存数据将会丢失,确定登出吗?'
,
onOk
:
()
=>
{
navigate
(
'/login'
,
{
replace
:
true
});
Cookies
.
remove
(
'SHAREFLY
_
TOKEN'
);
Cookies
.
remove
(
'SHAREFLY
-
TOKEN'
);
dispatch
(
REMOVE_MENU
());
dispatch
(
REMOVE_MENU_ID
());
},
...
...
src/components/search-box/index.tsx
浏览文件 @
78099ab9
...
...
@@ -111,12 +111,12 @@ const Index: React.FC<propsType> = (props) => {
<
Input
placeholder=
{
item
.
placeholder
}
allowClear
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'1
5
0px'
}
}
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'1
8
0px'
}
}
maxLength=
{
50
}
/>
)
:
item
.
type
===
'select'
?
(
<
Select
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'
20
0px'
}
}
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'
18
0px'
}
}
placeholder=
{
item
.
placeholder
}
allowClear
>
...
...
@@ -130,7 +130,7 @@ const Index: React.FC<propsType> = (props) => {
</
Select
>
)
:
item
.
type
===
'Select'
?
(
<
Select
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'
20
0px'
}
}
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'
18
0px'
}
}
placeholder=
{
item
.
placeholder
}
allowClear
options=
{
item
.
options
}
...
...
@@ -145,7 +145,7 @@ const Index: React.FC<propsType> = (props) => {
// ],
//
}}
format=
'YYYY-MM-DD'
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'2
2
0px'
}
}
style=
{
{
width
:
item
.
width
?
`${item.width}px`
:
'2
0
0px'
}
}
/>
)
:
item
.
type
===
'DatePicker'
?
(
<
DatePicker
...
...
src/pages/common/login/index.tsx
浏览文件 @
78099ab9
...
...
@@ -32,7 +32,7 @@ function LoginView() {
});
if
(
res
&&
res
.
code
===
'200'
)
{
const
{
token
}
=
res
.
result
;
await
Cookies
.
set
(
'SHAREFLY
_
TOKEN'
,
token
);
await
Cookies
.
set
(
'SHAREFLY
-
TOKEN'
,
token
);
// 记住密码
Cookies
.
set
(
'password'
,
values
?.
passWord
);
Cookies
.
set
(
'username'
,
values
?.
accountNo
);
...
...
src/pages/systemManage/accountManage/index.tsx
0 → 100644
浏览文件 @
78099ab9
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
listBAccountPageType
}
from
'~/api/interface/systemManageType'
;
import
SearchBox
from
'~/components/search-box'
;
import
{
Button
,
Table
,
Tooltip
}
from
'antd'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
SystemManageAPI
}
from
'~/api'
;
// 列表的数据类型
type
TableType
=
InterListType
<
listBAccountPageType
>
;
// 请求数据的类型
type
ReqType
=
InterReqType
<
listBAccountPageType
>
;
// 搜索表单的数据
let
query
:
ReqType
=
{};
function
AccountManageView
()
{
// 表格数据
const
[
tableData
,
setTableData
]
=
useState
<
TableType
>
([]);
// 表格分页配置
const
[
pagination
,
setPagination
]
=
useState
({
total
:
0
,
pageSize
:
10
,
current
:
1
,
totalPage
:
0
,
});
// 加载列表
const
getTableList
=
async
(
value
=
{})
=>
{
// 只需要修改这个地方的接口即可
const
res
=
await
SystemManageAPI
.
listBAccountPage
({
pageNo
:
pagination
.
current
,
pageSize
:
pagination
.
pageSize
,
...
value
,
...
query
,
});
if
(
res
&&
res
.
code
===
'200'
)
{
const
{
list
,
pageNo
,
totalCount
,
pageSize
,
totalPage
}
=
res
.
result
;
// 解构
setPagination
({
total
:
totalCount
,
current
:
pageNo
,
pageSize
,
totalPage
,
});
setTableData
(
list
);
}
};
// 翻页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
getTableList
({
pageNo
,
pageSize
}).
then
();
};
// 表单提交
const
onFinish
=
(
data
:
ReqType
)
=>
{
pagination
.
current
=
1
;
query
=
data
;
getTableList
(
data
).
then
();
};
// componentDidMount
useEffect
(()
=>
{
query
=
{};
getTableList
().
then
();
},
[]);
// 表格结构
const
columns
:
ColumnsType
<
TableType
[
0
]
>
=
[
{
title
:
'账号'
,
dataIndex
:
'accountNo'
,
align
:
'center'
,
width
:
'150px'
,
fixed
:
'left'
,
},
{
title
:
'账号类型'
,
dataIndex
:
'accountType'
,
align
:
'center'
,
width
:
'10%'
,
render
:
(
text
)
=>
(
text
===
1
?
'员工'
:
'合伙人'
),
},
{
title
:
'姓名'
,
dataIndex
:
'userName'
,
align
:
'center'
,
width
:
'10%'
},
{
title
:
'所属单位'
,
align
:
'center'
,
width
:
'10%'
,
},
{
title
:
'渠道等级'
,
dataIndex
:
'channelLevel'
,
align
:
'center'
,
width
:
'150px'
,
},
{
title
:
'角色'
,
align
:
'center'
,
width
:
'10%'
,
},
{
title
:
'手机号'
,
dataIndex
:
'phoneNum'
,
align
:
'center'
,
width
:
'150px'
},
{
title
:
'邮箱'
,
align
:
'center'
,
width
:
'12%'
,
dataIndex
:
'email'
},
{
title
:
'备注'
,
align
:
'center'
,
width
:
'10%'
,
dataIndex
:
'remark'
,
render
:
(
text
)
=>
(
<
Tooltip
placement=
'top'
title=
{
text
}
>
<
div
className=
'remark-wrap'
>
{
text
}
</
div
>
</
Tooltip
>
),
},
{
title
:
'账号状态'
,
dataIndex
:
'accountStatus'
,
align
:
'center'
,
width
:
'10%'
,
render
:
(
text
)
=>
(
text
===
1
?
'可用'
:
'停用'
),
},
{
title
:
'企业实名认证'
,
dataIndex
:
'companyAuthStatus'
,
align
:
'center'
,
width
:
'10%'
,
},
{
title
:
'操作'
,
width
:
'160px'
,
fixed
:
'right'
,
align
:
'center'
,
render
:
(
_text
,
_record
)
=>
(
<>
<
Button
type=
'link'
>
变更
</
Button
>
<
Button
type=
'link'
>
修改密码
</
Button
>
<
Button
type=
'link'
danger
>
删除
</
Button
>
</>
),
},
];
return
(
<>
<
SearchBox
search=
{
[
{
label
:
'账号'
,
name
:
'keyword'
,
type
:
'input'
,
placeholder
:
'请输入姓名或账号'
,
},
{
label
:
'账号类型'
,
name
:
'userType'
,
type
:
'Select'
,
placeholder
:
'请选择账号类型'
,
options
:
[
{
value
:
1
,
label
:
'员工'
},
{
value
:
0
,
label
:
'合伙人'
},
],
},
{
label
:
'角色'
,
name
:
'roleId'
,
type
:
'Select'
,
placeholder
:
'请选择账号角色'
,
options
:
[],
},
{
label
:
'状态'
,
name
:
'accountStatus'
,
type
:
'Select'
,
placeholder
:
'请选择账号状态'
,
options
:
[
{
value
:
1
,
label
:
'可用'
},
{
value
:
0
,
label
:
'停用'
},
],
},
]
}
child=
{
<>
<
Button
type=
{
'primary'
}
icon=
{
<
PlusOutlined
/>
}
>
新增账号
</
Button
>
</>
}
searchData=
{
onFinish
}
/>
<
Table
size=
'small'
dataSource=
{
tableData
}
columns=
{
columns
}
rowKey=
'id'
scroll=
{
{
x
:
1500
}
}
bordered
pagination=
{
{
total
:
pagination
.
total
,
pageSize
:
pagination
.
pageSize
,
current
:
pagination
.
current
,
showSizeChanger
:
true
,
showQuickJumper
:
true
,
onChange
:
(
page
:
number
,
pageSize
:
number
)
=>
paginationChange
(
page
,
pageSize
),
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
}
}
/>
</>
);
}
export
default
AccountManageView
;
src/router/privateRouter.tsx
浏览文件 @
78099ab9
...
...
@@ -11,7 +11,7 @@ function PrivateRouter() {
const
beforeEach
=
()
=>
{
// TODO: 判断是否登录 (需要改为实时获取地址栏的路由)
const
path
=
location
.
pathname
;
const
token
=
Cookies
.
get
(
'SHAREFLY
_
TOKEN'
);
const
token
=
Cookies
.
get
(
'SHAREFLY
-
TOKEN'
);
if
(
!
token
&&
path
!==
'/login'
)
{
location
.
replace
(
'/login'
);
return
;
...
...
src/router/router.tsx
浏览文件 @
78099ab9
...
...
@@ -16,6 +16,9 @@ import {
ReconciliationOutlined
,
SolutionOutlined
,
RedEnvelopeOutlined
,
SettingOutlined
,
UserOutlined
,
SisternodeOutlined
,
}
from
'@ant-design/icons'
;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
...
...
@@ -35,6 +38,7 @@ import DivideRules from '~/pages/pointManage/divideRules';
import
CustomListView
from
'~/pages/customManage/customList'
;
import
CustomMoneyView
from
'~/pages/customManage/customMoney'
;
import
CustomMoneyDetail
from
'~/pages/customManage/customMoney/detail'
;
import
AccountManageView
from
'~/pages/systemManage/accountManage'
;
// 活动
const
ActivityList
=
React
.
lazy
(()
=>
import
(
'src/pages/activityManage/activityList'
));
//活动管理
...
...
@@ -76,6 +80,7 @@ const CouponDetailed = React.lazy(() => import('src/pages/couponManage/couponDet
// 分类管理
const
CategoryList
=
React
.
lazy
(()
=>
import
(
'src/pages/categoryManage/index'
));
// 路由列表类型
export
interface
RouteObjectType
{
path
:
AgnosticIndexRouteObject
[
'path'
];
element
:
any
;
...
...
@@ -89,7 +94,7 @@ export interface RouteObjectType {
title
:
string
;
};
}
// 加载页面
const
withLoadingComponent
=
(
comp
:
JSX
.
Element
)
=>
(
<
React
.
Suspense
fallback=
{
...
...
@@ -101,6 +106,29 @@ const withLoadingComponent = (comp: JSX.Element) => (
{
comp
}
</
React
.
Suspense
>
);
// 路由白名单
export
const
whiteRouterList
:
Array
<
RouteObject
&
RouteObjectType
>
=
[
{
path
:
'/'
,
element
:
<
Navigate
to=
'/orderManage/productOrder'
/>,
meta
:
{
id
:
0
,
title
:
'销售订单'
,
icon
:
MacCommandOutlined
,
},
errorElement
:
<
ErrorPage
/>,
},
{
path
:
'/login'
,
element
:
withLoadingComponent
(<
LoginView
/>),
meta
:
{
id
:
0
,
title
:
'登录'
,
icon
:
MacCommandOutlined
,
},
errorElement
:
<
ErrorPage
/>,
},
];
// 路由数组
export
const
routerList
:
Array
<
RouteObjectType
>
=
[
...
...
@@ -493,32 +521,30 @@ export const routerList: Array<RouteObjectType> = [
meta
:
{
id
:
18100
,
title
:
'分类列表'
,
icon
:
<
Gift
Outlined
/>,
icon
:
<
Sisternode
Outlined
/>,
},
},
],
},
];
// 路由白名单
export
const
whiteRouterList
:
Array
<
RouteObject
&
RouteObjectType
>
=
[
{
path
:
'/'
,
element
:
<
Navigate
to=
'/orderManage/productOrder'
/>,
meta
:
{
id
:
0
,
title
:
'销售订单'
,
icon
:
MacCommandOutlined
,
},
path
:
'/systemManage'
,
element
:
<
LayoutView
/>,
errorElement
:
<
ErrorPage
/>,
},
{
path
:
'/login'
,
element
:
withLoadingComponent
(<
LoginView
/>),
meta
:
{
id
:
0
,
title
:
'登录'
,
icon
:
MacCommandOutlined
,
id
:
2800
0
,
icon
:
<
SettingOutlined
/>
,
title
:
'系统管理'
,
},
errorElement
:
<
ErrorPage
/>,
children
:
[
{
path
:
'/systemManage/accountManage'
,
element
:
withLoadingComponent
(<
AccountManageView
/>),
meta
:
{
id
:
28100
,
title
:
'账号管理'
,
icon
:
<
UserOutlined
/>,
},
},
],
},
];
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论