Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
admin-ci-test
Commits
57ecd804
提交
57ecd804
authored
8月 02, 2023
作者:
龚洪江
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复:加盟入驻编辑可修改部分字段,实名认证,飞手中心
上级
3018428e
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
352 行增加
和
51 行删除
+352
-51
customManageType.ts
src/api/interface/customManageType.ts
+17
-1
customManage.ts
src/api/modules/customManage.ts
+4
-0
index.scss
src/components/layout/index.scss
+1
-5
index.tsx
src/components/layout/title/index.tsx
+10
-2
index.tsx
src/components/uploader/index.tsx
+21
-35
index.tsx
src/pages/common/login/index.tsx
+1
-0
index.tsx
...s/customManage/customIdentity/comp/addEditModal/index.tsx
+68
-2
index.tsx
src/pages/customManage/customVerification/index.tsx
+118
-0
index.tsx
src/pages/flyerCenter/flyerList/index.tsx
+70
-0
index.tsx
...pages/mallManage/courseManage/comp/addEditModal/index.tsx
+1
-1
router.tsx
src/router/router.tsx
+41
-5
没有找到文件。
src/api/interface/customManageType.ts
浏览文件 @
57ecd804
import
{
InterFunction
,
InterListFunction
}
from
'~/api/interface'
;
import
{
InterFunction
,
Inter
ItemFunction
,
Inter
ListFunction
}
from
'~/api/interface'
;
// 客户列表
export
type
listAppUserType
=
InterListFunction
<
...
...
@@ -189,6 +189,9 @@ export type editUserApplyTagDetails = InterFunction<
lon
:
number
;
name
:
string
;
score
:
number
;
licenseImg
:
string
;
remark
:
string
;
attachmentList
?:
{
userApplyTagId
:
number
;
url
:
string
;
type
:
number
}[];
}
>
;
// 后台-编辑服务商信息
...
...
@@ -233,3 +236,16 @@ export type listUserRcdType = InterListFunction<
userSex
:
null
;
}
>
;
//实名认证列表返回类型
export
type
listAuthPageType
=
InterItemFunction
<
{
keyword
?:
string
},
{
id
:
number
;
nickName
:
string
;
phoneNum
:
string
;
uid
:
string
;
userName
:
string
;
createTime
:
string
;
}[]
>
;
src/api/modules/customManage.ts
浏览文件 @
57ecd804
...
...
@@ -10,6 +10,7 @@ import {
editUserApplyTag
,
editUserApplyTagDetails
,
listAppUserType
,
listAuthPageType
,
listUserApplyTag
,
listUserRcdType
,
userAccountUpdateType
,
...
...
@@ -55,4 +56,7 @@ export class CustomManageAPI {
// 裂变-邀请列表
static
listUserRcd
:
listUserRcdType
=
(
data
)
=>
axios
.
post
(
'/userapp/user-account/listUserRcd'
,
data
);
// 客户-实名认证列表
static
getListAuth
:
listAuthPageType
=
(
data
)
=>
axios
.
post
(
'/userapp/real-name-auth/listPage'
,
data
);
}
src/components/layout/index.scss
浏览文件 @
57ecd804
...
...
@@ -110,11 +110,6 @@ $page-background: #f3f6ff;
justify-content
:
space-between
;
align-items
:
center
;
.logo-img
{
width
:
32px
;
height
:
32px
;
border-radius
:
4px
;
}
.logo-text
{
min-width
:
100px
;
...
...
@@ -187,6 +182,7 @@ $page-background: #f3f6ff;
.ant-layout-header
{
padding
:
0
10px
;
//line-height: normal;
}
.ant-layout-sider-collapsed
{
...
...
src/components/layout/title/index.tsx
浏览文件 @
57ecd804
import
React
,
{
useState
}
from
'react'
;
import
{
Header
}
from
'antd/es/layout/layout'
;
import
{
DownOutlined
,
UpOutlined
}
from
'@ant-design/icons'
;
import
{
Button
,
Dropdown
,
MenuProps
,
Modal
}
from
'antd'
;
import
{
Button
,
Dropdown
,
Image
,
MenuProps
,
Modal
}
from
'antd'
;
import
Logo
from
'../../../assets/icon/logo_big.png'
;
import
'./index.scss'
;
import
{
REMOVE_MENU
,
REMOVE_MENU_ID
,
SET_COLLAPSE
}
from
'~/store/module/menu'
;
...
...
@@ -60,7 +60,15 @@ export function TitleView() {
}
}
>
<
div
className=
'layout-logo'
>
<
img
src=
{
userInfo
.
companyInfoVO
.
brandLogo
||
Logo
}
className=
'logo-img'
alt=
'云享飞'
/>
<
div
className=
'logo-img'
>
<
Image
preview=
{
false
}
src=
{
userInfo
.
companyInfoVO
.
brandLogo
||
Logo
}
alt=
'云享飞'
width=
{
32
}
height=
{
32
}
/>
</
div
>
<
div
className=
'logo-text'
>
{
userInfo
.
companyInfoVO
.
brandName
||
'云享飞管理后台'
}
</
div
>
<
div
onClick=
{
setMenuCollapsed
}
>
<
svg
...
...
src/components/uploader/index.tsx
浏览文件 @
57ecd804
...
...
@@ -29,8 +29,6 @@ export const Uploader: React.FC<PropsType> = (props) => {
fileSize
:
2
,
fileLength
:
1
,
fileType
:
[
'image/png'
,
'image/jpeg'
,
'image/jpg'
,
'image/gif'
],
// eslint-disable-next-line @typescript-eslint/no-empty-function
onChange
:
()
=>
{},
defaultFileList
:
[],
disabled
:
false
,
};
...
...
@@ -56,7 +54,7 @@ export const Uploader: React.FC<PropsType> = (props) => {
listType
,
fileList
,
beforeUpload
:
(
res
)
=>
{
// console.log(fileType, res.type
);
console
.
log
(
'文件类型-->'
,
res
);
const
isType
=
fileType
?.
includes
(
res
.
type
);
const
isSize
=
res
.
size
/
1024
/
1024
<
(
fileSize
||
2
);
if
(
!
isType
)
{
...
...
@@ -79,38 +77,26 @@ export const Uploader: React.FC<PropsType> = (props) => {
// 上传到服务器
const
formData
=
new
FormData
();
formData
.
append
(
'uploadFile'
,
res
.
file
);
CommonAPI
.
uploadOssBP
(
formData
).
then
(
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
//(val: { result: { filePath: string } }) => {
({
result
})
=>
{
// console.log(result);
setFileList
([
...
fileList
,
{
id
:
new
Date
().
getTime
(),
uid
:
new
Date
().
getTime
(),
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
name
:
res
.
file
.
name
,
// url: val.result.filePath,
url
:
result
,
},
]);
onChange
?.([
...
fileList
,
{
id
:
new
Date
().
getTime
(),
uid
:
new
Date
().
getTime
(),
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
name
:
res
.
file
.
name
,
// url: val.result.filePath,
url
:
result
,
},
]);
},
);
CommonAPI
.
uploadOssBP
(
formData
).
then
(({
result
})
=>
{
setFileList
([
...
fileList
,
{
id
:
new
Date
().
getTime
(),
uid
:
new
Date
().
getTime
(),
name
:
(
res
.
file
as
any
).
name
,
url
:
result
,
},
]);
onChange
?.([
...
fileList
,
{
id
:
new
Date
().
getTime
(),
uid
:
new
Date
().
getTime
(),
name
:
(
res
.
file
as
any
).
name
,
url
:
result
,
},
]);
});
}
else
{
setFileList
([...
fileList
,
res
.
file
]);
onChange
?.([...
fileList
,
res
.
file
]);
...
...
src/pages/common/login/index.tsx
浏览文件 @
57ecd804
...
...
@@ -131,6 +131,7 @@ function LoginView() {
{
qrCodeUrl
?
(
<
Image
src=
{
qrCodeUrl
}
alt=
''
width=
{
200
}
height=
{
200
}
preview=
{
false
}
/>
)
:
(
// 加载二维码
<
QRCode
value=
'https://ant.design/'
status=
'loading'
/>
)
}
</
div
>
...
...
src/pages/customManage/customIdentity/comp/addEditModal/index.tsx
浏览文件 @
57ecd804
...
...
@@ -5,9 +5,11 @@ import {
listUserApplyTag
,
}
from
'~/api/interface/customManageType'
;
import
{
InterDataType
,
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
Button
,
Form
,
Input
,
message
,
Modal
,
Rate
,
Select
}
from
'antd'
;
import
{
Button
,
Form
,
I
mage
,
I
nput
,
message
,
Modal
,
Rate
,
Select
}
from
'antd'
;
import
{
CustomManageAPI
}
from
'~/api'
;
import
SelectMapModal
from
'~/components/select-map'
;
import
{
Uploader
}
from
'~/components/uploader'
;
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
// 数据类型
type
DataType
=
InterDataType
<
editUserApplyTagDetails
>
;
...
...
@@ -36,6 +38,10 @@ const AddEditModal: FC<propType> = (props) => {
const
[
cooperationList
,
setCooperationList
]
=
useState
<
{
label
:
string
;
value
:
number
}[]
>
([]);
// 选择的地址
const
[
address
,
setAddress
]
=
useState
<
{
lat
:
number
;
lon
:
number
;
address
:
string
}
>
();
//附件
const
[
fileList
,
setFileList
]
=
useState
<
{
id
:
number
;
uid
:
number
;
url
:
string
;
name
:
string
}[]
>
([]);
// 关闭弹窗
const
handleCancel
=
()
=>
{
form
.
resetFields
();
...
...
@@ -51,9 +57,17 @@ const AddEditModal: FC<propType> = (props) => {
...
res
.
result
,
name
:
res
.
result
.
name
||
data
?.
companyName
,
address
:
res
.
result
.
address
||
detail
?.
address
,
attachmentList
:
res
.
result
.
attachmentList
||
undefined
,
});
setDetail
(
res
.
result
);
// console.log('获取审批详情 -->', res.result);
const
fileList
=
res
.
result
.
attachmentList
?.
map
((
v
)
=>
({
id
:
Math
.
random
(),
uid
:
Math
.
random
(),
name
:
v
.
url
.
split
(
'/'
)[
v
.
url
.
split
(
'/'
).
length
-
1
],
url
:
v
.
url
,
}))
||
[];
setFileList
(
fileList
);
}
};
// 获取加盟列表
...
...
@@ -64,6 +78,24 @@ const AddEditModal: FC<propType> = (props) => {
setCooperationList
(
list
.
map
((
i
)
=>
({
label
:
i
.
tagName
,
value
:
i
.
id
})));
}
};
//附件上传成功
const
attachmentUploadSuccess
=
(
value
:
{
id
:
number
;
uid
:
number
;
url
:
string
;
name
:
string
}[],
)
=>
{
setFileList
(
value
);
form
.
setFieldValue
(
'attachmentList'
,
value
.
map
((
v
)
=>
({
type
:
[
'.doc'
,
'.docx'
,
'.xls'
,
'.xlsx'
,
'.ppt'
,
'.pptx'
,
'.pdf'
].
includes
(
v
.
url
.
match
(
/
\.[^
.
]
+$/
)?.[
0
]
as
any
,
)
?
1
:
0
,
url
:
v
.
url
,
})),
);
};
// 确认事件
const
handleOk
=
()
=>
{
form
...
...
@@ -157,6 +189,40 @@ const AddEditModal: FC<propType> = (props) => {
>
<
Rate
allowClear
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'营业执照'
>
<
Image
src=
{
detail
?.
licenseImg
}
width=
{
50
}
height=
{
50
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'附件'
name=
'attachmentList'
>
<
Uploader
fileUpload
listType=
'text'
defaultFileList=
{
fileList
}
fileLength=
{
10
}
fileSize=
{
50
}
onChange=
{
attachmentUploadSuccess
}
fileType=
{
[
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
,
'application/msword'
,
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
,
'application/vnd.ms-excel'
,
'application/pdf'
,
'application/vnd.ms-powerpoint'
,
'application/vnd.openxmlformats-officedocument.presentationml.presentation'
,
'image/png'
,
'image/jpeg'
,
'image/jpg'
,
'image/gif'
,
'image/bmp'
,
]
}
>
<
Button
type=
'primary'
icon=
{
<
UploadOutlined
/>
}
>
上传
</
Button
>
</
Uploader
>
</
Form
.
Item
>
<
Form
.
Item
label=
'备注'
name=
'remark'
>
<
Input
.
TextArea
placeholder=
'请输入备注'
maxLength=
{
70
}
showCount
rows=
{
4
}
/>
</
Form
.
Item
>
</
Form
>
</
Modal
>
<
SelectMapModal
...
...
src/pages/customManage/customVerification/index.tsx
0 → 100644
浏览文件 @
57ecd804
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
import
{
Table
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
CustomManageAPI
}
from
'~/api'
;
import
{
InterDataType
,
InterReqListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
listAuthPageType
}
from
'~/api/interface/customManageType'
;
//实名认证列表返回类型
type
listAuthType
=
InterDataType
<
listAuthPageType
>
[
'list'
];
//实名认证列表请求类型
type
listAuthParametersType
=
InterReqListType
<
listAuthPageType
>
;
const
CustomVerification
=
()
=>
{
const
searchColumns
:
searchColumnsType
[]
=
[
{
name
:
'keyword'
,
label
:
'用户信息'
,
type
:
'input'
,
placeholder
:
'请输入UID,姓名或手机号'
,
},
];
const
tableColumns
:
ColumnsType
<
any
>
=
[
{
title
:
'UID'
,
align
:
'center'
,
dataIndex
:
'uid'
,
},
{
title
:
'昵称'
,
align
:
'center'
,
dataIndex
:
'nickName'
,
},
{
title
:
'姓名'
,
align
:
'center'
,
dataIndex
:
'userName'
,
},
{
title
:
'手机号'
,
align
:
'center'
,
dataIndex
:
'phoneNum'
,
},
{
title
:
'时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'备注'
,
align
:
'center'
,
dataIndex
:
'remark'
,
},
{
title
:
'操作'
,
align
:
'center'
,
},
];
const
[
tableData
,
setTableData
]
=
useState
<
listAuthType
>
([]);
const
[
query
,
setQuery
]
=
useState
<
listAuthParametersType
>
();
const
[
pagination
,
setPagination
]
=
useState
<
PaginationProps
&
{
totalCount
:
number
}
>
({
pageNo
:
1
,
pageSize
:
10
,
totalCount
:
0
,
});
const
getAuthList
=
(
query
?:
listAuthParametersType
)
=>
{
CustomManageAPI
.
getListAuth
({
pageNo
:
pagination
.
pageNo
,
pageSize
:
pagination
.
pageSize
,
...
query
,
}).
then
(({
result
})
=>
{
pagination
.
totalCount
=
result
.
totalCount
;
setPagination
(
pagination
);
setTableData
(
result
.
list
||
[]);
});
};
//分页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
pagination
.
pageNo
=
pageNo
;
pagination
.
pageSize
=
pageSize
;
getAuthList
(
query
);
};
//筛选成功
const
searchSuccess
=
(
value
:
listAuthParametersType
)
=>
{
pagination
.
pageNo
=
1
;
pagination
.
pageSize
=
10
;
setQuery
(
value
);
getAuthList
(
value
);
};
useEffect
(()
=>
{
getAuthList
();
},
[]);
return
(
<
div
className=
'custom-verification'
>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
/>
<
Table
columns=
{
tableColumns
}
bordered
dataSource=
{
tableData
}
rowKey=
'id'
pagination=
{
{
total
:
pagination
.
totalCount
,
pageSize
:
pagination
.
pageSize
,
current
:
pagination
.
pageNo
,
showSizeChanger
:
true
,
showQuickJumper
:
true
,
onChange
:
(
page
:
number
,
pageSize
:
number
)
=>
paginationChange
(
page
,
pageSize
),
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
}
}
/>
</
div
>
);
};
export
default
CustomVerification
;
src/pages/flyerCenter/flyerList/index.tsx
0 → 100644
浏览文件 @
57ecd804
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
import
{
Table
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
const
FlyerList
=
()
=>
{
const
searchColumns
:
searchColumnsType
[]
=
[
{
name
:
''
,
label
:
'账号'
,
placeholder
:
'请输入UID,姓名或手机号'
,
type
:
'input'
,
},
{
name
:
''
,
label
:
'执照认证状态'
,
placeholder
:
'请选择执照认证状态'
,
type
:
'select'
,
options
:
[],
},
{
name
:
''
,
label
:
'场景培训认证'
,
placeholder
:
'请选择场景培训认证状态'
,
type
:
'select'
,
options
:
[],
},
];
const
tableColumns
:
ColumnsType
<
any
>
=
[
{
title
:
'UID'
,
align
:
'center'
,
},
{
title
:
'姓名'
,
align
:
'center'
,
},
{
title
:
'执照认证状态'
,
align
:
'center'
,
},
{
title
:
'场景培训认证'
,
align
:
'center'
,
},
{
title
:
'手机号'
,
align
:
'center'
,
},
{
title
:
'申请认证时间'
,
align
:
'center'
,
},
{
title
:
'备注'
,
align
:
'center'
,
},
{
title
:
'操作'
,
align
:
'center'
,
},
];
return
(
<
div
className=
'flyer-list'
>
<
SearchBox
search=
{
searchColumns
}
/>
<
Table
bordered
columns=
{
tableColumns
}
/>
</
div
>
);
};
export
default
FlyerList
;
src/pages/mallManage/courseManage/comp/addEditModal/index.tsx
浏览文件 @
57ecd804
...
...
@@ -202,7 +202,7 @@ const AddEditModal: React.FC<propType> = (props) => {
wrapperCol=
{
{
span
:
20
}
}
>
<
RichText
value
=
{
form
.
getFieldValue
(
'detailContent'
)
}
richTextContent
=
{
form
.
getFieldValue
(
'detailContent'
)
}
onChange=
{
(
e
)
=>
form
.
setFieldValue
(
'detailContent'
,
e
)
}
height=
{
250
}
/>
...
...
src/router/router.tsx
浏览文件 @
57ecd804
...
...
@@ -56,6 +56,8 @@ import LoginView from '~/pages/common/login';
import
CustomListView
from
'~/pages/customManage/customList'
;
import
CustomMoneyView
from
'~/pages/customManage/customMoney'
;
import
CustomMoneyDetail
from
'~/pages/customManage/customMoney/detail'
;
const
CustomVerificationView
=
React
.
lazy
(()
=>
import
(
'~/pages/customManage/customVerification'
));
//资源管理
import
MaterielManageView
from
'~/pages/resourceManage/materielManage'
;
import
MaterielManageDetail
from
'~/pages/resourceManage/materielManage/detail'
;
...
...
@@ -106,14 +108,16 @@ const CategoryDetail = React.lazy(() => import('~/pages/categoryManage/category/
// 目录管理
const
DirectoryManage
=
React
.
lazy
(()
=>
import
(
'~/pages/categoryManage/directoryManage'
));
//
飞手
培训
//
执照
培训
const
InstitutionsListView
=
React
.
lazy
(
()
=>
import
(
'~/pages/pilotTraining/ licensureExamination/institutionsList'
),
);
//机构上传
);
//机构列表
const
AddInstitutionsView
=
React
.
lazy
(
()
=>
import
(
'~/pages/pilotTraining/ licensureExamination/addOrEditInstitution'
),
);
);
//机构上传
//飞手中心
const
FlyerListView
=
React
.
lazy
(()
=>
import
(
'~/pages/flyerCenter/flyerList'
));
// 系统管理
import
AccountManageView
from
'~/pages/systemManage/accountManage'
;
...
...
@@ -128,7 +132,7 @@ const CompanyDetailView = React.lazy(
);
import
AccountLimit
from
'~/pages/systemManage/limitManage/roleList'
;
//账号权限
import
LimitInfo
from
'~/pages/systemManage/limitManage/limitInfo'
;
import
CustomListDetail
from
'~/pages/customManage/customList/detail'
;
//权限信息
import
CustomListDetail
from
'~/pages/customManage/customList/detail'
;
// const IndustryListView = React.lazy(() => import('~/pages/mallManage/industryManage/industryList')); //行业列表
// const IndustryDetailView = React.lazy(
...
...
@@ -206,6 +210,16 @@ export const routerList: Array<RouteObjectType> = [
},
},
{
path
:
'/customManage/customVerification'
,
element
:
withLoadingComponent
(<
CustomVerificationView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
230
,
title
:
'实名认证'
,
icon
:
<
SolutionOutlined
/>,
},
},
{
path
:
'/customManage/customList/detail'
,
element
:
withLoadingComponent
(<
CustomListDetail
/>),
errorElement
:
<
ErrorPage
/>,
...
...
@@ -957,6 +971,28 @@ export const routerList: Array<RouteObjectType> = [
],
},
{
path
:
'/flyerCenter'
,
element
:
<
LayoutView
/>,
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1500
,
icon
:
<
UserOutlined
/>,
title
:
'飞手中心'
,
},
children
:
[
{
path
:
'/flyerCenter/flyerList'
,
element
:
withLoadingComponent
(<
FlyerListView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1510
,
title
:
'飞手列表'
,
icon
:
<
UserOutlined
/>,
},
},
],
},
{
path
:
'/systemManage'
,
element
:
<
LayoutView
/>,
errorElement
:
<
ErrorPage
/>,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论